Virtualisierung · 5 min read · Dec 15, 2025

Virtualisierung mit KVM auf einem CentOS 6.4 Server

Virtualisierung mit KVM auf einem CentOS 6.4 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 CentOS 6.4 Server zu erstellen und auszuführen. Ich werde zeigen, wie man bildbasierte virtuelle Maschinen sowie 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 CentOS 6.4 Server mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100 als meinen KVM-Host.

Ich hatte SELinux auf meinem CentOS 6.4 System deaktiviert. Ich habe nicht mit aktiviertem SELinux getestet; es könnte funktionieren, aber wenn nicht, sollten Sie SELinux besser ebenfalls deaktivieren:

vi /etc/selinux/config

Setzen Sie SELINUX=disabled…

| # Diese Datei steuert den Status von SELinux auf dem System. # SELINUX= kann einen dieser drei Werte annehmen: # enforcing - SELinux-Sicherheitsrichtlinie wird durchgesetzt. # permissive - SELinux gibt Warnungen aus, anstatt durchzusetzen. # disabled - Keine SELinux-Richtlinie wird geladen. SELINUX=disabled # SELINUXTYPE= kann einen dieser beiden Werte annehmen: # targeted - Zielprozesse sind geschützt, # mls - Multi Level Security Schutz. SELINUXTYPE=targeted |

… und starten Sie neu:

reboot  

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 einen Fedora 17 Desktop.

2 KVM installieren

CentOS 6.4 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:

[root@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 pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
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 pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#

Wenn nichts angezeigt wird, unterstützt Ihr Prozessor keine Hardwarevirtualisierung, und Sie müssen hier aufhören.

Jetzt importieren wir die GPG-Schlüssel für Softwarepakete:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

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

yum install kvm libvirt python-virtinst qemu-kvm

Dann starten Sie den libvirt-Daemon:

/etc/init.d/libvirtd start

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

virsh -c qemu:///system list

Es sollte etwas wie folgt anzeigen:

[root@server1 ~]# virsh -c qemu:///system list
Id Name State

———————————-

[root@server1 ~]#

Wenn stattdessen ein Fehler angezeigt wird, ist etwas schiefgegangen.

Als nächstes müssen wir auf unserem Server eine Netzwerkbrücke einrichten, damit unsere virtuellen Maschinen von anderen Hosts wie physische Systeme im Netzwerk erreicht werden können.

Dazu installieren wir das Paket bridge-utils…

yum install bridge-utils

… und konfigurieren eine Brücke. Erstellen Sie die Datei /etc/sysconfig/network-scripts/ifcfg-br0 (bitte verwenden Sie die Werte IPADDR, PREFIX, GATEWAY, DNS1 und DNS2 aus der Datei /etc/sysconfig/network-scripts/ifcfg-eth0); stellen Sie sicher, dass Sie TYPE=Bridge verwenden, nicht TYPE=Ethernet:

vi /etc/sysconfig/network-scripts/ifcfg-br0

| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |

Ändern Sie /etc/sysconfig/network-scripts/ifcfg-eth0 wie folgt (kommentieren Sie BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 und DNS2 aus und fügen Sie BRIDGE=br0 hinzu):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

| DEVICE="eth0" #BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="73cb0b12-1f42-49b0-ad69-731e888276ff" HWADDR=00:1E:90:F3:F0:02 #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" BRIDGE=br0 |

Starten Sie das Netzwerk neu…

/etc/init.d/network restart

… und führen Sie aus

ifconfig

Es sollte jetzt die Netzwerkbrücke (br0) anzeigen:

[root@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:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460 (460.0 b) TX bytes:2298 (2.2 KiB)

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:18455 errors:0 dropped:0 overruns:0 frame:0
TX packets:11861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26163057 (24.9 MiB) TX bytes:1100370 (1.0 MiB)
Interrupt:25 Base address:0xe000

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:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2456 (2.3 KiB) TX bytes:2456 (2.3 KiB)

virbr0 Link encap:Ethernet HWaddr 52:54:00:AC:AC:8F
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

[root@server1 ~]#

3 Installation von virt-viewer oder virt-manager auf Ihrem Fedora 17 Desktop

Fedora 17 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 einen Fedora 17 Desktop verwenden.

Werden Sie root…

su

… und führen Sie aus…

yum install virt-manager libvirt qemu-system-x86 openssh-askpass

… um virt-manager zu installieren.

(Wenn Sie einen Ubuntu 12.04 Desktop verwenden, können Sie virt-manager wie folgt installieren:

sudo apt-get install virt-manager

)

4 Erstellen eines Debian Squeeze Gastes (bildbasiert) über die Kommandozeile

CentOS 6.4 KVM-Host:

Kehren wir nun zu unserem CentOS 6.4 KVM-Host zurück.

Werfen Sie einen Blick auf

man virt-install

um zu lernen, wie man virt-install verwendet.

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 --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 Fedora-Desktop aus erstellt, und virt-manager nach ISO-Images im Verzeichnis /var/lib/libvirt/images/ sucht)…

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.5-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.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

Die Ausgabe ist wie folgt:

[root@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.5-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm

Starte Installation…
Zuweisen von ‘vm10.img’ | 12 GB 00:00
Erstellen der Domain… | 0 B 00:00
Domaininstallation noch im Gange. Sie können sich erneut mit der Konsole verbinden, um den Installationsprozess abzuschließen.
[root@server1 ~]#

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.