Grupos de volumen (volume groups)

Los grupos de volumen son el equivalente a discos duros virtuales. Es decir un grupo de volumen estará formado por uno o varios dispositivos físicos o particiones.

Un grupo de volumen se crea de la siguiente forma:

[root@sal]# vgcreate data_vg /dev/sda /dev/sdb /dev/sdc5
  Volume group "data_vg" successfully created
[root@sal]# 

De esta forma habremos creado un grupo de volumen, disco virtual, que estará formado por los dispositivos físicos /dev/sda, /dev/sdb y la partición /dev/sdc5.

Una vez hecho esto tendremos un directorio /dev/data_vg/ en el cual se irán creando los ficheros de dispositivo que hacen referencia a las particiones lógicas que creemos dentro de este grupo de volumen.

Información y detección de grupos de volumen

Podemos utilizar el comando vgscan para encontrar grupos de volumen:

[root@sal]# vgscan
  Reading all physical volumes. This may take a while...
  Found volume group "data_vg" using metadata type lvm2
[root@sal]#

También disponemos del comando vgdisplay que nos ofrece más información sobre los grupos de volumen encontrados:

[root@sal]# vgdisplay
  --- Volume group ---
  VG Name               data_vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               50,00 GB
  PE Size               4,00 MB
  Total PE              12799
  Alloc PE / Size       10240 / 40,00 GB
  Free  PE / Size       2559 / 10,00 GB
  VG UUID               JJ3bIX-tqSM-r8Qd-nt0b-jWm9-7O4n-YiZYBK
[root@sal]#

Sugerencia

Podemos ver información detallada sobre el grupo de volumen utilizando el flag -v.

[root@sal]# vgdisplay -v
  --- Volume group ---
  VG Name               data_vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               50,00 GB
  PE Size               4,00 MB
  Total PE              12799
  Alloc PE / Size       10240 / 40,00 GB
  Free  PE / Size       2559 / 10,00 GB
  VG UUID               JJ3bIX-tqSM-r8Qd-nt0b-jWm9-7O4n-YiZYBK

  --- Logical volume ---
  LV Name                /dev/data_vg/apache_lv
  VG Name                data_vg
  LV UUID                KCDc3t-jAHj-dNDK-I9qe-rF3B-oyya-Tg00JL
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                20,00 GB
  Current LE             5120
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/data_vg/mysql_lv
  VG Name                data_vg
  LV UUID                0m24gV-H9BC-MdbV-vSNZ-r57x-gx37-zUy22q
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                20,00 GB
  Current LE             5120
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:1

  --- Physical volumes ---
  PV Name               /dev/sdd
  PV UUID               fKgSus-ts2y-vbR2-mTfy-YKPY-Aju1-C8SgV0
  PV Status             allocatable
  Total PE / Free PE    12799 / 2559
[root@sal]#

El comando vgs también nos ofrece información:

[root@sal]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree
  data_vg   1   2   0 wz--n- 50,00G 10,00G
[root@sal]# 

Ampliación de un grupo de volumen

Cuando nos quedamos sin espacio en un grupo de volumen siempre podemos ampliarlo utilizando más dispositivos físicos o particiones. Para ello utilizaremos el comando vgextend:

[root@sal]# vgextend data_vg /dev/sdd
 Volume group "data_vg" successfully extended
[root@sal]# 

Reducción de un grupo de volumen

Podemos quitar dispositivos físicos de un grupo de volumen, siempre y cuando no esten en uso.

[root@sal]# vgreduce data_vg /dev/sdd
  Removed "/dev/sdd" from volume group "data_vg"
[root@sal]# 

Activación y desactivación de grupos de volumen

Para poder utilizar los grupos de volumen es necesario que esten activos. Utilizaremos el comando vgchange para activarlos y desactivarlos.

Sugerencia

El comando vgchange se utilizar para modificar los parámetros de los grupos de volumen.

Importación y exportación de grupos de volumen

Hay ocasiones en las que es necesario mover discos entre diferentes máquinas. Por ejemplo imaginemos que tenemos varias instancias de BBDD en una máquina.

La configuración ideal para un entorno de este tipo es que cada instancia tenga sus datos en su propia partición y cada partición este en un grupo de volumen diferente. De esta forma si alguna de las instancias crece, en términos de potencia, siempre es posible cambiar alguna instacia a otra máquina.

En este caso tendremos que exportar el grupo de volumen que queremos mover a otra máquina y posteriormente importarlo.

Será necesario desactivar todas las particiones lógicas de ese grupo de volumen:

[root@sal]# lvchange -a n /dev/data_vg/mysql_lv
[root@sal]# vgexport data_vg
 Volume group "data_vg" successfully exported
[root@sal]# 

Ahora podemos mover los dispositivos físicos que forman el grupo de volumen data_vg a otra máquina e importarlos para poder utilizarlos:

[root@pal]# vgimport -a
  Volume group "data_vg" successfully imported
[root@pal]# 

Eliminación de un grupo de volumen

Para poder eliminar un grupo de volumen necesitaremos que no esté en uso ninguna de las particiones lógicas presentes y que este desactivado.

[root@sal]# vgremove system_vg
  Volume group "system_vg" successfully removed
[root@sal]#