Xen server - Hot Backup - Versione .xva

May 25, 2017 0 Comments Xen Server

Ciao a tutti! Ecco un altra versione di questa guida sulla realizzazione di un backup a caldo di macchine virtuali Xen Server.

I requisiti sono:

  • Avere un server Xen Server di cui fare il backup
  • Avere un Nas o una macchina con una share NFS

Prima di tutto la procedura riassunta è questa:

  1. Si selezionano le macchine virtuali di cui si vuole fare il backup
  2. Per ogni macchina virtuale viene creata una snapshot
  3. Da ogni snapshot viene fatta un export di un file .xva e salvato sulla share NFS
  4. Alla fine della procedura viene distrutta la snapshot usata per creare l’xva
  5. Fine!

Partiamo quindi dal punto 1: bisogna quindi fare login all’interno del server Xen (ssh) e lanciare il comando per vedere l’elenco delle macchine virtuali a disposizione

xe vm-list is-control-domain=false is-a-snapshot=false | grep name-label  

Si avrà un elenco simile a questo:

name-label ( RW): Macchina1 name-label ( RW): Macchina2  

Ipotizzando di aver già collegato a Xen Server una share NFS dovremmo avere una situazione simile a questa:

Schermata 2016-04-19 alle 09.32.37

Dove NAS sarà la nostra share NFS. Guardiamo nelle impostazioni della share qual’è l’id assegnato da Xen

Schermata 2016-04-19 alle 09.33.24

Prendiamo quindi l’UUID.

Il passo successivo è creare una cartella sul server che conterrà gli script di backup, per esempio /SCRIPT_HOT_BACKUP/ dove all’interno andremo a mettere due file:

  • name_macchine.txt
  • backup.sh

All’interno di name_macchine.txt andremo a mettere in ogni riga i nomi delle macchine selezionate in precedenza per il backup, nel nostro caso

Macchina1  
Macchina2  

E andremo a scrivere il seguente script:

#!/bin/bash 

SRUID=90097326-80d0-4a1d-b42e-f97743987712  
for fn in `cat /SCRIPT_HOT_BACKUP/name_macchine.txt`; do  
echo $fn  
DATE=`date +"%Y-%m-%d_%H_%M_%S"`  
SNAPUID=`xe vm-snapshot vm="$fn" new-name-label="$DATE backup $fn"`  
xe vm-export vm=$SNAPUID filename="/var/run/sr-mount/$SRUID/$DATE$fn.xva"  
xe snapshot-uninstall force=true snapshot-uuid=$SNAPUID  
echo "FINE $fn"  
done  

Come potete vedere ci sono alcune variabili,  l’unica importante da impostare è SRUID che conterrà l’id della share NFS scelta in precedenza.

Questo script scorrerà ogni nome macchina inserito nel file name_macchine.txt ed eseguirà snapshot, salvataggio del file xva e distruzione snapshot.

Una volta completato il backup, avrete tutti i file .xva presenti nella destinazione NFS scelta in precedenza.Da riga di comando si avrà un output simile a questo:

Macchina1 Export succeeded  
The following items are about to be destroyed  
VM : cfa16755-187e-bd93-b828-7772db6a35ef (2017-05-25_20_07_27 backup B_K07_FWPD9)  
VDI: 8c8b0d5a-33f3-4dd9-aeba-2375805458fa (New virtual disk (14))  
All objects destroyed FINE Macchina1  

E così si conclude questa piccola guida per avere backup a caldo a costo 0!

🙂

Samuele Chiocca
Padova, italy Website