Free alternative for backing up VM’s for ESX(i) 3.5, 4.x, 5.x, 6.x & 7.x
Realiza copias de seguridad de las máquinas virtuales VMware ESXi con ghettoVCB. Se utiliza principalmente como una alternativa a las soluciones de backup pagas y se ejecuta en el host ESXi para realizar copias de seguridad de las máquinas virtuales y sus archivos de configuración.
El ghettoVCB script permite realizar copias de seguridad completas o incrementales de las máquinas virtuales en diferentes ubicaciones, como un almacenamiento local, un almacenamiento en red o incluso en la nube. También admite la programación de tareas de copia de seguridad para que se realicen de manera automática en intervalos regulares.
Además, el script incluye varias opciones de configuración para personalizar el proceso de copia de seguridad según las necesidades específicas del usuario. Por ejemplo, se puede configurar el script para excluir ciertas máquinas virtuales o discos virtuales de la copia de seguridad, o para establecer un límite de tiempo para la duración de la copia de seguridad.
Requisitos previos
Para completar este tutorial, necesitará lo siguiente:
- Un servidor Vmware Esxi
- Acceso por consola al servidor Vmware Esxi
Descarga de ghettoVCB script
Una vez que haya ingresado por consola a su servidor Vmware Esxi, debera clonar el siguiente repositorio
git clone https://github.com/lamw/ghettoVCB.git
Una vez que haya clonado el repositorio, deberá centrarse en el archivo «ghettoVCB.conf» y editarlo para especificar la ubicación de destino donde se almacenarán las copias de seguridad.
NOTA: No olvide dar permisos de ejecución al archivo ghettoVCB.sh con chmod +x ghettoVCB.sh
VM_BACKUP_VOLUME=/vmfs/volumes/carpetadestino
Luego que haya definido la ruta de destino, puede realizar las siguientes modificaciones, de acuerdo a sus necesidades
VM_BACKUP_VOLUME: definición del datastore donde los backups se guardan.
DISK_BACKUP_FORMAT: definición del formato del VMDK (virtual machine disk) resultante del proceso de backup. Este fichero representa el disco duro de la máquina virtual y puede ser de varios tipos:
- thin: se asigna sólo el espacio necesario, aunque inicialmente se haya reservado más espacio en la creación de la máquina virtual. El espacio sobrante estaría disponible para otras máquinas virtuales.
- zeroedthick: todo el espacio del disco es reservado y no está disponible para su uso por otras máquinas virtuales. Los datos existentes en el dispositivo físico no se borrar durante la creación pero se formatean con ceros los bloques según se van necesitando para borrar cualquier tipo de dato anterior.
- eagerzeroedthick: a diferencia de zeroedthick, todo el espacio se formatea con ceros en el momento de la creación, con lo que se requiere de más tiempo en la creación de este tipo de discos.
- 2gbsparse: son discos de 2GB de tamaño máximo.
*VM_BACKUP_ROTATION_COUNT: número de backups permitidos antes de la rotación (retención del backup).
Prueba de funcionamiento
Hasta este punto, ya puede ejecutar el script para realizar validaciones de funcionamiento, para ello, simplemente ejecute la siguiente linea de codigo:
./ghettoVCB.sh -m nombredelamaquinavirtual -g ./ghettoVCB.conf
a continuación se detalla algunos parametros :
- -m: máquina virtual de la que va a hacer backup.
- -g: ubicación del fichero de configuración principal.
- -l: fichero de salida para el log.
- -a: backups de todas las máquinas virtuales asociadas al ESXi donde se ejecute el script.
- -f: fichero txt con las máquinas virtuales para hacer backup
- -w: directorio de trabajo de ghettoVCB. Por defecto /tmp.
- -d: nivel de debug: [info|debug|dryrun], por defecto info.
Configuración de alertas por EMAIL
para poder enviar un reporte una vez culminado el proceso de backup, debe considerar que el servidor debe contar con salida a internet.
Adicional a ello, debera modifcar el archivo de configuración y asignar una cuenta de correo, teniendo como resultado final lo siguiente:
EMAIL_ALERT=1
EMAIL_LOG=1
EMAIL_SERVER=mail.mundolinux.xyz
EMAIL_SERVER_PORT=25
EMAIL_DELAY_INTERVAL=1
[email protected]
EMAIL_USER_PASSWORD=estoesunacontraseña
[email protected]
EMAIL_ERRORS_TO=
EMAIL_FROM=root@ghettoVCB
Habilitación de servicio SMTP
Para el mensaje sea enviado de manera satisfactoria, es necesario activar el servicio SMTP de Vmware Esxi, para ello, editamos el siguiente fichero services.xml
cp /etc/vmware/firewall/service.xml /etc/vmware/firewall/service.xml.original
Modificamos los permisos de acceso del fichero services.xml para permitir la escritura
chmod 644 /etc/vmware/firewall/service.xml
chmod +t /etc/vmware/firewall/service.xml
Editamos el fichero /etc/vmware/firewall/service.xml y añadimos esta nueva regla al final antes del cierre de </ConfigRoot>
<service>
<id>email</id>
<rule id="0000">
<direction>outbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>25</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
Dejamos los permisos como estaban antes:
chmod 444 /etc/vmware/firewall/service.xml
Refesh de las reglas del firewall:
esxcli network firewall refresh
Por último listamos las reglas para comprobar que hemos realizado bien el procedimiento:
esxcli network firewall ruleset list
Configuración de CRON JOB
Edite /etc/rc.local.d/local.sh, inserte esto antes de la línea de exit 0
NOTA: Debe modificar la ruta, de acuerdo en donde se ubicar el script ghettoVCB.sh y el ghettoVCB.conf, adicional a ello, puede definir una ruta para poder almacenar los logs de salida.
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 21 * * 5 /opt/ghettovcb/bin/ghettoVCB.sh -a -g ./ghettoVCB.conf > /vmfs/volumes/<$BACKUP_DATASTORE>/Backups/ghettoVCB-\$(date +%s).log" >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond
Ejecutar el script
/bin/sh /etc/rc.local.d/local.sh
Haz que los cambios sean persistentes
/bin/auto-backup.sh
Si desea conocer mayor información, referente a este poderoso script, puede visitar el siguiente enlace GhettoVCB