miércoles, 25 de febrero de 2009

Liberar espacio en VDIs de VirtualBox

Ya hemos visto como instalar VirtualBox y como crear máquinas virtuales, estas máquinas virtuales las instalábamos en discos virtuales (con extensión .vdi) que creamos con un tamaño máximo (VBoxManage createvdi -filename Disco1.vdi -size 30000 -register).

Podemos observar que el tamaño del fichero que contiene el disco virtual va creciendo conforma vamos instalando cosas en la máquina virtual. Pero ¿qué pasa cuando borro cosas de mi máquina virtual? lamentablemente el fichero .vdi continua ocupando el mismo espacio. Esto puede ser perjudicial para nuestro sistema, ya que teníamos previsto que pudiera llegar a 30GB pero no es molesto trabajar con ficheros tan grandes. Sobre todo si tenemos que hacer copias de seguridad de las máquinas virtuales.

Aquí tengo una solución para máquinas virtuales Microsoft Windows. En mi caso es un Windows 2003 Server, en el que puedo ver desde el sistema virtualizado que solo tiene ocupado 5GB, pero desde el sistema hospedador llega a 8.3GB.
/hdc# ls -lh
total 8,3G
-rw------- 1 root root 8,4G 2009-02-25 10:44 win2003server.vdi

Para solucionar este problema de espacio necesitamos descargar nullfile-1.2.exe, según he encontrado en está web, para Linux hay que descargar zerospace.c y compilarlo. Pero personalmente aún no lo he probado.

Para utilizar nullfile-1.2.exe, recomiendan desfragmentar un par de veces el disco virtualizado desde la máquina virtual y después ejecutarlo desde la máquina virtual. Cuando lo ejecutas se lanza un proceso que tarda algunos minutos, supongo que dependerá del tamaño del disco.

Una vez que ha terminado la ejecución apagas la máquina virtual y desde la máquina hospedadora ejecutas VBoxManage modifyvdi < disco virtual (.vdi) > compact, y este es el resultado.
/hdc# VBoxManage modifyvdi /hdc/win2003server.vdi compact
VirtualBox Command Line Management Interface Version 1.6.6
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.

Shrinking '/hdc/win2003server.vdi': 0%...........10%..........20%..... ....70%..........80%..........90%..........100%
/hdc# ls -lh
total 4,4G
-rw------- 1 root root 1,6K 2009-02-25 11:18 2009-02-25-10-12-21.036-VBoxManage-3493.log
-rw------- 1 root root 4,4G 2009-02-25 11:18 win2003server.vdi

Como podéis ver el tamaño de mi fichero .vdi ha sido reducido considerablemente. He pasado de tener un fichero de 8.3GB a uno de 4.4GB. Ahora mis backup son mucho menos pesado, así que tardo menos tiempo en hacerlos.