Så här återställer du Citrix-Xen VM gratis med Xen-Phoenix (Bash)
Har du någonsin haft behov av att bulk återställa dina Citrix-Xen VM för en katastrofåterställning (DR) -lösning, eller bara för att testa att dina säkerhetskopior fungerar? HTG förklarar hur man använder Xen-Phoenix, ett gratis bash-skript, för att återställa VM.
Fotokredit: Ryan McCurdy via Compfight cc
Som vi har nämnt i "Hur man säkerhetskopierar Citrix Xen VMs gratis med Xen-pocalypse" är en av de fina sakerna i Citrix Xen att många av dess funktioner är fri av laddning. Med det sagt, om du vill ha funktionen "Automatiserad VM-skydd och återställning" måste du börja betala för "Advance" -licensen. Återigen är det inte att vi vid HTG avvisar värdet av en sann backup-lösning, men om du har en snäv budget har du redan fått VM-bilderna ur hypervisorn och behöver ett sätt att automatisera din " teståterställning "/" DR refresh "-procedurer, kan du hitta Xen-Phoenix som en perfekt lösning innan du gör budgetåtagandet.
Översikt
"Användningsfallet": Du har ett par VM som kräver en återställning. Importen i "Xen Center" med rätt klick fungerar ok, men du vill att processen ska ske automatiskt och på ett schema. Detta Bash-skript använder kommandot "XE" för att utföra sina uppgifter. XE är Xen-kommandoradsgränssnittet (CLI), automatiskt motsvarande för att utfärda "rätt klick" i "Xen Center". Vi kommer att ringa manuset från Cron som kommer att leverera "schemaläggningsdelen". I dess enklaste form är återställningsflödet:
- Radera alla * tidigare befintliga VM på servern
- Importera VM-filer från filer på säkerhetskopieringsplatsen.
- Verifiera att alla VMs kan användas genom att aktivera dem en efter en och leta efter gästverktygets hjärtslag.
- Slå av VM när ett hjärtslag har upptäckts eller en timeout har uppnåtts.
* Radera alla VM-beteenden kan inaktiveras helt och stöder undantag (se nedan).
Låt oss knäcka :)
Hämta manuset
Xen-phoenix kan fritt erhållas från github, med hjälp av de vanliga gitmetoderna. Med det sagt, om du inte är versed i git ännu, kan du ta tag i zip-filen med den här länken. Eftersom skriptet behöver köras på en av dina Xen-servrar borde du extrahera det så att exekveringsbehörigheterna bevaras.
wget https://github.com/aviadra/Xen-phoenix/archive/master.zip
unzip master
Medan ovanstående skulle fungera rekommenderas du att använda GIT-metoden så att du kan dra nytta av framtida uppdateringar.
Exportplatsen
Vi måste konfigurera var du ska ta VM-exporten från.
Medan slumpmässigt poking runt i Citrix Xen har jag funnit att lagringsutrymmena (SRs) är tillgängliga för användning under "/ var / run / sr-mount /% UUID%" där UUID är den unika identifieraren för SR, som kan vara erhållen från GUI.
Det betyder att vi kan använda den vanliga guiden Next -> Next -> Finish för att skapa "mount" till den önskade säkerhetskopieringsplatsen och sedan använda skriptet med den här sökvägen (så att det kan vara bra att montera från kommandoraden som är bortom ramen för denna guide).
För att skapa ett nytt "mount" högerklickar du på servernamnet och väljer New SR.
I det här exemplet kommer vi att peka Xen till en Windows-del, så välj "Windows Fildelning (CIFS)":
Fyll i nästa -> Nästa -> Slutför.
Hämta SR: s UUID
För att få en SR-UUID, klicka helt enkelt på sitt namn i Xen Center och gå till fliken "Allmänt".
För att kopiera UUID, helt enkelt högerklicka på den och välj "kopiera".
Med den här informationen är du redo att redigera inställningsfilen.
Konfigurera inställningsfilen
Xen-phoenix-projektet levereras med en "inställnings" -mall. Denna mall ska redigeras för att återspegla din inställning och skickas som det första argumentet för skriptet.
Inställningsfilen anger följande:
- Placeringen av källexporten - Om du har följt guiden till den här punkten behöver du bara byta ut% UUID% med SR: erna som den erhållits från ovan.
- Placeringen av SendEmail - Om du har valt att aktivera E-post måste du ange var du har extraherat den exekverbara perlmen här.
- Verifierare - Här kontrolleras proceduren för återställningsverifiering. Detta är aktiverat som standard, eftersom en lyckad "filnivååterställning" inte behöver betyda en funktionell VM.
- Server_prep - Här kontrolleras föråterställningen radering av alla VM på DR-servern. Detta är aktiverat som standard eftersom det antas att DR-servern är en dedikerad server för detta ändamål. Om du behöver en VM som körs på den här servern så att den inte raderas, konfigurerar du den som utesluten. Om detta beteende inte passar din situation, helt enkelt stäng av den helt.
- E-postuppgifter - Återigen, om du har aktiverat e-post måste du definiera detaljer som: Till, Från, Servernamn / IP & etc '.
- felsökning - Standarden är att felsökningen är avstängd med värdet "0" (noll). Du behöver inte aktivera det här, men om du gör det finns mer information noterad i felsökningssegmentet.
Avrättning
Detta skript tar inställningsfilen som sitt första argument och andra argument som "Chevrons" för att söka efter (åtskilda av mellanslag). Chevrons, är "strängar", som stöder reguljära uttryck som representerar åtminstone en del av det önskade filnamnet på VM-exporten.
Det är, i sin enklaste form, en invigning av Xen-Phoenix skulle se ut:
./Xen-phoenix.sh settings.cfg DevTools
Där i det här fallet finns vi i katalogen som innehåller skriptet och inställningsfilen och "Chevron" skriptet letar efter är "DevTools". Detta kommer att orsaka att alla filer i exportkatalogen med strängen "DevTools" i deras namn ska importeras.
Ett mer komplext exempel kan se ut:
./Xen-phoenix.sh settings.cfg [Aa] [Dd] [Bb] [iI] [Dd] ev [Tt] ools
Där i exemplet ovan importeras filer som innehåller ordet "devtools" som är stavade med en kapital "D" och "T" eller icke-kapital, samt "AD" och "BI" med eller utan kapitalisering..
schemaläggning
Som noterat ovan använder vi Cron för att schemalägga utförandet. Innan vi går in i konfigurationen är det Högt rekommenderad att du konfigurerar det redan installerade SSMTP-paketet på din Xen-server. Medan detta är ett valfritt steg, ger det dig en "backwash" -samlare. Att ha en sådan "backwash collector" kan varna dig om saker som skriptet inte kan.
Gå in i crons redigeringsläge genom att utfärda:
crontab-e
Om du har följt instruktionerna ovan och vill lägga till en schemalagd säkerhetskopia för söndag klockan 01:31 (1:31), mata in det nedan:
31 01 * * sun / root / Xen-phoenix-master/Xen-phoenix.sh /root/Xen-phoenix-master/settings.cfg [Aa] [Dd] DB [Bb] [iI] [Dd] ev [Tt ] erktyg
Ovanstående är korrekt förutsatt att ditt skript och inställningsfil är båda under "/ root / Xen-phoenix-master /".
Hämta SendEmail (tillval)
Vi har skrivit om PerE-programmet SendEmail tidigare, så det behöver inte upprepas här. Det räcker med att säga att det fungerar på samma sätt på Linux som på Windows.
Även om det är valfritt att aktivera e-post, rekommenderas det starkt, eftersom skriptet kommer att kunna:
- Informera dig när det startade och slutade springa.
- Varning dig om eventuella fel som det kunde upptäcka och hantera.
Ladda ner den till Xen-servern och extrahera.
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tjära xvzhf sendEmail-v1.56.tar.gz
Observera den plats där du extraherade den till. Du behöver den för inställningsfilen.
Definiera taggen "Ta bort undantag" (valfritt)
Xen-Phoenix tar en sida från sin förfader (Xen-Pocalypse) och ger dig möjlighet att granulärt utesluta en VM från den hela systemet raderingen med hjälp av en kontroll TAG. För att kunna göra detta måste du definiera ett nytt "Anpassat fält".
För att göra detta, öppna serverns eller till och med en VM: s egenskaper. I navigeringsfönstret väljer du "Anpassade fält".
Om det här är första gången du definierar ett "anpassat fält" (som i exemplet ovan) har du inte fältet "Phoenix_keeper" för att mata in data, så du måste skapa den. För att göra detta klickar du på "Redigera anpassade fält" i dialogrutan som dyker upp och klickar sedan på "Lägg till ..."
Skapa ett "Text" typfält med namnet "Phoenix_keeper".
Notera: Namnet på det egna fältet har "hårdkodats" i skriptet, så du får inte avvika från stavningen ovan, såvida du inte ändrar den relevanta koden också.
När fältet har skapats bör du se:
Stäng fönstret. Du ska nu ha fältet "Phoenix_keeper" för att fylla, som på bilden nedan.
Nu är allt du behöver göra att fylla i det här fältet med en anmärkning (någon anmärkning kommer att göra), vilket får Xen-Phoenix att hoppa över det när du raderar.
Felsökning
Medan jag har lagt mycket arbete på att göra manuset så enkelt att använda och så idiotiskt som möjligt, är "världen ett större lab". Informationen nedan kan hjälpa dig att ta reda på vad som är källa till dina problem.
Skogsavverkning
All "logging" samlas in av Xen-värd som kör skriptet i syslog-mekanismen. Detta kan givetvis ses med:
mindre + F / var / logg / meddelanden
Du letar efter nyckelordet "Xen-Phoenix".
Obs! Citrix har fastställt en policy för två retention (retention) för syslog för sina servrar. Du kanske vill ha det i åtanke för postmortem.
felsökning
Som noterat i inställningsfilsegmentet finns ett direktiv som möjliggör debugging. Genom att aktivera felsökning kommer skriptet att mata ut logga till konsolen och slänga den från att skicka e-postmeddelanden och faktiskt utföra importen, såvida inte relevanta flaggor också ställs in. De möjliga flaggor noteras i inställningsfilmallen och de gör det möjligt för dig att definiera granulärt vad du vill felsöka.
Det är mitt hopp att du inte behöver någon felsökning och du skördar frukterna av mitt arbete :)
Tänk bara på all fattigdom, hat och lögner, och föreställ dig förstörelsen av allt som du förnekar. Långt från askan kommer fenomenet att uppstå ...