If-Koubou

Kā pārvērst Citrix Xen VMs par brīvu ar Xen-pocalypse (Bash)

Kā pārvērst Citrix Xen VMs par brīvu ar Xen-pocalypse (Bash) (Kā)

Vai jums kādreiz bija nepieciešams, lai izveidotu rezerves jūsu Citrix Xen Virtual Machines (VM), bet nevēlējās pārtraukt bankas darbību? HTG ir tikai bash skripts jums ar Xen-pocalypse.

Attēls ar h.koppdelaney, iestrēdzis Custom un Hotfortech.

Viena no lietderīgām lietām Citrix Xen ir tā, ka daudzas tās funkcijas ir bez maksas par maksu. Ar to sacīja, ja vēlaties izmantot funkciju "Automatizēta VM aizsardzība un atkopšana", jums vajadzētu sākt maksāt par "Avansa" licenci. Pat tad, jūs maksājat tikai par diska līmeņa dublējumiem, kas nav pietiekami daudzu veidu darba slodzēm, piemēram, Active Directory, datu bāzēm utt. Lai to pārvarētu, iespējams, vēlēsieties "Live memory snapshot and revert", kas var ietaupīt visu mašīnas stāvoklis, ieskaitot RAM saturu. Tomēr šī funkcija ir daļa no "Enterprise" un "Platinum" izdevumiem, kas ir pat dārgāki. Tas nenozīmē, ka mēs, izmantojot HTG, noraida patiesas rezerves programmatūras vērtību, taču, ja jums ir ierobežots budžets, un, neraugoties uz dublēšanas operācijas dīkstāves gadījumiem, iespējams, ka Xen-pocalypse ir pilnīgi saprātīgs risinājums pirms jūs veicat budžeta saistības.

Pārskats

"Izmantošanas gadījums": jums ir pāris VM, kuriem ir nepieciešama rezerves kopija. Labi darbojas "VM izslēgšana un eksportēšana kā fails" no "Xen Center", izmantojot labos klikšķus, bet jūs vēlaties, lai šis process notiktu automātiski un pēc grafika. Šis Bash skripts izmanto komandu "XE", lai veiktu savus pienākumus. XE ir Xen komandrindas saskarne (CLI), kas ir automātiska ekvivalents "labo klikšķu" izsniegšanai "Xen Center". Mēs aicinām Cronu, kurš piegādās "plānošanas" daļu. Savā vienkāršākajā veidā rezerves plūsma ir:

  • Izslēdziet mērķa VM.
  • Eksportējiet VM kā failu rezerves vietai.
  • Ja VM ir ieslēgts, pirms dublējuma sāksies, tas tiks atkal ieslēgts.

Ļaujiet sašķelties :)

Iegūt skriptu

Xen-pocalipse var brīvi iegūt no github, izmantojot regulāras git metodes. Ar to sakot, ja jūs vēl neesat pieredzējis git, jūs varat paņemt zip failu ar šo saiti. Tā kā skriptam jārīkojas vienā no jūsu Xen serveriem, to vajadzētu iegūt, lai saglabātu izpildes atļaujas.

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

Lai gan iepriekš minētie darbi darbosies, ieteicams izmantot GIT metodi, lai jūs varētu gūt labumu no turpmākiem atjauninājumiem.

Saņemt e-pastu (pēc izvēles)

Iepriekš esam rakstījuši par SendEmail perl programmu, tādēļ šeit nav jāatkārto. Pietiks tikai teikt, tā darbojas tāpat kā Linux, tāpat kā Windows.

Lai gan e-pasta iespējošana nav obligāta, tas ir ļoti ieteicams, jo tad skripts varēs:

  • Informējiet, kad tas sākts un pabeigts.
  • Brīdinājums par visām kļūdām, kuras to varēja noteikt un apstrādāt.
  • Par kosmosa jautājumiem saistīto rezervāciju atteikšanās jāinformē. (Šo darbību var atspējot, ja tas nav nepieciešams)

Lejupielādējiet to Xen serverī un izrakstiet.

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

Ievērojiet atrašanās vietu, no kuras to ieguvāt. Jums tas būs nepieciešams iestatījumu failam.

