Las herramientas
Para aumentar los discos de las máquinas virtuales emplearemos las libguestfs-tools que hemos de instalar previamente.
Como ejemplo emplearemos el disco duro de nuestro servidor Proxmox 3.4. El archivo de imagen se llama Proxmox3.4.img
Antes de empezar
Es muy importante que la máquina virtual cuyos discos queremos modificar esté PARADA.
Emplearemos el archivo original como copia de seguridad, por lo que empezaremos renombrándolo como Proxmox3.4.img.20150430:
[root@cectmox1 images]# mv Proxmox3.4.img Proxmox3.4.img.20150430
Echaremos un vistazo al contenido del disco a aumentar con el comando virt-filesystems –long –parts –blkdevs -h -a
[root@cectmox1 images]# virt-filesystems --long --parts --blkdevs -h -a Proxmox3.4.img.20150430
Name Type MBR Size Parent
/dev/sda1 partition - 1,0M /dev/sda
/dev/sda2 partition - 128M /dev/sda
/dev/sda3 partition - 200G /dev/sda
/dev/sda device - 200G -
Esto nos muestra las particiones. Para ver los volúmenes lvm empleamos virt-df -h:
[root@cectmox1 images]# virt-df -h /home/virtual/images/Proxmox3.4.img.20150430
Sistema de archivos Tamaño Utilizado Disponible Utilización%
Proxmox3.4.img.20150430:/dev/sda2 126M 142K 126M 1%
Proxmox3.4.img.20150430:/dev/pve/data 169G 6,4G 163G 4%
Proxmox3.4.img.20150430:/dev/pve/root 19G 4,1G 14G 22%
Queremos ampliar la partición donde está el volumen pve, que contiene los datos (/dev/pve/data) y el root (/dev/pve/root). Esta partición es /dev/sda3
Empezamos
Lo primero que hemos de hacer es crear la nueva imagen de disco con el tamaño deseado. En nuestro caso añadiremos 50GB al disco original (200GB), por lo que tendremos que crear una nueva imagen de 250GB:
[root@cectmox1 images]# qemu-img create -f raw Proxmox3.4.img 250G
Formatting 'Proxmox3.4.img', fmt=raw size=268435456000
Expandimos el sistema en la nueva imagen
Una vez creada la nueva imagen de disco procedemos a copiar los datos de la original (Proxmox3.4.img.20150430) con el comando
[root@cectmox1 images]# virt-resize Proxmox3.4.img.20150430 Proxmox3.4.img --expand /dev/sda3
Ver figura 1.
El sistema ha expandido el LVM PV de /dev/sda3, pero no hemos asignado el espacio libre a ningún volumen lógico (ni /dev/pve/root ni a /dev/pve/data). Ésto nos interesa para poder tener espacio libre en el volumen pve, que necesitaremos para poder crear snapshots de los discos de las máquinas openvz en el sistema proxmox.
A comprobar que todo funciona
Una vez finalizado el proceso de copia arrancamos la máquina virtual para comprobar que funciona correctamente.
Si miramos la salida del comando vgdisplay en el servidor proxmox podremos ver el espacio libre:
root@cectmox4:/home/chemi# vgdisplay
--- Volume group ---
VG Name pve
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 249.87 GiB
PE Size 4.00 MiB
Total PE 63966
Alloc PE / Size 51166 / 199.87 GiB
Free PE / Size 12800 / 50.00 GiB
VG UUID 36aH8f-Hcie-DBaD-dTgi-SXwt-vE2d-cjtVeM
Si queremos expandir un volumen lógico directamente
En el caso de que queramos expandir no solamente una partición sino también un volúmen lógico en el mismo proceso, tendríamos que emplear la opción –LV-expand de virt-resize, indicándole el volumen lógico que queremos expandir. En ese caso lo expande para ocupar todo el espacio libre.
El comando empleado si quisiéramos expandir el volumen lógico /dev/pve/data sería el siguiente:
[root@cectmox1 images]# virt-resize Proxmox3.4.img.20150430 Proxmox3.4.img --expand /dev/sda3 --LV-expand /dev/pve/data
Enlaces