Virtualisierung · 5 min read · Feb 01, 2026
Virtualisierung mit KVM auf einem Fedora 10 Server
Virtualisierung mit KVM auf einem Fedora 10 Server
Version 1.0
Autor: Falko Timme
Dieser Leitfaden erklärt, wie Sie KVM installieren und verwenden können, um virtuelle Maschinen auf einem Fedora 10 Server zu erstellen und auszuführen. Ich werde zeigen, wie man bildbasierte virtuelle Maschinen erstellt und auch virtuelle Maschinen, die ein logisches Volume (LVM) verwenden. KVM steht für Kernel-basierte 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 Fedora 10 Server mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100 als meinen KVM-Host.
Bevor wir beginnen, stellen Sie sicher, dass SELinux deaktiviert ist. Öffnen Sie /etc/selinux/config…
vi /etc/selinux/config… und setzen Sie SELINUX auf disabled:
| # Diese Datei steuert den Status von SELinux im System. # SELINUX= kann einen dieser drei Werte annehmen: # enforcing - SELinux-Sicherheitsrichtlinie wird durchgesetzt. # permissive - SELinux gibt Warnungen aus, anstatt durchzusetzen. # disabled - Keine SELinux-Richtlinie ist geladen. SELINUX=disabled # SELINUXTYPE= kann einen dieser beiden Werte annehmen: # targeted - Zielprozesse sind geschützt, # mls - Multi Level Security Schutz. SELINUXTYPE=targeted |
Führen Sie
setenforce 0… aus, damit die Änderung wirksam wird.
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 Ubuntu 8.10 Desktop.
2 KVM installieren
Fedora 10 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:
[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 rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
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 nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch
[root@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
yum install kvm qemu libvirt python-virtinstDann starten Sie den libvirt-Daemon:
/etc/init.d/libvirtd startUm zu überprüfen, ob KVM erfolgreich installiert wurde, führen Sie aus
virsh -c qemu:///system listEs 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 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…
yum install bridge-utils… und konfigurieren eine Brücke. Löschen Sie die Systemstartlinks für NetworkManager und erstellen Sie Systemstartlinks für das Netzwerk:
chkconfig --del NetworkManager
chkconfig --levels 235 network onErstellen Sie dann die Datei /etc/sysconfig/network-scripts/ifcfg-br0 (bitte verwenden Sie die Werte BOOTPROTO, DNS1 (plus alle anderen DNS-Einstellungen, falls vorhanden), GATEWAY, IPADDR, NETMASK und SEARCH aus der Datei /etc/sysconfig/network-scripts/ifcfg-eth0):
vi /etc/sysconfig/network-scripts/ifcfg-br0| DEVICE=br0 TYPE=Bridge BOOTPROTO=static DNS1=145.253.2.75 GATEWAY=192.168.0.1 IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes SEARCH="example.com" |
Ändern Sie /etc/sysconfig/network-scripts/ifcfg-eth0 wie folgt (kommentieren Sie BOOTPROTO, DNS1 (und alle anderen DNS-Server, falls vorhanden), GATEWAY, IPADDR, NETMASK und SEARCH aus und fügen Sie BRIDGE=br0 hinzu):
vi /etc/sysconfig/network-scripts/ifcfg-eth0| # nVidia Corporation Unbekannt (0x0760) DEVICE=eth0 #BOOTPROTO=static #DNS1=145.253.2.75 #GATEWAY=192.168.0.1 HWADDR=00:1e:90:f3:f0:02 #IPADDR=192.168.0.100 #NETMASK=255.255.255.0 ONBOOT=yes #SEARCH="example.com" BRIDGE=br0 |
Starten Sie dann das System neu:
rebootNach dem Neustart führen Sie aus
ifconfigEs 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
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:49 errors:0 dropped:0 overruns:0 frame:0
TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6477 (6.3 KiB) TX bytes:10368 (10.1 KiB)
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:57 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9912 (9.6 KiB) TX bytes:8038 (7.8 KiB)
Interrupt:22 Base address:0xa000
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:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)
virbr0 Link encap:Ethernet HWaddr 62:6D:75:53:9C:AD
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::606d:75ff:fe53:9cad/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:5277 (5.1 KiB)
[root@server1 ~]#3 Installation von virt-viewer oder virt-manager auf Ihrem Ubuntu 8.10 Desktop
Ubuntu 8.10 Desktop:
Wir benötigen ein Mittel, um eine Verbindung zur grafischen Konsole unserer Gäste herzustellen - wir können dafür virt-manager verwenden (siehe KVM-Gastverwaltung mit Virt-Manager auf Ubuntu 8.10). Ich gehe davon aus, dass Sie ein Ubuntu 8.10 Desktop verwenden.
Führen Sie aus
sudo aptitude install virt-managerum virt-manager zu installieren.
(Wenn Sie ein Fedora 10 Desktop verwenden, können Sie virt-manager wie folgt installieren:
Werden Sie root…
su… und führen Sie aus
yum install virt-manager)
4 Erstellen eines Debian Lenny Gast (bildbasiert)
Fedora 10 KVM-Host:
Kehren wir nun zu unserem Fedora 10 KVM-Host zurück.
Schauen Sie sich
man virt-installan, um zu lernen, wie man es verwendet.
Um einen Debian Lenny Gast (im Bridging-Modus) mit dem Namen vm10, 512MB RAM, zwei virtuellen CPUs und dem Disk-Image ~/vm10.qcow2 (mit einer Größe von 12GB) zu erstellen, legen Sie die Debian Lenny Netinstall-CD in das CD-Laufwerk ein und führen Sie aus
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debianLenny --accelerate --network=bridge:br0 --hvmNatürlich können Sie auch ein ISO-Image der Debian Lenny Netinstall-CD erstellen…
dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso… und das ISO-Image im virt-install-Befehl verwenden:
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianLenny --accelerate --network=bridge:br0 --hvmDie Ausgabe ist wie folgt:
[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianLenny --accelerate --network=bridge:br0 --hvm
Starting install...
Creating storage file... | 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.
[root@server1 ~]#Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.