Questo è un piccolo script per sincronizzara un virtual machine tra due server esx con storage locale.
Per prima cosa si devono creare le chiavi ssh per l'accesso tra i due server. Per facilitare tutte le procedure di copia tra i due server si userà l'utente root.
1. Abilitare su entrambi i server l'accesso ssh come root
2. Creare le chiavi ssh su entrambi i server
3. Configurare vcb
4. Creare la directory di stage dei file vmdk
5. Creare lo script di sincronizzazione
6. Abilitare il firewall per le connessioni ssh in uscita
7. Testare lo script
8. Configurare cron per le schedulazioni delle sincronizzazioni
# vi /etc/ssh/sshd_configPermitRootLogin yes
# /etc/init.d/sshd restart# ssh-keygen -t dsaNon digitare nessuna password per la decriptazione delle chiavi
# scp .ssh/id_dsa.pub root@esx02:~root/.ssh/authorized_keys# ssh root@esx02Se tutto va bene il login non dovrebbe richiedere nessuna password
Dato che la password di root in questo esempio viene scritta in chiaro nel file di vcb, è altamente consigliabile creare un utente aggiuntivo e da ViClient dargli i permessi minimi per creare e rimunovere gli snapshots
# vi /etc/vmware/backuptools.confmodificate le seguenti voci
VCHOST=localhost
USERNAME=root
PASSWORD=root_password
TEMPDIR=/vmfs/volumes/storage1/tmp_backup
La directory di stage del backup deve essere abbastanza grande per contenere la virtual machine di maggior dimensioni.
# mkdir /vmfs/volumes/storage1/tmp_backupOra creiamo lo script di sincronizzazione
# mkdir /opt/script# vi /opt/script/vmvoodoosync.sh#!/bin/bashPATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"DATE="$(date +%d-%m-%Y)"HOST="`hostname -s`"HOSTDR="192.168.192.99"LOG="/vmfs/volumes/storage1/tmp_backup/Backuplog-$DATE.log"echo "Backup $HOST started at `date`" > $LOGfor vmname in `/usr/sbin/vcbVmName -s powerstate:on |grep name: | awk -F: '{print $2}'`; do ssh backupusr@$HOSTDR "mkdir -p /vmfs/volumes/storage1/$vmname" /usr/sbin/vcbMounter -a name:$vmname -M 1 \ -r scp://backupusr@$HOSTDR:/vmfs/volumes/storage1/$vmname >> $LOGdoneecho "Backup $HOST finished at `date`" >> $LOGApriamo le porte del firewall su entrambi gli host
# esxcfg-firewall -e sshServer# ssh root@esx02 -c " /usr/sbin/esxcfg-firewall -e sshServer"Ora testiamo lo script.. ma prima ve reso eseguibile
# chmod 755 /opt/script/vmvoodoosync.sh# /opt/script/vmvoodoosync.shPer verificare il corretto funzionamento dell0 script potete verificare il file di log all'interno della directory di stage
Se tutto è andato bene potete configurare la schedulazione
# contrab -e30 20 * * * /opt/script/vmvoodoosync.sh