Virtualisierung · 5 min read · Jan 20, 2026

Virtualisierung mit KVM auf einem OpenSUSE 12.1 Server

Virtualisierung mit KVM auf einem OpenSUSE 12.1 Server

Version 1.0
Autor: Falko Timme
Folge mir auf Twitter

Dieser Leitfaden erklärt, wie Sie KVM installieren und verwenden können, um virtuelle Maschinen auf einem OpenSUSE 12.1 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.1 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 benutze hier ein OpenSUSE 12.1 Desktop.

2 KVM installieren

OpenSUSE 12.1 KVM-Host:

Überprüfen Sie zuerst, ob Ihre CPU Hardwarevirtualisierung unterstützt - wenn dies der Fall ist, sollte der Befehl

egrep '(vmx|svm)' --color=always /proc/cpuinfo

etwas 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.

Eine der Abhängigkeiten, die installiert wird, wenn wir KVM installieren, ist Python 2.7, aber Python 2.7 steht im Konflikt mit dem Paket patterns-openSUSE-minimal_base-conflicts. Daher müssen wir dieses Paket zuerst deinstallieren. Dazu starten Sie YaST:

yast2

Gehen Sie in YaST zu Software > Softwareverwaltung:

Geben Sie patterns-openSUSE-minimal_base-conflicts in das Suchfeld ein und drücken Sie ENTER. Das Paket sollte im Hauptfenster als installiert ( i) aufgeführt sein. Markieren Sie das Paket und drücken Sie die ENTER-Taste, bis ein Minuszeichen ( -) vor dem Paket steht (das Minus steht für Deinstallation), und drücken Sie dann [Akzeptieren]:

Verlassen Sie danach YaST.

Um KVM und virtinst (ein Tool zum Erstellen virtueller Maschinen) zu installieren, führen wir aus

yast2 -i kvm libvirt libvirt-python qemu virt-manager

Dann erstellen Sie die Systemstartlinks für libvirtd…

systemctl enable libvirtd.service

… und starten Sie den libvirt-Daemon:

systemctl start libvirtd.service

Um zu überprüfen, ob KVM erfolgreich installiert wurde, führen Sie aus

virsh -c qemu:///system list

Es sollte etwas wie folgt angezeigt werden:

server1:~ # virsh -c qemu:///system list  
WARNING: no socket to connect to  
 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…

yast2 -i 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 Meldung “Sie haben kein gültiges vim-Binärpaket installiert. Bitte installieren Sie entweder “vim”, “vim-enhanced” oder “gvim”.” erhalten, führen Sie bitte aus

yast2 -i vim

um vi zu installieren und versuchen Sie es erneut.)

Ä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.service

Führen Sie danach aus

ifconfig

Es 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  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:39 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:4921 (4.8 Kb)  TX bytes:1708 (1.6 Kb)  
  
eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:821 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:636 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:313341 (305.9 Kb)  TX bytes:108982 (106.4 Kb)  
          Interrupt:41 Base address:0x8000  
  
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:2720 (2.6 Kb)  TX bytes:2720 (2.6 Kb)  
  
server1:~ #

3 Installation von virt-manager auf Ihrem OpenSUSE 12.1 Desktop

OpenSUSE 12.1 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.1 Desktop verwenden.

Werden Sie root…

su

… und führen Sie aus…

yast2 -i 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 Gast (Bildbasiert)

OpenSUSE 12.1 KVM-Host:

Kehren wir nun zu unserem OpenSUSE 12.1 KVM-Host zurück.

Sehen Sie sich an

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, 512MB RAM, zwei virtuellen CPUs und dem Disk-Image /var/lib/libvirt/images/vm10.img (mit einer Größe von 12GB) 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 --hvm

Natü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.1 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 --hvm

Die 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  
WARNING: no socket to connect to  

Starting install...  
Allocating 'vm10.img'       |  12 GB     00:00  
Creating domain...          |    0 B     00:00  
Domain installation still in progress. You can reconnect to  
die Konsole, um den Installationsprozess abzuschließen.  
server1:~ #
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.