Backup script para VMware Server

BackupUna de las ventajas de desplegar un entorno de máquinas virtuales es la facilidad de realizar copias de seguridad de los sistemas virtualizados simplemente copiando la carpeta que contiene los ficheros que definen la máquina virtual. La dificultad añadida es que los ficheros están bloqueados por el hipervisor y una simple copia del directorio de la máquina virtual en marcha nos dará como resultado un sistema corrupto. Los hipervisor de serie alta y las soluciones de backup profesionales cubren esta problemática, pero en el caso de soluciones de virtualización gratuítas como VMware server hay que buscarse la vida de otro modo.

Mi solución ha sido crear un script que copia el directorio de la máquina virtual sobre otro disco duro, esto favorece la velocidad y nos da la seguridad de que si se avería el dico original la copia de seguridad nos queda a salvo.

A grandes rasgos, los pasos a seguir son

  1. Instalar las VMware Tools en el sistema operativo de la máquina virtualizada (sólo una vez)
  2. Detener (o pausar) la máquina virtual por línea de comandos
  3. Hacer una copia del directorio
  4. Iniciar la máquina virtual por línea de comandos
  5. Otras operaciones copmo comprimir, copiar a otro destino, borrar copias antiguas…

Aquí, el comando clave es vmware-cmd que forma parte de la VMware Scripting API. Se trata de una utilidad que nos permite pausar o detener la máquina virtual desde el sistema operativo de anfitrión para realizar copias de seguridad consistentes.

Existe una pequeña diferencia entre pausar y detener la máquina virtual. Al pausar estamos congelando el sistema operativo virtualizado de forma que nos ahorramos los procesos de shutdown y start del sistema. Al detener e iniciar estamos pasando por todos los procesos comunes que conllevan esta operaciones en nuestro sistema operativo virtualizado. La práctica recomendada por VMware si queremos contar con la posibilidad de restaurar la máquina virtual en otro hipervisor es detener. Si esto no es un requisito podemos ahorrar tiempo con la opción de pausar.

En mi caso el tiempo de copia de seguridad con shutdown y restart de una máquina virtual Ubuntu Server de 10GB en disco es inferior a 4 minutos. Aunque esta es una apreciación muy relativa al hardware disponible y recursos del sistema anfitrión.

Os dejo mi modesto script VMware VM backup for LINUX v0.2 perfecto para programar el backup en el crontab. He pensado que se pueden introducir mejoras como la compresión posterior para ahorrar espacio, mantener un anillo de copias, enviar la copia a otra máquina, salida a un log y un sistema de notificaciones… pero todo se andará.

13 comentarios sobre “Backup script para VMware Server

  1. Muy buena explicación

    Me surge una pregunta:

    ¿Se deben respaldar sólo los discos virtuales o pueden ser incluídos también los archivos de configuración(incluyendo el de suspensión?

    Esto, pensando en que si necesito restaurar el respaldo desde hardware distinto, especialmente, la CPU.

    Muchas gracias

  2. VMWare (y yo mismo) recomienda copiar todos los archivos de la VM en estado ‘detenido’ especialmente si el caso es que se va a restaurar en una instancia del hipervisor de otra máquina anfitrión. Además, los archivos de configuración ocupan apenas unos KB en comparación con los GB de los volumenes del disco duro virtual.

    Si tu idea es tener preparado otro anfitrión y respaldar sólo los ficheros del VHDD, sólo sería válida en caso de que el número de volúmenes del disco duro virtual fuese el mismo, porque estos se declaran en el fichero de condifuración.

    Más ideas para mejorar el script:

    Aunque el script copia todos los archivos del directorio contenedor de la máquina virtual cada vez, he pensado en mejorarlo haciendo sólo una copia diferencial – vía rsync – a un directorio espejo a partir del cual haría una copia completa del día en cuestión una vez reiniciada la máquina virtual.

    Los tiempos de copia en mi caso rondan tiempos de 1 a 5 min pero me gustaría minimizar el tiempo en que la VM está apagada.

  3. Como copiar mi sistema operativo en este caso vista y crear una copiar de ese mismo a un virtual machine, gracias

  4. Tu pregunta es un poco difusa, lo que entiendo es que quieres virtualizar un sistema operativo que está instalado actualmente en una máquina real.

    VMWare tiene una herramienta que se ocupa precísamente de eso: de convertir sistemas reales en virtuales. Se llama VMWare Converter, tendrás que ver sus caraterísticas para ver si es compatible con Vista.

    Si no te vale esta herramienta, a mi me ha funcionado haciendo una imagen de la partición real (con Ghost, Drive Image…) y luego la restauras en un disco duro virtual.

  5. gracias, ya utilice el converter y me funcionò, tengo otra pregunta, como restaurar carpetas de Virtuales (en este caso yo elimine por error el XP profesional virtual), lo que pasa es que la ultima vm que creè, tenia los software de rockwell (rslogix, factory talk, etc) y necesito desintalarlo desde mi vm xp eliminada. gracias, espero que me ayuden
    ya que cuando quiero instalar otra vez los software de rockwell no me permite ya que tengo la licencia ocupada en la virtual machine eliminada.

  6. Muchas gracias a todos por vuestros comentarios. Aunque desde el verano estoy más centrado en mi afición a las fotos con el fotoblog diario http://www.jmarior.net. Quizás retome Virtualizados más adelante cuando tenga ganas de experimentar más con cualquier cosa virtual.

    saludos
    jmarior

  7. Viene alguna herramienta para convertir sistemas reales en virtuales pero para ser utilizados con el Windows 2008 Server.

  8. tengo una pregunta trato de correr una applicacion de rsview32 en un server por vmware pero no se como pasarle las licencias al server, ya trate de mapeando el disco, por usb, con otro disco portatil. hay forma de pasarle las licencias?

    slds!

  9. Hola muchas gracias por tu ayuda este tema es de gran utilidad para quienes administramos sistemas. Pero hay una duda con respecto a las tools vmware yo instale la version actual de vmware que la del dia de hoy 31 07 2009 esta tool se instala en la plataforma o en las maquinas virtualizadas . Por otra parte el mismo tema de la instacion de esta seria genial. Muchas gracias y un abrazo

  10. Las tools se instalan en el SO vistualizado, piensa que además de controlasdores para la tarjeta de red, vídeo, sonido, usb… también se instala un controlador que le permite al VMWare server comunicarse con el cliente y enviarle comandos como apagar o encender desde la línea de comandos del SO anfitrión.

  11. Ok muchas gracias por tu aclaracion , ahora que version me recomiendas tu ? Tengo instalado vmware server 2 , muchas gracias por tu atencion .

Comentarios cerrados.