Slik sikkerhetskopierer du Citrix Xen VMs gratis med Xen-pocalypse (Bash)

Innholdsfortegnelse:

Slik sikkerhetskopierer du Citrix Xen VMs gratis med Xen-pocalypse (Bash)
Slik sikkerhetskopierer du Citrix Xen VMs gratis med Xen-pocalypse (Bash)

Video: Slik sikkerhetskopierer du Citrix Xen VMs gratis med Xen-pocalypse (Bash)

Video: Slik sikkerhetskopierer du Citrix Xen VMs gratis med Xen-pocalypse (Bash)
Video: Sikkerhetskopiere filer i Windows 8 på datamaskiner fra HP - YouTube 2024, April
Anonim
Har du noen gang hatt behov for å sikkerhetskopiere Citrix Xen Virtual Machines (VM), men ikke ønsker å ødelegge banken å gjøre det? HTG har bare bash-skriptet for deg med Xen-pocalypse.
Har du noen gang hatt behov for å sikkerhetskopiere Citrix Xen Virtual Machines (VM), men ikke ønsker å ødelegge banken å gjøre det? HTG har bare bash-skriptet for deg med Xen-pocalypse.

Bilde av h.koppdelaney, Fast i Custom og Hotfortech.

En av de fine tingene i Citrix Xen er at mange av funksjonene er gratis avgift. Med det sagt, hvis du vil ha funksjonen "Automatisert VM beskyttelse og gjenoppretting", må du begynne å betale for "Advance" lisensen. Selv da betaler du bare for disknivåoppdateringer, som ikke er tilstrekkelige for mange typer arbeidsbelastninger, som Active Directory, databaser og så videre. For å overvinne dette, vil du kanskje ha "Live Memory-snapshot og returnere", som kan lagre hele maskinstatus, inkludert innholdet i RAM. Denne funksjonen er imidlertid en del av "Enterprise" og "Platinum" -utgaven, som er enda dyrere. Det er ikke at vi ved HTG avviser verdien av en sann backup-programvare, men hvis du er på et stramt budsjett og ikke har noe imot nedetid for sikkerhetskopiering, kan du finne Xen-pocalypse å være en perfekt løsning før du gjør budsjettforpliktelsen.

Oversikt

"Brukstilstanden": Du har et par VMer som krever sikkerhetskopiering. "Slå av en VM og eksportere den som en fil" fra "Xen-senteret" ved hjelp av høyre klikk fungerer ok, men du vil at denne prosessen skal skje automatisk og på en tidsplan. Dette Bash-skriptet bruker kommandoen "XE" for å utføre sine oppgaver. XE er Xen-kommandolinjegrensesnittet (CLI), automatisk tilsvarende for å utstede "høyre klikk" i "Xen-senteret". Vi vil ringe skriptet fra Cron som vil levere "planlegging" -delen. I sin enkleste form er backupstrømmen:

  • Slå av målet VM.
  • Eksporter VM som en fil til sikkerhetskopieringsstedet.
  • Hvis VM var slått på, før sikkerhetskopieringen startet, slås den på igjen.

Lar deg sprekke:)

Hent skriptet

Xen-pocalypse kan fritt hentes fra github, ved hjelp av de vanlige git-metodene. Med det sagt, hvis du ikke er kjent med git ennå, kan du ta tak i zip-filen med denne linken. Som skriptet må kjøre på en av dine Xen-servere, bør du trekke den ut der, slik at eksekveringsrettighetene blir bevart.

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

Mens det ovenfor skulle fungere, anbefales det å bruke GIT-metoden, slik at du kan dra nytte av fremtidige oppdateringer.

Hent SendEmail (valgfritt)

Vi har skrevet om SendEmail Perl-programmet tidligere, så det er ikke nødvendig å gjenta her. Det er nok å si, det fungerer på samme måte på Linux som det gjør på Windows.

