Freitag Feb. 27, 2009

KVM: Welchen cpu Parameter verwenden

Die KVM (Kernel Virtual Machine) bietet ja div. Parameter an, was die CPU anbelangt:

scotty ~ $ kvm -cpu ?
x86           qemu64
x86         core2duo
x86           qemu32
x86          coreduo
x86              486
x86          pentium
x86         pentium2
x86         pentium3
x86           athlon
x86             n270

Eine interessante Frage tauchte dazu kürzlich in der KVM Mailing Liste auf. Welchen soll man denn nun verwenden? Insbesondere wenn man Gentoo als Gastsystem am Laufen hat. Da macht es ja doch Sinn, das der Compiler alle Möglichkeiten nutzt, die der Host-Prozesser zur Verfügung stellt (cat /proc/cpuinfo).

Das Ergebnis war schließlich, das man eigentlich nichts angeben muss. -cpu modifiziert nur die CPUID-Flags. Wenn aber die CPU SSE3 z.B. unterstützt, dann profitiert auch der Gast davon.

Freitag Feb. 20, 2009

K3B und KDE 4.2

Nach dem Upgrade von KDE 3.5 auf 4.2 unter Gentoo tut leider K3B nicht mehr. Das benötigt leider unbedingt die alten kdelibs. Es gibt wohl im kde-testing Overlay (Stichwort Layman) eine Version, die unter KDE 4 läuft, aber das wollte ich mir jetzt nicht antun.

Deshalb habe ich mir jetzt Brasero installiert. Das ist zwar eine Gnome-Applikation, läuft aber auch unter KDE einwandfrei und fällt eigentlich auch nicht auf, das es normalerweise unter Gnome läuft.

Dienstag Feb. 10, 2009

Linux: IOMMU: Setting identity map for device

Falls euch beim Booten vom Linux-Kernel mit einem Intel Quad Core eine Meldung wie diese hier

IOMMU: Setting identity map for device 0000:00:1a.1 [xdefd6000 - 0xdefd7000]

um die Ohren fliegt, sollte man in der /boot/grub/grub.conf (oder menu.lst) folgenden Parameter in der kernel-Zeile setzen:

intel_iommu=off

Das kann man auch temporär tun, wenn Grub das Bootmenü anzeigt, den entsprechenden Eintrag mit e auswählt und dann einfach hinter der Zeile mit kernel ... anhängt

Freitag Feb. 06, 2009

KDE 4.2

Nach dem nun am 27.1.2009 KDE 4.2 released wurde, war es kurz darauf auch schon im Gentoo Portage. Respekt an die KDE- und Gentoo-Entwickler!

KDE 4.2 ist schon ein tolles Release. Habe jetzt auch meinen eigentlichen Desktoprechner von KDE 3.5 auf 4.2 upgedated. Da Portage 2.2 noch hardmasked ist und nur diese Version Slots unterstützt, habe ich das kde-meta-Paket installiert.

Grundsätzlich ist die KDE-Doku auf der Gentoo-Seite ganz gut. Zusätzlich zu den KDE-4.2-Pakete die in die /etc/portage/package.keywords eingetragen werden müssen, damit man 4.2 überhaupt installiert werden kann (die Liste kann man hier downloaden), musste ich noch

dev-util/cmake
kde-base/qimageblitz
dev-libs/soprano
app-misc/strigi
kde-base/automoc
app-office/akonadi-server
dev-libs/libical
x11-apps/xinit
sci-mathematics/gmm
dev-libs/libzip

unmasken. Weiterhin hatte ich das Problem, das das phonon-xine-Paket ständig verhindert hat, das phonon-4.3.0 installiert werden konnte. Schließlich habe ich kde-base/kdebase (V 3.5), krusader, krename, smplayer und vlc deinstalliert und dann lief auch die Installation von kde-base/kde-meta:4.2 durch. Die genannten Pakete hatten alle Abhängigkeiten zu KDE 3.5 Libs, die wiederum die Installation von 4.2 verhinderten. Die deinstallierten Pakete kann man nach der Installation einfach wieder installiert.

