If-Koubou

Kako Backup Citrix Xen VMs za besplatno s Xen-pocalypse (Bash)

Kako Backup Citrix Xen VMs za besplatno s Xen-pocalypse (Bash) (Kako da)

Jeste li ikada trebali sigurnosno kopirati Citrix Xen virtualne strojeve (VM), ali niste htjeli razbiti banku? HTG ima samo bash skriptu za vas s Xen-pocalypseom.

Slika h.koppdelaney, zaglavljena u Custom i Hotfortech.

Jedna od zgodnih stvari u Citrix Xen je da su mnoge od njegovih značajki besplatno naplate. Uz to, ako želite značajku "Automatizirano VM zaštitu i oporavak", trebali biste početi plaćati za licencu "Advance". Čak i tada plaćate samo za sigurnosne kopije na disku, koje nisu dovoljne za mnoge vrste radnih opterećenja kao što su Active Directory, baze podataka i sl. Da biste to prevladali, možda biste željeli snimku "Live memory snapshot and revert" stanja stroja, uključujući i sadržaj RAM-a. Međutim, ta je značajka dio izdanja "Enterprise" i "Platinum", koja su još skuplja. Nije da mi u HTG-u odbacujemo vrijednost prave sigurnosne kopije softvera, ali ako ste na uskom proračunu i nemojte zavaravati neke stanke za backup operaciju, možda ćete pronaći Xen-pocalypse kao savršeno razumno rješenje prije nego što izvršite proračunsku obvezu.

Pregled

"Slučaj upotrebe": imate nekoliko VM-ova koji zahtijevaju sigurnosnu kopiju. "Isključivanje VM i izvoziti ga kao datoteku" iz "Xen Centra" pomoću desnih klikova radi dobro, ali želite da se taj proces automatski i dogodi u rasporedu. Ovaj skript Bash koristi naredbu "XE" za obavljanje svojih dužnosti. XE je Xen sučelje komandne linije (CLI), automatski ekvivalent za izdavanje "desnih klikova" u "Xen centar". Pozvat ćemo skriptu tvrtke Cron koja će dostaviti dio "raspoređivanja". U najjednostavnijem obliku, protokol sigurnosnog kopiranja je:

  • Isključite ciljani VM.
  • Izvoz VM kao datoteku na rezervnu lokaciju.
  • Ako je VM uključen, prije pokretanja sigurnosne kopije, bit će ponovno uključen.

Omogućuje pucanje :)

Preuzmite skriptu

Xen-pocalipse se može slobodno dobiti iz gitara, koristeći se redovitim metodama git-a. S tim rečeno, ako još niste upoznati s gitom, možete preuzeti zip datoteku s ovom vezom. Kako se skripta treba izvoditi na jednom od vaših Xen poslužitelja, trebali biste ga izdvojiti tako da su ovlasti izvršenja sačuvane.

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

Iako će gore navedeno funkcionirati, savjetujemo vam da upotrijebite metodu GIT-a kako biste imali koristi od budućih ažuriranja.

Preuzmite SendEmail (nije obavezno)

U prošlosti smo pisali o programu SendEmail perl, pa ovdje nema potrebe ponoviti. Dovoljno je reći, to radi isto na Linuxu kao i na sustavu Windows.

Dok je omogućavanje e-pošte opcionalno, vrlo je preporučljivo jer će skripta moći:

  • Obavijestite vas kada je započeo i završio s prikazivanjem.
  • Obavijestite vas o svim pogreškama koje je uspjelo otkriti i rukovati.
  • Obavijest o izuzimanjima iz sigurnosnih kopija zbog izdavanja prostora. (To se ponašanje može onemogućiti ako nije poželjno)

Preuzmite ga na Xen poslužitelj i izvadite.

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

Napominjemo mjesto na kojem ste ga izdvojili. Trebat će vam je za datoteku postavki.

Definiranje oznaka

Citrix Xen vam daje mogućnost konfiguriranja "Custom Fields" za mogućnosti filtriranja. Mi ćemo stvoriti Polja, a zatim ih popuniti s informacijama koje koristi Xen-pocalypse. Xen-pocalypse prepoznaje 3 kontrolne TAG-ove koje označavaju naziv oznake za sigurnosnu kopiju i odnos roditelja i djeteta. Ako ne namjeravate koristiti metodu unosa datoteke, morate stvoriti barem polje naziva rezervne oznake.

Da biste to učinili, otvorite svojstva poslužitelja ili čak VM-a. U navigacijskom oknu odaberite "Prilagođena polja".

Ako ste prvi put definirali odnos (kao u gornjem primjeru), nećete imati nikakva polja za unos podataka, pa ih morate stvoriti. Da biste to učinili, kliknite "Uredi prilagođena polja" u dijaloškom okviru koji se pojavljuje, kliknite na "Dodaj ..."

Napravite tri (3) polja "Tekst". Jedan će se zvati "BackupTAG", a drugi "Roditelj" i "Djeca".

