LVM (o Gestor de Volúmenes Lógicos)  te permite crear y gestionar el almacenamiento de los discos duros de una manera muy útil; añadir, eliminar y cambiar el tamaño de las particiones según su demanda.  La primera vez que trabajas con LVM puede ser un poco confuso para los recién llegados, lo que esta entrada pretende es mostrar los aspectos básicos de LVM de una manera sencilla.

420px-LVM-esquema_basico

Pero antes de empezar con los comandos hay que aprenderse ciertas palabras para comprender correctamente este tutorial y LVM. Lo más importante que tienes que saber de LVM son:

  • Physical Volumes (Volúmenes Físicos): Estos son los discos físicos o particiones del disco, como /dev/sda o /dev/sda1. Estos son los que montamos en nuestro sistema de ficheros. En LVM podemos combinar varios PV en Grupos de Volúmenes o Group Volumes.
  • Volume Groups (Grupos de Volúmenes): Un VG se compone de PV (Volúmenes Físicos) reales, y es el almacenamiento utilizado para crear los Volúmenes Lógicos que se pueden crear, redimensionar, eliminar y utilizar. Se puede considerar que un VG como una «partición virtual» que se compone de un número arbitrario de PV.
  • Logical Volumes (Volúmenes Lógicos): Estos son los volúmenes que en última instancia terminan siendo montados en tu sistema. Se pueden añadir, eliminar, cambiar de tamaño (incluso cuando el LV está trabajando, es decir, no es necesario desmontarlo para hacer una modificación).

Preparación

Para realizar esta entrada he instalado un Debian 8 en una maquina virtual con VirtualBox. Después de la instalación he añadido un disco duro de 8 GB el cual he particionado de la siguiente manera:

Dispositiu Arrenc.   Inici         Final    Blocs    Id  Sistema
/dev/sdb1            2048        8390655   194304    83  Linux
/dev/sdb2         8390656       16777215  4193280    83  Linux

Instalar LVM

En el caso de que no tengas instalado LVM, puedes hacerlo con este comando o instalando el paquete LVM2 con tu gestor de Software favorito:

# aptitude install lvm2

Trabajando con LVM

Vamos a explicar unos cuantos comandos para gestionar nuestros volúmenes, el primero del que vamos a hablar es vgdisplay. Este comando nuestra los VG que tienes en tu sistema.

root@PortalLinux:~# vgdisplay 
No volume groups found

Por ahora, nos dice que no tenemos ningún VG disponible. Para crear un VG con la primera partición del segundo disco primero tenemos que crear un PV (Volumen Físico):

root@PortalLinux:~# pvcreate /dev/sdb1
Writing physical volume data to disk "/dev/sdb1"
Physical volume "/dev/sdb1" successfully created

Y con el comando pvdisplay podemos ver los Volúmenes Físicos que tenemos:

root@PortalLinux:~# pvdisplay
"/dev/sdb1" is a new physical volume of "4,00 GiB"
--- NEW Physical volume ---
PV Name               /dev/sdb1
VG Name
PV Size               4,00 GiB
Allocatable           NO
PE Size               0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               cxt2AN-G0AT-vMGi-ULq0-glkQ-heFv-GZFo3y

Una vez tenemos un PV creado, ahora podemos hacer un grupo de volúmenes con:

root@PortalLinux:~# vgcreate Datos /dev/sdb1
Volume group "Datos" successfully created

Donde Datos es el nombre que le damos a nuestro VG para poderlo identificar de una manera más fácil.

root@PortalLinux:~# vgdisplay
--- Volume group ---
VG Name               Datos
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               4,00 GiB
PE Size               4,00 MiB
Total PE              1023
Alloc PE / Size       0 / 0
Free  PE / Size       1023 / 4,00 GiB
VG UUID               MXSGZi-W1Cr-ntc8-Nk8V-wAKq-5v3V-yp8PfV

Ahora ya tenemos PV creado y un VG llamado «Datos», el siguiente paso es crear los LV que estarán dentro de ese grupo de volúmenes, para crear LV hay que hacerlo con el siguiente comando:

# lvcreate -n NombreLV -L 2G Datos
root@PortalLinux:~# lvcreate -n Personales -L 2G Datos
Logical volume "Personales" created
root@PortalLinux:~# lvcreate -n Publicos -L 1G Datos
Logical volume "Publicos" created
root@PortalLinux:~# lvcreate -n Otros -L 900MB Datos
Logical volume "Otros" created

Para poder ver los LV creados en nuestro sistema lo podremos hacer con lvdisplay:

root@PortalLinux:~# lvdisplay
--- Logical volume ---
LV Path                /dev/Datos/Personales
LV Name                Personales
VG Name                Datos
LV UUID                iZsm4I-ivkh-rgno-NmtK-VsTT-83BZ-avq5yo
LV Write Access        read/write
LV Creation host, time PortalLinux, 2015-03-15 16:35:23 +0100
LV Status              available
# open                 0
LV Size                2,00 GiB
Current LE             512
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           254:0

--- Logical volume ---
LV Path                /dev/Datos/Publicos
LV Name                Publicos
VG Name                Datos
LV UUID                0jqPlL-I1CA-FqGR-ZRvX-3SVq-u2Re-hAmGv2
LV Write Access        read/write
LV Creation host, time PortalLinux, 2015-03-15 16:35:44 +0100
LV Status              available
# open                 0
LV Size                1,00 GiB
Current LE             256
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           254:1

--- Logical volume ---
LV Path                /dev/Datos/Otros
LV Name                Otros
VG Name                Datos
LV UUID                wFeQSH-ZKEH-KgAB-8TIi-1rJn-s6IS-N0G5QT
LV Write Access        read/write
LV Creation host, time PortalLinux, 2015-03-15 16:36:16 +0100
LV Status              available
# open                 0
LV Size                900,00 MiB
Current LE             225
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           254:2

Llegados a este punto, ¿Que tenemos que hacer con los LV? Los LV podríamos decir que son similares a las particiones de toda la vida, pero no funcionan de la misma manera. Por lo que lo siguiente a realizar es darles un formato:

# mkfs.ext4 /dev/Datos/Personales
# mkfs.ext4 /dev/Datos/Publicos
# mkfs.ext4 /dev/Datos/Otros

Montar un Volúmen Lógico

Para montar un Volúmen Lógico es tan sencillo como montar una partición:

# mount /dev/Datos/Personales /mnt
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación