Kako to Sigurnosna kopija Citrix Xen VMs za besplatno s Xen-pocalypse (Bash) t
Jeste li ikada trebali backupirati svoje Citrix Xen virtualne strojeve (VM), ali niste htjeli slomiti banku? HTG ima samo bash skriptu za vas s Xen-pocalypse.
Slika h.koppdelaney, Stuck in Custom i Hotfortech.
Jedna od lijepih stvari u Citrix Xen je da su mnoge od njegovih značajki besplatno naknade. Uz to rekao, ako želite "Automated VM zaštita i oporavak" značajka, te će morati početi plaćati za "Advance" licencu. Čak i tada plaćate samo sigurnosne kopije na razini diska, koje nisu dovoljne za mnoge vrste radnih opterećenja kao što je Active Directory, baze podataka i sl. Kako biste to prevladali, možda ćete htjeti snimiti snimku i vratiti se u izvornu memoriju, koja može spasiti cijeli stanje stroja, uključujuć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 pravog softvera za izradu sigurnosnih kopija, ali ako ste na ograničenom proračunu i nemate ništa protiv zastoja u radu s rezervnim kopijama, možda ćete otkriti da je Xen-pocalypse savršeno razumno rješenje. prije nego što izvršite proračunsku obvezu.
Pregled
"Koristite slučaj": Imate nekoliko virtualnih virtualnih računala koje zahtijevaju sigurnosnu kopiju. "Isključivanje VM-a i njegovo iznošenje kao datoteke" iz "Xen Centra" pomoću ispravnih klikova funkcionira dobro, ali želite da se taj proces odvija automatski i po rasporedu. Ova Bash skripta koristi "XE" naredbu za izvršavanje svojih dužnosti. XE je Xen sučelje komandne linije (CLI), automatski ekvivalent za izdavanje "pravih klikova" u "Xen Center". Pozvat ćemo skriptu od Cron-a koja će dostaviti dio "raspoređivanja". U svom najjednostavnijem obliku, pričuvni protok je:
- Isključite ciljani VM.
- Izvezite VM kao datoteku na lokaciju sigurnosne kopije.
- Ako je VM uključen, prije pokretanja sigurnosne kopije bit će ponovno uključen.
Omogućujemo pucanje :)
Nabavite skriptu
Xen-pocalypse se može slobodno dobiti iz github-a, koristeći uobičajene git metode. Uz to rekao, ako niste upućen u git još, možete zgrabiti zip datoteku s ovim linkom. Kako skripta mora biti pokrenuta na jednom od vaših Xen poslužitelja, trebali biste je izdvojiti tamo da bi se očuvale dozvole za izvođenje.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
raspakirajte majstora
Iako će gore navedeno funkcionirati, savjetujemo vam da koristite GIT metodu, tako da možete imati koristi od budućih ažuriranja.
Nabavite SendEmail (izborno)
U prošlosti smo pisali o SendEmail perl programu, tako da ovdje nema potrebe ponavljati. Dovoljno je reći da radi na isti način na Linuxu kao i na Windowsima.
Iako je omogućavanje e-pošte opcionalno, preporučuje se jer će skripta moći:
- Obavijestiti vas kada je pokrenut i završio.
- Obavijesti vas o bilo kakvim pogreškama koje je mogao otkriti i obraditi.
- Obavijestite o diskvalifikacijama sigurnosnih kopija zbog problema s prostorom. (Ovo se ponašanje može onemogućiti ako se ne želi)
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
Zabilježite lokaciju na koju ste je izdvojili. Trebat će vam za datoteku s postavkama.
Definiranje oznaka
Citrix Xen vam daje mogućnost konfiguriranja "Custom Fields" za filtriranje. Stvorit ćemo polja, a zatim ih popuniti informacijama koje koristi Xen-pocalypse. Xen-pocalypse prepoznaje 3 kontrolne TAG-ove koji označavaju ime oznake za backup i odnose roditelj-dijete. Ako ne namjeravate koristiti metodu za unos datoteke, MORATE stvoriti barem polje naziva rezervne oznake.
Da biste to učinili, otvorite svojstva poslužitelja ili čak VM. U navigacijskom oknu odaberite "Prilagođena polja".
Ako prvi put definirate vezu (kao u gornjem primjeru), nećete imati polja u koja ćete unijeti podatke, tako da ih morate stvoriti. Da biste to učinili, kliknite na "Uredi prilagođena polja" u dijaloškom okviru koji se pojavi, kliknite na "Dodaj ..."
Stvorite tri (3) polja tipa "Tekst". Jedan će se zvati "BackupTAG", a drugi "Roditelj" i "Djeca".
Bilješka: Imena prilagođenih polja su u skriptu "teško kodirana", stoga MORATE ne odstupati od gore navedenog pravopisa, osim ako ne promijenite i odgovarajući kôd.
Nakon stvaranja svih polja, trebali biste vidjeti:
Zatvorite prozor. Sada biste trebali popuniti polja "BackupTAG", "Roditelj" i "Djeca", kao na slici ispod.
Sada samo trebate odrediti koji VM pripadaju onome što "BackupTAG".
Na primjer, u tvrtki u kojoj je skripta narasla, imali smo VM-ove koji bi trebali biti poduprti tjedno u četvrtak i petak, raspored za naše VM-ove u Atlassian proizvodima i neke koji bi trebali biti sigurnosno kopirani samo mjesečno. Tako je naš pregled izgledao ovako:
Gdje je, primjerice, "tjedno-pet" tekst koji smo unijeli u "BackupTAG" "Custom Field". Uredan huh? :)
Roditelji i djeca (izborno)
Prava ljepota ove skripte je u tome što podržava "roditelja" u "dječjim" odnosima. To jest, moguće je postaviti popis "dječjih" VM-ova koji će biti isključeni i poduprti pred roditeljem, te da će se ta djeca vratiti samo nakon što roditelj završi sa sigurnosnom kopijom i bude okrenut nazad na. To je korisno u slučajevima kada isključivanje roditeljskog virtualnog računala uzrokuje nedostupnost usluge u djetetu. Takva bi stvar značila da usluga na VM-u djeteta ne bi bila dostupna dvaput, jednom za djetetov backup proces i jednom za roditeljske. Stvaranje tog odnosa nadilazi taj problem.
Na primjer, svi naši Atlassian VM-ovi koristili su jedan VB podatkovne baze (DB), koji je također postavljen za sigurnosno kopiranje. Dakle, primjećujući da je DB VM "roditelj" za ostale VM, može se osigurati pravilan redoslijed gašenja -> backup -> startup..
U vrijeme pisanja ove funkcije, ova funkcija ima nekoliko upozorenja:
- Nazivi VM-ova koji će imati takav odnos ne mogu sadržavati razmake. Morat ćete ukloniti razmake iz imena VM-a, jer će oni biti razmaknuti razmakom, kao u primjeru u nastavku.
- Može postojati samo jedan roditelj. Određivanje više od jednog nije čak ni planirano, da ne spominjemo testiranje.
Da biste stvorili ovaj odnos, idite u svojstva VM-a. Ako je ovo “roditelj”, napišite tko su njegova djeca i ako je to “dijete”, napišite tko je njegov roditelj. Na primjer:
Napomena: Ako roditelj nije označen kao dijete, to može uzrokovati pokretanje djeteta prije nego što je njegov roditelj spreman, a može ga dvaput kopirati.
Metoda FILE (izborno)
Iz povijesnih razloga, Xen-pocalypse također podržava dobivanje sigurnosne kopije popisa virtualnih strojeva kao tekstualne datoteke. Dok je “kod” još uvijek prisutan, funkcionalnost je znatno lošija od TAG metode i stoga se ne preporučuje. S tim riječima, ako iz nekog razloga želite koristiti metodu popisa, primjenjuju se sljedeća ograničenja:
- Nazivi VM-ova ne mogu sadržavati razmake ili posebne znakove.
- U retku može biti samo jedan naziv VM-a.
- Prazne crte nisu dopuštene.
Da biste generirali popis, kopirajte ime VM-a iz Xen centra ili izvršite na Xen hostu:
xe vm-list | grep ime-oznake | awk
'print $ 4' | sortirati
Kopirajte gornji popis u običnu tekstualnu datoteku.
Položaj sigurnosne kopije
Dok se slučajno pojavljuje u Citrix Xen-u, otkrio sam da su spremišta za pohranu (SRs) dostupna za upotrebu pod "/ var / run / sr-mount /% UUID%" gdje je UUID jedinstveni identifikator SR-a, koji može biti iz GUI.
To znači da možemo koristiti uobičajene čarobnjake "Dalje -> Sljedeće -> Završiti" za kreiranje nosača na željenu lokaciju sigurnosne kopije, a zatim da skripta koristi tu stazu (kao da se koristi za zabrljavanje s montažom iz naredbenog retka), ali stoga je izvan opsega ovog vodiča.
Da biste stvorili novi “mount”, desnom tipkom miša kliknite naziv poslužitelja i odaberite New SR.
U ovom primjeru usmjerit ćemo Xena na dijeljenje prozora, stoga odaberite "Dijeljenje datoteka u sustavu Windows (CIFS)":
Dovršite Sljedeće -> Dalje -> Završi.
Nabavite SR-ov UUID
Da biste dobili SR UUID, jednostavno kliknite na njegovo ime u Xen Centru i idite na karticu "General".
Da biste kopirali UUID, jednostavno ga kliknite desnom tipkom i odaberite "kopiraj".
S ovim informacijama pri ruci spremni ste urediti datoteku s postavkama.
Konfigurirajte datoteku Postavke.
Projekt Xen-pocalypse dolazi u paketu s predloškom za "postavke". Ovaj bi predložak trebao biti uređen kako bi odražavao vaše postavljanje i proslijeđen kao prvi argument skripti. Datoteka s postavkama označava sljedeće:
Metoda za dobivanje sigurnosnih kopija VM - Zadana metoda je TAG. To možete promijeniti u FILE, ali to se ne preporučuje.
Lokacija rezervnog odredišta - ako ste slijedili vodič do ove točke, morate zamijeniti% UUID% sa SR-ovima kao što je dobiveno od gore navedenog.
Mjesto SendEmail - Ako ste se odlučili za omogućavanje e-pošte, morate unijeti gdje ste izdvojili izvršnu datoteku za perl ovdje.
Pojedinosti e-pošte - Opet, ako ste omogućili e-poštu, morate definirati pojedinosti kao što su: Za, Od, Naziv poslužitelja / IP & itd..
Kompresija - To je prema zadanim postavkama postavljeno na "No" (Ne), jer će, dok to omogućuje, proizvesti manju datoteku sigurnosne kopije, ona će također uzrokovati da se postupak sigurnosnog kopiranja pokrene za znatno duže vrijeme.
Provjerite slobodan prostor na odredištu - skripta će provjeriti da izrada sigurnosne kopije VM-a neće uzrokovati pad slobodnog prostora sigurnosne kopije ispod 10 GB. To je učinjeno kako bi se osiguralo da se većina VM-ova sigurnosno kopira umjesto samo jednog vrlo velikog virtualnog računala. Izračun se obavlja pomoću ukupnog bruto diska svih HD-ova povezanih s VM-om.
otklanjanje grešaka - Zadano je isključivanje ispravljanja pogrešaka s vrijednošću "0" (nula). Ovo ne bi trebalo uključivati, ali ako to učinite, u segmentu za otklanjanje poteškoća bit će zabilježeno više informacija.
Izvršenje / zakazivanje
U svom najjednostavnijem obliku, poziv na Xen-pocalypse bi izgledao ovako:
./Xen-backup.sh settings.cfg tjedno-pet
Gdje se u gornjem slučaju nalazimo unutar direktorija u kojem se nalazi skripta i datoteka s postavkama. "Oznaka" koju će skripta tražiti je "tjedno pet".
Kao što je gore navedeno, koristit ćemo Cron za planiranje izvršenja. Prije nego uđemo u konfiguraciju, to jest Preporučuje se da konfigurirate već instalirani SSMTP paket na vašem Xen poslužitelju. Iako je to neobavezan korak, na taj ćete način dobiti sakupljač povratnog ispiranja. Imati takvog "sakupljača povratnog ispiranja" može vas upozoriti na stvari koje skripta ne može.
Unesite u cron više uređivanja izdavanjem:
crontab-e
Ako ste slijedili gore navedene upute i želite dodati planirano sigurnosno kopiranje za petak u 18:01 (18:01), unesite niže:
01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg tjedno-pet
Gore navedeno je ispravno uz pretpostavku da su vaša skripta i datoteka s postavkama pod "/ root / Xen-pocalypse-master /".
Rješavanje problema
Dok sam uložio mnogo truda u izradu scenarija kao jednostavnog za korištenje i što je moguće sigurnije, "svijet je veći laboratorij". Dolje navedene informacije mogu vam pomoći u utvrđivanju izvora vaših problema.
Napredak
Možda ćete htjeti upotrijebiti ovaj liner da biste brzo “gledali” sve zadatke koji su u tijeku, da biste vidjeli jesu li oni uopće napredovali ili su zapravo zapeli.
while [-e / dev / null]; učiniti za VM u "$ (xe popis zadataka | grep uuid | awk 'print $ 5')"; do xe task-param-get param-name = napredak uuid = $ VM, spavanje 1; učinio; učinio
Da biste prestali gledati, upotrijebite tipke Ctrl + C da biste prekinuli "petlja dok radite".
sječa drveta
Sve "logiranje" prikuplja Xen domaćin koji izvodi skriptu u syslog mehanizmu. Ovo se, naravno, može pogledati na sljedeći način:
manje + F / var / log / messages
Tražite ključnu riječ "Xen-pocalypse".
Napomena: Citrix je postavio dva (2) dnevna pravila zadržavanja za syslog svojih poslužitelja. Možda ćete to htjeti imati na umu za postmorteme.
otklanjanje grešaka
Kao što je navedeno u segmentu datoteka s postavkama, postoji smjernica za omogućavanje otklanjanja pogrešaka. Omogućavanje otklanjanja pogrešaka uzrokovat će da skripta ispisuje opširno prijavljivanje na konzolu i kastrira je od slanja e-pošte i stvarno izvršava izvoz, osim ako su postavljene i relevantne zastavice. Moguće zastavice zabilježene su u predlošku datoteke s postavkama i omogućuju vam da definirate što želite debugirati.
Nadam se da vam nije bilo potrebe za uklanjanjem pogrešaka i da ste plodovi mog rada :)
Potisni, čovječe, uskoro ćeš postati glavni decepticon ...