Soluzioni di backup e ripristino XenServer

Software di backup di XenServer facile e veloce di Bacula Systems

La tecnologia di Bacula Systems per il backup e il disaster recovery di XenServer offre agli utenti Xen una velocità e una convenienza mai viste prima, il tutto progettato per rendere il backup delle macchine virtuali Xen più semplice e senza passaggi intermedi.

L’integrazione nativa di Bacula Enterprise con Xen consente il ripristino delle macchine virtuali bare metal, mentre la capacità di eseguire il backup dei dati a livello di guest semplifica la protezione dei dati delle applicazioni critiche. Il backup può essere eseguito per una macchina virtuale guest in qualsiasi stato di alimentazione (in funzione o arrestata). È disponibile il ripristino di file singoli.

Bacula utilizza l’API di Xen Server per accedere e fare il backup delle macchine virtuali. Apporta un’ampia gamma di funzionalità, capacità e automazione all’ambiente Xen, compresi i livelli di backup incrementale e differenziale. Segue una descrizione dettagliata delle funzionalità di Bacula Enterprise con XenServer (Citrix Hypervisor):

Caratteristiche del backup XenServer di Bacula

  • Backup online basato su snapshot di qualsiasi VM guest
  • Livelli di backup differenziale e incrementale
  • Ripristino di un singolo file
  • Guest snapshot basati su VSS per la quiescenza delle applicazioni basate su VSS
  • Backup completo a livello di immagine
  • Possibilità di ripristinare l’immagine completa di una macchina virtuale
  • Possibilità di ripristinare l’archivio della macchina virtuale in una directory alternativa
  • Utilizza le immagini disco grezze e la configurazione ova
  • Supporta il ripristino di vecchi formati di backup
  • Log dei processi di ripristino completi

Bacula visualizza anche informazioni utili sulle risorse XenServer disponibili, che potrebbero semplificare la configurazione del backup e le operazioni di ripristino, come ad esempio:

  • Elenco dei nomi-etichette delle macchine virtuali guest
  • Elenco degli UUID delle VM guest
  • Elenco dei repository di archiviazione XenServer

Benefici della soluzione di backup XenServer di Bacula

È importante avere una strategia di backup XenServer che vada oltre l’uso di script a livello di riga di comando o di shell, che non offrono alternative o vantaggi in termini di:

  • Granularità durante l’utilizzo del backup e dei ripristini di Citrix XenServer VM
  • Esecuzione di diversi livelli di backup di VM Citrix XenServer
  • Facilità di recupero dati Citrix Xen VM
  • Programmazione del backup per XenSever da Citrix

Bacula Enterprise ti permette di gestire ed eseguire il backup di XenServer VM configurati in diversi ambienti, sia fisici che remoti o nel cloud.

Operazioni di backup e ripristino di XenServer

(Nota: tutte le sezioni sottostanti sono in fase di revisione, poiché il modulo è stato appena aggiornato con nuove funzionalità)

Backup

L’operazione di backup di una singola VM XenServer guest si svolge nei seguenti passaggi:

  • Trova ed elimina qualsiasi snapshot di backup vecchio o in stallo, se trovato.
  • Crea una nuova istantanea di guest VM Bacula e la prepara per il backup.
  • Esegue il comando vm-export di XenServer e salvi i dati in un demone di archiviazione Bacula.
  • Cancella l’istantanea Bacula della VM guest.

I backup di XenServer possono essere eseguiti per una VM guest in qualsiasi stato di alimentazione (in esecuzione o in arresto). Qualsiasi snapshot della VM guest con un nome-etichetta che corrisponde al seguente modello: BaculaSnapshot_<UUID>_JobID_<NR> sarà trattata come una vecchia istantanea di backup per questa VM guest e sarà eliminata automaticamente durante il backup. Eviti di creare snapshot manuali che corrispondono a questo schema di denominazione. Tutte le altre istantanee della VM guest non saranno interessate. Il plugin di backup di XenServer la informerà sull’inizio e la fine di ogni backup della VM guest, comprese le informazioni sulle vecchie istantanee di backup in stallo e sulle attività delle istantanee di backup. Ad esempio:

 

