У меня есть несколько случаев, когда мне нужно перенести приложения с одного сервера на другой в случае сбоя (зависания или сбоя сервера).
В Solaris мы делаем это с помощью VCS (Veritas Cluster Server). Какие варианты доступны для Linux?
Пожалуйста, укажите уровень усилий по установке / обслуживанию или стоимость (если таковая имеется) для каждого.
- Добавлены подробности -
Чтобы дать представление об уровне сложности:
Это узел сбора данных или вычислительный узел, а не база данных, поэтому могут работать более простые решения.
- даже подробнее (извините) -
общее хранилище не является вариантом, но не так много состояния (если таковое имеется) нужно переносить с одного сервера на другой. Мы поддерживаем синхронизацию двух серверов через rsync.
Большое спасибо за все посты.
http://linux-ha.org/ для всех ваших потребностей в высокой доступности. Как говорится в песне, лучшее в жизни - бесплатно.
Майкл прав в том, что сообщество сейчас немного раздроблено, а документации немного.
Собственно, это все есть, понять это просто невозможно. На самом деле вам нужна электронная книга "Конфигурация кардиостимулятора" ... (Ссылка на PDF). Вы захотите прочитать его около дюжины раз, а затем попробовать реализовать его, а затем прочитать еще дюжину раз, чтобы вы действительно могли его ощутить.
Лучшей поддерживаемой реализацией кластерных сервисов для Linux на данный момент, вероятно, будет Novell SLES11 и его расширение высокой доступности (HAE). Он ПРОСТО вышел месяц или два назад и поставляется с красивым толстым 200-страничным руководством, в котором описывается, как его настроить и запустить. Novell также отлично поддерживает конфигурации Pacemaker в различных формах.
Кроме того, есть реализация RHEL5, которая имеет такой же пакет и приличную документацию, но я думаю, что она дороже, чем SLES. По крайней мере, для нас.
Я бы избегал Heartbeat прямо сейчас и выбрал Pacekmaker / OpenAIS, потому что они будут намного лучше поддерживаться в будущем. ОДНАКО текущее состояние сообщества таково, что есть несколько экспертов, есть несколько человек, которые управляют им в продакшене, и есть целая масса людей, которые совершенно невежественны. Присоединяйтесь к списку рассылки Pacemaker и обратите внимание на человека по имени Эндрю Бикхоф.
Отредактируйте, чтобы предоставить запрашиваемые сведения:
Pacemaker / OpenAIS использует операцию «монитора» на «примитивном ресурсе» (например, nfs-server), чтобы отслеживать, что делает ресурс. Если примерный сервер NFS не отвечает на запросы остальной части кластера в течение X секунд, то кластер выполнит операцию STONITH (Shoot The Other Node In The Head), чтобы выключить первичный узел, сделав вторичный узел активным. Вы сами решаете в конфигурации, что вызывать потом, и соответствующие действия, которые нужно предпринять. Детали реализации зависят от того, какую службу вы пытаетесь выполнить для отработки отказа, окон выполнения для определенных операций (таких как возвращение основного узла обратно в ведущий), и все это в значительной степени настраивается, насколько это возможно.
Я использовал множество кластерных решений в Linux. Я также сторонник управления конфигурацией, поэтому я добавлю немного об этом в своих описаниях (Chef или Puppet, то есть)
Кластерный сервер Veritas (VCS). Прошло некоторое время, но мы развернули несколько кластеров Linux VCS на RHEL 3.0. Я надеюсь, что он будет доступен в RHEL 5.0. Вы должны быть знакомы с трудностями в настройке этого, как его привычной территории. Как вы, возможно, знаете, VCS стоит дорого. Как ни странно, VCS не очень хорошо подходит для настройки с помощью управления конфигурацией.
Говоря о RHEL, Red Hat Cluster Suite сильно повзрослел с момента своего первоначального выпуска с RHEL 2.1. Этап установки / настройки довольно прост, документация очень полная и полезная, и, как и VCS, вы можете приобрести поддержку у поставщика. Для коммерческих продуктов высокой доступности RHCS имеет разумную цену. Я бы использовал управление конфигурацией только для установки пакетов и поддержки их «вручную» через веб-интерфейс. Кроме того, я слышал о некоторых людях, использующих его на платформах, отличных от Red Hat, хотя у меня нет прямого опыта в этом.
Linux-HA (drbd / heartbeat) тоже хорош, хотя, исходя из VCS, конфигурация может показаться упрощенной, но громоздкой. Это довольно легко автоматизировать с помощью инструмента управления конфигурацией.
В качестве доказательства концепции я установил кластер Linux с HACMP IBM - их программным обеспечением для кластеризации AIX. Я бы не рекомендовал это, поскольку, насколько я помню, это дороже, чем даже VCS. У IBM есть специальные процедуры для установки и обслуживания HACMP, я бы не стал использовать здесь управление конфигурацией.
Сообщество Linux HA на данный момент немного разделено.
Инструменты, ранее известные как Linux HA, в настоящее время Кардиостимулятор и OpenAIS, они чаще всего запускаются в сочетании с DRBD когда нужна архитектура без совместного использования ресурсов.
Я предлагаю получить хорошую книгу по этой теме, прежде чем углубляться в нее, поскольку это довольно обширная область, и состояние проектов не обязательно так удобно, как некоторые решения от поставщиков.
Существуют также решения для Linux от некоторых поставщиков программного обеспечения для кластеров, но я не могу много рассказать о них, поскольку сам никогда не использовал их.
В Linux мы реализовали кластеризацию с heartbeat и drbd. Heartbeat проверяет состояние сервера. DRBD используется для синхронизации данных между серверами. У нас есть служба oracle, работающая на одном сервере, и apache на другом сервере. Когда сервер, на котором запущен oracle, выходит из строя, сердцебиение определяет то же самое и восстанавливает службу Oracle на сервере, на котором запущен apache. и наоборот. Я использовал эту установку для многих других целей и до сих пор работал надежно.
Люкс Red Hat Cluster будет делать то, что вы хотите, практически для всех возможных приложений. В сочетании с GFS и Cluster LVM вы можете получить надежное общее хранилище.
Техническое обслуживание не намного сложнее, чем поддержание работы отдельных боксов. Фактически, миграция приложений упрощает исправление отдельных блоков.
RHCS поставляется с веб-интерфейсом (Luci) и интерфейсом GTK (system-config-cluster), чтобы сделать настройку и миграцию интерактивными. Это позволит вам настраивать отказоустойчивые домены для каждого приложения, политики восстановления, ограждение - все из одной центральной веб-консоли управления.
Учитывая тот факт, что RHCS на самом деле имеет довольно солидный вариант поддержки, я бы выбрал RHCS.
Не уверен, сколько это будет вам стоить, но я полагаю, что это в пределах нескольких тысяч долларов.
UltraMonkey, он частично построен на платформе Linux-HA. Я всегда считал его скорее решением для балансировки нагрузки, чем настоящим кластером, но он хорошо справляется с переключением при отказе.
Мы используем виртуальный сервер Linux и поддерживаем активность для обеспечения высокой доступности. keepalived может либо выполнять VRRP на самих хостах (что, как я полагаю, зависит от смерти другого сервера), либо вы можете настроить его на отдельном хосте для балансировки нагрузки, который может иметь проверки доступности службы. В первой ситуации можно настроить проверки служб, но я не проверял. Вторая ситуация особенно хороша, если у вас могут быть одновременно запущены оба сервера, иначе вы можете переключиться вручную.
Я написал программный балансировщик нагрузки для TCP, который не требует отдельной машины. Он разделяет один IP-адрес, объявляя его на многоадресном адресе на уровне канала и согласовывая между машинами, чтобы две машины не обслуживали одно и то же TCP-соединение.
Обратной стороной является то, что он не совсем готов к производству, но если вы хотите протестировать его в своей тестовой сети, я буду рад.
Я не обязательно обнаруживаю «живую, но больную» ситуацию, но я выполняю балансировку нагрузки между рядовыми серверами (если процесс пользовательского пространства умирает, другие узлы заметят и удалят отказавший узел)
Это не бесплатно, но для тех, у кого нет времени или опыта для установки собственного решения высокой доступности в Linux, ответ на www.rapidscaleclusters.com. Через несколько минут вы готовы к работе, легко установить и запустить, он также поддерживается.
Я работаю над диспетчером отказоустойчивого кластера с открытым исходным кодом, написанным в сценарии оболочки. Он в хорошей форме, даже если может упустить некоторую интеграцию, которая вам понадобится. Проверьте это и дайте мне знать, есть ли какие-то недостающие функции, которые вы хотели бы увидеть и использовать: https://github.com/nackstein/back-to-work/
Если вы хорошо разбираетесь в программировании оболочки (оболочка POSIX), вы можете присоединиться к разработке проекта: D