This page (revision-9) was last changed on 09-Aug-2012 10:05 by Peter Hormanns 

This page was created on 19-Apr-2007 09:41 by MarkusMonderkamp

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
9 09-Aug-2012 10:05 5 KB Peter Hormanns to previous
8 08-Aug-2012 18:55 5 KB Peter Hormanns to previous | to last
7 08-Aug-2012 18:21 5 KB Peter Hormanns to previous | to last Update Squeeze
6 07-Aug-2012 13:45 5 KB Peter Hormanns to previous | to last Xen nach KVM
5 21-Oct-2009 17:33 5 KB Peter Hormanns to previous | to last KVM Installation
4 21-Oct-2009 16:49 1 KB Peter Hormanns to previous | to last Neu begonnen
3 31-Jan-2008 16:50 1020 bytes ThomasBayen to previous | to last Tagging
2 19-Apr-2007 10:20 1 KB MarkusMonderkamp to previous | to last Link zu KVM bei Qumranet korrigiert
1 19-Apr-2007 09:41 1020 bytes MarkusMonderkamp to last erste Infos zur KVM-Virtualisierung

Page References

Incoming links Outgoing links

Version management

Difference between version and

!!!Kernel-based Virtual Machine (KVM)

KVM ist eine Virtualisierungs-Lösung, die vor etwa drei Jahren (Oktober 2006) in den Linux-Kernel (Version 2.6.20) integriert wurde.

Ich habe heute meine ersten Versuche damit gemacht: Es sieht sehr vielversprechend und unkompliziert aus.

Voraussetzung ist allerdings ein Prozessor, der die Virtualisierung durch Hardware unterstützt.

!!Installation unter Debian LennySqueeze>>

Die erste Installation habe ich <<mit Debian Lenny >>nach einem [Artikel auf Howto-Forge|http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-lenny-server] vorgenommen.

Die Schritte im Einzelnen:

!!Installation

!Host-System

Installation eines minimalen Debian-System auf dem Server.
Ich nutze den Logical Volume Manager, um später Volumes
als Festplatten für die virtuellen Server anlegen zu können.

!Hardware-Unterstützung

Dann prüfe, ob der Prozessor wirklich KVM unterstützt:

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

Wenn die Ausgabe leer bleibt, unterstützt der Prozessor die Virtualisierung nicht. Dann hilft nur eine andere Virtualisierungs-Lösung.

!KVM Pakete installieren

{{{
# aptitude install <<kvmkvm-qemu>> libvirt-bin virtinst bridge-utils
<<}}}

Einen ersten Test kann man durchführen mit:

{{{
>># <<adduservirsh>> <<rootlist

>> <<libvirtId Name                 State>>
<<----------------------------------

>>}}}

<<AnWenn>> <<nicht die leere Liste mit virtuellen System angezeigt wird,
stimmt irgendetwas nicht.

!Bridge einrichten

Damit die virtuellen Server später ans Netzwerk kommen, wird an
>>dieser Stelle <<musseine>> <<man(Netzwerk-)>> <<sich''Bridge''>> <<abmeldeneingerichtet.

Dazu
>> <<unddie>> <<neuKonfiguration>> <<anmelden,in>> <<''/etc/network/interfaces'':>>
<<damit{{{
#
>> <<derThe>> <<Userloopback>> <<''root''network>> <<auchinterface
auto
>> <<inlo
iface
>> <<derlo>> <<Gruppeinet>> <<''libvirt''loopback

#
>> <<ist.The primary network interface>>
<<auto eth0>>
<<Eineniface>> <<ersteneth0>> <<Testinet>> <<kannmanual

#
>> <<manbridge
auto
>> <<durchführenbr0
iface
>> <<mit:br0 inet static>>
<<        address 192.168.1.10>>
<<        network 192.168.1.0
       netmask 255.255.255.0
       broadcast 192.168.1.255
       gateway 192.168.1.1
       bridge_ports eth0
       bridge_fd 9
       bridge_hello 2
       bridge_maxage 12
       bridge_stp off
}}}

Die Netzwerkadressen müssen natürlich den Gegebenheiten des lokalen Netzwerks angepasst werden.

