virsh ist die Schnittstelle oder der Befehl zum Verwalten der virtuellen Maschinen auf Basis des KVM-Hypervisors. Auf der virsh-Schnittstelle werden virtuelle Maschinen anhand ihrer Domänennamen identifiziert, daher wird virsh im Allgemeinen verwendet, um aktuelle Domänen aufzulisten, Domänen zu erstellen, anzuhalten und herunterzufahren. Virsh steht unter der GNU Lesser General Public License und unterstützt Xen, QEmu, KVM, LXC, OpenVZ, VirtualBox und VMware ESX.
In diesem Tutorial besprechen wir die praktischen Beispiele des virsh-Befehls:
Beispiel 1 :Holen Sie sich die auf dem Host-Rechner installierte KVM-Version.
# virsh version Compiled against library: libvir 0.9.4 Using library: libvir 0.9.4 Using API: QEMU 0.9.4 Running hypervisor: QEMU 0.12.1
Beispiel 2 :Informationen zum KVM-Hypervisor(Host)-Speicher abrufen.
# virsh nodememstats total : 65979984 kB free : 44783040 kB buffers: 604388 kB cached : 16473328 kB
Beispiel 3 :KVM-Hypervisor-CPU-Informationen abrufen.
# virsh nodecpustats user: 122779270000000 system: 1304262720000000 idle: 470011564690000000 iowait: 110371800000000
Beispiel 4 :Erhalten Sie eine Anzahl virtueller Gastmaschinen, unabhängig vom Status wie z. B. ausgeführt, gespeichert, heruntergefahren usw.
# virsh list --all Id Name State ---------------------------------- 3 test running
Beispiel 5 :Alle für den KVM-Hypervisor verfügbaren Netzwerke abrufen.
# virsh net-list Name State Autostart ----------------------------------------- default active yes
Beispiel 6 :Hardwareinformationen eines KVM-Gastcomputers abrufen.
Syntax:
# virsh dominfo BaseMachine
Beispiel:
# virsh dominfo test Id: 3 Name: test UUID: 9ae96029-6c3d-8bd1-6e19-926183f89074 OS Type: hvm State: running CPU(s): 4 CPU time: 26862.0s Max memory: 4194304 kB Used memory: 4194304 kB Persistent: yes Autostart: disable Managed save: no
Beispiel 7 :Fahren Sie die virtuelle Maschine herunter.
# virsh shutdown machine_name
Beispiel 8 :Starten Sie die virtuelle Maschine neu.
# virsh reboot machine_name
Beispiel 9 :Maschine ausschalten oder zerstören.
# virsh destroy machine_name
Beispiel 10 :Starten Sie die virtuelle Maschine.
# virsh start machine_name
Beispiel 11 :Mit virt-viewer eine Verbindung zu einer bestimmten virtuellen Maschine herstellen.
Syntax:
# virt-viewer -c qemu:///system machine_name
Beispiel:
# virt-viewer -c qemu:///system test
Beispiel 12 :Neue virtuelle Maschine mit virt-install erstellen.
Angenommen, ich möchte Centos 6.X auf 10 GB Speicherplatz installieren und dann zuerst eine img-Datei mit dem folgenden Befehl erstellen:
# dd if=/dev/zero of=/var/lib/libvirt/images/centos-linux.img bs=1M count=10240
Führen Sie dann den Befehl virt-install aus:
# virt-install --virt-type kvm --name CentOS-Linux --ram 2048 --vcpus=2 --disk path=/var/lib/libvirt/images/centos-linux.img --network bridge=br0 --graphics vnc --cdrom /root/CentOS-6.2-x86_64-bin-DVD1.iso --os-variant=RHEL6
Der folgende Bildschirm wird angezeigt, wenn wir den obigen Befehl ausführen:
Beispiel 13 :Live-Migration einer virtuellen Maschine von einem Hypervisor zu einem anderen mit dem Befehl virsh.
Grundvoraussetzungen für die Live-Migration:
- Das Gast-Image muss sich auf einem gemeinsam genutzten Speicher befinden und über iSCSI, NFS, GFS2 oder Fibre Channel zugänglich sein.
- Der gemeinsam genutzte Speicher muss auf beiden Hosts im selben Pfad bereitgestellt werden.
- Beide Gäste müssen dieselbe KVM-Version ausführen.
- Beide Gäste müssen dieselbe Netzwerkkonfiguration und Bridging-Konfiguration haben (ihre IPs müssen unterschiedlich sein)
# virsh migrate --live machine_name qemu+ssh://destination_server/system