Sonntag Jun 20, 2010

Links 20100619 - GoogleCL, Zetaback

GoogleCL - Google bringt mit GoogleCL seine Services auf die Kommandozeile. Damit lassen sich z.B. Videos auf Youtube hochladen, auf Blogger.com posten, usw.
Zetaback ZFS backup and recovery management system - Wer ein Backupprogramm für OpenSolaris und ZFS sucht, könnte hier fündig werden. Das Ganze arbeitet erheblich schneller als rsync.
Giggle - Eine GTK GUI für Git.


Freitag Jun 04, 2010

Rock am Ring bei EinsPlus live

Hab's leider auch übersehen, aber wenn's noch interessiert: EinsPlus überträgt insgesamt 30 Stunden Live von Rock am Ring. Fein Sache :-)


Donnerstag Mai 06, 2010

Links 20100504 - Nutch, HBase, Tika, Traffic Server

Nutch ist eine Suchmaschine basierend auf Apache Lucene. Damit lässt sich relativ einfach und schnell eine eigene Suchmaschine aufbauen.
Apache Cassandra - Von Facebook 2008 als OpenSource-Projekt eingebracht, erhält man eine verteilte, hochverfügbare Datenbank die nach Google's BigTable Prinzip arbeitet.
HBase ist eine Hadoop Datenbank. Damit kann man sehr große Tabellen verwalten auf einfacher Hardware.
Apache Tika - Mit Hilfe von Tika kann man Metadaten erkennen und erzeugen. D.h. es gibt eine ganze Reihe von Parsern, die verschiedene Formate von Dateien (HTML, XML, PDF, DOC, usw.) erkennen und Metainformationen extrahieren können.
Traffic Server ist ein schneller, skalierbarer und erweiterbarer HTTP/1.1 Caching Proxy, der von Yahoo entwickelt wurde. Er kann durch eigene Plugins erweitert werden.


Donnerstag Apr 29, 2010

Links 20100428 - Ceph, Gentoo, Amazon EC2, Sheepdog

Gentoo on EC2 From Scratch - Wer Gentoo in der Amazon Cloud installieren will, der findet dort aktuell nur relativ alte Gentoo Images. Hier steht, wie's aktueller geht.
bup - Ein ganz interessantes Backuptool. Noch sehr neu. Es benutzt das packfile Format von git. bup ermöglicht große VM Images, Datenbanken oder XML Files inkrementell zu sichern (das würde ich aber erstmal testen ;-) ). Das bup Repository kann man mittels FUSE mounten und so darauf zugreifen. Das Ganze ist sehr platzsparend, da selbst ein Full-Backup nur ein inkrementelles Backup ist.
Ceph Open Source Distributed Storage - Ein sehr interessantes, verteiltes Filesystem das kürzlich in den Kernel 2.6.34 Einzug gehalten hat, das man im Auge behalten sollte. Wenn das mal ausgereift ist, steht endlich ein vernünftiges verteiltes Filesystem im Linux Kernel zur Verfügung. Mittels kvm-rbd (wird noch entwickelt) kann man das Filesystem als Storage-Backend dann auch für KVM verwenden. Man gibt dann also kein qcow2-File oder LVM mehr an als KVM-Speicher, sondern ein VM Block Device das den Ceph Distributed Object Store nutzt. Das Ganze funktioniert ähnlich wie Sheepdog. Sheepdog ist ein verteilter Storage für KVM. Auch noch in der Entwicklung, aber man kann schon testen. Aus meiner Sicht hat aber Ceph/kvm-nbd irgendwie mehr Charme.


Freitag Apr 23, 2010

Links 20100423 - ffmpeg x264

HOWTO: ffmpeg & x264 presets oder: Wie löst man "broken ffmpeg default settings detected"


Dienstag Apr 20, 2010

Links 20100419 - KVM, GlusterFS, Django, Tomcat, Eclipse SVN+SSH

