Homepage » come » Come eseguire il backup di Citrix Xen VM gratuitamente con Xen-pocalypse (Bash)

    Come eseguire il backup di Citrix Xen VM gratuitamente con Xen-pocalypse (Bash)

    Hai mai avuto bisogno di eseguire il backup delle tue macchine virtuali Citrix Xen (VM) ma non volevi rompere la banca facendolo? HTG ha solo lo script bash per te con Xen-pocalypse.

    Immagine di h.koppdelaney, Stuck in Custom e Hotfortech.

    Una delle cose belle di Citrix Xen è che molte delle sue caratteristiche sono gratuito di carica. Detto questo, se si desidera la funzionalità "Protezione e ripristino automatizzati VM", è necessario iniziare a pagare la licenza "Advance". Anche in questo caso, stai pagando solo i backup a livello del disco, che non sono sufficienti per molti tipi di carichi di lavoro come Active Directory, Database ed Etc. Per ovviare a ciò potresti desiderare il "Live memory snapshot and revert", che può salvare l'intero stato della macchina, incluso il contenuto della RAM. Tuttavia, questa funzione fa parte delle edizioni "Enterprise" e "Platinum", che sono ancora più costose. Non è che noi di HTG stiamo scartando il valore di un vero software di backup, ma se hai un budget limitato e non ti preoccupi di alcuni tempi di inattività per l'operazione di backup, potresti trovare Xen-pocalypse una soluzione perfettamente ragionevole prima di prendere l'impegno di bilancio.

    Panoramica

    Il "caso d'uso": hai un paio di macchine virtuali che richiedono un backup. Lo "spegnimento di una VM e l'esportazione come file" da "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 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 backup è:

    • Spegni la VM di destinazione.
    • Esporta la VM come file nel percorso di backup.
    • Se la VM è stata attivata, prima dell'avvio del backup, verrà riattivata.

    Consente di ottenere cracking :)

    Ottieni la sceneggiatura

    Xen-pocalypse può essere liberamente ottenuto 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-pocalypse/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.

    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.
    • Informare delle squalifiche di backup a causa di problemi di spazio. (Questo comportamento può essere disabilitato se non desiderato)

    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.

    Definire i tag

    Citrix Xen ti dà la possibilità di configurare "Campi personalizzati" per le funzionalità di filtro. Creeremo i Field e poi li popoleremo con le informazioni usate da Xen-pocalypse. Xen-pocalypse riconosce 3 TAG di controllo che designano il nome del tag per il backup e le relazioni padre-figlio. Se non si intende utilizzare il metodo di input del file, è necessario creare almeno il campo del nome del tag di backup.

    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 una relazione (come nell'esempio sopra), non avrai nessun campo in cui inserire dati, quindi devi crearli. Per fare ciò, fai clic su "Modifica campi personalizzati" nella finestra di dialogo che si apre, fai clic su "Aggiungi ..."

    Crea tre (3) campi di testo "Testo". Uno sarà chiamato "BackupTAG" e gli altri "Parent" e "Children".

    Nota: I nomi dei campi personalizzati sono stati "hard coded" nello script, quindi NON DEVI allontanarti dallo spelling in alto, a meno che tu non modifichi anche il codice rilevante.

    Una volta che tutti i campi sono stati creati, dovresti vedere:

    Chiudi la finestra. Dovresti ora riempire i campi "BackupTAG", "Parent" e "Bambini", come nell'immagine qui sotto.

    Ora tutto ciò che devi fare è designare quali VM appartengono a "BackupTAG".
    Ad esempio, nella società in cui è stato sviluppato lo script, avevamo VM che dovevano essere sottoposte a backup settimanalmente il giovedì e il venerdì, un programma per le nostre VM dei prodotti Atlassian e alcune che dovevano essere sottoposte a backup solo una volta al mese. Quindi la nostra panoramica sembrava:

    Dove per esempio "fri settimanale" era il testo che abbiamo inserito nel "Campo personalizzato" di "BackupTAG". Pulito eh? :)

    Genitori e figli (facoltativo)

    La vera bellezza di questo script è che supporta le relazioni "genitore" con "figlio". Cioè, è possibile impostare un elenco di macchine virtuali "figlio" che verrebbero disattivate e sottoposte a backup prima del genitore e che questi bambini verranno riattivati ​​solo dopo che il genitore avrà terminato il backup e sarà tornato indietro sopra. Ciò è utile nei casi in cui lo spegnimento della VM padre causerà la mancata disponibilità del servizio nel figlio. Una cosa del genere significherebbe che il servizio sulla macchina virtuale figlio non sarebbe disponibile due volte, una volta per il processo di backup del figlio e una volta per quella del genitore. La creazione di questa relazione supera questo problema.

    Ad esempio, tutte le nostre VM atlastiche utilizzavano una singola VM DataBase (DB), anch'essa impostata per il backup. Quindi, notando che la DB VM è un "Parent" per le altre VM, è possibile garantire un ordine corretto di arresto -> backup -> avvio..

    Al momento della stesura di questo documento, questa funzione ha un paio di avvertenze:

    1. I nomi delle macchine virtuali che devono avere tale relazione non possono contenere spazi. Dovrai rimuovere spazi dai tuoi nomi VM, poiché saranno delimitati da spazi, come nell'esempio qui sotto.
    2. Ci può essere un solo genitore. La designazione di più di una non è nemmeno pianificata, per non parlare del test.

    Per creare questa relazione, vai nelle proprietà della VM. Se questo è un "genitore", scrivi chi sono i suoi figli e se questo è un "bambino", scrivi chi è il suo genitore. Per esempio:

    Nota: la mancata designazione di un genitore per un figlio può causare l'avvio del figlio prima che il genitore sia pronto e potrebbe essere eseguito il backup due volte.

    Il metodo FILE (Opzionale)

    Per ragioni storiche, Xen-pocalypse supporta anche il recupero dell'elenco di macchine virtuali da sottoporre a backup come file di testo. Mentre il "codice" è ancora lì, la funzionalità è severamente inferiore al metodo TAG e quindi non è raccomandato. Detto questo, se si preferisce utilizzare il metodo elenco per qualche motivo, si applicano le seguenti restrizioni:

    1. I nomi delle macchine virtuali non possono contenere spazi o caratteri speciali.
    2. Può esserci un solo nome VM per riga.
    3. Le righe vuote non sono consentite.

    Per generare l'elenco, copia il nome della VM dal centro Xen o esegui su un host Xen:

    xe vm-list | nome-etichetta grep | awk 'print $ 4' | ordinare

    Copia l'elenco sopra in un normale file di testo.

    La posizione di backup

    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 mount nella posizione di backup desiderata, e poi fare in modo che lo script usi quel percorso (come richiesto per fare confusione con il montaggio dalla riga di comando), ma facendo così è 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 tasto 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-pocalypse 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:

    Il metodo per ottenere le macchine virtuali da sottoporre a backup - Il metodo predefinito è TAG. Puoi cambiarlo in FILE, ma questo non è raccomandato.

    La posizione della destinazione di backup - 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 qui l'eseguibile perl.

    Dettagli email - Anche in questo caso, se hai abilitato la posta elettronica, devi definire i dettagli come: A, Da, Nomeserver / IP & etc '.

    Compressione - Questa opzione è impostata su "No" per impostazione predefinita, in quanto durante l'attivazione produrrà un file di backup più piccolo, causerà inoltre l'esecuzione della procedura di backup per un periodo di tempo considerevolmente più lungo.

    Controlla lo spazio libero sulla destinazione: in questo caso lo script verificherà che l'esecuzione del backup della VM non comporterà uno spazio libero di backup inferiore a 10 GB. Questo viene fatto per garantire il maggior numero di VM di cui è stato eseguito il backup invece di una sola VM molto grande. Il calcolo viene eseguito utilizzando la dimensione totale del disco totale di tutti gli HD associati alla VM.

    Debug  - 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 riportate nel segmento di risoluzione dei problemi.

    Esecuzione / Pianificazione

    Nella sua forma più semplice, l'invocazione di Xen-pocalypse sarebbe simile a:

    ./Xen-backup.sh settings.cfg weekly-fri

    Dove nel caso precedente, siamo all'interno della directory che contiene lo script e il file delle impostazioni. Il "Tag" che lo script cercherà è "weekly-fri".

    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 otterrai un collettore di risciacquo. Avere un tale "collettore di risucchio" può avvisarti di cose che la sceneggiatura non è in grado di fare.

    Entra nella modifica di cron di più emettendo:

    crontab -e

    Se hai seguito le istruzioni sopra e vuoi aggiungere un backup programmato per Venerdì alle 18:01 (18:01), inserisci quanto segue:

    01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg weekly-fri

    Quanto sopra è corretto assumendo che lo script e il file delle impostazioni siano entrambi in "/ root / Xen-pocalypse-master /".

    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.

    Progresso

    Potresti voler usare questa fodera per "osservare" rapidamente tutte le attività in corso, per vedere se effettivamente progrediscono del tutto o se sono effettivamente bloccate.

    while [-e / dev / null]; fare per VM in "$ (xe task-list | grep uuid | awk 'print $ 5')"; do xe task-param-get param-name = progress uuid = $ VM; sleep 1; fatto; fatto

    Per smettere di guardare, usa Ctrl + C per frenare il "ciclo while".

    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-pocalypse".

    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'esecuzione effettiva delle esportazioni, a meno che non vengano 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 :)


    Spinta, amico mio, stai per diventare un decepticon numero uno ...