Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
7.2. Создание базового файла конфигурации
Если Red Hat Enterprise Linux и Red Hat High Availability уже установлены, для создания кластера останется только создать файл конфигурации
/etc/cluster/cluster.conf и запустить кластерные службы. Эта секция ориентирована на создание базового файла конфигурации. Более сложные операции — изоляция узлов, настройка резервных доменов и служб высокой готовности — будут рассмотрены позднее.
Важно
В результате будет создан простой файл конфигурации. Такая версия не считается завершенной.
Ниже приведен порядок создания шаблона файла конфигурации. Окончательный файл может отличаться в зависимости от индивидуальных требований окружения, числа узлов, типа изоляции, типа и числа кластерных служб.
- Создайте файл
/etc/cluster/cluster.confна любом узле (см. Пример 7.1, «cluster.conf. Базовая конфигурация»). - Дополнительно: при настройке кластера с двумя узлами можно позволить одному узлу поддерживать кворум:
<cman two_node="1" expected_votes="1"/>Операции добавления или удаленияtwo_nodeизcluster.confтребуют перезапуска кластера (см. Раздел 8.4, «Обновление конфигурации»). Пример 7.2, «cluster.conf. Базовая конфигурация для двух узлов» содержит пример настройкиtwo_node. - После этого можно выбрать имя кластера и номер версии конфигурации с помощью атрибутов
nameиconfig_versionв строкеcluster(см. Пример 7.1, «cluster.conf. Базовая конфигурация» и Пример 7.2, «cluster.conf. Базовая конфигурация для двух узлов»). - В секции
clusternodesдля каждого узла можно определить имя и идентификатор с помощью атрибутовnameиnodeidв строкеclusternode. - Сохраните
/etc/cluster/cluster.conf. - Проверьте соответствие его формата схеме в
cluster.rng:[root@example-01 ~]#
ccs_config_validateConfiguration validates - Скопируйте изменения в
/etc/cluster/на каждом узле. Это можно сделать с помощьюscp.Примечание
Копирование конфигурации работающего кластера рекомендуется выполнять с помощьюcman_tool version -r. По желанию можно использоватьscp, но при этом потребуется остановить кластерные программы на всех узлах и выполнить проверкуccs_config_validate.Примечание
Базовый шаблон содержит и другие элементы, но они будут рассмотрены позднее. - Запустите кластер на всех узлах:
service cman startПример:[root@example-01 ~]#
service cman startStarting cluster: Checking Network Manager... [ OK ] Global setup... [ OK ] Loading kernel modules... [ OK ] Mounting configfs... [ OK ] Starting cman... [ OK ] Waiting for quorum... [ OK ] Starting fenced... [ OK ] Starting dlm_controld... [ OK ] Starting gfs_controld... [ OK ] Unfencing self... [ OK ] Joining fence domain... [ OK ] - Выполните
cman_tool nodesна любом узле, чтобы убедиться, что все узлы успешно вошли в состав кластера, о чем сообщает значение «M» в столбце статуса:[root@example-01 ~]#
cman_tool nodesNode Sts Inc Joined Name 1 M 548 2010-09-28 10:52:21 node-01.example.com 2 M 548 2010-09-28 10:52:21 node-02.example.com 3 M 544 2010-09-28 10:52:21 node-03.example.com - После успешного создания кластера можно приступить к настройке изоляции узлов (см. Раздел 7.3, «Исключение узлов из кластера»).
7.2.1. Примеры cluster.conf
Пример 7.1, «
cluster.conf. Базовая конфигурация» и Пример 7.2, «cluster.conf. Базовая конфигурация для двух узлов» демонстрируют две схемы, на основе которых будут позднее настроены возможности изоляции узлов и службы высокой готовности.
Пример 7.1. cluster.conf. Базовая конфигурация
<cluster name="mycluster" config_version="2">
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
</fence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
</fence>
</clusternode>
<clusternode name="node-03.example.com" nodeid="3">
<fence>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
</fencedevices>
<rm>
</rm>
</cluster>
Пример 7.2. cluster.conf. Базовая конфигурация для двух узлов
<cluster name="mycluster" config_version="2">
<cman two_node="1" expected_votes="1"/>
<clusternodes>
<clusternode name="node-01.example.com" nodeid="1">
<fence>
</fence>
</clusternode>
<clusternode name="node-02.example.com" nodeid="2">
<fence>
</fence>
</clusternode>
</clusternodes>
<fencedevices>
</fencedevices>
<rm>
</rm>
</cluster>
7.2.2. Значение consensus элемента totem в кластере с двумя узлами
Если кластер содержит два узла, и в будущем добавление других узлов не планируется, можно опустить значение
consensus в строке totem. В таком случае оно будет рассчитываться автоматически по принципу:
- Если число узлов не превышает двух, то (token * 0.2) с допустимым диапазоном 200 - 2000 мс.
- Если число узлов больше или равно трем, то (token + 2000 мс).
При увеличении числа узлов с 2 до 3 (и более) потребуется перезапустить кластер, так как формула расчета изменится.
Если в кластер с двумя узлами планируется добавить дополнительные узлы, необходимость перезапуска кластера можно предотвратить, переопределив
consensus в строке totem:
<totem token="X" consensus="X + 2000" />
Вместо (X + 2000) необходимо указать полученное целое значение.
Главным достоинством этого подхода является сокращение времени восстановления в кластере с двумя узлами, так как значение
consensus не является динамическим.
Следует помнить, что функции автоматического обнаружения узлов
cman учитывают только наличие физических узлов в кластере с двумя элементами, а не наличие two_node=1 в cluster.conf.