Appendice F. High Availability LVM (HA-LVM)

Red Hat High Availability Add-On fornisce il supporto per i volumi LVM ad elevata disponibilità (HA-LVM) in una configurazione di failover. Ciò risulta essere diverso da una configurazione attiva/attiva abilitata dal Clustered Logical Volume Manager (CLVM), il quale rappresenta un insieme di estensioni clusterizzate per LVM che permettono ad un cluster di computer di gestire lo storage condiviso.
In base alle necessità dei servizi o delle applicazioni implementate utilizzare CLVM o HA-LVM.
  • Se le applicazioni sono compatibili con i cluster ed in grado di essere eseguite simultaneamente su macchine multipli, allora è consigliato utilizzare CLVM. In particolare, se più nodi presenti nel cluster necessitano di un accesso allo storage condiviso tra i nodi attivi, allora sarà imperativo utilizzare CLVM. CLVM permette ad un utente di configurare i volumi logici sullo storage condiviso bloccando l'accesso allo storage fisico durante la configurazione di un volume logico, ed utilizza i servizi di blocco clusterizzati per gestire lo storage condiviso. Per informazioni su CLVM e sulla configurazione di LVM, consultare il Logical Volume Manager Administration.
  • Se le applicazioni vengono eseguite in maniera ottimale in configurazioni attiva/passiva (failover), dove il solo nodo in grado di accedere allo storage risulta essere attivo in un determinato momento, in questo caso utilizzare High Availability Logical Volume Management (HA-LVM).
La maggior parte delle applicazioni vengono eseguite al meglio con una configurazione attiva/passiva poichè esse non sono state create o ottimizzate per l'esecuzione con altre istanze. La scelta di eseguire una applicazione non compatibile con il cluster su volumi logici clusterizzati, potrebbe impattare negativamente sulle prestazioni se il volume logico è speculare. Tale situazione si verifica in presenza di un sovraccarico delle informazioni nelle comunicazioni del cluster per i volumi logici in queste istanze. Un'applicazione compatibile con il cluster dovrà essere in grado di migliorare le proprie prestazioni rispetto alle perdite di prestazioni introdotte dai file system e dai volumi logici conformi al cluster. Questo è più facilmente raggiungibile per alcune applicazioni e carichi di lavoro. Per poter scegliere tra le due varianti di LVM, determinare i requisiti del cluster e gli sforzi aggiuntivi per l'ottimizzazione ad un cluster attivo/attivo. Molti utenti ottengono i migliori risultati utilizzando HA-LVM.
HA-LVM e CLVM sono simili in quanto essi impediscono la corruzione dei metadati LVM e dei volumi logici. Tale situazione si può verificare se macchine multiple sono in grado di eseguire le modifiche. HA-LVM impone una restrizione in grado di permettere ad un solo volume logico di essere attivato in modo esclusivo; e cioè, attivo su una sola macchina per volta. Così facendo verranno usate solo implementazioni locali (non-clusterizzate) dei driver dello storage. Evitando l'overhead del cluster si potrà migliorare le prestazioni. CLVM non impone queste restrizioni - un utente è libero di attivare un volume logico su tutte le macchine presenti in un cluster; così facendo verrà forzato l'utilizzo di driver dello storage compatibili con il cluster, e quindi di applicazioni e file system compatibili con il cluster.
HA-LVM può essere impostato in modo da usare uno dei due metodi per l'attivazione esclusiva del volume logico.
  • Il metodo preferito utilizza CLVM, in questo modo i volumi logici saranno attivati solo in modo esclusivo. Uno dei vantaggi è rappresentato da una impostazione più semplice e migliore prevenzione di errori amministrativi (come ad esempio la rimozione di un volume logico in uso). Per poter usare CLVM, il software Resilient Storage Add-On e High Availability Add-On, incluso il demone clvmd, devono essere in esecuzione.
    La procedura per la configurazione di HA-LVM usando questo metodo è descritta in Sezione F.1, «Configurazione di HA-LVM Failover con CLVM (preferito)».
  • Il secondo metodo utilizza i "tag" LVM ed il blocco della macchina locale. Questo metodo presenta il vantaggio di non richiedere alcun pacchetto LVM; tuttavia sono presenti un numero maggiore di fasi per la sua impostazione e non impedisce all'amministratore la possibilità di rimuovere accidentalmente un volume logico da un nodo presente nel cluster quando non risulta attivo. La procedura per la configurazione di HA-LVM usando questo metodo viene descritta in Sezione F.2, «Configurazione HA-LVM Failover con l'uso di tag».

F.1. Configurazione di HA-LVM Failover con CLVM (preferito)

Per impostare un HA-LVM failover (utilizzando la variante CLVM preferita), eseguire le seguenti fasi:
  1. Assicuratevi che il sistema sia configurato per supportare CLVM:
    • L'High Availability Add-On ed il Resilient Storage Add-On devono essere installati, incluso il pacchetto cmirror se i volumi logici CLVM devono essere speculari.
    • Il parametro locking_type nella sezione globale del file /etc/lvm/lvm.conf deve avere un valore '3'.
    • L'High Availability Add-On ed il Resilient Storage Add-On software, incluso il demone clvmd, devono essere in esecuzione. Per il mirroring CLVM, anche il servizio cmirrord deve essere in esecuzione.
  2. Creare il volume logico ed il file system usando LVM standard ed i comandi del file system come riportato nel seguente esempio.
    # pvcreate /dev/sd[cde]1
    
    # vgcreate -cy shared_vg /dev/sd[cde]1
    
    # lvcreate -L 10G -n ha_lv shared_vg
    
    # mkfs.ext4 /dev/shared_vg/ha_lv
    
    # lvchange -an shared_vg/ha_lv
    Per informazioni sulla creazione dei volumi logici LVM consultate la Logical Volume Manager Administration.
  3. Modificare il file /etc/cluster/cluster.conf in modo da includere il volume logico appena creato come risorsa in uno dei seguenti servizi. Alternativamente usare Conga o il comando ccs per configurare le risorse del file system e LVM per il cluster. Di seguito viene riportato un esempio di sezione del gestore delle risorse del file /etc/cluster/cluster.conf che configura un volume logico CLVM come risorsa del cluster:
    
    <rm>  
       <failoverdomains>
           <failoverdomain name="FD" ordered="1" restricted="0">
              <failoverdomainnode name="neo-01" priority="1"/>
              <failoverdomainnode name="neo-02" priority="2"/>
           </failoverdomain>
       </failoverdomains>
       <resources>
           <lvm name="lvm" vg_name="shared_vg" lv_name="ha-lv"/>
           <fs name="FS" device="/dev/shared_vg/ha-lv" force_fsck="0" force_unmount="1" fsid="64050" fstype="ext4" mountpoint="/mnt" options="" self_fence="0"/>
       </resources>
       <service autostart="1" domain="FD" name="serv" recovery="relocate">
           <lvm ref="lvm"/>
           <fs ref="FS"/>
       </service>
    </rm>