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:
  1. Nella sezione fencedevices specificare ogni dispositivo di fencing usando un elemento fencedevice e gli attributi relativi al dispositivo di fencing. Esempio 7.3, «Dispositivo APC di fencing aggiunto al cluster.conf» mostra un esempio di un file di configurazione con un dispositivo di fencing APC.
  2. Nella sezione clusternodes all'interno dell'elemento fence di ogni sezione clusternode, specificare ogni metodo di fencing del nodo. Specificare il nome del metodo, usando method, name. Specificare il dispositivo di fencing per ogni metodo, usando device ed i relativi attributi, name insieme ai parametri specifici del dispositivo di fencing. Esempio 7.4, «Metodi di fencing aggiunti a cluster.conf» mostra un esempio di metodo di fencing con un dispositivo per ogni nodo nel cluster.
  3. Per metodi di fencing non-power (SAN/storage) alla sezione clusternodes aggiungere una sezione unfence. 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 di fence_node(8).
    La sezione unfence non contiene le sezioni method come la sezione fence. Essa contiene i riferimenti diretti device, i quali riflettono le sezioni del dispositivo corrispondenti per fence, con l'aggiunta dell'azione esplicita (action) di "on" o "enable". Lo stesso fencedevice viene indicato dalle righe fence e unfence device, e gli stessi argomenti per-nodo devono essere ripetuti.
    Specificando l'attributo action su "on" o "enable" permetterete l'abilitazione del nodo dopo il riavvio. Esempio 7.4, «Metodi di fencing aggiunti a cluster.conf» e Esempio 7.5, «cluster.conf: Metodi di fencing multipli per nodo» includono gli esempi degli attributi e degli elementi unfence.
    Per maggiori informazioni su unfence consultare la pagina man di fence_node.
  4. Aggiornare l'attributo config_version aumentando il proprio valore (per esempio, modificandolo da config_version="2" a config_version="3">).
  5. Salvare /etc/cluster/cluster.conf.
  6. (Opzionale) Convalidare il file aggiornato con lo schema del cluster (cluster.rng) eseguendo il comando ccs_config_validate. Per esempio:
    [root@example-01 ~]# ccs_config_validate 
    Configuration validates
    
  7. 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 che ricci sia in esecuzione su ogni nodo del cluster.
  8. Verificare che il file di configurazione aggiornato è stato diffuso.
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.