Backup av virtuella maskiner

Permalänk

Backup av virtuella maskiner

Hej allesammans!

För filer på serversystemet använder jag mig av rsnapshot, men när jag skulle börja ta backups på de virtuella maskiner jag kör så insåg jag en del problem. Syftet med denna tråd är att lyfta fram dessa problem och försöka få upp till ytan hur man ska göra det här på bästa sätt. Med bästa sätt menar jag med hänsyn till följande punkter:

  1. All data intakt

  2. Enkelt att återskapa de virtuella maskinerna

  3. Ingen downtime på maskinerna

  4. Försök att minimera data som behöver skrivas vid varje backup (dvs minimera både plats, tidsåtgång och stress på diskar/system).

Söker alltså er som har koll på hur man sköter backup av virtuella maskiner. Eftersom det är rätt lätt att betala för att få en virtuell maskin nånstans i molnet så undrar jag hur dom som tillhandahåller såna tjänster sköter sina backups.

System
OS: Ubuntu Server
Mjukvara: Virtualbox

Jag vill att vi håller oss till ovanstående så gott det går, men tar gärna emot förslag gällande andra open source lösningar. Även licensierade lösningar kan diskuteras, men det är antingen som sista utväg (dvs om det inte går med open source), eller om det tillför något till diskussionen i allmänhet. Tex använder många företag VMWare och det är givetvis mycket värdefullt att höra om erfarenheter hur dessa sköter sina backups av virtuella maskiner.

Problem

  • Om man bara kopierar disk-image filen så kan man (väl?) inte vara säker på att få ett "consistent machine state", dvs man vet inte om det bara går att ta imagen och köra på utan problem vid återskapning.

  • disk-image filen som utgör maskinens hårddisk ändras hela tiden vilket gör att många backuplösningar inte fungerar inkrementellt (gör några det?). Hårdisken är en fil och efters den ändrats så blir det ytterligare en version av disken, trots att bara ett par småsaker skiljer.

Möjliga vägar
Här finns 2 möjliga vägar. Det är troligen (förhoppningsvis!) inte de enda vägarna. Jag visar dessa här mer för att presentera de metoder jag funderat på änsålänge.

Inuti maskinen
En möjlig väg är i många fall givetvis att sätta upp rsnapshot eller motsvarande i varje virtuell maskin och konfigurera backups från dessa. Kopiera alla konfigurationsfiler och motsvarande. Allt blir då inkrementellt och borde fungera som tänkt.
Fördelar:

  • Man har fullständig koll på vad man behöver ta backup på och inte, kan spara plats

  • Man kan köra helt inkrementella backups och spara plats

Nackdelar:

  • Mycket arbete att återskapa en maskin

  • Man måste kunna administrera alla maskiner (inte ens säkert att man har tillgång till det)

  • Man måste ha koll på alla saker man ska ta backup på, om något nytt tillkommer i maskinen måste man se till att även detta täcks av konfigurationen

  • Mer tidskrävande att administrera och sätta upp

Power down
En annan metod är att stänga av den virtuella maskinen. Då kan man ta backup på hela imagen med valfri lösning, tex rsnapshot.
Fördelar:

  • Enkelt att sätta upp

  • Enkelt att återskapa

  • Ingen ytterligare konfigurering för nya maskiner

Nackdelar:

  • Vanliga backuplösningar fungerar inte inkrementellt (dvs en copy får göras varje gång). Tar onödigt mycket plats, tid och skapar stress på disk/system i onödan.

  • Downtime för maskinerna (dessutom relativt långt eftersom det blir mycket data utan den inkrementella biten)

Sammanfattningsvis
Den första av dessa idéer är väl den mest tilltalande i dagsläget. Men eftersom det är väldigt vanligt med virutalisering idag och det finns många som säljer cloud-server-tjänster och annat så vill jag tro att det finns bättre sätt att administrera detta än att pilla individuellt i varje maskin.

Hoppas vi kan få till en informativ och bra tråd, som även kan hjälpa andra med samma problem, där vi tillsammans kan komma fram till den bästa lösningen.

Permalänk
Medlem

Är det inte bara att göra som man brukar i vmware,kvm och xen? Dvs ta snapshot, backa det. Ta bort snapshotet.

Permalänk
Skrivet av =JoNaZ=:

Är det inte bara att göra som man brukar i vmware,kvm och xen? Dvs ta snapshot, backa det. Ta bort snapshotet.

Jag vet inte riktigt. Själv har jag ingen erfarenhet av det. Såg en diskussion här:
https://forums.virtualbox.org/viewtopic.php?f=1&t=48807
Vissa i tråden ovan hävdar i princip att det enda sättet att vara säker på att man har en fungerande backup är att stänga av maskinen och sen köra backup av den. En som deltar i diskussionen ger även sin sammanfattning av det som diskuterats med:

Citat:

So I think order of goodness of backups
- Shutdown guest and copy files (Full recoverability)
- Running VM - Shadow copy from within the VM (Crash consistent, VSS aware application should be "safe")
- Running VM - Save VM state and copy files (Needs to restart on similar hardware to recover saved state, otherwise crash consistent)
- Running VM - Host Snapshot and copy files (Crash consistent, just like pulling the power plug)
- Running VM - Copy VM files with no snapshot (Very dangerous, will most likely result in a corrupted disk image)

Jag ska fortsätta att undersöka och läsa om det. Ytterligare kunskap, erfarenhet och åsikter angående detta uppskattas. Jag vill fortfarande tro att det ska gå att hitta något bra sätt.