Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
7.3. Исключение узлов из кластера
Настройка функций изоляции в кластере включает выбор устройств и методов изоляции.
Ниже перечислены особенности настройки изоляции в
cluster.conf
.
- Секция
fencedevices
содержит список исключающих устройств, каждое из которых определено в элементеfencedevice
(см. Пример 7.3, «Добавление устройства APC вcluster.conf
»). - Метод изоляции определяется при помощи элемента
fence
для каждогоclusternode
в секцииclusternodes
. Атрибутname
в строкеmethod
содержит название метода, а элементdevice
содержит характеристики устройства изоляции (см. Пример 7.4, «Добавление методов изоляции вcluster.conf
»). - Для методов, контролирующих доступ к хранилищу и SAN, в
clusternodes
надо будет добавить секциюunfence
. Этот параметр предотвращает подключение изолированного узла к хранилищу до тех пор, пока он не будет перезагружен. Подробную информацию можно найти на справочной страницеfence_node
(8).unfence
включает элементdevice
, идентичный одноименному элементу в секцииfence
, но с параметромaction
= "on" (или "enable"). То есть обе секции ссылаются на одно устройство изfencedevice
.Присвоение параметруaction
значения "on" или "enable" отвечает за активацию узла после перезагрузки (см. Пример 7.4, «Добавление методов изоляции вcluster.conf
» и Пример 7.5, «Несколько методов изоляции для одного узла»).Подробную информацию оunfence
можно найти на справочной страницеfence_node
. - Увеличьте значение
config_version
на единицу. Например, если исходное выражение выглядело какconfig_version="2"
, после изменения оно будет выглядеть так:config_version="3"
. - Сохраните
/etc/cluster/cluster.conf
. - Дополнительно можно выполнить проверку соответствия формата схеме в
cluster.rng
:[root@example-01 ~]#
ccs_config_validate
Configuration validates - Выполните
cman_tool version -r
, чтобы скопировать изменения на остальные узлы в кластере. При этом еще раз будет проверен формат файла. Предварительно убедитесь, что на всех узлах выполняется процессricci
. - Убедитесь, что конфигурация была скопирована.
- Раздел 7.4, «Настройка резервных доменов» содержит дальнейшую информацию.
При необходимости можно создать более сложные схемы изоляции, определив несколько методов для каждого узла и несколько устройств для каждого метода. Тогда если не удалось исключить узел согласно одному алгоритму,
fenced
выберет другой, затем третий и т.п.
Иногда для изоляции узла может потребоваться отключить два пути ввода-вывода или два порта питания. Для этого надо определить как минимум два устройства для одного метода. Процесс
fenced
запустит агент изоляции один раз для каждой строки fencedevice
. Изоляция успешна при условии успешной изоляции всех устройств.
«Примеры настройки изоляции» содержит примеры сложной конфигурации.
Инструкции по настройке конкретных типов устройств можно найти на их справочных страницах (например,
fence_apc
). Приложение A, Параметры устройств изоляции, справочные файлы агентов изоляции в /usr/sbin/
, схемы /usr/share/cluster/cluster.rng
и /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html
(например, /usr/share/doc/cman-3.0.12/cluster_conf.html
) содержат дополнительную информацию.
7.3.1. Примеры настройки изоляции
Примеры простой конфигурации с одним методом изоляции для каждого узла и одним устройством для каждого метода:
Примеры более сложных схем:
Примечание
Приведенные примеры могут быть модифицированы для достижения конкретной цели.
Пример 7.3. Добавление устройства APC в cluster.conf
<cluster name="mycluster" config_version="3"> <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> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/> </fencedevices> <rm> </rm> </cluster>
Здесь в секцию
fencedevices
добавлен элемент fencedevice
с параметрами agent
, ipaddr
, login
, name
и passwd
.
Пример 7.4. Добавление методов изоляции в cluster.conf
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="APC"> <device name="apc" port="1"/> </method> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="APC"> <device name="apc" port="2"/> </method> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="APC"> <device name="apc" port="3"/> </method> </fence> </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/> </fencedevices> <rm> </rm> </cluster>
В этом примере для каждого из трех узлов будет добавлен метод
APC
для устройства с именем apc
с уникальным номером порта. Например, для node-01.example.com будет выделен порт 1
(port="1"
). Выражение (device name="apc"
) ссылается на одноименное устройство в секции fencedevices
: fencedevice agent="fence_apc"
ipaddr="apc_ip_example" login="login_example"
name="apc" passwd="password_example"
.
Пример 7.5. Несколько методов изоляции для одного узла
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="APC"> <device name="apc" port="1"/> </method> <method name="SAN"> <device name="sanswitch1" port="11"/> </method> </fence> <unfence> <device name="sanswitch1" port="11" action="on"/> </unfence </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="APC"> <device name="apc" port="2"/> </method> <method name="SAN"> <device name="sanswitch1" port="12"/> </method> </fence> <unfence> <device name="sanswitch1" port="12" action="on"/> </unfence </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="APC"> <device name="apc" port="3"/> </method> <method name="SAN"> <device name="sanswitch1" port="13"/> </method> </fence> <unfence> <device name="sanswitch1" port="13" action="on"/> </unfence </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/> <fencedevice agent="fence_sanbox2" ipaddr="san_ip_example" login="login_example" name="sanswitch1" passwd="password_example"/> </fencedevices> <rm> </rm> </cluster>
Пример 7.6. Изоляция с многопутевыми устройствами
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="SAN-multi"> <device name="sanswitch1" port="11"/> <device name="sanswitch2" port="11"/> </method> </fence> <unfence> <device name="sanswitch1" port="11" action="on"/> <device name="sanswitch2" port="11" action="on"/> </unfence </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="SAN-multi"> <device name="sanswitch1" port="12"/> <device name="sanswitch2" port="12"/> </method> </fence> <unfence> <device name="sanswitch1" port="12" action="on"/> <device name="sanswitch2" port="12" action="on"/> </unfence </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="SAN-multi"> <device name="sanswitch1" port="13"/> <device name="sanswitch2" port="13"/> </method> </fence> <unfence> <device name="sanswitch1" port="13" action="on"/> <device name="sanswitch2" port="13" action="on"/> </unfence </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_sanbox2" ipaddr="san_ip_example" login="login_example" name="sanswitch1" passwd="password_example"/> <fencedevice agent="fence_sanbox2" ipaddr="san_ip_example" login="login_example" name="sanswitch2" passwd="password_example"/> </fencedevices> <rm> </rm> </cluster>
Пример 7.7. Изоляция узлов с двумя источниками питания
<cluster name="mycluster" config_version="3"> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> <method name="APC-dual"> <device name="apc1" port="1"action="off"/> <device name="apc2" port="1"action="off"/> <device name="apc1" port="1"action="on"/> <device name="apc2" port="1"action="on"/> </method> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> <method name="APC-dual"> <device name="apc1" port="2"action="off"/> <device name="apc2" port="2"action="off"/> <device name="apc1" port="2"action="on"/> <device name="apc2" port="2"action="on"/> </method> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> <method name="APC-dual"> <device name="apc1" port="3"action="off"/> <device name="apc2" port="3"action="off"/> <device name="apc1" port="3"action="on"/> <device name="apc2" port="3"action="on"/> </method> </fence> </clusternode> </clusternodes> <fencedevices> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc1" passwd="password_example"/> <fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc2" passwd="password_example"/> </fencedevices> <rm> </rm> </cluster>
При настройке изоляции узла с двумя источниками питания необходимо настроить одновременное отключение их портов.