Mens aktivering av e-post er valgfritt, anbefales det sterkt fordi da vil skriptet kunne:

  • Informer deg når det startet og ferdig å kjøre.
  • Varsle deg eventuelle feil det var i stand til å oppdage og håndtere.
  • Informer om diskvalifikasjoner for backup på grunn av romproblemer. (Denne oppførselen kan deaktiveres hvis ikke ønsket)

Last ned den til Xen-serveren og utdrag.

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

Legg merke til hvor du har hentet den til. Du trenger den for innstillingsfilen.

Definere Tags

Citrix Xen gir deg muligheten til å konfigurere "Egendefinerte felt" for filtreringsfunksjoner. Vi vil opprette feltene og fylle dem med informasjonen som brukes av Xen-pocalypse. Xen-pocalypse gjenkjenner 3 kontroll TAGer som angir navnet på taggen for sikkerhetskopiering og foreldre til barns forhold. Hvis du ikke har tenkt å bruke filinndatametoden, må du opprette minst navnet på feltet for sikkerhetskopiering.

For å gjøre dette, åpne serverens eller til og med en VMs egenskaper. I navigasjonsruten velg "Egendefinerte felt".

Hvis dette er første gang du definerer et forhold (som i eksempelet ovenfor), vil du ikke ha noen felt for å skrive inn data, så du må opprette dem. For å gjøre dette, klikk på "Rediger egendefinerte felt" i dialogboksen som dukker opp, klikk på "Legg til …"
Hvis dette er første gang du definerer et forhold (som i eksempelet ovenfor), vil du ikke ha noen felt for å skrive inn data, så du må opprette dem. For å gjøre dette, klikk på "Rediger egendefinerte felt" i dialogboksen som dukker opp, klikk på "Legg til …"
Opprett tre (3) tekstfelt. En vil bli kalt "BackupTAG" og de andre "Foreldre" og "Barn".
Opprett tre (3) tekstfelt. En vil bli kalt "BackupTAG" og de andre "Foreldre" og "Barn".

Merk: Navnene på de egendefinerte feltene, har blitt "hardkodet" i skriptet, så du må ikke avvike fra stavingen ovenfor, med mindre du endrer den aktuelle koden også.

Når alle feltene er opprettet, bør du se:

Lukk vinduet. Du burde nå ha "BackupTAG", "Parent" og "Children" feltene å fylle, som i bildet nedenfor.
Lukk vinduet. Du burde nå ha "BackupTAG", "Parent" og "Children" feltene å fylle, som i bildet nedenfor.
Image
Image

Nå er alt du trenger å gjøre, utpeke hvilke VM som tilhører "BackupTAG". For eksempel, i firmaet hvor manuset ble vokst, hadde vi VMer som skulle sikkerhetskopieres ukentlig på torsdag og fredag, en tidsplan for våre Atlassian-produkt VM og noen som skulle sikkerhetskopieres kun en gang i måneden. Så vår oversikt så ut som:

Image
Image

Hvor for eksempel "ukentlig-fri" var teksten vi har skrevet inn i "BackupTAG" "Custom Field". Ryddig huh?:)

Foreldre og barn (valgfritt)

Den virkelige skjønnheten i dette skriptet er at den støtter "foreldre" til "barn" -relasjoner. Det vil si at det er mulig å sette opp en liste over "barn" VMer som ville bli slått av og sikkerhetskopiert før foreldrene, og at disse barna bare blir slått på igjen når foreldrene har avsluttet sin sikkerhetskopiering og blitt slått tilbake på.Dette er nyttig i tilfeller der å slå av foreldre VM, vil tjenesten i barnet bli utilgjengelig. En slik ting ville bety at tjenesten på barnet VM ville være utilgjengelig to ganger, en gang for barnets sikkerhetskopiering og en gang for foreldrenes. Å skape dette forholdet overvinter dette problemet.

For eksempel brukte alle våre Atlassian VMs en enkelt DataBase (DB) VM, som også var satt til å sikkerhetskopieres. Så ved å merke at DB VM er en "Parent" til de andre VM, kan en ordentlig rekkefølge av shutdown -> backup -> oppstart, sikres.

