Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.3. Configuração de Fence

A configuração de fence consiste de (a) especificar um ou mais dispositivos fence em um cluster e (b) especificar um ou mais métodos fence para cada nó (usando um dispositivo fence ou dispositivos fence especificados).
Baseados no tipo de dispositivos fence e métodos fence requeridos para sua configuração, configure o cluster.conf conforme a seguir:
  1. Na seção fencedevices, especifique cada dispositivo fence, usando um elemento fencedevice e atributos dependentes de dispositivos fence. O Exemplo 7.3, “O Dispositivo Fence APC Adicionado ao cluster.conf exibe um exemplo de arquivo de configuração com um dispositivo fence APC adicionado a ele.
  2. Na seção clusternodes, dentro do elemento fence de cada seção do clusternode, especifique cada método fence do nó. Especifique o nome do método fence, usando o atributo method, name. Especifique o dispositivo fence para cada método fence, usando o elemento device e seus atributos, name e parâmetros específicos de dispositivos fence. O Exemplo 7.4, “Métodos Fence adicionados ao cluster.conf mostra um exemplo de um método fence com um dispositivo fence para nó no cluster.
  3. Para métodos fence sem energia (que é SAN/fence de armazenamento) na seção clusternodes, adicione uma seção unfence. Isto garante que um nó com fence não seja rehabilitado até que o nó seja reinicializado. Para mais informações sobre tirar um fence (unfencing) de um nó, consulte a página man fence_node(8).
    A seção unfence não contém seções method como a seção fence possui. Ela contém referências device diretamente, que espelha as seções dos dispositivos correspondentes para o fence, com a adição notável da ação explícita (action) do "on" ou "enable". O mesmo fencedevice é referenciado por ambas linhas de dispositivo fence e unfence e os mesmos argumentos por nó devem ser repetidos.
    Especifique o atributo action como "on" ou "enable" habilita o nó quando reinicializado. O Exemplo 7.4, “Métodos Fence adicionados ao cluster.conf e Exemplo 7.5, “cluster.conf: Múltiplos Métodos Fence por Nó” inclui exemplos dos elementos unfence e atribuídos.
    Para mais informações sobre o unfence consulte a página man fence_node.
  4. Atualize o atributo config_version incrementando seu valor (por exemplo, mudando de config_version="2" para config_version="3">).
  5. Salve o /etc/cluster/cluster.conf.
  6. (Opcional) Valide o arquivo atualizado contra o esquema de cluster (cluster.rng) rodando o comando ccs_config_validate. Por exemplo:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. Rode o comando cman_tool version -r para propagar a configuração e o resto dos nós do cluster. Isto também executará validação adicional. É necessário que o ricci esteja rodando em cada nó no cluster para ser capaz de propagar a informação de configuração de cluster atualizada.
  8. Verifique que o arquivo de configuração atualizado foi propagado.
Se requerido, você pode fazer configurações complexas com múltiplos métodos fence por nó e com múltiplos dispositivos fence por método fence. Quando especificar múltiplos métodos fence por nó, se o fence falhar usando o primeiro método, fenced, o daemon fence tenta o próximo método e continua a rotacionar os métodos até que um tenha sucesso.
As vezes, fazer o fence em um nó requer que se desabilite dois caminhos E/S ou duas portas de energia. Isto é feito especificando dois ou mais dispositivos dentro de um método fence. O fence roda o agente fence para cada linha de dispositivo fence; todos devem ser bem sucedidos para o fence ser considerado bem sucedido.
Mais configurações complexas são exibidas em “Exemplos de Configuração Fence”.
Você pode encontrar mais informações sobre configurar dispositivos fence específicos a partir da página man de um agente de dispositivo fence (por exemplo, a página man do fence_apc). Além disso, você pode obter mais informações sobre parâmetros fence no Apêndice A, Parâmetros de Dispositos Fence, os agentes fence em /usr/sbin/, o esquema de cluster em /usr/share/cluster/cluster.rng, e o esquema anotado em /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (por exemplo, /usr/share/doc/cman-3.0.12/cluster_conf.html).

7.3.1. Exemplos de Configuração Fence

Os seguintes exemplos mostram uma configuração simples com um método fence por nó e um dispositivo fence por método fence:
Os seguintes exemplos mostram configurações mais complexas:

Nota

Os exemplos nesta seção não são profundos; onde podem haver outras maneiras para configurar o fence dependendo de seus requerimentos.

Exemplo 7.3. O Dispositivo Fence APC Adicionado ao 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>

Neste exemplo, um dispositivo fence (fencedevice) foi adicionado ao elemento fencedevices, especificando o agente fence (agent) como o fence_apc, o endereço de IP (ipaddr) como apc_ip_example, o login (login) como login_example, o nome do dispositivo fence (name) como apc, e a senha (passwd) como password_example.

Exemplo 7.4. Métodos Fence adicionados ao 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>

Neste exemplo, um método fence (method) foi adicionado a cada nó. O nome do método fence (name) para cada nó é APC. O dispositivo (device) para o método fence em cada nó especifica o nome (name) como apc e um único switch de energia APC porta número (port) para cada nó. Por exemplo, a porta número para o node-01.example.com é 1 (port="1"). O nome do dispositivo para cada pontos de nó (device name="apc") ao dispositivo fence pelo nome (name) do apc nesta linha do fencedevices element: fencedevice agent="fence_apc" ipaddr="apc_ip_example" login="login_example" name="apc" passwd="password_example"/.

Exemplo 7.5. cluster.conf: Múltiplos Métodos Fence por Nó


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


Exemplo 7.6. cluster.conf: Fencing, Múltiplas Portas Multipath


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


Exemplo 7.7. cluster.conf: Nós Fence com Duas Fontes de Energia


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


Quando usar switches de energia para nós fence com duas fontes de energia, os agentes devem ser configurados para desligar ambas portas de energia antes de restaurar energia em cada das portas. O padrão de comportamento on-off do agente pode resultar na porta nunca sendo totalmente desabilitada no nó.