Comprimir máquinas virtuales

Llevo un tiempo montandome un sistema de build y de test que está formado por varias máquinas virtuales (el otro día me pasé a vmware server 2).

Yo creo que tener un sistema de backup es esencial, si bien uno puede obviarlo cuando todo va bien, siempre se acuerda cuando de pronto el disco que guardaba datos importantes peta, o entra un virus, o hace un “rm -rf *” sin querer…. estas cosas pasan. Así que lo mejor es prevenir.

Bueno, el caso es que hacer una copia de seguridad de una máquina virtual es la cosa más sencilla del mundo, simplemente hay que comprimir el directorio raíz de la máquina virtual, y guardarlo en otro disco duro/DVD/…

Aunque hoy día los discos duros están bastante baratos, yo de momento sigo usando DVDs para hacer copias de seguridad. Prefiero saber que cada copia de seguridad está en un elemento físico distinto que no puede ser alterado (te puedes cargar un DVD, pero no puedes hacer un “rm” por accidente).

El problema que tengo, es que cada DVD, tiene un almacenamiento bastante reducido, así que me interesa comprimir las imágenes cuanto más mejor.

Para comprimir una máquina virtual vmware (usando VMware Server 2), sigo los siguientes pasos:

  1. Asegurarse de que la máquina virtual está apagada (o llamar a vmrun para apagar esa maquina virtual)
  2. Defragmentar el disco o discos a comprimir (defragment)
  3. Preparar el disco para ser reducido (prepare for shrink)
  4. Reducir el disco (shrink)
  5. Comprimir el disco ya reducido

Ni que decir tengo que este proceso dura su tiempo, pero uno tampoco hace backups todos los días.

El primer paso no es imprescindible, pero ya puestos, pues nos dejamos los discos duros virtuales bien organizados ;)

Bueno, a continuación los comandos para hacer esos pasos en VMware Server 2.0:

# defragment vmware image
vmware-vdiskmanager -d $vmdkfile

# prepare for shrink
vmware-mount $vmdkfile $mntpoint
vmware-vdiskmanager -p `pwd`/$mntpoint
vmware-mount -d $mntpoint

# shrink the vm disk
vmware-vdiskmanager -k $vmdkfile

# compress the folder
echo "Creating $vmdir.tgz..."
tar -cvzf $vmdir.tgz $vmdir

Sobre las variables:

  • $vmdir es el directorio donde se encuentra la máquina virtual
  • $vmdkfile es el disco virtual que usa la máquina virtual (extensión vmdk)
  • $mntpoint es un directorio temporal para montar el disco virtual

Y ya está. Fácil, rápido y sencillo.

Trackback URL

, , , , , ,

3 Comments on "Comprimir máquinas virtuales"

Hi Stranger, leave a comment:

ALLOWED XHTML TAGS:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Subscribe to Comments