Estender root de máquina virtual con espazo libre del disco

Esta é unha revisión antiga do documento!


FIXME Esta página no está completamente traducida, aún. Por favor, contribuye a su traducción.
(Elimina este párrafo una vez la traducción esté completa)

>>Página principal del Cloud

Extender root de máquina virtual con espacio libre del disco

Desde la actualización de agosto de 2017 es posible elegir un tamaño personalizado para el disco root o redimensionar un disco existente, pero para que ese espacio se pueda utilizar hay que asignar ese espacio manualmente en el sistema operativo.

Las plantillas de Ubuntu 14.04 y 16.04 tiene el root montado sobre LVM, usando una partición lógica del sistema de particionado tradicional DOS.

Comprobar la configuración

Debes asegurarte de que el sistema en el que apliques estas instrucciones tiene la misma configuración de particiones, ya que son comandos potencialmente destructivos y si no sabes lo que estás haciendo puedes destruir el sistema.

El comando df -h muestra el montaje de / en /dev/mapper/Ubuntu–vg-root, lo que nos confirma que el sistema está montado sobre LVM.

# df -h /
S.ficheros                    Tamaño Usados  Disp Uso% Montado en
/dev/mapper/Ubuntu14--vg-root   8,5G   6,3G  1,8G  79% /

Con el comando lvs puedes ver los volúmenes lógicos de LVM.

# lvs
  LV    VG        Attr      LSize   Pool Origin Data%  Move Log Copy%  Convert
  root  Ubuntu-vg -wi-ao---   6.03g                                           
  swap1 Ubuntu-vg -wi-ao--- 748.00m

Con el comando vgs puedes ver los grupos de volúmenes de LVM.

# pvs
  PV         VG          Fmt  Attr PSize PFree
  /dev/sda5  Ubuntu14-vg lvm2 a--  9,76g    0 

Con esos comandos vemos que el root está en un volumen lógico llamado root dentro de un grupo de volúmenes llamado Ubuntu-vg que utiliza como volumen físico /dev/sda5.

En el sistema de particionado de MS-DOS, /dev/sda5 es una partición lógica que forma parte de la partición extendida /dev/sda2.

Redimensionado

El redimensionado se puede resumir en los siguientes 6 pasos:

  1. Extender la partición extendida /dev/sda2 para que ocupe el espacio libre en el disco.
  2. Extender la partición lógica /dev/sda5 para que ocupe el espacio libre en la partición extendida.
  3. Extender el grupo de volúmenes Ubuntu-vg para que ocupe el espacio libre del volumen físico.
  4. Extender el volumen lógico root para que ocupe el espacio libre del grupo de volúmenes.
  5. Extender el sistema de archivos para que ocupe el espacio libre del volumen lógico.

Arrancamos parted. Con el comando print free vemos que el disco tiene un total de 21.5GB y un espacio libre al final del disco de 14GB.

# parted /dev/vda
(parted) print free
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
        32.3kB  1049kB  1016kB            Free Space
 1      1049kB  256MB   255MB   primary   ext2         boot
        256MB   257MB   1048kB            Free Space
 2      257MB   7515MB  7258MB  extended
 5      257MB   7515MB  7258MB  logical                lvm
        7515MB  21.5GB  14.0GB            Free Space

Lo único que hay que hacer es poner que las particiones extendidas y lógica (por ese orden) acaben en el final del disco, que en este caso es 21.5GB (pasos 1 y 2).

(parted) resizepart 2 21.5GB                                              
(parted) resizepart 5 21.5GB
(parted)

Una vez hecho, ya fuera de parted, extendemos el grupo de volúmenes (paso 3).

# pvs
  PV         VG        Fmt  Attr PSize PFree
  /dev/vda5  Ubuntu-vg lvm2 a--  6.76g    0 
# pvresize /dev/vda5
  Physical volume "/dev/vda5" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized
# pvs
  PV         VG        Fmt  Attr PSize  PFree 
  /dev/vda5  Ubuntu-vg lvm2 a--  19.76g 13.00g

Ahora extendemos el volumen lógico (paso 4).

# lvextend -l+100%FREE /dev/mapper/Ubuntu--vg-root 
  Extending logical volume root to 19.03 GiB
  Logical volume root successfully resized

Por último, extendemos el sistema de archivos (paso 5).

# resize2fs /dev/mapper/Ubuntu--vg-root 
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/mapper/Ubuntu--vg-root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/Ubuntu--vg-root is now 4987904 blocks long.

Una vez hecho esto, todo el espacio libre debería estar ya asignado al root del sistema.