Кластер Высокой Доступности В Red Hat Cluster Suite

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

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

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

После очередного обновления centos мы обнаружили, что разработчик кардиостимулятора перестал поддерживать репозиторий для этой ОС, а в официальных репозиториях появилась сборка, подразумевающая совершенно другую конфигурацию (cman вместо corosync).

Перенастраивать кардиостимулятор желания уже не было, и мы начали искать другое решение.

На одном из англоязычных форумов я прочитал про Red Hat Cluster Suite, решили попробовать.



Общая информация


Кластер высокой доступности в Red Hat Cluster Suite

RHCS состоит из нескольких основных компонентов:
  • Cman — отвечает за кластеризацию, взаимодействие между узлами, кворум.

    По сути, он собирает кластер.

  • rgmanager — менеджер ресурсов кластера, занимается добавлением, мониторингом и управлением группами ресурсов кластера.

  • Риччи - демон для удаленного управления кластером
  • Люси — красивый веб-интерфейс, который подключается к ricci на всех узлах и обеспечивает централизованное управление через веб-интерфейс.

Подобно пульсу и кардиостимулятору, ресурсы кластера управляются стандартизированными сценариями (агентами ресурсов, RA).

Принципиальное отличие от кардиостимулятора заключается в том, что redhat не предполагает добавления в систему пользовательских RA. Но это с лихвой компенсируется тем, что существует универсальный агент ресурсов для добавления обычных скриптов инициализации, он называется скрипт. Управление ресурсами происходит только на уровне сервисных групп.

Сам ресурс невозможно включить или выключить.

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

Одна группа ресурсов может быть связана с одним доменом.



Руководство по настройке:
Эта инструкция тестировалась на Centos 6.3 - 6.4.
  1. Весь набор пакетов, который будет необходим для полноценной работы одной ноды, удобно объединен в группу «Высокая доступность» в репозитории.

    Устанавливаем их с помощью yum, luci ставим отдельно.

    На момент написания luci должен быть установлен из базового репозитория; при установке с включенным epel будет установлена неверная версия python-webob и luci запустится некорректно.

      
      
      
      
       

    yum groupinstall "High Availability" yum install --disablerepo=epel* luci

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

    conf (в centos по умолчанию /etc/cluster/cluster.conf).

    Для первоначального запуска будет достаточно следующей конфигурации:

    <Эxml version="1.0"?> <cluster config_version="1" name="cl1"> <clusternodes> <clusternode name="node1" nodeid="1"/> </clusternodes> </cluster>

    Где node1 — это полное доменное имя узла, которое другие узлы будут использовать для связи с ним.

    Это единственный конфиг, который я редактировал из консоли при настройке этой системы.

  3. Установите пароль для пользователя ricci. Этот пользователь создается при установке пакета ricci и будет использоваться для подключения узлов в веб-интерфейсе luci.

    passwd ricci

  4. Запустим службы:

    service cman start service rgmanager start service modclusterd start service ricci start service luci start

    Здесь следует отметить, что luci лучше устанавливать на отдельный сервер, не входящий в состав кластера, чтобы в случае недоступности узла luci был доступен.

    Также удобно сразу включать сервисы в автозагрузку:

    chkconfig ricci on chkconfig cman on chkconfig rgmanager on chkconfig modclusterd on chkconfig luci on

  5. Теперь вы можете зайти в веб-интерфейс luci, который при правильном запуске службы подключается по https на порту 8084. Вы можете войти в систему как пользователь root. Видим довольно красивый веб-интерфейс:

    Кластер высокой доступности в Red Hat Cluster Suite

    В котором мы добавляем наш кластер из одного узла, нажав Управление кластерами -> Добавить, указав имя узла, пароль пользователя ricci и нажав Добавить кластер.

    Остается только добавить узлы.

  6. Чтобы добавить сервер в качестве узла, на нем должна быть установлена группа пакетов «Высокая доступность» и запущен ricci. Узлы добавляются в управлении кластером на вкладке Узлы, указывается имя сервера и пароль пользователя ricci на нем.

    После добавления узла ricci синхронизирует с ним кластерный.

    conf, а затем запускает на нем все необходимые сервисы.

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

Теги: #настройка Linux #Red Hat #высокая доступность #кластер #rhcs

Вместе с данным постом часто просматривают: