Copias de seguridad gratuitas para VM’s en VMware ESXi 5.5. con ghettoVCB.sh

Hola a todos, en esta entrada explicaré como realizar copias de seguridad de manera gratuita de las máquinas virtuales de nuestros servidores ESXi. Para ello utilizaré la herramienta llamada ghettoVCB.sh

¿Qué es ghettoVCB.sh?

Este script realiza copias de seguridad de máquinas virtuales que residen en servidores ESX (i) 3.5 / 4.x / 5.x. El script toma instantáneas de máquinas virtuales en ejecución y crea una copia de seguridad del maestro VMDK (s), luego al finalizar, se elimina la instantánea hasta la siguiente copia de seguridad.
Este script ha sido probado en ESX 3.5 / 4.x / 5.x y ESXi 3.5 / 4.x / 5.x y soporta los siguientes medios de copia de seguridad:

  • ALMACENAMIENTO LOCAL
  • SAN
  • NFS .

El script no es interactivo y puede ser configurado para funcionar a través de cron.
Por favor, ser diligentes en la ejecución del script en una prueba o entorno de ensayo antes de utilizarlo en la producción de máquinas virtuales en ejecución; este script  funciona bien dentro de nuestro entorno, pero hay una posibilidad de que no puede encajar bien en otros ambientes.

Fuente: Documentación oficial.


En el manual veremos como incluir el es script en nuestros servidores VMware ESXi 5.5. y realizaré una prueba del funcionamiento. También veremos como realizar copias de seguridad programadas con al servicio cron.


CONFIGURANDO CLONACIÓN DE MÁQUINAS VIRTUALES

1) En primer lugar debemos de descargar el paquete ghettoVCB desde GitHub.

2) Una vez descargado debemos descomprimir el paquete y transferir el script ghettoVCB.sh en nuestros servidores ESXi, para ello podemos utilizar el software WinSCP. Introducimos el potrocolo SFTP, nombre del host y usuario root.

Debemos de transferir el archivo ghettoVCB.sh a una carpeta de alguno de nuestros datastores, yo elegiré el datastore1 (local) de mi servidor ESXi. También incluiré el archivo VM_backup.txt donde estará incluida el nombre o nombres de la VM’s de las que queramos hacer copia.

00
2) Ahora le daremos permisos de ejecución al script.

02

3) Debemos de configurar el script para ello utilizamos un editor te texto.

03

4) Aparecerá el código del archivo a configurar, entre todas, la línea imprescindible a configurar es la VM_BACKUP_VOLUME=”ubicación” donde indicaremos la ubicación de las copias de seguridad, yo utilizaré el datastore NFS.

Para guardar los cambios pulsamos ESC y escribimos :wq!

045) Ahora realizaremos una prueba de funcionamiento, eligiendo las VM’s escritas en el archivo VM_backup.txt

Nota: VM_backup.txt es un archivo creado en Windows donde están escritas las VM’s a desplegar, también es posible crear un fichero nuevo sin extensión e incluir ahí las VM’s que necesitemos. Para ello podemos utilizar el editor geany.

También es posible realizar copias de todas las VM’s del ESXi, como configurar el tipo de copia thin o thick, entre otros parámetros, todo explicado en el script ghettoVCB.sh


PROGRAMANDO TAREAS DE COPIA DE SEGURIDAD UTILIZANDO CRON

Este script tiene la ventaja de integrarse con el servicio crond de Linux. Haremos lo síguente:

1) En primer lugar debemos de entrar a:
/var/spool/cron/crontabs/root

052) Debemos de escribir la siguiente línea, donde elegiremos cada cuanto tiempo queremos lanzar la tarea, en mi caso programaré la tarea para que se realice cada 90 minutos todos los días. (Click en la imagen para ampliar)

Guardamos los cambios con ESC y :wq
063) Lo siguiente será buscar el PID del proceso crond, una vez conocido finalizaremos el proceso con kill y el PID. 074) En la versión ESXi 5.5. debemos de volver a arrancar el proceso escribiendo la síguente línea.
085) Por último debemos de guardar los cambios para que al reiniciar el servidor ESXi el proceso de copia programada se inicie con el sistema. Para ello debemos de editar el siguiente archivo y escribiendo las siguientes líneas.

Guardamos con ESC y :wq!

09

6) Antes de la línea exit 0 escribimos:10

7) Para guardar todos los cambios escribiendo esta última línea.

11


Si todo funciona correctamente veremos nuestras copias en el datastore y ubicación especificado.

12 13

Como vemos tenemos un buen método para copiar máquinas virtuales de VMware de manera gratuita, recordando que no es recomendable para grandes entornos de producción, sino para entornos de pequeño tamaño o de laboratorio.


Nota: Otra opción interesante de este script, es poder conocer el estado de nuestras copias en nuestro email, configurando el archivo ghettoVCB podremos recibir notificaciones en nuestro email cuando la copia esté finalizada o haya surgido algún error. Podría realizar un post dedicado a esta configuración si lo necesitais, solo tenéis que pedirlo ;)

Saludos,
Israel.

9 pensamientos sobre “Copias de seguridad gratuitas para VM’s en VMware ESXi 5.5. con ghettoVCB.sh

  1. Buenos días!!

    Me da el siguiente error:

    2014-10-31 11:05:03 — info: ERROR: failed to locate and extract VM_ID for vmmachine

    2014-10-31 11:05:06 — info: ###### Final status: ERROR: All VMs failed! ######

    A que es debido?¿? es como si me leyera mal el .txt. En el txt tengo las máquinas virtuales con un salto de línea hay que poner algo más???

    Es que me hace bien una máquina virtual y las otras 4 les salta ese error.

    Muchas gracias!!!

    • Hola Naviego,

      En primer lugar agradecerte el comentario, espero que te sirva de gran ayuda.
      Al parecer el error que te da es porque el nombre de las VM’s no está bien escrito, compruébalo, puedes poner VM por VM para ver cual es la que da error.

      Si quieres realizar backups de todas las VM’s que tienes alojadas en el ESXi también puedes probar con el comando: ./ghettoVCB.sh -a

      Espero que puedas solucionarlo.

      Un saludo,
      Israel.

  2. Gracias por la respuesta!!! :D

    Yo puse el comando (ghettoVCB.sh -f … ) en el root y en local.sh. Que hace que solo cree un backup de una máquina virtual la letra -f? Los nombres de los .vmx los tengo bien escritos en el txt. Probaré lo que tu dices

    Gracias por responder tan rápido!

  3. Hola Israel,

    gracias a tu aporte con el -a he podido realizar la tarea. La verdad que está muy bien!

    Tengo otra pregunta: Yo ahora tengo 3 discos duros en el ESXi, el disco1 donde alojo los Backups, el disco2 donde tengo las máquinas virtuales y el disco3 donde tengo maquinas virtuales y backups por si me falla los 2 discos duros. ¿Qué comando debo realizar para que solo me coja las máquinas virtuales del disco2?
    Porque con el -a me cogerá todas las máquinas virtuales alojadas en el ESXi…

    Espero que me puedas ayudar.

    Muchas gracias!!!

  4. Buen post Israel.

    Sabes que estoy tratando que me envié notificaciones por mail, tengo un servidor de correo laboratorio que funciona perfecto, pero al configurar en el ghettoVCB no me envía luego de los respaldos las notificaciones.
    Me podrías dar una mano.

    Se agradece.

    Sebastian.

  5. Hola , tengo un ESXi 4.1 y he tenido que buscar una version antigua ya que la que esta en el github no funciona , si realizo ./ghettoVCB.sh -a con el parametro VMDK_FILES_TO_BACKUP=”all” , me copia todas la maquinas con sus discos, pero si especifico que me haga la copia de una sola maquina solo me copia el .VMX ¿por que puede ser?
    Teneis alguien las diferentes versiones que se han ido creando del ghettoVCB.sh, la que yo encontré solo tiene 3 ficheros.

    gracias
    saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>