Annexe F. LVM haute disponibilité (HA-LVM)

Le module complémentaire Red Hat High Availability fournit la prise en charge haute disponibilité des volumes LVM (HA-LVM) dans une configuration de basculement. Celle-ci est différente des configurations active/active qui sont activées par CLVM (gestionnaire de volumes logiques clusterisés), qui est un ensemble d'extensions mises en cluster de LVM permettant à un cluster d'ordinateurs de gérer leur stockage partagé.
L'utilisation de CLVM ou de HA-LVM doit être basée sur les besoins des applications ou services déployés.
  • Si les applications sont conscientes de l'existence du cluster et ont été paramétrées pour être exécutées simultanément sur de multiples machines à la fois, alors CLVM devrait être utilisé. Plus particulièrement, si plus d'un nœud de votre cluster requiert accès à votre stockage, qui sera ensuite partagé à travers les différents nœuds actifs, alors vous devrez utiliser CLVM. CLVM permet à un utilisateur de configurer des volumes logiques sur un stockage partagé en verrouillant l'accès au stockage physique pendant qu'un volume est en cours de configuration et utilise les services de verrouillage clusterisés pour gérer le stockage partagé. Pour obtenir des informations sur CLVM et sur la configuration LVM en général, reportez-vous au document Administration LVM.
  • Si les applications fonctionnent de manière optimale dans des configurations actives/passives (basculement) où seul un nœud unique accédant au stockage est actif à la fois, vous devriez utiliser des agents LVM de haute disponibilité (HA-LVM).
La plupart des applications fonctionneront mieux sous une configuration active/passive car elles ne sont pas conçues ou optimisées pour être exécutées simultanément avec d'autres instances. Choisir d'exécuter une application qui n'est pas consciente des clusters sur des volumes logiques clusterisés peut provoquer une dégradation de la performance si le volume logique est mis en miroir. Ceci est dû au fait qu'il y a une surcharge de communications du ou des cluster(s) pour les volumes logiques dans ces instances. Une application consciente du ou des cluster(s) doit être en mesure de réaliser des améliorations de la performance au-delà des pertes de performance offertes par les systèmes de fichiers du ou des cluster(s) et des volumes logiques reconnaissant le(s) cluster(s). Ceci est plus facilement faisable pour certaines applications et charges de travail que pour d'autres. Déterminer quels sont les pré-requis du cluster et si l'effort supplémentaire pour optimiser un cluster dans une configuration active/active offrira des dividendes est la meilleure manière de choisir entre deux variantes de LVM. La plupart des utilisateurs obtiendront les meilleurs résultats de haute disponibilité en utilisant HA-LVM.
HA-LVM et CLVM sont similaires dans le fait qu'ils empêchent la corruption des métadonnées LVM et de ses volumes logiques, qui pourraient autrement se produire si de multiples machines étaient autorisées à effectuer des changements superposés. HA-LVM impose une restriction faisant qu'un volume logique peut uniquement être activé de manière exclusive ; c'est-à-dire qu'il ne peut être actif que sur une seule machine à la fois. Ceci signifie que seules des implémentations locales (non-clusterisées) de pilotes de stockages sont utilisées. Éviter une surcharge de coordination de cluster de cette manière permet d'améliorer la performance. CLVM n'impose pas de telles restrictions - l'utilisateur est libre d'activer un volume logique sur toutes les machines d'un cluster, ce qui pousse à utiliser des pilotes de stockage reconnaissant le cluster, permettant ainsi d'installer des systèmes de fichiers et des applications reconnaissant le cluster au-dessus de celui-ci.
HA-LVM peut être paramétré afin d'utiliser l'une de deux méthodes pour réaliser son mandat d'activation de volume logique de manière exclusive.
  • La méthode préférée utilise CLVM, mais celle-ci active uniquement les volumes logiques de manière exclusive. Cela présente les avantages d'une installation plus facile et permet une meilleure prévention des erreurs administratives (comme la suppression d'un volume logique en cours d'utilisation). Pour utiliser CLVM, les logiciels des modules complémentaires High Availability et Resilient Storage, y compris le démon clvmd, doivent être en cours d'exécution.
    La procédure pour configurer HA-LVM à l'aide de cette méthode est décrite dans la Section F.1, « Configurer le basculement HA-LVM avec CLVM (méthode préférée) ».
  • La seconde méthode utilise le verrouillage de machine locale et des « balises » LVM. Cette méthode présente l'avantage de ne pas nécessiter de paquetages de cluster LVM ; elle requiert cependant des étapes supplémentaires lors de son installation et n'empêchera pas un administrateur de supprimer par erreur un volume logique d'un nœud du cluster lorsqu'il n'est pas actif. La procédure pour configurer HA-LVM à l'aide de cette méthode est décrite dans la Section F.2, « Configurer le basculement HA-LVM avec le Tagging (étiquetage) ».

F.1. Configurer le basculement HA-LVM avec CLVM (méthode préférée)

Pour définir la basculement HA-LVM (à l'aide de la variante CLVM préférée), veuillez procéder aux étapes suivantes :
  1. Assurez-vous que votre système est configuré pour prendre en charge CLVM, ce qui requiert :
    • Les modules complémentaires High Availability et Resilient Storage installés, y compris le paquetage cmirror si les volumes logiques CLVM doivent être mis en miroir.
    • Le paramètre locking_type dans la section globale du fichier /etc/lvm/lvm.conf doit être défini sur la valeur « 3 ».
    • Les logiciels des modules complémentaires High Availability et Resilient Storage, y compris le démon clvmd, doivent être en cours d'exécution. Pour la mise en miroir CLVM, le service cmirrord doit aussi être lancé.
  2. Créez le volume logique et le système de fichiers à l'aide des commandes standard de LVM et des systèmes de fichiers, comme dans l'exemple suivant.
    # 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
    Pour obtenir des informations sur la création de volumes logiques LVM, reportez-vous au document Administration LVM.
  3. Modifiez le fichier /etc/cluster/cluster.conf afin d'inclure le nouveau volume logique créé en tant que ressource dans l'un de vos services. Alternativement, vous pouvez utiliser Conga ou la commande ccs pour configurer LVM et les ressources du système de fichiers du cluster. Ci-dessous figure une section exemple du gestionnaire de ressources du fichier /etc/cluster/cluster.conf, qui configure un volume logique CLVM en tant que ressource de 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>