Der Befehl emerge -ptuDN world hilft ganz gut, um zu sehen, welche Pakete von welchen Paketen abhängen und kann so leichter Blocker auflösen.

Nachdem KDE 4 jetzt auch sehr schöne und vor allem auch schnelle Effekte schon mit bringt u.a. auch den berühmten Cube, habe ich Compiz-Fusion auch gleich deinstalliert. Ebenso habe ich auch alles Mögliche deinstalliert, was noch nach KDE 3.5 aussah. Allerdings spielen die o.g. Paket und auch z.B. das CD Brennprogramm k3b wieder einige KDE 3.5 Pakete ein. Das ist aber kein Problem.

Nach der ganzen Deinstallstionsorgie funktionierten dann nach einem Restart von KDE die Effekte nicht mehr. Hier hat dann eine Neuinstallation der Nvidia-Treiber geholfen. Dieser Installer meckerte dann auch gleich, das einige Pakete seit der letzten Installation geändert wurden. Nach der Neuinstallation der Treiber liefen dann auch die Effekte wieder.

Fall es jemand hilft: Konkret deinstalliert habe ich (Pakete werden dann teilweise später wieder reingezogen, wenn sich KDE 4.2 installiert) folgende Pakete:

libkexiv2 libkipi libkdcraw kde-base/kde-3.5.9 kde-base/arts-3.5.9 kde-base/kdewebdev-3.5.9 kde-base/kdetoys-3.5.9 de-base/kdepim-3.5.9-r1 kde-base/kdemultimedia-3.5.9 kde-base/kdeedu-3.5.9 kde-base/kdeaddons-3.5.9 kde-base/kdeadmin-3.5.9 kde-base/kdeartwork-3.5.9 kde-base/kdegames-3.5.9 kde-base/kdegraphics-3.5.9 kde-base/kdelibs-3.5.9-r4 kde-base/kdenetwork-3.5.9 kde-base/kdepim-3.5.9-r1 kde-base/kdeutils-3.5.9-r1 kde-base/kdeadmin-3.5.9 kde-base/kdeartwork-3.5.9 kde-base/kdegames-3.5.9 kde-base/kdegraphics-3.5.9 kde-base/kdelibs-3.5.9-r4 kde-base/kdenetwork-3.5.9 kde-base/kdepim-3.5.9-r1 kde-base/kdeutils-3.5.9-r1 x11-wm/compiz-0.6.2-r1 x11-wm/compiz-fusion-0.6.0 x11-plugins/compiz-fusion-plugins-unsupported-0.6.0 dev-python/compizconfig-python-0.6.0.1  11-libs/compiz-bcop-0.6.0 x11-libs/compizconfig-backend-gconf-0.6.0 x11-libs/compizconfig-backend-kconfig-0.6.0 x11-libs/libcompizconfig-0.6.0 x11-plugins/compiz-fusion-plugins-extra-0.6.0 x11-plugins/compiz-fusion-plugins-main-0.6.0 x11-themes/emerald-themes x11-wm/emerald ktorrent x11-themes/domino-0.4-r1 tork krusader krename x11-apps/ccsm-0.6.0 media-libs/libkdcraw

Donnerstag Feb. 05, 2009

Oracle 10g Client und Gentoo 2008.0

Falls mal jemand auf die Idee kommt, den Oracle 10g Client zu installieren und Gentoo 2008.0 (x86_64 bzw. amd64) zu verwenden, dem könnte folgende Meldung um die Ohren fliegen nach der Installation und beim Aufruf von oemapp dbastudio:

Exception java.lang.UnsatisfiedLinkError: /tmp/OraInstall2009-02-05_11-28-04AM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: wrong ELF class: ELFCLASS64 occurred..                                                                                                    
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2009-02-05_11-28-04AM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: wrong ELF class: ELFCLASS64

Bei mir hat dann Folgendes weitergeholfen:

emerge -av glibc binutils app-emulation/emul-linux-x86-baselibs app-emulation/emul-linux-x86-xlibs

Zusätzlich habe ich noch

emerge -av ksk rpm

installiert.

Mittwoch Feb. 04, 2009

