Domovská » jak » Jak zálohovat Citrix Xen VMs zdarma s Xen-pocalypse (Bash)

    Jak zálohovat Citrix Xen VMs zdarma s Xen-pocalypse (Bash)

    Potřebovali jste někdy zálohovat vaše virtuální stroje Citrix Xen (VM), ale nechtěli jste, aby to banku přerušili? HTG má pro vás jen bash skript s Xen-pocalypse.

    Obrázek h.koppdelaney, Stuck in Custom a Hotfortech.

    Jedním z pěkných věcí v Citrix Xen je, že mnoho z jeho vlastností je volný, uvolnit poplatků. S tím, že chcete, aby funkce "Automatizovaná ochrana a obnovení VM", byste museli začít platit za licenci "Advance". Dokonce i platíte pouze zálohy na úrovni disků, které nejsou dostatečné pro mnoho typů pracovních zátěží, jako je například adresář Active Directory, Databáze atd. Chcete-li tuto situaci překonat, možná budete chtít "snímek živé paměti a vrátit se", což může uložit celý stav stroje včetně obsahu paměti RAM. Tato funkce je však součástí vydání "Enterprise" a "Platinum", které jsou ještě dražší. Nejde o to, že my v HTG odmítáme hodnotu skutečného zálohovacího softwaru, ale pokud máte napjatý rozpočet a nevadí vám nějaké prostoje na zálohování, můžete Xen-pocalypse považovat za perfektní řešení než uděláte rozpočtový závazek.

    Přehled

    "Use case": Máte několik VM, které vyžadují zálohu. "Vypnutí VM a jeho export jako soubor" z "Centra Xen" pomocí pravého kliknutí funguje dobře, ale chcete, aby se tento proces uskutečnil automaticky a podle plánu. Tento skript Bash používá příkaz "XE" k plnění svých povinností. XE je rozhraní příkazového řádku Xen (CLI), což je automatický ekvivalent pro vydávání "pravých kliknutí" v "Xen Center". Budeme volat scénář od Cron, který dodá část "plánování". Ve své nejjednodušší formě je záložní tok:

    • Vypněte cílovou VM.
    • Exportujte VM jako soubor do zálohy.
    • Pokud bylo virtuální zařízení zapnuté, před spuštěním zálohování se znovu zapne.

    Nechte se rozbít :)

    Získat skript

    Xen-pocalypse lze volně získat z github pomocí pravidelných git metod. S tím se říká, že pokud ještě nejste zvyklí na git, můžete zip soubor uchopit tímto odkazem. Protože skript musí běžet na jednom z vašich serverů Xen, měli byste ho extrahovat, aby se zachovala oprávnění k provádění.

    wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
    unzip master

    Zatímco výše uvedené by fungovalo, doporučuje se použít metodu GIT, abyste mohli využívat budoucích aktualizací.

    Získejte SendEmail (volitelné)

    Napsali jsme o programu Perl SendEmail v minulosti, takže zde není třeba opakovat. Stačí říci, že pracuje stejným způsobem na Linuxu stejně jako v systému Windows.

    Ačkoli e-mail je volitelný, doporučuje se, protože skript bude schopen:

    • Informujte se, kdy začal a běžel.
    • Upozorněte na chyby, které byly schopny rozpoznat a zvládnout.
    • Informujte o zálohových omezeních kvůli problémům s prostorem. (Toto chování může být zakázáno, pokud není požadováno)

    Stáhněte je 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

    Poznamenejte si místo, ze kterého jste je extrahovali. Potřebujete to pro soubor nastavení.

    Definování jmenovek

    Citrix Xen vám umožňuje konfigurovat "Vlastní pole" pro možnosti filtrování. Políčky vytvoříme a budeme je naplnit informacemi, které Xen-pocalypse používá. Xen-pocalypse rozpozná 3 kontrolní TAG, které určují název značky pro zálohování a vztah nadřazené k podřízenému. Pokud nemáte v úmyslu používat metodu zadávání souborů, MUSÍte vytvořit alespoň název záložní značky.

    Chcete-li to provést, otevřete vlastnosti serveru nebo dokonce VM. V navigačním podokně vyberte možnost "Vlastní pole".

    Pokud se jedná o poprvé, kdy definujete vztah (jako v předchozím příkladu), nebudete mít žádná pole pro zadávání dat, takže je musíte vytvořit. Chcete-li to provést, klepněte na tlačítko "Upravit vlastní pole" v dialogovém okně, které se objeví, klikněte na tlačítko "Přidat ..."

    Vytvořte tři (3) pole typu "Text". Jeden se bude jmenovat "BackupTAG" a ostatní "Rodič" a "Děti".

    Poznámka: Názvy vlastních polí jsou do skriptu "pevně kódovány", takže se NESMÍte odchýlit od výše uvedeného pravopisu, pokud nezměníte příslušný kód.

    Po vytvoření všech polí byste měli vidět:

    Zavřete okno.Měli byste nyní vyplnit políčka "BackupTAG", "Parent" a "Children", jak je uvedeno níže.

    Nyní musíte pouze určit, které VM patří k "BackupTAG".
    Například ve společnosti, kde byl scénář vyrostl, jsme měli VM, které měly být podpořeny týdně ve čtvrtek a pátek, plán pro naše produkty Atlassian VM a některé, které měly být zálohovány pouze měsíčně. Náš přehled tedy vypadal takto:

    Kde například "týden-fri" byl text, který jsme zadali do "Vlastní pole BackupTAG". Jistě? :)

    Rodiče a děti (volitelné)

    Skutečná krása tohoto skriptu spočívá v tom, že podporuje vztahy "nadřazené" a "podřízené". To znamená, že je možné nastavit seznam "podřízených" virtuálních počítačů, které by byly vypnuty a zálohovány před rodičem, a že tyto děti budou znovu zapnuty až po dokončení zálohování rodiče a vrácení zpět na. To je užitečné v případech, kdy vypnutí rodičovského VM způsobí, že služba u dítěte nebude k dispozici. Taková věc by znamenala, že služba na podřízeném VM by nebyla dostupná dvakrát, jednou pro zálohovací proces dítěte a jednou pro rodiče. Vytvoření tohoto vztahu tento problém překonává.

    Například, všechny naše Atlassian VMs používaly jediný DataBase (DB) VM, který byl také nastaven na zálohování. Tím, že si všimneme, že DB VM je "Parent" pro ostatní VM, může být zajištěno správné pořadí vypnutí -> backup -> startup.

    V době tohoto psaní má tato funkce několik upozornění:

    1. Názvy VM, které mají mít takový vztah, nemohou obsahovat mezery. Budete muset odstranit mezery z vašich VM názvů, neboť budou odděleny mezerami, jak je uvedeno níže.
    2. Může existovat pouze jeden rodič. Označení více než jednoho není dokonce plánováno, nemluvě o testování.

    Chcete-li vytvořit tento vztah, přejděte do vlastností VM. Pokud je to "rodič", napište, kdo jsou jeho děti, a pokud je to "dítě", napište, kdo je jeho rodič. Například:

    Poznámka: Neoznačení rodiče pro dítě může způsobit, že dítě bude spuštěno předtím, než je rodič připraven a může způsobit jeho zálohování dvakrát.

    Metoda FILE (volitelná)

    Z historických důvodů Xen-pocalypse také podporuje získání seznamu VM, které mají být zálohovány jako textový soubor. Zatímco "kód" je stále tam, funkčnost je výrazně horší než metoda TAG, a proto se nedoporučuje. S tím řečeno, pokud dáváte přednost metodě seznamu z nějakého důvodu, platí následující omezení:

    1. Názvy VM nemohou obsahovat mezery nebo speciální znaky.
    2. Na jeden řádek může být pouze jeden název VM.
    3. Prázdné čáry nejsou povoleny.

    Chcete-li vygenerovat seznam, zkopírujte jméno VM z centra Xen nebo spusťte v hostiteli Xen:

    xe vm-seznam | grep název-jmenovka | awk 'print $ 4' | třídění

    Zkopírujte výše uvedený seznam do běžného textového souboru.

    Místo zálohování

    Zatímco při náhodném pokousání v Citrixu Xen jsem zjistil, že sklady jsou k dispozici pro použití pod "/ var / run / sr-mount /% UUID%", kde UUID je jedinečný identifikátor SR, který může být získané z grafického uživatelského rozhraní.

    To znamená, že můžeme použít běžný průvodce "Next -> Next -> Finish" pro vytvoření připojení k požadovanému místu zálohování a potom použít skript, který používá tuto cestu (jak je určen pro zálohování s instalací z příkazového řádku), ale dělá tak je nad rámec této příručky.

    Chcete-li vytvořit nový "mount", klepněte pravým tlačítkem myši na název serveru a vyberte položku New SR.

    V tomto příkladu uvedeme Xen do sdílené složky systému Windows, vyberte možnost "Sdílení souborů Windows (CIFS)":

    Dokončete funkci Další -> Další -> Dokončit.

    Získejte UUID SR

    Chcete-li získat identifikátor UUID SR, jednoduše klikněte na jeho název v centru Xen a přejděte na kartu "Obecné".

    Chcete-li kopírovat UUID, jednoduše klikněte pravým tlačítkem myši a zvolte "kopírovat".

    S těmito informacemi jste připraveni upravit soubor nastavení.

    Nakonfigurujte soubor Nastavení.

    Projekt Xen-pocalypse je dodáván s šablonou nastavení "nastavení". Tato šablona by měla být upravena tak, aby odrážela vaše nastavení a předala jako první argument skriptu. Soubor nastavení označuje následující:

    Metoda pro získání záložních virtuálních serverů - Výchozí metoda je TAG. Můžete to změnit na SOUBOR, ale to se nedoporučuje.

    Místo umístění zálohy - Pokud jste v tomto bodě řídili průvodce, stačí pouze nahradit% UUID% SR, jak bylo získáno shora.

    Umístění služby SendEmail  - Pokud jste se rozhodli povolit e-mail, musíte zadat, kde jste zde extrahovali soubor executable.

    Podrobnosti o e-mailu - Opět, pokud jste povolili e-mail, je třeba definovat podrobnosti jako: To, From, Servername / IP & etc '.

    Komprese - Toto nastavení je ve výchozím nastavení nastaveno na hodnotu "Ne", protože při jeho aktivování vytvoří menší soubor zálohy, ale také způsobí, že zálohovací procedura bude spuštěna po značně delší dobu.

    Zkontrolujte volné místo na cílovém místě - bude mít skript kontrolu, že vytvoření zálohy VM nezpůsobí volný prostor pro zálohování klesnout pod 10 GB. To je zajištěno, aby bylo zajištěno, že nejvíce zálohovaných virtuálních počítačů namísto pouze jednoho velmi velkého VM. Výpočet se provádí pomocí celkové velikosti celkového disku všech HD souvisejících s VM.

    Ladění  - Výchozí nastavení je vypnutí ladění s hodnotou "0" (nula). Nemusíte to zapínat, ale pokud ano, více informací naleznete v segmentu odstraňování problémů.

    Provádění / plánování

    Ve své nejjednodušší formě by vyvolání Xen-pocalypse vypadalo takto:

    ./Xen-backup.sh settings.cfg týden-pátek

    Kde ve výše uvedeném případě jsme v adresáři, který obsahuje skript a soubor nastavení. "Tag" skript bude hledat je "týdenní-fri".

    Jak bylo uvedeno výše, budeme Cron používat k naplánování popravy. Než se dostaneme do konfigurace, tak to je vysoce doporučeno že konfigurujete již nainstalovaný balíček SSMTP na serveru Xen. I když je to volitelný krok, uděláte tak zpětný sběrač. Mít takový "kolektor zpětného praní" může vás upozornit na věci, které skript není schopen.

    Vstupte do úpravy cronu více vydáním:

    crontab -e

    Pokud jste dodrželi výše uvedené pokyny a chcete přidat plánovanou zálohu pro pátek v 18:01 (18:01), zadejte následující:

    01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh/root/Xen-pocalypse-master/settings.cfg týdně-fri

    Výše uvedené je správné za předpokladu, že soubor skriptu a nastavení jsou pod "/ root / Xen-pocalypse-master /".

    Odstraňování problémů

    Zatímco jsem vynaložil mnoho úsilí na to, aby byl scénář tak snadný a co nejšetrnější, "Svět je větší laboratoř". Níže uvedené informace vám mohou pomoci zjistit, jaké jsou vaše potíže.

    Pokrok

    Možná budete chtít použít jednu lineru pro rychlé sledování všech probíhajících úkolů, pro zjištění, zda skutečně postupují vůbec nebo zda jsou skutečně uvíznutí.

    zatímco [-e / dev / null]; do pro VM v "$ (xe task-list | grep uuid | awk 'tisk $ 5')"; do xe úloha-param-get param-name = pokrok uuid = $ VM; spánek 1; Hotovo; Hotovo

    Chcete-li zastavit sledování, použijte klávesy Ctrl + C k brzdění "while loop".

    Protokolování

    Všechna "protokolování" shromažďuje hostitel Xen, který spouští skript v mechanismu syslog. Samozřejmostí je možnost prohlížení pomocí:

    méně + F / var / log / zprávy

    Hledáte klíčové slovo "Xen-pocalypse".

    Poznámka: Citrix nastavila dva (2) denní zásady uchovávání pro syslog svých serverů. Možná budete chtít mít na mysli postmortems.

    Ladění

    Jak je uvedeno v segmentu nastavení souborů, existuje směrnice umožňující ladění. Povolení ladění způsobí, že skript vygeneruje detailní protokolování do konzoly a vynese ji ze zasílání e-mailů a vlastních exportů, pokud nejsou nastaveny příslušné příznaky. Možné příznaky jsou zaznamenány v šabloně nastavení souborů a umožňují vám podrobně definovat, co chcete ladit.

    Doufám, že jste nepotřebovali žádné ladění a že získáváte plody své práce :)


    Tah, můj člověk, se chystáš stát decepticonem číslo jedna ...