b_a_t: (daemon)
[personal profile] b_a_t
Требуется помощь зала :) На собеседовании задали вот такие вопросы, даже не знаю, что им и ответить по-серьезному:

1. Какие линуксовые ядерные патчи вы бы посоветовали для высоконагруженного Веб-сервера?
2. Как бы вы организовали контроль версий веб-приложений на Gentoo/PHP для кластера из 500+ узлов, при условии, что на них устанавливается один и тот же код. Как бы вы организавали обновление ОС в таких условиях - локальная или удаленная сборка, перезагрузка узлов которые уже используются в продакшене. Как бы вы спланировали обновления PHP в таких условиях? Объясните ваш выбор.
3. Предоставьте дизайн системы, которая бы позволяла на основе Apache access.log сделать обзор, какие страницы были посещены с определенного IP адреса. Система должна маштабироваться для 500+ узлового веб-кластера. Предоставьте ваши конфигурационные файлы/скрипты и объясните ваше решение и насколько оно маштабируемо.
4. Предоставьте скрипт бекапа базы MySQL, без ее остановки. Размер данных 100+ Гб и в нее постоянно ведется запись, так что приостановка соединений/записи даже на 0.1сек невозможна.
5. Предоставьте скрипт, который изменяет таблицу роутинга таким образом, что весь исходящий трафик с адреса 192.168.10.15 уходит через гейт 192.168.10.254, а весь остальной - через 10.0.0.254.
6. Как бы вы организовали устойчивый к падениям load balancer, способный обрабатывать поток в 500-1000Mbit пакетов SYN/ACK/FIN. Серверы распологаются в разных подсетях. Используйте OpenSource решения. Объясните, насколько маштабируемо такое решение.

Date: 2011-05-17 02:31 pm (UTC)
From: [identity profile] dil.livejournal.com
свят-свят.. генту, php, куды ты вляпался??

1. Я бы посоветовал пользоваться готовыми ядрами, которые собирают специализирующиеся на этом люди.

2. rsync? сборка однозначно локальная, какой смысл собирать одно и то же на 500 одинаковых машин.

5 я еще как-то смогу написать, почитав мануал от ip route, а остальное - совсем ПИЧАЛЬ.

Date: 2011-05-17 02:40 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Да это местный вариант Фейсбука. Вот с какго-то хрена у них Генту. Посему, видимо все надо пилить руками :(

1. Ну, надо знать, где их искать, эти ядра.
2. Ну, rsync первым в голову приходит, но может есть более маштабные решения - все же, синхронизировать 500+ машин - это долго.

Вот, тебя тоже не возьмут :)

Date: 2011-05-17 03:27 pm (UTC)
From: [identity profile] danfe.livejournal.com
Ну, rsync первым в голову приходит, но может есть более маштабные решения - все же, синхронизировать 500+ машин - это долго.

По идее, для этого есть pssh, там и prsync в комплекте.

Date: 2011-05-17 03:45 pm (UTC)
From: [identity profile] dil.livejournal.com
ну так распараллелить его. там интерактивность никакая не нужна, потом логи почитать на всякий случай, и всё

Date: 2011-05-17 02:36 pm (UTC)
From: [identity profile] oldmann.livejournal.com
а они не хотят сначала забашлять тебе ДЕСЯТЬ ТЫСЯЧ ЕВРО, особенно за написание скриптов?

Date: 2011-05-17 02:37 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Я думаю, они бедные и хотят решить проблемы со скриптами путем собеседований :)

Date: 2011-05-17 02:40 pm (UTC)
From: [identity profile] oldmann.livejournal.com
ну а чо, устраиваешь собеседования, на них приходят люди, все тебе делают бесплатно, системный архитектор по хайлоаду не нужен. сплошной профит.
ты их сразу в хуй послал, или был убийственно вежлив?

Date: 2011-05-17 02:42 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Не, не могу послать - ты меня к себе не берешь, я на грани нищеты, очень хочется кушать!

Date: 2011-05-17 02:53 pm (UTC)
From: [identity profile] -vvs-.livejournal.com
Иди к нам, у нас радио, тв и бабы 24 часа в сутки. Забудешь про свои генту, пхп и прочий лоад балансер.

Date: 2011-05-17 03:03 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Дык, а денег-то давать будут :)? И за что :)?