Using KSM (Kernel Samepage Merging) with KVM - Seit Kernel 2.6.32 (am Besten mit glibc 2.10 und KVM 0.12.3) gibt es die Möglichkeit, das Speicherbereiche von KVMs sich Speicherblöcke "teilen" bzw. gleiche Speicherblöcke zusammengefasst werden. Das kann bei vielen Windows Gästen z.B. schon mal 60% RAM sparen. Dieser Artikel beschreibt, wie man das einsetzt.
Glusterfs Distributed File System on Amazon EC2 - GlusterFS ist ein verteiltes Dateisystem, das anders als die meisten Anderen auf FuSE basiert, also nicht im Kernel beheimatet ist. Man kann damit soz. ein RAID über Rechner hinweg aufbauen z.B. ein RAID 0 bzw. 1 mit zwei Rechnern oder ein RAID 10 mit vier Rechnern. Wenn die verteilten Daten hauptsächlich gelesen werden und wenig bis gar keine Wildcard-Queries (z.B. ls -R *blub*) laufen, funktioniert das ganz gut. Hier wird der Einsatz in Amazon's Cloud beschrieben.
Django CMS - Wie der Name schon sagt, ein interessantes CMS in Python und Django geschrieben. Hier ein Demo-Video.
HTML5 Web Sockets: A Quantum Leap in Scalability for the Web
TomcatExpert - Diese Knowledgebase wurde von den SpringSource Jungs aus der Taufe gehoben. Sind ein paar gute Artikel und Slides dabei.
Configure SVN+SSH with Subclipse on Windows - Wie man Subversion über SSH mit Keys und der Hilfe von Subclipse benutzen kann, beschreibt dieser Artikel.


Donnerstag Mrz 18, 2010

Pantera - Cowboys from Hell 8-bit

Zu geil: Pantera's Cowboys from Hell in der 8-bit Fassung... :-)




Freitag Jan 15, 2010

32bit Anwendung auf 64bit Linux mit GCC kompilieren

Wenn man mal in die Verlegenheit kommt, auf einem 64bit Linux OS ein 32bit Programm kompilieren zu müssen, dann ist das unter Gentoo mit multilib USE-Flag (also installierter 32bit und 64bit Unterstützung) kein Problem. Bevor man einen configure aufruft, exportiert man einfach zwei Variablen:

export CFLAGS="-m32"
export LDFLAGS="-m32"

Unter Ubuntu/Debian sollten folgende Pakete installiert sein, damit das tut:

libstdc++.i386
libgcc.i386
glibc.i386
glibc-devel.i386

Unter SuSE haben die Pakete immer 32bit im Paketnamen also z.B.:

glibc-32bit
glibc-devel-32bit

I.d.R. wird man bei einem größeren Projekt wie den Apache Webserver u.U. aber noch weitere andere 32bit Pakete nachinstallieren müssen.


Donnerstag Jan 07, 2010

HP Officejet 6500 und Linux

Drucker hinüber, Neuer dringend benötigt... Also schnell zum Mediamarkt. Klar war, das es ein HP sein sollte. Die funzen i.d.R. ohne Probleme unter Linux. Ohne genau zu wissen, welchen ich eigentlich kaufen soll, hab ich mir dir 5-6 Typen angeschaut, die da so rumstehen. Gelandet bin ich dann beim 119 Euro teuren Officejet 6500 mit Ethernet-Anschluss, Fax, Scanner und Kopierer. Vorallem der Ethernet-Anschluss hat es mir angetan. Damit ließ sich dann der iMac auch noch anschließen und man hat nicht das Problem, das man das USB-Kabel ständig umstecken muss zwischen zwei Rechnern.

Also daheim IP-Adresse, Netzmaske und Default-Gateway eingestellt (DHCP hätte es auch getan, hab ich aber nicht eingerichtet). Anpingen ging dann schon mal. Dann die Treiber des HP Linux Imaging and Printing System installiert. Die hplip-Treiber laufen mit fast 2000 HP-Druckern und fast jedem Linux-System. Unter Gentoo/Funtoo muss man einfach ein

emerge -av hplip

starten. Ausserdem habe ich in der Datei /etc/portage/package.use noch folgende USE-Flags gesetzt:

net-print/hplip ppds fax qt4

Dann kann man mit CUPS den Druckertreiber einrichten. Dazu ruft man im Webbrowser einfach die Admin-Oberfläche von CUPS unter http://localhost:631 auf. Dort kann man dann nach dem Drucker einfach suchen lassen. Die Testseite kam ohne Probleme raus.

Für die Inbetriebnahme des Scanners habe ich nicht lange experimentiert und den Drucker/Scanner gleich per USB angeschlossen. Soweit Sane/XSane installiert ist, kann man dann gleich mit sane-find-scanner checken, ob der Scanner gefunden wird (hierzu muss man unter Gentoo in der Gruppe lp sein). Wird der Scanner gefunden (sicherheitshalber auch als User root probieren, wenn es als normaler User nicht funktioniert), kann man xsane starten und loslegen mit dem Scannen.

Summasummarum: Der Officejet 6500 läuft wunderbar unter Linux. Und für etwas über 100 Euro bekommt man 4 Geräte in Einem. Feine Sache :-)


Donnerstag Okt 29, 2009

Verzeichnisse ohne Dateien kopieren mit rsync

Mit Version 3 von rsync lassen sich relativ einfach ganze Verzeichnisbäume inkl. Rechte und User-/Gruppen-IDs ohne Inhalt sprich ohne Dateien kopieren:

rsync -a -f"+ */" -f"- *" source/ destination/

Soweit ich weiß, gibt es die Option -f in Version 2 von rsync noch nicht. Drum wird das in div. Enterprise Linux Versionen nicht funktionieren.


Donnerstag Okt 22, 2009

Links 20091022 - Seiten übersetzen, Videovorschau, Linux und Retro Games

Google übersetzt komplette Webseiten online - Mit einem kleinen Skript, das mit der Sprache der Webseite parametrisiert wird, prüft Google, ob der ankommende Browser die gleiche Sprache "spricht". Wenn nicht, wird eine kleine Übersetzung eingeblendet.
SlickSlice - Dieses Bash-Skript erstellt mit Hilfe vom Mplayer und ImageMagick Thumbnails bzw. ein Vorschaubild eines Videos.
movie thumbnailer (mtn) -  Wie SlickSlice erstellt mtm mit Hilfe vom ffmpeg Bildserien und Vorschauen von Videos.
Neverball - Wer Marble Madness noch vom Amiga kennt und geliebt hat, dem wird auch dieses Spiel gefallen. Es läuft unter Linux, Windows und Mac OS X.
Gebabbel - Ein Bubble Bobble Clon aus Schweden für den C64 bzw. einen C64 Emulator.


Montag Okt 12, 2009

Links 20091012 - Verzeichnisse abgleichen, Python IDE, DJ Software, Fotobearbeitung

Lsyncd (Live Syncing (Mirror) Daemon) - Mit Lsyncd kann man lokale Verzeichnisse überwachen (das passiert über inotify). Änderungen werden sofort mittels rsyncd lokal oder auf einen entfernten Rechner kopiert. Der Artikel Live Sync with lsyncd zeigt einige Beispiele auf.
Pydev ist ein Plugin für Eclipse für Python, Jython und Iron Python. Das war bis vor kurzem kommerziell und ist jetzt OpenSource.
Open Source Photo Processing Comes of Age - Ein guter Überblick was in Bezug auf Photobearbeitung unter Linux heute alles so machbar ist.
xwax ist eine OpenSource Vinyl Emulation Software für Linux - Was für die DJs ;-)



Mittwoch Okt 07, 2009

3D Support Radeon HD 2000 - HD 4000 bzw. R6xx - R7xx

Endlich ist es soweit! Nachdem ich die ATI Radeon Grafikkarte (Radeon HD 3650 - RV635) in meinem Laptop (siehe auch: Elitebook 8530p, Gentoo, Sabayon, Kubuntu - Teil 1 / Elitebook 8530p, Gentoo, Funtoo - Teil 2) am Anfang am liebsten an die Wand geklatscht hätte, weil die propritären ATI einfach nur übel sind und mit neueren sowie (teilweise) selbstkompilierten Kernel überhaupt nicht tun (im Gegensatz zu Nvidia), hab ich das Teil dann doch noch zum Laufen bekommen mit den OpenSource Treibern (radeonhd). Die laufen wirklich gut und die 2D Performance ist inzwischen super. Nur mit 3D war halt nix. Das ist mir prinzipiell egal, aber sowas wie die Desktopeffekte von KDE 4 oder Compiz Fusion is halt dann nicht so richtig (schnell) - und ich mag die Dinger echt gerne, da sie wirklich auch produktiv sind.

Wer Funtoo/Gentoo als Linux-Distribution nutzt und sich rantraut, kann die nötigen Treiber für 3D Unterstützung aber jetzt nutzen. Ich wollte zunächst wie hier beschrieben vorgehen, aber das Ganze kompilierte leider nicht ganz fertig.

Aber Gentoo "to the rescue"! Zunächst habe ich mir mal einen Kernel 2.6.32 (git-sources-2.6.32_rc3-r1) installiert und kompiliert. Verwendet habe ich eine Kernel-Config von Sabayon 5.0, das auf Gentoo aufsetzt, für Desktop-Systeme ist und Kernel 2.6.31 verwendet. Die .config (x86_64 / x86) habe ich fast unverändert übernommen - nur die KMS (Kernel Mode Settings) im Staging-Bereich habe ich aktiviert und alles andere im Staging-Bereich ausgeschaltet, da die Android-Treiber bei mir das Kompilieren des Kernel verhindern (bricht mit Error ... ab).

