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í:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
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
ifconfigEl 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 -lLa 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álidaNo 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/sdbserver1:~# 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:
- software que se ejecuta al inicio (por ejemplo, versiones antiguas de LILO)
- 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/sdeLuego ejecuta
fdisk -lnuevamente. 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álidaAhora preparamos nuestras nuevas particiones para LVM:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1server1:~# 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 createdVolvamos a revertir esta última acción para fines de entrenamiento:
pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1server1:~# 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 wipedLuego ejecuta
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1nuevamente:
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 createdAhora ejecuta
pvdisplaypara 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-EKdRK6Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.