Tuve un problema muy específico. Tengo un LVM ejecutándose en un solo volumen físico en una máquina virtual. El tamaño del volumen lógico es de ~150 GB y deseo expandirlo a ~250 GB.
Pude expandir el volumen físico desde mi administrador de máquinas virtuales, pero el cambio en el tamaño físico no se refleja en mi volumen lógico LVM.
No encontré ninguna respuesta directamente y, a través de un poco de experimentación, encontré una solución. Pensé que lo compartiría en mi respuesta a continuación.
Respuesta aceptada:
Un ejemplo de diagrama LVM:
La idea de LVM es abstraer el volumen lógico del volumen físico, de modo que múltiples volúmenes físicos aparecerán para el usuario como un solo volumen lógico continuo.
El sistema de archivos raíz está en /dev/file-server-vg/root
y el intercambio está en /dev/file-server-vg/swap
. La idea es que podemos tener varios discos duros reales en la capa PV, y todos pueden agregarse a un grupo de volumen, lo que les permitirá aparecer como un único sistema de archivos continuo para el sistema en /dev/file-server-vg/root
.
En este problema he estado usando /dev/file-server-vg/root
como un servidor de archivos y se está quedando sin espacio. Afortunadamente, este sistema está en una máquina virtual y pude expandir el volumen físico /dev/sda
utilizando el administrador de máquinas virtuales. Sin embargo, el aumento de tamaño no se pasa automáticamente a /dev/file-server-vg/root
sistema de archivos Necesitamos hacer algunos comandos simples para que esto funcione.
Antes de comenzar, use pvdisplay
para ver qué volúmenes físicos están presentes. Esto enumerará todos los volúmenes físicos y el grupo de volúmenes al que pertenece. En este caso solo tenemos un volumen físico que es /dev/sda3
.
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 155.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
La tabla de particiones actual se puede enumerar usando sudo parted
y luego print
.
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 167GB 166GB lvm
En este ejemplo, queremos ampliar la capacidad de 155,56 GiB a 255,56 GiB. Con el administrador de máquinas virtuales, normalmente podemos ampliar el espacio en disco y, en este caso, lo ampliaremos en 100 GiB.
Después de que la expansión sea exitosa, la tabla de particiones resultante (use print free
) tendrá el siguiente aspecto. Tenga en cuenta que el "Espacio libre" muestra 108 GB (~100 GiB).
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 166GB lvm
167GB 275GB 108GB Free Space
Hay dos formas de expandir el volumen lógico:
Cree una nueva partición y agréguela al Grupo de volumen, o
Aumente la misma partición.
En mi opinión, siempre que sea posible, el segundo método es más ordenado. Por supuesto si /dev/sda3
es un disco duro físico y compraste otro disco duro para ampliar el espacio, entonces será lógico usar el primer método.
En parte, escribe resize 3 794MB 275GB
cambiará el tamaño de la partición 3 para ocupar todo el espacio libre, bueno, casi:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 274GB lvm
275GB 275GB 1032kB Free Space
Esto es lo suficientemente bueno, solo 1 MB sin usar.
Relacionado:¿Cómo cambiar el propio directorio de inicio?A continuación, reiniciaremos la máquina. Esto es necesario para actualizar la tabla de particiones.
Lo que verá ahora es que el volumen físico ha aumentado de tamaño con pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 255.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
Este aumento de tamaño se pasará automáticamente al grupo de volumen mediante vgdisplay
obtienes lo siguiente. Tenga en cuenta vgextend
en realidad no hace lo que crees que hace. No ocupa el espacio libre, sino que se usa para agregar nuevos volúmenes físicos a un grupo de volúmenes en particular.
--- Volume group ---
VG Name file-server-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 255.26 GiB
PE Size 4.00 MiB
Total PE 65346
Alloc PE / Size 65346 / 255.26 GiB
Free PE / Size 0 / 0
VG UUID NwwIgT-W0SH-aeTe-d078-hcxx-XZ6W-QfnSA0
El volumen lógico no aumenta de tamaño automáticamente. En realidad, esto tiene sentido porque la computadora no tiene idea de qué volumen lógico desea aumentar de tamaño, o quizás desee crear un nuevo volumen lógico con el espacio adicional en el grupo de volúmenes. Entonces con lvdisplay
verá la siguiente tabla, que muestra el /dev/file-server-vg/root
solo tiene 153.26GiB, pero no te preocupes que estamos muy cerca.
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 153.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
La forma de aumentar el volumen lógico es usar lvextend -L +100GB /dev/file-server-vg/root
Después de eso, expanda el sistema de archivos con resize2fs /dev/file-server-vg/root
Y ya está. Puedes hacer lvdisplay
para verificar que /dev/file-server-vg/root
el volumen se ha ampliado a 253,26 GiB
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 253.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1