<?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>Das Rootserver-Experiment &#187; Xen</title>
	<atom:link href="http://blog.rootserverexperiment.de/category/xen/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rootserverexperiment.de</link>
	<description>Erlebnisse eines Rootserver (Beinahe-) Neulings</description>
	<lastBuildDate>Sat, 04 Sep 2010 13:18:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Frischer LessLinux-Build zum Wochenende</title>
		<link>http://blog.rootserverexperiment.de/2010/09/03/frischer-lesslinux-build-zum-wochenende/</link>
		<comments>http://blog.rootserverexperiment.de/2010/09/03/frischer-lesslinux-build-zum-wochenende/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 14:59:46 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=605</guid>
		<description><![CDATA[So, in den letzten Tagen entstand wieder ein frischer LessLinux Development-Build. Neu sind vor allem die Funktion, dass das ISO-Image nicht nur dank ISOhybrid auch auf einem USB-Stick eingesetzt werden kann, sondern dieser beim Start gleich wieder mit einem FAT-Dateisystem versehen wird. Neu ist auch ein pvops-tauglicher Kernel und einige kleinere Änderungen an den Bootscripten, [...]]]></description>
			<content:encoded><![CDATA[<p>So, in den letzten Tagen entstand wieder ein frischer LessLinux Development-Build. Neu sind vor allem die Funktion, dass das ISO-Image nicht nur dank ISOhybrid auch auf einem USB-Stick eingesetzt werden kann, sondern dieser beim Start gleich wieder mit einem FAT-Dateisystem versehen wird. Neu ist auch ein pvops-tauglicher Kernel und einige kleinere Änderungen an den Bootscripten, womit sich LessLinux nun als Xen domU booten lässt.</p>
<p>Einige weitere Modifikationen wie Bootsplash mit fbsplash, die demnächst in einem kommerziellen Derivat sichtbar sein werden, sind noch nicht aktiv. Hier geht&#8217;s lang zum Blogpost:</p>
<p><a href="http://blog.lesslinux.org/fresh-development-build-isohybrid-conversion-and-boot-on-xen/">http://blog.lesslinux.org/fresh-development-build-isohybrid-conversion-and-boot-on-xen/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/09/03/frischer-lesslinux-build-zum-wochenende/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 als DomU (Xen) &#8220;debootstrappen&#8221;</title>
		<link>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/</link>
		<comments>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 10:00:40 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=571</guid>
		<description><![CDATA[Nach vier Jahren ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via debootstrap. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem aktuellen Xen 4.0 zu starten.
Installation von Debootstrap
Zuerst muss debootstrap vorhanden sein, am einfachsten natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Nach <a href="http://blog.rootserverexperiment.de/2006/07/22/ubuntu-als-domu-xen-debootstrappen/">vier Jahren</a> ist es mal wieder Zeit für ein kleines Tutorial zur Installation von Ubuntu-domUs via <tt>debootstrap</tt>. Dank Aufnahme der pvops-DomU in den Vanilla-Kernel bringt Ubuntu einen Kernel mit, der lediglich kleine Anpassungen am Initramfs benötigt, um sauber auf einem <a href="http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/">aktuellen Xen 4.0</a> zu starten.</p>
<h3>Installation von Debootstrap</h3>
<p>Zuerst muss <tt>debootstrap</tt> vorhanden sein, am einfachsten natürlich mit <tt>apt-get install debootstrap</tt>. Unter Ubuntu kann mit <tt>debootstrap</tt> auch die Folgeversion installiert werden. Debian-User können das Ubuntu-Debootstrap direkt von <a href="http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/">http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/</a> herunterladen und mit <tt>dpkg -i</tt> installieren. Nutzer von RPM-Distributionen sollten ein Konvertierungstool installieren oder Debootstrap direkt aus dem <tt>.tar.gz</tt> installieren.</p>
<h3>Vorbereitung eines Images</h3>
<p>Für Xen DomUs haben Sie die Möglichkeit, physikalische Festplatten oder deren Partitionen zu nutzen oder Festplattenimages zu verwenden. Bei den Images wiederum gibt es zwei Möglichkeiten: Tap-Disks, die wachsen können und beispielsweise VMware VMDK-Format unterstützen oder &#8220;Plain-Images&#8221;, die als Loopback-Device gemountet werden können. Ich empfehle bei Testkonfigurationen grundsätzlich und bei Produktivsystemen für die Systempartitionen Images von Partitionen. Die Gründe:<span id="more-571"></span></p>
<ul>
<li>Im Gegensatz zu partitionierten Festplattenimages kann ein Partitionsimage ohne Verrenkungen vergrößert werden</li>
<li>Ein Mounten ist simpel mit <tt>mount -o loop ...</tt> möglich, es muss kein Offset errechnet und angegeben werden</li>
<li>Im Gegensatz zu VMDK-Images benötigt der Mount auf einer Xen-losen Maschine keine zusätzlichen Werkzeuge</li>
</ul>
<p>Images erstelle ich als Sparse-Images, das geht schnell und spart Plattenplatz, hat aber bei Maschinen mit vielen Xen-Instanzen deutlich spürbare Einbußen durch doppelte Fragmentierung zur Folge. Zunächst entsteht ein Image für die Systempartition. Da ich gerne auch Kernel in der Xen-Instanz baue, hier 8GB groß, das Swap-Image bekommt ein Gigabyte:</p>
<pre>dd if=/dev/zero bs=$((1024**2)) count=1 seek=8191 of=xvda1.img
dd if=/dev/zero bs=$((1024**2)) count=1 seek=1023 of=swap.img
</pre>
<p>Als nächstes entsteht eine Swap-Signatur und ein Dateisystem auf dem Image <tt>xvda1.img</tt>. Das Dateisystem mounte ich gleich auf einen noch zu erstellenden Mountpoint <tt>/tmp/minibuntu</tt>:</p>
<pre>mkswap -f swap.img
freeloop=` losetup -f `
losetup $freeloop xvda1.img
echo "loopdevice is $freeloop"
mkfs.ext3 $freeloop
mkdir /tmp/minibuntu
mount $freeloop /tmp/minibuntu</pre>
<h3>Installation des Basissystems</h3>
<p>Die Installation des Basissystems geht innerhalb weniger Minuten mit dem Befehl <tt>debootstrap</tt>. Auf einem 64-Bit Hostsystem haben Sie die Wahl, 32- oder 64-Bit-Gäste zu installieren. Bei Gästen, die keine allzu große Prozessgröße erwarten lassen, sind 32-Bit-Gäste oft einen Tick flotter und kompakter:</p>
<pre>debootstrap --arch i386 lucid /tmp/minibuntu http://archive.ubuntu.com/ubuntu</pre>
<p>oder</p>
<pre>debootstrap --arch amd64 lucid /tmp/minibuntu http://archive.ubuntu.com/ubuntu</pre>
<p>Das so installierte Ubuntu würde sich mit dem Hostkernel schon booten, darüber hinaus jedoch kaum nutzen lassen. Setzen wir einige Einstellungen:</p>
<pre>vim /tmp/minibuntu/etc/default/locale</pre>
<pre># BEGIN /etc/default/locale
LANG="POSIX"
# oder
# LANG="de_DE.UTF-8"
# END /etc/default/locale</pre>
<pre>vim /tmp/minibuntu/etc/network/interfaces</pre>
<pre># BEGIN /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
# END /etc/network/interfaces</pre>
<pre>echo '127.0.0.1 localhost' > /tmp/minibuntu/etc/hosts
echo 'lucid-domU.test' > /tmp/minibuntu/etc/hostname</pre>
<p>Auch eine vollständige <tt>/etc/apt/sources.list</tt> wird benötigt:</p>
<pre>vim /tmp/minibuntu/etc/apt/sources.list</pre>
<pre># BEGIN /etc/apt/sources.list
deb http://de.archive.ubuntu.com/ubuntu/ lucid main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid main restricted
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb http://de.archive.ubuntu.com/ubuntu/ lucid universe
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid universe
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb http://de.archive.ubuntu.com/ubuntu/ lucid multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
# END /etc/apt/sources.list</pre>
<p>Ohne <tt>/etc/fstab</tt> geht wenig im domU-System, die Platten heissen nicht mehr wie bei den alten dom0- und domU-Kerneln <tt>/dev/sda</tt>, sondern <tt>/dev/xvda</tt>:</p>
<pre>vim /tmp/minibuntu/etc/fstab</pre>
<pre># BEGIN /etc/fstab
proc /proc proc defaults 0 0
/dev/xvda1 / ext3 defaults 0 1
/dev/xvda2 none swap sw 0 0
# END /etc/fstab</pre>
<p>Eine Konsole für Xen. Xen nutzt <tt>/dev/hvc0</tt> als Systemkonsole, diese muss noch mit einem <tt>getty</tt> versehen werden. Das erledigen Sie durch Kopieren der Definition von <tt>tty1</tt> und entsprechende Anpassungen:</p>
<pre>cp /tmp/minibuntu/etc/init/{tty1,hvc0}.conf
sed -i 's/tty1/hvc0/g' /tmp/minibuntu/etc/init/hvc0.conf</pre>
<h3>Chroot, Passwort und Kernel</h3>
<p>Zum Abschluss der Installation und der Nachinstallation von Software müssen Sie per <tt>chroot</tt> in das frisch installierte Ubuntu wechseln. Zunächst benötigen Sie dafür einige spezielle Dateisysteme:</p>
<pre>mount -t proc none /tmp/minibuntu/proc
mount -t devpts none /tmp/minibuntu/dev/pts </pre>
<p>Wenn Host und Gast die gleiche Architektur nutzen, klappt der Chroot klassisch:</p>
<pre>LANG=C chroot /tmp/minibuntu /bin/bash</pre>
<p>Ist der Host dagegen 64 bittig und der Gast 32 bittig, ist <tt>setarch</tt> zu verwenden:</p>
<pre>LANG=C setarch i386 chroot /tmp/minibuntu /bin/bash</pre>
<p>Zunächst aktivieren wir Shadow-Passwörter und setzen ein Root-Passwort:</p>
<pre>shadowconfig on
passwd</pre>
<p>Auf 32-Bit-Gästen muss zwingend ein PAE-Kernel installiert werden. Nur dieser enthält Unterstützung für pvops. Kernel ohne PAE laufen nur auf dem &#8220;nackten Metall&#8221;. Bei 64 Bit sollten alle Kernel pvops unterstützen:</p>
<pre>apt-get install linux-image-generic-pae</pre>
<p>Da ein Bootloader bei unserer Konfiguration keinen Sinn macht, sind entsprechende Nachfragen mit <tt>[No]</tt> zu beantworten.</p>
<h3>Aufbau des Initramfs</h3>
<p>Im Gegensatz zu gängigen Dateisystemtreibern enthält Ubuntus Kernel die Frontend-Treiber für Blockdevices und das Netz nur als Module. Diese sind entsprechend zu Initramfs-Konfiguration hinzuzufügen:</p>
<pre>vim.tiny /etc/initramfs-tools/initramfs.conf</pre>
<pre>MODULES=list</pre>
<p>Diese Liste ist entsprechend anzupassen:</p>
<pre>vim.tiny /etc/initramfs-tools/modules</pre>
<pre># BEGIN /etc/initramfs-tools/modules
xen-kbdfront
xen-netfront
xen-blkfront
# END /etc/initramfs-tools/modules</pre>
<p>Und anschließend wird das Initramfs neu aufgebaut:</p>
<pre>mkinitramfs -o /boot/initrd.img-2.6.32-24-generic-pae 2.6.32-24-generic-pae</pre>
<p>Verlassen Sie nun den Chroot wieder und unmounten Sie die beiden speziellen Dateisysteme.</p>
<pre>exit
umount /tmp/minibuntu/proc
umount /tmp/minibuntu/dev/pts</pre>
<h3>Kopieren der Kernel, Aufbau der domU-Konfiguration</h3>
<p>Kopieren Sie nun Kernel und Initramfs von <tt>/tmp/minibuntu/boot</tt> in das Verzeichnis, welches Festplattenimages und später die Konfiguration enthält. Erstellen Sie dann eine Datei <tt>ubuntu.cfg</tt> mit folgendem Inhalt (selbstverständlich ist der Pfad zum Installationsverzeichnis anzupassen und Kernel sowie Initramfs umzubenennen oder zu verlinken):</p>
<pre>kernel = "/usr/local/xendomains/lucid_test/vmlinuz"
ramdisk = "/usr/local/xendomains/lucid_test/initrd.gz"
memory = 512
name = "lucid-test"
vif = [ 'mac=00:16:00:00:42:23' ]
disk = [ 'file:/usr/local/xendomains/lucid_test/xvda1.img,xvda1,w',
         'file:/usr/local/xendomains/lucid_test/swap.img,xvda2,w' ]
root = '/dev/xvda1 ro'
extra = 'console=hvc0'</pre>
<p>Jetzt nicht vergessen, das Loopback-Device zu unmounten und freizugeben:</p>
<pre>umount /tmp/minibuntu
umount $freeloop
losetup -d $freeloop</pre>
<p>Dann kann auch die neue domU gestartet werden:</p>
<pre>xm create -c ubuntu.cfg</pre>
<p>Melden Sie sich in der Konsole der domU an und installieren Sie die Xen-Version der C-Bibliothek, sowie OpenSSH nach:</p>
<pre>apt-get install ssh libc6-xen</pre>
<p>Beim nächsten Mal kann dann die Domain ohne <tt>-c</tt> gestartet und per SSH zugegriffen werden. Soll die virtuelle Festplatte vergrößert werden, kann dies nach dem Herunterfahren mit <tt>dd</tt> erfolgen:</p>
<pre>dd if=/dev/zero bs=$((1024**2)) count=1 seek=16383 of=xvda1.img
freeloop=` losetup -f`
losetup $freeloop xvda1.img
fsck.ext3 -f $freeloop
resize2fs $freeloop
losetup -d $freeloop</pre>
<p>That&#8217;s it! Soll die domU automatisch mit dem Xend des Hostes starten, die <tt>.cfg</tt> in <tt>/etc/xen/auto</tt> verlinken und darauf achten, dass das Startscript <tt>/etc/init.d/xendomains</tt> beim Systemstart unmittelbar nach <tt>xend</tt> gestartet wird. Die so erstellte Domain ist prinzipiell portabel, man sollte sich allerdings keine allzugroßen Hoffnungen auf einen Boot unter alten Xen-Versionen (vor 3.4) machen. Sind noch alte dom0s vorhanden, schafft möglicherweise Ubuntus ec2-Kernel für Amazons Elastic Computing Cloud Abhilfe.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/09/01/ubuntu-lucid-xen4-domu-debootstrappen/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Installation von Xen 4.0.1 mit pvops-Dom0 auf Ubuntu 10.04</title>
		<link>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/</link>
		<comments>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:35:13 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=548</guid>
		<description><![CDATA[Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf &#8220;pvops&#8221; sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf &#8220;nacktem Metall&#8221; (&#8220;bare metal&#8221; = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature [...]]]></description>
			<content:encoded><![CDATA[<p>Xen 4.0 hat einige interessante Features eingeführt. Am Auffälligsten dürfte die Umstellung des vom Xen-Projekt gepflegten Dom0-Kernels auf &#8220;pvops&#8221; sein. Es handelt sich dabei um eine Technologie, mithilfe derer ein Kernel erkennt, ob er auf &#8220;nacktem Metall&#8221; (&#8220;bare metal&#8221; = direkt auf Hardware) oder auf dem Xen-Hypervisor läuft. Für unpriviligierte Domains (domU) ist dieses Feature bereits seit geraumer Zeit im Linux-Kernel enthalten, für dom0s is es neu und muss über den Kernel des Xen-Projektes installiert werden.</p>
<p>Ich habe einmal testweise ein Setup auf einer AMD64-Maschine erstellt, auf 32-Bit-Systemen sind lediglich einige Kleinigkeiten anders: Der Kernel muss PAE-Support haben und es muss zwingend ein Prozessortyp ausgewählt werden, der über Virtualisierungserweiterungen verfügt. Da heutzutage kaum Rechner als Xen-Host zum Einsatz kommen dürften, die nicht 64-Bit-tauglich sind, sollte sich die Frage nach pvops-Dom0s auf 32-Bit-Hardware kaum stellen. <span id="more-548"></span></p>
<h3>Die Vorbereitung</h3>
<p>Fürs Bauen des Kernels müssen zuerst einige Debian-Pakete nachinstalliert werden. Meine Testmaschine war ein recht blankes Netinstall, so dass diese Liste hoffentlich vollständig ist:</p>
<pre>apt-get install build-essential libncurses5-dev python-twisted \
        git-core zlib1g-dev gettext libX11-dev uuid-dev libssl-dev\
        bin86 bcc flex bison python-dev bridge-utils</pre>
<p>Neuere Xen-Versionen benötigen Intels ACPI-Compiler. Den habe ich noch nicht in den Ubuntu-Paketlisten gefunden, stattdessen habe ich ihn aus den Quellen gebaut und mittels <tt>install</tt> installiert. Da nur ein einziges Binary benötigt wird, ist es leicht möglich, das temporäre Build-Verzeichnis in den Pfad aufzunehmen und so das System nicht zu verschmutzen. Bitte prüft vor der ACPICA-Installation, ob unter <a href="http://www.acpica.org/downloads/">http://www.acpica.org/downloads/</a> neuere Versionen bereitstehen:</p>
<pre>cd /usr/src
wget http://acpica.org/download/acpica-unix-20100806.tar.gz
tar xvzf acpica-unix-20100806.tar.gz
cd acpica-unix-20100806/compiler
make
install -m 0755 iasl /usr/bin</pre>
<h3>Bau und Boot des pvops-Kernels</h3>
<p>Wie eingangs erwähnt, ist Support für pvops-Dom0 noch nicht Teil des offiziellen Kernels. Es muss daher Jeremys 2.6.32er mit pvops-Patches ausgecheckt werden. Falls jemand abkürzen möchte, kann er <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/vmlinuz-2.6.32.18-xen0-pvops-20100830-sources.tbz">hier die von mir verwendeten Sourcen herunterladen</a>, diese beinhalten bereits eine <tt>.config</tt>. </p>
<pre>cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git reset --hard
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x</pre>
<p>Beim Selbstbau dürfte es meist ganz gut passen, die Kernelconfig des Ubuntu als Basis zu verwenden und mit <tt>make oldconfig</tt> die Xen-spezifischen Punkte zu ergänzen. Wer dabei die richtigen Treiber statisch einbindet, braucht auch an der Initramfs-Konfiguration nichts zu modifizieren:</p>
<pre>cd /usr/src
cd linux-2.6-xen
cp /boot/config-` uname -r ` .config
make oldconfig</pre>
<p>Zum Vergleich hier meine Xen-spezifischen Optionen:</p>
<pre>CONFIG_XEN=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_SWIOTLB_XEN=y
CONFIG_MICROCODE_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PRIVILEGED_GUEST=y
CONFIG_XEN_DOM0_PCI=y
CONFIG_XEN_PCI_PASSTHROUGH=y
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_NETXEN_NIC=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_KBDDEV_FRONTEND=m
CONFIG_HVC_XEN=y
CONFIG_XEN_FBDEV_FRONTEND=m
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_BACKEND=y
CONFIG_XEN_NETDEV_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_BLKBACK_PAGEMAP=y
CONFIG_XEN_PCIDEV_BACKEND=y
CONFIG_XEN_PCIDEV_BACKEND_VPCI=y
CONFIG_XENFS=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_MCE=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=m
CONFIG_XEN_S3=y
CONFIG_ACPI_PROCESSOR_XEN=y
CONFIG_XEN_PLATFORM_PCI=m</pre>
<p>Wer möchte, kann meine Konfiguration <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.32.18-xen0-pvops-20100830-amd64">komplett</a> oder als <a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.32.18-xen0-pvops-20100830-amd64.diff">unified diff</a> (gegen Ubuntus 2.6.32-24 Kernel) herunterladen und diese verwenden. Das Bauen geht dann wie gewohnt, ich strippe die Kernelmodule und erstelle gleich eine GRUB-Konfiguration:</p>
<pre>make
make install
make modules_install
find /lib/modules/2.6.32.18-xen0-pvops/ -name '*.ko' -exec strip --strip-unneeded {} \;
mkinitramfs -o /boot/initrd.img-2.6.32.18-xen0-pvops 2.6.32.18-xen0-pvops
update-grub</pre>
<h3>Der erste Neustart</h3>
<p>Rebooten Sie nun den Rechner und wählen Sie den neuen pvops-Kernel als Startkernel aus. Die Maschine sollte problemlos hochfahren, tut sie das nicht, stehen die Chancen schlecht, dass dieser Kernel auch auf Xen sauber startet.</p>
<h3>Installation von Xen und den Xen-Tools</h3>
<p>Als dieses Tutorial erstellt wurde, war mit Xen 4.0.1 gerade die erste <a href="http://www.xen.org/products/xen_source.html"></a>Maintenance-Release der 4.0er-Reihe erhältlich. Falls Sie noch 3.4.x oder 4.0.0 verwenden (und damit zufrieden sind): Aktualisieren Sie auf jeden Fall auf 4.0.1, weil hier einige Bugs im Zusammenspiel von Xen und dom0-pvops-Kerneln beseitigt wurden:</p>
<pre>cd /usr/src
wget http://bits.xensource.com/oss-xen/release/4.0.1/xen-4.0.1.tar.gz
tar xvzf xen-4.0.1.tar.gz
cd xen-4.0.1
make xen
make install-xen
make tools
make install-tools PYTHON_PREFIX_ARG=</pre>
<p>Es folgt die Erstellung einer Bootloder-Konfiguration, bitte die UUID entsprechend anpassen:</p>
<pre>vim.tiny /etc/grub.d/50_xen</pre>
<pre>#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Ubuntu 10.04 - Xen 4.0.1 - 2.6.32.18 pvops" {
        insmod ext2
        set root=(hd0,1)
        search --no-floppy --fs-uuid --set dc50c3d6-787a-45d7-951b-20836d10443c
        multiboot /boot/xen-4.0.1.gz dummy=dummy
        module /boot/vmlinuz-2.6.32.18-xen0-pvops root=UUID=dc50c3d6-787a-45d7-951b-20836d10443c ro dummy=dummy
        module /boot/initrd.img-2.6.32.18-xen0-pvops
}</pre>
<pre>chmod a+x /etc/grub.d/50_xen
vim.tiny /etc/default/grub</pre>
<pre>GRUB_DEFAULT="Ubuntu 10.04 - Xen 4.0.1 - 2.6.32.18 pvops"
GRUB_HIDDEN_TIMEOUT=30
GRUB_HIDDEN_TIMEOUT_QUIET=false</pre>
<p>Anschließend nicht vergessen, die Grub-Konfiguration noch einmal neu aufzubauen:</p>
<pre>update-grub</pre>
<p>Ein Dateisystem für Xen: Einige Scripte benäötigen das alte <tt>/proc/xen</tt>. Dieses wird durch einen Eintrag in der <tt>/etc/fstab</tt> beim nächsten Neustart gemountet:</p>
<pre>xenfs /proc/xen xenfs defaults</pre>
<p>Dann benötigen wir noch zwei Module und deren Devices &#8211; die Module sollten in die <tt>/etc/modules</tt> eingetragen werden:</p>
<pre>modprobe -v xen-evtchn
modprobe -v xen-gntdev</pre>
<pre>mkdir /dev/xen
mknod -m 0660 /dev/xen/gntdev c 10 57
mknod -m 0660 /dev/xen/evtchn c 10 58</pre>
<p>Das war es: Beim nächsten Neustart startet der eben gebootete pvops-Kernel nicht auf nacktem Metall, sondern auf dem Hypervisor. Mit pvops-Kernel sollte es auch möglich sein, die beschleunigten Grafiktreiber von AMD und nVidia zu nutzen, ausprobiert habe ich dies nicht, weil bei mir Xen nur auf dem Server eingesetzt wird.</p>
<p>Auf die Konfiguration von pvops-DomUs gehe ich in den nächsten Tagen ein: Für diese halten aktuelle Distributionen oft passende Kernel bereit, ich werde jedoch auch zeigen, wie man mit einem frischen Vanilla-Kernel 2.6.35.x ein wenig mehr herausholt.</p>
<h3>Vielen Dank an&#8230;</h3>
<ul>
<li><a href="http://blog.xen.org/index.php/2010/03/26/steps-to-try-xen-4-0-0-release-candidate-8-on-ubuntu-lucid-10-04-64-bits/">&#8230;das offizielle Xen-Blog, an dessen Anleitung ich mich grob orientiert habe</a></li>
<li><a href="http://wiki.xensource.com/xenwiki/XenParavirtOps">&#8230;die Mitarbeiter des Xen-Wikis, die viele wertvolle Informationen zu pvops zusammengetragen haben</a></li>
</ul>
<h3>Update, 31. August 2010</h3>
<ul>
<li>bridge-utils zur Paketliste hinzugefügt</li>
<li>Ergänzung zu <tt>/proc/xen</tt></li>
<li>Ergänzung zu fehlenden Devices und Modulen</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/08/30/xen-401-pvops-dom0-ubuntu1004/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Randnotizen, 13. April 2010</title>
		<link>http://blog.rootserverexperiment.de/2010/04/13/randnotizen-1-april-2010/</link>
		<comments>http://blog.rootserverexperiment.de/2010/04/13/randnotizen-1-april-2010/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 17:43:43 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Randnotizen]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=519</guid>
		<description><![CDATA[Und mal wieder Randnotizen &#8212; Links der letzten acht Tage mit einigen Anmerkungen:


Wie stark suckt Flash? Es gibt eine Beta der 10.1 für Linux, Hardwarebeschleunigung inbegriffen, News bei LinuxForDevices.com.
Ich konnte mich nie wirklich mit Flash unter Linux, BSD oder MacOS X anfreunden und werde es wahrscheinlich nie wirklich können. Auf meinem 64 Bit Desktop läuft [...]]]></description>
			<content:encoded><![CDATA[<p>Und mal wieder Randnotizen &#8212; Links der letzten acht Tage mit einigen Anmerkungen:</p>
<ul>
<li>
<p><b>Wie stark suckt Flash?</b> Es gibt eine Beta der 10.1 für Linux, Hardwarebeschleunigung inbegriffen, <a href="http://www.linuxfordevices.com/c/a/News/Flash-Player-101-Release-Candidate/" target="_blank">News bei LinuxForDevices.com</a>.</p>
<p>Ich konnte mich nie wirklich mit Flash unter Linux, BSD oder MacOS X anfreunden und werde es wahrscheinlich nie wirklich können. Auf meinem 64 Bit Desktop läuft Flash im Plugin-Wrapper und schmiert zweimal am Tag ab. Ich bin damit die meiste Zeit ohne Flash unterwegs und vermisse es <i>nicht</i> wirklich. Nur wenn ich gerade Flash für ein kleines Video brauche, ist es nicht da. Ich hoffe, dass HTML5-Video bald soweit verbreitet ist, dass man auch für die Freizeit kein Flash-Plugin mehr braucht.</p>
</li>
<li>
<p><b>Endlich kostenlose Navigation auf dem Nokia E71</b> Nokia reagiert auf protestierende Nutzer: <a href="http://www.engadget.com/2010/04/06/nokia-e71-and-e66-owners-get-free-ovi-maps-navigation/" target="_blank">News bei engadget.com</a>.</p>
<p>Dass Nokia seine kostenlose Navigation beim Start nur für eine Hand voll Geräte anbot, fand ich ärgerlich. Sollte ich ein ein Jahr altes E71 wegwerfen und ein mir ein E72 kaufen, um in den Genuß der Navigationslösung zu kommen? Der Protest der letzten Monate hat gewirkt: Nokia bietet die kostenlose Ovi Maps Version 3.0.3 nun auch für E66 und E71.</p>
</li>
<li>
<p><b>Mein YaCY-Host läuft wieder!</b> Ich mache wieder bei der <a href="http://www.yacy.net/index_de.html">freien Suchmaschine</a> mit und helfe, mich und andere von Google abzunabeln.</p>
<p>Auf dem Büroserver läuft nun eine Xen-Instanz mit 1,25GB RAM und 30GB Platte. 25GB Plattenplatz und 1GB RAM darf sich Yacy nehmen, dafür habe ich die CPU-Zyklen etwas beschränkt und stelle nur einen Prozessorkern bereit. Cool: Wenn man die Proxy-Indexierungstiefe auf 1 setzt und hin und wieder doch zu Google greifen muss, indexiert Yacy die auf den gelesenen Google-Ergebnisseiten verlinkten Seiten.</p>
<p><b>Nachtrag:</b> Hier gibt es einen <a href="http://cdprojekte.mattiasschlenker.de/Public/Artikel/PC-Magazin_Linux_2008_01_-_Du_bist_Suchmaschine_-_Yacy.pdf">älteren Artikel von mir</a> zu Einrichtung und Funktionsweise von YaCY.</p>
</li>
<li>
<p><b>Xen 4.0 erschienen:</b> Neue Version des Hypervisors, <a href="http://www.golem.de/1004/74388.html" target="_blank">News bei Golem</a>.</p>
<p>Wenn ich die Nachricht richtig deute, läuft Kernel 2.6.31 dann mit pv_ops auf Xen (der Kernel erkennt, ob er auf Xen oder direkt auf der Hardware läuft), wenn ein Prozessor mit Intels oder AMDs Virtualisierungserweiterungen gefunden wird. Damit ist der Einsatz neuer Xen-Versionen auf vielen Maschinen die älter als zwei Jahre sind, in weite Ferne gerückt. Immerhin: Da pv_ops ein fester Bestandteil des Kernels ist/wird, hat das manuelle Patchen des dom0-Kernels bald ein Ende. Ich hoffe, dass Xen damit eine Zukunft im SMB-Bereich und nicht nur im Rechenzentrum hat, denn KVM hat mit PCI Passthrough u.ä. in letzter Zeit mächtig aufgeholt.</p>
</li>
<li>
<p><b>Einsteiger-Smartphones von Nokia</b> C3, C6 und E5, <a href="http://www.golem.de/1004/74453.html" target="_blank">News bei Golem</a>, <a href="http://www.engadget.com/2010/04/13/nokia-c3-c6-and-e5-try-to-smarten-up-the-dumbphone-market/" target="_blank">News bei Engadget</a> und <a href="http://www.infosyncworld.com/news/n/10901.html" target="_blank">News bei Infosync</a>.</p>
<p>Immer noch kein Symbian^3, stattdessen das neu gelabelte Symbian^1 (TOFKAS605TH = The OS Formerly Known As Series 60 5th Edition), nett und meine Erfahrungen mit E71 und 5230 zeigen, dass Nokia durchaus brauchbare Geräte mit langen Standby-Zeiten und schneller Navigation bauen kann, auch die Preise sind moderat und die Tastatur des E5 hoffentlich so gut wie beim E71, aaaaaber von einem Gerät wie dem C6 hätte ich langsam das neue Touchscreen-Symbian erwartet.</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/04/13/randnotizen-1-april-2010/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Xen-Nachtrag, Setup mit Routing</title>
		<link>http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/</link>
		<comments>http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 07:18:09 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=494</guid>
		<description><![CDATA[Mir ist aufgefallen, dass mein gestriges Setup mit Dummy-Adapter und Vergabe der ersten IP-Adresse des Netzes auf das Interface dummy0 nicht die optimale Konfiguration darstellt: Hier wird das alte Setup mit separatem Router 1:1 nachgebaut, was zur Folge hat, dass die drei Adressen für Broadcast, Netz und Gateway nicht für Produktivsysteme nutzbar sind. Das beschriebene [...]]]></description>
			<content:encoded><![CDATA[<p>Mir ist aufgefallen, dass mein <a href="http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/">gestriges Setup mit Dummy-Adapter</a> und Vergabe der ersten IP-Adresse des Netzes auf das Interface <tt>dummy0</tt> nicht die optimale Konfiguration darstellt: Hier wird das alte Setup mit separatem Router 1:1 nachgebaut, was zur Folge hat, dass die drei Adressen für Broadcast, Netz und Gateway nicht für Produktivsysteme nutzbar sind. Das beschriebene Setup ist daher nur sinnvoll, wenn ein Server in zwei Stufen von bridged auf routed umgestellt werden soll. </p>
<p>Beim Neuaufsetzen eines Servers ist es besser, gleich eine PointToPoint-Lösung mit 255.255.255.255-Maske aufzusetzen. Damit können bei einer 29-Bit-Maske (255.255.255.248) acht statt fünf IP-Adressen genutzt werden &#8212; satte 60% mehr (bei vier, fünf, oder sechs Bit Masken fällt der Gewinn natürlich kleiner aus). Die Änderungen gegenüber dem Setup von gestern sind, dass <tt>dummy0</tt> in der <tt>/etc/network/interfaces</tt> der dom0 entfällt. In der <tt>/etc/xen/xend-config.sxp</tt> wird das extern erreichbare Interface eingetragen (in der Regel <tt>eth0</tt>):</p>
<pre>(network-script 'network-route netdev=eth0')
(vif-script     'vif-route netdev=eth0')</pre>
<p>Die Netzwerkkonfiguration der domU bekommt nun die primäre IP-Adresse der dom0 als Gateway eingetragen, dazu das Schlüsselwort <tt>pointopoint</tt> (nur ein &#8216;t&#8217;!) und die &#8220;dichte&#8221; Netzmaske:</p>
<pre>auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 172.16.16.114
        netmask 255.255.255.255
        gateway 192.168.1.2
        pointopoint 192.168.1.2
        post-up ethtool -K eth0 tx off</pre>
<h3>Vielen Dank an&#8230;</h3>
<ul>
<li><a href="http://wiki.hetzner.de/index.php/Umstellung_Debian_Etch_mit_XEN_3_auf_routed">Umstellung Debian Etch mit XEN 3 auf routed</a> &#8230;die fleissigen Dokumentatoren im Hetzner-Wiki</li>
<li>&#8230;den Admin bei 1&amp;1, dessen Default-Setup mit pointopoint auf der primären IP mich dazu anregte, hier nochmal nachzuforschen</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ein Tag mit Xen: Vanilla-Xen und -Kernel auf Ubuntu Karmic installieren</title>
		<link>http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/</link>
		<comments>http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 18:30:11 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=470</guid>
		<description><![CDATA[Bislang laufen alle unsere Dom0s entweder auf Ubuntu 8.04 oder openSUSE 11.1 oder 11.2. Für einen neuen alten Server wollte ich Ubuntu 9.10 als Basis nehmen, auch um im Mai leichter auf 10.04 wechseln zu können. Bei Ubuntu ist die Xen-Situation nicht besonders rosig: Laut halboffizieller Doku steht weder ein aktueller Xen, noch ein brauchbarer [...]]]></description>
			<content:encoded><![CDATA[<p>Bislang laufen alle unsere Dom0s entweder auf Ubuntu 8.04 oder openSUSE 11.1 oder 11.2. Für einen neuen alten Server wollte ich Ubuntu 9.10 als Basis nehmen, auch um im Mai leichter auf 10.04 wechseln zu können. Bei Ubuntu ist die Xen-Situation nicht besonders rosig: Laut halboffizieller Doku steht <a href="https://help.ubuntu.com/community/Xen">weder ein aktueller Xen, noch ein brauchbarer Kernel bereit</a>. Immerhin ein Xend (der Verwaltungsdaemon) in Version 3.3. Erfahrungen seit 3.2 haben gezeigt, dass sich die Schnittstellen kaum noch ändern, so dass der 3.3er Daemon mit dem 3.4er Xen zusammen arbeiten sollte. Denkste.</p>
<p>Ziel waren zwei Server: Ein 64-Bit-System fürs Büro und ein 32-Bit-System für einen alten (AMD Athlon XP 2000, 512MB, 80GB) Hetzner Rootie (Presse-Testsystem). Beide Systeme wurden zunächst mit einem Ubuntu Minimalsystem ausgestattet. Bei Hetzner geschah dies aus dem Notfall-System per <i>debootstrap</i> (fertige OS-Images werden nur einmal am Tag aufgespielt, was stört, wenn man nach einer abgeschossenen Installation neu aufsetzen möchte) und der Server zuhause wurde per Debian-Installer per PXE-Netboot eingerichtet. Die zwei Möglichkeiten, einen Hetzner-Server mit Ubuntu oder Debian auszustatten &#8212; debootstrap und den Debian-Installer im SSH-Modus &#8212; erkläre ich bei Gelegenheit im Detail.  <span id="more-470"></span></p>
<h3>Benötigte Pakete</h3>
<p>Mit dem folgenden Befehl sollten alle Abhängigkeiten aufgelöst werden, die zum Bau von Xen und dem Betrieb einer Dom0 benötigt werden:</p>
<pre>apt-get install rsync screen build-essential bin86 bcc libssl-dev \
      gettext libncurses-dev python python-dev pciutils-dev libx11-dev \
      pkg-config python-twisted bridge-utils gawk</pre>
<p>Unter 32 Bit-Systemen sollte man aus Performance-Gründen noch die angepasste C-Bibliothek installieren:</p>
<pre>apt-get install libc6-xen</pre>
<h3>Kernel kompilieren</h3>
<p>Ubuntu selbst bietet einen Kernel für <a href="http://aws.amazon.com/ec2/">Amazons EC2</a>, der sollte einigermaßen gut auf aktuellen Xen-Versionen laufen. Getestet habe ich es nicht. Stattdessen habe ich selbst drei Kernel kompiliert: Einen für AMD64 mit vollem Dom0-Support und vielen Treibern, einen mit stark abgespeckten Treibern (für 64Bit-DomUs) und einen i686-Kernel mit vollem Dom0-Support und der Möglichkeit, auf älteren Xen-Versionen gestartet zu werden. Die für Xen benötigten Frontend- sowie Backend-Treiber habe ich statisch integriert, was den Vorteil hat, dass an der Konfiguration des Initramfs nichts geändert werden muss. Alle Konfigurationen bieten Verbesserungspotential, beispielsweise beim Abspecken um nicht benötigte Treiber. Hier sei allerdings darauf verwiesen, dass das Entfernen vermeintlich nicht benötigter Funktionen <i>Unresolved Symbols</i> und damit Kompilationsabbrüche zur Folge haben kann.</p>
<p>Als Kernel kommt hier Gentoos 2.6.31.12 &#8212; konkret das Patchset xen-patches-2.6.31-12.tar.bz2 &#8212; zum Einsatz. Die verwendeten Patches stammen größtenteils von openSUSEs Xen-Kernel, wurden aber von SuSE-Spezifika befreit. Das macht das Bauen und die Installation einfacher. Gepflegt werden die Patches <a href="http://code.google.com/p/gentoo-xen-kernel/downloads/list">als eigenes Projekt bei Google Code</a>.</p>
<p>Meine Konfigurationsdateien:</p>
<ul>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs002-xen0-compat-i586">config-2.6.31.12-mfs002-xen0-compat-i586</a></li>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs001-xen0-amd64">config-2.6.31.12-mfs001-xen0-amd64</a></li>
<li><a href="http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs006-xenU-minimal-amd64">config-2.6.31.12-mfs006-xenU-minimal-amd64</a></li>
</ul>
<p>Und nun zum Bauen des Kernels, hier für AMD64:</p>
<pre>mkdir xen-patches-2.6.31-12
cd xen-patches-2.6.31-12
tar xvjf ../xen-patches-2.6.31-12.tar.bz2
cd ../linux-2.6.31
for i in ../xen-patches-2.6.31-12/*.patch1 ; do patch -p1 < $i ; done
wget -O .config http://cdprojekte.mattiasschlenker.de/Public/Xen-Kernel/config-2.6.31.12-mfs001-xen0-amd64
make oldconfig
make
make install
make modules_install</pre>
<p>Der Kernel braucht noch ein passendes Initramfs, dieses entsteht mit:</p>
<pre>mkinitramfs -o /boot/initrd.img-2.6.31.12-mfs001-xen0-amd64 2.6.31.12-mfs001-xen0-amd64</pre>
<p>Falls Sie Xen Frontend- oder Backend-Treiber in Module ausgelagert haben, müssen Sie ggf. die Modulliste des Initramfs anpassen!</p>
<h3>Xen Hypervisor installieren</h3>
<p>Ohne Xen nützt der schönste Kernel nichts, also bauen und installieren wir Xen 3.4.2 aus dem <a href="http://www.xen.org/products/xen_source.html">offiziellen Tarball von www.xen.org</a>:</p>
<pre>tar xvzf xen-3.4.2.tar.gz
cd xen-3.4.2
make xen
make install-xen</pre>
<h3>Bootloader konfigurieren</h3>
<p>Der einfachste Weg ist die Erstellung eines simplen Scriptes <tt>/etc/grub.d/50_xen</tt>, welches hart kodiert Kernelnamen, Xen-Version und Pfade (Root-Device ist hier <tt>/dev/sda4</tt>) enthält. Zweimal <tt>root=...</tt> ist kein Tippfehler, sondern als Workaround für einen kleinen Bug in den Scripten des Initramfs gedacht:</p>
<pre>#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Ubuntu 9.10 - Xen 3.4.2 + Linux 2.6.31" {
        insmod ext2
        set root=(hd0,4)
        multiboot /boot/xen-3.4.2.gz
        module /boot/vmlinuz-2.6.31.12-mfs001-xen0-amd64 root=/dev/sda4 ro root=/dev/sda4
        module /boot/initrd.img-2.6.31.12-mfs001-xen0-amd64
}</pre>
<p>Das Script muss nun noch ausführbar gesetzt werden, sonst wird der neue Eintrag nicht in die GRUB-Konfiguration übernommen!</p>
<pre>chmod a+x /etc/grub.d/50_xen</pre>
<p>In der Datei <tt>/etc/default/grub</tt> sollten Sie den Standard-Booteintrag auf den neuen Kernel setzen:</p>
<pre>GRUB_DEFAULT="Ubuntu 9.10 - Xen 3.4.2 + Linux 2.6.31"</pre>
<p>Danach rufen Sie <tt>update-grub</tt> auf um die Bootloader-Konfiguration neu aufzubauen. Rebooten Sie jetzt den Rechner mit Xen und dem neuen Kernel.</p>
<h3>Installation der Xen-Tools</h3>
<p>Die Xen-Tools habe ich in einem frisch entpackten Xen-Tarball kompiliert. Die bei der Installation angegebene Variable ist wichtig, damit die Python-Module in den bei Ubuntu üblichen Pfaden landen. Gibt man diese Variable nicht an, ist es ggf. erforderlich eine Umgebunsvariable <tt>PYTHONPATH</tt> zu setzen und diese ggf. in das Script <tt>/etc/init.d/xend</tt> einzubauen:</p>
<pre>rm -rf xen-3.4.2
tar xvzf xen-3.4.2.tar.gz
cd xen-3.4.2
make tools
make install-tools PYTHON_PREFIX_ARG=</pre>
<p>Wenn alles geklappt hat, lässt sich der Xend starten. Läuft dieser, können die Bootmeldungen des Hypervisors ausgelesen werden.</p>
<pre>/etc/init.d/xend start
xm dmesg</pre>
<h3>Xend in den Runleveln verlinken</h3>
<p>Ich habe Xend <i>vor</i> dem SSH-Server verlinkt, den Start der domU-Instanzen danach. Grund waren Probleme mit dem SSH-Server: Upstart (oder der Xend?) versucht diesen neu zu starten, wenn neue Interfaces auftauchen. Das gelingt nicht immer, so dass ich während meiner Tests häufiger ohne SSH da stand. Auf einem Root-Server ist so etwas natürlich ganz bescheiden.</p>
<pre>update-rc.d xend start 14 2 3 4 5 . stop 80 0 1 6 .
update-rc.d xendomains start 21 2 3 4 5 . stop 79 0 1 6 .</pre>
<h3>Vorbereitung für Routing-Setup</h3>
<p><b>Achtung:</b> Siehe auch <a href="http://blog.rootserverexperiment.de/2010/03/19/xen-nachtrag-setup-mit-routing/">den Nachtrag vom 19. März</a> für ein besseres Setup!</p>
<p>Provider wie Hetzner oder Strato routen einem Server zugewiesene Subnetze auf dessen primäre IP-Adresse. Deshalb muss bei diesen Servern das Xen-Netzwerk von bridged auf routed umgestellt werden. <b>Achtung:</b> Einige Provider klemmen Server gnadenlos ab, wenn hinter einem Port des Routers bislang unbekannte MAC-Adressen auftauchen. Wer den Xend bei so einem Provider startet, ohne vorher auf routed umgestellt zu haben, fliegt aus der SSH-Verbindung raus und darf mit dem Support telefonieren!</p>
<p>Zuerst wird die Datei  <tt>/etc/modules</tt> um eine Zeile </p>
<pre>dummy</pre>
<p>für den Dummy-Netzwerk-Adapter erweitert.</p>
<p>Es folgt die statische Konfiguration der primären IP-Adresse auf <tt>eth0</tt> und der ersten nutzbaren IP-Adresse auf <tt>dummy</tt>. In diesem Fall haben wir das Subnetz <tt>172.16.16.112/ 255.255.255.248</tt> (acht Adressen von </tt>.112</tt> bis <tt>.119</tt>) zugewiesen bekommen, <tt>.112</tt> ist hier die Adresse des Netzes, <tt>.113</tt> wird auf <tt>dummy0</tt> gelegt, <tt>.114</tt> bis <tt>.118</tt> (fünf von acht Adressen) sind für die domUs nutzbar und <tt>.119</tt> ist die Broadcast-Adresse:</p>
<pre>auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1

auto dummy0
iface dummy0 inet static
        address 172.16.16.113
        netmask 255.255.255.248</pre>
<p>In der Konfigurationsdatei <tt>/etc/xen/xend-config.sxp</tt> des Xend muss die Einstellung von bridged auf routed umgestellt werden. Das zu routende Device muss explizit angegeben werden:</p>
<pre># (network-script network-bridge)
# (vif-script     vif-bridge)
(network-script 'network-route netdev=dummy0')
(vif-script     'vif-route netdev=dummy0')</pre>
<p>An dieser Stelle ist ein Neustart des Xend, besser ein Reboot erforderlich. Anschließend können die domUs konfiguriert werden. Die Routing-Informationen werden hierfür in der Client-Config eingetragen:</p>
<pre>kernel = "/boot/vmlinuz-2.6.31.12-mfs006-xenU-minimal-amd64"
ramdisk = "/boot/initrd.img-2.6.31.12-mfs006-xenU-minimal-amd64"
memory = 256
name = "ubuntu-amd64-minimal"
vif = [ 'ip=172.16.16.114' , 'mac=00:16:00:00:00:27' ]
disk = [ 'file:/usr/local/xendomains/test01_64/sda1.img,sda1,w' ]
root = "/dev/sda1 ro"
extras = "console=hvc0 xencons=tty"</pre>
<p>Daneben ist es erforderlich, die IP-Konfiguration in der <tt>/etc/network/interfaces</tt> der domU einzutragen -- DHCP möchte ich an dieser Stelle nicht erklären, das würde den Rahmen sprengen.</p>
<h3>Vielen Dank an...</h3>
<ul>
<li><a href="http://www.brandonturner.net/blog/2010/01/install-xen-ubuntu/">Installing Xen on Ubuntu 9.10 -- Brandon's Blog</a> ...für die Idee mit dem Gentoo-Kernel und die GRUB-Konfiguration</li>
<li><a href="http://www.debian-administration.org/articles/360">An introduction to custom Xen networking -- Debian Administration</a> ...für die Hinweise zum Routed-Setup</li>
</ul>
<h3>Anmerkungen:</h3>
<ul>
<li>
<p><b>Nie</b> erst Ubuntus Xen-Tools 3.3 installieren und dann diese Anleitung durchführen. Das resultierende Versionsmischmasch wird garantiert kein funktionierendes Netzwerk zur Folge haben!</p>
</li>
<li>
<p>Details zur domU-Konfiguration bei Hetzner folgen</p>
</li>
<li>
<p>Details zur Ubuntu-/Debian-Installation aus Hetzners Rettungssystem folgen</p>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2010/03/18/vinalla-xen-und-kernel-auf-ubuntu-karmic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It just sucks: Xen und ein kaputter Rechner</title>
		<link>http://blog.rootserverexperiment.de/2008/12/02/it-just-sucks-xen-und-ein-kaputter-rechner/</link>
		<comments>http://blog.rootserverexperiment.de/2008/12/02/it-just-sucks-xen-und-ein-kaputter-rechner/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 11:04:26 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/?p=227</guid>
		<description><![CDATA[Es kam wie es kommen musste: Kurz vor Ende des Urlaubs schmierte der Büroserver ab &#8212; ein alter Athlon XP 2000+ von ca. 2004, der in erster Linie als Datengrab dient, aber auch einige Xen-Domains für Testzwecke und den Festplattenvideorecorder beherbergt. Ein normales PC-System, das unter Ubuntu plus Xen lief, einzige Besonderheit eine Menge Xen-Domains [...]]]></description>
			<content:encoded><![CDATA[<p>Es kam wie es kommen musste: Kurz vor Ende des Urlaubs schmierte der Büroserver ab &#8212; ein alter Athlon XP 2000+ von ca. 2004, der in erster Linie als Datengrab dient, aber auch einige Xen-Domains für Testzwecke und den Festplattenvideorecorder beherbergt. Ein normales PC-System, das unter Ubuntu plus Xen lief, einzige Besonderheit eine Menge Xen-Domains für verschiedene Zwecke und ein paar durchgeschleifte PCI-Karten. An sich nichts Wildes, schließlich sind alle geschäftskritischen Daten mehrfach gesichert. Es sah also nach einer einfachen Sache aus: Hardware kaufen, auf der halblebigen alten Maschine einen frischen Kernel bauen, Mainboard (Sockel 775), Prozessor (billiger Zweikern-Pentium) und RAM tauschen, Reboot und gut.</p>
<h3>Denkste&#8230;</h3>
<p><span id="more-227"></span></p>
<p>Auf dem Büroserver lief ein <a href="http://www.xen.org/download/" target="_blank">Vanilla-Xen</a> mit selbstgebautem Kernel. So sollte es auch bleiben. Für ein Update des Ubuntu 7.10 mit Xen 3.2 bestand zunächst keine Veranlassung, ich besorgte mir also frische openSUSE-11.0-Kernel-Quellen &#8212; die sind relativ aktuell (2.6.25) und enthalten die Xen-Patches mit all den von mir benötigten Features. Dummerweise brach der Build mit einem Compile-Fehler ab &#8212; möchte openSUSEs Kernel etwa einen bestimmten Compiler? Da die Dom0 letztlich nicht besonders viele Dienste beherrbergt und eigentlich dazu dient, Geräte an die DomUs durchzuschleifen, entschied ich mich für das Aufsetzen einer frischen Dom0. Als Distribution sollte <a href="http://www.opensuse.org/" target="_blank">openSUSE 11.0</a> zum Einsatz kommen, schließlich ist Novell neben RedHat der Distributor mit dem stärksten Xen-Engagement und sollte daher eine komplette und gut abgestimmte Dom0 liefern. Leser, die über <a href="http://planet.ubuntuusers.de/">planet.ubuntuusers.de</a> auf diesen Eintrag kamen, mögen mir verzeihen.</p>
<h3>Und dann nach Netzwerkprobleme</h3>
<p>Als Installationsmedium verwenden wir gerne einen <a href="http://blog.rootserverexperiment.de/2007/09/17/der-buro-bootserver-pxelinux-im-praxiseinsatz/" target="_blank">PXE-/TFTP-Bootserver</a>. Da genügt es, den Rechner ans Netz zu stöpseln, das BIOS korrekt einzustellen und dann ein paar Sekunden auf das Bootmenü zu warten. Der neue Rechner lud auch brav Kernel und Initrd, fand aber danach keinen Link mehr. Gnarrrr&#8230;</p>
<pre>eth0: RTL8168c/8111c at 0xee112000, 00:21:de:ad:be:ef, XID 3c4000c0 IRQ 18</pre>
<p>Das Problem ist besonders bei Realtek-Karten bekannt und tritt immer wieder einmal auf: Anscheinend bleiben Reste des PXE-Codes im Speicher der Karte, worauf diese vom Kernel nicht richtig initialisiert werden kann. Ähnliche Probleme treten manchmal beim Hin- und Herbooten zwischen verschiedenen Betriebssystemen auf. Meist hilft ein BIOS-Update in Kombination mit den aktuellsten Treibern (sprich: einem frischen Kernel oder <a href="http://www.jamesonwilliams.com/hardy-r8168.html" target="_blank">Herstellertreiber</a>). Das war mir dann zu aufwendig, ich deaktivierte den PXE-Boot und entschied mich für die Installation per USB-DVD-ROM.</p>
<h3>Juchhu, er bootet</h3>
<p>Die Installation der nackten openSUSE und die Nachinstallation von Xen sowie das erste Update mittels <tt><a href="http://de.opensuse.org/Zypper/Anleitung" target="_blank">zypper</a></tt> lief problemlos durch &#8212; ich hätte ehrlich gesagt bei einem Minimalsystem nichts anderes erwartet. Xen wurde sauber in der Grub-Konfiguration eingetragen und ich selbst fügte dem Linux-Kernel noch die Einträge zum <a href="http://blog.rootserverexperiment.de/2007/12/31/durchgereicht-pci-passthrough-bei-xen-32rc/" target="_blank">Durchschleifen von USB- und DVB-Karte</a> hinzu:</p>
<pre>pciback.permissive pciback.hide=(0000:06:00.0)(0000:06:00.1)(0000:06:00.2)(0000:06:01.0)</pre>
<h3>Zu früh gefreut</h3>
<p>Dummerweise lies sich die DomU mit dem Videorecorder nicht starten. Das ist die einzige Domain, die im Dauereinsatz auf durchgeschleifte PCI-Karten zugreift. Der Aufruf von <tt>dmesg</tt> schuf Klarheit: Die beiden <tt>pciback.</tt>-Bootparameter waren unbekannt. Ein Blick in openSUSEs Kernelkonfiguration zeigte die Ursache: Der PCI-Backend-Treiber war als Modul kompiliert, was zur Folge hat, dass erst der Kernel lädt und PCI-Karten initialisiert und dann der Backend-Treiber diese nicht mehr maskieren kann. Ich installierte also die Kernelquellen, passte die Optionen für den Backend-Treiber an (&#8220;Backend driver support&#8221; und &#8220;PCI-device backend driver&#8221; fest einkompiliert statt Modul und &#8220;PCI Backend Mode (Passthrough)&#8221;), versah den Kernel mit einem eigenen Prefix und kompilierte ihn neu.</p>
<div align="center"><a target="_blank" href="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20081202_config.png"><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20081202_config_sml.png" /></a></div>
<p>Nach <tt>mkinitrd</tt>, Anpassung der Grub-Konfiguration und Reboot war auch diese Hürde gemeistert. Es war Mitternacht, ein guter Zwischenstand, Zeit ins Bett zu gehen.</p>
<h3>Das lässt mich kalt (der nächste Morgen)</h3>
<p>Und wieder einmal sprang eine Festplatte nach dem Auskühlen nicht an. Wahrscheinlich ist das Öl in einem Lager etwas verharzt. Da die betreffende Festplatte Teil eines RAID5-Verbundes ist, verzichtete ich auf den Trick mit dem Fön und kaufte einfach eine neue. Sollte jemand auf dasselbe Problem stoßen: Zunächst startet man das Array ohne die defekte Festplatte (mit <tt>--run</tt> oder <tt>--force</tt>)&#8230;</p>
<pre>root@kiste# mdadm --assemble --run /dev/md0 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: /dev/md0 has been started with 3 drives (out of 4).</pre>
<p>Dann partitioniert man die neue Platte und fügt die neue Partition dem Array hinzu:</p>
<pre>root@kiste# mdadm --add /dev/md0 /dev/sdc1
mdadm: added /dev/sdc1</pre>
<p>Ein Blick ins <tt>/proc</tt> zeigt dann den Synchronisiationsfortschritt:</p>
<pre>root@kiste# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[4] sdd1[1] sdf1[3] sde1[2]
      1465151808 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
      [>....................]  recovery =  0.2% (1398528/488383936) finish=251.2min speed=32304K/sec

unused devices: <none></pre>
<p>Das RAID-Array kann jetzt bereits verwendet werden, allerdings ist die Performance unterirdisch. Zumindest auf das Kopieren oder Synchronisieren großer Datenmengen sollte man also noch verzichten.</p>
<h3>Lästige Kleinigkeiten</h3>
<p>Soweit, so gut. Einige Kleinigkeiten bleiben. So verwendet meine Videorecorder-DomU noch einem älteren openSUSE-Xen-Kernel, dessen USB-Massenspeicher-Treiber reproduzierbar abstürzt, wenn eine Festplatte oder ein DVD-ROM angeschlossen ist. Stöpsele ich nach dem Boot an, funktioniert alles einwandfrei. Hier werde ich wohl um einen frischen Kernel nicht herumkommen. Bis dahin lebe ich mit dem etwas aufwendigeren Reboot.</p>
<p>Warum tut man sich soetwas überhaupt an? Ich nutze Xen, weil es sich um die flexibelste Virtualisierungslösung handelt, insbesondere wenn PCI-Karten an unpriviligierte Domains durchgereicht werden sollen. Dazu kommt der geringe Overhead durch Xen selbst. Allerdings haben sich seitens Citrix in letzter Zeit einige Schludrigkeiten eingeschlichen. So ist der originale Linux-Kernel mit Xen-Patches noch auf Stand von 2.6.18, die Xen-Unterstützung im Linux-Kernel reicht gerade für den Betrieb einfacher DomUs und gerade kleinere Distributionen tun sich schwer mit der zeitnahen Integration von Xen-Patches in aktuelle Kernel. Auch Novells Nachlässigkeit bei der Konfiguration des PCI-Backends zeigt, dass man dort Xen wohl nicht mehr ganz so hoch priorisiert wie noch vor gut einem Jahr. Klar, dass Citrix zusammen mit den großen Distributoren die kommerziellen Xen-Varianten verkaufen möchte, aber nur eine breite Nutzerbasis in der Community kann auch dafür sorgen, dass ein Produkt ausgereift und gut getestet am Markt bestehen kann. Eine Mindestvoraussetzung dafür sollte sein, dass aktuelle Kernel bereitstehen und sich als stabil deklarierte Releases auf aktuellen Distributionen kompilieren lassen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2008/12/02/it-just-sucks-xen-und-ein-kaputter-rechner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Durchgereicht: PCI passthrough bei Xen 3.2rc</title>
		<link>http://blog.rootserverexperiment.de/2007/12/31/durchgereicht-pci-passthrough-bei-xen-32rc/</link>
		<comments>http://blog.rootserverexperiment.de/2007/12/31/durchgereicht-pci-passthrough-bei-xen-32rc/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 13:31:23 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips und Tricks]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/2007/12/31/durchgereicht-pci-passthrough-bei-xen-32rc/</guid>
		<description><![CDATA[Update, 17. Januar 2008: Xen 3.2 final wurde heute veröffentlicht. Golem berichtet darüber.
Ein großes Problem bei vielen Virtualisierungstechnologien ist die fehlende Möglichkeit, in einem Gastsystem &#8220;rohen&#8221; Zugriff auf einzelne Hardwarekomponenten zu erhalten. Zwar bieten VMware und andere das Durchreichen von USB-Geräten, doch das ist eine Lösung, die für physikalisch vom Netz des Wirts getrennte Firewalls [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update, 17. Januar 2008</strong>: Xen 3.2 final wurde heute veröffentlicht. <a href="http://www.golem.de/0801/57075.html" target="_blank">Golem berichtet darüber</a>.</p>
<p>Ein großes Problem bei vielen Virtualisierungstechnologien ist die fehlende Möglichkeit, in einem Gastsystem &#8220;rohen&#8221; Zugriff auf einzelne Hardwarekomponenten zu erhalten. Zwar bieten VMware und andere das Durchreichen von USB-Geräten, doch das ist eine Lösung, die für physikalisch vom Netz des Wirts getrennte Firewalls oder RAID-Subsysteme nicht wirklich akzeptabel ist. Eine interessante Abhilfe bietet Xen, wo mit vertretbarem Aufwand Gäste direkten Zugriff auf PCI-Karten bekommen.</p>
<p><span id="more-43"></span></p>
<p><strong>Anpassungen am Dom0-Kernel</strong></p>
<p>Der Dom0-Kernel sollte in der Regel richtig konfiguriert sein. Hier muss unter &#8220;Xen&#8221; der &#8220;PCI-device backend driver&#8221; aktiviert sein und dessen Modus auf &#8220;Passthrough&#8221; stehen.</p>
<p><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20071231_kernel-dom0.png" height="349" width="496" /></p>
<p><strong>Anpassungen am DomU-Kernel</strong></p>
<p>In vielen Fällen werden Sie einen eigenen DomU-Kernel benötigen. Die von mir und einigen anderen angebotenen DomU-Kernel integrieren nur die Frontend-Treiber für Xen-Block-Devices und Xen-Network-Devices, Sie benötigen jedoch einen Kernel, der einerseits den PCI-Frontend-Treiber mitbringt und andererseits Treiber für die zu unterstützenden Geräte. Als Ausgangsbasis können Sie einen normalen XenU-Kernel verwenden und die gewünschten Treiber zusätzlich auswählen:</p>
<p><img src="http://images.mattiasschlenker.de/blog.rootserverexperiment.de/20071231_kernel-domU.png" height="349" width="496" /></p>
<p><strong>Stillegen der PCI-Devices in der Dom0</strong></p>
<p>Damit einzelne PCI-Geräte durchgereicht werden können, müssen diese per Bootparameter stillgelegt werden. Identifizieren Sie zunächst mit <em>lspci -v</em>  die betreffenden Karten und ergänzen Sie dann die Appendzeile der Dom0:</p>
<p><tt>title Xen 3.2.0rc4 - Linux 2.6.18.8<br />
root (hd0,0)<br />
kernel /boot/xen-3.2.0-rc4-pre.gz<br />
module /boot/vmlinuz-2.6.18.8-xen0 root=/dev/hda1 ro pciback.permissive pciback.hide=(00:0c.0)(00:0c.1)(00:0c.2)(00:0d.0)(00:09.0)<br />
boot</tt></p>
<p>Nun ist ein Reboot des gesamten Systems erforderlich. Anschließend können Sie in der DomU mit <em>lspci</em>  die durchgereichten Karten ermitteln, Treiber laden und so die Hardware direkt verwenden:</p>
<p><tt>00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)<br />
00:0c.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 61)<br />
00:0c.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 61)<br />
00:0c.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 63)<br />
00:0d.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)</tt></p>
<p><strong>Anmerkungen:</strong></p>
<p>Der hier zu sehende Gast war ein temporär aufgesetztes Testsystem mit einer Hauppauge DVB-C-Karte, der die Möglichkeit haben sollte, Videoaufnahmen zu machen, ohne dass Änderungen an der Dom0 erforderlich sind, und der via direktem USB-Zugriff diese Videos flott auf USB-Festplatten kopieren sollte. Hierfür kam ein als PCI-Steckkarte ausgeführter USB-Controller zum Einsatz.  Ob es möglich ist, einzelne Roothubs dieses Controllers (immerhin werden diese als separate Geräte angezeigt) durchzureichen, habe ich nicht ausprobiert.</p>
<p>Nach meinem bisherigen Kenntnisstand funktioniert das PCI passthrough nicht bei Domains im Full Virtualization Mode. DomUs haben Kenntnis über die Speicheraufteilung und können demnach Adressen richtig zuordnen. Full Virtualization Mode Clients sehen dagegen Speicher ab 0 Byte.</p>
<p>Ich habe noch keine Performancetests von SATA-Controllern, die via Xen-Block freigegeben wurden, gegenüber dem Durchreichen dieser Controller durchgeführt. Allerdings sollte die Performance spürbar besser ausfallen, da der Weg über den Blockdevice-Treiber der Dom0 wegfällt.</p>
<p>Theoretisch sollte es möglich sein, auch von einer durchgereichten SATA-Karte zu booten. Damit verliert man aber einen der größten Vorteile von Xen, die weitgehende Abstraktion von der darunterliegenden Hardware. In Einzelfällen, in denen Performance vor Abstraktion geht, dürfte es ein guter Kompromiss sein, das Grundsystem von einem kleinen Image zu starten und dann die Datenverzeichnisse, auf denen Performance benötigt wird, via passthrough anzusprechen.</p>
<p>Der Screenshot des domU-Kernels entstand mit dem openSUSE-10.3-Kernel auf einer Ubuntu-7.10-domU. Eine etwas exotische Konfiguration, aber openSUSE liefert recht aktuelle Distributionskernel mit sauber  integrierten Xen-Patches. In diesem Fall war ein Kernel &gt;2.6.19 erforderlich, um die DVB-Treiber aus dem Mercurial-Repository integrieren zu können.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2007/12/31/durchgereicht-pci-passthrough-bei-xen-32rc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Xen relabelled: Sun xVM</title>
		<link>http://blog.rootserverexperiment.de/2007/11/15/xen-relabelled-sun-xvm/</link>
		<comments>http://blog.rootserverexperiment.de/2007/11/15/xen-relabelled-sun-xvm/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 09:27:58 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/2007/11/15/xen-relabelled-sun-xvm/</guid>
		<description><![CDATA[Nachdem Oracle bereits vor einigen Tagen seine Xen-Version vorgestellt hat, ist endlich Sun dran: Als xVM wird ein modifizierter (?) Xen-Hypervisor angeboten werden, der Solaris-Instanzen ausführen wird. Das Produkt passt hervorragend in Suns Angebotspalette: Wer Solaris virtualisieren wollte, musste bislang zur recht teuren Niagara-Architektur greifen &#8212; bei dieser gibt es einen massiv in Hardware unterstützten [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem Oracle <a href="http://www.golem.de/0711/55964.html" target="_blank">bereits vor einigen Tagen seine Xen-Version</a> vorgestellt hat, ist endlich Sun dran: Als <a href="http://www.golem.de/0711/56011.html" target="_blank">xVM wird ein modifizierter (?) Xen-Hypervisor angeboten</a> werden, der Solaris-Instanzen ausführen wird. Das Produkt passt hervorragend in Suns Angebotspalette: Wer Solaris virtualisieren wollte, musste bislang zur recht teuren <a href="http://www.golem.de/0710/55268.html" target="_blank">Niagara-Architektur</a> greifen &#8212; bei dieser gibt es einen massiv in Hardware unterstützten Hypervisor gratis dazu. Zu Einstiegspreisen ab ca. 3000€ netto bekommt man zwar gut auf I/O und Multithreading optimierte Hardware und die Möglichkeit dutzende Linux- und Solaris gleichzeitig zu starten, muss aber auf x86-Binärkompatibilität verzichten. Daneben bietet Sun mit den Solaris Zones eine Containerlösung, die ähnlich den BSD-Jails, Linux-VServer oder OpenVZ funktioniert &#8212; performant aber nicht ideal, es hilft auch nicht, dass man in eine Solaris-Zone dank Linux-ABI einen Linux-Container stecken kann: Es bleibt ein Solaris-Kernel mit allen Eigenheiten.</p>
<p>Bleibt zu hoffen, dass xVM nicht mit den langsam etablierten Xen-Schnittstellen bricht. Ich möchte in der Lage sein, auf einem normalen Xen eine openSOLARIS-Instanz auszuführen und umgekehrt unter xVM Linux-Instanzen mit xenifiziertem Distributionskernel. Dass ich viel Xen nutze, dürfte sich mittlerweile herumgesprochen haben. Ich durfte in der letzten Zeit so auch die Nachteile von Xen kennenlernen. Insbesondere Wünsche ich mir eine einfache Möglichkeit, leichtgewichtige Virtualisierung (aka Chroot-Erweiterungen) auf schwergewichtiger Virtualisierung (aka Xen) nutzen zu können &#8212; und so letztlich mehr aus der Hardware rauszuquetschen als mit Xen und dennoch deutlich flexibler zu sein als nur mit leichtgewichtiger Virtualisierung.</p>
<p>Scheint, dieser Traum könnte mit openSOLARIS-Zones auf Xen Wirklichkeit werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2007/11/15/xen-relabelled-sun-xvm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xen-Unterstützung im Linux-Kernel 2.6.23</title>
		<link>http://blog.rootserverexperiment.de/2007/10/10/xen-unterstutzung-im-linux-kernel-2623/</link>
		<comments>http://blog.rootserverexperiment.de/2007/10/10/xen-unterstutzung-im-linux-kernel-2623/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 08:08:58 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.rootserverexperiment.de/2007/10/10/xen-unterstutzung-im-linux-kernel-2623/</guid>
		<description><![CDATA[Endlich hat Xen Eingang in den Linux-Kernel gefunden. Bislang zwar nur als DomU, doch das ist schonmal ein guter Anfang: Dom0 ist bei den meisten Webservern, die Xen nutzen eh nur per SSH erreichbar, so dass das typische &#8220;Cracking-Szenario&#8221; &#8212; Shell-Exploit in einer Webanwendung und anschließender lokaler Root-Exploit kaum wahrscheinlich ist. Bei untervermieteten DomUs, deren [...]]]></description>
			<content:encoded><![CDATA[<p>Endlich hat Xen Eingang in den Linux-Kernel gefunden. Bislang zwar nur als DomU, doch das ist schonmal ein guter Anfang: Dom0 ist bei den meisten Webservern, die Xen nutzen eh nur per SSH erreichbar, so dass das typische &#8220;Cracking-Szenario&#8221; &#8212; Shell-Exploit in einer Webanwendung und anschließender lokaler Root-Exploit kaum wahrscheinlich ist. Bei untervermieteten DomUs, deren Nutzer nicht gerade die sicherheitsbewußtesten sind, durfte man zwischen der Erkennung von Sicherheitslücken und  der Verfügbarkeit gepatchter Kernel immer Tage bis Wochen bangen.</p>
<p>Noch habe ich 2.6.23 nicht getestet. Spannend bleibt insbesondere die Frage nach Aktualität und Xen-Kompatibilität: Zumindest in der Vergangenheit sind die <em>Distributionskernel</em> nicht immer durch 100%ige Kompatibilität zum Vanilla-Xen-Hypervisor aufgefallen. Bleibt zu hoffen, dass der Vanilla-Linux-Kernel zeitnah zum Original-Xen aktualisiert wird.</p>
<p>Siehe auch:</p>
<ul>
<li><a href="http://www.golem.de/0710/54918.html" target="_blank">News auf Golem.de</a></li>
<li><a href="http://kernelnewbies.org/LinuxChanges" target="_blank">Changes auf Kernelnewbies.org</a></li>
<li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/" target="_blank">Changes und Download auf Kernel.org</a></li>
</ul>
<p>Und etwas Eigenwerbung:</p>
<ul>
<li><a href="http://www.pc-magazin.de/praxis/linux/a/Xen-Viele-Linux-Instanzen-auf-einem-PC" target="_blank">Xen-Einführung bei PC-Magazin.de</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rootserverexperiment.de/2007/10/10/xen-unterstutzung-im-linux-kernel-2623/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