Das ist prinzipiell eine feine Sache. Man hat hiermit praktisch auf der Console schon die volle Auflösung - in meinem Fall 1600x1050 - und wenn man zwischen X-Server und Konsole mit CTRL+ALT+F1 oder CTRL+ALT+F7 hin und her wechselt, flackert nix, da nicht mehr zwischen den Auflösungen umgeschaltet werden muss. Das Ganze funkt auch wunderbar - prinzipiell. Nur leider sieht der X-Server nach dem Start recht bunt aus und der Cursor ist ziemlich viereckig ;-) Aber gut, das ist ja auch alles noch ziemlich experimentell. Man kann KMS über einen Kernel-Bootparameter wieder ausschalten. Dazu fügt man in der /boot/grub/grub.conf den Parameter radeon.modeset=0 hinten an. Wenn es dann doch mal tut, kann man ja den Parameter wieder weglassen.

Nun aber zur 3D Unterstützung: Zunächst habe ich das X11-Overlay hinzugefügt:

layman -a x11
layman -S


Da man Mesa und die Xorg-Treiber in den neuesten Versionen braucht, habe ich die Pakete unmasked (mit Hilfe des Tools autounmask):

autounmask x11-base/xorg-drivers-9999
autounmask media-libs/mesa-9999


Dann installiert man Folgendes:

emerge -av xorg-server xorg-drivers mesa libdrm


Und schließlich sollte man noch einen

revdep-rebuild

hinterherschicken. Dann muss man eigentlich nur noch Durchstarten und in den System Settings die Desktop Effekte einschalten (soweit nicht schon passiert [waren bei mir bisher auf XRender eingestellt]) und auf OpenGL umstellen. Das war's eigentlich :-) Bei mir laufen fast alle Effekte sehr schnell.

Und fall es jemanden interessiert: glxgears läuft bei mir jetzt mit 2123 FPS ;-)


Dienstag Okt 06, 2009

KVM Benchmark: Apachebench, IOzone, Graphics Magick

Update 20100115: Bezügl. I/O-Performance und dem qcow2-Format, sollte man das hier noch lesen: Features/KVM qcow2 Performance . Seit Qemu/KVM 0.11.0 hat sich da einiges getan. Vorraussetzung für die bessere Performance ist aber, das man das qcow2-Image mit Qemu >= Version 0.11.0 erzeugt hat. Es kann also durchaus Sinn machen, ein altes Image in ein Neues zu konvertieren.

Ich habe in den letzten Tagen auf einem HP DL 380 G6 Server ein paar Benchmarks mit der Linux Kernel Virtual Maschine (KVM) gemacht. Ich persönlich nutze die KVM schon seit fast zwei Jahren und produktiv laufen aktuell über 40 VMs. Die Stabilität und die Performance hat sich in den letzten Releases sehr gut entwickelt und die Entwicklung geht sehr schnell voran.

Der Host und der Gast liefen mit Gentoo und Kernel 2.6.31.1. Der Host hat folgende Komponeten eingebaut:

2 x Intel Xeon CPU L5520 - 2 Quad-Processors (static performance, VT-d, Hyperthreading eingeschaltet in BIOS)
8 x 300 GB SAS 10k Festplatten (RAID 10)
24 GB RAM

(Einige) Host (kernel) Einstellungen:

I/O scheduler: deadline
Filesystem: xfs
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_VIRTIO_BLK=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_RING=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m

(Einige) Gast (Kernel) Einstellungen:
I/O scheduler: deadline/cfq (siehe unten)
Filesystem: ext3 (datamode=ordered/writeback [siehe unten])
VIRTIO Network (VIRTIO_NET) und Block (VIRTIO_BLK) Treiber verwendet.
Der Gast ist ein qcow2-Image, welches ich vorher mit "dd" erweitert habe, damit es für den IO Test groß genug ist und nicht erst während des Tests erweitert wird (was die Werte total verfälscht hätte).
CONFIG_KVM_CLOCK=y
CONFIG_KVM_GUEST=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_VIRTIO=y
CONFIG_VIRTIO_RING=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_PARAVIRT_SPINLOCKS=y

