Quienes trabajen construyendo aplicaciones de servidor, especialmente aquellas basadas en SharePoint, saben lo que es trabajar a diario con máquinas virtuales y el dolor de cabeza que presentan aquellas máquinas cuando empiezan a crecer exponencialmente en tamaño. Esto sin duda causa que tan solo con unas cuantas máquinas virtuales pues te quedes sin espacio en disco rápidamente.
Lo interesante es que las máquinas virtuales crecen en función de la cantidad de archivos que se creen dentro de ella o que se le agreguen desde el exterior, pero nunca recuperan el espacio que queda libre luego de eliminar aquellos archivos que ya no son necesarios. Esto quiere decir que tu máquina virtual puede tener 30GB de tamaño, pero estar utilizando realmente no más de 15GB, teniendo otros 15GB de espacio desperdiciado. ¿Cómo recuperarlo?
Bueno pues, para quienes ya lo intentaron, no basta con usar el wizard de Virtual PC que compacta las máquinas virtuales. Tal como lo aprendí de este post de Guoqiang Wu son necesarios algunos otros pasos para asegurar recuperar el máximo espacio posible en la virtual y aquí describo brevemente dichos pasos.
1. Ejecuta un Disk Clean Up
Esto es por su puesto lo más obvio. Debes asegurarte de eliminar para siempre todos los archivos temporales y reciclados que anden por ahí en la virtual. Para esto, la forma más fácil es utilizando la utilidad Disk Clean Up de Windows que puedes acceder desde la ventana de propiedades del disco a limpiar.
2. Defragmenta el Disco (¡pero bien defragmentado!)
Esta es la parte más importante a mi parecer. Como probablemente sabes, tu disco se fragmenta día a día, haciendo que archivos que normalmente ocupan unos cuantos sectores de tu disco lleguen a ocupar cientos de ellos a traves de todo el disco, desperdiciando toneladas de bytes en el camino.
Podrías usar para esto el defragmentador de Windows, pero he comprobado que el defragmentador de Dave Whitney, que puedes descargar desde acá, hace un mejor trabajo al dejar los archivos mucho mejor ubicados continuamente en el disco. Una vez descargada la utilidad coloca los archivos tal como lo indica el Readme.txt que viene en la descarga y luego ejecuta esto desde tu línea de comandos:
defrag –i (esto instala el servicio del defragmentador)
defrag –d C: (esto inicia la defragmentación del disco C:)
Esto tomará varios minutos, más que el defragmentador de Windows eso sí, pero lo que ganas vale la pena. Para darte una idea aquí te muestro una imagen del análisis que hace el defragmentador de Windows sobre mi disco luego de usar la utilidad de Dave:
Toma en cuenta que el tamaño de la máquina virtual crecerá bastante durante este proceso pero al compactar verás las ganancias.
3. Haz una Pre-Compactación del disco
Antes de proceder a compactar el disco es necesario encerar todos aquellos bytes que actualmente representan espacios vacíos. Es una forma de decirle a Virtual PC “hey, estos bytes ya no tienen nada útil, asegúrate de eliminarlos cuando compactes”.
Para hacer esto, dirígete al menú CD –> Capture ISO image… de Virtual PC y carga la imagen ISO del Virtual Disk Precompactor que encontrarás en tu directorio C:\Program Files\Microsoft Virtual PC\Virtual Machine Additions, de manera predeterminada. Luego simplemente sigue los pasos del wizard.
4. Compacta el disco
En este último paso apaga la máquina virtual y, desde la consola de Virtual PC, abre los Settings de la máquina, selecciona tu disco e inicia el asistente dándole click a Virtual Disk Wizard. Indícale que deseas editar un disco y luego selecciona Compact it.
Luego de unos minutos tu máquina se habrá compactado y todos los bytes vacíos habrán desaparecido, ganando mucho valioso espacio.
Una nota adicional: Asegúrate de tener suficiente espacio en tu disco real para realizar la compactación. Por ejemplo, si inicias con una máquina virtual de 10GB, esta crecerá posiblemente hasta 20GB durante el proceso y luego Virtual PC demandará otros 20GB para hacer la compactación. En este ejemplo entonces deberías tener unos 30GB libres antes de iniciar todo el proceso.
Espero sea de utilidad,
Julio
Cross-posting desde juliocasal.com