Здравствуйте,
Есть: есть интернет-магазин (Украина) с посещаемостью порядка 100,000 визитов/сутки и 500,000 просмотров/сутки. Планируется, что до конца года будет примерно 200,000-300,000 визитов и соответственно порядка 1-1.5 млн просмотров страниц в сутки. 1 сервер который все это обслуживает - Dell R910 128 Gb RAM / 4 x 8 core Intel Xeon 7500 / 4 x 300Gb SAS 10000 rpm.
На нем настроена виртуализация и виртуалки: 1 - балансировщик (nginx)
4 х веб-сервера (nginx+php-fpm)
1 x DB
1 x Memcache
1 x Mail
Нужно:
1) Сделать отказоустойчивое решение, чтобы свести простой к минимуму (по идеи его вообще не должно быть)
2) Сделать решение, которое не будет тормозить при такой нагрузке.
Что я думаю сделать (часть уже сделали): Разместить доп. сервера в др. датацентрах, которые будут дублировать основной сервер.
ОСНОВНОЙ СЕРВЕР: Сейчас 1 сервер (r910) в ДЦ Воля (Киев)
ДУБЛИРУЮЩИЙ СЕРВЕР: Взяли в аренду 4 сервера в ДЦ hetzner (Германия) - как резервные.
1) 1 шт. X2 AMD Athlon 64 3700+ / 1Gb RAM / 2x300Gb - будет балансировщиком (только nginx), только раскидывает посетителей на веб-ноды
2) 2 шт. EX6 Intel(R) Xeon(R) CPU E31245 @ 3.30GHz / 16Gb RAM ECC / 2x3000Gb SATA 7200 rpm - 2 веб-сервера (nginx + php-fpm)
3) 1 шт. EX6 Intel(R) Xeon(R) CPU E31245 @ 3.30GHz / 16Gb RAM ECC / 2x3000Gb SATA 7200 rpm - 1 DB сервер (MySQL + memcache для кеша веб-серверов)
4) Есть доп. место, чтобы добавить либо еще один веб-сервер или еще доп. сервер БД.
думаю для начала хватит, посмотрим какую нагрузку будет держать...
+ Сделаем репликацию MySQL Master - Slave между основным и дублирующим сервером. Копирование файлов - csync2.
ВОПРОСЫ:
при настройке всего этого возник ряд вопросов, которые и хотелось бы обсудить.
1) Сейчас на r910 есть возможность поставить только 4 HDD по 300Гб, они крутятся в RAID 10, соответственно места у нас всего 600 Гб... Теоретически в сервер должно влазить 16 HDD, но купили такую конфигурацию, в которой можно поставить только 4 HDD, поставщик говорит, что большо добавить нельзя, типа нужно было др. конфигурацию брать (покупал не я, до меня его купили). Сейчас решаем что делать: a) купить: Дисковый массив DELL MD1200 Base 12 Bays w/ Additional EMM 3Y + Контроллер DELL PERC H800A Controller Card b) искать способы что-то заменить в сервере (контроллер?) чтобы можно было подключить желанные 16 HDD.
Есть кто-то, кто разбирается в DELL и может подсказать, что делать с сервером, как поставить туда 16HDD?
2) Нужно ли делать на сервере виртуализацию? Или лучше чтобы все крутилось вместе (MySQL + memcache + nginx + php-fpm)? Какие плюсы/минусы виртуализации?
3) Нужен ли балансировщик на отдельно машине? Т.е. что лучше использовать:
а) сервер с nginx, через который будет идти весь трафик?
б) dns балансировщик - который будет просто раскидывать трафик между веб-серверами? (понимаю, что он не будет сам выключать недоступные ноды в случае выхода их из строя).
Буду благодарен за советы.