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.

Links 20090226 - Cheese Eventum Ext4 Marble Open Street Map

Cheese - Mit Hilfe der Webcam nimmt diese Gnome Software Fotos oder Videos auf, die man dann mit Spezialeffekten versehen kann.
Eventum Issue / Bug Tracking System - Eventum wird von MySQL entwickelt.
Anatomy of ext4 - Alles was sie schon immer über das Ext4 Filesystem wissen wollten ;-)
OSM 2008: A Year of Edits - Das ist ein cooles Video. Es zeigt, wie sich das Open Street Map Projekt im Laufe des Jahres 2008 entwickelt hat, also welche Strassen hinzugekommen sind.
Marble für KDE - Man entdeckt doch immer wieder was Neues im KDE Universum ;-) Marble ist ein virtueller Globus und Atlas. Zeigt u.a. auch die Straßen des Open Street Map Projekts, der Venus und des Mars an. Tool gemacht!

Dienstag Feb. 24, 2009

Links 20090224 - Firefox Linux vnstat MySQL sed awk

Firefox Extension Update Scanner - Bietet eine Seite keinen RSS- oder Atom-Feed an, kann diese Erweiterung das übernehmen.
Firefox Extension Session Manager - Ein ziemlich umfangreicher Sessionmanager für Firefox.
Linux Distribution Tin Hat - Basiert auf Gentoo und läuft ausschließlich im RAM. Für sichere Desktop-Umgebungen gedacht.
vnstat PHP frontend - vnstat ist ein Netzwerk Traffic Logger. Das hier ist das entsprechende Webfrontend, wem die Console nicht so liegt.
Jet Profiler for MySQL - Ein Realtime Profiler für Queryanalyse und Performancestatistiken für MySQL. Gibt es auch als kostenlose Community Edition.
Famous Awk/Sed One-Liners Explained - Wer mit awk und/oder sed arbeitet, kennt vermutlich die awk und sed onliners. Peteris Krumin erklärt in seinem Blog die div. Einzeiler sehr ausfühlich. Sehr lesenswert!
Famous Awk One-Liners Explained, Part I
Famous Awk One-Liners Explained, Part II
Famous Awk One-Liners Explained, Part III
Famous Awk One-Liners Explained, Part IV
Sed One-Liners Explained I
Sed One-Liners Explained II
Sed One-Liners Explained III

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.

Mittwoch Feb. 11, 2009

Links 20090211

Blood Frontier: The Latest Open-Source FPS - Ein OpenSource first-person shooter für Linux basierend auf der Sauerbraten-Engine.
ZoneMinder - Eine freie Video-Überwachungslösung (CCTV) für Linux. Kann auch mit mehreren Kameras umgehen.
Wput - Macht fast das Gleiche wie wget, nur ist das Tool für FTP und es lädt Files und ganze Verzeichnisse auf einen FTP-Server.
Set-up a Ubuntu webcam security system - Wie man eine Video-Überwachung unter Ubuntu (aber das funktioniert auch mit anderen Distributionen) aufbaut.
7 Cool Things to Do With Linux - Home Theater PC, Mediaserver, Download-Server, VoIP System, Überwachungssystem und Sicherheit. Darum geht es in diesem Artikel mit Links zu div. Projekten zum jeweiligen Thema.
Wine Support Honor Roll - Eine Übersicht von teilweise kommerziellen Programmen, die offiziell Wine unterstützen und es als Systemvoraussetzung aufführen.
pongmuseum.com - Muss ich dazu noch was sagen? ;-)
A New Image Replacement Technique: The State Scope Method - Eine neue Methode wie man per CSS Bilder in HTML-Seiten austauscht.

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

Links 20090205

Introduction into Java VisualVM - Dieses Video hier (Link geht direkt auf das Video) zeigt, wie man mit der VVM in Java 1.6 (Performance-)Probleme aller Art verhältnismäßig einfach debuggen kann.
Songbird 1.0 Review - Wer iTunes auf Linux vermisst hat, wird in Songbird eine gute Alternative finden (ohne iTunes-Store natürlich)...
EnterpriseDB Webcasts - Auf der Webseite von der kommerziellen Version von PostgreSQL finden sich einige interessante Videos bzw. Webcasts über Themen wie Replikation, Administration, usw.
Substance Java look & feel - Ein sehr schönes Theme für Java Programme.
Flamingo Swing component suite - Eine Java Swing Implementation der Office 2007 Ribbon Container und weitere Komponenten.
Better YouTube Firefox Extension - Fügt u.a. einen Download-Link ein, um das Video gleich runterladen zu können. Ausserdem verwendet es einen Flash-Player, der nicht gleich das Video abspielt.
YouTube HQ + 720p - Ein Greasemonkey Skript für Firefox damit man gleich die hochauflösenden YouTube Videos präsentiert bekommt.
Dyne's Legendary Hackers List - Was soll man mehr dazu sagen ;-) Aber wohlgemerkt: Es geht um Hacker und nicht um Cracker.
Music Player Daemon - Ein etwas ungewöhnlicher Player der als Daemon fungiert und über div. Biblotheken eine ganze Reihe von Formaten abspielen kann. Kontrolliert wird das Ganze über div. Clients.

My software never has bugs. It just develops random features.

;-)

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.