Помогите подобрать кластерное решение
Модераторы: Trinity admin`s, Free-lance moderator`s
- Elec
- Power member
- Сообщения: 43
- Зарегистрирован: 21 авг 2005, 21:13
- Откуда: Великие Луки
- Контактная информация:
Помогите подобрать кластерное решение
Задача такая:
Нужно сделать отказоустойчивый кластер, система Linux
для Web-проекта.
Объем данных 1-2Тб.
Нужно расщирение на будущее.
Нужно сделать отказоустойчивый кластер, система Linux
для Web-проекта.
Объем данных 1-2Тб.
Нужно расщирение на будущее.
- exLH
- Сотрудник Тринити
- Сообщения: 5061
- Зарегистрирован: 11 фев 2004, 15:49
- Откуда: Москва
- Контактная информация:
Надо конкретизировать необходимые сервисы, а то сейчас всплывет необходимость в СУБД, потом окажется, что СУБД там не просто так для хранения каких-то статичных данных, а для онлайн-заказов, а потом еще что-то появится... Наверное лучше сразу систему описать подробно?
Что подразумевается под "расширением"?
Что подразумевается под "расширением"?
На самом деле ничего сложного тут нет, человечество всё это давно уже отработало.
По-минимому понадобится два сервера, дисковый массив с FC/iSCSI. На серверы ставится RedHat Cluster Suite (RHCS), который эпизодически посылает соседям по кластеру пакеты (heartbeat) и, если от них не приходит ответ, то он запускает сервисы соседей на себя.
В такой конфигурации будет два сервиса: mysql и http-сервер, понадобится 2 ip-адреса (это будут адреса сервисов и они пойдут в DNS), в отличии от адресов управления серверов, которые будут использованы для ssh. Реализуется это таким образом, что инит-серипты mysql/apache выносятся из /etc/rc?.d/ в другой каталог и их запуском/остановом управляет не init(8), а rgmanager(8). IP-адрес переводится на новый MAC-адрес при помощи gratious ARP.
Внешний дисковый массив нужен для обеспечения доступа обоих серверов к данным в случае отказа одного из узлов. Дисковый массив, понятное дело, должен быть нормальным - без единой точки отказа - с двумя контроллерами, двумя внутренними лупами и тд. Категорически следует избегать паралелльного SCSI с подключением двух серверов на одну шину, это и так плохо работает, а в кластере вообще возникают "забавные эффекты" (tm).
Внутренний соединия кластера должны быть продублированы, и, разумеется, вся инсталляция не должна быть подключена к одному UPS, даже если он большой и внутри N+1. Был опыт с микропрограммным обеспечением такой штуки :)
A mysql cluster -- достаточно специфический продукт и тут почти наверняка не нужен.
По-минимому понадобится два сервера, дисковый массив с FC/iSCSI. На серверы ставится RedHat Cluster Suite (RHCS), который эпизодически посылает соседям по кластеру пакеты (heartbeat) и, если от них не приходит ответ, то он запускает сервисы соседей на себя.
В такой конфигурации будет два сервиса: mysql и http-сервер, понадобится 2 ip-адреса (это будут адреса сервисов и они пойдут в DNS), в отличии от адресов управления серверов, которые будут использованы для ssh. Реализуется это таким образом, что инит-серипты mysql/apache выносятся из /etc/rc?.d/ в другой каталог и их запуском/остановом управляет не init(8), а rgmanager(8). IP-адрес переводится на новый MAC-адрес при помощи gratious ARP.
Внешний дисковый массив нужен для обеспечения доступа обоих серверов к данным в случае отказа одного из узлов. Дисковый массив, понятное дело, должен быть нормальным - без единой точки отказа - с двумя контроллерами, двумя внутренними лупами и тд. Категорически следует избегать паралелльного SCSI с подключением двух серверов на одну шину, это и так плохо работает, а в кластере вообще возникают "забавные эффекты" (tm).
Внутренний соединия кластера должны быть продублированы, и, разумеется, вся инсталляция не должна быть подключена к одному UPS, даже если он большой и внутри N+1. Был опыт с микропрограммным обеспечением такой штуки :)
A mysql cluster -- достаточно специфический продукт и тут почти наверняка не нужен.
Файловая система нужна самая обычная, ext3. Один раздел не будет подключён более чем к одному серверу никогда в таком рещении, поэтому нужды в GFS нету.
Дисковый массив рекомендую как обычно IBM N3700 (http://www-03.ibm.com/systems/storage/network/n3700/).
Дисковый массив рекомендую как обычно IBM N3700 (http://www-03.ibm.com/systems/storage/network/n3700/).
- exLH
- Сотрудник Тринити
- Сообщения: 5061
- Зарегистрирован: 11 фев 2004, 15:49
- Откуда: Москва
- Контактная информация:
CrazyFrog
Вы это все конечно красиво написали
Но автор (что последним постом и подтвердилось) хотел совсем не этого, а добиться того, чего он хотел двумя серверами не получится и придется использовать более чем "специфический" продукт, хотя я бы наверное рассматривал альтернативы на месте Elec.
Впрочем, у меня тоже есть определенные сомнения в необходимости всего этого
Вы это все конечно красиво написали

Впрочем, у меня тоже есть определенные сомнения в необходимости всего этого

На самом деле в протом решении балансировка нагрузки всеравно будет: на одном ящике mysql, на втором - web. сервера memcached добавить по вкусу рядом :)
Если хочется балансирока нагрузки для нескольких web-серверов, то в RHCS входит вполне рабочая система LVS с piranha. Не так круто как BigIP или Cisco 11500, но работает. nginx опять же. То есть существуюют варианты, надо уже на деле смотреть что больше нравится, что быстрее работает, у кого какие есть нужные возможности.
Если в качестве массива брать N-series IBM, то можно смело использовать NFS под файлы веб-сервера, NFS там работает великолепно -- это всё-таки Netapp :)
Если же будет блочный доступ с более примитивным массивом, то можно использовать RedHat Global File System (GFS). С ней можно разделять одну ФС между несколькими узлами. Недостатком перед NFS будет являтся более сложное управление (соблюдение кворума, фенсинг, и тп). По производительности NFS vs GFS сильно зависит от шаблона доступа.
По цене тоже вопрос не совсем прямолинейный, N-серия недёшева, но цена HBA, коммутаторов (два сервера обычно можно подключить и напрямую, а больше уже мало к кому массиву) и поддержки на GFS на все узлы тоже кусается.
Несколько экземпляров MySQL можно запустить с GFS на одну базу данных. При этом есть ограничения - тип таблиц должен быть MyISAM, включены external locking и выключен query cache. Будет ли после такого выигрыш по скорости - непростой вопрос, я не проверял.
Если хочется балансирока нагрузки для нескольких web-серверов, то в RHCS входит вполне рабочая система LVS с piranha. Не так круто как BigIP или Cisco 11500, но работает. nginx опять же. То есть существуюют варианты, надо уже на деле смотреть что больше нравится, что быстрее работает, у кого какие есть нужные возможности.
Если в качестве массива брать N-series IBM, то можно смело использовать NFS под файлы веб-сервера, NFS там работает великолепно -- это всё-таки Netapp :)
Если же будет блочный доступ с более примитивным массивом, то можно использовать RedHat Global File System (GFS). С ней можно разделять одну ФС между несколькими узлами. Недостатком перед NFS будет являтся более сложное управление (соблюдение кворума, фенсинг, и тп). По производительности NFS vs GFS сильно зависит от шаблона доступа.
По цене тоже вопрос не совсем прямолинейный, N-серия недёшева, но цена HBA, коммутаторов (два сервера обычно можно подключить и напрямую, а больше уже мало к кому массиву) и поддержки на GFS на все узлы тоже кусается.
Несколько экземпляров MySQL можно запустить с GFS на одну базу данных. При этом есть ограничения - тип таблиц должен быть MyISAM, включены external locking и выключен query cache. Будет ли после такого выигрыш по скорости - непростой вопрос, я не проверял.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей