Reisebericht LinuxTag 2008

Vom 28.05 – 31.05 fand in der Messe Berlin der LinuxTag 2008 statt. Unter dem Motto „Where .com meets .org“ waren auch diesmal Aussteller und Referenten angereist, um über Neuigkeiten, Trends und aktuelle Entwicklungen zu informieren.

Aufgrund des dicht gepackten Vortragsprogramms fiel gleich am Eröffnungstag das offizielle Opening Michael Schwarzkopffs Vortrag „Linux-HA Version 2“ zum Opfer – ein Vortrag, den ich mir aus naheliegenden Gründen unbedingt anhören wollte. Der Vortrag selbst war gut strukturiert und gab einen guten Überblick über die Einsatzmöglichkeiten von Linux-HA 2 (heartbeat). Einige Tips zum Einsatz der Konfigurationstools (was kann man mit hb_gui machen, was sollte man damit am besten gar nicht versuchen) rundeten den Vortrag ab und gaben Einblick in die Praxiserfahrung des Referenten.

Direkt im Anschluß referierte Peer Heinlein, bekannt als Autor mehrerer Fachbücher zum Thema Mail im Allgemeinen und Postfix im Besonderen, über „Best Practice für stressfreie Mailserver“. Als Quintessenz des Vortrages könnte man zusammenfassen, dass ein gut konfigurierter Mailserver Spam am besten gar nicht annimmt und stressfreier Mailserverbetrieb vor allem bedeutet selbst nicht zu spammen. Eigentlich sollte letzteres selbstverständlich sein, aber die immer wieder auftretenden Backscattermails in der eigenen Mailbox belehren eines besseren (wenn ich eine Non-Delivery-Notification für eine Mail bekomme, die ich nie geschickt habe, so ist das für mich auch Spam). Mit einigem Sarkasmus und viel Freude am Thema wurden im Laufe des Vortrags verbreitete Fehler und teure Fehleinschätzungen beim Mailserverbetrieb behandelt. „Simple“ ist der Betrieb eines SMTP-Servers also scheinbar nur dem Protokollnamen nach, allerdings trägt eine simple Architektur (keine loadbalancer, kein DNS-Roundrobin, keine fragwürdigen und teuren Proxies) wesentlich zum stressfreien Mailserverbetrieb bei.

Zum nächsten Vortrag (in einem anderen Konferenzraum) kam ich aufgrund des Weges dann gleich etwas zu spät. Christoph Hellwig informierte in „XFS: Really big filesystems“ über den generellen Aufbau von xfs (Bäume, allocation groups, delayed allocation), sowie über Irrungen und Wirrungen während der Portierung auf Linux. So war z.B. anfänglich angedacht die Endianess der Dateisystems der des Prozessors anzupassen. Auch der ursprünglich aus IRIX stammende vnode-Code konnte erst kürzlich restlos entfernt werden.  Interessant war auch die Begründung warum xfs zwar online wachsen kann, eine Verkleinerung (von mir aus auch offline) bislang allerdings nicht möglich ist. Der Grund ist wie so oft bei NFS zu suchen, das nur schwer damit leben kann, wenn sich die Inode-Nummern ändern. XFS wäre zwar technisch in der Lage zu schrumpfen, allerdings würden dazu Inode-Nummern geändert, was NFS ins Schleudern bringt. Und da Dateisysteme eher wachsen als schrumpfen und daher die Nachfrage nach diesem Feature gering ist, ist in absehbarer Zeit nicht mit solcher Funktionalität zu rechnen. Abgerundet wurde das Ganze mit einer kurzen Aufzählung der Programme die xfs für Administration, Backup und Debugging mitbringt.

Nach einer kurzen Pause, die ich zum Mittagessen und einem Buchkauf („Clusterbau mit Linux-HA“ aus dem O’Reilly Verlag) nutzen konnte, besuchte ich die Keynote des Tages „KDE 4: Future directions of the modern Desktop“, in der Aaron Seigo seine Vision vom Desktop der Zukunft erläuterte. Demzufolge wird das Internet noch weiter Einzug auf dem Desktop halten. Mehr und mehr Applikationen werden als nativ laufende Clients ihre Daten aus dem Internet beziehen. Als Beispiel dafür zeigte Aaron eine Applikation die sich aus openstreetmap.org Strassenkarten holt und die entsprechenden Städtenamen direkt mit den passenden Einträgen in der Wikipedia verlinkt. Das zweite wichtige Thema der Zukunft wird lauf Aaron „mobile computing“ werden. Der Nutzer erwartet die selben Applikationen auf allen seinen Geräten. Immerhin ist das Internet dahinter ja auch das gleiche.  In diesem Zusammenhang wird es sowohl in Sandboxen laufende Widgets geben, die sich mühelos vom Desktop auf den PDA transferieren lassen und somit „mitnehmbar“ sind, als auch portablere Applikationen, deren Aussehen und Bedienung auf allen Geräten gleich ist. Wie Bill Gates es einmal ausdrückte „Information at your fingertips“. Diesmal der Ansatz mit KDE. Opulente Optik und der Ausblick auf eine baldige Umsetzung der geplanten Ideen könnten für Linux auf dem Desktop ordentlich Aufwind bedeuten.

Der nächste Vortrag kam wieder aus dem SysAdmin-Track „Professionelles Monitoring: Nagios nur starten reicht nicht!“. Leider behandelte der Vortrag nicht das Thema das ich mir erhofft habe. Statt erweiterte Überwachungsmöglichkeiten behandelte der Vortrag eher Benachrichtungen und Eskalationsstrategien.

Ohne Pause stand dann auch schon der nächste Vortrag an. Zach Brown von Oracle über „BTRFS: Overview and Status“. Unter Federführung von Chris Mason,  der sich für das Journaling in reiserfs verantwortlich zeichnet, soll BTRFS das Linuxdateisystem der Zukunft werden. Dabei entlehnt sich das Dateisystem die bekannten Balanced Trees aus reiserfs und hat auch bei der effizienten Allokation von Speicherblocks einiges von reiserfs übernommen. So lassen sich kleine Verzeichnisse, Inodes und Dateien platzsparend in einem Allokationsblock unterbringen. Back-References sollen ein einfacheres und schnellers Recovery ermöglichen und dafür sorgen, dass wiedergefundene Dateien nicht mehr flach in „Lost+Found“ landen. Schreibbare Snapshots, Subvolumes (mit eigenen Quotas), eine enge Integration mit dem device-mapper und Prüfsummen auf Daten und Metadaten sollen für Flexibilität und Datensicherheit sorgen. Die Komination device-mapper und BTRFS soll dabei die Funktionalität von Suns ZFS erreichen. Von einer praktischen Einsetzbarkeit ist BTRFS indes noch weit weg. So ist zum gegenwärtigen Zeitpunkt noch nicht einmal über das Diskformat des Dateisystems entschieden. Trotzdem geht die Entwicklung erfreulich voran und es existieren Patches, die die Konvertierung eines bestehenden EXT3 Dateisystem in BTRFS ermöglichen. Dank Sicherung des ursprünglichen Superblocks soll dabei eine spätere Rückkehr zu dem alten EXT3-Stand möglich sein. Für mutige Early-Adopter und an Dateisystementwicklung Interessierte sicher keine schlechte Möglichkeit in die Entstehung eines modernen Dateisystems hineinzublicken. Mit einer für den produktiven Einsatz tauglichen Version ist jedoch kaum vor Ende 2009 zu rechnen.

Die Abschlußveranstaltung des Tages bildete Norbert Wessels Beitrag „ADempire – ein freies ERP-System für den Mittelstand“. Neben einem kurzen Rückblick auf die Entstehung und bisherige Entwicklungsgeschichte, gab Norbert Wessels auch noch einen kurzen Ausblick auf die in nächster Zeit zu erwartenden Erweiterungen des Systems. Die Vorteile einer freien ERP-Lösung für mittelständische Unternehmen sieht Norbert Wessels vor allem in der Lizenzkostenfreiheit. Das dort eingesparte Geld läßt sich sinnvoll in die Erweiterung und Anpassung des Systems investieren. Kosten die bei propriäteren System häufig zusätzlich anfallen. Eine kurze Demo zur Anpassbarkeit der Oberflächen (das ist auch durch Laien ohne Programmierkenntnisse möglich) sowie das Design der UI bildeten den Abschluss des Vortrags. Insgesamt macht ADempire für mich einen recht aufgeräumten und durchdachten Eindruck. Die Erweiterung des Packets um eine DATEV-Schnittstelle – voraussichtlich diesen Monat – dürfte beim deutschen  Mittelstand auf viel Gegenliebe stoßen. Aus persönlicher Sicht freut es mich besonders, dass sich auch in diesem für Unternehmen interessanten Bereich, endlich eine OpenSource Lösung mit Aussicht auf Erfolg platziert.

Der Donnerstag stand dann ganz im Zeichen des Linuxkernels: Kerneltrack im Keynote-Saal London. Keine Frage, dort verbrachte ich den gesamten Messetag. Die erste Veranstaltung ist Thorsten Leemhuis (Heise) Vortrag „Entwicklungsprozess sowie aktuelle und zukünftige Neuerungen des Linux-Kernels“. Der einzige deutsche Vortrag des Tages ist wenig technisch, faßt aber übersichtlich zusammen wie das Entwicklungsmodell seit Version 2.6 funktioniert. Immerhin wird mir damit auch klar wozu der linux-next Tree dienen soll :).

Direkt im Anschluss beginnt der technische Teil und von da alles in Englisch. Hans-Jürgen Koch stellt in „Writing device drivers using the Userspace I/O framework“, eine Methode vor Gerätetreiber im Userspace zu betreiben. Der sehr gut geliederte Vortrag erklärt zuerst für wen die Schnittstelle sinnvoll einzusetzen ist, bevor die grundlegenden Konzepte vorgestellt werden. Anwender von Userspace I/O sind vor allem in der Industrie zu suchen, die spezielle Steuer- oder Messhardware unter Linux betreiben wollen. Dabei existieren dort kernelseitig keine eigenen Subsysteme anhand derer sich die Entwicklung relativ einfach bewerkstelligen läßt. So geraten diese Treiber häufig sehr groß, mit allen daraus erwachsenden Problemen bei der Wartbarkeit (eine Portierung auf akutellere Kernel ist meist nicht zu leisten). Aufgrund der speziellen Natur der verwendeten Hardware stehen die Chancen für die Aufnahme in den offiziellen Kernel (wo die Pflege von der Community geleistet wird) oft schlecht; wenn eine solche Integration überhaupt erwünscht ist. UIO bietet für diese Fälle den angenehmen Ausweg nur einen kleinen Teil des Treibers im Kernel entwickeln zu müssen. Dieser Teil ist dementsprechend leichter zu pflegen und könnte häufig sogar problemlos in den Mainline-Kernel integriert werden. Entscheidend dabei ist, dass sich die Register der Hardware in den Userspace mappen lassen. Dort kann dann direkt mit der Hardware gearbeitet werden. Interrupts werden von einer minimalistischen ISR abgehandelt und per blockierendem read() auf ein UIO Device in den Userspace gemeldet. Zukünftig steht die Erweiterung des UIO-Frameworks um eine write()-Methode an, um ein Ein- und Ausschalten der Interrupts aus dem Userspace möglich zu machen.

Als nächstes referierte Gerd Hoffmann über „Linux Kernel Virtualization Infrastructure“. Der Vortrag faßt recht ausführlich die im Kernel derzeit vorhandenen Möglichkeiten zu Virtualisierungsunterstützung, getrennt nach Gast- und Hostunterstützung, zusammen. Neben einigen allgemeinen Erklärungen zu dem Hauptproblem der Virtualisierung privilegierte (Ring-0) Zugriffe im Gast abzufangen und entsprechend auf dem Hostsystem umzusetzen, war vor allem kvm das Zentrale Thema des Vortrags. In diesem Zusammenhang ist xenner möglicherweise eine Blick wert. Xenner erlaubt es paravirtualisierte xen-Gastkernel auf kvm laufen zu lassen. Xen selbst ist dabei nicht notwendig.

Nach einer kurzen Mittagspause folgt David Millers Keynote „Networking in a Vertically Scaled World“. David Miller vergleicht während seines Vortrags die gegenwärtige Entwicklung der CPUs (vertikale Skalierung, d.h. mehrere Cores pro Die) mit der zukünftigen Entwicklung im Bereich der Netzwerkkarten. Vertikale Skalierung kann in diesem Bereich Netzwerkkarten mit mehreren Queues bedeuten, die unabhängige Verbindungen eigenen Queues zuordnen. Probleme bestehen dabei noch besonders im Bereich der Transmit-Queues, da dort häufig keine flachen, linearen Queues zum Einsatz kommen, sondern in Bereichen wo Traffic Shaping stattfindet Hierarchien existieren, die eingehalten werden müssen. Denkbar wäre hier ein Wechsel des Defaultparadigmas: Wenn kein Shaping zum Einsatz kommt, wird möglichst viel parallel in unabhängigen Queues abgearbeitet.

Thomas Gleixner, unter anderem Maintainer der x86 Architektur, gab in seinem Vortrag „Linux Kernel – Quo vadis?“ Anworten auf die generelle Entwicklung des Kernels aus der Sicht eines Beteiligten. Im Spannungsfeld zwischen Embedded Entwicklung und Supercomputer versucht der Kernel die richtige Balance zwischen kontinuierlicher Weiterentwicklung und stabilen Releases zu finden. Ein Standpunkt über den immer wieder heftig gestritten wird. So waren in  diesem Zusammenhang unter anderem reine Bugfix-Releases im Gespräch. Ob diese aber nachhaltig zur Verbesserung der Qualität beitragen würden ist fraglich. Der Verdacht liegt nahe, dass ein reines Bugfix-Release kaum Aufmerksamkeit auf sich zieht und das nachfolgende Release dafür mit umso größeren Changesets fertig werden muss. Einvernehmen herrscht jedoch darüber, dass mehr Helfer gerne gesehen sind. Tester und Bugreporter, die ausdauernd die zuständigen Maintainer auf offene Bugs hinweisen, werden gerne gesehen. Gesucht sind auch Code Reviewer. Ein Job der von den meisten Maintainern alleine kaum zu leisten ist. Der linux-next Tree, der zumindest die git-Trees der Subsysteme merged und damit Andrew Morton entlastet, so dass dieser wieder mehr Zeit für Reviews zur Verfügung hat, verspricht hier eine Verbesserung. Trotzdem ist jeder willkommen, der einen Bug fixen, Code reviewen, Dokumentation schreiben oder auch nur aktuelle Kernel testen und Bugreports schreiben will.

Im Anschluss an diesen Vortrag gaben Alasdair G. Kergon, Daniel Phillips, Heinz Mauelshagen und Jan Blunk einen kurzen Überblick über aktuelle Entwicklungen in device-mapper und lvm2. Die wichtigsten Entwicklungsziele sind dabei mehr Performance, Merging von Snapshots und generell eine engere Zusammenarbeit mit den Dateisystemen.

Die letzte Veranstaltung eines langen Konferenztages bildete das „Kernel Kwestioning“. Dort hatte das Publikum noch einmal die Möglichkeit gezielt Fragen an die anwesenden Kernelentwickler zu richten. Viele Fragen drehten sich dabei um das Thema Dateisysteme, insbesondere das Featureset von ZFS wurde häufig nachgefragt. Gegenwärtig sieht es dabei so aus, dass ZFS vorerst nicht in der Kernel kommen wird. Die freien Quellen von Sun sind lizenzinkompatibel und ein Rewrite ist nicht in Aussicht. Eher wird die Funktionalität mit den eigenen Mitteln nachgebildet. Neue Dateisysteme, device-mapper und lvm2 stellen dabei die einzelnen Komponenten einer solchen Lösung dar. Das zweite Thema, dem einige Aufmerksamkeit geschenkt wurde, war das Thema eigene Beteiligung am Entwicklungsprozess. Wie in Thomas Gleixners Vortrag bereits ausgeführt, ist jeder willkommen der ein Bug fixt oder auch nur testet und Feedback liefert. Zach Browns kurze Anekdote eines Entwicklers, dessen Bugfix an BTRFS, ihm ein Jobangebot von Oracle einbrachte, unterstrich das gemeinsame Fazit aller Entwickler: „Wer sich an der Entwicklung beteiligen möchte, macht sich am meisten Freunde indem er einen Bug fixt“.

Am letzten Tag meiner Dienstreise begann mein Vortragsprogramm mit Alexander Geschonecks Vortrag „Linux in der Computer Forensik“. Der Vortrag betrachtete zum einen Linux als forensisches Werkzeug, zum anderen die Analyse kompromittierter Linuxsysteme. Neben den bekannten Tools und Hilfsmitteln wie sleuthkit und autopsy wurden auch verfügbare Standardtools und deren Stolperfallen im forensischen Einsatz erläutert. So erzeugt lsof z.B. standardmäßig ein Cachefile im Home des ausführenden Nutzers, was damit die Daten auf dem System verändert. Reiserfs read-only zu mounten ändert z.B. trotzdem den Mountcount und ist damit nicht so read-only wie man meinen könnte. Solcherlei Fallstricke zu umgehen, oder diese aber zumindest gut zu dokumentieren sind der Schlüssel zu einer rechtssicheren forensischen Analyse.

Im nächsten Vortrag stellte Ralf Spenneberg mod_security vor. Als Applicationlevel-Firewall flanscht sich das Modul in der aktuellen Version ausschließlich an Apache2 an und filtert je nach Setup permissiv – alles was explizit verboten wird -, restriktiv – alles was nicht explizit erlaubt wird – oder anhand des mitgelieferten Regelwerks bekannte Angriffsmuster auf Webapplikationen. Alles in allem ein recht netter Ansatz, obwohl auch dieses Konzept einen leicht fahden Nachgeschmack hinterläßt. Die Lösung beseitigt das eigentliche Problem einer fehlerhaften Webapplikation nicht und mehr Software bedeutet im allgemeinen nur mehr Stellen, an denen Fehler auftreten können. Wer aber aus irgendwelchen Gründen an eine bestimmte Version einer Software gebunden ist, hat zumindest die Chance Angriffe auf mögliche nicht gefixte Sicherheitslücken zu unterbinden.

Die nächste Stunde nutzte ich zum Mittagessen und für einen Rundgang durch die Ausstellungsräume. Neben einem kurzen Gespräch mit Hans-Jürgen Koch über UIO, verschlug es mich an den Stand des LiMux-Projekts, das kürzlich ihre Vorlagenverwaltung WollMux unter einer OpenSource Lizenz veröffenlichen konnte und mit dem bisherigen Verlauf der Migration sehr zufrieden ist. Ebenfalls recht interessant: Der Stand von Openmoko. Leider wird es noch etwas dauern bis die Telefone einsatztauglich sind. Aber zumindest das neue auf Enlightenment basierende GUI wirkte recht hübsch und reagierte flott.

Als letzten Vortrag des diesjährige LinuxTags besuchte ich im Anschluss „OpenOffice.org programmability – at a glance“. Jürgen Schmidt stellte kurz und bündig den grundsätzlichen Aufbau von OpenOffice und das Framework UNO vor. Aus dem Vortrag mit nehme ich mal die Erkenntnis mit: „Wer UNO verstanden hat, kann mit OpenOffice alles machen, aber ausreichend Zeit sollte man sich für die Einarbeitung in UNO nehmen“. Wie Jürgen Schmidt selbst einräumt, würde er sich ein einfacheres Interface für UNO Wünschen. Derzeit hat dieses Projekt aber keine Priorität.

Bevor die Heimreise anstand, erlaubte die Zeit noch eine Runde des Hacking-Contests zu verfolgen. Es treten jeweils zwei Teams gegeneinander an. Jedes Team erhält einen frisch installierten Laptop. Jedes Team hat dann 15 Minuten Zeit auf dem System so viele Hintertürchen zu verstecken wie möglich. Erlaubt ist was gefällt und nicht installiert werden muss. Wer sich also ein kleines Progrämmchen hackt um eigene Prozesse zu verstecken kann das tun, zusätzliche Software installieren dagegen ist nicht möglich. Danach werden die Geräte getauscht und jedes Team versucht möglichst viele der versteckten Hintertürchen zu finden und zu eliminieren. Auch für diese Runde stehen 15 Minuten zur Verfügung. Danach werden die Rechner erneut getauscht und es gibt Punkte für jedes noch vorhandene Hintertürchen. Gerne genutzt wurden das Allzweck-Netzwerktool netcat und auch der ein oder andere bind mount über /proc/$pid um den eigenen Prozess, zu verstecken.