På tidspunktet for denne skrivingen har denne funksjonen et par forbehold:

  1. Navnene på VM-ene som skal ha et slikt forhold, kan ikke inneholde mellomrom. Du må fjerne mellomrom fra VM-navnene dine, for de blir avgrenset av plass, som i eksemplet nedenfor.
  2. Det kan bare være en forelder. Det er ikke engang planlagt å utpeke mer enn en, for ikke å snakke om testet.

For å opprette dette forholdet, gå inn i VMs egenskaper. Hvis dette er en "forelder", skriv hvem barna er, og hvis dette er et "barn", skriv hvem hans foreldre er. For eksempel:

Merk: Hvis du ikke angir en foreldre for et barn, kan det føre til at barnet startes før foreldrene er klare, og kan føre til at det sikkerhetskopieres to ganger.
Merk: Hvis du ikke angir en foreldre for et barn, kan det føre til at barnet startes før foreldrene er klare, og kan føre til at det sikkerhetskopieres to ganger.

FIL-metoden (valgfritt)

Av historiske grunner støtter Xen-pocalypse også å få listen over VM-filer som sikkerhetskopiert som en tekstfil. Mens "koden" fortsatt er der, er funksjonaliteten svært dårligere enn TAGs-metoden, og det anbefales derfor ikke. Med det sagt, hvis du foretrekker å bruke listemetoden av en eller annen grunn, gjelder følgende restriksjoner:

  1. Navnene på VMene kan ikke inneholde mellomrom eller spesialtegn.
  2. Det kan bare være ett VM-navn per linje.
  3. Blanke linjer er ikke tillatt.

For å generere listen, kopier enten VMs navn fra Xen-senteret, eller kjør på en Xen-vert:

xe vm-list | grep name-label | awk

'{ print $4 }' | sort

Kopier listen ovenfor til en vanlig tekstfil.

Sikkerhetsplasseringen

Mens jeg tilfeldigvis peker rundt i Citrix Xen, har jeg funnet ut at Storage Repositories (SRs) er tilgjengelige for bruk under "/ var / run / sr-mount /% UUID%" der UUID er den unike identifikatoren til SR, som kan være hentet fra GUI.

Dette betyr at vi kan bruke den vanlige "Next -> Next -> Finish" veiviseren for å opprette festet til ønsket reserveplassering, og deretter bruke skriptet til å bruke den banen (som til tross for å knuse med montering fra kommandolinjen), men å gjøre så er det utenfor denne veiledningens omfang.

For å opprette et nytt "mount", høyreklikk servernavnet og velg Ny SR.

I dette eksemplet vil vi peke Xen til en Windows-del, så velg "Windows Fildeling (CIFS)":
I dette eksemplet vil vi peke Xen til en Windows-del, så velg "Windows Fildeling (CIFS)":
Fullfør Neste -> Neste -> Fullfør.
Fullfør Neste -> Neste -> Fullfør.

Hent SRs UUID

For å oppnå en SRs UUID klikker du bare på navnet sitt i Xen-senteret og går til kategorien "Generelt".

For å kopiere UUID, bare høyreklikk på den og velg "kopi".
For å kopiere UUID, bare høyreklikk på den og velg "kopi".
Med denne informasjonen tilgjengelig, er du klar til å redigere innstillingsfilen.
Med denne informasjonen tilgjengelig, er du klar til å redigere innstillingsfilen.

Konfigurer innstillingsfilen.

Xen-pocalypse-prosjektet leveres med en "innstillinger" -filmal. Denne malen skal redigeres for å gjenspeile oppsettet ditt og bestått som det første argumentet for skriptet. Innstillingsfilen angir følgende:

Metoden for å få VM'ene til å sikkerhetskopieres - Standardmetoden er TAGs. Du kan endre dette til FIL, men dette anbefales ikke.

Stedet av sikkerhetskopi destinasjonen - Hvis du har fulgt veiledningen til dette punktet, må du bare erstatte% UUID% med SR-ene som det ble oppnådd ovenfor.

