Come ripristinare Citrix-Xen VM gratuitamente con Xen-Phoenix (Bash)
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 semplicemente per verificare che i vostri backup funzionino? HTG spiega come utilizzare Xen-Phoenix, uno script di bash gratuito, per il ripristino di VM.
Credito fotografico: Ryan McCurdy tramite Compfight cc
Come abbiamo accennato in "Come eseguire il backup di Citrix Xen VMs gratuitamente con Xen-pocalypse", una delle cose carine in Citrix Xen è che molte delle sue funzionalità sono gratuito di carica. Detto questo, se si desidera la funzionalità "Protezione e ripristino 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 ok, 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 a 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 tutte * VM preesistenti sul server
- Importa VM da file nella posizione di backup.
- Verifica che tutte le VM siano operative attivandole una alla volta e cercando gli heartbeat degli strumenti guest.
- Spegni le VM quando è stato scoperto un heartbeat o è stato raggiunto un timeout.
* Il comportamento di eliminazione di tutte le VM può essere disabilitato completamente e supporta eccezioni (vedi sotto).
Consente di ottenere cracking :)
Ottieni la sceneggiatura
Xen-phoenix può essere ottenuta liberamente da github, usando 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 funzionerebbe, si consiglia di utilizzare il metodo GIT in modo da poter beneficiare degli aggiornamenti futuri.
La posizione delle esportazioni
Dobbiamo configurare da dove prelevare le esportazioni VM.
Mentre casualmente provengo da Citrix Xen, ho scoperto che i Repository di archiviazione (SR) sono disponibili per l'uso in "/ var / run / sr-mount /% UUID%" dove UUID è l'identificativo univoco della SR, che può essere ottenuto dalla GUI.
Questo significa che possiamo usare la normale procedura guidata "Avanti -> Avanti -> Fine" per creare il "montaggio" nella posizione di backup desiderata, e poi fare in modo che lo script usi quel percorso (come richiesto per il montaggio con la riga di comando che è 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, punteremo Xen su una condivisione Windows, quindi scegli "Condivisione file Windows (CIFS)":
Completa il prossimo -> Successivo -> Fine.
Ottieni l'UUID della SR
Per ottenere un 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 designa quanto segue:
- La posizione delle esportazioni di origine: se hai seguito la guida fino a questo punto, devi solo sostituire% UUID% con gli SR come è stato ottenuto da sopra.
- La posizione di SendEmail - Se hai scelto di abilitare Email, devi inserire dove hai estratto l'eseguibile perl qui.
- Verificatore: 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 il pre-ripristino cancellazione 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 email - Anche in questo caso, se hai abilitato la posta elettronica, devi definire i dettagli come: A, Da, Nomeserver / IP & etc '.
- Debug - L'impostazione predefinita prevede che il debug sia disattivato con il valore "0" (zero). Non è necessario attivare questa opzione, ma in tal caso, ulteriori informazioni vengono indicate nel segmento di risoluzione dei problemi.
Esecuzione
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
Nel caso precedente, siamo all'interno della directory che contiene lo script e il file delle impostazioni e la "Chevron" che lo script cercherà è "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
Nell'esempio sopra riportato, verranno importati i file contenenti la parola "devtools" con maiuscole "D" e "T" o non-capital, nonché "AD" e "BI" con o senza maiuscole..
programmazione
Come indicato sopra, utilizzeremo Cron per pianificare l'esecuzione. Prima di entrare nella configurazione, lo è 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 assumendo che lo script e il file delle impostazioni siano entrambi in "/ root / Xen-phoenix-master /".
Ottieni SendEmail (opzionale)
Abbiamo scritto sul programma perl SendEmail in passato, quindi non c'è bisogno di reiterare 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:
- Informati quando è iniziato e finito in esecuzione.
- 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
Annota la posizione in cui l'hai estratto. Ne avrai bisogno per il file delle impostazioni.
Definizione del tag "Delete Exception" (opzionale)
Xen-Phoenix prende una pagina dal suo antenato (Xen-Pocalypse) e ti dà la possibilità di escludere granulosamente una VM dall'eliminazione a livello di sistema usando un TAG di controllo. Per fare ciò, è necessario definire un nuovo "campo personalizzato".
Per fare ciò, apri le proprietà del server o anche di una VM. Nel pannello di navigazione, seleziona "Campi personalizzati".
Se è la prima volta che definisci un "campo personalizzato" (come nell'esempio sopra), non avrai il campo "Phoenix_keeper" in cui inserire i dati, quindi devi crearlo. Per fare ciò, fai clic su "Modifica campi personalizzati" nella finestra di dialogo che si apre, quindi fai clic su "Aggiungi ..."
Crea 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 visto con:
meno + 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 le autopsie.
Debug
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.
La mia speranza è che tu non abbia avuto bisogno di debugging e stai raccogliendo i frutti del mio lavoro :)
Pensa a tutta la povertà, l'odio e le bugie, e immagina la distruzione di tutto ciò che disprezzi. Lentamente dalle ceneri, sorgerà la fenice ...