JobId 135: Start Backup JobId 135, Job=xen.2017-12-28_15.52.21_11
JobId 135: Using Device “FileChgr1-Dev1” to write.
JobId 135: Volume “Vol-0002” previously written, moving to end of data.
JobId 135: xenserver: Start Backup vm: CentOS 7 (fe1ccf3b-1865-3942-c928-d98138397ff1)
JobId 135: xenserver: Old stalled backup snapshots found.
JobId 135: xenserver: Snapshot deleted: 12e387c0-eac5-84b1-8e40-1d0601c9eebf
JobId 135: xenserver: Snapshot created: 03afdf67-4ae3-7b0a-5eb0-2c2520c8580f
JobId 135: xenserver: Snapshot deleted: 03afdf67-4ae3-7b0a-5eb0-2c2520c8580f
JobId 135: xenserver: Backup of vm: CentOS 7 (fe1ccf3b-1865-3942-c928-d98138397ff1) OK.

Il backup creerà un singolo file per ogni VM guest salvato sotto forma di: /@xen/<name-label>/<vmuuid>.xva. Durante il backup verranno creati più file se si trovano più VM guest di cui eseguire il backup. Può utilizzare queste informazioni per individuare l’archivio della VM guest corretta durante un ripristino.

 

+——————————————————-+
| filename |
+——————————————————-+
| /@xen/vm1/10908c8a-f932-6f91-9cac-3034e3acf45b.xva |
| /@xen/vm1/03fad8c9-d88b-ea7e-98da-2f3bcd20d0c4.xva |
| /@xen/CentOS/fe1ccf3b-1865-3942-c928-d98138397ff1.xva |
+——————————————————-+

Ripristino

Il modulo di backup e ripristino di XenServer VM fornisce due obiettivi principali per le operazioni di ripristino:

  • Ripristino in un hypervisor XenServer come VM guest nuova o originale
  • Ripristino in una directory locale come file o file di archivio XenServer XVA

Ripristino su XenServer

Per utilizzare questo metodo di ripristino, devi impostare un parametro di ripristino Bacula “where=/”. L’archivio della VM guest sarà inviato all’hypervisor XenServer e ripristinato come una nuova VM guest (comportamento predefinito) o ripristinato come originale quando sarà impostata l’opzione di ripristino plugin preserve. Puoi modificare il repository di archiviazione in cui verrà ripristinata la VM guest.

Per elencare i Repository di archiviazione disponibili, può utilizzare una modalità di elencazione, vedere 6.1 a pagina 13. Se si imposta un repository di archiviazione improprio (ad esempio, inesistente) per il ripristino, il processo di ripristino creerà la VM guest sullo storage predefinito di XenServer.

Ripristino nella directory locale

Per utilizzare questo metodo di ripristino, deve impostare un parametro di ripristino Bacula “where=/some/path”. Il percorso deve essere una directory sul server in cui è installato il plugin di backup XenServer VM. Se il percorso non esiste, verrà creato dal plugin.

Installazione del backup di VM XenServer

Devi installare e configurare il File Daemon di Bacula sulla macchina hypervisor XenServer che ospita le VM virtuali guest di cui desidera eseguire il backup. L’hypervisor XenServer utilizza una distribuzione CentOS personalizzata (derivata di RHEL), quindi devi installare il Bacula Enterprise File Daemon compatibile con tale distribuzione Linux.

Configurazione

La direttiva Plugin Directory della risorsa File Daemon in /opt/bacula/etc/baculafd.conf deve indicare dove è installato il plugin xenserver-fd.so. La directory standard dei plugin di Bacula è: /opt/bacula/plugins

 

FileDaemon {
Name = bacula-fd
Plugin Directory = /opt/bacula/plugins

}

Installazione del plugin di backup di XenServer VM

Puoi installare il plugin Bacula Enterprise XenServer estendendo il file di repository del suo gestore di pacchetti in modo che contenga una sezione per il plugin. Ad esempio, in Redhat/CentOS 7, /etc/yum.repos.d/bacula.repo:

 