KVM, Qemu und XFS Filesystem

So sehr ich ja XFS als Filesystem schätze, muss ich doch ziemlich davon abraten, es in einer KVM (Kernel Virtual Maschine) zu verwenden. Normalerweise richte ich das Root-FS (also /) immer als ext3-Filesystem ein und /boot als ext2. /var, /tmp, /usr, /opt, /home, usw. immer als XFS. Das war all die Jahre auch eine gute und einwandfrei funktionierende Kombination. Falls was ist, kann man mit den Standardtools Root-FS und /boot eventl. reparieren. Solange / und /boot noch tun, hat man ja ohnehin alle Tools drauf, um eventl. die XFS-Partitionen zu reparieren. Den Bedarf hatte ich aber noch nie - bis auf 3 mal in den letzten Monaten in Zusammenhang mit einer KVM.

Da XFS ja ziemlich aggressives Write-Caching betreibt, ist die allgemeine Empfehlung XFS hauptsächlich dann zu verwenden, wenn man eine USV vor dem Rechner hat oder einen Contoller, dessen Cache und Festplatte mit einer Batterie gegen plötzlichen Stromausfall gesichert ist.

So betrachtet, gelten beide Bedingungen nicht für die KVM. Ich kann die KVM ja jeder Zeit mit einem kill vom Host aus abschießen. Oder eine Kernel-Panic des Hosts würde auch die KVM killen. Das ist dann, als ob ich den Stecker für die KVM ziehen würde. Obwohl ich damit auf einem physikalischen Rechner noch nie Probleme hatte, scheint das in einer KVM gravierendere Auswirkungen zu haben. Das Ganze gilt insbesondere dann, wenn man das Virtio Block Device (VIRTIO_BLK) verwendet (das ist der Virtio Plattentreiber, der nicht emuliert werden muss, sondern soz. näher am Host-IO-Treiber sitzt und dadurch schneller arbeiten kann - fällt u.a. dadurch auf, das man ein /dev/vda Device hat).

Ich kann aufgrund meiner Erfahrungen aktuell nur empfehlen, ext3 in einer KVM zu verwenden. Die Probleme mit XFS traten dann und wann auf, wenn die KVM (aus welchen Gründen auch immer), unerwarteter Weise beendet wurde. I.d.R. konnte man das Filesystem wieder herstellen, aber mir hat es auch schon Zwei komplett zerlegt. Mit ext3 ist mir das noch auf keinem KVM-System passiert. Komisch... Normalerweise kenne ich das immer umgekehrt ;-)

Ich vermute mal, das einer der Gründe für die Probleme die fehlende Unterstützung in VIRT_BLK für Barriers ist. Das sieht dann mit dmesg z.B. so aus:

Filesystem "vda7": Disabling barriers, trial barrier write failed
XFS mounting filesystem vda7

Wenn ich die Sache mit den Barriers richtig verstanden habe, dann sind die dafür zuständig, das das Filesystem das darunterliegende Device informieren kann, wenn es Daten flushen, d.h. also wegschreiben soll. Wenn das nicht passiert und die Kiste säuft ab, dann kann das ziemliche Folgen für das Filesystem haben. Oft wird empfohlen, bei XFS die Option nobarrier zu setzen, um die Performance zu steigern. Das sollte man sich aber genau überlegen...

Update 20090206:

Zu dem Thema u.a. qcow2 vs. raw Format für KVM Images siehe auch hier:
Poor Write I/O Performance on KVM-79
Use writeback caching by default with qcow2
Re: Use writeback caching by default with qcow2
XFS FAQ

Interessant finde ich auch die Möglichkeit, LVM direkt als Laufwerk für eine KVM zu nutzen, wie in einem der Postings erwähnt wird (-drive file=/dev/vg/volume). War mir noch gar nicht bekannt...

Update 20090329:

Die XFS FAQ empfiehlt bei Qemu/KVM bei der -drive Option cache=none anzugeben, da hier anscheinend nicht mal auf einen fsync Verlass ist. Ich werde trotzdem bei ext3 als Filesystem in einer KVM bleiben.