Hace ya casi un par de años vimos en una entrada cómo crear un Linux Logical Volume Manager (LVM) usando fdisk. En ese post cubrimos la primera parte necesaria para gestionar volúmenes lógicos en GNU/Linux además de hacer una introducción a LVM.
Vamos a continuar donde lo dejamos, omitimos el paso de fdisk porque está explicado en ese artículo. Partimos de la base entonces de que tenemos ya creada una partición Linux LVM, en nuestro caso /dev/sda3:
# fdisk -l | grep sda3 /dev/sda3 1 3232 25961008+ 8e Linux LVM
Crear los volúmenes físicos (PV – pvcreate)
Lo primero que debemos hacer cuando trabajamos con LVM es crear los volúmenes físicos (PV) de las particiones con las que queramos crear volúmenes lógicos. Esto lo hacemos con el comando pvcreate. Esto hay que hacerlo en todas las particiones que queramos usar con LVM. En nuestro caso de momento únicamente /dev/sda3:
# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
Si quisieramos añadir más particiones, simplemente sería ejecutar ese comando con cada una de ellas.
Nota: Hay que tener el paquete lvm2 instalado para poder usar LVM. En Debian:
# apt-get install lvm2
Crear el grupo de volúmen (VG – vgcreate)
Ahora que ya tenemos configuradas las particiones que queremos usar como LVM, podemos añadir el primer grupo de volumen, que contendrá ya nuestros volúmenes lógicos finales. Lo haremos con el comando vgcreate. En nuestro caso sólo tenemos una partición, pero si quisiéramos añadir varias al grupo lo haríamos así:
vgcreate volgroup_01 /dev/sda3 /dev/sda4 /dev/sda5
Bien, voy a añadirlo entonces con mi partición /dev/sda3 que es con la que estamos trabajando de momento:
# vgcreate volgroup_01 /dev/sda3 Volume group "volgroup_01" successfully created
Con el comando vgscan podemos consultar los grupos creados, con el comando pvscan los volúmenes físicos:
# vgscan Reading all physical volumes. This may take a while... Found volume group "volgroup_01" using metadata type lvm2 # pvscan PV /dev/sda3 VG volgroup_01 lvm2 [24,76 GB / 24,76 GB free] Total: 1 [24,76 GB] / in use: 1 [24,76 GB] / in no VG: 0 [0 ]
Crear los volúmenes lógicos (LV – lvcreate)
Llegados a este punto, únicamente nos falta crear el volúmen lógico, sobre el que ya añadiremos el sistema de ficheros deseado. Vamos a crear un volúmen lógico de 2G de espacio sobre el grupo creado anteriormente (volgroup_01):
# lvcreate -L2G -n volumen_01 volgroup_01 Logical volume "volumen_01" created
Y con el comando lvscan vemos el estado de los volúmenes:
# lvscan ACTIVE '/dev/volgroup_01/volumen_01' [2,00 GB] inherit
Ahora ya sólo faltaría darle formato y montarlo como una partición normal:
# mkfs.ext4 /dev/volgroup_01/volumen_01 mke2fs 1.41.4 (27-Jan-2009) Etiqueta del sistema de ficheros= Tipo de SO: Linux Tamaño del bloque=4096 (bitácora=2) Tamaño del fragmento=4096 (bitácora=2) 131072 nodos-i, 524288 bloques... ... ... ... # mount /dev/volgroup_01/volumen_01 /temporal/ # df -h | grep temporal 2,0G 67M 1,9G 4% /temporal
Añadir nuevas particiones a un grupo volumen (vgextend)
La gracia de LVM es que si disponemos de nuevos discos o particiones podemos añadirlas al grupo de volúmen de forma sencilla. Primero tenemos que crear los volúmenes físicos de esas nuevas particiones (recordad, con pvcreate) y luego asignarlas al grupo de volúmen deseado. Vamos a añadir /dev/sda5 a nuestro grupo volgroup_01:
# pvcreate /dev/sda5 # vgextend volgroup_01 /dev/sda5
Aumentar o reducir el tamaño de nuestro volúmen lógico y sistema de ficheros (lvextend – resize2fs)
Ahora podríamos ampliar si quisiéramos el tamaño de nuestro volumen lógico creado anteriormente porque disponemos de más espacio gracias a las nuevas particiones añadidas al grupo de volúmen. VAmos a añadirle 2G más con el comando lvextend:
# lvextend -L +2G /dev/volgroup_01/volumen_01 Extending logical volume volumen_01 to 4,00 GB Logical volume volumen_01 successfully resized
Finalmente tendríamos que ampliar la última capa, el sistema de ficheros, en nuestro caso es ext4 así que usamos resize2fs. Tened cuidado con este último paso ya que tiene su riesgo y si se hace mal se pueden perder datos:
# resize2fs /dev/volgroup_01/volumen_01 4G resize2fs 1.41.4 (27-Jan-2009) Filesystem at /dev/volgroup_01/volumen_01 is mounted on /temporal; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/volgroup_01/volumen_01 to 1048576 (4k) blocks. El sistema de ficheros en /dev/volgroup_01/volumen_01 tiene ahora 1048576 bloques.
Y el nuevo tamaño ya queda reflejado:
# df -h | grep temporal 4,0G 68M 3,7G 2% /temporal
Espero que os haya sido de utilidad esta introducción a LVM (logical volume manager) en GNU/Linux.
Muchas gracias por el post. Muy claro, conciso y sencillo. Gracias por el tiempo que te ha supuesto, me ha servido de gran ayuda.
Saludos.
A mi también me resultó muy útil. Muchísimas gracias.
algo que no me queda claro.. por que al creal el volumen logico con lvcreate fijas un tamaño de 2 gb si tienes un tamaño de 24 gb? acaso no se puede usar la totalidad del disco?
gracias por tu pronta respuesta
Se puede usar la totalidad del disco. En este caso es simplemente un ejemplo para jugar con él, ampliarlo, reducirlo, etc. Se dejaría espacio si hubiera previsión de crear más volúmenes lógicos, por ejemplo.
Puedes usar todo el espacio sin problemas con -L +100%FREE
Muchas gracias, de gran ayuda!! :D
Mas claro agua, perfecto. Me ha servido de gran ayuda.
He buscado por toda la web (si no es una exageración…), pero esta web es lo máximo, muy sencillo de entender y muy bien explicado.
¡Muchas gracias Roberto! Me alegro que te haya servido.
Un saludo.
Muy util la informacion gracias
Me arias un favor de explicarme como configurar el fstab para el reboot.
Gracias !!
Hola Juan,
Igual que cualquier otro Filesystem, únicamente en lugar de especificar el UUID del FS o la partición /dev/sdaX tienes que indicar la ruta al volumen lógico, ejemplo:
/dev/volgroup_01/volumen_01 /test ext4 defaults 0 0
exelente, saludos
¿Cuando ampliamos el sistema de ficheros es necesario indicarle el tamaño final o puede dejarse sin especificar? Muchísimas Gracias por la claridad con que lo explicais todo.
# resize2fs /dev/volgroup_01/volumen_01 4G
# resize2fs /dev/volgroup_01/volumen_01
Excelente manual. Tengo la siguiente duda, espero puedas apoyarme: La imagen de la máquina virtual tiene un espacio de 20GB, y requiero ampliarla. Lo he realizado así: Desde la máquina virtualizadora he aumentado el tamaño de la imagen con:
> truncate –size=+100G /virtual-machines/Database.img
> virsh pool-refresh default
Ahora el archivo ya refleja un tamaño de 120G. Sin embargo, al entrar a la máquina virtual (Database), no tiene los 100G adicionales. No entiendo cómo disponer de esta nueva asignación.
Simplemente buenísimo!!!! entendi y aprendi la gestión de un LVM. Gracias.
mi problema es que despues de redimensionar los lvm vgubuntu-lvroot y vgubuntu-lvhome ya no pude acceder a vgubuntu-lvhome me dice lo del superbloque y no he encontrado solucion. Que sugieres