Plasseringen av SendEmail - Hvis du har valgt å aktivere E-post, må du skrive inn hvor du har hentet perl-kjørbarheten her.

E-post detaljer -Igjen, hvis du har aktivert e-post, må du definere detaljer som: Til, Fra, Servernavn / IP og etc '.

kompresjon - Dette er satt til "Nei" som standard, fordi mens du aktiverer det, vil det produsere en mindre sikkerhetskopieringsfil, vil det også føre til at sikkerhetskopieringsprosedyren kjører i betydelig lengre tid.

Sjekk om ledig plass på destinasjonen - Dette vil få skriptet til å kontrollere at å lage VMs sikkerhetskopiering ikke vil føre til at backupplassen er ledig plass til å falle under 10 GB. Dette er gjort for å sikre at mest mulig VM-sikkerhetskopieres i stedet for bare en veldig stor VM. Beregningen er utført ved hjelp av brutto diskstørrelsen totalt av alle HDene som er knyttet til VM.

debugging - Standard er at debugging er slått av med verdien "0" (null). Du trenger ikke å slå på dette, men hvis du gjør det, vises mer informasjon i feilsøkingssegmentet.

Utførelse / tidsskjema

I sin enkleste form ville en invokasjon av Xen-pocalypse se ut som:

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

Hvor i tilfellet ovenfor, er vi inne i katalogen som inneholder skriptet og innstillingsfilen. "Taggen" skriptet vil se etter er "ukentlig-fri".

Som nevnt ovenfor vil vi bruke Cron til å planlegge gjennomføringen. Før vi går inn i konfigurasjonen, er det sterkt anbefalt at du konfigurerer den allerede installerte SSMTP-pakken på Xen-serveren din. Selv om dette er et valgfritt trinn, vil dette gi deg en backwash kollektor. Å ha en slik "backwash collector" kan varsle deg om ting skriptet ikke kan.

Skriv inn i crons redigering mer ved å utstede:

crontab -e

Hvis du har fulgt instruksjonene ovenfor, og du vil legge til en planlagt sikkerhetskopiering for fredag kl 18:01 (6:01 PM), skriv inn under:

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

Ovenstående er riktig, forutsatt at skript- og innstillingsfilen din begge er under "/ root / Xen-pocalypse-master /".

Feilsøking

Mens jeg har lagt mye arbeid på å gjøre skriptet så enkelt å bruke og så tåpelig som mulig, "Verden er et større laboratorium". Informasjonen nedenfor kan hjelpe deg med å finne ut hva som er kilden til dine problemer.

Framgang

Du vil kanskje bruke denne lineren til å raskt "se" alle oppgaver pågår, for å se om de faktisk utvikler seg i det hele tatt, eller hvis de faktisk sitter fast.

while [ -e /dev/null ]; do for VM in '$( xe task-list | grep uuid | awk '{print $5}' )'; do xe task-param-get param-name=progress uuid=$VM;sleep 1; done; done

For å slutte å se, bruk Ctrl + C for å bremse "while loop".

logging

All "logging" samles av Xen-verten som kjører skriptet i syslog-mekanismen. Dette kan selvfølgelig ses med:

less +F /var/log/messages

Du leter etter nøkkelordet "Xen-pocalypse".

Merk: Citrix har fastsatt en to-dagers retensjonspolicy for syslog av sine servere. Du vil kanskje huske på postmortemer.

debugging

Som nevnt i innstillingsfilsegmentet, finnes det et direktiv for å aktivere feilsøking. Aktivering av feilsøking vil føre til at skriptet utfører verbose logging til konsollen og kastrer den fra å sende e-post og faktisk utfører eksporten, med mindre de relevante flaggene også er angitt. De mulige flaggene er notert i innstillingsfilmalen, og de gjør det mulig å definere hva du vil feilsøke.

Det er mitt håp at du ikke har trengte noen feilsøking, og du høster fruktene av arbeidet mitt:)

Støt, mannen min, du er i ferd med å bli nummer én deceptikon …

Anbefalt: