Crear un mirror para un volumen lógico LVM existente

Al crear un mirror LVM se crear copias idénticas de los datos del volumen lógico en los distintos dispositivos que lo componen. La idea inicial es tener protección ante fallos de dispositivos aunque podemos dar otros usos interesantes a esta funcionalidad. Los vemos a continuación.

Creación del mirror LVM

En estos ejemplos vamos a trabajar con:

Volúmenes físicos/particiones (pv):

  • /dev/sdb1
  • /dev/sdc1

Grupo de volúmenes (vggroup):

  • vg_test

Volumen lógico (lv):

  • lv_test

Inicialmente vemos que el volumen lógico lv_test es un LV lineal (sin mirror) que se encuentra en el grupo vg_test el cual está formado únicamente por el dispositivo /dev/sdb1:

# lvs -a -o +devices | grep test
  LV      VG       Attr       LSize    Devices        
  lv_test vg_test  -wi-a----- 500,00m  /dev/sdb1(0)  

Vamos a crear un nuevo volumen físico con el disco que queremos añadir en mirror:

# pvcreate  /dev/sdc1
  Physical volume "/dev/sdc1" successfully created

Lo añadimos al grupo de volúmenes en el que está el LV a configurar en mirror:

# vgextend vg_test /dev/sdc1
  Volume group "vg_test" successfully extended

# pvs | grep sd[bc]
  /dev/sdb1  vg_test  lvm2 a--  1020,00m  520,00m
  /dev/sdc1  vg_test  lvm2 a--  1020,00m 1020,00m

Finalmente creamos el mirror (single mirror) para lv_test:

# lvconvert -m1 vg_test/lv_test
  vg_test/lv_test: Converted: 1,6%
  vg_test/lv_test: Converted: 79,2%
  vg_test/lv_test: Converted: 100,0%

Una vez sincronizado podemos observar que efectivamente el volumen lógico lv_test está formado por 2 volumenes físicos (además del log que mantiene la sincronización) en lugar de uno como vimos antes de las pruebas:

# lvs -a -o +devices | grep test
  LV      		VG       Attr       LSize    Devices        
  lv_test            vg_test  mwi-a-m--- 500,00m  lv_test_mlog 100,00  lv_test_mimage_0(0),lv_test_mimage_1(0)
  [lv_test_mimage_0] vg_test  iwi-aom--- 500,00m  /dev/sdb1(0)                           
  [lv_test_mimage_1] vg_test  iwi-aom--- 500,00m  /dev/sdc1(0)                           
  [lv_test_mlog]     vg_test  lwi-aom---   4,00m  /dev/sdc1(125)

Usar LVM mirror para sustituir discos

Otra funcionalidad interesante que nos permiten los mirror de LVM es sustituir discos en caliente. Como las tareas se hacen a nivel de LVM no es necesario desmontar el filesystem que está sobre el disco a sustituir. El procedimiento sería el siguiente, teniendo en cuenta que ya hemos añadido el disco nuevo al mirror (ver ejemplo anterior) y se encuentra sincronizado. Para sacar la pata del mirror que contiene el disco a sustituir, tan sencillo como:

# lvconvert -m0 vg_test/lv_test /dev/sdb1
  Logical volume lv_test converted.

En este caso hemos sacado la pata /dev/sdb1 del mirror. Una vez realizado, verificamos que efectivamente el volumen lógico ya no es un mirror sino un LV lineal:

# lvs -a -o +devices | grep test
  LV      VG       Attr       LSize       Devices        
  lv_test vg_test  -wi-a----- 500,00m    /dev/sdc1(0)   

Un comentario en “Crear un mirror para un volumen lógico LVM existente

Comments are closed.