Skip to main content

Ampliación de disco en sistema virtualizado KVM (proxmox)

Introducción

En un escenario de uso de discos virtuales, como KVM, Proxmox y otros, a veces es necesario una ampliación del disco. Si usamos LVM esto es posible y sencillo.

Convecciones

Ciertas cosas que hay en esta entrada, así como en otras, requieren un conocimiento previo. No es un sitio para copiar y pegar sino para entender y hacer

No siempre es el disco vda, no siempre es la partición 1, y así sucesivamente.

Ampliación de una disco virtual KVM

La ampliación de un disco LVM es posible una vez que hemos realizado el cambio virtual del tamaño de la unidad LVM.

En el caso de Proxmox acudimos a la administración de nuestro proxmox

  • Seleccionamos el VPS
  • Click en **Resize Disk"
  • Incrementamos el tamaño.

Si el aumento de tamaño implica un tamaño final mayor de 2 TiB deberás tener el esquema de particiones GPT de lo contrario, tendrás que modificar bajo tu responsabilidad el esquema MBR a GPT. Esta entrada no trata de eso, y para ello es aconsejable el uso de Gparted Live, lo cual no siempre es posible.

El artículo interpreta que conoces el uso de ciertos comando, que sustituirán el dispositivo (disco) por el tuyo, y que sabes como obtener el esquema de tu disco (particiones)

Consejo sobre particionamiento durante la instalación

Es aconsejable el uso de GPT y de ello hablamos en nuestra wiki, Instalación GPT con el instalador Centos 7 en discos < 2 TiB

Resize Disk - Proxmox

Verirficación en un KVM basado en LVM

Una vez que hemos ampliado el disco, podemos verificar el cambio de tamaño en nuestro VPS. Esto funcionará hasta que reiniciemos la máquina. Después ya no nos informará.

# dmesg | grep vda
...
[  222.436098] vda: detected capacity change from 32212254720 to 37580963840

Imprimir la tabla actual del disco

# fdisk -l /dev/vda | grep ^/dev
/dev/vda1   *        2048     1026047      512000   83  Linux
/dev/vda2         1026048    62914559    30944256   8e  Linux LVM

Conocer el uso de las particiones en el sistema LVM

# pvscan
  PV /dev/vda2   VG centos          lvm2 [<29,51 GiB / 40,00 MiB free]
  Total: 1 [<29,51 GiB] / in use: 1 [<29,51 GiB] / in no VG: 0 [0   ]
# lvscan
  ACTIVE            '/dev/centos/swap' [3,00 GiB] inherit
  ACTIVE            '/dev/centos/root' [<26,47 GiB] inherit

Ampliar la partición física

parted /dev/vda
GNU Parted 3.1
Usando /dev/vda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 37,6GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Numero  Inicio  Fin     Tamaño  Typo     Sistema de ficheros  Banderas
 1      1049kB  525MB   524MB   primary  xfs                  arranque
 2      525MB   32,2GB  31,7GB  primary                       lvm

(parted) resizepart 2 100%
(parted) quit

Mensajes de error

A veces, es posible que tras un acceso con parted a nuestro dispositivo, podemas encontrar emnsajes relativos a problemas derivados de los instaladores de Centos, de Ubuntu, segun cuando y como se hizo la partición que estamos tratando de modificar.

Es importante leer y comprender estos mensajes, o corremos el riesgo de perder nuestros datos.

En el caso de abajo, viene del instalador de Centos 7 el cual no hizo del todo bien su trabajo.

Error: La copia de la tabla GPT no está al final disco, como debería ser.  Esto quiere decir que otro sistema operativo cree que el disco es más pequeño.  ¿Lo quiere arreglar moviendo la
copia al final (y borrando la copia vieja)?
Arreglar/Fix/Descartar/Ignore/Cancelar/Cancel? Fix                        
Aviso: Not all of the space available to /dev/vda appears to be used, you can fix the GPT to use all of the space (an extra 3005218816 blocks) or continue with the current setting?                                          
Arreglar/Fix/Descartar/Ignore? F 
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 1571GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot

Numero  Inicio  Fin     Tamaño  Sistema de ficheros  Nombre  Banderas
 1      1049kB  2097kB  1049kB                               bios_grub
 2      2097kB  1076MB  1074MB  xfs
 3      1076MB  32,2GB  31,1GB                               lvm

Asignar el nuevo tamaño al volumen físico de LVM

pvresize /dev/vda2
  Physical volume "/dev/vda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

Redimensionar el volumen lógico de LVM al nuevo tamaño

[[email protected] httpd]# lvresize --extents +100%FREE --resizefs /dev/centos/root
  Size of logical volume centos/root changed from <26,47 GiB (6776 extents) to <31,51 GiB (8066 extents).
  Logical volume centos/root successfully resized.
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=1734656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=6938624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=3388, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 6938624 to 8259584
[[email protected] httpd]# df -h
S.ficheros                                                  Tamaño Usados  Disp Uso% Montado en
devtmpfs                                                      2,9G      0  2,9G   0% /dev
tmpfs                                                         2,9G      0  2,9G   0% /dev/shm
tmpfs                                                         2,9G    65M  2,8G   3% /run
tmpfs                                                         2,9G      0  2,9G   0% /sys/fs/cgroup
/dev/mapper/centos-root                                        32G    25G  7,3G  77% /
/dev/vda1                                                     497M   256M  241M  52% /boot
stor01.tamainut.net:/srv/storage/backup/kvm476/backupremote    32T    30T 1014G  97% /backupremote2
tmpfs                                                         581M      0  581M   0% /run/user/0
Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.