qemu - snapshots vs overlays

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

qemu - snapshots vs overlays

Beitrag von vrms » 04.12.2014 06:00:24

ich benutze qemu/KVM fuer einen virtuellen Server. Wir benutzen regelmaessig olverlays (max 2 layer) um Sachen zu testen und ggf zu verwerfen und zu unserer 'base' zurueck zu kehren.

Nun habe ich aufgeschnappt das qcow2 (oder vielleicht qemu unabhaengig vom imageformat) auch snapshots machen kann.
Von vmware Nutzern weiss ich das sie snapshots zu backup Zwecken benutzen (was mit overlays ja nicht moeglich ist, da man ja immer nur zur base zurueck kann aber eben nicht so einfach einen Zustand der irgendwo in der Mitte liegt wiederherstellen koennte

Nun meine Frage ... waere "Snapshot als daily Backup" ein Konzept das unter KVM/qemu Sinn macht? Desweiteren wurde ich gerne verstehen, wie man das praktisch anstellen muesste und wie Speicherplatzintensiv das Ganze waere.

kennst sich hier jemand damit aus?

ralfi
Beiträge: 285
Registriert: 02.06.2011 11:16:11
Wohnort: Brandenburg

Re: qemu - snapshots vs overlays

Beitrag von ralfi » 04.12.2014 10:03:50

Hi vrms,

ich verstehe nicht ganz so richtig wo Deine Befürchtungen liegen aber ich schreib mal schnell wie ich das hier seit etwa einem Jahr mache.

Ich benutze für eine vollständige Desktop-Virtualisierung von insgesamt zehn Windoofs 7 Maschinen ein Basis Image und zehn Overlay Dateien. Dabei hat sich bewährt, zunächst die Installationen im Img Format von QEMU durchzuführen und anschließend das fertige Image-File inklusive Komprimierung ins QCOW2 Format zu konvertieren. Natürlich werden die danach folgenden Änderungen - z.B. die Snapshots, die ausschliesslich in die Overlay Datei geschrieben werden - nicht mehr komprimiert ins Image geschreiben was aber vernachlässigbar ist. Auch das Snapshotting im Live Modus geht absolut problemlos.

Auf diese Weise erreiche ich eine ziemlich effiziente Speichernutzung denn die Images für alle zehn virtuellen Maschinen belegen physikalisch grad mal 200 GB, QEMU/libvirt erkennen jedoch eine Größe von 320 GB.

Backup ist natürlich eine ganz tolle Fragestellung für solche Konfigurationen. Wenn man nicht grad exorbitant janz vill Geld für eine hochperformante Anbindung ausgeben will, darf oder kann halte ich die Verwendung eines RAID 5 mit Business Critical Festplatten all Basis und das täglich skriptgesteuerte Wegschreiben der Overlay Dateien über USB 3 auf externe SSD Platten oder USB-Sticks für eine akzeptable Lösung.
Viele Grüße, ralfi

Niveau sieht von unten oft wie Arroganz aus ...

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: qemu - snapshots vs overlays

Beitrag von vrms » 04.12.2014 11:50:08

hi Ralfi,

sieht fast so aus als seist du genau DER experte, den ich hier brauche. Habe gereade keine Zeit fuer eine detailliertere Antowrt, melde mich aber in Kuerze mit einer praezisierung, wenn's recht ist

ralfi
Beiträge: 285
Registriert: 02.06.2011 11:16:11
Wohnort: Brandenburg

Re: qemu - snapshots vs overlays

Beitrag von ralfi » 04.12.2014 13:58:20

Ach nee lieber nich Experte, die müssen so viel arbeiten ...
Aber wenn Du Fragen hast, gern. Steht aber natürlich auch alles im Qemu / kvm Wiki.
Viele Grüße, ralfi

Niveau sieht von unten oft wie Arroganz aus ...

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: qemu - snapshots vs overlays

Beitrag von vrms » 06.12.2014 04:27:07

ja, wiki ist natuerlich auch ratsam. Aber ich kapier da was nicht ganz http://wiki.qemu.org/Documentation/CreateSnapshot

der Befehl, der hier genannt wird

Code: Alles auswählen

qemu-img create -f qcow2 -b [base_name].img [snapshot_name].img
ist genau derselbe, den ich benutze um overlays zu erzeugen.

Also: ist das eine Begriffsverwirrung und 'snapshot' ist genau das Gleiche wie 'overlay'? oder kann jemand den Unterschied erklaeren?

ralfi
Beiträge: 285
Registriert: 02.06.2011 11:16:11
Wohnort: Brandenburg

Re: qemu - snapshots vs overlays

Beitrag von ralfi » 06.12.2014 10:30:48

IMHO liegt da ein Verständnisproblem vor.

Overlay-Dateien eignen sich hervorragend für ein Deployment vieler virtueller Machinen mit effizienter Speicherplatzverwendung. Ich installiere bspw. ein Windows 7 / was-auch-immer-Zeuchs als Basis-Image. Dies beinhaltet die Grundinstallation ohne Spezifika wie besondere Anwendungsprogramme oder ähnliches. Darauf aufsetzend kommen in der Overlay-Datei die Besonderheiten, z.B. Name, Domänenanbindung, Office-Programme oder was ich auch immer benötige. Für die nächste virtuelle Maschine verwende ich wieder das gleiche Basis-Image - was ich nun auch tunlichst nicht mehr verändern sollte - und als Overlay-Datei die Spezifika dieser neuen virtuellen Maschine usw.usf.

Also vereinfacht:

Basis-Image + Overlay-1 = virtuelle-Maschine-1
Basis-Image + Overlay-2 = virtuelle-Maschine-2

Natürlich vereinfacht das auch die Datensicherung. Ich brauche mir nur atombombensicher das Basis-Image zu speichern und die viel kleineren Overlay-Dateien täglich auf SSD oder was auch immer zu sichern. Bspw. kann man dann in der Wartungszeit des KVM/QEMU-Servers über ein cron-Skript die Maschine ausschalten, das Overlay-Image speichern und abschließend wieder anschalten. Oder wozu man auch immer Lust hat.

Der Schnappschuss ist es was vollkommen anderes. Dieser sichert den Status der aktuellen Maschine - online oder ausgeschaltet und vorzugsweise im Overlay-Image selbst - damit ich die Maschine bei Problemen nach der Installation von Programmen oder Updates wieder ganz entspannt in den vorherigen Zustand zurückspielen kann.

Ich betone ausdrücklich, dass dies nur EINE von vielen Möglichkeiten ist, das muss und kann sich jeder selbst nach seinen eigenen Bedürfnissen zusammenbasteln..
Viele Grüße, ralfi

Niveau sieht von unten oft wie Arroganz aus ...

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: qemu - snapshots vs overlays

Beitrag von vrms » 09.12.2014 02:12:02

ok, also es gibt snapshots und es gibt copy-on-write images (was ich [moeglicherweise faelschlich] als overlay image bezeichnet hatte)

snapshot ist ro waerend die base rw bleibt
copy-on write-image ist rw waerend deren base ro behandelt werden sollte (cow wird unbrauchbar, sobald die base sich aendert)

allerdings muss der Befehl fuer snapshots doch irgendwie anders sein as qemu-img create -f qcow2 -b [base_name] [snapshot_name] (denn dass ist genau der Befhl um eine copy-on-write image zu erstellen

was ich noch nicht verstehe ist:
  • - kann man einen snapshot unabhaengig vom base image betreiben (und somit anderswo wiederherstellen?
  • - wie gross ist ein snapshot relativ zur base in dem Moment wo man diesen erstellt (ich vermute identisch)
http://wiki.qemu.org/Features/Snapshots ... mmand_flow

hier gibt es noch einen Artikel ueber snapshots als backup konzept, dass ich mir noch zu Gute fuerehn werde
http://wiki.qemu.org/Features/Livebackup

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: qemu - snapshots vs overlays

Beitrag von Dimejo » 09.12.2014 11:16:12

vrms hat geschrieben:allerdings muss der Befehl fuer snapshots doch irgendwie anders sein as qemu-img create -f qcow2 -b [base_name] [snapshot_name] (denn dass ist genau der Befhl um eine copy-on-write image zu erstellen
Mit diesem Befehl kannst Du einen Snapshot anlegen:

Code: Alles auswählen

qemu-img snapshot -c [snapshot_name] [datei_name]
Eine Liste der erstellten Snapshots anzeigen:

Code: Alles auswählen

qemu-img snapshot -l [datei_name]

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: qemu - snapshots vs overlays

Beitrag von vrms » 18.12.2014 11:22:31

Dimejo hat geschrieben: Mit diesem Befehl kannst Du einen Snapshot anlegen:

Code: Alles auswählen

qemu-img snapshot -c [snapshot_name] [datei_name]
Eine Liste der erstellten Snapshots anzeigen:

Code: Alles auswählen

qemu-img snapshot -l [datei_name]
danke, das hoert sich schon mal besser an [datei_name] ist der name des basis image files, richtig?

Soweit ich weiss koennen snapshots im laufenden Betrieb gemacht werden, stimmt das?

ralfi
Beiträge: 285
Registriert: 02.06.2011 11:16:11
Wohnort: Brandenburg

Re: qemu - snapshots vs overlays

Beitrag von ralfi » 19.12.2014 10:02:30

Irgendwie habe ich immer noch das Gefühl dass wir hier aneinander vorbei reden, ich kanns mir nicht erklären ...

Habe nochmal ein bisschen gesucht und rumgespielt wobei mich vor allem das Thema "Livebackup" - also Backup von Festplatten-Images ohne Herunterfahren oder Pausieren der VMs - interessierte. Die gefundene Lösung habe ich probiert und funktionierte bei mir problemlos. Dazu benutzt man die libvirt, virsh und insbesondere die blocklayer Bibliothek.

Hier kann man das nachlesen:
http://kashyapc.com/2013/01/22/live-bac ... blockpull/

Theoretisch sollte da noch viel mehr gehen, insbesondere mit der neuen blockcopy Funktionalität von libvirt. Aber da scheinen die wirklichen Spezies sehr dünn gesät - oder haben viel zu tun und keine Zeit, sich hier rumzutreiben.. ;-)
Viele Grüße, ralfi

Niveau sieht von unten oft wie Arroganz aus ...

Dimejo
Beiträge: 503
Registriert: 21.07.2014 13:37:23

Re: qemu - snapshots vs overlays

Beitrag von Dimejo » 19.12.2014 13:47:37

vrms hat geschrieben:
Dimejo hat geschrieben: Mit diesem Befehl kannst Du einen Snapshot anlegen:

Code: Alles auswählen

qemu-img snapshot -c [snapshot_name] [datei_name]
Eine Liste der erstellten Snapshots anzeigen:

Code: Alles auswählen

qemu-img snapshot -l [datei_name]
danke, das hoert sich schon mal besser an [datei_name] ist der name des basis image files, richtig?
Der Dateiname der Image-Datei von der Du einen Snapshot machen willst, also z.B. debian_7.qcow2
vrms hat geschrieben:Soweit ich weiss koennen snapshots im laufenden Betrieb gemacht werden, stimmt das?
Die Erstellung des Snapshots kann im laufenden Betrieb erfolgen. Wenn Du den Server auf einen bestimmten Snapshot zurücksetzen oder von einem Snapshot eine eigene Image-Datei erstellen willst, dann soll/muss das im augeschalteten Zustand erfolgen.

vrms
Beiträge: 99
Registriert: 25.03.2013 14:04:03

Re: qemu - snapshots vs overlays

Beitrag von vrms » 29.01.2015 04:22:57

ralfi hat geschrieben: Habe nochmal ein bisschen gesucht und rumgespielt wobei mich vor allem das Thema "Livebackup" - also Backup von Festplatten-Images ohne Herunterfahren oder Pausieren der VMs - interessierte. Die gefundene Lösung habe ich probiert und funktionierte bei mir problemlos. Dazu benutzt man die libvirt, virsh und insbesondere die blocklayer Bibliothek.

Hier kann man das nachlesen:
http://kashyapc.com/2013/01/22/live-bac ... blockpull/
das werd ich mir mal in Ruhe zu Gemuete fuehren, Danke

hier http://kashyapc.com/2011/10/04/snapshot ... w2-images/gibt es noch einen anderen blogpost von kashyapc der die Unterschiede und Begriffe recht gut erklaert.
kashyapc.com/2011/10/04/snapshotting-with-libvirt-for-qcow2-images hat geschrieben: At the moment, snapshotting in KVM/QEMU/Libvirt land is supported primarily for QCOW2 disk images. There are several different types of snapshots possible:

Internal snapshot: A type of snapshot, where a single QCOW2 file will hold both the ‘saved state’ and the ‘delta’ since that saved point. ‘Internal snapshots’ are very handy because it’s only a single file where all the snapshot info. is captured, and easy to copy/move around the machines.

External snapshot: Here, the ‘original qcow2 file’ will be in a ‘read-only’ saved state, and the new qcow2 file(which will be generated once snapshot is created) will be the delta for the changes. So, all the changes will now be written to this delta file. ‘External Snapshots’ are useful for performing backups. Also, external snapshot creates a qcow2 file with the original file as its backing image, and the backing file can be /read/ in parallel with the running qemu.

VM State: This will save the guest/domain state to a file. So, if you take a snapshot including VM state, we can then shut off that guest and use the freed up memory for other purposes on the host or for other guests. Internally this calls qemu monitor’s ‘savevm’ command. Note that this only takes care of VM state(and not disk snapshot)

Antworten