Date: 2011-05-17 09:09 pm (UTC)
From: [identity profile] foodski.livejournal.com
тебе-ж сказали - тв и бабы 24 часа в сутки :))

Date: 2011-05-17 02:36 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
4-й, я думаю, влет решается выделенным backup-slave. Но какие скрипты?! Наливай да пейБери и бекапь, как хочешь.

5-й - типичный, source routing. Думаю, с помощью команды ip делается тоже легко(?).

С load-balancer непонятно - из чего его собирать.
Edited Date: 2011-05-17 02:37 pm (UTC)

Date: 2011-05-17 03:49 pm (UTC)
From: [identity profile] dil.livejournal.com
в общем, да, других альтернатив практически нету.
RedHat cluster suite заточен под RH, а High Availability Linux какой-то не очень живой.

Date: 2011-05-17 04:51 pm (UTC)
From: [identity profile] samuel-smith.livejournal.com
LVS как-то слабо согласуется с тем, что "разные сети", или я неправ?

Date: 2011-05-18 04:40 am (UTC)
From: [identity profile] foodski.livejournal.com
LVS-TUN задизайнен для работ с разными сабнетами

Date: 2011-05-17 02:59 pm (UTC)
From: [identity profile] samuel-smith.livejournal.com
Я к генту использую только ненависть. По пунктам:

1) Лучше всего НЕ использовать патчи в случае отсутствия явной необходимости это делать. Особенно это касается свежих ядер - в старые по понятным причинам (ентерпрайз) бекпортят кучу вкусностей из новых.
2) Ну логично что удаленная только. По поводу PHP могу посоветовать никогда не обновлять major (5.2 -> 5.3) без длительного общения с разрабами и q&a по поводу этого.
3) Ну я бы на перле сделал локальные задачки которые раз в минуту (или в режиме тейла) читают аксес лог и сливают выжимки (или даже раудата) в главный мискл. Главный мискл и отвечает за выборки. Я бы рекомендовал еще сделать мастер-слейв чтобы не перегружать мастер запросами и не блокировать запись.
4) Не бывает. Совсем. Никогда. Точнее - бывает когда есть zfs (фря, солярис). Снепшоты в лвм - говно и х.ета. Если все в иннодб - в принципе катит percona XtraBackup, скрипт в комплекте. Еще можно предложить построить слейв, бекапить его и иногда сверять с мастером через mk-query-checksum.
5) man source routing
6) Я бы наверное предложил LVS. Но меня смущают разные сети. В таком случае хапрокси или тот же варниш (речь же о tcp). Поток пакетов суть неграмотно, флоу примерно похуй в отличии от количества в секунду. И да, фря флоу в 700 мбит на среднем железе проксировала, думаю и линух да. Так как речь явно о tcp - можно юзать haproxy, например, но потеряется сорус. Для устойсивости к падениям - heartbit. Для масштабирования - группа балансеров и Л2 балансер перед ней, например.

Как-то так

Date: 2011-05-17 03:22 pm (UTC)
From: [identity profile] m0na-sax.livejournal.com
счаз попытаюсь призвать [livejournal.com profile] loginex в псто :)

Date: 2011-05-17 03:35 pm (UTC)
From: [identity profile] loginex.livejournal.com
4. невозможно, только при запуске slave сервера и бекап уже с него.
5. ip rule add from 192.168.10.15 table 10 priority 5
ip route add default via 192.168.10.254 table 10
ip route add default via 10.0.0.254
6. freebsd с netgraph

Date: 2011-05-17 05:37 pm (UTC)
From: [identity profile] kayakru.livejournal.com
плюсанусь - правда за фрю гентушники могут зобанить

Date: 2011-05-17 06:21 pm (UTC)
From: [identity profile] loginex.livejournal.com
я сам гентушник, но при этом и сетевой инженер, на данный момент 8 фря лучше всего подходит для транзитной передачи траффика.

Date: 2011-05-17 06:29 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Да, я сам удивился такому твоему признанию :)

А по 1-3 пунктам, с точки зрения Генту не можешь чего-нить подсказать :)? Пакетный менеджер у вас есть?
Edited Date: 2011-05-17 06:30 pm (UTC)