Bilješka: Nazivi prilagođenih polja su "hard coded" u skripti, tako da ne smijete odstupati od gore navedenog pravopisa, osim ako promijenite relevantni kôd.

Nakon što su sva polja stvorena, trebali biste vidjeti:

Zatvorite prozor. Sada biste trebali ispuniti polja "BackupTAG", "Roditelj" i "Djeca", kao na donjoj slici.

Sada samo trebate odrediti koje VM pripadaju onome što "BackupTAG".
Na primjer, u tvrtki u kojoj je pisana skripta imali smo VM-ove koji su trebali biti pohranjeni tjedno u četvrtak i petak, raspored naših Atlassian proizvodnih VM-ova i neki koji su trebali biti sigurnosno kopirani samo jednom mjesečno. Tako je naš pregled izgledao kao:

Tamo gdje je primjerice "tjedno-pet" bio tekst koji smo unijeli u "BackupTAG" "Custom Field". U redu? :)

Roditelji i djeca (izborno)

Prava ljepota ove skripte je da ona podržava "roditelj" do "djeteta" odnosa. To jest, moguće je postaviti popis "djetetovih" VM-ova koji bi bili isključeni i sigurnosno kopirani prije roditelja, te da će ta djeca biti vraćena samo jednom kada roditelj završi s rezervom i vratio se natrag na.To je korisno u slučajevima kada isključivanje roditelja VM-a uzrokuje da usluga u djetetu postane nedostupna. Takva bi stvar značila da će usluga na djetetu VM biti nedostupna dvaput, jednom za dijeteov proces backup i jednom za roditelje. Stvaranje ovog odnosa nadilazi taj problem.

Na primjer, svi naši Atlassian VMs upotrebljavali su jednu podatkovnu bazu podataka (DB) VM, koja je također postavljena za sigurnosno kopiranje. Dakle, primijetivši da je DB VM "Roditelj" drugim VM-ovima, moguće je osigurati pravilan redoslijed shutdown -> backup -> pokretanja.

U vrijeme pisanja ove funkcije postoji nekoliko upozorenja:

  1. Imena VM-ova koji imaju takav odnos ne smiju sadržavati razmake. Morat ćete ukloniti razmake s vaših VM imena, jer će biti razgraničeni prostor, kao u primjeru u nastavku.
  2. Može postojati samo jedan roditelj. Određivanje više od jednog nije ni planirano, da ne spominjem testirani.

Da biste stvorili taj odnos, idite u VM svojstva. Ako je ovo "roditelj", napišite tko je njegova djeca i ako je ovo "dijete", napiši tko je njegov roditelj. Na primjer:

Napomena: Nije naznačivanje roditelja za dijete može uzrokovati pokretanje djeteta prije nego što je roditelj spreman i može uzrokovati dvostruku sigurnosnu kopiju.

Metoda FILE (izborno)

Iz povijesnih razloga, Xen-pocalypse također podržava dobivanje popisa VM-ova za sigurnosno kopiranje kao tekstualnu datoteku. Dok je "kôd" još uvijek prisutan, funkcionalnost je znatno niža od metode TAG-ova i stoga se ne preporučuje. Uz to, ako želite iz nekog razloga koristiti metodu popisa, primjenjuju se sljedeća ograničenja:

  1. Imena VM-ova ne mogu sadržavati razmake ili posebne znakove.
  2. Može postojati samo jedan VM naziv po retku.
  3. Prazne linije nisu dopuštene.

Da biste generirali popis, kopirajte naziv VM iz Xen centra ili izvršite na Xen hostu:

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

Kopirajte gore navedeni popis u regularnu tekstualnu datoteku.

Mjesto rezervnog mjesta

Dok sam slučajno ubacujući u Citrix Xenu, ustanovio sam da su Depoziti za pohranu (SR) dostupni za upotrebu pod "/ var / run / sr-mount /% UUID%" gdje je UUID jedinstveni identifikator SR, koji se može dobiveno iz GUI-ja.

To znači da možemo koristiti redoviti čarobnjak "Next -> Next -> Finish" za stvaranje montaže na željenu lokaciju sigurnosnog kopiranja, a zatim skriptu upotrijebiti tu stazu (kao što je to slučajno s zabranom montaže iz naredbenog retka) tako da je izvan opsega ovog vodiča.

Da biste izradili novu "montažu", desnom tipkom miša kliknite naziv poslužitelja i odaberite Novi SR.

U ovom ćemo primjeru pokazati Xen na prozoru, pa odaberite "DIF dijeljenje datoteka sustava Windows (CIFS)":

Dovršite sljedeće -> Dalje -> Završi.

Dobiti SR UUID

Da biste dobili SR UUID, jednostavno kliknite njegovo ime u Centru Xen i idite na karticu "Općenito".

Da biste kopirali UUID, jednostavno kliknite desnom tipkom miša i odaberite "kopiraj".

Uz ove informacije pri ruci spremni ste za uređivanje datoteke postavki.

Konfigurirajte datoteku Postavke.

Projekt Xen-pocalypse dolazi u paketu s predloškom datoteke "postavke". Ovaj bi predložak trebao biti uređen kako bi odražavao vašu postavku i prošao kao prvi argument za skriptu. Datoteka s postavkama označava sljedeće:

Metoda za dobivanje VM-ova za sigurnosno kopiranje - Zadana metoda je TAG-ovi. To možete promijeniti u FILE, ali to se ne preporučuje.

Lokacija od odredišta za rezervaciju - Ako ste slijedili vodič do ove točke, samo% UUID% zamijenite SR-om kao što je gore dobiveno.

Lokacija SendEmail-a - Ako ste se odlučili za omogućavanje e-pošte, morate unijeti gdje ste ovdje izdvojili perl izvršnu datoteku.

Detalji e-pošte -Opet, ako ste omogućili e-poštu, morate definirati pojedinosti kao što su: Za, Od, Servername / IP & etc '.

Kompresija - To je zadano postavljeno na "Ne", jer će, uz omogućivanje toga, proizvesti manju datoteku sigurnosne kopije, to će uzrokovati i postupak izrade sigurnosne kopije za znatno duži vremenski period.

Provjerite slobodan prostor na odredištu - to će imati provjeru skripte da izrada sigurnosne kopije VM-a neće uzrokovati da slobodni prostor rezervnog mjesta padne ispod 10 GB. To je učinjeno kako bi se osiguralo da se najveći iznos VM-ova podržava umjesto samo jednog vrlo velikog VM-a. Izračun se vrši pomoću ukupnog ukupnog broja diskova svih HD vezanih uz VM.

otklanjanje grešaka - Zadano je da se uklanjanje pogrešaka isključi s vrijednošću "0" (nula). Ne biste trebali to uključiti, ali ako to učinite, više informacija nalazi se u segmentu rješavanja problema.

Izvršenje / zakazivanje

U svom najjednostavnijem obliku, poziv Xen-pocalypse bi izgledao kao:

./Xen-backup.sh settings.cfg tjedno-pet

Gdje se u gornjem slučaju nalazimo u direktoriju koji sadrži skriptu i datoteku s postavkama. "Oznaka" koju će skriptu tražiti jest "tjedno-petak".

Kao što je gore navedeno, koristit ćemo Cron za zakazivanje izvršenja. Prije nego što uđemo u konfiguraciju, to je Preporučuje se da konfigurirate već instalirani SSMTP paket na Xen poslužitelju. Iako je to neobavezan korak, to će vam dati sakupljač prašine. Imajući takav "sakupljač pranja" može vas upozoriti na stvari koje skripta ne može.

Unesite cronove uređivanje više izdavanjem:

crontab-e

Ako ste slijedili gore navedene upute i želite dodati zakazanu rezervnu za petak u 18:01 (6:01), unesite dolje:

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

Gore navedeno je ispravno ako pretpostavljate da su vaša skripta i datoteka s postavkama podjednako pod "/ root / Xen-pocalypse-master /".

Rješavanje problema

Dok sam uložio puno truda u izradu skripte kao jednostavan za korištenje i kao što je moguće besprijekorno, "Svijet je veći laboratorij". Dolje navedene informacije mogu vam pomoći da utvrdite koji je izvor vaših problema.

Napredak

Vi svibanj želite koristiti ovaj jedan brod za brzo "gledati" sve zadatke u tijeku, da vidim ako oni zapravo napreduju uopće ili ako su zapravo zaglavi.

dok [-e / dev / null]; učiniti za VM u "$ (x popis zadataka | grep uuid | awk 'print $ 5')"; učiniti xe zadatak-param-get param-name = napredak uuid = $ VM, spavanje 1; učinio; učinio

Da biste prestali gledati, upotrijebite Ctrl + C da biste kočili "za vrijeme petlje".

sječa drveta

Sve "zapisivanje" prikuplja Xen host koji pokreće skriptu u syslog mehanizmu. Naravno, to se može vidjeti s:

manje + F / var / log / poruke

Tražite ključnu riječ "Xen-pocalypse".

Napomena: Citrix je postavio dva (2) dnevna pravila za zadržavanje syslog svojih poslužitelja. Vi svibanj želite zadržati to na umu za postmortems.

otklanjanje grešaka

Kao što je navedeno u segmentu datoteka postavki, postoji smjernica za omogućavanje uklanjanja pogrešaka. Omogućavanje uklanjanja pogrešaka uzrokovat će da skripta emitira opsežno zapisivanje na konzolu i kastrirati od slanja e-poruka i izvršavanja izvoza, osim ako su postavljene relevantne zastave. Moguće zastavice navedene su u predlošku datoteke postavki i omogućuju vam granularno definiranje onoga što želite ispraviti.

Nadam se da niste trebali nikakvo otklanjanje pogrešaka i žetiš plodove mog rada :)

Potisni, čovječe, ti ćeš postati broj jedan decepticon ...