jueves, 7 de junio de 2012

Linux LVM, como crear y modificar grupos

LVM es un sistema de gestión de almacenamiento, a partir de un conjunto de discos físicos se puede crear un pool de almacenamiento lógico, en otras palabras, nos da la posibilidad de tener un espacio de almacenamiento único concatenando varios discos físicos.

Creación de un grupo LVM.

En el siguiente ejemplo vamos a ver como crear un grupo LVM, para luego montarlo como filesystem.

En primer lugar crearemos un volumen físico partiendo de un disco previamente formateado con la utilidad del sistema operativo fdisk.

[root@TEST ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created

A continuación es necesario crear un grupo de volúmenes que incluya el volumen físico previamente creado. En este ejemplo se ha creado con el Physical Extent Size (PE size) de 4MB.

[root@TEST ~]# vgcreate –s 4M vg01 /dev/sdb1

Finalizaremos el grupo LVM con la creación de un volumen lógico dentro del grupo previamente creado.

[root@TEST ~]# lvcreate –L 40G –n lv01 vg01

Para finalizar se tiene que dar formato al volumen lógico para ser montado posteriormente como filesystem.

[root@TEST ~]# mkfs –t ext3 –m 1 –v /dev/vg01/lv01

Se monta el filesystem.

[root@TEST ~]# mount –t ext3 /dev/vg01/lv01 /www

Modificación de un grupo LVM.

Cuando vamos a modificar un grupo? Pues por ejemplo cuando el grupo está llegando al límite del espacio usado, y queremos añadir un disco para aumentar el espacio.

En nuestro ejemplo tenemos estos Filesystems.

[root@TEST ~]# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
                       19G   15G  2,7G  85% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                 2,5G     0  2,5G   0% /dev/shm
/dev/mapper/vg01-lv01
                       40G   31G  7,2G  81% /www

Y tenemos estos discos físicos asignados a grupos LVM:

[root@TEST ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg01
  PV Size               39,99 GB / not usable 2,74 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              10238
  Free PE               0
  Allocated PE          10238
  PV UUID               GpKeRR-hwsH-sDaY-cCR5-fPPV-cxEh-3ZnB2N

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               24,90 GB / not usable 21,77 MB
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              796
  Free PE               0
  Allocated PE          796
  PV UUID               AAntIf-QPyN-gCVN-BtIn-wJdm-hOVV-PK2K7L

Este sistema tiene dos grupos vg01 y VolGroup00, en este ejemplo se va a añadir un disco adicional (/dev/sdc1)  al grupo vg01, para luego redimensionar el volumen lógico.

En primer lugar convertimos el nuevo disco /dev/sdc1 en un volumen físico.

[root@TEST ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created

Comprobamos que ya aparece como volumen físico.

[root@TEST ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg01
  PV Size               39,99 GB / not usable 2,74 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              10238
  Free PE               0
  Allocated PE          10238
  PV UUID               GpKeRR-hwsH-sDaY-cCR5-fPPV-cxEh-3ZnB2N

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               24,90 GB / not usable 21,77 MB
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              796
  Free PE               0
  Allocated PE          796
  PV UUID               AAntIf-QPyN-gCVN-BtIn-wJdm-hOVV-PK2K7L

  "/dev/sdc1" is a new physical volume of "39,99 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               39,99 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               6oVOzZ-c8bW-Bp6f-5urn-81yM-geUW-LWrJKZ

Con el volumen físico creado lo añadimos al grupo de volúmenes deseado.

[root@TEST ~]# vgextend vg01 /dev/sdc1
  Volume group "vg01" successfully extended

Comprobamos que el volumen físico se ha añadido correctamente al volumen lógico.

[root@TEST ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg01
  PV Size               39,99 GB / not usable 2,74 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              10238
  Free PE               0
  Allocated PE          10238
  PV UUID               GpKeRR-hwsH-sDaY-cCR5-fPPV-cxEh-3ZnB2N

  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vg01
  PV Size               39,99 GB / not usable 2,74 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              10238
  Free PE               10238
  Allocated PE          0
  PV UUID               6oVOzZ-c8bW-Bp6f-5urn-81yM-geUW-LWrJKZ

  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               24,90 GB / not usable 21,77 MB
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              796
  Free PE               0
  Allocated PE          796
  PV UUID               AAntIf-QPyN-gCVN-BtIn-wJdm-hOVV-PK2K7L

Con el comando vgdisplay vemos como el grupo vg01 ha pasado de tener 40Gb a 80Gb.

[root@TEST ~]# vgdisplay
  --- Volume group ---
  VG Name               vg01
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               79,98 GB
  PE Size               4,00 MB
  Total PE              20476
  Alloc PE / Size       10238 / 39,99 GB
  Free  PE / Size       10238 / 39,99 GB
  VG UUID               xHIILn-6y32-3z5Q-UHLX-HXxW-rkFw-SeB952

  --- Volume group ---
  VG Name               VolGroup00
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               24,88 GB
  PE Size               32,00 MB
  Total PE              796
  Alloc PE / Size       796 / 24,88 GB
  Free  PE / Size       0 / 0
  VG UUID               ozs9IT-zc57-i3NR-cYcr-TkSR-fwiF-E7IePF

Sin embargo en el S.O. todavía aparecen los 40Gb originales.

[root@TEST ~]# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
                       19G   15G  2,7G  85% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                 2,5G     0  2,5G   0% /dev/shm
/dev/mapper/vg01-lv01
                       40G   31G  7,2G  81% /www

Esto es debido a que el volumen lv01 que se encuentra dentro del grupo vg01 todavía no ha sido extendido, tal y como se ve en la siguiente imagen.

[root@TEST ~]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg01/lv01
  VG Name                vg01
  LV UUID                rodk4z-Sk9f-DGcS-5lIv-OZWP-OXIv-tSmS6V
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                39,99 GB
  Current LE             10238
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

En el siguiente paso se procede a extender el volumen lógico lv01.

[root@TEST ~]# lvextend -L+39,9G /dev/vg01/lv01
  Rounding up size to full physical extent 39,90 GB
  Extending logical volume lv01 to 79,90 GB
  Logical volume lv01 successfully resized

[root@TEST ~]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg01/lv01
  VG Name                vg01
  LV UUID                rodk4z-Sk9f-DGcS-5lIv-OZWP-OXIv-tSmS6V
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                79,90 GB
  Current LE             20455
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

[root@TEST ~]# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
                       19G   15G  2,7G  85% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                 2,5G     0  2,5G   0% /dev/shm
/dev/mapper/vg01-lv01
                       40G   31G  7,2G  81% /www

En este punto ya está el volumen lógico extendido a 79,9G pero el sistema operativo todavía no es consciente de ello, para eso es necesario redimensionar el filesystem.

Ejecución de la redimensión del file system.

[root@TEST ~]# resize2fs /dev/vg01/lv01
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg01/lv01 is mounted on /www; on-line resizing required
Performing an on-line resize of /dev/vg01/lv01 to 20945920 (4k) blocks.
The filesystem on /dev/vg01/lv01 is now 20945920 blocks long.

[root@TEST ~]# df -h
S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
                       19G   15G  2,7G  85% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                 2,5G     0  2,5G   0% /dev/shm
/dev/mapper/vg01-lv01
                       79G   31G   45G  41% /www

Ya tenemos el Filesystem redimensionado a 80G.

Un saludo!

No hay comentarios:

Publicar un comentario