Forum: PC Hard- und Software Linux virt-manager: Wie Schnappschuss vom Basis Image erstellen?


von Nemopuk (nemopuk)


Angehängte Dateien:

Lesenswert?

Es geht um die "Virtuelle Maschinenverwaltung" von QUEMU in Debian.

Nach der Basis-Installation möchte ich mehrere Snapshots für Experimente 
anlegen, die beide jeweils von der Basis abgeleitet sind. Danach möchte 
ich zwischen diesen Schnappschüssen wechseln können, um darin 
unterschiedliche Experimente durchzuführen.

In der GUI habe ich allerdings keinen Weg gefunden, das zu 
bewerkstelligen.

Alternativ könnte ich mir vorstellen, mehrere Snapshots von snapshot1 
abzuleiten, aber auch das habe ich nicht hinbekommen. Siehe mein 
misslungener Versuch im Bildschirmfoto.

Zweites Problem: Jedes mal wenn ich zwischen den Schnappschüssen 
wechsele, gehen meine Änderungen verloren. Ich will aber hin und her 
wechseln, ohne die Änderungen zu verlieren. Also im Prinzip wie vier 
unabhängige VM, aber ich brauche sie nur abwechselnd (nicht 
gleichzeitig) und dachte mir, das ich mir damit ersparen kann, das 
Windows 4x installieren zu müssen (mit dem damit verbundenen 
Speicherplatz).

Vielleicht habe ich das Konzept der Schnappschüsse noch nicht begriffen. 
Kennt sich da jemand aus?

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Snapshot mode

If you use the option -snapshot, all disk images are considered as read 
only. When sectors in written, they are written in a temporary file 
created in /tmp. You can however force the write back to the raw disk 
images by using the commit monitor command (or C-a s in the serial 
console).

QEMU hat eine prima HTML Dokumentation.

von Richie (mikro123)


Lesenswert?

Nemopuk schrieb:
> In der GUI habe ich allerdings keinen Weg gefunden, das zu
> bewerkstelligen.

Du musst jedesmal den Original-Snapshot starten, dann Deine Änderungen 
vornehmen und einen neuen Snapshot erstellen.
Dann wieder den Original-Snapshot starten, Änderungen vornehmen und 
wieder einen Snapshot machen.


> Zweites Problem: Jedes mal wenn ich zwischen den Schnappschüssen
> wechsele und sie starte, gehen darin alle Änderungen verloren. Ich will
> aber hin und her wechseln, ohne die Änderungen zu verlieren. Also im
> Prinzip wie vier unabhängig VM, aber ich brauche sie nur abwechselnd
> (nicht gleichzeitig) und dachte mir, das ich mir damit ersparen kann,
> das Windows 4x installieren zu müssen (mit dem damit verbundenen
> Speicherplatz).
>
> Vielleicht habe ich das Konzept der Schnappschüsse noch nicht begriffen.
> Kennt sich da jemand aus?

Nur der aktuelle Snapshot wird gespeichert.
Das heisst, dass wenn Du auf einen anderen Snapshot wechseln möchtest, 
musst Du wieder einen Snapshot vom aktuell laufenden Snapshot machen 
(und den aktuell laufenden gegebenenfalls löschen). Sonst werden die 
Änderungen nicht gespeichert, da alle Daten seit dem Start des Snapshots 
gelöscht werden, wenn Du einen anderen Snapshot startest.

von Nemopuk (nemopuk)


Lesenswert?

Also gibt es dort nur eine einfache Linie von Snapshots?
1
basis -> snapshot1 -> snapshot2 -> snapshot3 -> tmp aktuell

Die Kommandozeilen Tools erlauben allerdings, eine Baumstruktur von 
Images aufzubauen. Zumindest scheint es so. Ich probiere es mal ohne 
GUI.

: Bearbeitet durch User
von Richie (mikro123)


Lesenswert?

Nemopuk schrieb:
> Also gibt es dort nur eine einfache Linie von Snapshots?

Nein.
Du erstellst einfach einen neuen Snapshot von irgendeinem Snapshot im 
Baum.

Also z.B.

basis -> snapshot1 -> snapshot2 -> snapshot3
      -> snapshot4 -> snapshot5
      -> snapshot6

Du musst halt vor der Erstellung eines neuen Snapshots im Baum immer den 
Knoten darüber aktivieren. Dann entsteht der neue Snapshot automatisch 
an der richtigen Stellen.



>
1
> basis -> snapshot1 -> snapshot2 -> snapshot3 -> tmp aktuell
2
>
>
> Die Kommandozeilen Tools erlauben allerdings, eine Baumstruktur von
> Images aufzubauen. Zumindest scheint es so. Ich probiere es mal ohne
> GUI.

von Nemopuk (nemopuk)


Angehängte Dateien:

Lesenswert?

Richie schrieb:
> Du musst halt vor der Erstellung eines neuen Snapshots im Baum immer den
> Knoten darüber aktivieren. Dann entsteht der neue Snapshot automatisch
> an der richtigen Stellen.

Danke, ich denke, das war der Knackpunkt. Jetzt sieht es wie im Bild 
aus. Man kann also doch Baumstrukturen anlegen. Ich habe es jetzt wohl 
etwas übertrieben :-)

Eine Frage noch:

Wenn ich von z1-snapshot1 zu z2-snapshot1 wechsele, gehen alle aktuell 
temporären Änderungen (im Zweig 1) verloren. Damit sie nicht verloren 
gehen, kann ich im jeweiligen Zweig einen weiteren Snapshot anlegen. So 
sammeln sich im Laufe der Zeit aber viele Schnappschüsse an.

Kann man die aktuellen Änderungen an einem Snapshot irgendwie eleganter 
persistieren (ohne noch mehr Snapshots anzulegen)?