KVM Startup Optionen (die Wichtigsten):
-m "variabel-siehe unten"
-smp "variabel-siehe unten"
-cpu host
-daemonize
-drive file=/data/kvm/kvmimages/gfs1.qcow2,if=virtio,boot=on
-net nic,vlan=104,model=virtio,macaddr=00:ff:48:23:45:4b
-net tap,vlan=104,ifname=tap.b.gfs1,script=no
-net nic,vlan=96,model=virtio,macaddr=00:ff:48:23:45:4d
-net tap,vlan=96,ifname=tap.f.gfs1,script=no

Da wir KVM hauptsächlich für Webserver benötigen, habe ich Benchmarks mit Apachebench, Graphics Magick und IOzone erstellt:

Apachebench mit 4 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-3428/
Apachebench mit 2 GB RAM, CFQ Scheduler, 1/2/4/8 vProcs verglichen mit dem Host:
http://www.tauceti.net/kvm-benchmarks/merge-6053/

Mich hat hier u.a. interessiert, ob mehr RAM mehr Durchsatz bringt und ob mehrere virtuelle Prozessoren skalieren. Wenn man die 2xQuadCore + Hyperthreading mit den 8 virtuellen Prozessoren (vProcs) vergleicht, dann kann die KVM hier mithalten. Die Speichergröße spielt keine Rolle.

Graphics Magick resize mit 4 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-5214/
Graphics Magick resize mit 2 GB RAM, CFQ scheduler, 1/2/4/8 vProcs verglichen mit dem Host (the hp380g6 graph):
http://www.tauceti.net/kvm-benchmarks/merge-7186/

Mit 8 vProcs ist die KVM ungefähr 10% langsamer. Mehr Speicher scheint auch hier nicht zu helfen.

Der folgende IOzone Test lief mit der KVM-Option cache=none. In diesem Fall ist alleine der Host für's Wegschreiben der Daten verantwortlich. Das erscheint mir aktuell immer noch die sicherste Option zu sein, um die Datenintegrität des KVM-Images und der Filesysteme in der KVM sicher zu stellen. Allerdings bremst das die Performance:

IOzone Schreibtest (write) mit 2 GB RAM, CFQ scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-3564/
IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3 Filesystem und datamode=ordered, 1/2/4/8 vProcs:
http://www.tauceti.net/kvm-benchmarks/merge-4533/

Wie man sieht, bringt das Austauschen des Schedulers ungefähr 10-15 MByte/s mehr an Durchsatz. Die CPU-Auslastung habe ich aber nicht überprüft während des Tests.

Die folgenden IOzone Tests liefen ohne cache-Option und somit mit dem Defaultwert writethrough:

IOzone Schreibtest (write) mit 2 GB RAM, deadline scheduler, ext3-Filesystem und writeback (siehe Testseite), 8 vProcs verglichen mit dem Host (der hp380g6 Graph):
http://www.tauceti.net/kvm-benchmarks/merge-7526/

Die Zahlen sind relativ beeindruckend. Die KVM kann eigentlich fast immer - mit den entsprechenden Einstellungen - mit dem "echten" Host mithalten in diesen Tests. Den Netzdurchsatz müsste man jetzt noch messen, dann wäre der gesamte Benchmark schon fast vollständig.


Montag Okt 05, 2009

Links 20091005 - NFSv4, ffmpeg GUI, Videoeditor, KDE, Eclipse

Linux NFS Overview, FAQ and HOWTO Documents
NFSv4 unter Linux - Version 4 des NFS in Linux-Distributionen einrichten
Kontinuierliche Code-Reviews mit Subversion und Eclipse
traGtor: GUI for ffmpeg - Wem die ffmpeg Optionen auf der Kommandozeile zu viel sind, der findet hier eine gute Benutzeroberfläche.
Introducing timechart - Arjan van de Ven hat hier ein Tool gebaut, das u.a. auch für Systemadmins interessant ist. Damit kann man gut sehen, was den im System so abgeht und wo Zeit und auch Engerie (für Laptops) verschwendet wird.
PiTiVi - Ein in Python geschriebener OpenSource Videoeditor für Linux basierend auf dem GStreamer multimedia framework, der sehr vielversprechend aussieht.
What I Did On My Summer Holiday - Lydia Pintscher berichtet über alle KDE Projekte, die im Laufe des Google Summer of Code in entstanden oder weiterentwickelt worden sind und das waren ziemlich viele :-) Vieles davon wird in KDE 4.4 Einzug halten.