Crear y expandir volúmenes

Instalar LVM2

Lo primero de todo es asegurarnos que nuestro kernel tiene soporte para LVM, sino es así hay que compilarlo con este soporte y después ejecutar:

apt-get install lvm2

Creación de volumen físico, grupo de volúmenes y volumen lógico

Para crear un volumen lógico primero es necesario crear los volúmenes físicos que se necesitarán y luego el grupo de volúmenes. Finalmente se podrá crear el volumen lógico que se busca y asignar un sistema de archivos al mismo. Para este paso vamos a suponer que tenemos un disco rígido nuevo, sin particionar. El disco en cuestión se identifica en el sistema como /dev/sdb.

Hacer partición del tipo LVM

cfdisk /dev/sdb1

Elegimos el tamaño de la partición, el tipo 8E (que es la de LVM), guardamos y salimos.

Crear el volumen físico

pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

Crear el grupo de volúmenes

vgcreate grupo_1 /dev/sdb1
Volume group "grupo_1" successfully created

Crear un volumen lógico

lvcreate grupo_1 -L 1.99G -n volumen_l1
Rounding up size to full physical extent 1.99 GB
Logical volume "volumen_l1" created

ls -l /dev/grupo_1/volumen_l1
lrwxrwxrwx 1 root root 27 2010-08-13 14:20 /dev/grupo_1/volumen_l1 -> /dev/mapper/grupo_1-volumen_l1

Crear el sistema de ficheros en el volumen lógico

mkfs.ext3 /dev/mapper/grupo_1-volumen_l1
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
130560 inodes, 522240 blocks
26112 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Agregar el nuevo volumen al FSTAB

vi /etc/fstab
/dev/mapper/grupo_1-volumen_l1 /volumen_l1 ext3 defaults 0 0

Montar el nuevo sistema de archivos y probarlo

mkdir /volumen_l1
mount /volumen_l1/
df -h
Filesystem            Size  Used Avail Use% Mounted on
....
....
/dev/mapper/grupo_1-volumen_l1
                      2.0G   36M  1.9G   2% /volumen_l1
....
....

echo "prueba" > /volumen_l1/archivo.txt
cat /volumen_l1/archivo.txt
prueba

Redimensionar un volumen lógico

Redimensionar el volumen lógico recién creado consiste en aumentar o reducir su tamaño. Es de destacar que el primero de los redimensionamientos será llevado a cabo en caliente, sin desmontar el volumen lógico.

Aumentar el tamaño

En este punto se considerará que se tiene un disco rígido adicional identificado como /dev/sdc y que el mismo tiene dos particiones, /dev/sdc1 y /dev/sdc2. Se utilizará la primera de ellas para extender el volumen creado en los pasos anteriores.

Tras dar el formato correcto a la partición (8E) y crear el volumen físico:

Extender el grupo de volúmenes

vgextend grupo_1 /dev/sdc1
Volume group "grupo_1" successfully extended

Extender el volumen lógico

lvextend -L +0.95G /dev/grupo_1/volumen_l1
Rounding up size to full physical extent 976.00 MB
Extending logical volume volumen_l1 to 2.95 GB
Logical volume volumen_l1 successfully resized

Redimensionar el sistema de archivos

Hasta aquí está todo bien, sin embargo aún nuestro volumen no ha crecido en tamaño, según muestra la salida del comando df.

df -h
Filesystem            Size  Used Avail Use% Mounted on
....
....
/dev/mapper/grupo_1-volumen_l1
                      2.0G   36M  1.9G   2% /volumen_l1
....
....

Lo que ha ocurrido es que, si bien el volumen ya cuenta con una mayor capacidad de almacenamiento, el sistema de archivos que se creó está limitando el tamaño del mismo. Por ello, es necesario extender el sistema de archivos existente. Este paso se realizará en caliente, es decir, sin desmontar el volumen.

resize2fs /dev/grupo_1/volumen_l1
resize2fs 1.41.3 (12-Oct-2008)
Filesystem at /dev/grupo_1/volumen_l1 is mounted on /volumen_l1; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/grupo_1/volumen_l1 to 772096 (4k) blocks.
The filesystem on /dev/grupo_1/volumen_l1 is now 772096 blocks long.

df -h
Filesystem            Size  Used Avail Use% Mounted on
....
....
/dev/mapper/grupo_1-volumen_l1
                      2.9G   36M  2.8G   2% /volumen_l1
....
....

cat /volumen_l1/archivo.txt
prueba

Como puede verse, el sistema de ficheros ha sido extendido sin desmontar el volumen y los datos que se tenían fueron conservados.

Herramientas informativas

Es posible ver el estado y detalles de los diferentes volúmenes físicos, grupos de volúmenes y volúmenes lógicos mediante tres sencillos comandos que se muestran a continuación:

pvdisplay
vgdisplay
lvdisplay
pvscan
vgscan
lvscan

« Linux | LVM2

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License