7.4. Configurazione dei domini di failover

Un dominio di failover è un insieme specifico di nodi del cluster in grado di eseguire un servizio in presenza di un nodo fallito. Il dominio di failover può avere le seguenti caratteristiche:
  • Unrestricted — Permette all'utente di specificare un insieme di membri preferiti e di indicare altresì che un servizio del cluster assegnato a questo dominio può essere eseguito su qualsiasi membro disponibile.
  • Restricted — Permette all'utente di limitare i membri in grado di eseguire un servizio particolare. Se nessuno dei membri di un dominio di failover limitato è disponibile, il servizio non potrà essere avviato (sia manualmente che dal software del cluster).
  • Unordered — Quando un servizio viene assegnato ad un dominio di failover non ordinato, il membro sul quale il servizio viene eseguito verrà selezionato dal gruppo di membri disponibili nel dominio di failover senza seguire alcuna priorità.
  • Ordered — Permette all'utente di specificare un ordine preferito tra i membri di un dominio di failover. I domini di failover ordinati prima selezionano il numero di priorità più basso. Quindi il dominio di failover con una priorità "1" indica la priorità più alta e quindi il nodo preferito in un dominio di failover. A seguire il nodo preferito sarà quello con un numero di priorità più alto e così via.
  • Failback — Permette all'utente di specificare se un servizio in un dominio di failover deve essere passato sul nodo sul quale era in esecuzione originariamente prima del suo fallimento. La configurazione di questa funzione è utile in casi in cui un nodo fallisce ripetutamente ed è parte di un dominio di failover ordinato. In tal caso se un nodo è il nodo preferito in un dominio di failover sarà possibile passare il servizio tra il nodo preferito ed un altro nodo. Questa impostazione impatta negativamente sulle prestazioni.

    Nota

    La caratteristica di failback è applicabile solo se è stato configurato il failover ordinato.

Nota

La modifica della configurazione di un dominio di failover non ha alcun effetto sui servizi attualmente in esecuzione.

Nota

I domini di failover non sono necessari per un normale funzionamento.
Per impostazione predefinita i domini di failover non sono limitati ne ordinati.
In un cluster con numerosi membri l'uso di un dominio di failover limitato potrebbe ridurre il compito per l'impostazione del cluster per l'esecuzione di un servizio (come ad esempio httpd), il quale necessita di una impostazione identica della configurazione su tutti i membri che eseguono il servizio del cluster. Al posto di impostare l'intero cluster in modo da eseguire il servizio sarà necessario impostare solo i membri nel dominio di failover limitato associati con il servizio del cluster.

Nota

Per configurare un membro preferito creare un dominio di failover non limitato che comprende un solo membro del cluster. Così facendo il servizio del cluster verrà eseguito principalmente sul membro (il membro preferito), permettendo anche di eseguire il failover del servizio del cluster su qualsiasi altro membro.
Per configurare un dominio di failover seguire le procedure di seguito indicate:
  1. Aprire /etc/cluster/cluster.conf su qualsiasi nodo nel cluster.
  2. Aggiungere la seguente struttura della sezione all'interno dell'elemento rm per ogni dominio di failover usato:
    
            <failoverdomains>
                <failoverdomain name="" nofailback="" ordered="" restricted="">
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                    <failoverdomainnode name="" priority=""/>
                </failoverdomain>
            </failoverdomains>
    
    

    Nota

    Il numero di attributi failoverdomainnode dipende del numero di nodi in un dominio di failover. La struttura della sezione failoverdomain mostra tre elementi failoverdomainnode (senza specificare alcun nodo), ciò significa che sono presenti tre nodi nel dominio di failover.
  3. Nella sezione failoverdomain fornire i valori per gli elementi e attributi. Per la descrizione degli elementi e attributi consultare la sezione failoverdomain dello schema del cluster. Lo schema del cluster è disponibile su /usr/share/doc/cman-X.Y.ZZ/cluster_conf.html (per esempio /usr/share/doc/cman-3.0.12/cluster_conf.html) su qualsiasi nodo del cluster. Per un esempio di sezione failoverdomains consultare Esempio 7.8, «Un dominio di failover aggiunto a cluster.conf».
  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 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.
Esempio 7.8, «Un dominio di failover aggiunto a cluster.conf» mostra un esempio di una configurazione con un dominio di failover non limitato e ordinato.

Esempio 7.8. Un dominio di failover aggiunto 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>
       <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>
   </rm>
</cluster>

La sezione failoverdomains contiene una sezione failoverdomain per ogni dominio di failover nel cluster. In questo esempio è presente un dominio di failover. Nella riga failoverdomain il nome (name) viene specificato come example_pri. Altresì non è specificato alcun failback (failback="0"), il failover è ordinato (ordered="1"), ed il dominio di failover non ha restrizioni (restricted="0").