Hemsida » hur » Så här säkerhetskopierar du Citrix Xen VM gratis med Xen-pocalypse (Bash)

    Så här säkerhetskopierar du Citrix Xen VM gratis med Xen-pocalypse (Bash)

    Har du någonsin behövt säkerhetskopiera dina Citrix Xen Virtual Machines (VM) men ville inte bryta banken med att göra det? HTG har bara bash-skriptet för dig med Xen-pocalypse.

    Bild av h.koppdelaney, Fast i Custom och Hotfortech.

    En av de fina sakerna i Citrix Xen är 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. Även då betalar du bara för disknivåbackups, som inte är tillräckliga för många typer av arbetsbelastningar, som Active Directory, Databaser och liknande. För att övervinna detta kanske du vill att "Live Memory-ögonblicksbilden och återgå", som kan spara hela maskinstatus, inklusive innehållet i RAM. Men den här funktionen är en del av "Enterprise" och "Platinum" -utgåvorna, som är ännu dyrare. Det är inte så att vi vid HTG avvisar värdet av en sann säkerhetskopiering programvara, men om du befinner dig på en stram budget och inte har något om nedetiden för säkerhetskopiering kan du hitta Xen-pocalyps för att vara en perfekt lösning innan du gör budgetåtagandet.

    Översikt

    "Användningsfallet": Du har ett par VM som kräver en säkerhetskopia. "Att stänga av en VM och exportera den som en fil" från "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 sin enklaste form är backupflödet:

    • Stäng av målet VM.
    • Exportera VM som en fil till säkerhetskopieringsplatsen.
    • Om VM var påslagen, innan säkerhetskopieringen startade, slås den på igen.

    Låt oss knäcka :)

    Hämta manuset

    Xen-pocalypse kan erhållas fritt 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-pocalypse/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.

    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.
    • Informera om diskvalificering av säkerhet på grund av rymdproblem. (Detta beteende kan inaktiveras om det inte är önskvärt)

    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 Taggar

    Citrix Xen ger dig möjligheten att konfigurera "Custom Fields" för filtrering av funktioner. Vi kommer att skapa fälten och sedan fylla i dem med informationen som används av Xen-pocalypse. Xen-pocalypse känner igen 3 kontrolltag som anger namnet på taggen för säkerhetskopiering och föräldra till barnrelationer. Om du inte avser att använda filinmatningsmetoden måste du skapa åtminstone fältet för säkerhetskopieringskoden.

    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 förhållande (som i exemplet ovan), har du inga fält för att mata in data, så du behöver skapa dem. För att göra detta klickar du på "Ändra anpassade fält" i dialogrutan som dyker upp, klicka på "Lägg till ..."

    Skapa tre (3) "Text" typfält. En kommer att kallas "BackupTAG" och de andra "Föräldrarna" och "Barnen".

    Notera: Namnen på de anpassade fälten 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 alla fält har skapats bör du se:

    Stäng fönstret. Du borde nu ha "BackupTAG", "Parent" och "Children" fälten att fylla, som i bilden nedan.

    Nu behöver du bara ange vilka VM som hör till vilken "BackupTAG".
    Till exempel i det företag där manuset var vuxet hade vi VM som skulle säkerhetskopieras varje vecka på torsdag och fredag, ett schema för våra Atlassian-produkt VM och några som skulle säkerhetskopieras en gång i månaden. Så vår översikt såg ut:

    Var till exempel "weekly-fri" var den text vi har inmatat i "BackupTAG" "Custom Field". Snyggt va? :)

    Föräldrar och barn (valfritt)

    Den verkliga skönheten i detta manus är att den stöder "förälder" till "barn" -relationer. Det är sålunda möjligt att ställa in en lista över "barn" VM som skulle stängas av och säkerhetskopieras före föräldern och att dessa barn bara kommer att sättas på igen när föräldern har slutfört säkerhetskopian och har blivit tillbaka på. Det här är användbart om du stänger av föräldern VM, kommer tjänsten i barnet att bli otillgänglig. En sådan sak skulle innebära att tjänsten på barnet VM skulle vara otillgänglig två gånger, en gång för barnets backupprocess och en gång för förälderns. Att skapa detta förhållande tar bort det problemet.

    Till exempel använde alla våra Atlassian VMs en enda DataBase (DB) VM, som också skulle vara säkerhetskopierad. Så genom att notera att DB VM är en "Förälder" till de andra VM, kan en ordentlig avstängning -> backup -> start, säkerställas.

    Vid denna skrivning har denna funktion ett par tillvägagångssätt:

    1. Namnen på de VM som ska ha ett sådant förhållande kan inte innehålla mellanslag. Du måste ta bort mellanslag från dina VM-namn, för de kommer att vara avgränsade i rymden, som i exemplet nedan.
    2. Det kan bara finnas en förälder. Att ange mer än en är inte ens planerad för, för att inte tala om testat.

    För att skapa detta förhållande, gå in i VM: s egenskaper. Om det här är en "förälder", skriv vem som är barn och om detta är ett "barn", skriv vem hans förälder är. Till exempel:

    Obs! Om du inte anger en förälder för ett barn kan barnet startas innan föräldern är redo och kan orsaka att den säkerhetskopieras två gånger.

    FIL-metoden (valfritt)

    Av historiska skäl stöder Xen-pocalypse också att få listan över VM-filer säkerhetskopieras som en textfil. Medan "koden" fortfarande finns där, är funktionaliteten allvarligt sämre än TAGs-metoden och därför rekommenderas det inte. Med det sagt, om du föredrar att använda listmetoden av någon anledning, gäller följande begränsningar:

    1. Namnen på VM: erna får inte innehålla några mellanslag eller specialtecken.
    2. Det kan bara finnas ett VM-namn per rad.
    3. Tomma linjer är inte tillåtna.

    För att generera listan kopierar du antingen VM: s namn från Xen-centret eller körs på en Xen-värd:

    xe vm-list | grep name-label | awk 'skriv ut $ 4' | sortera

    Kopiera listan ovan till en vanlig textfil.

    Säkerhetsplatsen

    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 monteringen till önskad säkerhetskopieringsplats och sedan använda skriptet med den här sökvägen (som kan användas för att klara med monteringen från kommandoraden) så ligger utanför handbokens räckvidd.

    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-pocalypse-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:

    Metoden för att få de VM som säkerhetskopieras - Standardmetoden är TAGs. Du kan ändra detta till FIL, men det rekommenderas inte.

    Platsen av reservdestinationen - 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 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.

    E-postuppgifter - Återigen, om du har aktiverat e-post måste du definiera detaljer som: Till, Från, Servernamn / IP & etc '.

    Kompression - Detta är som standard inställt på "Nej", eftersom det medför att backupproceduren körs under en betydligt längre tid när du gör det möjligt att skapa en mindre backupfil..

    Kontrollera ledigt utrymme på destinationen - Detta kommer att få skriptet att kontrollera att VM: s säkerhetskopiering inte orsakar att backupplatsens lediga utrymme faller under 10 GB. Detta görs för att säkerställa att mest mängd VMs säkerhetskopieras i stället för bara en mycket stor VM. Beräkningen görs med hjälp av grossistskivans storlek för alla HD-skivor som är kopplade till VM.

    felsökning  - Standardinställningen ä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 i felsökningssegmentet.

    Utförande / Schemaläggning

    I sin enklaste form skulle en invigning av Xen-pocalypse se ut som:

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

    I det här fallet finns vi i katalogen som innehåller skriptet och inställningsfilen. "Taggen" man letar efter är "weekly-fri".

    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.

    Ange i cron: s redigering mer genom att utfärda:

    crontab-e

    Om du har följt instruktionerna ovan och vill lägga till en schemalagd säkerhetskopia i fredag ​​kl 18:01 (6:01 PM), mata in nedan:

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

    Ovanstående är korrekt förutsatt att ditt skript och inställningsfil är båda under "/ root / Xen-pocalypse-master /".

    Felsökning

    Medan jag har lagt ner mycket på att göra manuset så enkelt att använda och så idiotiskt som möjligt, "Världen är ett större lab". Informationen nedan kan hjälpa dig att ta reda på vad som är källa till dina problem.

    Framsteg

    Du kanske vill använda den här rutan för att snabbt "titta" på alla pågående uppgifter, för att se om de faktiskt fortskrider eller om de faktiskt sitter fast.

    medan [-e / dev / null]; gör för VM i "$ (xe-uppgiftslista | grep uuid | awk 'skriv ut $ 5')"; gör xe task-param-get param-name = framsteg uuid = $ VM; sova 1; Gjort; Gjort

    För att sluta titta, använd Ctrl + C för att bromsa "while loop".

    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-pocalypse".

    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 exporten, 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 :)


    Spänning, min man, du är på väg att bli nummer ett deceptikon ...