Tags definēšana

Citrix Xen ļauj jums konfigurēt "pielāgotās laukus", lai filtrētu iespējas. Mēs izveidosim laukus un pēc tam aizpildīsim to ar informāciju, ko izmanto Xen-pocalypse. Xen-pocalypse atpazīst 3 kontroles TAG, kas apzīmē tagu nosaukumu dublējumkopijai un vecāku saistību ar bērniem. Ja jūs nevēlaties izmantot failu ievades metodi, MUST izveidot vismaz rezerves taga ID nosaukumu lauku.

Lai to izdarītu, atveriet servera vai pat VM īpašības. Navigācijas rūtī atlasiet "Pielāgotie lauki".

Ja šī ir pirmā reize, kad jūs definējat attiecības (kā iepriekš minētajā piemērā), jums nebūs lauku, kurā ievadīt datus, tādēļ jums ir nepieciešams tos izveidot. Lai to izdarītu, noklikšķiniet uz "Rediģēt pielāgotos laukus" dialoglodziņā, kas uznirst, noklikšķiniet uz "Pievienot ..."

Izveidojiet trīs (3) teksta tipa laukus. Viens tiks saukts par "BackupTAG" un citiem "Vecākiem" un "Bērniem".

Piezīme: Pielāgoto lauku nosaukumi skriptā ir bijuši "stingri kodēti", tādēļ jums NEIZMANTOJIET iepriekš minēto pareizrakstību, ja vien jūs arī nemainīsit atbilstošo kodu.

Kad visi lauki ir izveidoti, jums vajadzētu redzēt:

Aizveriet logu. Tagad jums vajadzētu aizpildīt laukus "BackupTAG", "Vecāki" un "Bērni", kā parādīts attēlā.

Tagad viss, kas jums jādara, ir norādīt, kuri VM pieder kādam "BackupTAG".
Piemēram, uzņēmumā, kurā skripts tika audzēts, mums bija VM, kas tika dublēti katru nedēļu ceturtdien un piektdien, mūsu Atlassian produkta VM grafiks, un daži, kas bija jāpapildina tikai reizi mēnesī. Tātad mūsu pārskats izskatījās šādi:

Ja, piemēram, "weekly-fri" bija teksts, kuru esam ievadījuši "BackupTAG" "Custom Field". Neath? :)

Vecāki un bērni (pēc izvēles)

Šī skripta īsts skaistums ir tas, ka tā atbalsta "vecāku" attiecības ar "bērniem". Tas nozīmē, ka ir iespējams iestatīt "bērna" VM sarakstu, kas būtu izslēgts un dublēts pirms vecāka, un ka šie bērni tiks atgriezti tikai tad, kad vecāks ir pabeidzis dublējumu un ir pagriezts atpakaļ uzTas ir noderīgi gadījumos, kad izslēdzot vecāku VM, bērna pakalpojums kļūs nepieejams. Šāda lieta nozīmētu, ka pakalpojums bērnam VM nebūtu pieejams divreiz, vienreiz par bērna dublēšanas procesu un vienu reizi par vecāku. Radīt šīs attiecības pārvar šo problēmu.

Piemēram, visi mūsu Atlassian VM izmantoja vienu datu bāzu (DB) VM, kas tika iestatīts arī dublēt. Tātad, atzīmējot, ka DB VM ir "vecāks" pārējiem VM, var nodrošināt pienācīgu izslēgšanas -> backup -> startēšanas kārtību.

Šī raksta laikā šai funkcijai ir daži brīdinājumi:

  1. VM nosaukumi, kam jābūt šādām attiecībām, nedrīkst saturēt atstarpes. Jums būs jānoņem atstarpes no VM nosaukumiem, jo ​​tiem būs atstarpes vietas, kā tas parādīts zemāk redzamajā piemērā.
  2. Var būt tikai viens no vecākiem. Apzīmējot vairāk nekā vienu, nav pat plānots, nemaz nerunājot par pārbaudīto.

Lai izveidotu šīs attiecības, dodieties uz VM īpašībām. Ja tas ir "vecāks", uzrakstiet, kas ir viņu bērni, un, ja tas ir "bērns", uzrakstiet, kurš ir viņa vecāks. Piemēram:

