13Jul
Hebt u ooit de behoefte gehad om uw Citrix-Xen VM's in bulk te herstellen voor een noodhersteloplossing( DR) of gewoon om te testen of uw back-ups werken? HTG legt uit hoe je Xen-Phoenix, een gratis bash-script, kunt gebruiken voor VM-restauratie.
Photo Credit: Ryan McCurdy via Compfight cc
Zoals we al hebben vermeld in "How To Backup Citrix Xen VM's gratis met Xen-pocalypse", een van de leuke dingen in Citrix Xen is dat veel van de functies gratis van zijnin rekening brengen. Met dat gezegd, als je de "Geautomatiseerde VM-bescherming en -herstel" -functie wilt, zou je moeten beginnen te betalen voor de "Advance" -licentie. Nogmaals, het is niet dat wij bij HTG de waarde van een echte back-upoplossing afwijzen, maar als u een krap budget heeft, hebt u de VM-afbeeldingen al uit de hypervisor gehaald en heeft u een manier nodig om uw VM te automatiseren. "test restore "/" DR refresh "procedures, zou u Xen-Phoenix als een perfect redelijke oplossing kunnen vinden voordat u de budgettaire verplichting aangaat.
Overzicht
De "use case": u hebt een aantal VM's die moeten worden hersteld. Het importeren in "Xen Center" met behulp van de rechtermuisknop klikt goed, maar u wilt dat dit proces automatisch en volgens schema verloopt. Dit Bash-script gebruikt het "XE" -commando om zijn taken uit te voeren. XE is de Xen-opdrachtregelinterface( CLI), automatisch equivalent voor het afgeven van de "rechtermuisknop" in het "Xen Center".We zullen het script van Cron bellen dat het deel "Planning" zal leveren. In de eenvoudigste vorm is de herstelstroom:
- verwijderen alle * voorheen bestaande VM's op de server
- VM's importeren uit bestanden op de back-uplocatie.
- Controleer of alle VM's kunnen worden gebruikt door ze één voor één te activeren en te zoeken naar de hartslag van de gastgereedschappen.
- Zet VM's uit wanneer een hartslag is ontdekt of een time-out is bereikt.
* Het verwijderen van alle VMs-gedrag kan volledig worden uitgeschakeld en ondersteunt uitzonderingen( zie hieronder).
Laten we kraken:)
Verkrijg het script
Xen-phoenix kan vrij worden verkregen uit github, met behulp van de reguliere git-methoden. Met dat gezegd, als je nog niet thuis bent in git, kun je het zipbestand met deze link pakken. Aangezien het script op een van uw Xen-servers moet worden uitgevoerd, moet u het hier uitpakken zodat de uitvoeringsrechten behouden blijven.
wget https: //github.com/aviadra/ Xen-phoenix /archive/ master.zip
unzip master
Hoewel het bovenstaande zou werken, wordt u geadviseerd om de GIT-methode te gebruiken, zodat u kunt profiteren van toekomstige updates.
De exportlocatie
We moeten configureren waar de VM-export vandaan komt.
Terwijl ik willekeurig rondsnuffelde in Citrix Xen, ontdekte ik dat de Storage Repositories( SR's) beschikbaar zijn voor gebruik onder "/var/run/ sr-mount /% UUID%" waarbij UUID de unieke identifier van de SR is, die kan worden verkregen via deGUI.
Dit betekent dat we de reguliere "Volgende - & gt;Volgende - & gt;Voltooi de "wizard" om de "mount" naar de gewenste back-uplocatie te maken en laat het script dat pad gebruiken( zoals bedoeld om te knoeien met de montage vanaf de opdrachtregel die buiten het bereik van deze handleiding valt).
Als u een nieuwe "koppeling" wilt maken, klikt u met de rechtermuisknop op de servernaam en selecteert u Nieuwe SR.
In dit voorbeeld wijzen we Xen naar een Windows-share, dus kies "Windows File Sharing( CIFS)":
Voltooi de volgende - & gt;Volgende - & gt;Af hebben.
Verkrijg de UUID van de SR
Om de UUID van een SR te verkrijgen, klikt u eenvoudigweg op de naam in het Xen Center en gaat u naar het tabblad "Algemeen".
Om de UUID te kopiëren, klikt u er gewoon met de rechtermuisknop op en kiest u "kopiëren".
Met deze informatie bij de hand bent u klaar om het instellingenbestand te bewerken.
Configureer het instellingenbestand
Het Xen-phoenix-project wordt gebundeld met een "instellingen" -bestandsjabloon. Deze sjabloon moet worden bewerkt om uw instellingen weer te geven en te worden doorgegeven als het eerste argument voor het script.
Het instellingenbestand geeft het volgende aan:
- De locatie van de bronuitvoer - Als u de handleiding tot dit punt hebt gevolgd, hoeft u alleen het% UUID% te vervangen door de SR's zoals deze van boven zijn verkregen.
- De locatie van SendEmail - Als u ervoor hebt gekozen om Email in te schakelen, moet u hier invoeren waar u het perl-bestand hebt geëxtraheerd.
- Verifier - Hiermee bepaalt u de verificatieprocedure na herstel. Dit is standaard ingeschakeld, omdat een succesvol "herstel van het bestandsniveau" niet noodzakelijk een functionele VM betekent.
- Server_prep - Dit bestuurt de voor het terugzetten van van alle VM's op de DR-server. Dit is standaard ingeschakeld omdat wordt aangenomen dat de DR-server hiervoor een dedicated server is. Als u een VM nodig hebt die op deze server wordt uitgevoerd om niet te worden verwijderd, configureert u deze om te worden uitgesloten. Als dit gedrag niet geschikt is voor uw situatie, schakelt u het gewoon volledig uit.
- E-mailgegevens - Nogmaals, als u e-mail hebt ingeschakeld, moet u details definiëren zoals: Naar, Van, Servernaam / IP &enz'.
- Debugging - De standaardinstelling is dat debugging is uitgeschakeld met de waarde "0"( nul).U hoeft dit niet aan te zetten, maar als u dat doet, wordt er meer informatie genoteerd in het segment voor probleemoplossing.
Uitvoering
Dit script neemt het instellingenbestand als zijn eerste argument en eventuele andere argumenten als "dubbele punthaken" om te zoeken naar( gescheiden door spaties).Chevrons zijn "strings", die reguliere expressies ondersteunen die ten minste een deel van de gewenste bestandsnaam van de VM-export vertegenwoordigen.
Dat wil zeggen dat in de eenvoudigste vorm een aanroeping van Xen-phoenix eruit zou zien als:
. /Xen-phoenix.sh settings.cfg DevTools
Waar in het bovenstaande geval bevinden we ons in de map die het script &het instellingenbestand en de "Chevron" waar het script naar op zoek is, is "DevTools".Hierdoor worden alle bestanden in de exportmap met de tekenreeks "DevTools" in hun naam geïmporteerd.
Een complexer voorbeeld kan er als volgt uitzien:
. /Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Waar in het voorbeeld hierboven, bestanden die bevattenhet woord "devtools" gespeld met een hoofdletter "D" en "T" of niet-hoofdletters, evenals "AD" &"BI" met of zonder hoofdlettergebruik wordt geïmporteerd.
Scheduling
Zoals hierboven vermeld, zullen we Cron gebruiken om de uitvoering te plannen. Voordat we ingaan op de configuratie, is ten zeerste aanbevolen dat u het reeds geïnstalleerde SSMTP-pakket op uw Xen-server configureert. Hoewel dit een optionele stap is, geeft dit u een "terugspoeling" -verzamelaar. Het hebben van zo'n "backwash verzamelaar" kan je waarschuwen voor dingen waar het script niet toe in staat is.
Ga naar cron's bewerkingsmodus door het volgende uit te geven:
crontab -e
Als u de bovenstaande instructies hebt gevolgd en een geplande back-up wilt toevoegen voor zondag om 01:31( 1:31 AM), voert u het onderstaande in:
31 01 * *zon /root/ Xen-phoenix-master / Xen-phoenix.sh /root/ Xen-phoenix-master / settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt] ools
Het bovenstaande is correct aangenomenuw script en instellingenbestand staan beide onder "/root/ Xen-phoenix-master /".
Verkrijg SendEmail( optioneel)
We hebben in het verleden al geschreven over het SendEmail perl-programma, dus het is niet nodig om hier nogmaals te herhalen. Het volstaat om te zeggen, het werkt op dezelfde manier onder Linux als op Windows.
Hoewel e-mailen optioneel is, wordt het ten zeerste aanbevolen omdat dan het script in staat zal zijn om:
- u te informeren wanneer het is gestart &klaar met hardlopen.
- Waarschuw u voor eventuele fouten die het kon detecteren en verwerken.
Download het naar de Xen-server en extraheer het.
wget http: //caspian.dotconf.net/menu/Software/SendEmail/ sendEmail-v1.56.tar.gz
tar xvzhf sendEmail-v1.56.tar.gz
Noteer de locatie waar u het hebt geëxtraheerd. Je hebt het nodig voor het instellingenbestand.
De "Delete Exception" -tag definiëren( optioneel)
Xen-Phoenix neemt een pagina van zijn voorouder( Xen-Pocalypse) en biedt u de mogelijkheid om granulair een VM uit te sluiten van de systeemwijde verwijdering met behulp van een controletag. Om dit te doen, moet u een nieuw "Aangepast veld" definiëren.
Open hiervoor de eigenschappen van de server of zelfs een VM.Selecteer "Aangepaste velden" in het navigatievenster.
Als dit de eerste keer is dat u een "aangepast veld" definieert( zoals in het voorbeeld hierboven), hebt u niet het "Phoenix_keeper" -veld om gegevens in te voeren, dus u moet het creëren. Om dit te doen, klikt u op "Aangepaste velden bewerken" in het dialoogvenster dat verschijnt en vervolgens op "Toevoegen. ..".
Maak een veld "Tekst" met de naam "Phoenix_keeper".
Opmerking: De naam van het aangepaste veld is "hard gecodeerd" in het script, dus je MOET niet afwijken van de bovenstaande spelling, tenzij je ook de relevante code wijzigt.
Nadat het veld is aangemaakt, ziet u:
Sluit het venster. Je zou nu het "Phoenix_keeper" -veld moeten invullen, zoals in de onderstaande afbeelding.
Nu, alles wat je hoeft te doen is dit veld vullen met een opmerking( elke opmerking zal doen), waardoor Xen-phoenix het overslaat bij het verwijderen.
Problemen oplossen met
Hoewel ik er alles aan heb gedaan om het script zo gebruiksvriendelijk en zo onfeilbaar mogelijk te maken, "de wereld is een groter laboratorium".De onderstaande informatie kan u helpen na te gaan wat de oorzaak van uw problemen is.
Logging
Alle "logging" wordt verzameld door de Xen-host die het script uitvoert in het syslog-mechanisme. Dit kan natuurlijk worden bekeken met:
minder + F /var/log/-berichten
U zoekt het sleutelwoord "Xen-Phoenix".
Opmerking: Citrix heeft een retentiebeleid van twee( 2) dagen ingesteld voor syslog van zijn servers. Misschien wilt u dat in gedachten houden voor postmortemen.
Debugging
Zoals opgemerkt in het instellingenbestandssegment, is er een richtlijn om debugging in te schakelen. Als u foutopsporing inschakelt, voert het script uitgebreid logboekregistratie uit naar de console en castreert het het vanaf het verzenden van e-mails en voert het daadwerkelijk de import uit, tenzij de relevante vlaggen ook zijn ingesteld. De mogelijke vlaggen worden genoteerd in de instellingenbestandsjabloon en ze stellen u in staat om nauwkeurig te definiëren wat u wilt debuggen.
Ik hoop dat je geen enkele foutopsporing nodig hebt en dat je de vruchten plukt van mijn arbeid:)
Denk aan al de armoede, de haat en de leugens, en stel je de vernietiging voor van alles wat je veracht. Langzaam uit de as zal de feniks opstaan ...