
Я рассматриваю возможность настройки автоматического переключения при сбое для Apache и MySQL. Я планирую разместить небольшой прокси-сервер перед двумя ящиками Apache и двумя ящиками MySQL. Apache будет время от времени синхронизировать данные с главного на подчиненный сервер, а MySQL будет настроен в режиме Master/Slave для репликации. В случае сбоя резервный ящик(и) может взять на себя управление, пока главный сервер не будет восстановлен.
Прокси-сервер спереди будет работать как регулировщик дорожного движения с каким-то программным обеспечением heartbeat (на данном этапе я не ищу балансировку нагрузки). Таким образом, мне не придется беспокоиться об изменении нашего брандмауэра в случае, если основные ящики выйдут из строя.Linux-HAЛучший вариант или есть какие-то предложения?
решение1
Linux HA — это хороший набор инструментов. Если вам нужна простота, используйте heartbeat 1; heartbeat 2 перешел на кластеры с более чем 2 узлами и XML-конфигурацию. 1 достаточно для большинства простых случаев с 2 узлами.
Но хотя я согласен, что наличие прокси-сервера перед вашим приложением всегда является хорошей идеей (запуск нескольких серверов как бы с одного виртуального сервера и т. д.), ваша настройка, как вы ее описываете, звучит как введение нового SPF: прокси-сервера.
В вашем случае, вероятно, лучше всего будет запустить оба сервера в конфигурации «активный-активный», включая полный веб-сервис и полный прокси-сервис на обоих(!).
Просто настройте heartbeat на захват трех IP-адресов: одного для активного сервера MySQL, одного для активного веб-сервера и одного для активного прокси-сервера (только последний должен быть общедоступным).
Затем настройте прокси-сервер так, чтобы он всегда переходил на внутренний IP-адрес «активного веб-сервера», а веб-сервер — на IP-адрес «активного сервера БД».
Когда вы будете готовы перейти на конфигурацию балансировки нагрузки, вам просто нужно будет отказаться от переключения IP-адресов веб-серверов и вместо этого поместить оба веб-сервера в группу внутренних серверов вашего прокси-сервера.
Первоначальная настройка может выглядеть так:
Server A (Apache on Port 80) Server A (Apache Port 8080) Server A MySQL <-----------
| \ | \ | \
Web <-> Public Proxy IP >-> Shared Private Web IP >--> Shared Private MySQL IP | Mysql Synchronization Link
| / | / | /
Server B (Apache on Port 80) Server B (Apache Port 8080) Server B MySQL <-----------
Затем, когда все будет готово, вы сможете без проблем перейти к реальной балансировке нагрузки (как упоминалось для веб-сайтов) и кластеризации MySQL, не внося никаких изменений в работу пользователя.
И что самое лучшее: немедленное размещение вашего приложения за прокси-сервером (даже если прокси-серверы «на самом деле» являются одними и теми же серверами) позволит выявить множество ошибок в ваших веб-приложениях (предположения об именах хостов и путях при создании ссылок и т. д.) на раннем этапе!
решение2
http://studyhat.blogspot.com/2009/11/clustering-linux-ha.html
ссылка выше поможет вам настроить Linux HA