Piezīme. Bērna vecāku nenoteikšana bērnam var izraisīt bērna palaišanu, pirms vecāks ir gatavs, un tas var izraisīt tā dublēšanu.

FILE metode (pēc izvēles)

Vēsturisku iemeslu dēļ Xen-pocalypse arī atbalsta to, ka VM saraksts tiek dublēts kā teksta fails. Kamēr "kods" vēl atrodas tur, funkcionalitāte ir ievērojami mazāka par TAG metožu, tāpēc tā nav ieteicama. Ar to runājot, ja vēlaties kādu iemeslu dēļ izmantot saraksta metodi, tiek piemēroti šādi ierobežojumi:

  1. VM nosaukumi nedrīkst saturēt atstarpes vai īpašas rakstzīmes.
  2. Katrā rindiņā var būt tikai viens VM nosaukums.
  3. Tukšās līnijas nav atļautas.

Lai izveidotu sarakstu, vai nu kopējiet VM nosaukumu no Xen centra vai izpildiet Xen saimniekdatorā:

xe vm-list | grep name-label | awk 'print $ 4' | kārtot

Kopējiet iepriekš minēto sarakstu parastā teksta failā.

Rezerves atrašanās vieta

Lai gan Citrix Xen nejauši izkliedz, es atklāju, ka uzglabāšanas repozitoriji (SR) ir pieejami lietošanai ar / var / run / sr-mount /% UUID%, kur UUID ir SR unikālais identifikators, ko var iegūts no GUI.

Tas nozīmē, ka mēs varam izmantot parasto vedni "Nākamais -> Nākamais -> Pabeigt", lai izveidotu vajadzīgo dublējuma atrašanās vietu un pēc tam skripts izmantotu šo ceļu (kā tas paredzēts, lai izjauktu ar montāžu no komandrindas), bet darot tāpēc šī rokasgrāmata neattiecas.

Lai izveidotu jaunu "mount", ar peles labo pogu noklikšķiniet uz servera nosaukuma un atlasiet New SR.

Šajā piemērā mēs norādīsim Xen uz Windows daļu, tādēļ izvēlieties "Windows failu koplietošana (CIFS)":

Pabeigt Next -> Next -> Finish.

Iegūt SR UUID

Lai iegūtu SR UUID, vienkārši noklikšķiniet uz tā nosaukuma Xen centrā un dodieties uz cilni Vispārīgi.

Lai kopētu UUID, vienkārši ar peles labo pogu noklikšķiniet uz tā, izvēlieties "kopēt".

Izmantojot šo informāciju, jūs esat gatavs rediģēt iestatījumu failu.

Konfigurējiet iestatījumu failu.

Xen-pocalypse projekts tiek komplektēts ar "iestatījumu" faila veidni. Šī veidne ir jārediģē, lai tas atspoguļotu jūsu iestatījumus un nodots kā pirmais skripta arguments. Iestatījumu fails norāda šādu informāciju:

Metode lai iegūtu dublējamus VM - noklusējuma metode ir TAG. Jūs varat mainīt šo uz FILE, bet tas nav ieteicams.

Vieta no rezerves galamērķa - ja jūs esat sekojuši šajā punktā sniegtajam ceļvedim, jums ir jāmaina% UUID% tikai ar SR, jo tas tika iegūts no augšas.

Sūtīt e-pasta atrašanās vieta - Ja esat izvēlējies aktivizēt e-pastu, jums ir jāievada vieta, kur jūs esat ieguvis izpildāmo perl failu šeit.

E-pasta informācija -Atkal, ja esat iespējojis e-pastu, jums jānosaka tādas detaļas kā: uz, no, servera nosaukums / IP un tt ".

Kompresija - Pēc noklusējuma tas ir iestatīts uz "Nē", jo, iespējojot to, tiks izveidots mazāks dublējumkopijas fails, tāpēc dublēšanas process tiks palaists daudz ilgākā laika periodā.