[Bacula]
name=Bacula Enterprise
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/bin/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0
[BEEXenPlugin]
name=BEE XenServer Plugin
baseurl=https://www.baculasystems.com/dl/@customer-string@/rpms/xenserver/@version@/rhel7-64/
enabled=1
protect=0
gpgcheck=0

Poi esegui un aggiornamento yum e successivamente il pacchetto bacula-enterprise-xenserverplugin potrà essere installato con yum install.
Se preferisci installare manualmente i pacchetti, puoi anche scaricarli dalla tua area di download e utilizzare uno degli strumenti di gestione dei pacchetti di basso livello, come rpm, per eseguire l’installazione del plugin.

Configurazione del backup di XenServer

Il plugin di backup XenServer viene configurato utilizzando i parametri definiti nella sezione “Include” di un FileSet nella configurazione di Bacula Enterprise Director.

Parametri generici del plugin

I seguenti parametri del plugin di backup di XenServer VM hanno effetto su qualsiasi tipo di lavoro (backup, stima o ripristino).

  • server=<address> specifica l’indirizzo API di XenServer utilizzato per le operazioni. Si tratta dell’indirizzo utilizzato nel comando xe come parametro -s <address>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • port=<number> specifica la porta API di XenServer utilizzata per le operazioni. Si tratta del valore utilizzato nel comando xe come parametro -p <number>. Il valore di questo parametro deve essere compreso nell’intervallo 1..65536. Un valore non valido causerà l’interruzione del lavoro. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • username=<string> specifica il nome utente utilizzato per accedere al sistema API di XenServer. Si tratta del valore utilizzato nel comando xe come parametro -u <string>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • password=<string> specifica la password utilizzata per accedere al sistema API di XenServer. Si tratta del valore utilizzato nel comando xe come parametro -pw <string>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • passfile=<string> specifica un file locale al File Daemon che contiene la password per il nome utente. Questo è il valore utilizzato nel comando xe come parametro -pwf <string>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • abort_on_error[=<0 or 1>] specifica se il plugin deve interrompere o meno la sua esecuzione (e il lavoro Bacula) se si verifica un errore fatale durante un’operazione di Backup, Stima o Ripristino. Questo parametro è opzionale. Il valore predefinito è 0.

Stima e parametri del plugin XenServer VM Backup

  • vm=<name-label> specifica il nome di una VM guest di cui eseguire il backup. Tutte le macchine virtuali guest con un nome-etichetta fornito saranno selezionate per il backup. Possono essere forniti più parametri vm=…. Se non si riesce a trovare una VM guest con <name-label>, verrà generato un errore di lavoro singolo e il backup procederà alla VM successiva, a meno che non venga impostato abort_on_error, che causerà l’interruzione del lavoro di backup. Questo parametro è opzionale.
  • uuid=<uuid> specifica un UUID della VM guest di cui eseguire il backup. Possono essere forniti più parametri uuid=…. Se non si riesce a trovare una VM guest con <uuid>, verrà generato un errore di lavoro singolo e il backup procederà alla VM successiva, a meno che non venga impostato abort_on_error, che causerà l’interruzione del lavoro di backup. Questo parametro è opzionale.
  • include=<name-label-regex> specifica l’elenco dei nomi delle macchine virtuali guest di cui eseguire il backup utilizzando la sintassi dell’espressione regolare. Tutte le macchine virtuali guest che corrispondono al name-labelregex fornito saranno selezionate per il backup. Possono essere forniti più parametri include=…. Se nessuna VM guest corrisponde alla <name-label-regex> fornita, il backup procederà ai parametri della VM successiva o terminerà con successo senza eseguire il backup di alcuna VM. Il parametro abort_on_error non interromperà il lavoro quando non viene trovata alcuna VM guest utilizzando una <name-label-regex>. Questo parametro è opzionale.
  • exclude=<name-label-regex>specifica l’elenco dei nomi delle macchine virtuali guest che saranno escluse dal backup utilizzando la sintassi dell’espressione regolare. Saranno escluse tutte le macchine virtuali guest che corrispondono al name-label-regex fornito e che sono state selezionate per il backup con i parametri include=…. Questo parametro non influisce sulle VM guest selezionate per il backup con i parametri vm=… o uuid=…. Possono essere forniti più parametri exclude=…. Questo parametro è opzionale.
  • quiesce[=<0 or 1>] specifica se l’istantanea della VM guest deve essere creata con un metodo di quiesce o meno. Il metodo quiesce è supportato da XenServer per Windows OS solo con i guest-tools installati. Si tratta di una limitazione di XenServer stesso. Se non è possibile creare l’istantanea della VM guest con quiesce, l’intero lavoro di backup verrà interrotto. In questo caso, deve ripetere un backup senza il parametro quiesce.

