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:
All data intakt
Enkelt att återskapa de virtuella maskinerna
Ingen downtime på maskinerna
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.