A Citrix Xen VM-ek ingyenes mentése a Xen-pocalypse (Bash) szolgáltatással
Szükséged volt valaha a Citrix Xen virtuális gépek (VM-ek) biztonsági mentésére, de nem akartad megszakítani a bankot? A HTG-nek csak a bash szkriptje van a Xen-pocalypse-vel.
Kép: h.koppdelaney, Stuck in Custom és Hotfortech.
A Citrix Xen egyik szép dolog az, hogy számos jellemzője ingyenes díjat. Ha azt szeretné, hogy az „Automatizált VM védelem és helyreállítás” funkciót szeretné használni, meg kell fizetnie az „Advance” licencet. Még akkor is csak a lemezszintű biztonsági mentésekért fizet, amelyek nem elegendőek sokféle munkaterheléshez, mint az Active Directory, adatbázisok stb. Ahhoz, hogy ezt leküzdhessük, érdemes lehet az „Élő memória pillanatképe és visszaállítása”, ami megmentheti az egészet gépállapot, beleértve a RAM tartalmát is. Ez a funkció azonban a „Enterprise” és a „Platinum” kiadások része, amelyek még drágábbak. Nem az, hogy a HTG-nél elvetjük az igazi biztonsági szoftver értékét, de ha szűkös költségvetést használsz, és nem gondolod, hogy a biztonsági mentés műveletei miatt nincs idő, akkor a Xen-pocalypse-t tökéletesen ésszerű megoldásnak tekintheted a költségvetési kötelezettségvállalás megkezdése előtt.
Áttekintés
A „használati eset”: Van egy pár VM-je, amelyek biztonsági mentést igényelnek. A „VM kikapcsolása és fájlként történő exportálása” a „Xen Center” -ből a jobb klikkek használatával rendben van, de azt szeretné, hogy ez a folyamat automatikusan és ütemezés szerint történjen. A Bash parancsfájl az „XE” parancsot használja feladatai ellátásához. Az XE a Xen parancssori interfész (CLI), amely automatikusan megfelel a „jobb kattintások” kiadásának a „Xen Centerben”. Meghívjuk a Cron parancsfájlját, amely a „ütemezési” részt fogja biztosítani. A legegyszerűbb formában a biztonsági mentés:
- Kapcsolja ki a cél VM-et.
- Exportálja a VM-et fájlként a mentési helyre.
- Ha a VM be van kapcsolva, a biztonsági mentés megkezdése előtt újra bekapcsol.
Lehetővé teszi a repedés :)
Szerezd meg a szkriptet
A Xen-pocalypse a gitubból szabadon nyerhető a szokásos git módszerekkel. Ezzel azt mondta, hogy ha még nem ismered a gitot, akkor megragadhatod a zip fájlt ezen a linken. Mivel a parancsfájlnak egy Xen kiszolgálón kell futtatnia, ott kell kitöltenie, hogy megőrizze a végrehajtási engedélyeket.
wget https://github.com/aviadra/Xen-pocalypse/archive/master.zip
szüntesse meg a mesteret
Bár a fentiek működnek, javasoljuk, hogy használja a GIT-módszert, hogy a jövőbeni frissítések előnyeit élvezhesse.
SendEmail beszerzése (opcionális)
A múltban írtunk a SendEmail perl programról, így itt nem szükséges megismételni. Elég azt mondani, hogy a Linuxon ugyanúgy működik, mint a Windows rendszeren.
Bár az e-mail engedélyezése opcionális, nagyon ajánlott, mert akkor a parancsfájl képes lesz:
- Tájékoztassa Önt, amikor elindult és befejezte a futást.
- Figyelmeztesse Önt az esetleges hibákról, amelyeket képes volt észlelni és kezelni.
- Tájékoztatás a biztonsági okok kizárásáról az űrkutatás miatt. (Ez a viselkedés letiltható, ha nem kívánatos)
Töltse le azt a Xen szerverre és a kivonatra.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Jegyezze fel azt a helyet, ahová kivette. Szükséged lesz rá a beállításfájlhoz.
Címkék meghatározása
A Citrix Xen lehetővé teszi a „Custom Fields” beállítását a szűrési képességek számára. Létrehozjuk a mezőket, majd feltöltjük őket a Xen-pocalypse által használt információkkal. A Xen-pocalypse felismeri a 3 vezérlő TAG-ot, amelyek a címke címét jelölik a biztonsági mentéshez és a szülő a gyermek kapcsolatokhoz. Ha nem kívánja használni a fájlbeviteli módot, akkor legalább a biztonsági mentés címke mezőjét kell létrehoznia.
Ehhez nyissa meg a szerver vagy egy VM tulajdonságait. A navigációs ablaktáblában válassza az „Egyéni mezők” lehetőséget.
Ha ez az első alkalom, hogy meghatározza a kapcsolatot (mint a fenti példában), akkor nem lesz mezők az adatok beviteléhez, ezért létre kell hoznia azokat. Ehhez kattintson az „Egyéni mezők szerkesztése” gombra a megjelenő párbeszédpanelen, kattintson a „Hozzáadás…” gombra
Hozzon létre három (3) „szöveg” típusú mezőt. Az egyiket „BackupTAG” -nak, a többieknek „Parent” -nek és “Children” -nek nevezzük..
Jegyzet: Az egyéni mezők nevei "kemény kódolásúak" a szkriptben, ezért nem szabad eltérnie a fenti helyesírástól, hacsak nem módosítja a megfelelő kódot is.
Miután az összes mezőt létrehozta, látnia kell:
Zárja be az ablakot. Most már a "BackupTAG", a "Szülő" és a "Gyermek" mezők kitöltése szükséges, mint az alábbi képen.
Most mindössze annyit kell tennie, hogy kijelölje, hogy mely VM-ek tartoznak a „BackupTAG” -hoz.
Például abban a társaságban, ahol a forgatókönyvet tenyésztették, VM-eket, amelyeket hetente csütörtökön és pénteken mentettünk, az Atlassian termék VM-ekre és néhányra, amelyeket csak havonta kellett menteni. Így nézett ki áttekintésünk:
Ahol például a „heti-fri” volt a „BackupTAG” „Egyéni mező” szöveg. Igen? :)
Szülők és gyermekek (nem kötelező)
Ennek a forgatókönyvnek az igazi szépsége az, hogy támogatja a „szülő” -et a „gyermek” kapcsolatokban. Ez azt jelenti, hogy lehet beállítani a „gyermek” VM-ek listáját, amelyek ki vannak kapcsolva, és a szülő előtt biztonsági másolatot készítenek, és hogy ezeket a gyerekeket csak akkor kapcsolják vissza, ha a szülő befejezte a biztonsági másolatot, és visszafordult tovább. Ez akkor hasznos, ha a szülő VM kikapcsolása miatt a gyermek szolgáltatása nem érhető el. Egy ilyen dolog azt jelentené, hogy a gyermek VM szolgáltatása nem lesz kétszer elérhető, egyszer a gyermek mentési folyamatához, és egyszer a szülő számára. E kapcsolat létrehozása legyőzi ezt a problémát.
Például az összes Atlassian VM-en egyetlen DataBase (DB) VM-et használtunk, amely szintén mentésre került. Így megjegyezve, hogy a DB VM a többi VM „szülője”, megfelelő leállítási sorrend -> biztonsági mentés -> indítás lehetséges..
Ennek az írásnak az időpontjában ez a funkció néhány kivételt tartalmaz:
- Azok a VM-ek nevei, amelyeknek ilyen kapcsolatuk van, nem tartalmazhatnak szóközt. El kell távolítania a szóközt a VM nevéről, mert ezek a helyek határolódnak, mint az alábbi példában.
- Csak egy szülő lehet. Több mint egy kijelölése nem is tervezett, nem is beszélve a tesztelésről.
A kapcsolat létrehozásához menj a VM tulajdonságaiba. Ha ez egy „szülő”, írd ki, ki a gyermekei, és ha ez egy „gyermek”, írd meg, hogy ki a szülője. Például:
Megjegyzés: Ha a szülőt nem jelöljük meg a gyermeknél, a gyermek elindulhat, mielőtt a szülő készen áll, és ez kétszer is előidézhető..
A FILE módszer (opcionális)
Történelmi okokból a Xen-pocalypse is támogatja, hogy a VM-ek listáját szövegfájlként készítsék el. Míg a „kód” még mindig ott van, a funkcionalitás súlyosan rosszabb a TAG-módszerhez, ezért nem ajánlott. Ha azt szeretné, hogy valamilyen oknál fogva használja a listamódszert, az alábbi korlátozások érvényesek:
- A VM-ek neve nem tartalmazhat szóközt vagy speciális karaktert.
- Soronként csak egy VM név lehet.
- Az üres sorok nem engedélyezettek.
A lista létrehozásához másolja a VM nevét a Xen központból, vagy hajtson végre egy Xen állomáson:
xe vm-list | grep névcímke | awk
'print $ 4' | fajta
Másolja a fenti listát egy normál szövegfájlba.
A mentési hely
Miközben a Citrix Xen-ben véletlenszerűen döntött, megállapítottam, hogy a tárolóraktárak (SR) a „/ var / run / sr-mount /% UUID%” alatt használhatók, ahol az UUID az SR egyedi azonosítója, amely lehet: a GUI-tól kapott adatokat.
Ez azt jelenti, hogy a szokásos „Következő -> Következő -> Befejezés” varázsló segítségével hozzuk létre a mountot a kívánt mentési helyhez, majd a parancsfájlt használjuk az elérési útvonalon (ahogyan azt a parancssorból történő beszereléshez rendelték), de ezzel így ez az útmutató hatályán kívül esik.
Új „mount” létrehozásához kattintson jobb gombbal a kiszolgáló nevére, és válassza az Új SR lehetőséget.
Ebben a példában a Xen-t egy Windows megosztásra mutatjuk, így válassza a „Windows fájlmegosztás (CIFS)” lehetőséget:
Töltse ki a Következő -> Következő -> Befejezés gombot.
Szerezd meg az SR UUID-jét
Az SR UUID megszerzéséhez egyszerűen kattintson a nevére a Xen Központban, és lépjen az „Általános” fülre.
Az UUID másolásához egyszerűen kattintson jobb gombbal egy „másolat”.
Ezzel az információval készen áll a beállításfájl szerkesztésére.
Állítsa be a Beállítások fájlt.
A Xen-pocalypse projekt egy „beállítási” fájl sablont tartalmaz. Ezt a sablont úgy kell szerkeszteni, hogy tükrözze a beállítást, és a parancsfájl első argumentumaként adja át. A beállításfájl a következőket jelöli:
A módszer a biztonsági mentéshez szükséges VM-ek megszerzéséhez - Az alapértelmezett módszer a TAG. Ezt a FÁJL-ra módosíthatja, de ez nem ajánlott.
A hely a biztonsági mentés célpontja - Ha követte az útmutatót erre a pontra, akkor csak a% UUID% -ot kell kicserélnie az SR-kkel, amint azt a fenti.
A SendEmail helye - Ha úgy döntött, hogy engedélyezi az e-mailt, akkor be kell írnia, hogy hol húzta ki a perl futtatható fájlt.
E-mail adatok - Ha újra engedélyezte az e-mailt, meg kell adnia a következő adatokat: To, From, Servername / IP & etc '.
összenyomás - Ez alapértelmezés szerint „Nem”, mert miközben lehetővé teszi, hogy egy kisebb biztonsági mentési fájlt készítsen, a biztonsági mentési eljárás is hosszabb ideig fog futni.
Ellenőrizze a szabad helyet a célállomáson - Ez a parancsfájl ellenőrzi, hogy a VM biztonsági mentése nem eredményezi-e a mentési hely szabad helyét 10GB alá. Ezt azért teszik, hogy biztosítsuk, hogy a legtöbb VM-t csak egy nagyon nagy VM helyett készítsük el. A számítás a VM-hez kapcsolódó összes HD-t tartalmazó bruttó lemezméret segítségével történik.
hibakeresés - Az alapértelmezés szerint a hibakeresés ki van kapcsolva a „0” (nulla) értékkel. Ezt nem kell bekapcsolnia, de ha ezt megteszi, a hibaelhárítási szegmensben további információ található.
Kivitelezés / Ütemezés
A legegyszerűbb formában a Xen-pocalypse meghívása:
./Xen-backup.sh settings.cfg heti-fri
Ahol a fenti esetben a könyvtárban van, amely a szkriptet és a beállítási fájlt tartalmazza. A „Címke”, amit a szkript keres, a „heti-fri”.
Amint fentebb megjegyeztük, a Cron-t fogjuk használni a végrehajtás ütemezésére. Mielőtt bemegyünk a konfigurációba, ez az Nagyon ajánlott konfigurálja a már telepített SSMTP csomagot a Xen kiszolgálón. Míg ez egy opcionális lépés, akkor ez egy hátsó mosó kollektorot biztosít. Az ilyen „visszamosó gyűjtő” figyelmeztethet arra, hogy a szkript nem képes.
Adja meg a cron szerkesztését, ha kiadja:
crontab-e
Ha követte a fenti utasításokat, és egy ütemezett biztonsági mentést szeretne hozzáadni péntekre 18:01 (6:01 PM), írja be az alábbiakat:
01 18 * * fri /root/Xen-pocalypse-master/Xen_Backup.sh /root/Xen-pocalypse-master/settings.cfg heti-fri
A fenti helyes, feltételezve, hogy a szkript és a beállításfájl mind a „/ root / Xen-pocalypse-master /” alatt található.
Hibaelhárítás
Miközben sok erőfeszítést tettem, hogy a szkriptet a lehető legegyszerűbben használhassam, és a lehető legteljesebb legyen, „A világ nagyobb labor”. Az alábbi információ segíthet abban, hogy megbizonyosodjon arról, hogy mi a forrása a bajodnak.
Haladás
Lehet, hogy ezt az egy vonalat használva gyorsan megnézheti az összes folyamatban lévő feladatot, hogy meggyőződjön-e arról, hogy valóban haladnak-e, vagy ha valóban megakadtak.
míg a [-e / dev / null]; tegyük a VM-et a "$ (xe task-list | grep uuid | awk 'print $ 5')" pontban); do xe task-param-get param-name = haladás uuid = $ VM, alvás 1; Kész; Kész
A figyelés leállításához használja a Ctrl + C billentyűt, hogy fékezze a „hurok”.
Fakitermelés
Az összes „naplózást” a Xen host gyűjti össze, amely a szkriptet a syslog mechanizmusban futtatja. Ez természetesen megtekinthető:
kevesebb + F / var / log / üzenetek
A „Xen-pocalypse” kulcsszót keresed.
Megjegyzés: A Citrix két (2) napos megőrzési politikát állított be a kiszolgálók syslogjára. Lehet, hogy ezt a posztemortemeket szem előtt tartja.
hibakeresés
Amint azt a beállításfájl szegmensben megjegyezzük, van egy irányelv a hibakeresés engedélyezésére. A hibakeresés engedélyezése a szkripteknek a konzolra történő bonyolult naplózását eredményezi, és az e-mailek küldéséből és az exportálás tényleges végrehajtásából kastrálja azt, kivéve, ha a megfelelő zászlók is be vannak állítva. A lehetséges jelzők a beállításfájl sablonjában jelennek meg, és lehetővé teszik, hogy részletesen meghatározza, hogy mit szeretne hibakeresni.
Remélem, hogy nem kell semmilyen hibakeresés, és a munkám gyümölcsét nyeri meg :)
Thrust, az én emberem, az első számú decepticon leszel ...