Show Table of Contents
7.2.2. Значение
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_validate
Configuration validates - Скопируйте изменения в
/etc/cluster/
на каждом узле. Это можно сделать с помощьюscp
.Примечание
Копирование конфигурации работающего кластера рекомендуется выполнять с помощьюcman_tool version -r
. По желанию можно использоватьscp
, но при этом потребуется остановить кластерные программы на всех узлах и выполнить проверкуccs_config_validate
.Примечание
Базовый шаблон содержит и другие элементы, но они будут рассмотрены позднее. - Запустите кластер на всех узлах:
service cman start
Пример:[root@example-01 ~]#
service cman start
Starting 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 nodes
Node 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
.