Назад | Перейти на главную страницу

Каков наиболее эффективный способ настройки веб-сервера Linux для ручного переключения при отказе

В настоящее время я администрирую небольшой веб-сервер под управлением Ubuntu Linux с apache, mysql и ssh. Я создаю резервную копию с помощью rsync на другом сервере, но я создаю резервную копию в каталоге / backup.

Я хотел бы настроить его так, чтобы, если первый сервер выйдет из строя, я могу изменить ip второго сервера и подготовить всех пользователей, файлы, базы данных и т. Д.

Есть ли у кого-нибудь предложения по самому простому / лучшему способу решения этой проблемы?

Соображения

Ты можешь использовать rsync или drbd для синхронизации резервного сервера или смонтируйте данные через нфс с 3-го сервера. Если вы хотите, чтобы все было просто, я бы вернулся к тем же расположение каталогов на сервере резервного копирования в качестве исходного сервера.

сердцебиение2 является хорошим решением для управления IP-адресами и предоставляет инструменты для автоматического или ручного переключения при отказе, а также принимает во внимание очистку кэша arp и другие вещи, о которых я бы не подумал.

Для файловых сервисов (веб-сервер и т. Д.) Rsync может эффективно поддерживать второй сервер в актуальном состоянии (пользователи, конфигурации и т. Д.) - когда дело доходит до баз данных, все становится немного сложнее (я использовал MySQL и подчиненный сервер. для этого, и это было очень эффективно, я также использовал PostgreSQL в нескольких конфигурациях HA / standby, но это было намного более неуклюже)

Это, в сочетании с небольшой кражей IP-адресов (быстрый сценарий для назначения IP-адреса отказавшей машины интерфейсу резервной машины), может упростить настройку, но позволит быстро восстановить.

Только одна вещь, которую следует учитывать - остерегайтесь отказов. Перенос служб на резервную машину - это одно дело, перемещение их обратно после исправления сбоя может вызвать затруднения, обратите особое внимание на базы данных.

LinuxHA - это (несколько тяжеловесный) подход к этому, если вы решите сделать его немного более автоматизированным.

http://www.linux-ha.org/

Здесь может помочь виртуализация. У вас может быть 2 сервера, работающих как хост-серверы, оба с одним готовым виртуальным сервером. На реальном сервере виртуальный сервер работает, а на резервном сервере виртуальный сервер «выключен», но он все еще может получить доступ к файловой системе этого сервера.

Затем вы можете выполнять регулярную синхронизацию с действующим виртуальным сервером на резервный виртуальный сервер. Если рабочий сервер выходит из строя, вам просто нужно запустить резервный виртуальный сервер.

Детали зависят от того, какое программное обеспечение виртуализации вы используете (я делал это раньше с помощью linux-vserver), но есть некоторые важные моменты:

  • вам нужно будет исключить некоторые настройки, в частности IP-адрес.
  • проверьте свою настройку, когда все работает - вам нужно знать оно работает
  • настроить DNS для обоих, например, www1.mysite.com и www2.mysite.com, при этом www.mysite.com будет циклическим перебором для www1 и www2
  • вы даже можете использовать какую-то службу пульса для автоматического запуска резервного сервера, но это может быть слишком сложно, если время простоя не действительно дорого.

Я считаю, что heartbeat сделает это за вас, но если вы не используете его, я рекомендую вручную настроить виртуальный IP-адрес для веб-сервера.

У каждого веб-сервера будет свой реальный IP-адрес, а также виртуальный IP-адрес. Виртуальный IP-адрес назначается машине только тогда, когда она является активным веб-сервером.

Эта настройка означает, что ssh, rsync и все другие инструменты могут продолжать работать на реальных IP-адресах, не сбиваясь с толку при изменении IP-адреса.