7.4. Настройка резервных доменов

Резервный домен — подмножество узлов кластера, где будет восстановлена работа кластерной службы в случае сбоя узла. Ниже перечислены основные типы резервных доменов.
  • Неограниченный — позволяет выбрать предпочитаемую группу узлов. При этом служба, закрепленная за этим доменом, может работать на любом доступном узле.
  • Ограниченный — кластерная служба может выполняться только на заранее определенных узлах. Если в домене не осталось доступных узлов, служба не сможет быть запущена.
  • Неупорядоченный — восстановление службы может происходить на любом узле в составе домена без каких-либо предпочтений.
  • Упорядоченный — позволяет определить порядок выбора узлов для восстановления службы. Значение 1 обозначает наивысший приоритет, то есть чем меньше число, тем больше вероятность выбора узла.
  • С возвратом — разрешает возврат службы на исходный узел после его восстановления. Настройка этой характеристики помогает при периодических сбоях узла, входящего в состав упорядоченного домена, так как если узел является предпочтительным, может оказаться так, что служба будет бесконечно переноситься с него на другой узел и обратно, что значительно снизит производительность.

    Примечание

    Функция возврата доступна только для упорядоченного типа.

Примечание

Изменение конфигурации резервного домена не окажет влияния на уже запущенные службы.

Примечание

Для нормальной работы кластера резервные домены необязательны.
По умолчанию используется неограниченный и неупорядоченный типы.
В кластере с большим числом узлов использование ограниченного резервного домена отменяет необходимость настройки запуска кластерных служб (например, httpd) на всех узлах. Вместо этого надо будет настроить лишь узлы из резервного домена.

Примечание

Для настройки приоритетного узла можно создать неограниченный домен, включающий всего один узел. Это гарантирует, что служба будет выполняться именно на этом узле, а в случае сбоя будет перенесена на любой другой узел кластера.
Ниже рассматривается порядок настройки резервного домена.
  1. Откройте /etc/cluster/cluster.conf на любом узле.
  2. Для каждого домена в секцию rm следует добавить следующий шаблон:
    
            <failoverdomains>
                <failoverdomain name="" nofailback="" ordered="" restricted="">
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                </failoverdomain>
            </failoverdomains>
    
    

    Примечание

    Число элементов failoverdomainnode зависит от числа узлов в составе домена. В приведенном примере показано три элемента failoverdomainnode с незаполненными значениями имен.
  3. Описание элементов секции failoverdomain можно найти в файле схемы /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (например, /usr/share/doc/cman-3.0.12/cluster_conf.html). Пример 7.8, «Добавление резервного домена в cluster.conf» содержит пример секции failoverdomains.
  4. Увеличьте значение config_version на единицу. Например, если исходное выражение выглядело как config_version="2", после изменения оно будет выглядеть так: config_version="3".
  5. Сохраните /etc/cluster/cluster.conf.
  6. Дополнительно можно проверить соответствие формата схеме в cluster.rng:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. Выполните cman_tool version -r, чтобы скопировать изменения на остальные узлы в кластере.
  8. Раздел 7.5, «Настройка служб высокой готовности» содержит дальнейшую информацию.
Пример 7.8, «Добавление резервного домена в cluster.conf» содержит пример конфигурации упорядоченного, неограниченного домена.

Пример 7.8. Добавление резервного домена в 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>
       <failoverdomains>
           <failoverdomain name="example_pri" nofailback="0" ordered="1" restricted="0">
               <failoverdomainnode name="node-01.example.com" priority="1"/>
               <failoverdomainnode name="node-02.example.com" priority="2"/>
               <failoverdomainnode name="node-03.example.com" priority="3"/>
           </failoverdomain>
       </failoverdomains>
   </rm>
</cluster>

failoverdomains содержит секции failoverdomain для всех резервных доменов. В приведенном примере определен один домен с именем example_pri, который не использует функцию возврата (failback="0"), является упорядоченным (ordered="1") и неограниченным (restricted="0").