5.7.4. Изоляция при наличии нескольких источников питания

Если в кластере настроено несколько источников питания, процесс исключения узла должен быть организован таким образом, чтобы проблемный узел мог быть полностью отключен. Если для каждого источника питания определен отдельный алгоритм, узел не будет отключен, так как вместо одного источника начнет использоваться другой. В такой ситуации надо отключить оба источника. Чтобы этого достичь, в один алгоритм следует включить два экземпляра для каждого устройства, в одном из которых атрибут определен как action=off, а во втором — action=off.
Ниже рассматривается порядок изоляции узла с двумя источниками питания.
  1. Сначала надо определить оба источника питания как изолирующие устройства (см. Раздел 3.6, «Настройка устройств изоляции»).
    Команда вывода настроенных устройств:
    ccs -h хост --lsfencedev
    
  2. Сначала следует выбрать метод изоляции узла:
    ccs -h хост --addmethod метод узел
    Следующая команда определит метод APC-dual для узла node-01.example.com в файле конфигурации на node-01.example.com.
    ccs -h node01.example.com --addmethod APC-dual node01.example.com
    
  3. После этого следует добавить экземпляр для первого источника питания. В строке команды необходимо определить устройство изоляции, узел, название метода и присвоить action значение off.
    ccs -h хост --addfenceinst устройство узел метод [параметры] action=off
    
    Ниже приведен пример добавления экземпляра в файл конфигурации на node-01.example.com, который будет использовать порт 1 коммутатора APC на устройстве apc1 для изоляции узла node-01.example.com при помощи метода APC-dual.
    ccs -h node01.example.com --addfenceinst apc1 node01.example.com APC-dual port=1 action=off
    
  4. После этого следует добавить экземпляр для второго источника питания. В строке команды необходимо определить устройство изоляции, узел, название метода и присвоить action значение off.
    ccs -h хост --addfenceinst устройство узел метод [параметры] action=off
    
    Ниже приведен пример добавления второго экземпляра в файл конфигурации на node-01.example.com, который использует порт 1 коммутатора APC на устройстве apc2 для изоляции узла node-01.example.com при помощи метода APC-dual.
    ccs -h node01.example.com --addfenceinst apc2 node01.example.com APC-dual port=1 action=off
    
  5. Теперь можно добавить другой экземпляр для первого источника питания, присвоив action значение on. В строке команды необходимо определить устройство изоляции, узел и название метода.
    ccs -h хост --addfenceinst устройство узел метод [параметры] action=on
    
    Ниже приведен пример добавления экземпляра в файл конфигурации на node-01.example.com, который будет использовать порт 1 коммутатора APC на устройстве apc1 для изоляции узла node-01.example.com при помощи метода APC-dual. Но в этом случае атрибуту action будет присвоено значение on.
    ccs -h node01.example.com --addfenceinst apc1 node01.example.com APC-dual port=1 action=on
    
  6. Теперь можно добавить другой экземпляр для второго источника питания, присвоив action значение on. В строке команды необходимо определить устройство изоляции, узел и название метода.
    ccs -h хост --addfenceinst устройство узел метод [параметры] action=on
    
    Ниже приведен пример добавления второго экземпляра в файл конфигурации на node-01.example.com, который использует порт 1 коммутатора APC на устройстве apc2 для изоляции узла node-01.example.com при помощи метода APC-dual. В этом случае атрибуту action будет присвоено значение on.
    ccs -h node01.example.com --addfenceinst apc2 node01.example.com APC-dual port=1 action=on
    
Пример 5.5, «cluster.conf после добавления методов изоляции двух источников питания» демонстрирует пример настройки изоляции обоих источников питания в cluster.conf.

Пример 5.5. cluster.conf после добавления методов изоляции двух источников питания


<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>


После завершения настройки структуры кластера надо выполнить синхронизацию файла конфигурации на всех узлах (см. Раздел 5.15, «Синхронизация файла конфигурации»).