Хорошие решения по отказоустойчивости / высокой доступности для Linux?

У меня есть несколько случаев, когда мне нужно перенести приложения с одного сервера на другой в случае сбоя (зависание или сбой сервера).

На солярисе мы делаем это с VCS (Veritas Cluster Server). Какие варианты доступны для Linux?

Пожалуйста, укажите уровень усилий для установки / обслуживания или стоимость (если таковые имеются) для каждого.

- Более подробная информация добавлена ​​-

Чтобы дать представление об уровне сложности:

  • отказавший сервер может зависнуть или аварийно завершить работу без предварительного уведомления, но все еще может быть "ping-способен"
  • сервер восстановления должен запускать свои приложения при сбое
  • после сбоя при загрузке / выключении сервера он становится пассивным, чтобы не мешать серверу восстановления.

Это узел сбора данных или вычислительный узел, а не база данных, поэтому могут работать более простые решения.

- еще больше деталей (извините) -

общее хранилище не вариант, но не требуется много состояния (если таковое имеется) для миграции с одного сервера на другой. Мы синхронизируем два сервера через rsync.

Большое спасибо за все сообщения до сих пор.

11 ответов

http://linux-ha.org/ для всех ваших потребностей высокой доступности. Как говорится в песне, лучшие вещи в жизни бесплатны.

Майкл прав, что сообщество сейчас немного расколото, и документации немного.

На самом деле, все это есть, просто невозможно понять. Что вам действительно нужно, так это электронная книга "Объяснение конфигурации кардиостимулятора"... ( ссылка на PDF). Вам захочется прочитать его около дюжины раз, а затем попытаться реализовать его, а затем прочитать еще дюжину раз, чтобы вы могли на самом деле его обмануть.

На данный момент наилучшей поддерживаемой реализацией кластерных служб для Linux, вероятно, будет SLES11 от Novell и расширение высокой доступности (HAE). Это просто вышло месяц или два назад, и оно поставляется с хорошим толстым 200-страничным руководством, которое описывает, как его настроить и запустить. Novell также превосходно поддерживает конфигурации Pacemaker в различных формах.

Помимо этого, есть реализация RHEL5, которая имеет тот же пакет и достойную документацию, но я думаю, что это дороже, чем SLES. По крайней мере, это для нас.

Я бы избегал Heartbeat прямо сейчас и пошел бы с Pacekmaker/OpenAIS, потому что они будут гораздо лучше поддерживаться в будущем. ОДНАКО, текущее состояние сообщества таково, что есть несколько экспертов, есть несколько человек, которые управляют им в производстве, и есть целая тонна людей, которые абсолютно не имеют понятия. Присоединяйтесь к списку рассылки Pacemaker и обратите внимание на человека по имени Andrew Beekhof.

Изменить, чтобы предоставить запрошенные данные:

Pacemaker / OpenAIS использует операцию 'monitor' над 'примитивным ресурсом' (например, nfs-server), чтобы отслеживать, что делает ресурс. Если примерный NFS-сервер не отвечает на остальную часть кластера в течение X секунд, тогда кластер выполнит операцию STONITH (Shoot The Other Node In The Head), чтобы завершить работу основного узла, переводя вторичный узел в активный. В конфигурации вы решаете, какие из них будут вызывать впоследствии, и какие действия следует предпринять. Детали реализации зависят от того, какую службу вы пытаетесь переключить при сбое, окна выполнения для определенных операций (например, перевод основного узла обратно в master) и все это в значительной степени настраиваемо, насколько это возможно.

Я использовал различные кластерные решения в Linux. Я также сторонник управления конфигурацией, поэтому я добавлю немного об этом в своих описаниях (то есть Chef или Puppet)

Кластерный сервер Veritas (VCS). Это было некоторое время, но мы развернули несколько Linux VCS кластеров на RHEL 3.0. Я надеюсь, что он доступен на RHEL 5.0. Вы должны быть знакомы с трудностями в настройке этого, как его знакомой территории. Как вы, наверное, знаете, VCS стоит дорого. Кстати, VCS не очень подходит для настройки управления конфигурацией.

Говоря о RHEL, Red Hat Cluster Suite сильно повзрослел с момента его первоначального выпуска с RHEL 2.1. Этап настройки / настройки довольно прост, документация очень полная и полезная, и, как и VCS, вы можете приобрести поддержку у поставщика. Для коммерческих продуктов HA, RHCS по разумной цене. Я бы использовал управление конфигурацией только для установки пакетов и обслуживания их "вручную" через веб-интерфейс. Кроме того, я слышал о некоторых людях, использующих его на платформах, отличных от Red Hat, хотя у меня нет опыта в этом напрямую.

