Il backup è stato implementato su usando il tool gratutito ghettoVCB (http://www.virtuallyghetto.com/).
Questi i passi seguiti per implementare il tutto:
- Scaricare il software (si tratta di un semplice script) dal sito;
- Scompattarlo in una directory in cui è montato un Datastore di ESX (nel caso in esempio /vmfs/volumes/datastore1)
- Montare come datastore NFS una share su un NAS (verificare lo spazio prima di creare la share, i backup di VMWare sono piuttosto corposi)
- Modificare il file di configurazione ghettoVCB.conf in una maniera simile a questa.
- VM_BACKUP_VOLUME=/vmfs/volumes/BIGTERA
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=1
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=0
ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
NFS_SERVER=bigtera
NFS_VERSION=nfs
NFS_MOUNT=/nfsshare
NFS_LOCAL_NAME=nfs_storage_backup
NFS_VM_BACKUP_DIR=bkp_esx
SNAPSHOT_TIMEOUT=15
EMAIL_LOG=1
EMAIL_SERVER=smtp
EMAIL_SERVER_PORT=25
EMAIL_DELAY_INTERVAL=1
EMAIL_TO=mail@domain.tld
EMAIL_FROM=ghettoVCB@domain.tld
WORKDIR_DEBUG=0
VM_SHUTDOWN_ORDER=
VM_STARTUP_ORDER=
ENABLE_COMPRESSION=0
Non è necessario impostare i parametri relativi all’NFS se la share è già stata montata nell’ESXi: in questo caso basta specificare il path nel formato/vmfs/volumes/nomeShareSuESXi alla voce VM_BACKUP_VOLUME.
Il backup viene lanciato con il comando
/vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.sh -g /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.conf -f /vmfs/volumes/datastore1/ghettoVCB-master/vms_to_backup > /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB-backup-$(date +\%s).log
E’ obbligatorio l’uso dei percorsi assoluti. Il parametro -g indica dove trovare il file di configuraizone (il ghettoVCB.conf di cui sopra), mentre il -f indica dove trovare la lista dei serve da salvare (un normale file con i nomi macchina, uno per riga). Il tutto scrive l’outpunt in un file di log.
Per inserire il job nella crontab occorre fare un po’ di lavoro, visto che ESXi non ha una vera e propria shell. Questi i comandi da dare:
vi /var/spool/cron/crontabs/root (attenzione ai permessi, a volte non si può modificare detto file, dare prima il comando chmod u+w /var/spool/cron/crontabs/root)
Inserire la seguente riga:
0 2 * * 0 /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.sh -g /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.conf -f /vmfs/volumes/datastore1/ghettoVCB-master/vms_to_backup > /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB-backup-$(date +\%s).log
Riavviare cron:
~ # kill $(cat /var/run/crond.pid)
~ # crond
Per evitare che dopo un reboot le modifiche al cron vengano perse, bisogna inserire le seguenti righe in /etc/rc.local (o /etc/rc.local.d/local.sh per ESXi 5.1)
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 0 * * 1-5 0 2 * * 0 /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.sh -g /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB.conf -f /vmfs/volumes/datastore1/ghettoVCB-master/vms_to_backup > /vmfs/volumes/datastore1/ghettoVCB-master/ghettoVCB-backup-$(date +\%s).log"
crond
Salvare le impostazioni con il comando: /sbin/auto-backup.sh
Infine verificare che crond stia girando: ps | grep crond | grep -v grep
Per ulteriori info leggere qua: https://communities.vmware.com/docs/DOC-8760