13Jul
Avete mai avuto la necessità di eseguire il ripristino di massa delle vostre macchine virtuali Citrix-Xen per una soluzione di disaster recovery( DR), o solo per verificare che i vostri backup funzionino? HTG spiega come utilizzare Xen-Phoenix, uno script di bash gratuito, per il ripristino di VM.
Photo Credit: Ryan McCurdy tramite Compfight cc
Come menzionato in "Come eseguire il backup di Citrix Xen VMs gratuitamente con Xen-pocalypse", una delle cose carine in Citrix Xen è che molte delle sue funzioni sono libero dicarica. Detto questo, se si desidera la funzionalità "Protezione e recupero automatizzati VM", è necessario iniziare a pagare la licenza "Advance".Ancora una volta, non è che HTG stia liquidando il valore di una vera soluzione di backup, ma se hai un budget limitato, hai già ottenuto le immagini della VM dall'hypervisor e hai bisogno di un modo per automatizzare la tua "procedure di ripristino test "/" DR refresh ", è possibile trovare Xen-Phoenix come soluzione perfettamente ragionevole prima di eseguire l'impegno di budget. Panoramica
Il "caso d'uso": hai un paio di macchine virtuali che richiedono un ripristino. L'importazione in "Xen Center" utilizzando i clic con il tasto destro funziona correttamente, ma si desidera che questo processo avvenga automaticamente e in base a una pianificazione. Questo script Bash utilizza il comando "XE" per eseguire i suoi compiti. XE è l'interfaccia della riga di comando Xen( CLI), equivalente automatico per l'emissione dei "clic destro" in "Xen Center".Chiameremo la sceneggiatura di Cron che fornirà la parte "scheduling".Nella sua forma più semplice, il flusso di ripristino è:
- Elimina tutti * VM già esistenti sul server
- Importa i VM dai file nella posizione di backup.
- Verificare che tutte le VM siano operative attivandole una per una e cercando gli heartbeat degli strumenti guest.
- Disattiva le VM quando viene rilevato un heartbeat o è stato raggiunto un timeout.
* Il comportamento di eliminazione di tutte le VM può essere disabilitato completamente e supporta eccezioni( vedere di seguito).
Consente di ottenere cracking:)
Ottenere lo script
Xen-phoenix può essere ottenuto liberamente da github, utilizzando i normali metodi git. Detto questo, se non sei ancora esperto in git, puoi prendere il file zip con questo link. Poiché lo script deve essere eseguito su uno dei tuoi server Xen, devi estrarlo lì in modo che le autorizzazioni di esecuzione vengano mantenute.
wget https: //github.com/aviadra/ Xen-phoenix /archive/ master.zip
decomprimere il master
Mentre quanto sopra funzionava, si consiglia di utilizzare il metodo GIT in modo da poter beneficiare degli aggiornamenti futuri.
La posizione di esportazione
Abbiamo bisogno di configurare da dove prendere le esportazioni VM da.
Mentre mi aggiro in modo casuale in Citrix Xen, ho trovato che i repository di archiviazione( SR) sono disponibili per l'uso in "/var/run/ sr-mount /% UUID%" dove UUID è l'identificatore univoco della SR, che può essere ottenuto dalGUI.
Ciò significa che possiamo usare il normale "Avanti - & gt;Avanti - & gt;Completare "la procedura guidata per creare il" montaggio "nella posizione di backup desiderata, e quindi fare in modo che lo script utilizzi tale percorso( come indicato nel fare confusione con il montaggio dalla riga di comando che va oltre lo scopo di questa guida).
Per creare una nuova "montatura", fare clic con il pulsante destro del mouse sul nome del server e selezionare Nuovo SR.
In questo esempio, indicheremo Xen su una condivisione Windows, quindi scegli "Condivisione file Windows( CIFS)":
Completa il successivo - & gt;Avanti - & gt;Finire.
Ottieni l'UUID della SR dell'
Per ottenere l'UUID della SR, è sufficiente fare clic sul suo nome in Xen Center e andare alla scheda "Generale".
Per copiare l'UUID, è sufficiente fare clic con il pulsante destro del mouse e scegliere "copia".
Con queste informazioni a portata di mano, sei pronto per modificare il file delle impostazioni.
Configura il file delle impostazioni
Il progetto Xen-phoenix viene fornito in bundle con un modello di file "impostazioni".Questo modello deve essere modificato per riflettere la configurazione e passato come primo argomento allo script.
Il file delle impostazioni indica quanto segue:
- La posizione delle esportazioni di origine: se hai seguito la guida fino a questo punto, devi solo sostituire% UUID% con le SR come è stato ottenuto da sopra.
- La posizione di SendEmail - Se hai scelto di abilitare Email, devi inserire dove hai estratto qui l'eseguibile perl.
- Verifier - Controlla la procedura di verifica post ripristino. Questo è abilitato di default, poiché un "ripristino a livello di file" di successo non significa necessariamente una VM funzionale.
- Server_prep - Controlla la cancellazione pre-ripristino di tutte le macchine virtuali sul server DR.Questo è abilitato di default perché si presume che il server DR sia un server dedicato per questo scopo. Se è necessario che una macchina virtuale in esecuzione su questo server non venga eliminata, configurarla per escluderla. Se questo comportamento non è adatto alla tua situazione, disabilitalo completamente. Dettagli dell'email
- - Anche in questo caso, se è stata abilitata la posta elettronica, è necessario definire dettagli quali: A, Da, Servername / IP &eccetera'.
- Debugging - L'impostazione predefinita prevede che il debug sia disattivato con il valore "0"( zero).Non dovresti aver bisogno di accenderlo, ma se lo fai, maggiori informazioni sono indicate nel segmento di risoluzione dei problemi.
Execution
Questo script prende il file delle impostazioni come primo argomento e qualsiasi altro argomento come "Chevrons" da cercare( separato da spazi).Chevrons, sono "stringhe", che supportano espressioni regolari che rappresentano almeno parte del nome file desiderato dell'esportazione VM.
Cioè, nella sua forma più semplice, l'invocazione di Xen-phoenix sarebbe simile a:
. /Xen-phoenix.sh settings.cfg DevTools
Dove nel caso precedente, siamo all'interno della directory che contiene lo script &il file delle impostazioni e la "Chevron" che lo script cercherà sono "DevTools".Ciò causerà l'importazione di tutti i file nella directory exports con la stringa "DevTools" nel loro nome.
Un esempio più complesso può essere simile a:
. /Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Dove nell'esempio sopra, i file che contengonola parola "devtools" scritta con maiuscole "D" e "T" o non maiuscole, così come "AD" &"BI" con o senza maiuscole, verrà importato.
Scheduling
Come indicato sopra, utilizzeremo Cron per pianificare l'esecuzione. Prima di entrare nella configurazione, è altamente raccomandato che si configura il pacchetto SSMTP già installato sul server Xen. Anche se questo è un passaggio facoltativo, così facendo si otterrà un collettore "backwash".Avere un tale "collettore di risucchio" può avvisarti di cose che lo script non è in grado di fare.
Entra nella modalità di modifica di cron emettendo:
crontab -e
Se hai seguito le istruzioni sopra e vuoi aggiungere un backup programmato per domenica alle 01:31( 1:31 AM), inserisci quanto segue:
31 01 * *sun /root/ Xen-phoenix-master / Xen-phoenix.sh /root/ Xen-phoenix-master / settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt] ools
Quanto sopra è corretto assumendoil tuo script e il file delle impostazioni sono entrambi in "/root/ Xen-phoenix-master /".
Ottieni SendEmail( facoltativo)
Abbiamo scritto sul programma perl SendEmail in passato, quindi non c'è bisogno di ripetere qui. Basti dire che funziona allo stesso modo su Linux come su Windows.
Sebbene l'abilitazione della posta elettronica sia facoltativa, è altamente raccomandata in quanto lo script sarà in grado di:
- Informarti quando è iniziato &finito di correre.
- Ti avvisa di eventuali errori che è stato in grado di rilevare e gestire.
Scaricalo sul server Xen ed estrai.
wget http: //caspian.dotconf.net/menu/Software/SendEmail/ sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Annotare la posizione in cui è stato estratto. Ne avrai bisogno per il file delle impostazioni.
Definizione del tag "Delete Exception"( opzionale)
Xen-Phoenix acquisisce una pagina dal suo antenato( Xen-Pocalypse) e offre la possibilità di escludere granulosamente una VM dall'eliminazione a livello di sistema utilizzando un TAG di controllo. Per fare ciò, è necessario definire un nuovo "campo personalizzato".
Per fare ciò, aprire le proprietà del server o anche di una VM.Nel riquadro di navigazione, selezionare "Campi personalizzati".
Se è la prima volta che si definisce un "campo personalizzato"( come nell'esempio sopra), non si avrà il campo "Phoenix_keeper" in cui inserire i dati, quindi è necessario crearlo. Per fare ciò, fare clic su "Modifica campi personalizzati" nella finestra di dialogo che si apre, quindi fare clic su "Aggiungi. .."
Creare un campo di testo "Testo" con il nome "Phoenix_keeper".
Nota: Il nome del campo personalizzato è stato "hard coded" nello script, quindi NON DEVI allontanarti dallo spelling in alto, a meno che tu non modifichi anche il codice rilevante.
Una volta creato il campo, dovresti vedere:
Chiudi la finestra. Ora dovresti riempire il campo "Phoenix_keeper", come nella figura qui sotto.
Ora, tutto ciò che devi fare è compilare questo campo con un'osservazione( qualsiasi commento lo farà), il che farà sì che Xen-phoenix salti quando si elimina.
Risoluzione dei problemi
Mentre ho fatto un sacco di sforzi per rendere lo script facile da usare e il più infallibile possibile, "il mondo è un laboratorio più grande".Le seguenti informazioni possono aiutarti a capire qual è la fonte dei tuoi problemi.
Registrazione
Tutta la "registrazione" viene raccolta dall'host Xen che esegue lo script nel meccanismo syslog. Questo, ovviamente, può essere visualizzato con:
less + F /var/log/ messaggi
Stai cercando la parola chiave "Xen-Phoenix".
Nota: Citrix ha impostato un criterio di conservazione di due( 2) giorni per syslog dei suoi server. Potresti volerlo tenere a mente per i post mortem.
Debugging
Come indicato nel segmento dei file delle impostazioni, esiste una direttiva per abilitare il debug. L'abilitazione del debug causerà lo script di eseguire la registrazione dettagliata alla console e castrarla dall'invio di e-mail e l'effettiva esecuzione delle importazioni, a meno che non siano impostati anche i flag rilevanti. I possibili flag sono indicati nel modello di file delle impostazioni e consentono di definire in modo granulare ciò che si desidera eseguire il debug.
Spero che tu non abbia avuto bisogno di debugging e stai raccogliendo i frutti del mio lavoro:)
Pensa solo a tutta la povertà, l'odio e le bugie, e immagina la distruzione di tutto ciò che disprezzi. Lentamente dalle ceneri, sorgerà la fenice. ..