Siguiendo con la aclamada serie «vfmBOFH haciendo malabares con motosierras», vamos a ver cómo saltarnos un par de pasos en la gestión de las ampliaciones de particiones / discos con capa LVM por encima.
Vamos a ver el siguiente supuesto:
Vemos que tanto la partición raíz como el punto de montaje /mnt/expand están próximos al 100% de ocupación. En el caso de la partición raíz, el PV que aloja al VG/LV de sistema está en la partición física /dev/vda2 y el PV del LV/VG expand ocupa el dispositivo físico /dev/vdb sin usar particionado. Un ejemplo de cada, qué apropiado :-P
Vamos a aumentar el tamaño de los discos virtuales en 10GB cada uno y luego vamos a redimensionar «al vuelo» la capa LVM sin modificar el esquema de particionado. Empezemos por el dispositivo /dev/vdb que como hemos visto, es un PV directo sin una tabla de particiones por debajo:
[root@template-centos7 ~]# fdisk -l /dev/vdb Disk /dev/vdb: 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 [root@template-centos7 ~]# pvresize /dev/vdb Physical volume "/dev/vdb" changed 1 physical volume(s) resized / 0 physical volume(s) not resized [root@template-centos7 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos_template-centos7 1 2 0 wz--n- 29,51g 0 vg_expand 1 1 0 wz--n- 20,00g 10,00g [root@template-centos7 ~]# lvextend -l +100%FREE /dev/mapper/vg_expand-lv_expand Size of logical volume vg_expand/lv_expand changed from 10,00 GiB (2559 extents) to 20,00 GiB (5119 extents). Logical volume lv_expand successfully resized. [root@template-centos7 ~]# resize2fs /dev/mapper/vg_expand-lv_expand resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/vg_expand-lv_expand is mounted on /mnt/expand; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 The filesystem on /dev/mapper/vg_expand-lv_expand is now 5241856 blocks long. [root@template-centos7 ~]# df -h S.ficheros Tamaño Usados Disp Uso% Montado en /dev/mapper/centos_template--centos7-root 27G 25G 1,2G 96% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6,6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/vda1 497M 189M 309M 38% /boot tmpfs 100M 0 100M 0% /run/user/0 /dev/mapper/vg_expand-lv_expand 20G 8,9G 9,9G 48% /mnt/expand [root@template-centos7 ~]#
Ahora la chicha. Toca redimensionar una partición. Cuidadín y atentos:
[root@template-centos7 ~]# fdisk -l /dev/vda Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 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 Identificador del disco: 0x000af804 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/vda1 * 2048 1026047 512000 83 Linux /dev/vda2 1026048 62914559 30944256 8e Linux LVM [root@template-centos7 ~]# fdisk /dev/vda 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. Orden (m para obtener ayuda): p Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 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 Identificador del disco: 0x000af804 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/vda1 * 2048 1026047 512000 83 Linux /dev/vda2 1026048 62914559 30944256 8e Linux LVM Orden (m para obtener ayuda): d Número de partición (1,2, default 2): 2 <--Ojito con la partición que borramos Partition 2 is deleted Orden (m para obtener ayuda): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Número de partición (2-4, default 2): Primer sector (1026048-83886079, valor predeterminado 1026048): Se está utilizando el valor predeterminado 1026048 Last sector, +sectors or +size{K,M,G} (1026048-83886079, valor predeterminado 83886079): Se está utilizando el valor predeterminado 83886079 Partition 2 of type Linux and of size 39,5 GiB is set ##########Recreamos la partición como estaba, pero asignándole el espacio extra ########## ##########En algunos casos, fdisk se lía con los sectores de inicio y final de ########### ##########las particiones, será cuestión de ponerle como inicio el sector que ############ ##########nos aparece en la línea 30, campo "Fin" (1026047)+1############################# Orden (m para obtener ayuda): w ¡Se ha modificado la tabla de particiones! Llamando a ioctl() para volver a leer la tabla de particiones. WARNING: Re-reading the partition table failed with error 16: Dispositivo o recurso ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Se están sincronizando los discos. [root@template-centos7 ~]# partx -a /dev/vda partx: /dev/vda: error adding partitions 1-2 [root@template-centos7 ~]# fdisk /dev/vda 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. Orden (m para obtener ayuda): p Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 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 Identificador del disco: 0x000af804 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/vda1 * 2048 1026047 512000 83 Linux /dev/vda2 1026048 83886079 41430016 83 Linux <--Ojocuidao, que tiene que ser tipo LVM Orden (m para obtener ayuda): t Número de partición (1,2, default 2): 2 Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' Orden (m para obtener ayuda): w ¡Se ha modificado la tabla de particiones! Llamando a ioctl() para volver a leer la tabla de particiones. WARNING: Re-reading the partition table failed with error 16: Dispositivo o recurso ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Se están sincronizando los discos. [root@template-centos7 ~]# partx -a /dev/vda partx: /dev/vda: error adding partitions 1-2
Vemos que he entrado en fdisk dos veces: una para re-crear la partición y otra para cambiarle el tipo. Puede hacerse en un único paso, pero yo prefiero escribir las tablas de particiones a cada cambio. Cada uno es cadascual.
[root@template-centos7 ~]# pvs PV VG Fmt Attr PSize PFree /dev/vda2 centos_template-centos7 lvm2 a-- 29,51g 0 /dev/vdb vg_expand lvm2 a-- 20,00g 0 [root@template-centos7 ~]# fdisk -l /dev/vda Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 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 Identificador del disco: 0x000af804 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/vda1 * 2048 1026047 512000 83 Linux /dev/vda2 1026048 83886079 41430016 8e Linux LVM [root@template-centos7 ~]# pvresize /dev/vda2 <-- Una vez re-creada la partición, procedemos igual Physical volume "/dev/vda2" changed 1 physical volume(s) resized / 0 physical volume(s) not resized [root@template-centos7 ~]# pvs PV VG Fmt Attr PSize PFree /dev/vda2 centos_template-centos7 lvm2 a-- 39,51g 10,00g /dev/vdb vg_expand lvm2 a-- 20,00g 0 [root@template-centos7 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos_template-centos7 1 2 0 wz--n- 39,51g 10,00g vg_expand 1 1 0 wz--n- 20,00g 0 [root@template-centos7 ~]# lvextend -l +100%FREE /dev/mapper/centos_template--centos7-root Size of logical volume centos_template-centos7/root changed from 27,51 GiB (7042 extents) to 37,51 GiB (9602 extents). Logical volume root successfully resized. [root@template-centos7 ~]# resize2fs /dev/mapper/centos_template--centos7-root resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/mapper/centos_template--centos7-root is mounted on /; on-line resizing required old_desc_blocks = 4, new_desc_blocks = 5 The filesystem on /dev/mapper/centos_template--centos7-root is now 9832448 blocks long. [root@template-centos7 ~]# df -h S.ficheros Tamaño Usados Disp Uso% Montado en /dev/mapper/centos_template--centos7-root 37G 25G 11G 70% / devtmpfs 487M 0 487M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 6,6M 490M 2% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/vda1 497M 189M 309M 38% /boot tmpfs 100M 0 100M 0% /run/user/0
Tacháaaan!