Gestión de particiones en discos y LVM

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 […]

image_pdf

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:

inicial

 

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 😛

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
<strong>/dev/mapper/vg_expand-lv_expand              20G   8,9G  9,9G  48% /mnt/expand</strong>
[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!
YsbKHg1

Mandanga de las cookies

Este sitio web utiliza cookies porque no hay más remedio. Como no me quiero complicar la vida, doy por hecho que aceptas dichas cookies si sigues deambulando por aquí. La política de coolies es simple: ésta ACEPTAR

Aviso de cookies