En el laboratorio de hoy vamos a ampliar un volumen de disco usando LVM (Logical Volume Management).
En primer lugar, ampliamos el espacio en disco de nuestra máquina virtual CentOS 7 desde la consola vcenter de vmware. Seguidamente, reiniciaremos el servidor para que el nuevo espacio sea visible.
Lo primero que necesitamos saber es como leer la nomenclatura de los dispositivos o puertos. En nuestro ejemplo usaremos la unidad /dev/sda1
En primer lugar /dev/ hace referencia al directorio de sistema dedicado a los dispositivos o Devices.
A continuación, nuestra unidad es del tipo sd. Podéis ver el siguiente listado las equivalencias:
- /dev/hd - Disco duro PATA.
- /dev/sd - Unidad de almacenamiento USB, SATA o SCSI
- /dev/cdrom - Unidad de almacenamiento óptico.
- /dev/ttyS0 - Puerto de transmisión en serie.
Seguidamente, encontraremos una letra, en nuestro ejemplo es la A. La letra equivale al Bus.
- a seria el primer bus del sistema.
- b seria el segundo bus del sistema.
- c seria el tercer bus del sistema.
Así sucesivamente...
Finalmente encontraremos un número, en nuestra unidad de ejemplo es el numero 1. El número equivale a la partición.
- 1 seria la primera partición de disco.
- 2 seria la segunda partición de disco.
- 3 seria la tercera partición de disco.
Así sucesivamente...
Por consiguiente, si tenemos estos dos ejemplos cada uno de ellos seria:
- /dev/sda1 - Es la primera partición del disco de una unidad de almacenamiento USB, SATA o SCSI, conectada al primer bus del sistema.
- /dev/sda2 - Es la segunda partición del disco de una unidad de almacenamiento USB, SATA o SCSI, conectada al primer bus del sistema.
Antes de la ampliación de disco y el reinicio nuestro servidor, ejecutamos el comando fdisk al disco /dev/sda, pudimos comprobar que la unidad de almacenamiento llamada /dev/sda tenia dos particiones. Como podéis ver, concuerdan con las definidas en los anteriores ejemplos.:
[root@srvcentos ~]# fdisk -l /dev/sda
Disk /dev/sda: 429.5 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a9bef
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 52217 418917376 8e Linux LVM
Después de haber ampliado de haber disco reiniciado nuestro servidor, ejecutaremos el comando fdisk al disco /dev/sda para ver el nombre del nuevo espacio asignado al disco. En nuestro ejemplo es /dev/sda3.
/dev/sda3 - Unidad de almacenamiento USB, SATA o SCSI, primer bus, tercera partición.
[root@srvcentos ~]# fdisk -l /dev/sda
Disk /dev/sda: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a9bef
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 52217 418917376 8e Linux LVM
/dev/sda3 52217 65270 104850875 83 Linux
Usaremos el comando llamado pvcreate para usar el nuevo espacio no particionado /dev/sda3 y crear un nuevo physical disk, que posteriormente agregaremos a nuestro volumen de disco usando Logical volume management o LVM.
[root@srvcentos ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
Podemos usar el comando llamado PVS, para ver la información de nuestros volúmenes físicos. PVS muestra información sobre volúmenes físicos formateados. En nuestro ejemplo tenemos dos.
[root@srvcentos ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 volume_group lvm2 a-- 399.51g 0
/dev/sda3 volume_group lvm2 a-- 99.99g 0
Por otro lado, podemos usar el comando VGS para mostrar información sobre grupos de volúmenes. VGS muestra información sobre grupos de volúmenes formateados.
En nuestro ejemplo, el único volume group que tenemos equivale al volumen físico de /dev/sda2. Nuestro objetivo será, añadir el volumen físico de /dev/sda3 al volume group llamado volume_group.
[root@srvcentos ~]# vgs
VG #PV #LV #SN Attr VSize VFree
volume_group 2 3 0 wz--n- 399.51g 0
También podemos usar el comando llamado vgdisplay para ver el nombre de nuestro volume group. También aprovecharemos para ver la línea llamada Free PE / Size, esta indica las extensiones físicas libres disponibles en el volume group, podemos ver en nuestro ejemplo que por el momento no disponemos de espacio adicional para incluir al volumen.
[root@srvcentos ~]# vgdisplay
--- Volume group ---
VG Name volume_group
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 399.51 GiB
PE Size 4.00 MiB
Total PE 102274
Alloc PE / Size 102274 / 399.50 GiB
Free PE / Size 0 / 0
VG UUID qi39qy-Ydaf-ITFZ-Cnoe-L1hX-0jxN-BcX65X
Una vez hayamos creado nuestro nuevo physical disk y sepamos el nombre del volume group al que queremos anexar el nuevo espacio de disco, ejecutaremos el comando vgextend para extender el volume group añadiendo el physical disk /dev/sda3.
[root@srvcentos ~]# vgextend volume_group /dev/sda3
Volume Group "volume_group" Successfully extended
Podemos comprobar que el nuevo el physical disk ha sido añadido correctamente al volume group usando nuevamente el comando vgdisplay, para ver el el nuevo tamaño de nuestro volume group. Comprobaremos el nuevo tamaño de la linea llamada VG Size, si comparamos con la anterior ejecución de vgdisplay descubriremos que el tamaño ha sido incrementado.
La línea Free PE / Size, que indica las extensiones físicas libres disponibles en el volume group también habrá variado respecto la anterior ejecución de vgdisplay, mostrando el espacio libre disponible en el volume group. En nuestro ejemplo, serán 25598 extensiones físicas libres disponibles.
[root@srvcentos ~]# vgdisplay
--- Volume group ---
VG Name volume_group
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 499.5 GiB
PE Size 4.00 MiB
Total PE 127872
Alloc PE / Size 127872 / 499.50 GiB
Free PE / Size 25598 / 99.9 GiB
VG UUID qi39qy-Ydaf-ITFZ-Cnoe-L1hX-0jxN-BcX65X
El paso siguiente será verificar el Logical Volume que contiene el volume group. Comprobaremos, que el tamaño del volumen lógico todavía no refleja la ampliación de espacio que hemos agregado al volumen group.
[root@srvcentos ~]# lvdisplay
--- Logical volume ---
LV Path /dev/volume_group/Logical_Volume
LV Name Logical_Volume
VG Name volume_group
LV UUID EDwm2e-Oukk-dsnS-6Qn8-1P0m-BOed-x5jcX1
LV Write Access read/write
LV Creation host, time srvcentos.dom.local, 2015-03-24 11:30:18 +0100
LV Status available
# open 1
LV Size 343.62 GiB
Current LE 87966
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
A continuación deberemos ampliar el Logical Volume, añadiendo las 25598 extensiones libres añadidas en los pasos anteriores al volume group. Para realizar esta acción usaremos el comando lvextend.
[root@srvcentos ~]# lvextend -l +25598 /dev/volume_group/Logical_Volume
Extending logical volume Logical_Volume to 443.62 GiB
Logical Volume "Logical_Volume" successfully resized
El paso siguiente será comprobar que los cambios realixados en el Logical Volume que contiene nuestro volume group se han aplicado correctamente. Ejecutaremos una vez más lvdisplay y comprobaremos, que el tamaño del volumen lógico ya refleja la ampliación de espacio que hemos agregado al volumen group.
[root@srvcentos ~]# lvdisplay
--- Logical volume ---
LV Path /dev/volume_group/Logical_Volume
LV Name Logical_Volume
VG Name volume_group
LV UUID EDwm2e-Oukk-dsnS-6Qn8-1P0m-BOed-x5jcX1
LV Write Access read/write
LV Creation host, time srvcentos.dom.local, 2015-03-24 11:30:18 +0100
LV Status available
# open 1
LV Size 443.62 GiB
Current LE 113566
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
Después de realizar la ampliación del Logical Volume deberemos hacer efectivo el nuevo tamaño en nuestro filesystem, para ello ejecutamos la construcción del comando resize2fs que mostramos a continuación.
resize2fs /dev/volume_group/Logical_Volume
Espero os sea de utilidad.