: Bearbeitet durch User
Beitrag #7932481 wurde vom Autor gelöscht.
von Norbert (der_norbert)


Lesenswert?

Nemopuk schrieb im Beitrag #7932481:
> Ich habe gefunden!
>
> Damit die Änderungen in einem Snapshot erhalten bleiben, muss ich
> wechseln ohne unten links auf den Play Button zu klicken. Es wird dann
> der neue gewählte Snapshot gestartet, obwohl die grüne Markierung noch
> woanders hängt.
>
> (Wer denkt sich so eine GUI aus?)

Deshalb gibt's in QEMU die Konsole. ;-)
1
(qemu) info block
2
ide0-hd0 (#block383): base.qcow2 (raw)
3
    Attached to:      /machine/unattached/device[23]
4
    Cache mode:       writeback
5
6
(qemu) snapshot_blkdev ide0-hd0 SNAP1
7
8
(qemu) info block
9
ide0-hd0 (#block857): SNAP1 (qcow2)
10
    Attached to:      /machine/unattached/device[23]
11
    Cache mode:       writeback
12
    Backing file:     base.qcow2 (chain depth: 1)

Man dann das Original starten
1
qemu-system-x86_64 -boot c -hda base.qcow2
oder den SNAP1
1
qemu-system-x86_64 -boot c -hda SNAP1
oder irgendwelche weiteren.

SNAP1 (und weitere) hat als Backing file das base.qcow2
Und die SNAPs behalten die Änderungen ohne das base.qcow2 anzufassen.

von Nemopuk (nemopuk)


Lesenswert?

Norbert, ich habe den Beitrag "Ich habe gefunden!" gelöscht, weil das 
doch nicht funktioniert hatte.

Ich denke der Knackpunkt ist, dass die GUI bei jedem Snapshot Wechsel 
ein neues temporäres Image anlegt (das auf dem gewählten Snapshot 
basiert). Vermutlich hatte der GUI Entwickler die Snapshots als "Backup" 
Punkte vorgesehen, zu denen man zurück gehen kann.

Ein wechsel zwischen mehreren Arbeits-Zweigen deckt die GUI wohl nicht 
ab (es sei denn, ich habe etwas übersehen).

Wie du sagst will ich eigentlich kein temporäres Image starten, sondern 
den Snapshot selbst. In der Konsole geht das.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Nemopuk schrieb:
> Norbert, ich habe den Beitrag "Ich habe gefunden!" gelöscht, weil
> das
> doch nicht funktioniert hatte.
>
> Ich denke der Knackpunkt ist, dass die GUI bei jedem Snapshot Wechsel
> ein neues temporäres Image anlegt (das auf dem gewählten Snapshot
> basiert).
>
> Wie du sagt will ich aber eigentlich kein temporäres Image starten,
> sondern den Snapshot selbst. Oder alternativ die Änderungen vom
> temporären Image nach Abschluss der Arbeiten in seine Basis (mein
> Snapshot) mergen.
>
> In der Konsole geht das ja. Das muss doch auch in der GUI gehen, denke
> ich.

Wie gesagt, BASIS image anlegen und starten.
In der QEMU-Konsole:
1
(qemu) snapshot_blkdev ide0-hd0 SNAP1
1
(qemu) snapshot_blkdev ide0-hd0 SNAP2
System herunter fahren.
SNAP1 und 2 ist nun erstellt (und basiert auf BASIS)
1
~/tmp$ l -h
2
-rw------- 1 norbert norbert  16M  3. Sep 11:49 base.qcow2
3
-rw------- 1 norbert norbert 448K  3. Sep 11:43 SNAP1
4
-rw------- 1 norbert norbert 193K  3. Sep 11:50 SNAP2

System kann nun mit SNAP1 oder SNAP2 gestartet werden (anstelle von 
BASIS)
Alle individuellen Änderungen in den SNAPs bleiben erhalten.

Sowohl Konsole als auch GUI haben ihre Vorteile:
GUI: Da weiß man was man klickt.
Konsole: Da weiß man was man macht.

Edit:
1
~/tmp$ file SN*
2
SNAP1:      QEMU QCOW2 Image (v3), has backing file (path base.qcow2), 16777216 bytes
3
SNAP2:      QEMU QCOW2 Image (v3), has backing file (path base.qcow2), 16777216 bytes

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Norbert schrieb:
> Sowohl Konsole als auch GUI haben ihre Vorteile:
> GUI: Da weiß man was man klickt.
> Konsole: Da weiß man was man macht.

Korrekt. Ich habe jetzt auch begriffen, dass die GUI mit ihren Snapshots 
ein anderes Ziel verfolgt, als ich mit meinen Zweigen.

Ich kann die Zweige (du hast die SNAP1 und SNAP2 genannt) in der Konsole 
wie gewünscht anlegen und dann mit der GUI für jeden Zweig eine eigene 
VM anlegen, die dann das vorbereitete Image verwendet.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Nemopuk schrieb:
> Ich kann die Images in der Konsole wie gewünscht anlegen und dann mit
> der GUI für jeden "Zweig" eine eigene VM konfigurieren, die dann das
> vorbereitete Image verwendet.

Geht.
Man kann auch ein (oder zwei) bash scripts mit dem Aufruf anlegen und 
sich dann passende (Starter)Icons auf den Desktop legen. Wenn man so 
faul wie ich es bin, ist.

PS. Womöglich kann deine GUI sogar die Parameter dafür 
anzeigen/ausgeben.

von Nemopuk (nemopuk)


Lesenswert?

Die virt-manager GUI erinnert mich sehr stark an Oracles VirtualBox.

Aber wenn man schon die viel flexiblere Open-Source Lösung hat, will man 
sie auch auskosten :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.