Pārbaudiet brīvu vietu galamērķī - tā būs skripta pārbaude, vai, padarot VM dublējumu, dublējuma atrašanās vietas brīvā telpa nebūs mazāka par 10 GB. Tas tiek darīts, lai nodrošinātu, ka visvairāk VM tiek dublēti tikai viena ļoti liela VM vietā. Aprēķins tiek veikts, izmantojot kopējo diska lielumu kopā ar visiem VM, kas saistīti ar VM.

Atkļūdošana - Pēc noklusējuma ir jābūt izslēgtai atkļūdošanai ar vērtību "0" (nulle). Jums nevajadzētu to ieslēgt, bet, ja jūs to darāt, problēmu novēršanas segmentā tiek atzīmēta plašāka informācija.

Izpilde / plānošana

Vienkāršākā veidā Xen-pocalypse izsaukšana izskatās šādi:

./Xen-backup.sh settings.cfg weekly-fri

Ja iepriekš minētajā gadījumā mēs atrodamies direktorijā, kurā ir skripts un iestatījumu fails. Skats, kuru meklēs skripts, ir "iknedēļas fri".

Kā minēts iepriekš, mēs izmantosim Cron, lai ieplānotu izpildi. Pirms mēs nonākam konfigurācijā, tā ir augsti ieteicams ka jūs Xen serverī jau konfigurējat jau instalēto SSMTP pakotni. Lai gan tas ir neobligāts solis, to darot, jūs saņemsiet atpakaļgaitas kolektoru. Ar šādu "atpakaļgaitas kolektoru" var brīdināt jūs par lietām, ko skripts nespēj.

Ievadiet crona rediģēšanu, izdodot:

crontab-e

Ja esat izpildījis iepriekš minētos norādījumus un vēlaties pievienot plānoto dublējumkopiju piektdienai plkst. 18:01 (plkst. 18:01), ievadiet tālāk sniegto informāciju.

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

Iepriekš minētie ir pareizi, pieņemot, ka jūsu skripts un iestatījumu fails atrodas zem "/ root / Xen-pocalypse-master /".

Problēmu novēršana

Lai gan es esmu pielikusi daudz pūļu, lai padarītu skriptu tik viegli lietojamu un pēc iespējas vienkāršāku, "Pasaule ir lielāka laboratorija". Tālāk sniegtā informācija var palīdzēt jums noskaidrot, kas ir jūsu nepatikšanas avots.

Progress

Iespējams, vēlēsities izmantot šo vienu līnijpārvadātāju, lai ātri "skatītos" visus notiekošos uzdevumus, lai redzētu, vai tie faktiski vispār attīstās vai arī faktiski ir iestrēdzis.

kamēr [-e / dev / null]; veiciet VM sadaļā "$ (xe uzdevumu saraksts | grep uuid | awk" (drukāt $ 5) ') "; do xe uzdevums-param-get param-name = progress uuid = $ VM; gulēt 1; pabeigts; pabeigts

Lai pārtrauktu skatoties, izmantojiet Ctrl + C, lai bremzētu "cikla laikā".

Mežizstrāde

Visu "mežizstrādi" savāc Xen uzņēmēja, kas darbojas skriptā syslog mehānismā. To, protams, var apskatīt ar:

mazāk + F / var / log / ziņas

Jūs meklējat atslēgas vārdu "Xen-pocalypse".

Piezīme: Citrix ir iestatījusi divu (2) dienu saglabāšanas politiku serveru syslog. Iespējams, vēlēsities to paturēt prātā postmortems.

Atkļūdošana

Kā norādīts iestatījumu failu segmentā, ir pieejama direktīva, kas ļauj veikt atkļūdošanu. Iespējojot atkļūdošanu, skripts izraisīs verbālo reģistrēšanos konsolei un kastrēs to no e-pasta ziņojumu sūtīšanas un faktiski veic eksportu, ja vien netiks iestatīti arī attiecīgie karodziņi. Iespējamie karodziņi tiek atzīmēti iestatījumu faila veidnē, un tie ļauj detalizēti noteikt, ko vēlaties atkļūdošanai.

Tā ir mana cerība, ka jums nav nepieciešama nekāda atkļūdošana, un jūs izmantojat manas darba augļus :)

Vilciens, mans vīrs, jūs gatavojaties kļūt par vienu no depektoniem ...