Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:sysadmin:tools:kvm

KVM + virsh + virt-clone Notizen

virsh domains

zeige laufende / alle VMs an

# virsh list
 Id Name                 State
----------------------------------
 20 web                running
# virsh list --all
 Id Name                 State
----------------------------------
 20 web                  running
  - demo                 shut off
  - dev                  paused

starte eine VM

# virsh start demo
Domain demo started

Pause machen

braucht man z.B. wenn man einen Klon anlegen will

# virsh suspend demo
Domain demo suspended

Die Pause beenden mit virsh resume <name>

VM stoppen: shutdown, destroy

Freundlich runterfahren:

# virsh shutdown web
Domain web is being shutdown

virsh shutdown funktioniert nur, wenn acpid installiert ist. Das selbe gilt natürlich für die GUI: Wenn im virt-manager der Shutdown-Knopf nicht funktioniert, muss man einem Ubuntu-Client per apt get acpid 1) auf die Sprünge helfen.

böse ausschalten "Netzstecker ziehen":

# virsh destroy demo
Domain demo destroyed

VM Klonen

Voraussetzung:

  • alle Resourcen (VMS, virtuelles Netzwerk, Storage, …) werden mit libvirt verwaltet.
  • die zu klonende Maschine pausiert oder ist gestoppt
  • virt-clone (bei Ubuntu im Paket virtinst)

Aufgabe: Die virtuelle Maschine "demo" klonen und dabei angeben, wie die logical Volumes heissen sollen.

Die neue virtuelle Maschine nennen wir "web2". Sie muss natürlich die selbe Anzahl von virtuellen Festplatten verwenden.

virt-clone -o demo -n web2 --file /dev/vg0/web2root --file /dev/vg0/web2swap

Output:

Allocating 'web2root'                        | 4.0 GB     01:35     
Allocating 'web2swap'                        | 1.0 GB     00:34
Clone 'web2' created successfully.

Beispiel 2

Eine VM die Image-Files verwendet, klonen, dabei das Skript den Zielnahmen vergeben lassen:

virt-clone -o dev --auto-clone
Allocating 'dev-clone.qcow2'              | 4.0 GB     00:25     
Allocating 'dev-clone.img'                | 1.0 GB     00:02     

Clone 'dev-clone' created successfully.

Allerdings muß man dann mit den weniger schönen Namen für VM und Storage-Dateien oder Volumes leben, die das Script vergibt.

Größe von RAW Images / Sparse-Files anzeigen

Das zweite Image im Beispiel war hier ein Raw-File vom Swap, dass als Sparse-Datei weniger Platz auf der Platte braucht, als es auf den ersten Blick aussieht:

# ls -lsk dev-clone.img
8 -rw------- 1 root root 1048576 Jan  7 23:20 dev-clone.img

#du -sh dev-clone.img 
8.0K    dev-clone.img

Raw-Images in Qemu qcow2 Images umwandeln

Wenn man auf die Größen achtgibt, kann man auch von Image-Files in Logical Volumes und zurück klonen. Beim Weg von Logical Volumes auf Image-File erhält man ziemlich große RAW-Files. Um da mit den virtuellen leeren Festplatten nicht zu viel Platz zu verbrauchen, kann die in komprimierte qcow2-Images umwandeln:

# qemu-img convert -c -O qcow2 dev2root dev2root.qcow2
# ls -lsk dev2root*
4194384 -rw------- 1 root root 4194304 Jan 11 11:45 dev2root
 466076 -rw-r--r-- 1 root root  467840 Jan 11 12:17 dev2root.qcow2

Wenn man die VM auf dem selben Server laufen lässt wie vorher, muß man sie in der Config der jeweiligen Maschine noch umhängen.

entweder mit dem Virt-Manager als neue Hardware hinzufügen oder mit virsh edit dev2 die passenden Stellen im XML anpassen:

alt:

<driver name='qemu' type='raw'/>
<source file='/data/images/dev2root'/>

neu:

<driver name='qemu' type='qcow2'/>                    
<source file='/data/images/dev2root.qcow2'/> 

qcow2 Plattenimages mounten

guestmount -a tmp-ubuntu-16.04.qcow2 -m /dev/sda1 /mnt

und unmounten

guestunmount /mnt

(Das nötige Paket heisst bei Ubuntu und Redhat "libguestfs-tools")

1) bei Suse: zypper in acpid
die Syntax für yum und portage und emerge und … überlasse ich dem geneigten Leser oder der zornigen Leserin als Übung, so er oder sie das braucht
de/sysadmin/tools/kvm.txt · Zuletzt geändert: 2017-03-28 12:39 von hella

Seiten-Werkzeuge