Virtualisierung · 5 min read · Dec 23, 2025
Virtualisierung mit KVM auf einem OpenSUSE 12.2 Server
Virtualisierung mit KVM auf einem OpenSUSE 12.2 Server
Version 1.0
Autor: Falko Timme
Folgen Sie mir auf Twitter
Dieser Leitfaden erklärt, wie Sie KVM installieren und verwenden können, um virtuelle Maschinen auf einem OpenSUSE 12.2 Server zu erstellen und auszuführen. Ich werde zeigen, wie man bildbasierte virtuelle Maschinen und auch virtuelle Maschinen erstellt, die ein logisches Volume (LVM) verwenden. KVM steht für Kernel-based Virtual Machine und nutzt die Hardwarevirtualisierung, d.h. Sie benötigen eine CPU, die Hardwarevirtualisierung unterstützt, z.B. Intel VT oder AMD-V.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
Ich verwende hier einen OpenSUSE 12.2 Server mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100 als meinen KVM-Host.
Wir benötigen auch ein Desktop-System, auf dem wir virt-manager installieren, damit wir eine Verbindung zur grafischen Konsole der virtuellen Maschinen herstellen können, die wir installieren. Ich verwende hier ein OpenSUSE 12.2 Desktop.
2 KVM installieren
OpenSUSE 12.2 KVM-Host:
Überprüfen Sie zunächst, ob Ihre CPU Hardwarevirtualisierung unterstützt - wenn dies der Fall ist, sollte der Befehl
egrep '(vmx|svm)' --color=always /proc/cpuinfoetwas anzeigen, z.B. so:
server1:~ # egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
server1:~ #
Wenn nichts angezeigt wird, unterstützt Ihr Prozessor keine Hardwarevirtualisierung, und Sie müssen hier aufhören.
Um KVM und virtinst (ein Tool zur Erstellung virtueller Maschinen) zu installieren, führen wir aus
zypper install kvm libvirt libvirt-python qemu virt-managerLeider gibt es einen Konflikt zwischen libvirt-python und dem Paket patterns-openSUSE-minimal_base-conflicts. Daher müssen wir uns entscheiden, dieses Paket zu deinstallieren:
Problem: libvirt-python-0.9.11.4-1.2.1.x86_64 benötigt python = 2.7, aber diese Anforderung kann nicht bereitgestellt werden
nicht installierbare Anbieter: python-2.7.3-3.6.1.x86_64[openSUSE-12.2-1.6]
python-2.7.3-3.6.1.i586[repo-oss]
python-2.7.3-3.6.1.x86_64[repo-oss]
Lösung 1: Folgende Aktionen werden durchgeführt:
installieren Sie libvirt-python-0.9.11.4-1.2.1.x86_64 nicht
installieren Sie virt-manager-0.9.4-1.6.1.x86_64 nicht
Lösung 2: Folgende Aktionen werden durchgeführt:
installieren Sie virt-manager-0.9.4-1.6.1.x86_64 nicht
installieren Sie libvirt-python-0.9.11.4-1.2.1.x86_64 nicht
Lösung 3: Deinstallation von patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64
Lösung 4: brechen Sie libvirt-python-0.9.11.4-1.2.1.x86_64, indem Sie einige seiner Abhängigkeiten ignorieren
Wählen Sie aus den obigen Lösungen nach Nummer oder abbrechen [1/2/3/4/c] (c): <– 3
Dann erstellen Sie die Systemstartlinks für libvirtd…
systemctl enable libvirtd.service… und starten Sie den libvirt-Daemon:
systemctl start libvirtd.serviceUm zu überprüfen, ob KVM erfolgreich installiert wurde, führen Sie aus
virsh -c qemu:///system listEs sollte etwas wie folgt angezeigt werden:
server1:~ # virsh -c qemu:///system list
WARNUNG: kein Socket zum Verbinden
Id Name State
———————————-
server1:~ #
Wenn stattdessen ein Fehler angezeigt wird, ist etwas schiefgelaufen.
Als nächstes müssen wir einen Netzwerkbrücke auf unserem Server einrichten, damit unsere virtuellen Maschinen von anderen Hosts aus wie physische Systeme im Netzwerk zugänglich sind.
Dazu installieren wir das Paket bridge-utils…
zypper install bridge-utils… und konfigurieren eine Brücke.
Um die Brücke zu konfigurieren, erstellen Sie die Datei /etc/sysconfig/network/ifcfg-br0 wie folgt (stellen Sie sicher, dass Sie die IPADDR-Einstellung aus der Datei /etc/sysconfig/network/ifcfg-eth0 verwenden):
vi /etc/sysconfig/network/ifcfg-br0| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |
(Wenn Sie die Nachricht erhalten, dass Sie kein gültiges vim-Binärpaket installiert haben, installieren Sie bitte entweder “vim”, “vim-enhanced” oder “gvim”. Führen Sie dazu aus
zypper install vimum vi zu installieren und es erneut zu versuchen.)
Ändern Sie /etc/sysconfig/network/ifcfg-eth0 wie folgt (setzen Sie IPADDR auf 0.0.0.0 und ändern Sie STARTMODE auf hotplug):
vi /etc/sysconfig/network/ifcfg-eth0| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |
Starten Sie dann das Netzwerk neu:
systemctl restart network.serviceFühren Sie danach aus
ifconfigEs sollte jetzt die Netzwerkbrücke (br0) anzeigen:
server1:~ # ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
in6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12716 (12.4 Kb) TX bytes:5961 (5.8 Kb)
eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
in6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:131711 errors:0 dropped:0 overruns:0 frame:0
TX packets:80954 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:185764801 (177.1 Mb) TX bytes:6374023 (6.0 Mb)
Interrupt:41 Base address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
in6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:860 (860.0 b) TX bytes:860 (860.0 b)
server1:~ #
3 Installation von virt-manager auf Ihrem OpenSUSE 12.1 Desktop
OpenSUSE 12.2 Desktop:
Wir benötigen ein Mittel, um eine Verbindung zur grafischen Konsole unserer Gäste herzustellen - wir können dafür virt-manager verwenden. Ich gehe davon aus, dass Sie ein OpenSUSE 12.2 Desktop verwenden.
Werden Sie root…
su… und führen Sie aus…
zypper install virt-manager libvirt… um virt-manager zu installieren.
(Wenn Sie ein Ubuntu 11.10 Desktop verwenden, können Sie virt-manager wie folgt installieren:
sudo apt-get install virt-manager)
4 Erstellen eines Debian Squeeze Gastes (bildbasiert)
OpenSUSE 12.2 KVM-Host:
Kehren wir nun zu unserem OpenSUSE 12.2 KVM-Host zurück.
Werfen Sie einen Blick auf
virt-install --help um zu lernen, wie man es benutzt.
Wir werden unsere bildbasierten virtuellen Maschinen im Verzeichnis /var/lib/libvirt/images/ erstellen, das automatisch erstellt wurde, als wir KVM im zweiten Kapitel installiert haben.
Um einen Debian Squeeze Gast (im Bridging-Modus) mit dem Namen vm10, 512 MB RAM, zwei virtuellen CPUs und dem Disk-Image /var/lib/libvirt/images/vm10.img (mit einer Größe von 12 GB) zu erstellen, legen Sie die Debian Squeeze Netinstall-CD in das CD-Laufwerk ein und führen Sie aus
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmNatürlich können Sie auch ein ISO-Image der Debian Squeeze Netinstall-CD erstellen (bitte erstellen Sie es im Verzeichnis /var/lib/libvirt/images/, da ich später zeigen werde, wie man virtuelle Maschinen über virt-manager von Ihrem OpenSUSE 12.2 Desktop aus erstellt, und virt-manager wird nach ISO-Images im Verzeichnis /var/lib/libvirt/images/ suchen)…
dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.0-amd64-netinst.iso… und verwenden Sie das ISO-Image im virt-install-Befehl:
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmDie Ausgabe ist wie folgt:
server1:~ # virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 –disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.0-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
WARNUNG: kein Socket zum Verbinden
Installation starten…
Zuweisen von ‘vm10.img’ | 12 GB 00:00
Erstellen der Domain… | 0 B 00:00
Die Installation der Domain ist noch im Gange. Sie können sich erneut mit der Konsole verbinden, um den Installationsprozess abzuschließen.
server1:~ #
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.