LVM Guide · 8 min read · Sep 22, 2025

Guía para principiantes sobre LVM

Versión 1.0
Autor: Falko Timme
Última actualización: 2015-02-09

Esta guía muestra cómo trabajar con LVM (Gestión de Volúmenes Lógicos) en Linux. También describe cómo usar LVM junto con RAID1 en un capítulo extra. Como LVM es un tema bastante abstracto, este artículo viene con una imagen de VMware de Debian Etch que puedes descargar y comenzar, y en ese sistema Debian Etch puedes ejecutar todos los comandos que ejecuto aquí y comparar tus resultados con los míos. A través de este enfoque práctico deberías acostumbrarte a LVM muy rápido.

Sin embargo, no emito ninguna garantía de que este tutorial funcione para ti!

1 Nota Preliminar

Este tutorial fue inspirado por dos artículos que leí:

Estos son grandes artículos, pero difíciles de entender si nunca has trabajado con LVM antes. Por eso he creado esta imagen de VMware de Debian Etch que puedes descargar y ejecutar en VMware Server o VMware Player (ve https://www.howtoforge.com/import_vmware_images para aprender cómo hacerlo).

Instalé todas las herramientas que necesitamos durante el curso de esta guía en el sistema Debian Etch (ejecutando

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) así que no necesitas preocuparte por eso.

La red del sistema Debian Etch está configurada a través de DHCP, así que no tienes que preocuparte por direcciones IP en conflicto. La contraseña de root es howtoforge. También puedes conectarte a ese sistema con un cliente SSH como PuTTY. Para averiguar la dirección IP del sistema Debian Etch, ejecuta

ifconfig

El sistema tiene seis discos duros SCSI, /dev/sda - /dev/sdf. /dev/sda se utiliza para el propio sistema Debian Etch, mientras que usaremos /dev/sdb - /dev/sdf para LVM y RAID. /dev/sdb - /dev/sdf cada uno tiene 80GB de espacio en disco. Al principio actuaremos como si cada uno tuviera solo 25GB de espacio en disco (usando así solo 25GB en cada uno de ellos), y en el transcurso del tutorial “reemplazaremos” nuestros discos duros de 25GB con discos duros de 80GB, demostrando así cómo puedes reemplazar discos duros pequeños por otros más grandes en LVM.

El artículo http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html utiliza discos duros de 250GB y 800GB, pero algunos comandos como pvmove tardan mucho tiempo con tales tamaños de disco duro, por eso decidí usar discos duros de 25GB y 80GB (eso es suficiente para entender cómo funciona LVM).

1.1 Resumen

Descarga esta imagen de VMware de Debian Etch (~310MB) y arráncala así. Inicia sesión como root con la contraseña howtoforge.

2 Diseño de LVM

Básicamente LVM se ve así:

Tienes uno o más volúmenes físicos ( /dev/sdb1 - /dev/sde1 en nuestro ejemplo), y en estos volúmenes físicos creas uno o más grupos de volúmenes (por ejemplo, fileserver), y en cada grupo de volúmenes puedes crear uno o más volúmenes lógicos. Si usas múltiples volúmenes físicos, cada volumen lógico puede ser más grande que uno de los volúmenes físicos subyacentes (pero, por supuesto, la suma de los volúmenes lógicos no puede exceder el espacio total ofrecido por los volúmenes físicos).

Es una buena práctica no asignar todo el espacio a los volúmenes lógicos, sino dejar algo de espacio sin usar. De esa manera puedes ampliar uno o más volúmenes lógicos más adelante si sientes la necesidad de hacerlo.

En este ejemplo crearemos un grupo de volúmenes llamado fileserver, y también crearemos los volúmenes lógicos /dev/fileserver/share, /dev/fileserver/backup y /dev/fileserver/media (que usarán solo la mitad del espacio ofrecido por nuestros volúmenes físicos por ahora - de esa manera podemos cambiar a RAID1 más adelante (también descrito en este tutorial)).

3 Nuestra Primera Configuración de LVM

Vamos a averiguar sobre nuestros discos duros:

fdisk -l

La salida se ve así:

server1:~# fdisk -l  
 
 Disco /dev/sda: 21.4 GB, 21474836480 bytes  
 255 heads, 63 sectors/track, 2610 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2              19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
 
 Disco /dev/sdb: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
 Disco /dev/sdb no contiene una tabla de particiones válida  
 
 Disco /dev/sdc: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
 Disco /dev/sdc no contiene una tabla de particiones válida  
 
 Disco /dev/sdd: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
 Disco /dev/sdd no contiene una tabla de particiones válida  
 
 Disco /dev/sde: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
 Disco /dev/sde no contiene una tabla de particiones válida  
 
 Disco /dev/sdf: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
 Disco /dev/sdf no contiene una tabla de particiones válida

No hay particiones aún en /dev/sdb - /dev/sdf. Crearemos las particiones /dev/sdb1, /dev/sdc1, /dev/sdd1 y /dev/sde1 y dejaremos /dev/sdf sin tocar por ahora. Actuamos como si nuestros discos duros tuvieran solo 25GB de espacio en lugar de 80GB por ahora, por lo tanto asignamos 25GB a /dev/sdb1, /dev/sdc1, /dev/sdd1 y /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

El número de cilindros para este disco está establecido en 10443.
No hay nada de malo en eso, pero esto es más grande que 1024,
y podría en ciertas configuraciones causar problemas con:

  1. software que se ejecuta al inicio (por ejemplo, versiones antiguas de LILO)
  2. software de arranque y particionamiento de otros sistemas operativos
    (por ejemplo, DOS FDISK, OS/2 FDISK)

Comando (m para ayuda): <– m
Comando acción
a   toggle un flag de arranque
b   editar bsd disklabel
c   toggle el flag de compatibilidad dos
d   eliminar una partición
l   listar tipos de particiones conocidos
m   imprimir este menú
n   agregar una nueva partición
o   crear una nueva tabla de particiones DOS vacía
p   imprimir la tabla de particiones
q   salir sin guardar cambios
s   crear una nueva Sun disklabel vacía
t   cambiar el id del sistema de una partición
u   cambiar unidades de visualización/entrada
v   verificar la tabla de particiones
w   escribir tabla en disco y salir
x   funcionalidad extra (solo para expertos)

Comando (m para ayuda): <– n
Comando acción
e   extendida
p   partición primaria (1-4)
<– p
Número de partición (1-4): <– 1
Primer cilindro (1-10443, valor por defecto 1): <–
Usando valor por defecto 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-10443, valor por defecto 10443): <– +25000M

