La publicación analiza cómo expandir el espacio disponible en un volumen LVM al extender la partición del disco físico usando fdisk. Este ejemplo muestra cómo cambiar el tamaño del volumen físico /dev/sdc1 de 200 MB a 400 MB.
Advertencia de posible pérdida de datos :este paso eliminará la estructura de partición existente y creará una nueva partición en su lugar. Es esencial que la nueva partición se cree exactamente en el mismo origen que la partición eliminada, de lo contrario, se producirán graves daños y pérdidas de datos.Comprueba la configuración actual
1. Verifique el tamaño actual del volumen físico en el disco.
# pvdisplay /dev/sdc1 "/dev/sdc1" is a new physical volume of "200.00 MiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 200.00 MiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
2. Obtenga la información sobre la configuración actual de LVM. El volumen lógico que queremos extender es 'testlv'.
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
Desactivar el volumen lógico existente
1. Antes de continuar con la expansión real de PV y LV, primero debemos desactivar el volumen lógico. Use el siguiente comando para desactivar el LV.
# lvchange -a n /dev/testvg/testlv
2. Verifique si el volumen se ha desactivado.
# lvscan inactive '/dev/testvg/testlv' [100.00 MiB] inherit
Ahora sabemos que el LVM no se está utilizando, por lo que podemos iniciar el proceso de expansión en él.
Ampliar la partición “/dev/sda1” con la utilidad fdisk
1. Para ampliar la información de la partición del dispositivo físico, primero eliminamos la partición anterior y luego creamos una nueva. Tenga en cuenta que primero imprimimos la información de la partición actual para que sepamos con precisión dónde comienza la partición. Debemos superponer la partición nueva y más grande comenzando en el mismo bloque que la partición anterior.
# fdisk /dev/sdc Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x085579f4 Device Boot Start End Blocks Id System /dev/sdc1 2048 411647 204800 83 Linux Command (m for help): d Selected partition 1 Partition 1 is deleted Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): ### we will press ENTER here to select default first sector 2048 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +400M Partition 1 of type Linux and of size 400 MiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Este paso se puede cancelar en cualquier momento antes de escribir la tabla de particiones alterada con la “w " dominio. Hasta entonces, solo se modifica una copia en memoria de la tabla de particiones.
Acerca del cambio de tablas de particiones :La información de partición para todos los LUN en un dispositivo físico se mantiene en una tabla de partición. El comando fdisk solo manipula esta tabla de particiones. El resto del disco siempre se deja inalterado. Esto significa que la información de la tabla de particiones se puede cambiar, pero el contenido de las particiones nunca se toca, siempre se deja intacto.Cargar la nueva tabla de particiones al kernel
El kernel que se está ejecutando actualmente no está al tanto de la nueva información de la partición, ya que fdisk altera la tabla de particiones al escribir directamente en el dispositivo. Normalmente, el kernel solo lee la información de la partición en el arranque del sistema o cuando ocurre un evento de conexión en caliente (como la inserción de un dispositivo USB).
Sin embargo, podemos evitar un reinicio innecesario haciendo que el kernel vuelva a leer la información de su partición y luego actualice su información LVM.
# partprobe
Ahora que el kernel conoce la tabla de particiones actualizada, informe al subsistema LVM sobre este cambio en el dispositivo físico. De forma predeterminada, el cambio de tamaño utilizará el tamaño de partición completo obtenido de la tabla de particiones:
# pvresize /dev/sdc1 Physical volume "/dev/sdc1" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
# pvdisplay /dev/sdc1 --- Physical volume --- PV Name /dev/sdc1 VG Name testvg PV Size 399.00 MiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 99 Free PE 74 Allocated PE 25 PV UUID EkD95A-wb04-5GHn-OH7N-suVt-vak2-AKSsyv
Activar el volumen lógico existente
El paso final es volver a poner en línea el LVM modificado. Como siempre, primero revisamos nuestro trabajo:
# lvscan ACTIVE '/dev/testvg/testlv' [100.00 MiB] inherit
Como se ve en el resultado anterior, el volumen lógico está inactivo. Así que activemos primero.
# lvchange -a y /dev/testvg/testlv
# /usr/sbin/lvscan ACTIVE '/dev/vgtest/lvtest' [100.00 MB] inherit
Cambiar el tamaño del volumen lógico (opcional)
1. Ahora también puede ampliar el volumen lógico ya que ahora tiene más espacio en el volumen físico subyacente. Use el siguiente comando para cambiar el tamaño del LV.
# lvresize -L +200M /dev/testvg/testlv Size of logical volume testvg/testlv changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents). Logical volume testvg/testlv successfully resized.
2. Verifique el nuevo tamaño del volumen lógico.
# lvscan ACTIVE '/dev/testvg/testlv' [300.00 MiB] inherit