Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
7.3. Configurazione del fencing
La configurazione del fencing consiste nello specificare uno o più dispositivi di fencing in un cluster insieme ad uno o più metodi di fencing per ogni nodo (usando un dispositivo di fencing o dispositivo di fencing specificato).
In base al tipo di dispositivo ed al metodo di fencing necessari per la configurazione, configurare
cluster.conf
nel modo seguente:
- Nella sezione
fencedevices
specificare ogni dispositivo di fencing usando un elementofencedevice
e gli attributi relativi al dispositivo di fencing. Esempio 7.3, «Dispositivo APC di fencing aggiunto alcluster.conf
» mostra un esempio di un file di configurazione con un dispositivo di fencing APC. - Nella sezione
clusternodes
all'interno dell'elementofence
di ogni sezioneclusternode
, specificare ogni metodo di fencing del nodo. Specificare il nome del metodo, usandomethod
,name
. Specificare il dispositivo di fencing per ogni metodo, usandodevice
ed i relativi attributi,name
insieme ai parametri specifici del dispositivo di fencing. Esempio 7.4, «Metodi di fencing aggiunti acluster.conf
» mostra un esempio di metodo di fencing con un dispositivo per ogni nodo nel cluster. - Per metodi di fencing non-power (SAN/storage) alla sezione
clusternodes
aggiungere una sezioneunfence
. Così facendo un nodo isolato non verrà riabilitato fino a quando non verrà eseguito prima il riavvio. Per maggiori informazioni su come riabilitare un nodo consultare la pagina man difence_node
(8).La sezioneunfence
non contiene le sezionimethod
come la sezionefence
. Essa contiene i riferimenti direttidevice
, i quali riflettono le sezioni del dispositivo corrispondenti perfence
, con l'aggiunta dell'azione esplicita (action
) di "on" o "enable". Lo stessofencedevice
viene indicato dalle righefence
eunfence
device
, e gli stessi argomenti per-nodo devono essere ripetuti.Specificando l'attributoaction
su "on" o "enable" permetterete l'abilitazione del nodo dopo il riavvio. Esempio 7.4, «Metodi di fencing aggiunti acluster.conf
» e Esempio 7.5, «cluster.conf
: Metodi di fencing multipli per nodo» includono gli esempi degli attributi e degli elementiunfence
.Per maggiori informazioni suunfence
consultare la pagina man difence_node
. - Aggiornare l'attributo
config_version
aumentando il proprio valore (per esempio, modificandolo daconfig_version="2"
aconfig_version="3">
). - Salvare
/etc/cluster/cluster.conf
. - (Opzionale) Convalidare il file aggiornato con lo schema del cluster (
cluster.rng
) eseguendo il comandoccs_config_validate
. Per esempio:[root@example-01 ~]#
ccs_config_validate
Configuration validates - Eseguire il comando
cman_tool version -r
per diffondere la configurazione al resto dei nodi del cluster. Così facendo verrà eseguita anche una convalida aggiuntiva. Per propagare le informazioni aggiornate sulla configurazione del cluster è necessario chericci
sia in esecuzione su ogni nodo del cluster. - Verificare che il file di configurazione aggiornato è stato diffuso.
- Procedere alla Sezione 7.4, «Configurazione dei domini di failover».
Se necessario sarà possibile eseguire configurazioni complesse con metodi di fencing multipli per nodo e con dispositivi multipli per metodo di fencing. Quando si specificano metodi di fencing multipli per nodo se il processo di isolamento fallisce usando il primo metodo,
fenced
, il demone in questione prova il metodo successivo e continua con gli altri metodi fino a trovare quello corretto.
Talvolta per isolare un nodo sarà necessario disabilitare due percorsi I/O o due porte di alimentazione. È possibile eseguire questa operazione specificando due o più dispositivi all'interno di un metodo di fencing.
fenced
esegue l'agente per il processo di fencing solo una volta per ogni riga dispositivo-fencing; per avere un esito positivo tutte le operazioni devono avere successo.
sezione chiamata «Esempi di configurazione per il fencing» mostra le configurazioni più complesse.
Maggiori informazioni sulla configurazione di dispositivi specifici per il fencing sono disponibili sulla pagina man dell'agente dispositivo-fencing (per esempio la pagina man di
fence_apc
). Sarà possibile altresì ottenere maggiori informazioni sui parametri di fencing consultando Appendice A, Parametri del dispositivo di fencing, gli agenti per il fencing in /usr/sbin/
, lo schema del cluster su /usr/share/cluster/cluster.rng
, e lo schema annotato su /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html
(per esempio, /usr/share/doc/cman-3.0.12/cluster_conf.html
).
Esempi di configurazione per il fencing
I seguenti esempi riportano una configurazione semplice con un metodo di fencing per nodo ed un dispositivo per metodo di fencing.
I seguenti esempi riportano configurazioni piu complesse:
Nota
Gli esempi presenti in questa sezione non sono completi; è possibile configurare il fencing in modo diverso in base ai vostri requisiti.
Esempio 7.3. Dispositivo APC di fencing aggiunto al 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>
In questo esempio un dispositivo per il fencing (
fencedevice
) è stato aggiunto all'elemento fencedevices
specificando il fence agent (agent
) in fence_apc
, l'indirizzo IP (ipaddr
) in apc_ip_example
, il login (login
) in login_example
, il nome del dispositivo di fencing (name
) in apc
, e la password (passwd
) in password_example
.
Esempio 7.4. Metodi di fencing aggiunti a 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>
In questo esempio è stato aggiunto un metodo di fencing (
method
) ad ogni nodo. Il nome del metodo di fencing (name
) per ogni nodo è APC
. Il dispositivo (device
) per il metodo di fencing in ogni nodo specifica il nome (name
), come apc
, ed un numero di porta APC switch power unico (port
) per ogni nodo. Per esempio, il numero di porta per node-01.example.com è 1
(port="1"
). Il nome del dispositivo per ogni nodo (device name="apc"
) indica il dispositivo di fencing usando il nome (name
) di apc
nella riga dell'elemento fencedevices
: fencedevice agent="fence_apc"
ipaddr="apc_ip_example" login="login_example"
name="apc" passwd="password_example"/
.
Esempio 7.5. cluster.conf
: Metodi di fencing multipli per nodo
<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>
Esempio 7.6. cluster.conf
: Fencing, Porte multiple 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>
Esempio 7.7. cluster.conf
: Nodi per il fencing con gruppo di alimentazione doppio
<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>
Se si utilizzano gli interruttori per isolare i nodi con un gruppo di alimentazione doppio è necessario indicare agli agenti di disabilitare entrambe le porte prima di ripristinare l'alimentazione per le porte in questione. Il comportamento predefinito off-on dell'agente potrebbe non disabilitare correttamente l'alimentazione del nodo.