Comando (m para ayuda): <– t
Partición seleccionada 1
Código hexadecimal (tipo L para listar códigos): <– L

0  Vacío           1e  Oculto W95 FAT1 80  Old Minix       be  Solaris boot
1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris
2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
5  Extendido        41  PPC PReP Boot   85  Linux extendido  c7  Syrinx
6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data
7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access
b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor
e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
f  W95 Ext’d (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor
16  Hidden FAT16    63  GNU HURD o Sys ab  Darwin boot     f2  DOS secondary
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c  Hidden W95 FAT3 75  PC/IX
Código hexadecimal (tipo L para listar códigos): <– 8e
Cambiado el tipo de sistema de la partición 1 a 8e (Linux LVM)

Comando (m para ayuda): <– w
¡La tabla de particiones ha sido alterada!

Llamando a ioctl() para volver a leer la tabla de particiones.
Sincronizando discos.

Ahora hacemos lo mismo para los discos duros /dev/sdc - /dev/sde:

fdisk /dev/sdc  
 fdisk /dev/sdd  
 fdisk /dev/sde

Luego ejecuta

fdisk -l

nuevamente. La salida debería verse así:

server1:~# fdisk -l  
 
 Disco /dev/sda: 21.4 GB, 21474836480 bytes  
 255 heads, 63 sectors/track, 2610 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2              19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
 
 Disco /dev/sdb: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdb1               1        3040    24418768+  8e  Linux LVM  
 
 Disco /dev/sdc: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdc1               1        3040    24418768+  8e  Linux LVM  
 
 Disco /dev/sdd: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdd1               1        3040    24418768+  8e  Linux LVM  
 
 Disco /dev/sde: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sde1               1        3040    24418768+  8e  Linux LVM  
 
 Disco /dev/sdf: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
 
 Disco /dev/sdf no contiene una tabla de particiones válida

Ahora preparamos nuestras nuevas particiones para LVM:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Physical volume "/dev/sdb1" successfully created  
   Physical volume "/dev/sdc1" successfully created  
   Physical volume "/dev/sdd1" successfully created  
   Physical volume "/dev/sde1" successfully created

Volvamos a revertir esta última acción para fines de entrenamiento:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Labels on physical volume "/dev/sdb1" successfully wiped  
   Labels on physical volume "/dev/sdc1" successfully wiped  
   Labels on physical volume "/dev/sdd1" successfully wiped  
   Labels on physical volume "/dev/sde1" successfully wiped

Luego ejecuta

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

nuevamente:

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Physical volume "/dev/sdb1" successfully created  
   Physical volume "/dev/sdc1" successfully created  
   Physical volume "/dev/sdd1" successfully created  
   Physical volume "/dev/sde1" successfully created

Ahora ejecuta

pvdisplay

para conocer el estado actual de tus volúmenes físicos:

server1:~# pvdisplay  
   --- NEW Physical volume ---  
   PV Name               /dev/sdb1  
   VG Name  
   PV Size               23.29 GB  
   Allocatable           NO  
   PE Size (KByte)       0  
   Total PE              0  
   Free PE               0  
   Allocated PE          0  
   PV UUID               G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU  
   --- NEW Physical volume ---  
   PV Name               /dev/sdc1  
   VG Name  
   PV Size               23.29 GB  
   Allocatable           NO  
   PE Size (KByte)       0  
   Total PE              0  
   Free PE               0  
   Allocated PE          0  
   PV UUID               40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B  
   --- NEW Physical volume ---  
   PV Name               /dev/sdd1  
   VG Name  
   PV Size               23.29 GB  
   Allocatable           NO  
   PE Size (KByte)       0  
   Total PE              0  
   Free PE               0  
   Allocated PE          0  
   PV UUID               4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B  
   --- NEW Physical volume ---  
   PV Name               /dev/sde1  
   VG Name  
   PV Size               23.29 GB  
   Allocatable           NO  
   PE Size (KByte)       0  
   Total PE              0  
   Free PE               0  
   Allocated PE          0  
   PV UUID               3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.