Introduzione:
Facciamo dei salvataggi delle nostre macchine virtuali gestite da VmWare vSphere ESX(i) 3.5, 4.x & 5.x.
Metteremo in sicurezza le macchine virtuali presenti nel datastore in un dispositivo esterno come un NAS.
Lo script gratuito ghettoVCB ci permette di fare backup a caldo delle nostre macchine virtuali. Questo salvataggio può avvenire anche quando il server stà lavorando ed i servizi continueranno ad essere forniti senza problemi.
Il riferimento ufficiale lo possiamo trovare direttamente nella comunità di vmware.
Nel riferimento della comunity possiamo trovare tutte le opzioni che lo script offre, in questa pagina possiamo trovare le opzioni che ho creduto di più interesse.
Backup delle macchine virtuali .
Scarichiamo ghettoVCB e copiamolo nell'host VmWare.
Aggiornamenti ESXi 5.1 U1. scaricare lo script aggiornato ghettoVCB |
Per caricarlo possiamo scegliere fra diverse modalità, una potrebbe essere quella di aprire il "vmware vsphere client" andiamo in "configuration" selezioniamo un datastore e con il tasto destro scegliamo "browse datastore"
Carichiamo il file appena scaricato.
![]() |
![]() |
Adesso accediamo con SSH ed entriamo nella cartella dove abbiamo messo ghettoVCB.
Generalmente possiamo fare cosi:
[rootVM-Esx-01 ~]# cd /vmfs/volumes/ |
con "cd" ci spostiamo nelle cartelle. |
[rootVM-Esx-01 volumes]# ls |
con "ls" vediamo il contenuto delle cartelle |
[rootVM-Esx-01 volumes]# cd datastore1 |
con cd entriamo nel datastore dove abbiamo caricato il ghettoVCB. |
adesso con il comando tar -zxvf nomefilescaricato.tar.gz estraiamo il contenuto dell'archivio
tar -zxvf lamw-ghettoVCB-19e0d4b.tar.gz
troveremo questi file
[roothimalaya lamw-ghettoVCB-19e0d4b]# ls -l
-rwx------ 1 root root 16024 2011-11-24 17:03 ghettoVCB-restore.sh
-rw------- 1 root root 309 2010-05-11 01:41 ghettoVCB-restore_vm_restore_configuration_template
-rwx------ 1 root root 49369 2011-11-24 17:03 ghettoVCB.sh
-rw------- 1 root root 356 2011-11-24 16:59 ghettoVCB-vm_backup_configuration_template
-rw------- 1 root root 281 2011-11-20 21:27 README
entriamo nel vivo della configurarazione con il comando
nano ghettoVCB.conf
Si aprirà il file delle configurazione. La prima riga definisce il datastore ed il percorso dove vengono salvate le Virtual Machines:
VM_BACKUP_VOLUME=/vmfs/volumes/dlgCore-NFS-bigboi.VM-Backups/WILLIAM_BACKUPS
Per esempio, nel mio caso:
VM_BACKUP_VOLUME=/vmfs/volumes/VmwareOpenfiler
Dalla seconda riga possiamo definire il formato con cui salvare le macchine virtuali (zeroedthick, eagerzeroedthick, thin, and 2gbsparse are available). Per le specifiche dei formati rimando al sito ufficiale.
DISK_BACKUP_FORMAT=thin
Storico dei salvataggi da tenere. Il quarto salvataggio sovrascrive il terzo più vecchio, per un totale di tre:
VM_BACKUP_ROTATION_COUNT=3
Qui si definisce se la macchina virtuale viene spenta prima di eseguire il salvataggio (1=spenge , 0=crea snapshot e la VM rimane accesa):
POWER_VM_DOWN_BEFORE_BACKUP=0
Se il valore sopra è a 1, questa forza l'arresto della VM
Nota: per le righe non descritte in questo documento suggerisco di lasciare il valore standard. Per maggiori personalizzazioni rimando al sito ufficiale.
Defining NON-PERSISTENT NFS Backup Volume (1 = yes, 0 = no):
ENABLE_NON_PERSISTENT_NFS=0
NOTE: Questo comando abilita il mount del volume NFS. Generalmente preferisco associare un datastore fisso per i backup.
In rete si trovano molte guide per le molte soluzioni possibile. Un punto di partenza può essere questo.
Defining whether or not to unmount the NFS backup volume (1 = yes, 0 = no):
UNMOUNT_NFS=0
Defining the NFS server address (IP/hostname):
NFS_SERVER=172.51.0.192
Defining the NFS export path:
NFS_MOUNT=/upload
Defining the NFS datastore name:
NFS_LOCAL_NAME=backup
Defining the NFS backup directory for VMs:
NFS_VM_BACKUP_DIR=mybackups
Defining whether or not to email backup logs (1 = yes, 0 = no):
EMAIL_LOG=1
Defining whether or not to email message will be deleted off the host whether it is successful in sending, this is used for debugging purposes. (1 = yes, 0 = no):
EMAIL_DEBUG=1
Defining email server:
EMAIL_SERVER=auroa.primp-industries.com
Defining email server port:
EMAIL_SERVER_PORT=25
Defining email delay interval (useful if you have slow SMTP server and would like to include a delay in netcat using -i param, default is 1second):
EMAIL_DELAY_INTERVAL=1
Defining recipient of the email:
EMAIL_TO=Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
Defining from user which may require specific domain entry depending on email server configurations:
EMAIL_FROM=root@ghettoVCB>
Un esempio pratico:
[root@VM-Esx-01 ~]# cat /vmfs/volumes/IBM-DS3400/ghettoVCB/ghettoVCB.conf |
percorso del datastare sull'host ESX. formato del backup thin tiene una copia delle macchine virtuali.
indirizzo ip della nas(openfiler) percorso condivisione NFS.
server smtp per invio mail.
indirizzi che ricevono il report.
|
Premiamo CTRL e O per salvare dall'editor nano. Infine CTRL e X per uscire.
Adesso che abbiamo creato il file di configurazione per ghettoVCB creiamo anche il file dove inseriamo la lista delle macchine virtuali da salvare.
nano vm-list
Inseriamo solo il nome delle macchine virtuali che vogliamo salvare. Esempio:
come sopra, CTRL e O per salvare , CTRL e X per uscire.
riassumendo
- abbiamo scaricato gratuitamente lo script dal sito ufficiale.
- abbiamo caricato lo script in un datastore a piacere e lo abbiamo decompresso.
- abbiamo a disposizione uno storage di rete iSCSI o NFS.
- abbiamo creato il file ghettoVCB.conf con le nostre configurazioni.
- abbiamo creato il file contenente la lista delle macchine virtuali da salvare.
0 21 * * * /vmfs/volumes/IBM-DS3400/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/IBM-DS3400/ghettoVCB/vm-list -g /vmfs/volumes/IBM-DS3400/ghettoVCB/ghettoVCB.conf > /vmfs/volumes/VmwareOpenfiler/ghettoVCB-01-backup-$(date +\%s).log |
- :w! per uscire senza salvare anche se abbiamo fatto modifiche.
- :w per uscire se non abbiamo fatto modifiche.
- :wq per uscire e salvare le modifiche.
/vmfs/volumes/IBM-DS3400/ghettoVCB/ghettoVCB.sh |
/vmfs/volumes/IBM-DS3400/ghettoVCB/vm-list |
/vmfs/volumes/IBM-DS3400/ghettoVCB/ghettoVCB.conf |
/vmfs/volumes/VmwareOpenfiler/ghettoVCB-01-backup-$(date +\%s).log |
se avessi voluto che il mio script partisse solo il sabato alle 21:00 di ogni mese di ogni anno avrei impostato i primi valori cosi: 0 21 * * 6
se avessi voluto farlo partire alle 14:30 del mercoledi e domenica avrei impostato i valori cosi: 30 14 * * 3,0
per tutte le combinazioni possiamo cercare guide che parlano di crontab.
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0 2 12 * 0,6 comando da eseguire
NOTA: ESXi versione 5 non è disponibile in crontab da comando e al riavvio le schedulazioni vengono cancellate.
Occorre eseguire alcuni passi come riportato nella pagina del ghettovcb sulla voce di configurazione per ESXì. documentazione ufficiale.