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:
- Na seção
fencedevices
, especifique cada dispositivo fence, usando um elementofencedevice
e atributos dependentes de dispositivos fence. O Exemplo 7.3, “O Dispositivo Fence APC Adicionado aocluster.conf
” exibe um exemplo de arquivo de configuração com um dispositivo fence APC adicionado a ele. - Na seção
clusternodes
, dentro do elementofence
de cada seção doclusternode
, especifique cada método fence do nó. Especifique o nome do método fence, usando o atributomethod
,name
. Especifique o dispositivo fence para cada método fence, usando o elementodevice
e seus atributos,name
e parâmetros específicos de dispositivos fence. O Exemplo 7.4, “Métodos Fence adicionados aocluster.conf
” mostra um exemplo de um método fence com um dispositivo fence para nó no cluster. - Para métodos fence sem energia (que é SAN/fence de armazenamento) na seção
clusternodes
, adicione uma seçãounfence
. 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 manfence_node
(8).A seçãounfence
não contém seçõesmethod
como a seçãofence
possui. Ela contém referênciasdevice
diretamente, que espelha as seções dos dispositivos correspondentes para ofence
, com a adição notável da ação explícita (action
) do "on" ou "enable". O mesmofencedevice
é referenciado por ambas linhas dedispositivo
fence
eunfence
e os mesmos argumentos por nó devem ser repetidos.Especifique o atributoaction
como "on" ou "enable" habilita o nó quando reinicializado. O Exemplo 7.4, “Métodos Fence adicionados aocluster.conf
” e Exemplo 7.5, “cluster.conf
: Múltiplos Métodos Fence por Nó” inclui exemplos dos elementosunfence
e atribuídos.Para mais informações sobre ounfence
consulte a página manfence_node
. - Atualize o atributo
config_version
incrementando seu valor (por exemplo, mudando deconfig_version="2"
paraconfig_version="3">
). - Salve o
/etc/cluster/cluster.conf
. - (Opcional) Valide o arquivo atualizado contra o esquema de cluster (
cluster.rng
) rodando o comandoccs_config_validate
. Por exemplo:[root@example-01 ~]#
ccs_config_validate
Configuration validates - 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 oricci
esteja rodando em cada nó no cluster para ser capaz de propagar a informação de configuração de cluster atualizada. - Verifique que o arquivo de configuração atualizado foi propagado.
- Consulte a Seção 7.4, “Configurar Domínios de Failover”.
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ó.