Ako zálohovať virtuálne Citrix Xen VM s Xen-pocalypse (Bash)
Potrebovali ste niekedy zálohovať svoje virtuálne počítače Citrix Xen (VM), ale nechceli to robiť banku? HTG má práve bash skript pre vás s Xen-pocalypse.
Obrázok od h.koppdelaney, Stuck in Custom a Hotfortech.
Jednou z pekných vecí v Citrix Xen je, že mnohé z jeho vlastností sú zadarmo poplatok. S tým povedal, ak chcete funkciu "Automatická ochrana a obnovenie VM", musíte začať platiť za licenciu "Advance". Dokonca aj za platbu za zálohovanie na úrovni disku, ktoré nie sú dostatočné pre mnoho typov pracovných záťaží, ako je napríklad Active directory, Databases & Etc. Prekonanie tohto problému si môže vyžadovať funkciu "Live memory snapshot and revert", čo môže zachrániť celý stav stroja vrátane obsahu pamäte RAM. Táto funkcia je však súčasťou vydania "Enterprise" a "Platinum", ktoré sú ešte drahšie. Nejde o to, že my v spoločnosti HTG odmietame hodnotu skutočného zálohovacieho softvéru, ale ak ste na malom rozpočte a nevadí vám niektoré prestoje na operáciu zálohovania, môžete Xen-pocalypse považovať za dokonale rozumné riešenie pred tým, než urobíte rozpočtový záväzok.
Prehľad
"Použitie prípadu": Máte niekoľko VM, ktoré vyžadujú zálohu. "Vypnutie VM a jeho export ako súbor" z "Centra Xen" pomocou pravého kliknutia funguje v poriadku, ale chcete, aby sa tento proces uskutočnil automaticky a podľa plánu. Tento Bash skript používa príkaz "XE" na vykonávanie svojich povinností. XE je rozhranie príkazového riadku Xen (CLI), ktoré je automatickým ekvivalentom pre vydávanie pravých kliknutí v centre Xen. Zavoláme skript z Cronu, ktorý dodá časť "plánovanie". V najjednoduchšej forme je záložný tok:
- Vypnite cieľovú VM.
- Exportujte súbor VM ako súbor do umiestnenia zálohy.
- Ak bolo VM zapnuté, pred zálohovaním sa spustí.
Nechajte sa prasknúť :)
Získajte skript
Xen-pocalypse je možné voľne získať z github pomocou bežných git metód. S tým povedal, ak nie ste verte v git ešte, môžete chytiť zip súbor s týmto odkazom. Keďže skript potrebuje bežať na jednom z vašich Xen serverov, mali by ste ho extrahovať tam, aby sa zachovali povolenia na vykonanie.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
unzip master
Zatiaľ čo by to fungovalo, doporučujeme vám použiť metódu GIT, aby ste mohli využívať budúce aktualizácie.
Získať SendEmail (voliteľné)
Napísali sme o programe Perl SendEmail v minulosti, takže tu nie je potrebné opakovať. Stačí povedať, funguje to rovnako ako v systéme Linux ako v systéme Windows.
Zatiaľ čo e-mail je voliteľný, odporúča sa, pretože skript bude môcť:
- Informujte vás, keď začal a prebiehal.
- Upozorňujeme vás na akékoľvek chyby, ktoré dokázal zistiť a zvládnuť.
- Informujte o zálohových obmedzeniach kvôli problémom s vesmírom. (Toto správanie môže byť zakázané, ak nie je požadované)
Stiahnite ho na server Xen a extrahujte.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Všimnite si miesto, do ktorého ste ju extrahovali. Budete to potrebovať pre súbor s nastaveniami.
Definovanie značiek
Citrix Xen vám umožňuje konfigurovať "Vlastné polia" na filtrovanie. Polia vytvoríme a potom ich naplníme informáciami, ktoré používa Xen-pocalypse. Xen-pocalypse rozpozná 3 kontrolné TAG, ktoré označujú názov značky pre zálohovanie a vzťah medzi rodičmi a deťmi. Ak nemáte v úmysle používať metódu zadávania súborov, MUSÍTE vytvoriť aspoň pole s názvom záložnej značky.
Ak to chcete urobiť, otvorte vlastnosti servera alebo dokonca VM. Na navigačnej table vyberte "Vlastné polia".
Ak je to prvýkrát, keď definujete vzťah (ako v predchádzajúcom príklade), nebudete mať žiadne polia na zadávanie údajov, takže ich musíte vytvoriť. Ak to chcete urobiť, kliknite na "Upraviť vlastné polia" v dialógovom okne, ktoré sa objaví, kliknite na "Pridať ..."
Vytvorte tri polia typu "Text". Jeden sa bude nazývať "BackupTAG" a ostatní "Rodičia" a "Deti".
Poznámka: Názvy vlastných polí boli do skriptu "pevne zakódované", takže sa nesmiete odchýliť od vyššie uvedeného pravopisu, pokiaľ nezmeníte príslušný kód.
Po vytvorení všetkých polí by ste mali vidieť:
Zatvorte okno. Teraz musíte vyplniť polia "BackupTAG", "Parent" a "Children", ako na obrázku nižšie.
Teraz všetko, čo musíte urobiť, je určiť, ktoré VM patria k tomu, čo "BackupTAG".
Napríklad v spoločnosti, kde bol skript pestovaný, sme mali VM, ktoré mali byť zálohované týždenne vo štvrtok a piatok, plán pre naše produkty Atlassian VM a niektoré, ktoré mali byť zálohované len mesačne. Takže náš prehľad vyzeral takto:
Kde napríklad "týždeň-fri" bol text, ktorý sme zadali do "BackupTAG" "Vlastné pole". Čistá, čo? :)
Rodičia a deti (voliteľné)
Skutočná krása tohto skriptu spočíva v tom, že podporuje vzťahy "rodičov" s "dieťaťom". To znamená, že je možné nastaviť zoznam "detských" VM, ktoré by boli vypnuté a zálohované pred rodičom, a že tieto deti budú znova zapnuté až po ukončení zálohovania rodiča a vrátenia späť ďalej. To je užitočné v prípadoch, keď vypnutie rodičovského VM spôsobí, že služba dieťaťa sa stane nedostupnou. Takáto vec by znamenala, že služba na dieťa VM by bola nedostupná dvakrát, raz pre zálohovanie dieťaťa a raz pre rodičov. Vytvorenie tohto vzťahu prekonáva tento problém.
Napríklad všetky naše Atlassian VM používali jedinú DataBase (DB) VM, ktorá bola tiež nastavená na zálohovanie. Takže tým, že si všimneme, že DB VM je "Parent" pre ostatné VM, môže byť zabezpečené správne poradie vypnutia -> backup -> startup.
V čase tohto písania má táto funkcia niekoľko upozornení:
- Názvy VM, ktoré majú mať takýto vzťah, nemôžu obsahovať medzery. Budete musieť odstrániť medzery z vašich VM názvov, pretože budú vymedzené medzerami, ako v nižšie uvedenom príklade.
- Môže byť len jeden rodič. Označenie viac ako jedného nie je ani plánované, nehovoriac o testovaní.
Ak chcete vytvoriť tento vzťah, prejdite do vlastností VM. Ak je to "rodič", napíšte, kto je jeho deti a ak je to "dieťa", napíšte, kto je jeho rodič. Napríklad:
Poznámka: Neuvedenie rodiča pre dieťa môže spôsobiť spustenie dieťaťa predtým, ako je jeho rodič pripravený, a môže spôsobiť, že bude dieťa zálohované dvakrát.
Metóda FILE (voliteľné)
Z historických dôvodov Xen-pocalypse tiež podporuje získanie zoznamu VM, ktoré sa majú zálohovať ako textový súbor. Zatiaľ čo "kód" je stále tam, funkčnosť je výrazne nižšia ako metóda TAG, a preto sa neodporúča. S tým, ak chcete z nejakého dôvodu použiť metódu zoznamu, platia nasledujúce obmedzenia:
- Názvy VM nemôžu obsahovať medzery ani špeciálne znaky.
- Na jeden riadok môže byť len jeden názov VM.
- Prázdne riadky nie sú povolené.
Ak chcete vygenerovať tento zoznam, skopírujte názov VM z centra Xen alebo ho vykonajte na hostiteľovi Xen:
xe vm-zoznam grep name-label | awk
'print $ 4' | druh
Skopírujte vyššie uvedený zoznam do bežného textového súboru.
Miesto zálohovania
Pri náhodnom pokuse v Citrix Xen som zistil, že Storage Repositories (SR) sú k dispozícii pre použitie pod "/ var / run / sr-mount /% UUID%", kde UUID je jedinečný identifikátor SR. získané z grafického používateľského rozhrania.
Znamená to, že môžeme použiť bežný sprievodca "Next -> Next -> Finish" na vytvorenie pripojenia k požadovanej zálohovacej polohe a potom použite skript takú cestu (tak, ako je to vhodné na zálohovanie s pripojením z príkazového riadku), ale robí to tak je mimo rozsahu tejto príručky.
Ak chcete vytvoriť novú "pripojenie", kliknite pravým tlačidlom myši na názov servera a vyberte položku Nový SR.
V tomto príklade ukážeme Xen na zdieľanie systému Windows, preto si zvoľte "Zdieľanie súborov Windows (CIFS)":
Vyplňte položku Nasledujúci -> Nasledujúci -> Dokončiť.
Získajte UUID SR
Ak chcete získať identifikátor UUID SR, jednoducho kliknite na jeho názov v Centre Xen a prejdite na kartu "Všeobecné".
Ak chcete skopírovať identifikátor UUID, jednoducho kliknite naň pravým tlačidlom a zvoľte "kopírovať".
S týmito informáciami ste pripravení upraviť súbor s nastaveniami.
Nakonfigurujte súbor Nastavenia.
Projekt Xen-pocalypse je dodávaný s šablónou súboru "nastavenia". Táto šablóna by mala byť upravená tak, aby odrážala vaše nastavenie a odovzdala ako prvý argument skript. Súbor s nastaveniami označuje nasledujúce:
Metóda na získanie záložných virtuálnych počítačov - Predvolená metóda je TAG. Môžete to zmeniť na SÚBOR, ale to sa nedoporučuje.
Lokalita cieľa zálohovania - Ak ste v tomto bode nasledovali sprievodcu, stačí nahradiť% UUID% len s SR ako to bolo získané zhora.
Umiestnenie služby SendEmail - Ak ste sa rozhodli povoliť e-mail, musíte zadať miesto, kde ste tu extrahovali perlový spustiteľný súbor.
E-mailové detaily - Ak ste povolili e-mail, musíte definovať podrobnosti ako: To, From, Servername / IP & etc '.
kompresia - Toto nastavenie je v predvolenom nastavení nastavené na hodnotu "Nie", pretože pri jeho aktivácii vytvorí menší súbor zálohy, spôsobí aj to, že postup zálohovania bude trvať oveľa dlhšie.
Skontrolujte voľné miesto na mieste určenia - skript skontroluje, že zálohovanie VM nebude mať za následok zníženie voľného miesta na zálohovanie pod 10 GB. To sa robí preto, aby sa zabezpečilo, že najvyššie množstvo VM sa zálohuje namiesto len jedného veľmi veľkého VM. Výpočet sa vykoná s použitím celkovej veľkosti disku všetkých HD súvisiacich s VM.
ladenie - Predvoleným nastavením je vypnutie ladenia s hodnotou "0" (nula). Nemali by ste to zapínať, ale ak to urobíte, viac informácií sa zaznamená v segmente odstraňovania problémov.
Prevedenie / Scheduling
Vo svojej najjednoduchšej podobe by vyvolanie Xen-pocalypse vyzeralo takto:
./Xen-backup.sh settings.cfg týždenne - fri
Kde sme v uvedenom prípade, nachádzame sa v adresári, ktorý obsahuje skript a súbor nastavení. "Tag" scenár bude hľadať je "týždeň-fri".
Ako bolo uvedené vyššie, použijeme program Cron na naplánovanie vykonania. Predtým, než prejdeme do konfigurácie, je to vysoko odporúčané že konfigurujete už nainštalovaný balík SSMTP na serveri Xen. Aj keď je to voliteľný krok, tak vám prinesie zberač spätného preplachu. Takýto "zberný kolektor" môže vás upozorniť na veci, ktoré skript nedokáže.
Vstupte do edície cron viac tým, že vydáte:
crontab -e
Ak ste dodržali vyššie uvedené pokyny a chcete pridať naplánovanú zálohu na piatok o 18:01 (18:01), zadajte nižšie:
01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh/root/Xen-pocalypse-master/settings.cfg týždenne-fri
Vyššie uvedené je správne za predpokladu, že váš skript a súbor nastavení sú obe ako "/ root / Xen-pocalypse-master /".
Riešenie problémov
Zatiaľ čo som vynaložil veľké úsilie na to, aby sa scenár stal ľahko použiteľným a čo najšetrnejšie, "Svet je väčšia laboratórium". Nasledujúce informácie vám môžu pomôcť zistiť, aký je zdroj vašich problémov.
pokrok
Možno budete chcieť použiť túto jednu linku na rýchle sledovanie všetkých prebiehajúcich úloh, zistiť, či v skutočnosti vôbec prebiehajú alebo či sú skutočne uviaznuté.
zatiaľ čo [-e / dev / null]; urobiť pre VM v "$ (xe task-list | grep uuid | awk 'print $ 5')"; do xe úloha-param-get param-name = postup uuid = $ VM; spánok 1; hotový; hotový
Ak chcete zastaviť sledovanie, použite klávesy Ctrl + C na zablokovanie funkcie "while while".
protokolovanie
Všetky "protokolovanie" zhromažďuje hostiteľ Xen, ktorý spúšťa skript v mechanizme syslog. Toto je samozrejme možné prezerať pomocou:
menej + F / var / log / správy
Hľadáte kľúčové slovo "Xen-pocalypse".
Poznámka: Citrix nastavila dva (2) dni uchovávanie pravidiel pre syslog svojich serverov. Možno budete chcieť mať to na pamäti pre postmortems.
ladenie
Ako je uvedené v segmente súborov nastavení, existuje smernica, ktorá umožňuje ladenie. Povolenie ladenia spôsobí, že skript vygeneruje detailné zaznamenávanie do konzoly a vykrúca ju zo zasielania e-mailov a skutočného vykonávania exportu, pokiaľ nie sú tiež nastavené príslušné príznaky. Možné príznaky sú uvedené v šablóne súborov s nastaveniami a umožňujú vám podrobne definovať, čo chcete debugovať.
Dúfam, že ste nepotrebovali žiadne ladenie a že ste plodili plody svojej práce :)
Ťah, môj človek, sa chystáš stať sa decepticom číslo jedna ...