Linux-HA (drbd / heartbeat) также хорош, хотя, исходя из VCS, конфигурация может показаться упрощенной, но громоздкой. Это довольно легко автоматизировать с помощью инструмента управления конфигурацией.

В качестве подтверждения концепции я установил кластер Linux с HACMP от IBM - их программным обеспечением для кластеризации AIX. Я не рекомендовал бы это, поскольку я помню, что это дороже, чем даже VCS. У IBM есть определенные процедуры для установки и поддержки HACMP, я бы не стал здесь использовать управление конфигурацией.

Сообщество Linux HA немного разделено на данный момент.

Инструменты, которые раньше были известны Поскольку Linux HA в настоящее время является Pacemaker и OpenAIS, они чаще всего работают в сочетании с DRBD, когда требуется архитектура без совместного использования ресурсов.

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

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

UltraMonkey, его частично основанная на платформе Linux-HA. Я всегда думал, что это скорее решение для балансировки нагрузки, чем настоящий кластер, но оно хорошо справляется с переключением при сбое.

В Linux мы реализовали кластеризацию с помощью heartbeat и drbd. Heartbeat проверяет состояние сервера. DRBD используется для синхронизации данных между серверами. У нас есть служба оракула, работающая на одном сервере, и apache на другом. Когда сервер, на котором работает oracle, дает сбой, heartbeat обнаруживает то же самое и восстанавливает службу oracle на сервере, на котором работает apache. и наоборот. Использовали эту настройку для многих других целей и были надежны до настоящего времени.

Red Hat Cluster Suite сделает то, что вы хотите, практически для всех возможных приложений. В сочетании с GFS и Cluster LVM вы можете иметь надежное общее хранилище.

Техническое обслуживание не намного сложнее, чем обслуживание отдельных коробок. Миграция приложений облегчает, на самом деле, исправление отдельных блоков.

RHCS поставляется с веб-интерфейсом (Luci) и GTK-интерфейсом (system-config-cluster), чтобы сделать настройку и миграцию кликабельной. Это позволит вам настраивать отказоустойчивые домены для каждого приложения, политики восстановления, ограждения - все из одной центральной веб-консоли управления.

Учитывая тот факт, что RHCS на самом деле имеет довольно солидный вариант поддержки, я бы выбрал RHCS.

Не уверен, сколько это будет стоить вам, но я полагаю, это в пределах нескольких тысяч долларов.

Это не бесплатно, но те, у кого нет времени или опыта, чтобы установить свое собственное решение HA на Linux, ответ на www.rapidscaleclusters.com. В течение нескольких минут вы готовы к работе, просты в установке и запуске, это также поддерживается.

Я работаю над менеджером отказоустойчивого кластера с открытым исходным кодом, написанным в сценарии оболочки. Он в хорошей форме, даже если может пропустить какую-то интеграцию, которая вам понадобится. Проверьте это и дайте мне знать, если есть какая-то недостающая функция, которую вы хотели бы увидеть и использовать: https://github.com/nackstein/back-to-work/

если вы хорошо разбираетесь в программировании оболочки (POSIX), можете присоединиться к разработке проекта:D

Я написал программный балансировщик нагрузки для TCP, который не требует отдельной машины. Он разделяет один IP-адрес, объявляя его по адресу многоадресной рассылки и согласовывая между машинами, чтобы избежать двух машин, обслуживающих одно и то же соединение TCP.

Недостатком является то, что он не готов к работе - но если вы хотите протестировать его в своей тестовой сети, я буду рад.

Пушистый кластер здесь

Я не обязательно обнаруживаю "живую, но больную" ситуацию, но я делаю балансировку нагрузки между рядовыми серверами (если процесс пользовательского пространства умирает, другие узлы заметят и удалят неисправный узел)

Мы используем Linux Virtual Server и постоянно поддерживаем для нашей высокой доступности. keepalived может либо выполнять VRRP на самих хостах (что, как я полагаю, зависит от гибели другого сервера), либо вы можете настроить его на отдельном хосте для балансировки нагрузки, который может иметь проверки доступности служб. Может быть возможно настроить проверку сервиса в первой ситуации, но я не проверял. Вторая ситуация особенно хороша, если вы можете запустить оба сервера одновременно, иначе вы можете переключиться вручную.

Другие вопросы по тегам