Nach einem Neustart des Netzwerks (''/etc/init.d/networking restart'') sollte die Ausgabe von ''ifconfig'' etwa so aussehen:

>>{{{
# <<virshifconfig
br0
>> <<-c >> <<qemu:///system >> <<list  Link encap:Ethernet  Hardware Adresse 00:1d:92:70:66:20  >>
<<          inet Adresse:192.168.1.10  Bcast:192.168.1.255  Maske:255.255.255.0>>
<<Id >> <<Name >>      <<inet6-Adresse:>> <<fe80::21d:92ff:fe70:6620/64 Gültigkeitsbereich:Verbindung
>>         <<UP>> <<StateBROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1>>
<<----------------------------------          RX packets:475 errors:0 dropped:0 overruns:0 frame:0>>
<<          TX packets:266 errors:0 dropped:0 overruns:0 carrier:0>>
<<          Kollisionen:0 Sendewarteschlangenlänge:0
         RX bytes:35080 (34.2 KiB)  TX bytes:36790 (35.9 KiB)

eth0      Link encap:Ethernet  Hardware Adresse 00:1d:92:70:66:20  
         inet6-Adresse: fe80::21d:92ff:fe70:6620/64 Gültigkeitsbereich:Verbindung
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
         RX packets:475 errors:0 dropped:0 overruns:0 frame:0
         TX packets:272 errors:0 dropped:0 overruns:0 carrier:0
         Kollisionen:0 Sendewarteschlangenlänge:100
         RX bytes:41730 (40.7 KiB)  TX bytes:37258 (36.3 KiB)
         Speicher:fdde0000-fde00000

lo        Link encap:Lokale Schleife  
         inet Adresse:127.0.0.1  Maske:255.0.0.0
         inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
         UP LOOPBACK RUNNING  MTU:16436  Metrik:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         Kollisionen:0 Sendewarteschlangenlänge:0
         RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

>>}}}

<<Wenn!!Virtuellen>> <<nichtServer>> <<dieeinrichten

!Dateisystem
>> <<leereanlegen

Zuerst
>> <<Listelege>> <<mitich>> <<eine Logical Volume an, die meinem >>virtuellen <<Server als Festplatte dienen soll.

Das folgende Kommando legt eine Volume ''vserv01'' in der Volume Group ''vgroup'' an. Die Größe ist 20 GByte.
{{{
# lvcreate -n vserv01 -L 20G vgroup
}}}

!Debian installieren

Das Schöne ist, dass man das neue
>>System <<angezeigteinfach>> <<wird,so von CD installieren kann. Ich lege eine Debian-Netzinstallations-CD in das CD Laufwerk des Servers ein und rufe auf:>>
<<stimmt
{{{
virt-install
>> <<irgendetwas-n>> <<nicht.vserv01 -r 512 --vcpus=2  \>>
<<  --disk path=/dev/mapper/vgroup-vserv01 -c /dev/cdrom --vnc --noautoconsole \>>
<<  --os-type linux --os-variant debianSqueeze --accelerate --network=bridge:br0 \
 --hvm
}}}

Das Kommando startet einen VNC-Server, über den der grafische Debian-Installer zur Installation des
Gastes genutzt werden kann. Der VNC-Server lauscht allerdings nur am ''localhost''-Interface, so
dass man z.B. einen ssh-Tunnel braucht, um von einem anderen Rechner heranzukommen:

{{{
# ssh -L 192.168.1.10:5900:localhost:5900 localhost
}}}

>>!!Links
<<
*[http://libvirt.org]
>>*[Wikipedia|http://de.wikipedia.org/wiki/Kernel-based_Virtual_Machine]
*[Howto-Forge Artikel|http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-lenny-server]
<<*[Xen nach KVM Migration|http://blog.rompe.org/images-virtueller-maschinen-von-xen-nach-kvm-konvertieren-und-in-libvirt-einbinden]>>
<<*[der entscheidende Link für GRUB?|http://wiki-oar.imag.fr/index.php/Dealing_with_Grub_on_KVM_images]
<<

[{Tag Virtualisierung}]