Date: 2011-05-17 06:43 pm (UTC)
From: [identity profile] loginex.livejournal.com
1. особо патчи никакие не нужны, можно использовать ванильное ядро, либо gentoo-source(Я использую последнее), весь тюнинг в sysctl и через echo blabla > /proc или /sys/. Для фаервола я раньше так же использовал патчи imq и ipset.
2. опыта на клайстерах у меня нет, но можно что-нибудь найти на проприитарном рынке для такого решения.
3. опять же из своего опыта ничего посоветовать не могу. Вообще вопросы из разряда:
-вы работали в хайлоаде с 500+ серверами ?
-нет.
-вопросов больше не имею.
а если серьезно, то это задача системного архитектора - реализовать маштабируемый программный продукт. Если админ будет делать на коленке, то можно тупо пройтись удаленно по ссш грепом аля ssh user@host -p pass "grep page.html /var/log/apache/access.log | grep ip | wc -l" просуммировав все эти значения мы получим что хотим. Может есть и готовые решения, но если ты в этом не работал, то врядли знаешь об этом.

пакетный менеджер в генту: emerge

Date: 2011-05-17 06:51 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Ну, я так понимаю, им интересно оценить опыт работы и умение мыслить. Надеюсь у них внутре используются все-таки более солидные решения.

Готовые решения почти все коммерческие, да. Splunk вот тчо-то подобное делает, но для логов вообще, без анализа данных. Хотя, можно плагин написать.

А emerge не только для сборки используется? Т.е. можно получить какой-то архив/пакет, которые раскидать по машинам и поставить? Или сказать всем машинам обновить его из репозитария?

Date: 2011-05-17 09:03 pm (UTC)
From: [identity profile] iron-hawk.livejournal.com
Если указать репозиторий откуда тянуть, то почему и нет? Никто не мешает прописать на одной машине внешний репозиторий, на остальных же указать в /etc/make.conf переменную GENTOO_MIRRORS, которая будет показывать на локальный сервак.

Алсо, если машины одинаковые то можно собрать бинарник, который потом можно раскидать по сети. Для оных целей существует пакетик quickpkg и нужные переменные для make.conf. Чуть более подробный процесс описания видел, например тут. Там же и описывается процесс забирания готового бинарника емерджем.

Date: 2011-05-17 07:25 pm (UTC)
From: [identity profile] kayakru.livejournal.com
да я то против фри ничего не имею :) Даже как раз одобряю и использую - просто постановка задачи имхо подразумевает УПЕРТОГО гентушника в лице работодателя :))

Date: 2011-05-17 06:49 pm (UTC)
From: [identity profile] duke-igthorn.livejournal.com
После субжа про генту я логично прочел "требуется помощь зла"

Date: 2011-05-17 06:52 pm (UTC)
From: [identity profile] b-a-t.livejournal.com
Да! Зла не хватает!

Date: 2011-05-17 07:14 pm (UTC)
From: [identity profile] iron-hawk.livejournal.com
По второму вопросу cfengine, puppet. Но скажу честно ,сам не юзал, но ребята из Apache Foundation гоняют это вовсю.

По остальному совсем печаль. Хайлоад видел только издали, но могу спросить конь-петентных товарищей.

Date: 2011-05-17 07:56 pm (UTC)
From: [identity profile] amsterdanin.livejournal.com
странно, выглядит так, будто им нужен не новый сотрудник, а ответы на эти вопросы ))))

Date: 2011-05-17 09:36 pm (UTC)
From: [identity profile] rusmafia.livejournal.com
а я больше не гентушник! ура ура ура!
Могу на пост не отвечать. ля-ля-ля-лляя!

гы.

Date: 2011-05-18 09:20 am (UTC)
From: [identity profile] kiltum.livejournal.com
Ндас, ну ты и вляпался ...

1. Никакие. Стабильность вперед скорости. лучше серверов добавить, чем патчами баловаться.
2. елементарно. сделать свой, локальный ебилд, выделить тестовую зону и потом на остальные уже заливать бинарники. в общем, в манах на портедж расписано.
3. еще один велосипед. логи в базу и делай что хошь. или логи на одну машину и запарсистесь. в общем, надо смотреть
4. идиоты. а так - поднимает слейв сервер и его уже мучаем бекапами. но идиоты, да, в мускл 100 гигов пихать, а если он еще и один ...
5. лень читать маны по ip
6. всего гигабит? судя по вышеприведенным запросам, это вебовская херня. значит тупо ставим на фрот чего-нить быстро кеширующее. типа nginx и обвязываем скриптами мониторинга

June 2025

S M T W T F S
123 4567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 05:18 pm
Powered by Dreamwidth Studios