<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simlau.net Blog &#187; virtualisierung</title>
	<atom:link href="http://blog.simlau.net/tag/virtualisierung/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.simlau.net</link>
	<description>Gedanken, Impressionen und Technikkrams</description>
	<lastBuildDate>Tue, 07 Feb 2012 22:10:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Virtualisierung mit kvm</title>
		<link>http://blog.simlau.net/virtualisierung-mit-kvm.html</link>
		<comments>http://blog.simlau.net/virtualisierung-mit-kvm.html#comments</comments>
		<pubDate>Wed, 08 Apr 2009 08:00:59 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[virtualisierung]]></category>

		<guid isPermaLink="false">http://blog.simlau.net/?p=616</guid>
		<description><![CDATA[Die Kernel-based Virtual Machine (oder kurz KVM) ist eine Softwaremäßige Hardware-Virtualisierungstechnik und wurde im Oktober 2006 veröffentlicht. Als Gastsysteme unterstützt KVM Linux (32 und 64 Bit), Windows (32 Bit), ReactOS, FreeDOS, Solaris und diverse BSD-Derivate sowie einige weitere. Ab dem Kernel 2.6.20 ist KVM Standardmäßig im Linux-Kernel enthalten. Für mich hat kvm gegenüber seinen Konkurrenten [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://uploads.simlau.net/files/simon/openlogo-100.png" alt="Debian Logo" style="float: right;" />Die Kernel-based Virtual Machine (oder kurz <strong>KVM</strong>) ist eine Softwaremäßige Hardware-Virtualisierungstechnik und wurde im Oktober 2006 veröffentlicht. Als Gastsysteme unterstützt KVM Linux (32 und 64 Bit), Windows (32 Bit), ReactOS, FreeDOS, Solaris und diverse BSD-Derivate sowie einige weitere. Ab dem Kernel 2.6.20 ist KVM Standardmäßig im Linux-Kernel enthalten. </p>
<p>Für mich hat kvm gegenüber seinen Konkurrenten wie XEN folgende Vorteile:</p>
<ul>
<li>Kein spezieller Kernel des Hostsystems wie bei XEN benötigt</li>
<li>Alle Gastsysteme haben so ihre &#8220;eigenen Kernel&#8221;</li>
<li>KVM ist im Standard Kernel von Debian enthalten</li>
<li>Extrem einfache Administration</li>
<li>Es werden sehr viele unterschiedliche Gastsysteme unterstützt</li>
</ul>
<p><strong>Installation</strong><br />
Zu allererst muss für KVM wie für XEN auch die BIOS Einstellung <strong>Virtualization Technology</strong> aktiviert sein. Sollte ja eigentlich logisch sein. <img src='http://blog.simlau.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <span id="more-616"></span></p>
<p>Unter Debian und/oder Ubuntu muss nun das Paket <strong>kvm</strong> installiert werden. Zusätzlich benötigten wir noch das Paket <strong>bridge-utils</strong>. Das ist nötig um das Network Interface eth0 zu &#8220;bridgen&#8221;, sprich um eine &#8220;Netzwerk-Brücke&#8221; zu den Gastsystemen zu bauen und ihnen so Zugang zum Netz (falls gewünscht) zu ermöglichen. Wer lediglich ein einfaches System ohne Netzwerkanbindung benötigt, kann das Paket einfach weg lassen.</p>
<blockquote><p><code>root@server01 ~ $ apt-get install kvm bridge-utils</code></p></blockquote>
<p>Alle Abhängigkeiten werden dabei wie immer automatisch mitinstalliert.</p>
<p>Nun ist eine kleine Änderung an der Datei <strong>/etc/network/interfaces</strong> nötig, um die Bridge zu aktivieren. Aus dem Standard Interface eth0&#8230;</p>
<blockquote><p><code># The primary network interface<br />
auto eth0<br />
iface eth0 inet static<br />
&nbsp;&nbsp;address 192.168.168.100<br />
&nbsp;&nbsp;netmask 255.255.255.0<br />
&nbsp;&nbsp;gateway 192.168.168.1<br />
&nbsp;&nbsp;network 192.168.168.0<br />
&nbsp;&nbsp;broadcast 192.168.168.255</code></p></blockquote>
<p>wird ein bridged Interface br0&#8230;</p>
<blockquote><p><code># The primary network interface<br />
auto br0<br />
iface br0 inet static<br />
&nbsp;&nbsp;bridge_ports eth0<br />
&nbsp;&nbsp;address 192.168.168.100<br />
&nbsp;&nbsp;netmask 255.255.255.0<br />
&nbsp;&nbsp;gateway 192.168.168.1<br />
&nbsp;&nbsp;network 192.168.168.0<br />
&nbsp;&nbsp;broadcast 192.168.168.255</code></p></blockquote>
<p>Wie man sieht wird hier einfach nur jeweils eth0 durch br0 getauscht und die Zeile &#8220;bridge_ports eth0&#8243; hinzugefügt.</p>
<p>Als Gastsystem werde ich hier als Beispiel mal ein Debian Lenny 5.0 installieren. Eine Installation von einem Windows, ReactOS oder sonstigen unterscheidet sich aber nur sehr geringfügig. Dazu brauchen wir zunächst einmal das entsprechende Installationsmedium als ISO: </p>
<blockquote><p><code>root@server01 ~ $ wget -O debian.iso http://cdimage.debian.org/debian-cd/5.0.0/i386/iso-cd/debian-500-i386-businesscard.iso</code></p></blockquote>
<p>Nun generieren wir uns eine virtuelle Festplatte, hier mit 10 Gigabyte Speicher:</p>
<blockquote><p><code>root@server01 ~ $ kvm-img create size 10G vserver.img</code></p></blockquote>
<p>Nun kommen wir zum eigentlich starten des virtuellen Systems. Dazu benötigten wir noch einige Informationen:</p>
<ul>
<li>Wie viele virtuelle CPUs soll der Gast bekommen?</li>
<li>Wie viel virtuellen RAM bekommt der Gast?</li>
<li>Zusätzlich eine eindeutige MAC-Adresse (am besten erdacht)</li>
</ul>
<p>Soweit so gut, hat man das kann man die Maschine auch schon starten. Ich habe hier mal nur die wichtigsten Parameter angegeben. kvm unterstützt noch einige mehr. Diese schlägt man am besten ebenfalls einmal in den man Pages nach.</p>
<blockquote><p><code>kvm \<br />
&nbsp;&nbsp;&nbsp;&nbsp;-name vserver \ # Der "Name" des Systems (optional)<br />
&nbsp;&nbsp;&nbsp;&nbsp;-smp 2 \ # Die Anzahl der virtuellen CPUs<br />
&nbsp;&nbsp;&nbsp;&nbsp;-m 512 \ # Wie viel Speicher bekommt das System (hier 512 MB)<br />
&nbsp;&nbsp;&nbsp;&nbsp;-hda vserver.img \ # Die Festplatte (hda) des Systems<br />
&nbsp;&nbsp;&nbsp;&nbsp;-cdrom debian.iso \ # eine CD im virtuellen Laufwerk (optional)<br />
&nbsp;&nbsp;&nbsp;&nbsp;-boot c \ # Bootsequenz: C steht für die Festplatte, D für die CD<br />
&nbsp;&nbsp;&nbsp;&nbsp;-net nic,macaddr=00:16:3B:00:00:03 \ # Die MAC-Adresse des vServers<br />
&nbsp;&nbsp;&nbsp;&nbsp;-net tap \ # Für das bridged Network Interface<br />
&nbsp;&nbsp;&nbsp;&nbsp;-vnc :0 \ # Der VNC-Server mitstarten (:0 entspricht dem Port 5900)<br />
&nbsp;&nbsp;&nbsp;&nbsp;-pidfile /var/run/vserver.pid \ # Ein Pidfile in dem die Prozess-ID geschrieben wird<br />
&nbsp;&nbsp;&nbsp;&nbsp;-daemonize # Parameter für das starten als des Servers als Deamon</code></p></blockquote>
<p>Nun ist der Server gestartet und man kann sich per VNC über die IP des Hostsystems (hier 192.168.168.100) und des entsprechenden VNC-Ports (hier 5900) anmelden. Per VNC installiert man die Maschine nun einmalig, klatscht noch direkt einen SSH-Server nach und voila, fertig! <img src='http://blog.simlau.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><img src="http://uploads.simlau.net/files/simon/kvm-pre.png" alt="KVM over VNC" style="display: block; position: relative;;" /></p>
<p><strong>Zusammenfassend</strong><br />
kvm wirkt recht stabil und läuft flüssig. Allerdings setze ich es noch nicht weiter in produktiven Projekten ein. Momentan setze ich es dazu ein, binnen von Minuten ein &#8220;sauberes&#8221; Testsystem bereit zu stellen. Dafür eignet sich kvm wohl besser als Beispielsweiße XEN.</p>
<p>Ein Problem ist mir bei meinen Tests leider aufgefallen: ich konnte mich, sobald ich kvm zusätzlich ein Passwort für den VNC-Server übergeben habe, nicht mehr per VNC auf dem Server einloggen. Möglicherweiße lag das aber an meinem Client (vncviewer). Also habe ich den VNC-Server per iptables nur für meine IP-Adresse/mein Netz freigegeben. Über Feedback zum Thema Passwort Authentifikation bei VNC/KVM wäre ich daher sehr erfreut.</p>
<p>Ein lästiges Problem bleibt allerdings trotzdem noch: die langen Startparameter. Man kann sich zwar hierfür jeweils Start- und Stopscripte basteln, allerdings gibt es auch eine schönere Lösung. Diese heißt <strong><a href="http://libvirt.org/">libvirt</a></strong>. Darüber werde ich allerdings mehr in einem weiteren Post und in naher Zukunft schreiben. <img src='http://blog.simlau.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Für alle die noch mehr über kvm erfahren wollen kann ich die Projekt eigene <a href="http://www.linux-kvm.org/page/Main_Page">Linux KVM-Wiki</a> empfehlen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simlau.net/virtualisierung-mit-kvm.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

