LVM

Después de enfrentarme por primera vez con LVM, decidí anotar algunos conceptos básicos en ésta página.

LVM o Logical Volume Management es un mecanismo en Linux (y otros *NIX) para tener particiones virtuales.

Es especialmente útil si se tiene varios discos duros, pero se quiere que el sistema lo vea como una partición continua. Además permite cambiar de tamaño dinámicamente a los volúmenes lógicos.

Algunos conceptos

  • Volúmen físico - (PV: Physical Volume) Normalmente se refiere a un dispositivo físico de almacenamiento. Hablamos de discos duros, o particiones (ya sean primarias o extendidas).
  • Grupo de Volúmenes - (VG: Volume Group) Gracias a LVM, podemos agrupar varios PVs en un sólo grupo; de tal forma que puede ser tratado como un PV de mayor tamaño.
  • Volúmen lógico - (LV: Logical Volume) Son las divisiones lógicas de un VG. Digamos que si los LVs son particiones, los VGs serían discos duros. A cada LV debe asignársele un sistema de archivos. Los LVs se pueden cambiar de tamaño.

La página de LVM en Wikipedia (en Inglés) tiene una imágen que ejemplifica muy bien el concepto.

Comandos importantes

vgscan

Nos muestra una lista de VGs en el sistema.

vgdisplay

Nos muestra información detallada de un VG (o todos).

vgchange

Nos permite controlar un VG. Cosas como activar o desactivarlos.

lvscan

Nos muestra una lista de LVs en el sistema.

lvdisplay

Nos muestra información detallada de un LV (o todos).

lvextend, lvreduce y lvresize

Nos permite cambiar el tamaño de un LV. Para ello, es necesario que el VG que lo contiene tenga espacio suficiente (en caso de aumentar). Esto se puede consultar con el comando vgdisplay.

lvresize -L +1.02TB /dev/Volgroup00/LogVol02

resize2fs

No es propiamente un comando de LVM, pero después de que a un LV ext3 se le cambia el tamaño, es necesario invocar este comando para que se ajuste al tamaño real que se le asignó.

resize2fs -p /dev/mapper/VolGroup00-LogVol02

swapoff y swapon

swapoff y swapon tampoco son comandos de LVM. En ocasiones es necesario desactivar un VG para hacer modificaciones; pero esto no es posible si alguno de sus LVs está en uso. Si uno de esos LVs es de tipo swap, es el kernel el que está haciendo uso de él. Hay que informarle al OS que deje de utilizarlo. Estos comandos nos permiten habilitar y deshabilitar particiones o LVs de swap.

Para desactivar todas las particiones de swap:

swapoff -a

Para desactivar una partición en particular:

swapoff /dev/Volgroup00/LogVol01

fsck

A diferencia de particiones tradicionales, fsck debe ejecutarse sobre volúmenes lógicos en lugar de particiones.

Algunos links útiles