7.5.2. Добавление кластерных служб

Ниже рассматривается порядок добавления кластерной службы.
  1. Откройте /etc/cluster/cluster.conf на любом узле.
  2. В элемент rm надо добавить секцию service:
    
        <rm>
            <service autostart="1" domain="" exclusive="0" name="" recovery="restart">
    
            </service>
        </rm>
    
    
  3. Далее следует настроить параметры service:
    • autostart — 1 разрешает автоматический запуск службы при запуске кластера, а 0 отключает эту возможность. По умолчанию равен 1.
    • domain — резервный домен (дополнительно).
    • exclusive — запрещает запуск службы, если на узле уже работают другие службы.
    • recovery — определяет правила восстановления службы. Возможные значения: relocate, restart, disable, restart-disable.
  4. Теперь можно добавить глобальные или специализированные ресурсы.
    Пример добавления Apache, который будет использовать глобальные ресурсы:
    
        <rm>
            <resources>
                    <fs name="web_fs" device="/dev/sdd2" mountpoint="/var/www" fstype="ext3"/>
                    <ip address="127.143.131.100" monitor_link="yes" sleeptime="10"/>
                    <apache config_file="conf/httpd.conf" name="example_server" server_root="/etc/httpd" shutdown_wait="0"/>
            </resources>
            <service autostart="1" domain="example_pri" exclusive="0" name="example_apache" recovery="relocate">
                    <fs ref="web_fs"/>
                    <ip ref="127.143.131.100"/>
                    <apache ref="example_server"/>
            </service>
        </rm>
    
    
    Пример добавления Apache, который будет использовать специализированные ресурсы:
    
        <rm>
            <service autostart="0" domain="example_pri" exclusive="0" name="example_apache2" recovery="relocate">
                    <fs name="web_fs2" device="/dev/sdd3" mountpoint="/var/www2" fstype="ext3"/>
                    <ip address="127.143.131.101" monitor_link="yes" sleeptime="10"/>
                    <apache config_file="conf/httpd.conf" name="example_server2" server_root="/etc/httpd" shutdown_wait="0"/>
            </service>
        </rm>
    
    
    Пример 7.10, «Добавление двух служб с разными типами ресурсов» содержит пример cluster.conf с двумя службами.
    • example_apache использует глобальные ресурсы web_fs, 127.143.131.100 и example_server.
    • example_apache2 использует специализированные ресурсы web_fs2, 127.143.131.101 и example_server2.
  5. Увеличьте значение config_version на единицу. Например, если исходное выражение выглядело как config_version="2", после изменения оно будет выглядеть так: config_version="3".
  6. Сохраните /etc/cluster/cluster.conf.
  7. Дополнительно можно выполнить проверку соответствия формата схеме в cluster.rng:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  8. Выполните cman_tool version -r, чтобы скопировать изменения на остальные узлы в кластере.
  9. Убедитесь, что конфигурация была скопирована.
  10. Раздел 7.8, «Проверка конфигурации» содержит дальнейшую информацию.

Пример 7.10. Добавление двух служб с разными типами ресурсов


<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>
       <resources>
           <fs name="web_fs" device="/dev/sdd2" mountpoint="/var/www" fstype="ext3"/>
           <ip address="127.143.131.100" monitor_link="yes" sleeptime="10"/>
           <apache config_file="conf/httpd.conf" name="example_server" server_root="/etc/httpd" shutdown_wait="0"/>
       </resources>
       <service autostart="1" domain="example_pri" exclusive="0" name="example_apache" recovery="relocate">
           <fs ref="web_fs"/>
           <ip ref="127.143.131.100"/>
           <apache ref="example_server"/>
       </service>
       <service autostart="0" domain="example_pri" exclusive="0" name="example_apache2" recovery="relocate">
           <fs name="web_fs2" device="/dev/sdd3" mountpoint="/var/www2" fstype="ext3"/>
           <ip address="127.143.131.101" monitor_link="yes" sleeptime="10"/>
           <apache config_file="conf/httpd.conf" name="example_server2" server_root="/etc/httpd" shutdown_wait="0"/>
       </service>
   </rm>
</cluster>