Se nessuno dei parametri vm=…, uuid=…, include ed esclude viene specificato, verrà eseguito il backup di tutte le VM guest disponibili ospitate sull’hypervisor XenServer.

Parametri di ripristino del plugin

Durante il ripristino, il plugin di backup XenServer utilizzerà gli stessi parametri impostati per il lavoro di backup e salvati. Alcuni di essi possono essere modificati durante il processo di ripristino, se necessario.

  • server: <address> specifica l’indirizzo API di XenServer utilizzato per le operazioni. Si tratta dell’indirizzo utilizzato nel comando xe come parametro -s <address>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • port: <number> specifica la porta API di XenServer utilizzata per le operazioni. Si tratta del valore utilizzato nel comando xe come parametro -p <number>. Il valore del parametro deve essere compreso nell’intervallo 1..65536. Un valore non valido causerà l’interruzione del lavoro. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • username: <string> specifica il nome utente utilizzato per accedere al sistema API di XenServer. Si tratta del valore utilizzato nel comando xe come parametro -u <string>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • password: <string> specifica la password utilizzata per accedere al sistema API di XenServer. Si tratta del valore utilizzato nel comando xe come parametro -pw <string>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • passfile: <string> specifica un file locale al File Daemon che contiene la password per il nome utente. Questo è il valore utilizzato nel comando xe come parametro -pwf <string>. Questo parametro è opzionale. Se omesso, verrà utilizzato l’accesso predefinito.
  • storage_res: <storage> specifica un Repository di archiviazione XenServer dove verranno salvate le VM guest ripristinate. Se non è impostato, una VM guest sarà salvata in un Repository di archiviazione XenServer configurato come predefinito. Questo parametro è opzionale.
  • preserve: <yes or no> specifica se un lavoro di ripristino deve conservare il più possibile i parametri di configurazione della VM guest. L’impostazione predefinita prevede la creazione di una nuova VM al momento del ripristino. Un lavoro di ripristino con questa opzione di conservazione impostata su ‘yes’ potrebbe fallire se il ripristino potrebbe creare oggetti duplicati sull’hypervisor XenServer. Questo parametro è opzionale.

Esempi di FileSet

Nell’esempio seguente, verrà eseguito il backup di tutte le macchine virtuali guest.

 

FileSet {
Name = FS_XenAll
Include {
Plugin = “xenserver:”
}
}

Nell’esempio seguente, verrà eseguito il backup di una singola VM guest con un nome-etichetta “VM1”.

 

FileSet {
Name = FS_Xen_VM1
Include {
Plugin = “xenserver: vm=VM1”
}
}

Lo stesso esempio di cui sopra, ma utilizzando invece uuid:

 

FileSet {
Name = FS_Xen_VM1
Include {
Plugin = “xenserver: uuid=fe1ccf3b-1865-3942-c928-d98138397ff1”
}
}

Nell’esempio seguente, verrà eseguito il backup di tutte le macchine virtuali guest che hanno ‘Prod’ nel nome.

 

FileSet {
Name = FS_Xen_ProdAll
Include {
Plugin = “xenserver: include=Prod”
}
}

Nell’esempio seguente, verrà eseguito il backup di tutte le macchine virtuali guest, ad eccezione di quelle il cui nome-etichetta inizia con “Test”.

 

FileSet {
Name = FS_Xen_AllbutTest
Include {
Plugin = “xenserver: include=.* exclude=^Test”
}
}

