Virtualizacion

Optimizar el tamaño de las imagenes de KVM

Uno de los principales problemas de KVM en el escritorio es el tamaño de las imágenes, debido a que cuando se crea una imagen de disco en KVM (Kernel-based Virtual Machine), la imagen se inicializa con el tamaño que de específico como tamaño total que puede ocupar en el disco duro, sin embargo, en un principio, el sistema solo reserva el espacio necesario para almacenar los datos que se han escrito en la imagen lo cual es muy bueno.

En otras palabras, cuando se crea una imagen de por ejemplo 100GB se reservan en el disco los 100GB, sin embargo, no se ocupan los 100GB sino solo lo que se va usando, es decir que tiene dos tamaños, un real y otro aparente, diferentes herramientas pueden indicar uno u otro, otras como ncdu indican ambos.

Hasta ese punto no hay mayor inconveniente, sin embargo, si respaldamos las imágenes en otro disco pueden comenzar los problemas, debido a que cuando copias la imagen a otro disco, el sistema copia toda la imagen, incluyendo el espacio no utilizado inicialmente pero que fue reservado al crear la imagen. Esto se debe a que la imagen de disco es un archivo que ocupa un tamaño mayor en el disco duro, y al copiarlo, se copia todo el contenido del archivo, incluyendo el espacio no utilizado pero reservado.

En la práctica puede que tengamos un disco de 10GB, pero al copiarlo si el tamaño que especificamos fue de 100G, al copiarlo ocupará los 100GB originales y no los 10GB ocupados.

La solucion a este problema es bastante sencilla y solo necesitamos usar: virt-sparsify

Instalacion

sudo apt install libguestfs-tools

Optimizando una imagen

Para optimizar una imagen la VM debe estar apagada, luego para comenzar en este caso el primer paso de la optimizacion es generar una imagen nueva, ojo que esta se generara con el tamaño total, asi que deben asegurarse que tenga suficiente espacio el disco, una vez que fue optimizada y se genero el archivo temporal se sustituye por el original

 
virt-sparsify imagen.qcow2 imagen.tmp 
mv imagen.tmp imagen.qcow2 

Si existen varias imagenes a optimziar puede resultar algo tedioso hacerlo una a una, así que se puede hacer de la siguiente forma:

su -
cd /var/lib/libvirt/images/
nice -n 10 find ./ -iname "*.qcow2" -exec echo "{}" \; -exec virt-sparsify {} {}.tmp \; -exec mv {}.tmp {} \;

El comando virt-sparsify suele levantar bastante carga en el PC o en el servidor y dejar todo el sistema bastante lento, por esa razón es una buena idea modificar y reducir la prioridad del proceso para evitar que la optimización bloque el equipo por completo.

Compartir
Publicado por
Alvaro De León
Etiquetas: kvmVirtualizacion

Entradas recientes

El mejor Firewall de Escritorio para Linux

Hace poco más de 20 años cuando Windows aún no incluía un Firewall, surgió un…

5 days hace

Estadisticas de EasyMySQL

Normalmente, a las estadísticas del blog no le presto demasiada atención, sin embargo, trabajando en…

3 weeks hace

Nueva pagina de Publicaciones

La idea principal detrás de este blog es marca personal, el blog es para centralizar…

4 weeks hace

Migrar una maquina virtual desde VirtualBox a KVM

El migrar el disco duro es bastante sencillo como se verá a continuación, la principal…

1 month hace

Instalar QEMU/KVM y Virtual Machine Manager

Cuando se trata de virtualización en el escritorio, una de las primeras opciones son sin…

2 months hace

Instalar adaptador WIFI TP-Link AX 1800/ Archer TX20U en Debian y Ubuntu

Siempre he sido un ferviente defensor de una conexión por cable UTP para trabajar por…

2 months hace