5.5. Cómo crear un volumen lógico LVM en un cluster

La creación de un volumen lógico en espejo en un cluster requiere los mismos comandos y procedimientos que para crear un volumen lógico en espejo en un solo nodo. Sin embargo, para crear un volumen LVM en espejo en un cluster, el cluster y la infraestructura de espejo de cluster deben estar en ejecución, el cluster debe estar en cuorums, y el tipo de bloqueo en el archivo lvm.conf debe ser configurado correctamente para habilitar bloqueo de cluster, ya sea directamente o por medio del comando lvmconf como se describe en Sección 3.1, “Creación de volúmenes LVM en un cluster”.
El siguiente procedimiento crea en un volumen LVM en espejo en un cluster. Primero, el procedimiento chequea si los servicios de cluster están instalados y en ejecución, luego el procedimiento crea el volumen en espejo.
  1. Para crear un volumen lógico en espejo que sea compartido por todos los nodos en un cluster, el tipo de bloqueo debe establecerse correctamente en el archivo lvm.conf en cada nodo del cluster. Por defecto, el tipo de bloqueo se establece a local. Para cambiarlo, ejecute el siguiente comando en cada nodo del cluster para activar el bloqueo en agrupamiento.
    # /sbin/lvmconf --enable-cluster
  2. Para crear un volumen lógico en cluster, la infraestructura de cluster debe estar activa y ejecutándose en cada nodo en el cluster. El siguiente ejemplo verifica si el demonio clvmd está ejecutándose en el nodo desde el cual fue generado:
    [root@doc-07 ~]# ps auxw | grep clvmd
    root     17642  0.0  0.1 32164 1072 ?        Ssl  Apr06   0:00 clvmd -T20 -t 90
    
    El siguiente comando muestra la vista local del estatus de 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. Verifique si el paquete cmirror está instalado.
  4. Inicie el servicio cmirrord.
    [root@hexample-01 ~]# service cmirrord start
    Starting cmirrord:                                         [  OK  ]
    
  5. Crear el espejo. El primer paso es crea los volúmenes físicos. Los siguientes comandos crean tres volúmenes físicos. Dos de los volúmenes físicos serán utilizados pra los pilares del espejo y el tercer volumen físico contendrá el registro de espejo.
    [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. Crear el grupo de volúmenes. Este ejemplo crea un grupo de volúmenes vg001 que consta de tres volúmenes físicos que fueron creados en el paso anterior.
    [root@doc-07 ~]# vgcreate vg001 /dev/xvdb1 /dev/xvdb2 /dev/xvdc1
      Clustered volume group "vg001" successfully created
    
    Observe que la salida del comando vgcreate indica que el grupo de volúmenes está en cluster. Puede verificar que un grupo de volúmenes está en cluster con el comando vgs, el cual mostrará los atributos de grupo de volúmenes. Si un grupo de volúmenes está en cluster, mostrará un atributo c.
    [root@doc-07 ~]# vgs vg001
      VG       #PV #LV #SN Attr   VSize  VFree
      vg001      3   0   0 wz--nc 68.97G 68.97G
    
  7. El siguiente comando crea el volumen lógico en espejo mirrorlv desde el grupo de volúmenes vg001. Este ejemplo especifica qué extensiones del volumen físico serán utilizados para el volumen lógico.
    [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
    
    Puede utilizar el comando lvs para mostrar el progreso de la creación de espejo. El siguiente ejemplo, muestra que el espejo está 47% synced, luego 91% synced y después 100% synced cuando el espejo está completo.
    [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 finalización del espejo se anota en el registro del sistema:
    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. Puede utilizar lvs con las opciones -o +devices para mostrar la configuración del espejo, incluyendo qué dispositivos componesn los pilares de espejo. Puede ver que el volumen lógico en este ejemplo está compuesto por dos imágenees lineales y un registro.
    [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)
    
    Puede utilizar la opción seg_pe_ranges del lvs para mostrar la distribución de datos. Puede usar esta opción para verificar si su diseño es correctamente redundante. La salida de este comando muestra registros de PE en el mismo formato en que los comandos lvcreate y lvresize toman como entrada.
    [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
    

Nota

Para obtener información sobre recuperación de uno de los pilares de un volumen LVM en espejo, consulte la Sección 6.3, “Cómo recuperarse de una falla de un espejo LVM”.