Ripristino

Ripristino su un hypervisor XenServer

Per ripristinare una o più macchine virtuali su un hypervisor XenServer, devi eseguire il comando restore e specificare il parametro “where” come in questo esempio:

 

* restore where=/

… Poi imposta tutti gli altri parametri del plugin di ripristino necessari per il tuo ripristino. Nel seguente esempio di sessione di ripristino, l’opzione di ripristino del plugin “Preserve vm config on restore” è impostata su “yes”:

 

* restore where=/

Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/srv-xen-01-dir.restore.2.bsr
Where: /
Replace: Always
FileSet: Full Set
Backup Client: srv-xen-01-fd
Restore Client: srv-xen-01-fd
Storage: File1
When: 2018-01-05 12:47:16
Catalog: MyCatalog
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): mod
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Restore Client
6: When
7: Priority
8: Bootstrap
9: Where
10: File Relocation
11: Replace
12: JobId
13: Plugin Options
Select parameter to modify (1-13): 13
Automatically selected : xenserver: uuid=fe1ccf3b-1865-3942-c928-d98138397ff1
Plugin Restore Options
server: *None* (*None*)
port: *None* (*None*)
username: *None* (*None*)
password: *None* (*None*)
passfile: *None* (*None*)
storage_res: *None* (*Default location*)
preserve: *None* (*No*)
Use above plugin configuration? (yes/mod/no): mod
You have the following choices:
1: server (Restore server name)
2: port (Restore server port number)
3: username (Restore user name)
4: password (Restore user password)
5: passfile (Restore user password file)
6: storage_res (Storage Resource location for restore)
7: preserve (Preserve vm config on restore)
Select parameter to modify (1-7): 7
Please enter a value for preserve: yes
Plugin Restore Options
server: *None* (*None*)
port: *None* (*None*)
username: *None* (*None*)
password: *None* (*None*)
passfile: *None* (*None*)
storage_res: *None* (*Default location*)
preserve: yes (*No*)
Use above plugin configuration? (yes/mod/no):

Il registro del lavoro di ripristino ti informerà su quale VM guest è stata ripristinata e quale nuova VM guest è stata creata.

 

JobId 131: Start Restore Job RestoreFiles.2017-12-28_14.42.25_15
JobId 131: Using Device “FileChgr1-Dev2” to read.
JobId 131: xenserver: VM restore: vm1/10908c8a-f932-6f91-9cac-3034e3acf45b
JobId 131: Forward spacing Volume “Vol-0002” to addr=1758441248
JobId 131: Elapsed time=00:04:51, Transfer rate=3.158 M Bytes/second
JobId 131: xenserver: VM UUID created: 45c49e07-ff20-ab55-e622-05ff2fbb0c1f

La nuova VM guest creata durante il ripristino riceverà un nuovo nome-etichetta impostato dal plugin come: <name-label>/<vmuuid>, dove <vmuuid> è l’UUID della VM originale di cui è stato eseguito il backup.

Ripristino della directory locale

 

* restore where=/tmp/bacula/restores

Verifica il seguente esempio per il test “VM local restore”:

 

JobId 112: Start Restore Job RestoreFiles.2017-12-28_11.30.19_34
JobId 112: Using Device “FileChgr1-Dev2” to read.
JobId 112: xenserver: VM local restore
JobId 112: Forward spacing Volume “Vol-0001” to addr=5190619786
JobId 112: Elapsed time=00:00:30, Transfer rate=30.64 M Bytes/second

Il registro del lavoro di ripristino ti informerà che il ripristino verrà eseguito in una directory locale.

Nicolas Van Eenaeme
Il Direttore ITS di Netlog
«Con la crescita, il backup di XenServer richiedeva sempre più tempo per essere completato. Abbiamo quindi deciso di stipulare un contratto di assistenza con Bacula Systems per utilizzare Bacula Enterprise. Bacula ci ha anche aiutato a ottimizzare la nostra configurazione di XenServer VM, e ora i backup vengono completati quasi due volte più velocemente di prima»

Ulteriore aiuto sul backup di XenServer: