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_validateConfiguration 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>
При настройке изоляции узла с двумя источниками питания необходимо настроить одновременное отключение их портов.