Domača » kako » Kako varnostno kopirati Citrix Xen VMs z Xen-pocalypse (Bash)

    Kako varnostno kopirati Citrix Xen VMs z Xen-pocalypse (Bash)

    Ste kdaj potrebovali varnostno kopiranje vaših Citrix Xen Virtual Machines (VM), vendar niste želeli razbiti banke? HTG ima samo bash scenarij za vas z Xen-pocalypse.

    Slika: h.koppdelaney, Stuck in Custom in Hotfortech.

    Ena od lepih stvari v Citrix Xen je, da je veliko njenih funkcij prost pristojbine. S tem je dejal, če želite "Automated VM zaščito in obnovitev" funkcijo, bi morali začeti plačevati za "Advance" licenco. Tudi takrat plačujete samo varnostne kopije na ravni diskov, ki ne zadostujejo za številne vrste delovnih obremenitev, kot je Active directory, baze podatkov in podobno. Da bi to odpravili, boste morda želeli »posnetek živega pomnilnika in povrnitev«, ki lahko shrani celotno vsebino. Stanje stroja, vključno z vsebino RAM-a. Vendar pa je ta funkcija del izdaj »Enterprise« in »Platinum«, ki sta še dražji. Ne gre za to, da mi v HTG-ju zavračamo vrednost prave programske opreme za varnostno kopiranje, vendar, če ste na strogem proračunu in ne motite časa izpadov za operacijo varnostnega kopiranja, boste morda ugotovili, da je Xen-pocalypse popolnoma razumna rešitev. pred prevzemom proračunske obveznosti.

    Pregled

    »Primer uporabe«: Imate nekaj VM, ki zahtevajo varnostno kopijo. "Izklop VM in izvažanje kot datoteke" iz "Xen Centra" z uporabo pravilnih klikov deluje v redu, vendar želite, da se ta proces zgodi samodejno in po urniku. Ta Bash skript uporablja ukaz "XE" za opravljanje svojih nalog. XE je vmesnik ukazne vrstice Xen (CLI), samodejno enakovreden za izdajanje »pravih klikov« v »Xen centru«. Poklicali bomo skript iz Cron-a, ki bo zagotovil del razporeda. V najpreprostejši obliki je tok rezervne kopije:

    • Izklopite ciljni VM.
    • Izvozite VM kot datoteko na lokacijo varnostnega kopiranja.
    • Če je bil VM vklopljen, preden se bo varnostna kopija zagnala, bo ponovno vklopljena.

    Lets get cracking :)

    Pridobite scenarij

    Xen-pocalypse lahko prosto pridobimo iz github-a z uporabo običajnih git metod. S tem je dejal, če niste seznanjeni v git še, lahko zgrabi zip datoteko s to povezavo. Ker mora skript delovati na enem od vaših strežnikov Xen, ga morate izvleči tam, da se ohranijo dovoljenja za izvajanje.

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

    Čeprav bi zgoraj navedeno delovalo, vam svetujemo, da uporabite metodo GIT, tako da boste imeli koristi od prihodnjih posodobitev.

    Pridobite SendEmail (izbirno)

    O programu SendEmail perl smo pisali v preteklosti, zato tukaj ni treba ponavljati. Dovolj je reči, da deluje na enak način na Linuxu, kot v operacijskem sistemu Windows.

    Medtem ko je omogočanje e-pošte neobvezno, je zelo priporočljivo, ker bo skript lahko:

    • Obveščamo vas, ko se je začel in končal.
    • Opozori vas na morebitne napake, ki jih je odkril in obvladal.
    • Obveščanje o diskvalifikacijah zaradi varnostnih kopij. (To vedenje lahko onemogočite, če ga ne želite)

    Prenesite ga na strežnik Xen in izvlecite.

    wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
    tar xvzhf sendEmail-v1.56.tar.gz

    Zapomnite si lokacijo, kamor ste jo ekstrahirali. Potrebovali ga boste za nastavitveno datoteko.

    Določanje oznak

    Citrix Xen vam omogoča, da konfigurirate »polja po meri« za zmožnosti filtriranja. Ustvarili bomo polja in jih nato zapolnili z informacijami, ki jih uporablja Xen-pocalypse. Xen-pocalypse prepozna 3 kontrolne TAG, ki določajo ime oznake za varnostno kopijo in razmerja med starši in otroki. Če ne nameravate uporabiti metode vnosa datoteke, MORATE ustvariti vsaj polje z imenom rezervne oznake.

    Če želite to narediti, odprite lastnosti strežnika ali celo VM. V podoknu za krmarjenje izberite »Polja po meri«.

    Če prvič definirate razmerje (kot v zgornjem primeru), ne boste imeli vnosa podatkov v polja, zato jih morate ustvariti. To storite tako, da v pogovornem oknu, ki se prikaže, kliknete »Uredi polja po meri« in kliknete »Dodaj…«

    Ustvarite tri (3) polja vrste »Besedilo«. Eden bo imenovan »BackupTAG«, drugi pa »Starši« in »Otroci«..

    Opomba: Imena polj po meri so bila v skript "trdo kodirana", zato ne smete odstopati od zgoraj navedenega črkovanja, razen če spremenite tudi ustrezno kodo..

    Ko so vsa polja ustvarjena, morate videti:

    Zaprite okno. Zdaj bi morali izpolniti polja »BackupTAG«, »Parent« in »Children«, kot je prikazano na spodnji sliki.

    Zdaj morate vse, kar morate storiti, določiti, kateri VM pripadajo temu, kar »BackupTAG«.
    Na primer, v podjetju, kjer je bil scenarij pridelan, smo imeli VM, ki bi jih morali podpreti vsak teden v četrtek in petek, časovni razpored za naše računalnike v Atlassian produktih in nekatere, ki bi jih bilo treba varnostno kopirati samo mesečno. Tako je naš pregled izgledal tako:

    Kjer je na primer “tedensko-fri” besedilo, ki smo ga vnesli v “BackupTAG” “Polje po meri”. Prav? :)

    Starši in otroci (neobvezno)

    Resnična lepota tega scenarija je, da podpira »staršev« za »otroške« odnose. To pomeni, da je mogoče nastaviti seznam "otroških" VM, ki bi bili izklopljeni in varnostno kopirani pred staršem, in da bodo ti otroci ponovno vklopljeni, ko bo starš končal varnostno kopiranje in je bil obrnjen nazaj na. To je uporabno v primerih, ko izklop matične VM povzroči, da storitev v otroku ne bo na voljo. Taka stvar bi pomenila, da storitev na otroški VM ne bi bila dvakrat na voljo, enkrat za otrokov varnostni postopek in enkrat za starševsko. Ustvarjanje tega odnosa presega to težavo.

    Na primer, vsi naši VMS v Atlassianu so uporabljali eno podatkovno bazo podatkovne baze (DB), ki je bila prav tako nastavljena za varnostno kopiranje. Torej, z ugotovitvijo, da je DB VM »Parent« za druge VM, je mogoče zagotoviti pravilen vrstni red zaustavitve -> backup -> startup..

    V času tega pisanja ima ta funkcija nekaj opozoril:

    1. Imena VM, ki naj bi imela takšno razmerje, ne smejo vsebovati presledkov. Iz imen VM boste morali odstraniti presledke, saj bodo presledki ločeni, kot v spodnjem primeru.
    2. Lahko je samo en starš. Oblikovanje več kot enega ni niti načrtovano, da ne omenjamo testiranja.

    Če želite ustvariti to razmerje, pojdite v lastnosti VM. Če je to »starš«, napišite, kdo so njegovi otroci in če je to »otrok«, napišite, kdo je njegov starš. Na primer:

    Opomba: Neodločitev staršev za otroka lahko povzroči, da se otrok zažene, preden je starš pripravljen, in lahko povzroči dvakratno varnostno kopijo..

    Metoda FILE (izbirno)

    Iz zgodovinskih razlogov Xen-pocalypse podpira tudi, da se seznam VM varnostno kopira kot besedilna datoteka. Medtem ko je „koda“ še vedno tam, je funkcionalnost močno slabša od metode TAG, zato ni priporočljiva. S tem rečem, če želite iz nekega razloga uporabljati metodo seznama, veljajo naslednje omejitve:

    1. Imena VM ne smejo vsebovati presledkov ali posebnih znakov.
    2. Na vrstico je lahko samo eno ime VM.
    3. Prazne vrstice niso dovoljene.

    Če želite ustvariti seznam, kopirajte ime VM iz Xen centra ali izvedite na gostitelju Xen:

    xe vm-list | grep ime-oznaka | awk 'print $ 4' | razvrsti

    Kopirajte zgornji seznam v običajno besedilno datoteko.

    Rezervno mesto

    Medtem ko naključno poking v Citrix Xen, sem ugotovil, da skladišča skladišč (SRs) so na voljo za uporabo pod "/ var / run / sr-mount /% UUID%", kjer UUID je edinstven identifikator za SR, ki se lahko iz GUI.

    To pomeni, da lahko uporabimo navadnega čarovnika »Naprej -> Naslednje -> Dokončaj«, da ustvarimo nastavitev na želeno lokacijo za varnostno kopiranje, nato pa skript uporabimo to pot (kot je uporabljen za povezavo z nameščanjem iz ukazne vrstice), vendar zato ne sodi v okvir tega priročnika.

    Če želite ustvariti nov “mount”, desno kliknite ime strežnika in izberite New SR.

    V tem primeru bomo usmerili Xen na deljeno okno, zato izberite »Skupna raba datotek Windows (CIFS)«:

    Izpolnite Naslednji -> Naslednji -> Dokončaj.

    Pridobite SR UUID

    Za pridobitev UUID SR-ja preprosto kliknite njegovo ime v centru Xen in pojdite na zavihek »Splošno«.

    Če želite kopirati UUID, preprosto kliknite z desno miškino tipko in izberite »kopiraj«.

    Ko so te informacije na voljo, ste pripravljeni urediti datoteko z nastavitvami.

    Konfigurirajte datoteko z nastavitvami.

    Projekt Xen-pocalypse je priložen predlogi za nastavitve. To predlogo je treba urejati tako, da odraža vašo nastavitev in jo posredujete kot prvi argument skriptu. Datoteka z nastavitvami označuje naslednje:

    Metoda za pridobitev VM, ki jih je treba varnostno kopirati - privzeta metoda je TAG. To lahko spremenite v DATOTEKO, vendar to ni priporočljivo.

    Lokacija rezervnega cilja - Če ste sledili navodilom do te točke, morate le zamenjati% UUID% s SR-ji, kot je bilo pridobljeno zgoraj..

    Mesto SendEmail  - Če ste se odločili za omogočanje e-pošte, morate tukaj vnesti mesto, kjer ste ekstrahirali izvršljivo datoteko perl.

    Podrobnosti o e-pošti - Še enkrat, če ste omogočili e-pošto, morate določiti podrobnosti, kot so: To, From, Servername / IP & itd..

    Stiskanje - To je privzeto nastavljeno na »Ne«, ker bo omogočeno, da bo ustvarilo manjšo datoteko varnostne kopije, zato bo postopek varnostnega kopiranja trajal bistveno dlje časa.

    Preverite, ali je prostor prazen na cilj - skripta bo preverila, da izdelava varnostne kopije VM ne bo povzročila, da bo prostor za varnostno kopijo padel pod 10 GB. To naredimo, da zagotovimo varnostno kopijo večine VM namesto ene zelo velike VM. Izračun se izvede s skupno bruto velikostjo diska vseh HD-jev, povezanih z VM.

    Odpravljanje napak  - Privzeto je, da je odpravljanje napak izklopljeno z vrednostjo "0" (nič). Tega vam ni treba vklopiti, če pa to storite, je v segmentu za odpravljanje težav zabeleženo več informacij.

    Izvajanje / razporejanje

    V svoji najpreprostejši obliki bi klicanje Xen-pocalypse izgledalo tako:

    ./Xen-backup.sh settings.cfg tedensko

    Kjer smo v zgornjem primeru v imeniku, ki vsebuje skripto in nastavitveno datoteko. »Tag«, ki ga bo skript iskal, je »tedensko pet«.

    Kot je navedeno zgoraj, bomo uporabili Cron za načrtovanje izvedbe. Preden gremo v konfiguracijo, je zelo priporočljivo da konfigurirate že nameščen paket SSMTP na strežniku Xen. Čeprav je to neobvezen korak, vam bo to omogočilo zbiralnik povratnega izpusta. Imeti takšen »zbiralnik povratnih izpustov« vas lahko opozori na stvari, ki jih scenarij ne more.

    Vnesite več v urejanje cron-a tako, da izdate:

    crontab -e

    Če ste upoštevali zgornja navodila in želite v petek ob 18:01 (18:01) dodati načrtovano varnostno kopijo, vnesite spodaj:

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

    Zgoraj je pravilno, če predpostavimo, da sta skripta in datoteka z nastavitvami pod »/ root / Xen-pocalypse-master /«.

    Odpravljanje težav

    Medtem ko sem vložil veliko truda v to, da bi bil scenarij enostaven za uporabo in čim bolj varen, "Svet je večji laboratorij". Spodnje informacije vam lahko pomagajo ugotoviti, kaj je vir težav.

    Napredek

    Morda boste želeli uporabiti to linijo, da hitro opazujete vse naloge v teku, da vidite, ali sploh napredujejo ali če so dejansko zaljubljene.

    while [-e / dev / null]; naredite za VM v "$ (xe seznam opravil | grep uuid | awk 'print $ 5')"; ali xe task-param-get param-name = napredek uuid = $ VM; Končano; Končano

    Če želite ustaviti gledanje, uporabite Ctrl + C, da zavrtite »while loop«.

    Prijava

    Vsa »dnevnika« zbira gostitelj Xen, ki izvaja skript v mehanizmu syslog. Seveda si lahko ogledate:

    manj + F / var / log / messages

    Iščete ključno besedo »Xen-pocalypse«.

    Opomba: Citrix je za syslog svojih strežnikov nastavil dve (2) dnevni politiki hrambe. Morda boste želeli to imeti v mislih za postmorteme.

    Odpravljanje napak

    Kot je navedeno v segmentu nastavitvenih datotek, obstaja direktiva za omogočanje razhroščevanja. Omogočanje razhroščevanja bo povzročilo, da bo skript izpisal podrobno prijavljanje v konzolo in ga kastriral od pošiljanja e-poštnih sporočil in dejansko izvajal izvoz, razen če so določene tudi ustrezne zastavice. Možne zastavice so zabeležene v predlogi datoteke z nastavitvami in vam omogočajo, da natančno določite, kaj želite razhroščiti.

    Upam, da niste potrebovali nobenega odpravljanja napak in uživate sadove mojega dela:)


    Potisni, moj človek, kmalu boš postal zmagovalec številka ena ...