5.5. Création d'un volume logique LVM miroir dans un cluster

La création d'un volume logique LVM miroir dans un cluster requiert les mêmes commandes et procédures que la création d'un volume logique LVM miroir sur un noeud unique. Cependant, afin de créer un volume LVM miroir dans un cluster, le cluster et l'infrastructure miroir du cluster doivent être en cours d'exécution, le cluster doit comporter le quorum et le type de verrouillage dans le fichier lvm.conf doit être correctement configuré pour permettre le verrouillage du cluster soit directement, soit par le biais de la commande lvmconf comme décrit dans la Section 3.1, « Création de volumes LVM dans un cluster ».
La procédure suivante crée un volume LVM miroir dans un cluster. D'abord, la procédure vérifie si les services du cluster sont bien installés et en cours d'exécution, puis elle crée le volume miroir.
  1. Pour créer un volume logique miroir partagé par tous les noeuds d'un cluster, le type de verrouillage doit être correctement défini dans le fichier lvm.conf dans chaque noeud du cluster. Par défaut, le type de verrouillage est défini sur « local ». Pour modifier ceci, exécutez la commande suivante dans chaque noeud du cluster afin de permettre le verrouillage clusterisé.
    # /sbin/lvmconf --enable-cluster
  2. Pour créer un volume logique clusterisé, l'infrastructure du cluster doit être en cours d'exécution sur chaque noeud du cluster. L'exemple suivant vérifie que le démon clvmd est en cours d'exécution sur le noeud d'où il provient :
    [root@doc-07 ~]# ps auxw | grep clvmd
    root     17642  0.0  0.1 32164 1072 ?        Ssl  Apr06   0:00 clvmd -T20 -t 90
    
    La commande suivante affiche une vue locale du statut du cluster :
    [root@example-01 ~]# cman_tool services
    fence domain
    member count  3
    victim count  0
    victim now    0
    master nodeid 2
    wait state    none
    members       1 2 3
    
    dlm lockspaces
    name          clvmd
    id            0x4104eefa
    flags         0x00000000
    change        member 3 joined 1 remove 0 failed 0 seq 1,1
    members       1 2 3
    
  3. Assurez-vous que le paquetage cmirror est bien installé.
  4. Lancez le service cmirrord.
    [root@hexample-01 ~]# service cmirrord start
    Starting cmirrord:                                         [  OK  ]
    
  5. Créez le miroir. La première étape est la création des volumes physiques. Les commandes suivantes créent trois volumes physiques. Deux des volumes physiques seront utilisés comme branches du miroir (de l'anglais, « mirror legs »), et le troisième volume physique contiendra le journal miroir.
    [root@doc-07 ~]# pvcreate /dev/xvdb1
      Physical volume "/dev/xvdb1" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdb2
      Physical volume "/dev/xvdb2" successfully created
    [root@doc-07 ~]# pvcreate /dev/xvdc1
      Physical volume "/dev/xvdc1" successfully created
    
  6. Créez le groupe de volumes. Cet exemple crée le groupe de volumes vg001, qui est composé des trois volumes physiques créés dans l'étape précédente.
    [root@doc-07 ~]# vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
      Clustered volume group "vg001" successfully created
    
    Remarquez que la sortie de la commande vgcreate indique que le groupe de volumes est clusterisé. Vous pouvez vérifier si un groupe de volumes est clusterisé avec la commande vgs, qui affiche les attributs d'un groupe de volumes. Si un groupe de volumes est clusterisé, l'attribut « c » sera affiché.
    [root@doc-07 ~]# vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
    
  7. Créez le volume logique miroir. Cet exemple crée le volume logique mirrorlv à partir du groupe de volumes vg001. Ce volume possède une seule branche de miroir (de l'anglais, « mirror leg »). L'exemple spécifie les extensions du volume physique qui seront utilisées pour le volume logique.
    [root@doc-07 ~]# lvcreate -l 1000 -m1 vg001 -n mirrorlv /dev/xvdb1:1-1000 /dev/xvdb2:1-1000 /dev/xvdc1:0
      Logical volume "mirrorlv" created
    
    Vous pouvez utiliser la commande lvs pour afficher le progrès de la création du miroir. L'exemple suivant affiche que le miroir est synchronisé à 47%, puis synchronisé à 91%, le miroir est créé lorsque la synchronisation est à 100%.
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     47.00
    [root@doc-07 log]# lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog     91.00   
    [root@doc-07 ~]#  lvs vg001/mirrorlv
      LV       VG       Attr   LSize Origin Snap%  Move Log           Copy%  Convert
      mirrorlv vg001    mwi-a- 3.91G                    vg001_mlog    100.00
    
    La création du miroir est notée dans le journal système :
    May 10 14:52:52 doc-07 [19402]: Monitoring mirror device vg001-mirrorlv for events
    May 10 14:55:00 doc-07 lvm[19402]: vg001-mirrorlv is now in-sync
    
  8. Vous pouvez utiliser la commande lvs avec les options -o +devices pour afficher la configuration du miroir, y compris pour afficher quels périphériques remplissent le rôle de branches du miroir (de l'anglais, « mirror legs »). On peut observer dans cet exemple que le volume logique est composé de deux images linéaires et d'un journal.
    [root@doc-07 ~]# lvs -a -o +devices
      LV                  VG         Attr   LSize  Origin Snap%  Move Log           Copy%  Convert Devices                                  
      mirrorlv            vg001      mwi-a-  3.91G                    mirrorlv_mlog 100.00         mirrorlv_mimage_0(0),mirrorlv_mimage_1(0)
      [mirrorlv_mimage_0] vg001      iwi-ao  3.91G                                                 /dev/xvdb1(1)                            
      [mirrorlv_mimage_1] vg001      iwi-ao  3.91G                                                 /dev/xvdb2(1)                            
      [mirrorlv_mlog]     vg001      lwi-ao  4.00M                                                 /dev/xvdc1(0)
    
    Vous pouvez utiliser l'option seg_pe_ranges de la commande lvs pour afficher la structure des données. Cette option peut être utilisée pour vérifier que votre structure est correctement redondante. La sortie de cette commande afficher les échelles PE sous le même format que les saisies des commande lvcreate et lvresize.
    [root@doc-07 ~]# lvs -a -o +seg_pe_ranges --segments
      PE Ranges                                      
      mirrorlv_mimage_0:0-999 mirrorlv_mimage_1:0-999
      /dev/xvdb1:1-1000                              
      /dev/xvdb2:1-1000                              
      /dev/xvdc1:0-0
    

Note

Pour plus d'informations sur la restauration d'échec d'une des branches d'un volume miroir LVM, voir Section 6.3, « Récupération suite à un échec miroir LVM ».