LVM: Cómo crear un volumen lógico en Linux

Introducción a LVM

Buenas a todos! en esta ocasión vamos a ver como crear un volumen lógico en sistemas linux.

LVM es un gestor de volúmenes lógicos para linux, el cuál nos permite operar sobre un disco duro físico/virtual pudiendo crear distintos grupos de volúmenes y volúmenes lógicos para almacenar en ellos los directorios que queramos.

Una de las ventajas y quizás la más potente, es la flexibilidad que aporta. Por ejemplo si nos quedamos sin espacio en el volumen lógico de nuestra home («/home/usuario»/), podremos redimensionar el volumen lógico sin problemas, siempre que tengamos espacio disponible en el disco duro.

LVM se compone de tres partes:

  • Volúmenes físicos (PV) : Son las particiones del disco duro con sistema de archivos LVM.
  • Grupo de volúmenes (VG) : Imprescindible ya que depende del PV, sin un PV asignado al VG no podremos operar sobre él. Dentro del VG crearemos los LV. Podemos tener varios volúmenes físicos asignados a un mismo grupo de volúmenes.
  • Volúmenes lógicos (LV) : Un volumen lógico es lo que montaremos en un directorio. Podemos tener varios volúmenes lógicos dentro de un grupo de volúmenes.

Una vez resumido qué es y cómo funciona LVM, vamos a ponernos en marcha.

Instalación LVM

Para poder utilizar lvm en linux debemos instalar el paquete en caso de que no venga instalado por defecto.

El paquete en cuestión se llama «lvm2«

Creación de un volumen lógico

Listamos los discos con «fdisk -l«:

Creamos una nueva partición al disco añadido para posteriormente asignarla como volumen físico (PV). Tenemos que seleccionar tipo de partición «Linux LVM«:

Una vez que tenemos creada la partición, la asignamos como PV ejecutando el comando «pvcreate /dev/sdb1«.

Podemos ver los volúmenes físicos creados, ejecutando el comando «pvscan«. Es útil para saber si una partición pertenece a lvm. Otra forma de ver más información sobre los PVs sería con el comando «pvdisplay«.

Podemos observar que PV de 5GiB asignado.

Ahora crearemos un grupo de volúmenes llamado «extendida». Lo creamos con el comando «vgcreate extendida /dev/sdb1«.

Vemos información acerca de este grupo de volúmenes con el comando «vgdisplay» o «vgscan«, dependiendo de la información que queramos ver.

Ahora llegamos al paso en el que tenemos que crear un volumen lógico dentro del grupo de volúmenes.

Supongamos que tenemos 2 usuarios en el sistema llamados «usuario1» y «usuario2«. Ambos vamos a limitarlos con 2gb en su home,por lo que vamos a crear 2 volúmenes lógicos con 2gb llamados «home-usuario1» y «home-usuario2«.

Los comandos para crearlos serían los siguientes:

  • lvcreate -L 2G -n home-usuario1 extendida
  • lvcreate -L 2G -n home-usuario2 extendida

¿Qué pasa con 1GB restante de los 5GB? Se lo asignamos al home de «usuario3».

  • lvcreate -l 100%FREE -n home-usuario3 extendida

Si os fijáis, esta vez no hemos creado el volumen indicando el tamaño específico, simplemente le hemos dicho que asigne el 100% libre del grupo de volúmenes.

Con «lvscan» o «lvdisplay» podemos observar los datos de los volúmenes lógicos creados.

Montaje de un volumen lógico

Una vez creados los volúmenes lógicos, vamos a darles formato para posteriormente poder montarlos. Los formateamos con «mkfs«:

  • mkfs.ext4 /dev/extendida/home-usuario1

Una vez formateados, montamos los volumenes en los directorios indicados anteriormente. ¡OJO! Si montamos el volumen en un directorio con contenido, perderemos el contenido de este. Aunque podemos volver a ver los datos desmontando el volumen.

root@lvm:/home/usuario3# ls
prueba1

root@lvm:/home/usuario3# mount /dev/extendida/home-usuario3 /home/usuario3

root@lvm:/home/usuario3# ls
lost+found

Observamos que hemos perdido el fichero «prueba1»

root@lvm:/home# umount /home/usuario3

root@lvm:/home# ls /home/usuario3

prueba1

Tras desmontar el volumen, recuperamos el fichero «prueba1»

En mi caso, cuando quiero hacer algo como esto, creo un directorio temporal y monto ahí el volumen para posteriormente hacer un rsync del contenido y no perder los datos.

mkdir /tmp/usuario1
mount /dev/extendida/home-usuario1 /tmp/usuario1
rsync -rtva /home/usuario1/* /tmp/usuario1
sending incremental file list
prueba
prueba1
prueba12
prueba123

sent 254 bytes received 92 bytes 692.00 bytes/sec
total size is 0 speedup is 0.00

Hacemos lo mismo para el usuario 2…

Una vez que tengamos los datos necesarios dentro de cada volumen lógico, los montamos en los directorios correctos.

Si hacemos un «df -h» podemos ver como están montados los volúmenes en los directorios y el tamaño de cada uno.

Para hacer persistente estos puntos de montaje tendremos que añadirlos al fichero «/etc/fstab«. Necesitaremos los UUID de cada volumen, podemos verlos con el comando «blkid«:

Añadimos al fichero «/etc/fstab» la siguiente linea sustituyendo el UUID de cada volumen y el punto de montaje.

UUID=fcde9bb7-4311-41e2-986a-647a672ebf83 /mnt/example ext4 defaults 0 2

Guardamos el fichero y ejecutamos «mount -a«.

Ya tendremos nuestro volúmenes lógicos montados y preparados para que se monten automáticamente cuando reiniciemos el sistema.

Si quieres aprender a extender un volumen lógico visita la siguiente entrada.

¡No olvides hacer click sobre el botón «Me gusta» y comparte si te ha servido de ayuda este tutorial sobre como crear un volumen lógico utilizando LVM.

¡Suscríbete para recibir notificaciones de nuevos tutoriales!

¡Saludos!

Referencias:

https://wiki.archlinux.org/index.php/LVM_(Espa%C3%B1ol)

Un comentario en “LVM: Cómo crear un volumen lógico en Linux

Deja un comentario