25.02.2014 Aufrufe

Linux-Magazin Die Überflieger (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

02/13<br />

Anzeige:<br />

Born to Be ROOT!<br />

Dedizierte StrAto Server. » strato-pro.de siehe Seite 17<br />

STR0113_DE_TKS_DServer_120x17.indd 1<br />

13.12.2012 11:59:03 Uhr<br />

Neues Mittel gegen<br />

Netzwerk-Latenzen<br />

Ab Kernel 3.7 tritt die Protokoll erwei -<br />

te rung TCP Fast Open aufs Gas S. 70<br />

Mathe 3<br />

Im Rechnen ist die Bash<br />

kein Genie und legt zudem<br />

einige Fallstricke aus S. 88<br />

Netz Deluxe<br />

Open Vswitch verbindet<br />

virtuelle Maschinen über<br />

VLANs S. 64<br />

<strong>Die</strong> <strong>Überflieger</strong><br />

Im Schatten von NFS und Samba reifen<br />

Netzwerk-Filesystem-Newcomer heran<br />

■ Was man wissen sollte: Verteilte<br />

Dateisysteme im Überblick S. 24<br />

■ Für große Datenmengen:<br />

Ceph-FS und Gluster-FS S. 30<br />

■ Serienmäßig dabei oder zum<br />

Nachrüsten: die HA-Funktion S. 36<br />

■ Am Ende zählt der Durchsatz: NFS 3 und 4,<br />

SMB und SMB 2, Gluster-FS und Ceph-FS<br />

im Geschwindigkeitstest S. 42<br />

■ Wakelocks, Binder und anonymes<br />

Shared Memory: Googles <strong>Linux</strong>-<br />

Tricks im Android-Kernel S. 82<br />

■ Vier Zeitleisten-Tools im Test S. 48<br />

Mit zentraler Clientkonfiguration und Multi-Head: Freier Terminalserver X2go 4.0 fast fertig S. 60<br />

www.linux-magazin.de<br />

Deutschland Österreich Schweiz Benelux Spanien Italien<br />

4 5,95 4 6,70 sfr 11,90 4 7,00 4 7,95 4 7,95<br />

4 192587 305954 02


„Kein Hosting-Paket ist<br />

günstiger als bei STRATO.<br />

Außer bei STRATO!“<br />

4 Domains, 10 MySQL-<br />

Datenbanken inklusive<br />

10.000 MB Speicher<br />

und 2 GB E-Mailspace<br />

Profi -Features: PHP,<br />

Perl, BackupControl<br />

0 ,–<br />

0 ,–<br />

0 ,–<br />

1-Klick-Installation mit<br />

0 zahlreichen Apps ,–<br />

Webhosting<br />

PowerWeb Basic<br />

für ein ganzes Jahr<br />

€/Mon.*<br />

JETZT 30 TAGE<br />

KOS TENLOS TESTEN! *<br />

HOSTED<br />

IN GERMANY<br />

* Aktion bis 31.01.2013. PowerWeb Basic 30 Tage kostenlos testen, danach 12 Monate 0 €/Mon., danach 4,99 €/Mon.<br />

Mindestvertragslaufzeit 24 Monate. Preis inkl. MwSt.<br />

Servicetelefon: 030 - 300 146 - 21


Scheinheilige Debatten<br />

Login 02/2013<br />

Editorial<br />

Von der Technik ein klein wenig Ahnung zu haben, zahlt sich langfristig aus,<br />

sollte man meinen. Webserver-Betreibern ist beispielsweise die kleine Textdatei<br />

»robots.txt« mit ihren Inhalten durchaus bekannt. Sie betrifft vor allem automatisierte<br />

Anfragen von Crawlern und Suchrobotern, die Webseiten auswerten<br />

und Inhalte abrufen. Als De-facto-Standard gehört es zum guten Ton im Web, die<br />

Inhalte dieses Files zu analysieren und vor allem, sie zu befolgen.<br />

www.linux-magazin.de<br />

3<br />

Jahrzehntelang fristete »robots.txt« ein Schattendasein, meist einfach beachtet<br />

und deshalb nicht weiter der Rede wert. Doch Anfang Dezember schaffte sie es<br />

sogar aufs Rednerpult im Deutschen Bundestag (Youtube-Video von N24 hier:<br />

[https:// www. youtube. com/ watch? v=pdHjAc20v‐A]). Nachts, irgendwann um Mitternacht,<br />

brachte sie überraschenderweise der letzte Redner zur Sprache: Jimmy<br />

Schulz, ein FDPler aus der Regierungskoalition. Er forderte, die kleine Textdatei<br />

gesetzlich zu verankern, ebenso das Einhalten der dort spezifizierten Vorgaben.<br />

Was war geschehen?<br />

Markus Feilner,<br />

Stellvertretender Chefredakteur<br />

Über das, was die Datei beschreibt – prinzipiell nur eine Liste mit Verzeichnissen und Regeln für den Zugriff<br />

auf den Webserver – vollzieht sich mittlerweile seit drei Jahren eine erbitterte Debatte, zunächst hinter den<br />

Kulissen, seit Mitte 2012 auch in den Medien. Unter dem Stichwort „Leistungsschutzrecht“ kämpfen große<br />

Verlage wie Springer und Burda dafür, dass Suchmaschinen wie Google beim Abruf und der Verlinkung von<br />

journalistischen Inhalten (auch und vor allem bei kurzen Teasern) verpflichtet werden, dem Ursprung des Links,<br />

also den Verlegern, einen Obulus aus den Web-Milliarden abzudrücken. Analog gesprochen müsste quasi der<br />

Guide Michelin jedem Restaurant, dem er einen Kunden durch eine gute Bewertung zuschanzt, ein paar Euro<br />

abdrücken, ebenso der Taxifahrer, der den ortsunkundigen Besucher in eine Pizzeria lotst.<br />

Das gefällt Google nun gar nicht, ebensowenig zahlreichen Bloggern und Netzaktivisten. <strong>Die</strong> sehen die Freiheit<br />

des Webs bedroht, wenn Springer und Konsorten darüber bestimmen dürfen, wer auf wen verlinken darf<br />

und zu welchem Preis – sie sprechen von einer „Lex Springer“ und warnen vor einer neuen Abmahnflut. Der<br />

Vorwurf, man mache Reibach mit fremden Inhalten, stimme ohnehin nicht, beteuert Google, rechnet die Ads<br />

pro News-Ergebnisseiten vor und schaltet seinerseits eine üppige Anzeigenkampagne. Zum großen Ärger von<br />

Bundestagspräsident Lammert erdreistet sich der Webmonopolist dabei sogar, interessierte Wähler direkt zu<br />

den Bundestagsmitgliedern zu verlinken. Soviel Demokratie schade wohl den ansonsten in den Hinterzimmern<br />

geschmiedeten Plänen, möchte man meinen.<br />

Es ist eine skurrille Debatte: Wer heute nicht will, dass seine Inhalte bei Google auftauchen, bräuchte sich eigentlich<br />

nur der Robots-Datei bedienen. Das aber will angesichts der Googleschen Monopolistenstellung niemand,<br />

bricht damit doch der wichtigste Zubringer zur eigenen Webpräsenz weg. Also soll Google für die kostenlose<br />

Werbung zahlen. Das aber werden Page und Brin nicht machen, sie könnten es ohne große Verluste aussitzen,<br />

wie in Belgien, wo die Verlage nach wenigen Monaten wieder zurückruderten.<br />

Dass sich der das Web allerorten unausweichlich dominierende und nach vermeintlich individuellen Benutzervorlieben<br />

filternde Konzern neuerdings als Beschützer der Freiheit im Internet aufspielt, ist scheinheilig,<br />

genauso wie der durchsichtige Versuch von Springer und Co., sich im schwindenden News-Markt einen Vorteil<br />

gegenüber kleineren Verlagen zu verschaffen. Nur eins ist klar: <strong>Die</strong> Debatte im Bundestag zeigt, wie wenig<br />

technisches Know-how im Bundestag wirklich vorhanden ist.


Inhalt<br />

www.linux-magazin.de 02/2013 02/2013<br />

4<br />

Verteilte und Cluster-Dateisysteme gelten als <strong>Überflieger</strong> in Sachen Fileserver. <strong>Die</strong> Newcomer<br />

sollen die Lücke zwischen NFS und SMB einerseits und teuren SANs andererseits schließen,<br />

indem sie Rechnerverbünde für HA und Performance bilden. Als Entscheidungshilfe präsentiert<br />

der <strong>Magazin</strong>-Schwerpunkt jede Menge Know-how und Benchmarktests.<br />

Aktuell<br />

Titelthema: Neue Netzwerk-Dateisysteme<br />

6 N ew s<br />

n Beta von Fedora 18 erhältlich<br />

n Archlinux + Cinnamon = Cinnarch<br />

23 EInführung<br />

Titel<br />

Selbst Microsoft versucht mit SMB 3.0<br />

auf den Storage-Zug aufzuspringen.<br />

24 Verteilte Filesysteme<br />

Ceph, Gluster, Xtreem-FS, FHG-FS, Lustre<br />

und Open AFS im Vergleich.<br />

36 Storage-HA<br />

Fast jedes der zahlreichen Netzwerkdateisys<br />

teme verfolgt seinen eigenen Ansatz<br />

zur Ausfallsicherheit.<br />

<strong>Die</strong> Gnome-Alternative Cinnarch lässt sich live<br />

betreiben oder per CLI installieren.<br />

n Dells Entwickler-Ultrabook mit <strong>Linux</strong><br />

n Shumway: Freier Flash-Player<br />

n Wege aus Haskells Versionshölle?<br />

12 Zahlen & Trends<br />

n Freiburg verabschiedet sich von OSS<br />

n Ceph-Support von Inktank und Suse<br />

n Red-Hat-PaaS: Open Shift<br />

n Probleme mit Microsofts UEFI-Signatur<br />

n Richard Stallman giftet gegen Apple<br />

18 Zacks Kernel-News<br />

n Kritik an Udev-Maintainern<br />

n Acknowledgement in Git<br />

20 XP Days Hamburg<br />

Extreme Programming und Agile Methoden<br />

auf den XP Days Germany.<br />

Interaktiv: Andreas Havensteins Lean-Startup-<br />

Workshop auf den XP Days.<br />

Für jeden Zweck den besten Speicherort: Verteilte<br />

Dateisysteme machen‘s möglich.<br />

34 Ceph und Gluster<br />

Im Storage-Cluster verschwimmt die<br />

Grenze zwischen Storage und Server.<br />

Speicher satt bedienen Ceph und Gluster.<br />

DELUG-DVD<br />

Viermal Mint 14<br />

TOOL<br />

Zum direkten Booten und als ISOs:<br />

Alle 32- und 64-Bit-Versionen des<br />

Unity-freien Alternativ-Ubuntu<br />

Ubuntu-Mini-VM<br />

TOOL<br />

TOOL<br />

Bootet in Sekunden und ist die<br />

perfekte Basis für Experimente:<br />

Ubuntu Server mit nur 300 MByte<br />

TOOL<br />

Maßgeschneiderter Katastrophenschutz hilft<br />

das Schlimmste zu vermeiden.<br />

42 Großer Benchmark<br />

Am Ende des Fileserver-Tages zählen vor<br />

allem erzielbare Datendurchsätze. Das<br />

<strong>Linux</strong>-<strong>Magazin</strong> hat gemessen.<br />

30<br />

25<br />

20<br />

15<br />

10<br />

0<br />

MByte/s<br />

Ddw rite<br />

1 MByte<br />

Ddw rite<br />

10 MByte<br />

Ddread<br />

10 MByte<br />

Alle rennen gegen alle: NFS 3 und 4, CIFS-SMB<br />

1 und 2, Gluster-FS und Ceph-FS.<br />

Details zu DVD-<br />

TOOL<br />

Inhalten auf S. 47<br />

„<strong>Linux</strong> Kochbuch“<br />

600 Seiten E-Book-Gourmetkost –<br />

hier aufgetischt als kostenlose<br />

Admin-Mahlzeit<br />

45 Minuten Linus<br />

Torvalds im Videogespräch über<br />

Vergreisung, Patente, Frauenmangel,<br />

Streithähne und Android<br />

NFS 3<br />

NFS 4<br />

CIFS-SMB<br />

CIFS-SMB 2<br />

Gluster-FS<br />

Ceph-FS


02/2013 03/2013<br />

Inhalt<br />

48 Zeitreise<br />

Was geschah wirklich wann in der<br />

Kuba-Krise? Timeline-Tools erzeugen<br />

anschauliche, interaktive Diagramme,<br />

auch vom heutigen Tagesgeschehen.<br />

64 Virtuos schalten<br />

Netflow-Daten, Openflow-Management,<br />

VLANs, Bonding, Mirroring, Tunnel – all<br />

das bringt Open Vswitch auf Xen-,<br />

KVM-, VMware- und Virtualbox-Hosts.<br />

94 Bequem zum richtigen Buch<br />

Perl macht‘s möglich: Ein Skript<br />

versieht die Daten der E-Books auf<br />

Google Drive mit Metadaten-Tags –<br />

über den Umweg von gleich zwei APIs.<br />

www.linux-magazin.de<br />

5<br />

Software<br />

Sysadmin<br />

Know-how<br />

47<br />

Einführung<br />

Auf der DELUG-DVD: Linus Torvalds im<br />

Video, Mint, Ubuntu und ein Kochbuch.<br />

63 Einführung<br />

Aus dem Alltag eines Sysadmin: Charly<br />

füttert seine Netz-Skripte mit Ifdata.<br />

64 Open Vswitch<br />

Titel<br />

Der Software-Switch bringt Funktionen<br />

auf Gastgeber von Virtualisierungen, die<br />

sonst nur echte Hardware bieten kann.<br />

82 Kern-Technik 66: Android<br />

Titel<br />

Wakelocks, Binder und Shared Memory:<br />

Änderungen, die Google dem <strong>Linux</strong>-Kern<br />

für den mobilen Einsatz spendiert.<br />

Kostenlos auf der DVD: Das „<strong>Linux</strong> Kochbuch“.<br />

48 Bitparade<br />

Titel<br />

Vier Timeline-Tools zeigen Ereignisse der<br />

Weltgeschichte in übersichtlicher Form.<br />

56 Tooltipps<br />

Procenv 0.16, Crun 0.1.3, Pstoedit 3.61,<br />

Muddog 1.0.0, Xidel 0.6, und PNG Crush.<br />

60 X2go 4<br />

Titel<br />

<strong>Die</strong> vierte Version des freien<br />

Terminalservers im Test.<br />

70 TCP Fast Open<br />

Titel<br />

Googles Protokoll verringert Latenzen<br />

im Netzwerkverkehr und verspricht<br />

Beschleunigung um bis zu 41 Prozent.<br />

Page Load Time<br />

Up to 41 % improvement in PLT<br />

% Improvement due to TCP Fast Open<br />

RTT = 20ms RTT = 100ms RTT = 200ms<br />

10 11<br />

6 7<br />

4 4 5<br />

18<br />

amazon.com nytimes.com wsj.com TCP Wikipedia<br />

Page<br />

Eine Präsentation der Entwickler zeigt das<br />

Potenzial, das TFO birgt.<br />

16<br />

11<br />

7<br />

16<br />

41<br />

Linus Torvalds hat nachgegeben und übernimmt<br />

Android-Features in seinen Kernel.<br />

Programmieren<br />

88 Bash Bashing - Folge 24<br />

Titel<br />

Das Rechnen an der Befehlszeile liefert<br />

nicht immer die richtigen Ergebnisse.<br />

90 C++11 - Folge 8<br />

Smart Pointer in C++11 machen den<br />

Zugriff auf Ressourcen transparent und<br />

räumen hinter sich auf.<br />

Forum<br />

Der Terminalserver bringt ein Firefox-Plugin<br />

und unterstützt Unity, Gnome und OS X.<br />

Service<br />

3 Editorial<br />

100 IT-Profimarkt<br />

104 Veranstaltungen<br />

104 Inserenten<br />

105 Impressum<br />

106 <strong>Vorschau</strong><br />

74 Recht<br />

Markenrecht und Programmnamen: Ein<br />

Rechteinhaber darf seine User nicht<br />

knebeln, sagt ein deutsches Gericht.<br />

78 Bücher<br />

Bücher über Node.js und nebenläufige<br />

Programmierung.<br />

80 Leserbriefe<br />

Auf den Punkt<br />

gebracht.<br />

Das RAII-Idiom angewandt: Beim Ver lassen<br />

des Gültigkeitsbereichs gibt der Resource<br />

Guard die Ressourcen frei.<br />

94 Perl-Snapshot<br />

Perlmeister Schilli nutzt Evernote, um<br />

seine in der Google-Cloud abgelegten<br />

Bücher zu organisieren.


Aktuell<br />

www.linux-magazin.de News 02/2013<br />

6<br />

News<br />

Neue Marble-Website mit KML-Generator<br />

Das Marble-Projekt hat seinem<br />

freien Kartenprogramm<br />

eine neue Homepage spendiert,<br />

die auch einen KML-Generator<br />

enthält. Mit der neuen<br />

Adresse [http://​marble.​kde.​org]<br />

verlässt das Projekt die Edu-<br />

Subdomain des KDE-Projekts.<br />

Damit zeige das Team, dass<br />

Marble mit Openstreetmap-Integration,<br />

Routing und Mobilversionen<br />

für alle Anwender<br />

etwas zu bieten habe, schreibt<br />

der Entwickler Dennis Nienhüser<br />

in seinem Blog.<br />

Neben Informationen für Anwender<br />

und Entwicklerdokumentation<br />

bietet die Website<br />

auch einen KML-Generator.<br />

Am unteren Ende der Seite<br />

zur Keyhole Markup Language<br />

können Anwender in Kartenausschnitten<br />

aus Openstreetmap<br />

ihre Points of Interest<br />

wie Restaurants, Sehenswürdigkeiten<br />

oder Haltestellen<br />

suchen. <strong>Die</strong> Fundstellen lassen<br />

sich als KML exportieren<br />

und in einer lokalen Marble-<br />

Installation nutzen. n<br />

Kolab-Plugin für Thunderbird<br />

Sync-Kolab, ein Groupware-<br />

Addon für Thunderbird, ist<br />

in Version 3.0 erschienen.<br />

<strong>Die</strong> neue Release der Erweiterung<br />

bringt Unterstützung<br />

für die kommende Version<br />

3.0 des Kolab-Servers. Daneben<br />

enthält sie zahlreiche<br />

Bugfixes. Sie beheben lästige<br />

Fehler im Encoding, diverse<br />

Locking-Probleme auf Windows-Clients<br />

und generelle<br />

Inkompatibilitäten mit dem<br />

Webfrontend Horde. Außerdem<br />

legt der Kolab-Server<br />

jetzt automatisch einen neuen<br />

Kontakt für jeden fehlenden<br />

Eintrag an, wenn der Sync-<br />

Kolab-Client eine neue Mailingliste<br />

definiert.<br />

Sync-Kolab 3.0 steht unter<br />

[http://​www.gargan.org​/extensions/​<br />

​synckolab‐3.0.0.xpi] zum Download<br />

bereit und funktioniert<br />

auf allen Thunderbird-Plattformen<br />

ab Version 3.19. Auch<br />

eine Android-Kolab-Variante<br />

ist im Angebot. n<br />

Mail-Weiterleitungen verwalten<br />

<strong>Die</strong> neue Website der Geografie-Software Marble bietet unter anderem einen<br />

interaktiven KML-Generator für zahlreiche Objekttypen.<br />

Mail Guidance, eine Weboberfläche<br />

zum Anlegen von<br />

Procmail-Regeln, ist in Version<br />

1.0 verfügbar. <strong>Die</strong> Webanwendung<br />

ist für Firmen gedacht,<br />

die Mails nach bestimmten<br />

Regeln an Empfänger weiterleiten<br />

möchten. Insbesondere<br />

eignet sie sich für Nachrichten<br />

von Monitoring-Tools wie Nagios<br />

und Logwatch.<br />

<strong>Die</strong> PHP-Software erzeugt<br />

aus Formulareingaben eine<br />

entsprechende ».procmailrc«-<br />

Konfigurationsdatei. Mail<br />

Guidance berücksichtigt auch<br />

Urlaubsregelungen.<br />

<strong>Die</strong> Software steht unter Affero<br />

GPLv3. Weitere Informationen<br />

sowie Pakete finden sich<br />

unter [https://​projects.​jethrocarr.​<br />

​com/​p/​oss‐mailguidance/]. n<br />

Fedora 18 als Beta erhältlich<br />

Das Fedora-Projekt hat mit<br />

einiger Verspätung die Betaversion<br />

für die kommende Release<br />

18 seiner <strong>Linux</strong>-Distribution<br />

freigegeben. <strong>Die</strong> Testausgabe<br />

für „Sperical Cow“<br />

bietet die Desktopumgebung<br />

Gnome in Version 3.6, alternativ<br />

KDE, sowie Xfce, Sugar<br />

und erstmals Mate.<br />

Auf Server-Seite bringt die<br />

finale Version von Samba 4<br />

die Möglichkeit, Fedora als<br />

Domaincontroller für Active<br />

Directory einzusetzen. Dem<br />

Cloud Computing trägt Red<br />

Hats Community-Distribution<br />

mit dem Framework Open<br />

Stack Folsom sowie Eucalyptus<br />

3.1 Rechnung. Für Entwickler<br />

sind unter anderem<br />

Python 3.3, Ruby on Rails 3.2<br />

und Perl 5.18 im Angebot, dazu<br />

auch D und Haskell.<br />

<strong>Die</strong> Fedora-Beta steht in Form<br />

von ISO-Images für den Livebetrieb<br />

und für die Installation<br />

auf i386 und x86_64 unter<br />

[http://​fedoraproject.​org/​en/​<br />

​get‐prerelease] zum Download<br />

bereit. <strong>Die</strong> finale Release ist<br />

für Januar 2013 geplant. n


Guacamole 0.7.0 bringt neues GUI und Audio<br />

<strong>Die</strong> Entwickler von Guacamole,<br />

eines HTML-5-Clients für<br />

RDP und VNC, haben Version<br />

0.7 veröffentlicht. Das GUI sei<br />

vollständig überarbeitet, zahlreiche<br />

Fehler beseitigt und<br />

außerdem habe die Software<br />

auch gelernt, Audiodaten zu<br />

übertragen.<br />

Java, HTML 5 und Ajax machen<br />

es möglich: Guacamole<br />

bringt RDP- und VNC-Sitzungen<br />

in moderne Webbrowser<br />

wie Firefox oder Chromium<br />

(das <strong>Linux</strong>-<strong>Magazin</strong> berichtete<br />

in Ausgabe 04/​12).<br />

Ein Flash-Plugin oder Java auf<br />

dem Client sind überflüssig,<br />

nur ein Webserver (mit dem<br />

Tomcat Application Server)<br />

und ein paar freie Ressourcen<br />

sind nötig. Dann konvertiert<br />

die Software ferne Windows-,<br />

<strong>Linux</strong>- und Mac-Sitzungen<br />

„on the fly“ für den Browser.<br />

Im November erschien Version<br />

0.7 des Remote Desktop<br />

Gateway, die laut Readme<br />

auch Sound aus RDP- (meist<br />

Windows-)Sitzungen übertragen<br />

kann und eine komplette<br />

Überarbeitung des GUI erfahren<br />

hat.<br />

Den „Clientless Remote Desktop“<br />

gibt es auf [http://​guac‐dev.​<br />

​org] als Debian-, Ubuntu- und<br />

Fedora-Paket. Das Remote<br />

Desktop Protocol (RDP) dient<br />

beispielsweise dem Microsoft<br />

Terminal Server, aber auch Virtualisierungen<br />

wie Virtualbox<br />

zur Fernsteuerung eines Benutzerdesktops.<br />

Mit VNC<br />

(Virtual Network Connectivity)<br />

lassen sich Rechner jeder<br />

Bauart steuern, auch Mac OS<br />

X besitzt einen eingebauten<br />

VNC-Server.<br />

n<br />

News 02/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

7<br />

Gstreamer-SDK unterstützt Android<br />

Arch <strong>Linux</strong> + Cinnamon = Cinnarch<br />

Das Entwicklerkit für das Multimedia-Framework<br />

Gstreamer<br />

ist in Version 2012.11 (Brahmaputra)<br />

erhältlich, mit der<br />

sich erstmals auch Android-<br />

Apps herstellen lassen. Zu<br />

den unterstützten Betriebssystemen<br />

wie <strong>Linux</strong>, Mac OS<br />

X und Windows von XP bis 7<br />

gesellt sich zudem Windows<br />

8. Das SDK ist kompatibel<br />

zum Gstreamer-Zweig 0.10<br />

und eignet sich für Android-<br />

Versionen ab 2.3.1 (Gingerbread).<br />

Im Kit ist Gstreamer<br />

Upstart 1.6 merkt sich Prozesse<br />

0.10.36 samt Good-, Bad- und<br />

Ugly-Plugins enthalten, daneben<br />

Glib 2.34.2, GTK+<br />

2.24.11 und Python-Bindings<br />

sowie Clutter 1.8.4 und Clutter-gst<br />

1.6.0.<br />

Das Kit ist zum Großteil unter<br />

LGPL lizenziert, einige<br />

optionale Pakete stehen unter<br />

GPL, daneben sind einzelne<br />

Codecs wie H.264, MP3 und<br />

AC3 von Patenten betroffen.<br />

Weitere Informationen sowie<br />

das kostenlose SDK gibt es<br />

unter [http://​gstreamer.​com]. n<br />

<strong>Die</strong> Distribution Cinnarch<br />

[http://​www.​cinnarch.​com] kombiniert<br />

das Grundsystem von<br />

Arch <strong>Linux</strong> mit der Desktopumgebung<br />

Cinnamon. Mit<br />

Version 2012.11.22 tritt sie nun<br />

in den Betastatus. Cinnarch<br />

ist als Live-CD erhältlich, die<br />

sich mit Kommandozeilentools<br />

auch dauerhaft installieren<br />

lässt, einen GUI-Installer<br />

gibt es noch nicht. <strong>Die</strong> neue<br />

Release enthält Kernel 3.6.6,<br />

X-Server 1.13.0 und Gnome<br />

3.6.2. <strong>Die</strong> von <strong>Linux</strong> Mint<br />

stammende Cinnamon-Umgebung<br />

ist in Version 1.6.7<br />

dabei, zusammen mit dem<br />

Datei browser Nemo 1.1.2.<br />

Wie ihre Basis Arch <strong>Linux</strong><br />

verwendet die Distribution<br />

das Rolling-Release-Modell<br />

und aktualisiert sich nach der<br />

Installation fortlaufend über<br />

den Paketmanager.<br />

Das System verwendet Syslinux<br />

als Bootloader, auf<br />

Wunsch kann der Anwender<br />

aber auch Grub 2 nachinstallieren.<br />

Zu den Verbesserungen<br />

zählen ein reparierter<br />

Screenshot-Button, die Unterstützung<br />

für USB-Modems<br />

und VPN im Networkmanager<br />

sowie Dosfstools als neues Paket.<br />

Cinnarch 2012.11.22 steht<br />

als ISO-Image zum Download<br />

bereit.<br />

n<br />

Ubuntus Initsystem Upstart<br />

ist in Version 1.6 veröffentlicht<br />

worden. <strong>Die</strong> wichtigste<br />

Neuerung heißt Stateful Re-<br />

Exec. Das bedeutet, dass Upstart<br />

Zustandsinformationen<br />

über einen Neustart hinweg<br />

speichert und damit weiß,<br />

um welche Prozesse es sich<br />

zu kümmern hat. Weitere Informationen<br />

dazu gibt es im<br />

Ubuntu-Wiki.<br />

Upstart unterstützt nun auch<br />

das Booten ohne Initram-FS.<br />

<strong>Die</strong> Entwickler haben zudem<br />

eine Absturzursache behoben,<br />

die Dokumentation berichtigt<br />

und die Fehlerbehandlung<br />

verbessert.<br />

Upstart 1.6 soll demnächst<br />

in die Ubuntu-Release Raring<br />

Ringtail einziehen. Bereits<br />

jetzt steht die GPLv2-lizenzierte<br />

Software auf der Launchpad-Seite<br />

[https://​launchpad.​net/​<br />

​upstart] bereit. Version 1.5 ist<br />

nun übrigens in Debian Sid<br />

zu finden.<br />

n<br />

Cinnarch lässt sich live betreiben oder per Kommandozeile installieren. Der GUI-<br />

Installer als dritte Option ist noch nicht fertig.


Aktuell<br />

www.linux-magazin.de News 02/2013<br />

8<br />

EZ Publish Platform 5<br />

Der norwegische Hersteller EZ<br />

Systems [http://​ez.​no] hat sein<br />

Contentmanagement-System<br />

für Version 5 der EZ Publish<br />

Platform einer Modernisierung<br />

unterzogen. Das PHP-<br />

System bietet nun mehrere<br />

definierte Schnittstellen: das<br />

Public-API für Anpassungen<br />

und Erweiterungen, das REST-<br />

API, mit dem das System von<br />

außen zugänglich wird, und<br />

das neue Persistence-API, das<br />

verschiedene Speichertechnologien<br />

bis hin zu Big Data<br />

anbinden soll.<br />

Daneben existieren Entwicklerkits<br />

für mobile I-OS- und<br />

Android-Apps, die mit dem<br />

CMS zusammenarbeiten. Als<br />

Template-Engine kommt nun<br />

Twig zum Einsatz. Daneben<br />

gibt es neue Komponenten auf<br />

Basis des PHP-Frameworks<br />

Symfony 2. Erweiterungen für<br />

Marketing und Automatisierung<br />

runden die Plattform ab.<br />

EZ Systems hat den Neuerungen<br />

eine Webseite gewidmet<br />

und bietet ein Webinar sowie<br />

Videos zum Thema an.<br />

Das CMS EZ Publish ist in unterschiedlichen<br />

kostenpflichtigen<br />

Enterprise-Versionen<br />

erhältlich. Daneben gibt es<br />

aber auch eine kostenlose<br />

Community-Version, die unter<br />

GPL lizenziert ist.<br />

n<br />

Weg aus der Haskell-Versionshölle?<br />

Unter dem Arbeitstitel Stackage<br />

(Stable Hackage) soll<br />

ein Repository von Haskell-<br />

Paketen entstehen, das Versions-<br />

und Stabilitätsprobleme<br />

löst. Initiator des Projekts<br />

ist Michael Snoyman, Autor<br />

des Webframeworks Yesod.<br />

Er sieht die Anwender der<br />

Programmiersprache Haskell<br />

oft in einer „Versionshölle“<br />

gefangen, wenn die benötigten<br />

Paketversionen aus dem<br />

Hackage-Repository nicht zusammenpassen<br />

wollen.<br />

Hackage bilde die Entwicklung<br />

ab, darum dürfe es unstabil<br />

sein, schreibt der Entwickler.<br />

Am anderen Ende des<br />

Spektrums sieht er Haskell<br />

Platform, eine auf Stabilität<br />

bedachte Sammlung. Mit Stackage<br />

möchte Snoyman den<br />

Mittelweg beschreiten.<br />

Der Initiator wird von seinem<br />

Arbeitgeber FP Complete<br />

mittels Stundenkontingent<br />

gesponsert und sucht noch<br />

Helfer. Es geht darum, Stackage<br />

um weitere Pakete zu<br />

bereichern, Repositories zu<br />

hosten und Tests umzusetzen.<br />

Daneben sucht Michael Snoyman<br />

das Gespräch mit den<br />

<strong>Linux</strong>-Distributionen. Derzeit<br />

besteht ein Github-Repository<br />

für Stackage unter [https://​<br />

​github.​com/​fpco/​stackage]. n<br />

Dells Entwickler-Ultrabook kommt in den Handel<br />

FFG 2013<br />

Unter dem Codenamen Project<br />

Sputnik hat Dell Ubuntu 12.04<br />

an sein XPS-13-Ultrabook angepasst<br />

und für Entwickler<br />

optimiert. Der Hersteller hat<br />

zudem an der Software-Ausstattung<br />

gearbeitet, die Software-Entwicklern<br />

das Leben<br />

erleichtern soll.<br />

Das Profile Tool soll per<br />

Maus klick alle notwendigen<br />

und hilfreichen Tools für zum<br />

Beispiel Android- oder Ruby-<br />

Entwickler installieren. Der<br />

Cloud-Launcher lässt den Benutzer<br />

virtuelle Systeme auf<br />

dem Rechner installieren, die<br />

sich testen und direkt in die<br />

Cloud übertragen lassen. Beide<br />

Tools befinden sich noch<br />

im Betastatus und sind im<br />

Quelltext unter [https://​github.​<br />

​com/​sputnik] zu finden.<br />

Beim XPS 13 handelt es sich<br />

um ein Ultrabook mit Intel-<br />

Core-i7-Prozessor bei 3,2 GHz<br />

Taktfrequenz und einem verspiegelten<br />

13,3-Zoll-Display<br />

(1366 mal 768 Pixel). Das Ultrabook<br />

bringt 8 GByte DDR3L-<br />

RAM mit und eine 256-GByte-<br />

Solid-State-Disk unbekannter<br />

Marke. An Bord ist eine Intel-<br />

HD-4000-Grafikkarte, der Akku<br />

hält etwa 6 Stunden. <strong>Die</strong><br />

integrierte WLAN-Karte funkt<br />

nach dem schnellen N-Standard,<br />

außerdem an Bord sind<br />

Bluetooth in Version 3.0 sowie<br />

zwei USB-3.0-Ports. Unter der<br />

Adresse [http://​www.​dell.​com/​us/​<br />

​enterprise/​p/​xps‐13‐linux/​pd.​aspx]<br />

findet sich die amerikanische<br />

Produktseite.<br />

Dells Ultrabook XPS 13 soll es demnächst auch in Deutschland in einer Entwickler-Ausgabe<br />

mit Ubuntu 12.04 geben.<br />

© dell.com<br />

Preislich liegt Dells Ultrabook<br />

bei rund 1550 US-Dollar, was<br />

etwa 1200 Euro entspricht.<br />

Außerhalb von Nordamerika<br />

soll es ab Anfang 2013 erhältlich<br />

sein.<br />

n<br />

Das Programm des Frühjahrsfachgesprächs<br />

der GUUG, das<br />

vom 26. 2. bis 1.3. 2013 an der<br />

Fachhochschule Frankfurt am<br />

Main stattfindet, steht jetzt<br />

fest. Wegen der Vielzahl an<br />

Einsendungen hat das Programmkomitee<br />

den ersten<br />

Konferenztag des FFG noch<br />

mit einem dritten Track aufgestockt.<br />

Insgesamt 37 Vorträge mit<br />

den Schwerpunkten Netzwerk-<br />

und IT-Sicherheit, Dateiverwaltung,<br />

Ressourcen-<br />

Management, Softwareverteilung<br />

oder Virtualisierung<br />

warten somit auf die Teilnehmer.<br />

Zu den Themen gehören<br />

außerdem verschiedene Aspekte<br />

von IPv6, Monitoring,<br />

Datenschutz, die Sicherheit<br />

plattformübergreifender Dateidienste<br />

sowie Dateisysteme<br />

wie ZFS und Btrfs. Weitere<br />

Informationen sowie Tickets<br />

gibt es unter [http://​www.​guug.​<br />

​de/​veranstaltungen/​ffg2013/]. n


Kurznachrichten<br />

Nikola 5: Das Python-Programm erzeugt aus Markdown-Code oder Restructured<br />

Text HTML-Seiten für Blogs und Websites. Neu: <strong>Die</strong> neue Release<br />

durchsucht Bilderverzeichnisse rekursiv und erzeugt aus ihnen<br />

Galerien samt Breadcrumb-Navigation. Yapsy-kompatible Plugins. Lizenz:<br />

GPLv3 [http://​nikola.​ralsina.​com.​ar]<br />

Puppy <strong>Linux</strong> Slacko 5.4: Der Zweig der <strong>Linux</strong>-Distribution Puppy <strong>Linux</strong><br />

ist binärkompatibel zu Slackware. Neu: Kernel 3.2.33 mit 4G-Treibern und<br />

Kernel 3.4.17 mit PAE-Unterstützung. <strong>Die</strong> Grafiktreiber von ATI und Nvidia<br />

lassen sich nachrüsten. Der Update-Manager spielt Fixes von Slackware 14<br />

ein. Lizenz: GPL und andere [http://​01micko.​com/​slacko14.​html]<br />

Aptosid 2012-01: <strong>Die</strong> Desktop-Distribution beruht auf Debian Sid. Neu: <strong>Die</strong><br />

Release verwendet Kernel 3.6 und Pakete aus Debian unstable mit Stand<br />

vom 1. Dezember 2012. Desktopumgebungen KDE 4.8.4 und Xfce 4.8.3.<br />

Lizenz: GPL und andere [http://​aptosid.​com]<br />

Pyconfigure 0.1: Das Werkzeug ermöglicht das Installieren von Python-<br />

Software mit den üblichen Make-Kommandos des GNU-Projekts. Neu: Erste<br />

Release mit Autoconf-Skript, Autoconf-Makros sowie Makefile-Templates<br />

inklusive Pypi-Unterstützung. Lizenz: Einfache Open-Source-Lizenz, in<br />

Teilen GPLv3 [http://​savannah.​gnu.​org/​projects/​pyconfigure/]<br />

Comparator 2.9: Das Tool durchsucht Quelltextbestände nach wiederholten<br />

Codesegmenten. Neu: Das Programm unterstützt nicht mehr nur<br />

Subversion als Versionskontrollsystem, sondern auch Git, Bazaar und<br />

Mercurial. Lizenz: BSD [http://​www.​catb.​org/​~esr/​comparator/]<br />

Ekiga 4.0: <strong>Die</strong> Anwendung, ehemals Gnome Meeting genannt, ermöglicht<br />

VoIP-Telefonate und Videokonferenzen. Neu: <strong>Die</strong> Video-Codecs H264 und<br />

H263+ sind wieder enthalten, neu sind SILK (von Skype verwendet),<br />

G.722.1 (Siren 7) sowie G.722.2 (GSM-AMR Wide Band). Überarbeitetes GUI<br />

und Pulseaudio-Plugin. Lizenz: GPL [http://​www.​ekiga.​org]<br />

Kdev-python 1.4: Das Plugin erweitert die KDE-Entwicklungsumgebung<br />

Kdev um Syntax Highlighting und weitere nützliche Funktionen für die<br />

Python-Programmierung. Neu: Erste stabile Version für Python 2.7, eine<br />

Ausgabe für Python 3 ist in Arbeit. Lizenz: MIT-Lizenz [http://​download.​<br />

​kde.​org/​stable/​kdevelop/​kdev‐python/]<br />

Tails 0.15: <strong>Die</strong> Live-Distribution dient zur anonymisierten Internetbenutzung.<br />

Neu: Bookmarks lassen sich auf der verschlüsselten persistenten<br />

Partition speichern. Erste Unterstützung für versteckte Tor-Bridges,<br />

Treiber für einige Open-PGP-Smartcard-Reader sowie Software-Updates.<br />

Lizenz: GPL und andere [https://​tails.​boum.​org]<br />

Sayebackup 0.0.1: Backupskript mit Deduplizierung der Daten. Neu: Erste<br />

Veröffentlichung des bisher internen Tools der Open-Source-Firma Lanedo.<br />

Lizenz: GPLv3 [https://​github.​com/​tim‐janik/​backups]<br />

Prereq-grapher 0.4: Das Skript ermittelt die Abhängigkeiten von Perl-<br />

Programmen und ‐Modulen und stellt sie grafisch dar. Neu: <strong>Die</strong> Option<br />

»‐nc« schließt Coremodule aus, »‐nrc« bildet sie zwar ab, analysiert sie<br />

aber nicht rekursiv. Lizenz: Artistic Licence und GPL [https://​metacpan.​<br />

​org/​module/​prereq‐grapher]<br />

News 02/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

9<br />

Shumway: Freier Flashplayer in Javascript<br />

Projectforge 4.2<br />

Webkit für Qt 4<br />

Mozilla Research arbeitet an<br />

einem Open-Source-Player für<br />

Flash namens Shumway. Der<br />

Player nutzt Javascript, um<br />

SWF-Dateien wiederzugeben<br />

und Actionscript zu interpretieren.<br />

Damit verwendet er<br />

eine Webtechnologie, die sich<br />

im Unterschied zu Binär-Plugins<br />

in das Sicherheitsmodell<br />

des Browsers integrieren lässt.<br />

Shumway befindet sich derzeit<br />

noch in Entwicklung.<br />

Eine Online-Demonstration<br />

kann man sich ganz einfach<br />

mit einem modernen<br />

Webbrowser ansehen. Daneben<br />

gibt es eine Extension<br />

für Firefox, allerdings erst<br />

für Versionen ab 18. Fertige<br />

Firefox-Beta-Builds mit Shumway<br />

lassen sich ebenfalls herunterladen.<br />

Der Quelltext steht unter MIT-<br />

Lizenz bei [https://​github.​com/​<br />

​mozilla/​shumway] bereit. n<br />

Shumway zeigt ein einfaches Autorennspiel in Flash an. Dazu genügt ein moderner<br />

Webbrowser ohne Plugins.<br />

<strong>Die</strong> freie Projektmanagement-<br />

Software Projectforge ist in<br />

Version 4.2 mit neuen Features<br />

erhältlich. <strong>Die</strong> größte<br />

Neuerung ist die Benutzerverwaltung<br />

per LDAP, wobei<br />

Projectforge als Master oder<br />

Client fungieren kann.<br />

Daneben gibt es eine GUI-<br />

Komponente, um mehrere Elemente<br />

wie User oder Gruppen<br />

auszuwählen. Neu ist auch<br />

ein Phone-Lookup-Servlet,<br />

das in Verbindung mit Telefoniesoftware<br />

Informationen zu<br />

eingehenden Anrufen anzeigt.<br />

<strong>Die</strong> Zeiterfassung hat einige<br />

Verbesserungen erfahren, zudem<br />

gibt es eine Verwaltung<br />

für Softwarelizenzen.<br />

Projectforge ist in Java umgesetzt<br />

und für die allgemeine<br />

Projektverwaltung gedacht,<br />

spezielle Features für Softwareprojekte<br />

enthält es nicht.<br />

Es ist unter GPLv3 lizenziert<br />

und steht unter [http://​www.​<br />

​projectforge.​org] zum Download<br />

bereit.<br />

n<br />

Allan Sandfeld, Mitentwickler<br />

des Qt-Toolkits, weist auf Qtwebkit<br />

hin, das eine aktuelle<br />

Version der Browser-Engine<br />

für Qt 4.x liefert. Während<br />

die meiste Entwicklungsarbeit<br />

beim Qt-Unternehmen Digia<br />

in die kommende Version 5<br />

fließt, pflegen Sandfeld und<br />

Kollegen Qtwebkit, das nun<br />

in Version 2.3 vorliegt.<br />

<strong>Die</strong> Software habe fast alle<br />

Features der Mainstream-<br />

Webkit-Engine aufgenommen,<br />

schreibt der Entwickler. Damit<br />

unterstütze Qtwebkit 2.3 Web<br />

GL, zahlreiche fortgeschrittene<br />

CSS-Features wie Shader,<br />

Filter und Regionen sowie den<br />

Remote Web Inspector. Auch<br />

haben sich die Performance<br />

verbessert und der Speicherverbrauch<br />

reduziert.<br />

Der Quellcode für Qtwebkit<br />

ist unter LGPL lizenziert<br />

und unter [https://​gitorious.​<br />

​org/​+qtwebkit‐developers/​webkit/​<br />

​qtwebkit‐23] zu finden. (cla/​<br />

kki/​jcb/mfe/​mhu)<br />

n


1&1 feiert Geburtstag – feiern Sie mit! Wir schenken Ihnen<br />

50,– € Jubiläums-Bonus!<br />

*<br />

DOMAINS | E-MAIL | WEBHOSTING | E-SHOPS | SERVER<br />

* 1&1 Jubiläumsaktion bis 31.01.2013 für Neukunden: 1&1 WebHosting Pakete 6 Monate 0,– €/Monat, danach z. B. 1&1 Dual Unlimited 24,99 €/Monat, 14,90 € Einrichtungsgebühr,<br />

einmaliger Jubiläumsbonus 50,– €. 1&1 Dynamic Cloud Server Basiskonfi guration 3 Monate 0,– €/Monat, danach 39,99 €/Monat, 39,– € Einrichtungsgebühr, einmaliger Jubiläumsbonus


1&1 WEBHOSTING<br />

1&1 feiert 25-jähriges Jubiläum. Profitieren Sie von 25 Jahren Erfahrung und geben Sie Ihren Web-Projekten eine sichere<br />

Zukunft. Denn mit weltweit über 11 Mio. Kundenverträgen, 5.000 Mitarbeitern und 5 Hochleistungs-Rechenzentren ist<br />

1&1 einer der größten Webhoster weltweit. Als Kunde profitieren Sie von unserem langjährigen Know-how und unserem<br />

24/7 Experten-Support. Und das Beste ist: Allen, die sich bis 31.01.13 für 1&1 entscheiden, schenken wir bis zu 50,– €<br />

Jubiläums-Bonus!<br />

1&1 WebHosting<br />

1&1 Cloud Server<br />

1&1 Dedicated Server<br />

■ Optimale Sicherheit durch parallelen<br />

Betrieb und tägliche Backups<br />

■ Bis zu 8 Inklusiv-Domains<br />

■ Freie Wahl des Betriebssystems<br />

(<strong>Linux</strong> oder Windows)<br />

■ NEU! PHP 5.4 inklusive<br />

■ Inklusive aller Tools zur Realisierung<br />

Ihrer Ideen<br />

■ Unlimited Traffic inklusive<br />

■ Voller Root Zugriff<br />

■ Individuelle Kombination aus CPU,<br />

RAM und Festplattenspeicher<br />

■ Abrechnung stundengenau und<br />

konfigurationsbasierend<br />

■ Optimale Sicherheit durch parallelen<br />

Betrieb<br />

■ Wiederherstellung per Snapshot<br />

■ Unlimited Traffic inklusive<br />

■ Voller Root Zugriff<br />

■ Bis zu 32 Cores und 64 GB RAM<br />

■ Große Auswahl an Betriebssystemen<br />

■ Bereitstellung und Austausch<br />

innerhalb von 24h<br />

■ Nahezu 100 % Verfügbarkeit und<br />

Erreichbarkeit<br />

■ Unlimited Traffic inklusive<br />

6 MONATE<br />

0,–<br />

€ * 0,–<br />

€<br />

0,–<br />

€<br />

50,– € *<br />

*<br />

*<br />

50,–<br />

€ *<br />

3 MONATE<br />

+ BONUS<br />

+<br />

JUBILÄUMS-<br />

BONUS 3 MONATE<br />

BONUS<br />

+<br />

50,–<br />

JUBILÄUMS-<br />

JUBILÄUMS-<br />

50,–<br />

€ *<br />

0 26 02 / 96 91<br />

0800 / 100 668<br />

1und1.info<br />

50,– €. 1&1 Dedicated Server 3 Monate 0,– €/Monat, danach z. B. 1&1 Server XXL24i 399,– €/Monat, 99,– € Einrichtungsgebühr, einmaliger Jubiläumsbonus 50,– €. Für alle Aktionsangebote<br />

12 Monate Mindestvertragslaufzeit. Jubiläumsbonus wird mit der jeweiligen monatlichen Grundgebühr ab dem ersten Bezahlmonat verrechnet. Preise inkl. MwSt.


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 02/2013<br />

12<br />

Zahlen & Trends<br />

Freiburg verabschiedet sich vom Open-Source-Office<br />

Der Gemeinderat von Freiburg<br />

im Breisgau hat dafür votiert,<br />

in der Stadtverwaltung kein<br />

Open Office mehr einzusetzen.<br />

Stattdessen soll Microsoft<br />

Office künftig als Bürosuite<br />

dienen. Damit folgten die<br />

Stimmberechtigten der Empfehlung<br />

eines Gutachtens, das<br />

im Jahr 2011 die städtische IT<br />

untersucht hatte.<br />

<strong>Die</strong>ses Dokument hatten vier<br />

Verbände im Vorfeld kritisiert:<br />

Open Source Business<br />

Alliance, Free Software Foundation<br />

Europe, der Bundesverband<br />

Informations- und<br />

Kommunikationstechnologie<br />

sowie die Document Foundation.<br />

Sie bemängeln Fehleinschätzungen<br />

bezüglich der<br />

Situation auf dem Markt der<br />

freien Office-Varianten. Daneben<br />

lasse das Gutachten<br />

Handlungsalternativen außer<br />

Acht und ziehe den reinen<br />

Einsatz von freier Office-Software<br />

gar nicht mehr in Betracht,<br />

sondern lehne diesen<br />

als gescheitert ab.<br />

Viele Freiburger sehen die<br />

versuchte Open-Office-Migration<br />

offenbar negativ. „Eine<br />

Verwaltung mit 3000 Personen<br />

kann nicht dauerhaft im Trialand-error-Modus<br />

laufen“, zitiert<br />

das kommunale Presseamt<br />

den SPD-Stadtrat Kai-<br />

Achim Klare. Gegen den<br />

Open-Office-Ausstieg stimmte<br />

neben anderen Timothy<br />

Simms, stellvertretender Vorsitzender<br />

der Stadtratsfraktion<br />

Junges Freiburg/​<strong>Die</strong> Grünen.<br />

In einem Gespräch mit dem<br />

<strong>Linux</strong>-<strong>Magazin</strong> sagte er: „Freiburg<br />

– das war uns vorher gar<br />

nicht so bewusst – hat nie<br />

richtig zu Open Office gewechselt,<br />

vielmehr wurde in<br />

der Regel parallel mit dem<br />

veralteten MS Office 2000 gearbeitet.<br />

Dazu kam eine allgemeine<br />

Unzufriedenheit seitens<br />

der Fachverwaltungen gegenüber<br />

der IT. Dann ist Open<br />

Office ein Stück weit zu einem<br />

Symbol geworden für alles,<br />

was zwischen IT und Verwaltung<br />

nicht funktionierte.“ <strong>Die</strong><br />

Stadt im Breisgau ist seiner<br />

Meinung nach ein Beispiel dafür,<br />

„wie man eine Migration<br />

besser nicht angeht“. n<br />

Gemeinderat Timothy Simms (Junges<br />

Freiburg/​Grüne) sieht Open Office als<br />

Symbol der Unzufriedenheit.<br />

Daten liegen außerhalb des Unternehmens<br />

Pylint.org<br />

Der erste Digital Information<br />

Index von Symantec unterstreicht<br />

die Bedeutung von<br />

Cloud Computing und Mobilität<br />

für moderne Unternehmen.<br />

Der Studie zufolge speichern<br />

und nutzen Firmen ihre Daten<br />

immer häufiger außerhalb des<br />

Rechenzentrums.<br />

Weltweit lagert fast die Hälfte<br />

aller Unternehmensinformationen<br />

(46 Prozent) draußen.<br />

Kleine und mittelständische<br />

Unternehmen (KMU) liegen<br />

dabei mit 53 Prozent vor<br />

Konzernen, besonders wenn<br />

sie mobile Endgeräte und<br />

Laptops nutzen. Deutschland<br />

liegt hier mit 48 Prozent etwas<br />

über dem weltweiten Durchschnitt,<br />

während Länder wie<br />

Indien (83 Prozent), China<br />

(60 Prozent) und Singapur<br />

(60 Prozent) deutlich darüber<br />

liegen. Dabei hat mehr<br />

als ein Drittel der befragten<br />

Firmen bereits vertrauliche<br />

Informationen durch Verlust<br />

oder <strong>Die</strong>bstahl von mobilen<br />

Geräten verloren.<br />

Zudem geben die Befragten<br />

an, es sei schwierig, die<br />

richtigen Daten zu finden, da<br />

Mitarbeiter die Informationen<br />

weitgehend unorganisiert<br />

speichern. Dabei beträgt die<br />

Speicherauslastung innerhalb<br />

der Unternehmens-Firewall im<br />

Schnitt nur 31 Prozent, noch<br />

geringer ist sie außerhalb des<br />

Rechenzentrums.<br />

Weltweit werden 14 Prozent<br />

der Unternehmensinformationen<br />

auf Handys und Tablets<br />

gespeichert – in Deutschland<br />

sogar 16 Prozent. Vergleicht<br />

man hier die Unternehmensgrößen,<br />

liegen große Firmen<br />

mit 14 Prozent vor den KMU<br />

(11 Prozent). Global rufen Benutzer<br />

bereits 28 Prozent der<br />

Informationen von unterwegs<br />

ab. In Deutschland greifen<br />

rund 20 Prozent aller Mitarbeiter<br />

vom Smartphone oder<br />

Tablet auf Unternehmensinformationen<br />

zu. n<br />

Pylint, ein statischer Code-<br />

Checker für Python, besitzt<br />

jetzt eine eigene Homepage:<br />

[http://​pylint.​org]. Der Betreiber<br />

Logilab betont, dass das Projekt<br />

bewusst nicht auf Github<br />

oder bei einem anderen großen<br />

Anbieter untergebracht<br />

ist, um die Vielfalt und dezentrale<br />

Struktur des Web zu<br />

unterstützen.<br />

Während auf der Homepage<br />

hauptsächlich Informationen<br />

zu finden sind, gibt es den<br />

Code auf der Logilab-Forge<br />

unter [http://​www.​logilab.​org/​<br />

​project/​pylint]. Der Quelltext<br />

von Pylint wird mit Mercurial<br />

dezentral verwaltet. n


Inktank und Suse bieten Support für Ceph<br />

In einer Pressemitteilung haben<br />

Suse und der US-amerikanische<br />

Storage-Spezialist<br />

Inktank [http://​www.​inktank.​<br />

​com] angekündigt, künftig gemeinsam<br />

Support für Anwender<br />

des verteilten Speichersystems<br />

Ceph anzubieten.<br />

Zumindest in der Suse-Cloud<br />

soll es demnächst Enterprise-<br />

Support auch für das Filesystem<br />

geben. Das Netzwerk-<br />

Dateisystem arbeitet mit Open<br />

Stack zusammen, von beidem<br />

macht Suses Wolke ausgiebig<br />

Gebrauch. Inktank ist nach<br />

eigener Aussage der erste Anbieter,<br />

der Unternehmenssupport<br />

für Ceph anbietet.<br />

Suse gewinnt damit einen<br />

weiteren Cloud-Partner. Erst<br />

vor wenigen Monaten hatten<br />

die Nürnberger Dells Deployment-Tool<br />

Crowbar integriert.<br />

Es erlaubt dem Cloud-Admin,<br />

schnell einen neuen Knoten<br />

zu einer Open-Stack-Wolke<br />

hinzuzufügen.<br />

n<br />

Zahlen & Trends 02/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

13<br />

Vorträge für Cebit 2013 gesucht<br />

Mit dem Umzug in Halle 6<br />

räumt die Cebit dem Thema<br />

Open Source im Jahr 2013<br />

mehr Raum ein. Davon profitiert<br />

auch das Open Source<br />

Forum, das zusammen mit der<br />

Ausstellung des Open-Source-<br />

Parks das Thema <strong>Linux</strong> und<br />

freie Software auf der Cebit<br />

prägt. Bis Redaktionsschluss<br />

hatten bereits mehr als 90<br />

Prozent der bisherigen Aussteller<br />

ihre Teilnahme für 2013<br />

zugesagt.<br />

<strong>Die</strong> Cebit 2013 findet vom 5.<br />

bis 9. März 2013 in Hannover<br />

statt. Organisiert von der<br />

Medialinx AG (ehemals <strong>Linux</strong><br />

New Media AG und Herausgeberin<br />

des <strong>Linux</strong>-<strong>Magazin</strong>s),<br />

bietet das Open Source Forum<br />

dem Cebit-Publikum ein<br />

umfangreiches Vortragsprogramm,<br />

das alle Facetten der<br />

<strong>Linux</strong>- und Open-Source-Welt<br />

beleuchtet. Derzeit läuft der<br />

Call for Papers, der Entwickler<br />

und Strategen aus Community,<br />

Unternehmen und Behörden<br />

aufruft ihre Vortragsvorschläge<br />

einzureichen. Gefragt<br />

sind Praktiker, die über ihre<br />

Erfahrungen bei Entwicklung<br />

und Einsatz freier Software<br />

berichten. Gegenstand sollten<br />

innovative und neue Projekte<br />

sowie Open-Source- und <strong>Linux</strong>-spezifische<br />

Technologien<br />

Referenten gesucht: Das Open Source Forum der Cebit bildet den Rahmen für<br />

Vorträge über <strong>Linux</strong> und freie Software.<br />

sein. Von besonderem Interesse<br />

sind der Themenbereich<br />

„Open Source in der Mobile-<br />

IT“ sowie Themen, die an das<br />

Cebit-Leitthema 2013 „Shareconomy“<br />

anknüpfen.<br />

Ihre Vorschläge können Interessierte<br />

per Formular unter<br />

[http://​www.​linux‐magazin.​de/​cfp]<br />

einreichen. Als Vortragsdauer<br />

inklusive anschließender Fragen<br />

und Antworten sind jeweils<br />

45 Minuten vorgesehen,<br />

als Vortragssprachen kommen<br />

Deutsch und Englisch in<br />

Frage.<br />

Über die Vergabe der Vortragsplätze<br />

entscheidet eine<br />

internationale Jury aus Open-<br />

Source-Experten. <strong>Die</strong> Einreichungsfrist<br />

endet am Mittwoch,<br />

dem 9. Januar 2013. n<br />

Red Hats PaaS: Open Shift ist fertig<br />

Nach RHEV und verschiedenen<br />

anderen Produkten legt<br />

Red Hat nach und bringt jetzt<br />

mit Open Shift auch seine eigene<br />

PaaS-Lösung für die private,<br />

öffentliche oder hybride<br />

Cloud auf den Markt.<br />

Open Source durch und<br />

durch, das sei Open Shift,<br />

schreibt Red Hat in einem<br />

Announcement. Zwar ist die<br />

Plattform für Webentwickler<br />

schon länger erhältlich, doch<br />

die Enterprise-Edition gibt<br />

der Hersteller erst jetzt als<br />

Generally Available (GA) frei.<br />

Produktinformationen gibt es<br />

unter [https://​openshift.​redhat.​<br />

​com/​app].<br />

Open Shift Enterprise setzt<br />

auf RHEL, Jboss, Java, Ruby,<br />

Python, PHP sowie Perl und<br />

nutzt eine so genannte Cartridge-Architektur<br />

aus Virtualisierungscontainern<br />

(einer<br />

Kombination aus SE <strong>Linux</strong>,<br />

Cgroups und Namespaces),<br />

um die Middleware-Services<br />

für Entwickler leichter skalierbar<br />

zu machen.<br />

Ashesh Badani, Red Hats General<br />

Manager der Cloud Business<br />

Unit und von Open Shift,<br />

nennt das Produkt „die einzige<br />

offene PaaS-Umgebung<br />

für den Einsatz im eigenen<br />

Rechenzentrum“. <strong>Die</strong> prognostiziert<br />

guten Chancen am<br />

Markt sieht in einer Pressemitteilung<br />

auch die IDC: Stephen<br />

Hendrick, Group Vice<br />

President Application Develop<br />

ment und Deployment Research,<br />

spricht von 40 Prozent<br />

zu erwartenden Zuwächsen<br />

im PaaS-Bereich, die sich auch<br />

in den eigenen Rechenzentren<br />

abspielen werden. n


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 02/2013<br />

14<br />

Mozilla-Jahresbericht 2011<br />

<strong>Die</strong> Mozilla Foundation hat<br />

einen Jahresbericht für 2011<br />

veröffentlicht. <strong>Die</strong> mit Bildern<br />

und Videos illustrierte<br />

Webseite [http://​www.​mozilla.​<br />

​org/​en‐US/​foundation/​annualreport/​<br />

​2011/] stellt Mozillas Vision<br />

vom Web dar: ein offener Ort,<br />

auf den alle Benutzer zugreifen<br />

können und gleichzeitig<br />

sicher sind. Dazu sollen die<br />

Mozilla-Aktivitäten beitragen,<br />

beispielsweise die Umsetzung<br />

des Datenschutz-Features „Do<br />

Not Track“ (DNT) in Mozillas<br />

Browser Firefox.<br />

<strong>Die</strong> Stiftungsvorsitzende Mitchell<br />

Baker schreibt in ihrem<br />

Blog: „Das Web ist innerhalb<br />

von nur 20 Jahren zu einer<br />

wichtigen Infrastruktur unseres<br />

täglichen Lebens geworden.“<br />

Daher sei es wichtig,<br />

dass die Anwender die Kontrolle<br />

darüber nicht aus der<br />

Hand geben und das WWW<br />

verstehen. Dazu wolle auch<br />

Mozilla beitragen. Fast nebenbei<br />

präsentiert die Site noch<br />

harte Zahlen. Der Finanzbericht<br />

steht als PDF-Dokument<br />

zum Download bereit. n<br />

Virtuelle Red-Hat-Trainings jetzt auch für Europa<br />

Das Open-Source-Unternehmen<br />

Red Hat bietet seine<br />

Schulungen im virtuellen Format<br />

nun auch in Europa an.<br />

Das Angebot soll sich auf eine<br />

lange Themenliste und Zertifizierungen<br />

erstrecken, vom<br />

bekannten RHCE über Kurse<br />

zu Solaris bis zur Jboss-Administration<br />

und ‐Entwicklung.<br />

<strong>Die</strong> Termine für Deutschland<br />

finden sich unter [http://​www.​<br />

​europe.​redhat.​com/​training/​dates/​<br />

​?​country=DEV], wo sie in Englisch<br />

angekündigt sind.<br />

<strong>Die</strong> Online-Schulungen werden<br />

live von Trainern betreut<br />

und bieten auch die Gelegenheit<br />

zu praktischen Übungen<br />

an virtualisierten Systemen.<br />

Sie erstrecken sich über drei<br />

bis fünf Tage, an denen je<br />

fünfeinhalb Stunden lange<br />

Schulungen stattfinden. n<br />

UEFI Secure Boot: Mühe mit der Microsoft-Signatur<br />

<strong>Die</strong> Bestrebungen der <strong>Linux</strong><br />

Foundation, einen UEFI-Bootloader<br />

von Microsoft signieren<br />

zu lassen, gestalten sich<br />

mühsam. Das berichtet James<br />

Bottomley, Vorsitzender des<br />

technischen Beirats der Organisation,<br />

in seinem Blog. <strong>Die</strong><br />

Foundation möchte für <strong>Linux</strong>-<br />

Anwender Tools bereitstellen,<br />

mit denen sie UEFI Secure<br />

Boot deaktivieren und umkonfigurieren<br />

können. Zudem<br />

soll es einen Pre-Bootloader<br />

geben, der beliebige andere<br />

Bootloader wie etwa Grub für<br />

<strong>Linux</strong> startet.<br />

In seinem Beitrag beschreibt<br />

Bottomley nun, dass sich die<br />

Prozedur für die signierten<br />

UEFI-Executables langwieriger<br />

und schwieriger gestalte<br />

als erwartet. Das „Abenteuer“,<br />

wie er es bezeichnet,<br />

beginne mit dem Erwerb eines<br />

Verisign-Schlüssels, mit dem<br />

man sich auf Microsofts Sysdev-Seite<br />

anmeldet und seine<br />

Identität beweist. Dazu signiert<br />

der Benutzer ein Binary<br />

und lädt es hoch. Eigentlich<br />

sollte dies mit einer bestimmten<br />

Windows-Version geschehen,<br />

doch offenbar erfüllt<br />

auch das freie Tool Sbsign<br />

seinen Zweck.<br />

Vor dem Signieren von UEFI-<br />

Programmen steht der Vertragsschluss<br />

mit Microsoft.<br />

Hier berichtet James Bottomley<br />

von zahlreichen Klauseln,<br />

die über die eigentlichen<br />

UEFI-Executables hinausgingen<br />

und beispielsweise GPL-<br />

Treiber ausschlössen. Einem<br />

Bootloader steht aber offenbar<br />

nichts im Wege.<br />

Das Signieren erfordert dann,<br />

die Binärdatei in ein Microsoft-Cabinet-Archiv<br />

zu verpacken,<br />

wozu das Open-Source-<br />

Programm Lcab taugt. Danach<br />

muss der Benutzer das Archiv<br />

mit seinem Verisign-Schlüssel<br />

signieren. Glücklicherweise<br />

gibt es auch hierfür mit Osslsigncode<br />

eine freie Lösung.<br />

Beim Upload kommt Microsofts<br />

Silverlight-Technologie<br />

zum Einsatz.<br />

<strong>Die</strong> bisherigen Versuche mit<br />

dieser Prozedur haben offenbar<br />

noch nicht zum Erfolg geführt.<br />

Somit besitzt die <strong>Linux</strong><br />

Foundation derzeit noch keinen<br />

passend von Microsoft<br />

signierten UEFI-Bootloader.<br />

James Bottomley möchte sich<br />

weiter bemühen und die Datei<br />

bei Erfolg auf die Website der<br />

Organisation stellen.<br />

In der Zwischenzeit hat der<br />

Entwickler Matthew Garrett<br />

seinen Bootloader namens<br />

Shim in einer gebrauchsfertigen<br />

Version veröffentlicht.<br />

Im Unterschied zum Loader<br />

der <strong>Linux</strong> Foundation ermöglicht<br />

er, dass der Anwender<br />

sein eigenes Zertifikat im<br />

UEFI einspielt und den Bootloader<br />

selbst signiert. Unter<br />

[http://​www.​codon.​org.​uk/​~mjg59/​<br />

​shim‐signed/] ist sowohl der<br />

Quelltext zum Übersetzen<br />

als auch ein von Garrett signiertes<br />

Binary erhältlich. Der<br />

Bootloader Shim soll etwa bei<br />

Fedora 18 und Open Suse zum<br />

Einsatz kommen. n<br />

James Bottomley bemüht sich, von<br />

Microsoft einen signierten Bootloader<br />

für <strong>Linux</strong> zu bekommen.


<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

Guadec 2013 in Tschechien<br />

<strong>Die</strong> Gnome-Entwicklerkonferenz<br />

Guadec wird 2013 im<br />

tschechischen Brno (Brünn)<br />

stattfinden. <strong>Die</strong> Gnome Foundation<br />

begründet ihre Entscheidung<br />

unter anderem<br />

mit der starken Open-Source-<br />

Community vor Ort. <strong>Die</strong><br />

mährische Universitätsstadt<br />

beherbergt zahlreiche IT-Firmen,<br />

unter anderem eine Niederlassung<br />

von Red Hat. Das<br />

Entwicklertreffen soll vom 1.<br />

bis 8. August 2013 stattfinden.<br />

<strong>Die</strong> Webseite ist derzeit unter<br />

[http://​www.​guadec.​org] im<br />

Aufbau.<br />

Der Zuschlag für 2014 ging an<br />

Strasbourg in Frankreich. <strong>Die</strong><br />

frühe Entscheidung soll dem<br />

lokalen Team mehr Zeit für<br />

die Vorbereitung lassen. n<br />

Online-Training<br />

IT-Sicherheit<br />

Grundlagen<br />

mit Tobias Eggendorfer<br />

Standard HSTS soll Web sicherer machen<br />

Der neue Standard HSTS<br />

soll künftig dafür sorgen,<br />

dass Websites nur noch über<br />

HTTPS erreichbar sind, wenn<br />

sie entsprechend konfiguriert<br />

vorliegen. <strong>Die</strong> Internet Engineering<br />

Task Force (IETF) hat<br />

dafür RFC 6797 veröffentlicht<br />

und damit HTTP Strict Transport<br />

Security (HSTS) formal<br />

als Internetstandard festgeschrieben.<br />

Webserver, die entsprechend<br />

konfiguriert sind, erlauben nur<br />

noch verschlüsselte Verbindungen.<br />

<strong>Die</strong>s setzt allerdings<br />

voraus, dass Webbrowser auf<br />

das vom Server verschickte<br />

Header-Feld wie gewünscht<br />

reagieren. Der Sicherheitsmechanismus<br />

ist aber nicht von<br />

Haus aus immun gegen so<br />

genannte Man-in-the-Middle-<br />

Angriffe, die den Header manipulieren.<br />

<strong>Die</strong> Entwickler<br />

von Browsern wie Chrome<br />

und Firefox wollen deshalb<br />

eine Liste von Websites führen,<br />

die mit dem neuen Standard<br />

kompatibel sind. n<br />

Themen (Auszug):<br />

❚ physikalische Sicherheit<br />

❚ logische Sicherheit<br />

• Betriebssystem<br />

• Netzwerk<br />

❚ Sicherheitskonzepte<br />

@Kirsty Pargeter, 123RF<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

❚ Sicherheitsprüfung<br />

ISO normiert digitale Beweissicherung<br />

Als „ISO/​IEC 27037:2012,<br />

Information technology –<br />

Security techniques – Guidelines<br />

for identification, collection,<br />

acquisition, and preservation<br />

of digital evidence“<br />

ist jetzt ein internationaler<br />

Standard für die elektronische<br />

Beweissicherung verabschiedet<br />

worden. <strong>Die</strong> Norm regelt<br />

Beschaffung, Sammlung und<br />

Sicherung digitaler Beweise<br />

und den Erhalt ihrer Glaubwürdigkeit.<br />

Sie richtet sich<br />

an Personen und Organisationen,<br />

die mit der Auswertung<br />

digitaler Beweis befasst sind,<br />

aber auch an einschlägige<br />

Normungsgremien.<br />

Der Standard ersetzt keine<br />

rechtlichen Bestimmungen,<br />

sondern versteht sich als<br />

Praxis-Leitfaden. Entwickelt<br />

wurde er durch das Komitee<br />

„ISO/​IEC JTC 1, Information<br />

Technology, Subcommittee SC<br />

27, IT Security Techniques“.<br />

Ein PDF ist für 140 Schweizer<br />

Franken im ISO-Onlinestore<br />

erhältlich.<br />

n<br />

Deckt in Teilbereichen auch das Prüfungswissen<br />

für LPIC-303-Inhalte ab.<br />

Inklusive Benutzer- und Rechteverwaltung,<br />

Authentifizierung, ACLs sowie wichtige<br />

Netzwerkprotokolle und mehr!<br />

Das Grundlagentraining für IT-Sicherheit<br />

richtet sich an Systemadministratoren<br />

und solche, die es werden wollen<br />

ebenso wie an ambitionierte<br />

Heimanwender.<br />

Nur 299 Euro inkl. 19 % MwSt.<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/sicherheit


Aktuell<br />

www.linux-magazin.de Zahlen & Trends 02/2013<br />

16<br />

Softwarepatente: Richard Stallman giftet gegen Apple<br />

Kein bisschen müde im Kampf<br />

gegen Softwarepatente zeigte<br />

sich der GNU-Erfinder Richard<br />

Stallman. Im November<br />

hat er in einer Rede in<br />

der Santa Clara University<br />

klar, deutlich und offenbar<br />

auch recht lautstark Stellung<br />

bezogen. Softwarepatente<br />

seien eine sehr große Gefahr<br />

und Apple generell der größte<br />

Patent-Aggressor, der überall<br />

auf der Welt Konkurrenten in<br />

aufwändige Gerichtsverfahren<br />

verwickle.<br />

Stallmans Rede war die einzige,<br />

die an diesem Novembertag<br />

nicht gestreamt wurde,<br />

schreibt Ars Technica. Grund<br />

dafür: Der Veranstalter, die<br />

Santa Clara Law Faculty,<br />

nutzt proprietäre Technik – da<br />

spielte der Free-Software-Verfechter<br />

nicht mit. Dafür soll<br />

es später eine Ogg- oder Web-<br />

M-Aufzeichnung geben, die<br />

sich auch mit freien Clients<br />

betrachten lässt.<br />

Erwartungsgemäß kritisierte<br />

RMS die anwesenden Verfechter<br />

der Softwarepatente. Sein<br />

Rundumschlag ist vertraut,<br />

die Argumentation reicht von<br />

Musik bis zur IT: In beiden<br />

Bereichen lasse sich nichts<br />

neu schaffen, das nicht auf<br />

dem vorherigen aufbaue,<br />

erklärt RMS. Nur eine Welt<br />

Richard Stallman hält das Unternehmen<br />

Apple für den gefährlichsten<br />

Angreifer auf freie Software.<br />

komplett ohne Technologie<br />

sei noch schlechter als eine<br />

mit Softwarepatenten.<br />

Im Interview mit Ars-Technica-Autor<br />

Joe Mullin geht er<br />

noch weiter: All das erzähle er<br />

seit 20 Jahren, doch in letzter<br />

Zeit verändere sich endlich<br />

die Rezeption durch die Leser<br />

oder Zuhörer: Immer mehr<br />

Firmen, zum Beispiel Rackspace,<br />

engagierten sich jetzt<br />

auch gegen Softwarepatente.<br />

Gleichzeitig gewinnen Bösewichte<br />

wie Apple zwar wichtige<br />

Verfahren mit Signalwirkung,<br />

doch am Ende verlieren<br />

auch sie gegen Patent-Trolle.<br />

Das Unternehmen Apple bezeichnete<br />

er dabei als den gefährlichsten<br />

Angreifer auf die<br />

Softwarefreiheit. Doch trotzdem:<br />

„Ich beobachte wachsende<br />

Unterstützung dafür,<br />

Patente aus der Welt der Software<br />

rauszuwerfen.“ n<br />

Zeit Online gibt API als Beta frei<br />

Umweltschützer speichern vor Ort<br />

Inhalte und Metadaten der<br />

„Zeit“ seit 1946 und von „Zeit<br />

Online“ stehen über ein offenes<br />

API bereit. <strong>Die</strong> Wochenzeitung<br />

und ihr Onlinedienst<br />

laden Tester ein, eigene Apps<br />

und Anwendungen zu programmieren,<br />

die den umfangreichen<br />

Datenbestand durchforsten<br />

und auswerten.<br />

„Wir laden alle an Programmierung,<br />

Datenanalyse und<br />

Visualisierung Interessierten<br />

ein, den Index aus mehreren<br />

Hunderttausend Artikeln<br />

zu erkunden“, schreibt das<br />

Team unter [http://​developer.​<br />

​zeit.​de]. Bis auf Weiteres sei<br />

die Nutzung des API für nicht<br />

kommerzielle Zwecke kostenlos,<br />

allerdings müssten Interessierte<br />

sich einen API-Key<br />

freischalten lassen und ihre<br />

Mailadresse angeben. n<br />

<strong>Die</strong> Webevangelisten haben ein einfaches, aber anschauliches Beispiel für eine<br />

Anwendung des Zeit-API gebaut.<br />

In einer Studie kommt das<br />

Öko-Institut Freiburg zu dem<br />

Schluss, dass lokale NAS-<br />

Speicher für Heimanwender<br />

nicht nur günstiger, sondern<br />

außerdem noch umweltverträglicher<br />

sind als die Speicherangebote<br />

im Internet,<br />

die unter dem Etikett Cloud<br />

Computing laufen.<br />

So fielen beispielsweise für<br />

das Speichern von 4,7 GByte<br />

Daten in einem Onlinespeicher<br />

55 Kilogramm CO 2 -<br />

Äquivalente an. Ein energieeffizienter<br />

NAS-Speicher in<br />

einem Heimnetzwerk dagegen<br />

erzeuge für die gleiche<br />

Datenmenge nur 150 Gramm<br />

CO 2 -Äquivalente.<br />

<strong>Die</strong> Speicherung im lokalen<br />

NAS soll darüber hinaus auch<br />

kostengünstiger sein. So kostet<br />

der lokale Netzwerkspeicher<br />

nach Berechnungen des<br />

Instituts pro TByte und Jahr<br />

rund 100 Euro. <strong>Die</strong> Cloudspeicher<br />

bieten zum gleichen<br />

Preis nur etwa 100 GByte<br />

Speicherplatz.<br />

Das Öko-Institut [http://​oeko.​<br />

​de] hat im Rahmen des Projekts<br />

„Top 100“, das genaue<br />

Vergabekriterien für das Umweltzeichen<br />

„Der Blaue Engel“<br />

entwickelt, auch noch<br />

Empfehlungen für den Einkauf<br />

kleiner Netzwerkspeicher<br />

abgeleitet.<br />

Ran Liu, eine wissenschaftliche<br />

Mitarbeiterin des Öko-<br />

Instituts, rät: „Beim Kauf<br />

sollten Verbraucherinnen und<br />

Verbraucher auf den Stromverbrauch<br />

der Geräte achten.<br />

Ein energieeffizienter Netzwerkspeicher<br />

mit zwei Festplatten<br />

verbraucht maximal<br />

58 Kilowattstunden pro Jahr.<br />

Ineffiziente Geräte können dagegen<br />

leicht das Doppelte verbrauchen.“<br />

<strong>Die</strong> Geräte sollten<br />

über einen Standby-Modus<br />

verfügen, der mit nicht mehr<br />

als 4 Watt zu Buche schlägt.<br />

(jcb/​hje/​ofr/​mfe/​mhu) n


Born to<br />

be ROOT!<br />

HOSTED<br />

IN GERMANY<br />

Root Server <strong>Linux</strong> Level 1<br />

29 ,00<br />

€/<br />

€/Mon.*<br />

CPU<br />

Intel Sandy Bridge G530<br />

Leistung<br />

2 x 2,4 GHz<br />

RAM<br />

4 GB<br />

HD<br />

1.000 GB<br />

Traffic<br />

Unlimited*<br />

EFFIZIENTER SPRINTER ZUM MINIPREIS<br />

Beschleunigen eun n Sie<br />

Ihre Projekte mit einem em<br />

dedidi-<br />

zierten Root ot Server<br />

von STRATO. TO.<br />

Mit<br />

eigener Hard-<br />

ware steht Ihnen n<br />

immer m<br />

die volle Leistung von<br />

RAM, CPU, Festplatte e und<br />

Traffic zur Verfügung.<br />

STRATO TO<br />

setzt auf Qualität und arbeitet et ausschließlich h mit führen-<br />

deni<br />

internationalen na alen<br />

Hardware-Herstellern re<br />

er ellern zusammen. men. Jedes Bau-<br />

teil ist optimal für den Einsatz im dedizierten Server abgestimmt.<br />

mt.<br />

Das<br />

sorgt für<br />

höchste Zuverlässigkeit und Ausfall sicherheit.<br />

eit<br />

Zusammen<br />

me<br />

mit dem Minipreis is sind STRATO Root Server r unschlagbar.<br />

* Traffic-Unlimited: Keine zusätzlichen Kosten durch Traffic (bei Traffic-Verbrauch über 1.000 GB/ Monat<br />

und danach je weitere 300 GB erfolgt eine Umstellung der Anbindung auf max. 10 MBit/s. Erneute<br />

Freischaltung der vollen Bandbreite jeweils kostenlos über den Kundenservicebereich). Preis inkl. MwSt.<br />

Info: 030 – 300 146 111 | strato-pro.de


Aktuell<br />

www.linux-magazin.de Kernel-News 02/2013<br />

18<br />

Zacks Kernel-News<br />

Kritik an den Udev-Maintainern<br />

Der Video4<strong>Linux</strong>-Maintainer<br />

Mauro Carvalho Chehab hat<br />

Probleme mit der Geräteverwaltung<br />

Udev beklagt. Dabei<br />

zählte er einige Schwierigkeiten<br />

auf, die er und seine Kollegen<br />

mit der Software haben. Er<br />

schreibt: „Bei Kernel 3.6 können<br />

wir sie mit einem schnellen<br />

Hack lösen. Bei 3.7 und<br />

3.8 wäre es aber besser, das<br />

Changeset »177bc7dade38b5«<br />

rückgängig zu machen. Dann<br />

würde Udev mit dem Wahnsinn<br />

aufhören, bei der Initialisierung<br />

der Gerätetreiber<br />

das Laden der Firmware zu<br />

verlangen.“<br />

Sollten die Udev-Entwickler<br />

das nicht wollen, müsse er<br />

den Gerätemanager eben<br />

überlisten und ihm weismachen,<br />

das Kernelmodul sei bereits<br />

vorher geladen worden.<br />

Linus Torvalds ging sofort der<br />

Hut hoch, während er Chehab<br />

beipflichtete: „Udev hat<br />

verrückte neue Regeln geschaffen,<br />

die einfach falsch<br />

sind. Das derzeitige Udev ist<br />

kaputt und gehört repariert.“<br />

Er bat Greg Kroah-Hartman,<br />

einen der ursprünglichen<br />

Udev-Autoren, einzuschreiten<br />

und für eine vernünftige<br />

Lösung zu sorgen. Greg warf<br />

den Debugger an, und Linus<br />

durchsuchte die Git-Historie.<br />

Torvalds lehnt Mauros Workaround<br />

im Kernel ab: „Es ist<br />

doch Wahnsinn, den Kernel<br />

um die Fehler in Udev herum<br />

zu programmieren.“<br />

Kay Sievers, einer der Udev-<br />

Maintainer, nahm zu den Anschuldigungen<br />

Stellung. Er dementierte,<br />

dass die Geräteverwaltung<br />

kaputt sei. Es handle<br />

sich lediglich um das Warten<br />

<strong>Die</strong> Kernelentwickler haben ihrem Ärger über den Gerätemanager Udev, den<br />

neben anderen Kay Sievers geschrieben hat, Luft gemacht.<br />

auf einen Timeout, und die<br />

Blockade finde irgendwo im<br />

Userspace im Zusammenspiel<br />

mit dem Kernel statt. <strong>Die</strong><br />

Kernelentwickler sollen seiner<br />

Meinung nach die Abhängigkeit<br />

vom Userspace beheben.<br />

Das gefiel Linus gar nicht. Er<br />

argumentiert, das Problem<br />

existiere erst seit einigen Patches<br />

für Udev. Zudem schickte<br />

er einen trotzigen Workaround<br />

für den Kernel. Doch<br />

Kay behauptete weiterhin,<br />

die Schuld läge beim Kernel,<br />

Udev sei nur langsam, mache<br />

aber nichts falsch. Der neue<br />

Workaround gefiel ihm.<br />

Da explodierte Linus erneut:<br />

„Natürlich ist die Lösung im<br />

Kernel besser. Aber das liegt<br />

daran, dass unsere Maintainer<br />

den Code wichtig nehmen<br />

und keine Regressionen dulden.<br />

Geht etwas kaputt, machen<br />

wir die entsprechenden<br />

Änderungen rückgängig. Also<br />

lösen wir auch dieses Problem<br />

im Kernel, aber nicht, weil es<br />

so sein muss – die Wartung<br />

von Udev geht einfach den<br />

Bach runter, seit Greg nicht<br />

mehr dabei ist.“<br />

Al Viro gab Kay den Rat: „Repariert<br />

einfach Udev. Falls<br />

nicht, sollte jemand die letzte<br />

gute Version forken.“ n<br />

Boottime misst die Startzeit<br />

Lee Jones vom Linaro-Projekt<br />

hat ein Patch eingeschickt,<br />

das misst, wie lange ein System<br />

zum Booten braucht. Das<br />

Tool Boottime stammt von<br />

Jonas Aaberg und zeichnet<br />

auch Fehlermeldungen während<br />

des Systemstarts auf.<br />

Christian Gmeiner wies darauf<br />

hin, dass der Code zwar<br />

unter ARM, aber nicht auf<br />

x86-Rechnern funktioniere.<br />

Prompt lud Lee ihn ein, die<br />

Software zu portieren.<br />

Dan Murphy, ebenfalls TI-Entwickler,<br />

fand heraus, dass die<br />

Software für zwei Systeme die<br />

exakt gleiche Bootzeit ausgab,<br />

was höchst unwahrscheinlich<br />

ist. Russell King sah sich das<br />

Patch genauer an und fand einige<br />

Dateien, die es in Sys-FS<br />

anlegt, so hässlich wie sonst<br />

nur im Proc-FS erlaubt – mit<br />

eigenwilligen Formatierungen<br />

und mehreren Informationshappen<br />

pro Datei. Arnd Berg<br />

Bergmann wies darauf hin,<br />

dass die Dateien eigentlich<br />

Debug-FS nutzen, auch wenn<br />

sie unter »/sys« liegen, und<br />

dort sei so etwas gestattet. <strong>Die</strong><br />

Entwickler zeigten großes Interesse<br />

an Boottime, das gute<br />

Aussichten auf die Aufnahme<br />

in den Kernel hat.<br />

n


Energiezähler<br />

Signierte Kernelmodule<br />

Man könnte meinen, Linus als<br />

„wohlwollender Diktator“ des<br />

Kernels implementiere neue<br />

Features für das Betreibssystem<br />

einfach eigenwillig. Doch<br />

vor allem bei Subsystemen<br />

des Kernels, die ihm nicht<br />

besonders vertraut sind, wendet<br />

er sich wie jeder andere<br />

Entwickler an die zuständigen<br />

Maintainer oder diskutiert sie<br />

auf der Mailingliste.<br />

Sein jüngster Vorschlag betrifft<br />

kryptographische Signaturen<br />

für Module. Mit deren Hilfe<br />

könnte der Kernel erkennen,<br />

ob ein Modul vom Administrator<br />

des Rechners oder der<br />

<strong>Linux</strong>-Distribution abgesegnet<br />

ist. Da das weitreichende<br />

Konsequenzen hätte, formulierte<br />

Torvalds seine Idee als<br />

Request for Comments (RFC).<br />

Er schlägt vor, die Signatur<br />

aus dem Build- in den Installationsvorgang<br />

zu verlagern,<br />

um den Vorgang zu beschleunigen.<br />

Der Red-Hat-Entwickler David<br />

Howells zeigt sich begeistert.<br />

Er möchte das automatische<br />

Pawel Moll soll für seinen Arbeitgeber<br />

ARM Informationen<br />

über den Energieverbrauch<br />

von Prozessoren unter <strong>Linux</strong><br />

ermitteln. Mit seinen Implementierungsideen<br />

wandte er<br />

sich an die Kernel-Mailingliste.<br />

Ihm waren drei Möglichkeiten<br />

eingefallen: Erstens könnte er<br />

ein einfaches Trace Event definieren,<br />

dass sich mit Hwmon<br />

oder einem anderen Treiber<br />

auslösen lässt.<br />

Der zweite Ansatz wäre eine<br />

Performance Monitoring<br />

Unit (PMU), die Informationen<br />

zum Energieverbrauch<br />

per Sys-FS zugänglich macht.<br />

Schließlich gäbe es noch die<br />

Möglichkeit, ein neues API<br />

für Energiedaten im Kernel zu<br />

schaffen. Derartige Versuche<br />

seien allerdings schon mehrmals<br />

gescheitert, schreibt<br />

Günter Röck.<br />

Thomas Renninger von Suse<br />

schlägt daraufhin vor, die<br />

Energiestatistik im Userspace<br />

umzusetzen, um den Kernel<br />

nicht zu belasten. In dieser<br />

Richtung möchte Pawel nun<br />

arbeiten. <br />

n<br />

Signieren sogar ganz abschaffen.<br />

Der Admin soll es einfach<br />

bei Bedarf von Hand erledigen.<br />

Das findet Linus aber<br />

übertrieben, denn es würde<br />

jedem viel Arbeit aufbürden,<br />

der den Kernel-Quelltext<br />

selbst kompiliert.<br />

Torvalds hat schon ein verlockendes<br />

Anwendungsszenario<br />

vor Augen: Wer einen zufälligen<br />

Schlüssel verwendet, um<br />

einen Kernel samt Modulen<br />

zu signieren, und den Schlüssel<br />

anschließend vernichtet,<br />

erhielte ein System, das fast<br />

immun gegen Rootkits wäre.<br />

Das Gegenbeispiel, in dem eine<br />

Distribution dem Nutzer<br />

ihre signierten Module aufzwingt,<br />

hält er aber nicht für<br />

plausibel. Im Gegenteil, die<br />

Anwender könnten sich mit<br />

eigenen Signaturen unabhängig<br />

machen.<br />

Der Rest der Diskussion drehte<br />

sich um technische Details<br />

von Linus’ Code. Rusty Russell<br />

und Josh Boyer schickten einige<br />

Verbesserungen an die<br />

Mailingliste.<br />

n<br />

Acknowledgement in Git<br />

Al Viro möchte einen Teil der<br />

Prozedur ändern, nach der<br />

Patches in den Kernel wandern:<br />

<strong>Die</strong> Acknowledgement-<br />

Zeile am Ende des Codes gibt<br />

an, welcher Entwickler das<br />

Patch gutheißt. Al möchte<br />

sie als eigenes Objekt in Git<br />

einspeisen. „Häufig erfolgt<br />

das Ack erst, wenn der Code<br />

schon ins Repository gepusht<br />

ist“, schreibt er als Begründung.<br />

So ließe sich »Acked‐by«<br />

oder »Tested‐by« nachträglich<br />

anhängen, statt den Commit<br />

per »git commit ‐‐amend« zu<br />

bearbeiten.<br />

Der deutsche Embedded-<br />

Entwickler Thomas Gleixner<br />

kann die Situation gut nachvollziehen.<br />

Er hätte aber<br />

gerne ein Protokoll des verspäteten<br />

Ack im Git-Protokoll.<br />

Deshalb schlägt er die<br />

Kommandozeile »git ‐‐attach<br />

SHA1 Kommentar« vor. Der<br />

Github-Mitarbeiter Jeff King<br />

dagegen möchte lieber den<br />

bereits vorhandenen Befehl<br />

»git notes add ‐m Kommentar<br />

SHA1« verwenden. <strong>Die</strong>se<br />

Notiz speichert Git nämlich<br />

in einem eigenen Zweig, der<br />

sich wie üblich pushen und<br />

pullen lässt.<br />

Thomas zeigt sich von diesem<br />

Vorschlag sehr angetan,<br />

auch andere Entwickler antworteten<br />

Jeff begeistert. Linus<br />

Torvalds dämpfte jedoch<br />

ihren Enthusiasmus, indem<br />

er schrieb: „<strong>Die</strong>se Notizen<br />

eigenen sich gut für einen<br />

lokalen Workflow. Man sollte<br />

sich aber nicht darauf verlassen,<br />

dass Git sie überallhin<br />

transportiert. Sie sind ein optionales<br />

Feature, das heißt,<br />

die Acks gehen vermutlich<br />

verloren, darum ist das keine<br />

Lösung für den Kernel.“<br />

Al möchte aber gerade eine<br />

Methode für den Kernel-Quellcode.<br />

Er schlägt einen leeren<br />

Commit nach dem Muster<br />

»git commit ‐‐allow‐empty«<br />

vor, in dessen Kommentarfeld<br />

man nachträglich das<br />

Acknowledgement schreiben<br />

könnte. Linus findet das Thema<br />

nicht so wichtig: „Das ist<br />

die Mühe nicht wert und lenkt<br />

nur ab. Es steht ja keine unverzichtbare<br />

Informationen<br />

in diesen Zeilen. Pusht ein<br />

Entwickler seinen Code ohne<br />

Acks, ist der Code trotzdem<br />

im Repository.“<br />

Ingo Molnar weist darauf<br />

hin, dass ein Acknowledgement<br />

hauptsächlich vor der<br />

Aufnahme eines Patch von<br />

Bedeutung sei. Ist das Patch<br />

einmal im Kernel, wird es zu<br />

einer bürokratischen Randnotiz.<br />

(Zack Brown/​mhu) n<br />

Das Acknowledgement, kurz Ack, ist ein optionaler Teil des Entwicklungsprozesses,<br />

wie Linus Torvalds in »Documentation/SubmittingPatches« schreibt.<br />

Kernel-News 02/2013<br />

Aktuell<br />

www.linux-magazin.de<br />

19


Aktuell<br />

www.linux-magazin.de XP Days 02/2013<br />

20<br />

XP Days Germany 2012 in Hamburg<br />

Technisch und agil<br />

Extreme Programming (XP) und agile Methoden bemühen sich, das Arbeiten im Team möglichst produktiv zu<br />

gestalten. <strong>Die</strong> „XP Days Germany“ gaben vom 29. November bis 1. Dezember neue Anregungen. Carsten Zerbst<br />

©Christian Kalnbach<br />

Abbildung 1: Stefan Roock vom Mitveranstalter IT-Agile empfahl über die Vielfalt von Know-how im Team nachzudenken. Viele Programmpunkte<br />

der XP Days 2012 waren interaktiv, beispielsweise auch Andreas Havensteins Lean-Startup-Workshop.<br />

Hamburg, Ende November<br />

2012: Während vor den Fenstern<br />

die Schlittschuhläufer in<br />

den Wallanlagen ihre Bahnen<br />

ziehen, sitzen rund 150 Entwicklerinnen<br />

und Entwickler<br />

in den Räumen der Hand werkskammer,<br />

um Neues über agile<br />

Entwicklung zu erfahren.<br />

Technisches<br />

<strong>Die</strong> ersten beiden Tage der XP<br />

Days 2012 in Hamburg gaben<br />

sich ausgesprochen technisch.<br />

So demonstrierten Jendrik Johannes<br />

und Mirko Seifert, wie<br />

sie mit Hilfe ihres Frameworks<br />

Buildboost [1] die Build-Zeiten<br />

komplexer Projekte in den<br />

Griff bekommen.<br />

Mark Michaelis und Martti<br />

Jeenicke erläuterten ihren<br />

Ansatz zum automatisierten<br />

GUI-Testen. Dass ein „Läuft<br />

jetzt“ nicht das einzige Ziel<br />

der Software-Entwicklung<br />

sein kann, legten unter anderem<br />

Elmar Jürgens, David<br />

Burkhart und Joachim Melcher<br />

dar. Bei Elmar Jürgens<br />

drehte sich alles um duplizierten<br />

Code und das damit verbundene<br />

Wartungsproblem.<br />

Das von ihm mitentwickelte<br />

Werkzeug Conqat [2] macht<br />

solche Dubletten ausfindig<br />

und hilft sie entfernen. <strong>Die</strong><br />

beiden anderen Redner sind<br />

beim XP-Days-Mitveranstalter<br />

Andrena Objects angestellt<br />

und präsentierten mit Usus<br />

[3] ein Eclipse-Plug in für<br />

Softwaremetrik.<br />

Auf die technischen Themen<br />

folgten die organisatorisch<br />

orientierten Beiträge. Highlights<br />

waren der Vortrag von<br />

Henrik Berglund zum Thema<br />

Teambuilding und die Betrachtung<br />

von Stefan Roock,<br />

wie viele Kenntnisgebiete ein<br />

Entwicklungsteam sinnvollerweise<br />

abdecken sollte.<br />

Ein gutes Dutzend Sitzungen<br />

fand nicht klassisch als Frontalvortrag<br />

statt, sondern als<br />

Live-Interaktion mit dem Publikum.<br />

Im inzwischen üblichen,<br />

japanisch inspirierten<br />

Vokabular sprach man von<br />

Katas (Übungseinheiten) in<br />

diversen Dojos (Übungsräumen)<br />

oder Pecha-Kutchas<br />

(Vorträgen mit 20 Folien zu je<br />

20 Sekunden Dauer) über kleinere<br />

Themen.<br />

Scala mit Tempo<br />

Aber auch große Formate wie<br />

„Scala in vier Stunden“ forderten<br />

das Publikum zum Mitmachen<br />

auf: Ziel von Christoph<br />

Mathis und Daniel Zappold<br />

war es, den 20 Teilnehmern<br />

diese Sprache näherzubringen.<br />

Mit einer Mischung aus<br />

Speed Learning und Pair Programming<br />

gelang dies besser<br />

als beim Frontalunterricht.<br />

Egal ob bei diesem oder anderen<br />

Programmpunkten: Es<br />

ergab sich fruchtbarer Austausch<br />

zwischen Publikum<br />

und Referenten, bei dem alle<br />

Anwesenden auch Fragen zu<br />

Best Practices angeregt diskutierten.<br />

<strong>Die</strong> Meinung im Publikum<br />

über die Veranstaltung war<br />

durchweg positiv – nur<br />

durch das wacklige WLAN<br />

etwas gedämpft. Das zeigte<br />

auch die rege Beteiligung am<br />

Community Day am Samstag<br />

sowie an den Abendveranstaltungen.<br />

Coding-Wettbewerbe<br />

wie „Deutschland sucht den<br />

agilen Entwickler“ hielten die<br />

Anwesenden in der Handwerkskammer,<br />

die Konferenz<br />

konnte also auch abends gegen<br />

die Vergnügungsangebote<br />

der Hansestadt bestehen.<br />

<strong>Die</strong> Vorträge der XP Days stellen<br />

die Veranstalter auf der<br />

Website [4] bereit, die Ergebnisse<br />

des Community Day<br />

sind dagegen auf Github [5]<br />

zufinden. (mhu) <br />

n<br />

Infos<br />

[1] Buildboost: [https:// github.​<br />

com/ DevBoost/ BuildBoost]<br />

[2] Conqat:<br />

[https:// www. conqat. org]<br />

[3] Usus: [http:// code. google.​<br />

com/ p/ projectusus/]<br />

[4] XP-Days-Homepage:<br />

[http:// xpdays. de]<br />

[5] Ergebnisse des Community<br />

Day: [https:// github. com/​<br />

xpdays/ openhackspace/ wiki]


<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

JETZT MIT NEUEN<br />

Lernzielen! *<br />

*Anpassung der Lernziele 2012<br />

Online-Training<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Besorgen Sie sich Brief und Siegel für Ihr<br />

<strong>Linux</strong>-Knowhow mit der LPI-Zertifizierung.<br />

- Training für die Prüfungen LPI 101 und 102<br />

- Training für die Prüfungen LPI 201 und 202<br />

Sparen Sie mit Paketpreisen!<br />

Auszug aus dem Inhalt:<br />

❚ Hardware-Einstellungen,<br />

Paketverwaltung<br />

❚ Arbeiten auf der Kommandozeile<br />

❚ Partitionen und Dateisysteme<br />

❚ Shell-Umgebung<br />

❚ Netzkonfiguration und -verwaltung<br />

❚ Protokolle<br />

❚ DNS-Server einrichten und verwalten<br />

❚ Verschlüsselung und Rechteverwaltung<br />

❚ Kernel kompilieren und patchen<br />

❚ RAID-Konfiguration,<br />

Logical Volume Manager<br />

❚ Web-, Proxy-, Samba-Server<br />

Mit vielen Praxisbeispielen!<br />

* Anpassung der Lernziele in 2012<br />

academy.linux-magazin.de/lpic


Im Schatten von NFS und Samba reifen Netzwerk-Filesystem-Newcomer heran<br />

<strong>Die</strong> <strong>Überflieger</strong><br />

Einführung 02/2013<br />

Titelthema<br />

Verteilte und Cluster-Dateisysteme gelten als <strong>Überflieger</strong> in Sachen Fileserver. <strong>Die</strong> Newcomer sollen die Lücke<br />

zwischen NFS und SMB einerseits und teuren SANs andererseits schließen. Selbst Microsoft, ein bei allen wichtigen<br />

Themen zuverlässiger Hinterher-Spinger, entwickelt mit SMB 3.0 ein Faible für Infrastruktur. Jan Kleinert<br />

www.linux-magazin.de<br />

23<br />

Inhalt<br />

24 Verteilte Filesysteme<br />

Ceph, Gluster, Xtreem-FS, FHG-FS, Lustre<br />

und Open AFS im Vergleich.<br />

34 Ceph und Gluster<br />

Im Storage-Cluster verschwimmt die<br />

Grenze zwischen Storage und Server.<br />

32 Storage-HA<br />

Fast jedes der zahlreichen Netzwerk-<br />

Datei­sys­teme verfolgt seinen eigenen<br />

Ansatz zur Ausfallsicherheit.<br />

42 Großer Benchmark­<br />

Am Ende des Fileserver-Tages zählen vor<br />

allem erzielbare Datendurchsätze. Das<br />

<strong>Linux</strong>-<strong>Magazin</strong> hat nachgemessen.<br />

Das neue Jahr startet das <strong>Linux</strong>-<strong>Magazin</strong><br />

mit dem Thema Netzwerk-Dateisystemen.<br />

Was sich vermeintlich nach dem<br />

Duell zweier alter Herren, NFS und<br />

Samba, anhört, erweist sich als Getümmel<br />

hochmotivierter Nachwuchskräfte.<br />

<strong>Die</strong> haben mit dem Start ihrer Karrieren<br />

bereits Features eingebaut, die man bei<br />

NFS oder Samba erst aufwändig nachrüsten<br />

muss. Wie sich das Mehr an Funktion<br />

der Nachwuchskader und das Weniger an<br />

Erfahrung in der Geschwindigkeit niederschlagen,<br />

versucht der letzte Artikel des<br />

Schwerpunkts herauszufinden.<br />

Dass das bislang in Sachen Innnovation<br />

eher schlurfig daherkommende Infrastruktur-Thema<br />

in den letzten Jahren<br />

tatsächlich Fahrt aufgenommen hat, lässt<br />

sich an einem verlässlichen Spätindikator<br />

messen: Microsoft. Bei allen wichtigen<br />

Themen wie Internet, Application Service<br />

Providing oder Smartphone-Betriebssystemen<br />

ist die umsatzstärkste Softwarefirma<br />

der Welt zuverlässig auf jeden fahrenden<br />

Zug aufgesprungen – aber jedesmal erst<br />

auf den letzten Wagon. Mit Windows Server<br />

2012 läuft das offenbar nicht anders.<br />

Während <strong>Linux</strong>- und andere Systeme<br />

bereits in der 1. Klasse speisen, beginnt<br />

Microsoft das neue Netzwerk-Dateisystem<br />

SMB 3.0 mühsam zu propagieren,<br />

zumal es sich technisch um ein umbenanntes<br />

SMB 2.2 handelt [1].<br />

Bei dem Dateisystem stehen zwei Neuerungen<br />

beim Failover-Clustering im Vordergrund:<br />

SMB Transparent Failover und<br />

das SMB Scale-Out. Keine richtige Ausfallzeit,<br />

sondern nur eine geringe Verzögerung<br />

verspricht Windows Server 2012<br />

mit SMB Transparent Failover mit zwei<br />

Knoten. Ist für die beteiligten Freigaben<br />

»Continuous Availability« aktiviert, stellt<br />

ein SMB-3.0-Mechanismus Verbindungen<br />

und Dateihandler automatisch um, sobald<br />

einer der Rechner ausfällt.<br />

<strong>Die</strong> Skalierbarkeit in früheren Windows-<br />

Dateiserver-Clustern war nicht wirklich<br />

erfrischend. Nun erweitert Microsoft das<br />

vorhandene Konzept der Cluster Shared<br />

Volumes (CSVs) um die so genannten<br />

SMB-Scale-Out-Dateiserver. Legt ein<br />

Admin einen solchen Dateiserver an,<br />

platziert er die Freigaben auf Verzeichnisse,<br />

die auf gemeinsamen Volumes<br />

eines CSV liegen. <strong>Die</strong> erhalten dadurch<br />

das Label »CSVFS«, obwohl sie weiterhin<br />

lokal mit NTFS formiert sind.<br />

Mühsame Aufholjagd<br />

<strong>Die</strong> Kombination aus Scale-Out und Transparent<br />

Failover schafft eine Plattform, bei<br />

der mehrere Server gleiche Freigaben<br />

iden tischen Inhalts nutzen, was die Ausfallsicherheit<br />

erhöht und zugleich die Arbeitslasten<br />

verteilt. Beides war mit Windows-Bordmitteln<br />

bislang so nicht möglich.<br />

Wer den Schwerpunkt dieses <strong>Magazin</strong>s<br />

studiert, kann ermessen, wie sehr<br />

<strong>Linux</strong>er besser gestellt sind.<br />

Der Zustand wird zweifellos auch noch<br />

eine Weile anhalten, da in Microsoftdominierten<br />

Umgebungen auch noch die<br />

Clients mitspielen müssen. Un die ganze<br />

Pracht von SMB 3.0 entfaltet sich erst<br />

mit Windows 8. Clients, die SMB 1 und<br />

SMB 2 sprechen, profitieren nicht von<br />

der SMB-Transparent-Failover-Funktion.<br />

Fällt ein Clusterknoten aus, auf den ein<br />

solcher Client zugreift, verliert der seine<br />

aktive SMB-Sitzung und damit alle offenen<br />

Handles auf Dateiserver.<br />

Ein ganz ähnliches Bild bietet sich dem<br />

Admin beim Skalieren: SMB-1.0-Clients<br />

können nichts mit SMB-Scale-Out-Freigaben<br />

anfangen („Zugriff verweigert“).<br />

SMB-2.0-Clients kommen nicht in den<br />

Genuss der ebenfalls neuen SMB-Mehrkanal-Funktionalität,<br />

der Schattenkopien,<br />

von SMB over Remote Direct Memory<br />

Access und der SMB-Verschlüsselung.<br />

Der Weg vom letzten Wagon in den Salonwagen<br />

erscheint weit.<br />

n<br />

Infos<br />

[1] Jeffrey Snover, „SMB 2.2 is now SMB 3.0“:­<br />

[http://​­blogs.​­technet.​­com/​­b/​<br />

­windowsserver/​­archive/​­2012/​­04/​­19/​<br />

­smb‐2‐2‐is‐now‐smb‐3‐0.​­aspx]


Titelthema<br />

www.linux-magazin.de Dateisystem-Überblick 02/2013<br />

24<br />

Verteilte Dateisysteme unter <strong>Linux</strong> im Vergleich<br />

Verteilte Objekte<br />

<strong>Die</strong> Auswahl an verteilten Dateisystemen unter <strong>Linux</strong> kann sich sehen lassen. Über die Basisfunktionalität<br />

verfügen sie alle, die Unterschiede für den Einsatz liegen im Detail. Das <strong>Linux</strong>-<strong>Magazin</strong> hat sich die wichtigsten<br />

genauer angesehen und ihre Eigenschaften zusammengetragen. Udo Seidel<br />

serte Stabilität und asynchrone Schreibzugriffe<br />

folgten erst mit der Version 1.4,<br />

die bei Redaktionsschluss dieses Artikels<br />

erschien. Mit der stellen die Entwickler<br />

zudem die Bibliothek »libxtreemfs«<br />

für Java bereit. Anwendungen können<br />

sie nutzen, um direkt mit Xtreem-FS zu<br />

kommunizieren. Ein explizites Mounten<br />

ist dann nicht nötig.<br />

Made in Germany:<br />

Fraunhofer-FS<br />

© Giuseppe Anello, 123RF.com<br />

In Sachen verteilte Dateisysteme nehmen<br />

Suse und Red Hat unterschiedliche<br />

Positionen ein. Während RHEL voll auf<br />

Gluster-FS [1] setzt, bringt SLES das bereits<br />

in den <strong>Linux</strong>-Kernel integrierte Ceph<br />

[2] mit (siehe den Artikel „Speicher satt“<br />

in dieser Titelstrecke).<br />

Neben den beiden Platzhirschen gibt es<br />

einige Projekte, die für spezielle Szenarien<br />

erfolgversprechendere Ansätze verfolgen.<br />

<strong>Die</strong>ser Artikel stellt Ceph und Gluster in<br />

einem breiten Überblick an die Seite von<br />

Xtreem-FS [3], FHG-FS [4], Lustre [5]<br />

und Open AFS [6]. Tabelle 1 fasst die<br />

wichtigen Eigenschaften der sechs Kandidaten<br />

übersichtlich zusammen.<br />

Aus dem Grid: Xtreem-FS<br />

<strong>Die</strong> Entwicklung von Xtreem-FS begann<br />

im Rahmen eines europäischen Forschungsprojekts,<br />

das an einem <strong>Linux</strong>basierten<br />

Grid-Betriebssystem arbeitete.<br />

<strong>Die</strong>ses Xtreem-OS [7] soll die Brücke<br />

zwischen den Vorteilen des Grid-Computing<br />

und der einfachen Verwaltung<br />

einzelner Rechner schlagen.<br />

Für die Ablage der Daten wollten die<br />

Entwickler ein verteiltes Dateisystem verwenden.<br />

Zu Projektbeginn 2006 erwies<br />

sich aber die Auswahl an möglichen Kandidaten<br />

unter <strong>Linux</strong> als recht dünn, auch<br />

weil die Anforderungen von Xtreem-OS<br />

– Verteilung, Sicherheit und Skalierbarkeit<br />

– das Feld deutlich einengten. So<br />

beschloss das Projekt, auch ein eigenes<br />

Dateisystem zu schaffen.<br />

Knapp drei Jahre später erschien Version<br />

1.0, die bereits parallele Lese- und<br />

Schreibzugriffe bot, ebenso die Replikation<br />

von Daten im Lese-Modus. Mitte<br />

2011 kam Version 1.3 heraus, die auch die<br />

Replikation im Schreib-Modus erlaubt.<br />

Zu dieser Zeit vollzogen die Entwickler<br />

des Dateisystems auch den Wechsel von<br />

der GPLv2 zur BSD-Lizenz.<br />

<strong>Die</strong> Unterstützung für Hadoop, die Re-Integration<br />

von Windows als Client, verbes-<br />

<strong>Die</strong> Wiege des Fraunhofer Gesellschaft<br />

File System (FHG-FS, manchmal auch<br />

Fraunhofer-FS) steht im Institut für<br />

Techno- und Wirtschaftsmathematik. Im<br />

Jahr 2004 beschlossen dessen Mitarbeiter,<br />

das bisher benutzte Lustre durch eine Eigenentwicklung<br />

abzulösen. Im Pflichtenheft<br />

fanden sich unter anderem folgende<br />

Anforderungen: keine Notwendigkeit für<br />

Kernelpatches, verteilte Metadaten sowie<br />

die Wahlmöglichkeit zwischen Ethernet<br />

und Infiniband für die Interconnects.<br />

Drei Jahre später konnten die Entwickler<br />

die erste Version von FHG-FS vorzeigen.<br />

Mittlerweile liegt das es in der Version<br />

2011.04 vor.<br />

Neben den oben genannte Punkten war<br />

und sind den Entwicklern HPC-Tauglichkeit<br />

und einfaches Verwalten des Dateisystems<br />

sehr wichtig. Der Aspekt Hochverfügbarkeit<br />

hingegen ist von geringer<br />

Priorität und soll erst in der nächsten<br />

Version mehr Beachtung finden.<br />

Zum gegenwärtigen Zeitpunkt ist nur der<br />

FHG-FS-Client weitestgehend im Quelltext<br />

verfügbar und unter der GPLv2 lizenziert.<br />

Leider haben Fraunhofers dem<br />

Clientcode auch ein paar Binärobjekte<br />

beigefügt, die wie manche anderen Komponenten<br />

einem End User Licence Agree-


Tel. 0 64 32 / 91 39-743<br />

Fax 0 64 32 / 91 39-711<br />

vertrieb@ico.de<br />

www.ico.de/linux<br />

SEIT 1982<br />

ment (EULA) für FHG-FS [8] unterliegen,<br />

aber kostenlos erhältlich sind.<br />

Daten über Daten<br />

Xtreem-FS und FHG-FS bauen auf ähnlichen<br />

Komponenten auf. Gemeinsamkeiten<br />

gibt es beispielsweise bei den Instanzen,<br />

die sich komplett um die Verwaltung<br />

der Metadaten kümmern. Beide Dateisysteme<br />

implementieren sie als Prozesse<br />

im Userspace. Zum Starten und Stoppen<br />

benutzt der Admin Init-Skripte. Xtreem-<br />

FS verwendet dafür den nicht privilegierten<br />

Account »xtreemfs«, bei FHG-FS läuft<br />

alles mit Rootrechten.<br />

Bei Xtreem-FS hört die Instanz auf den<br />

Namen MRC – Meta data and Replication<br />

Catalogue. Wie der Name impliziert,<br />

kümmert sich diese Verwaltungseinheit<br />

auch um das Replizieren von Daten, um<br />

so die Ausfallsicherheit zu erhöhen. Auch<br />

die MRC-Server selbst kann der Admin als<br />

eine Art Farm mit Failover-Funktionalität<br />

aufsetzen. Es sind mindestens drei Instanzen<br />

nötig, da die beteiligten Rechner<br />

die gültige Dateiversion per Mehrheitsentscheidung<br />

bestimmen.<br />

<strong>Die</strong> Metadaten selbst legt Xtreem-FS in<br />

der eingebetteten, dateibasierten Babu<br />

DB [9] ab. Deren Daten liegen lokal auf<br />

den einzelnen MRC-Servern. Damit im<br />

Fall eines Failover auch dem neuen Master<br />

alle Informationen vorliegen, muss<br />

Xtreem-FS diese immer synchron halten.<br />

4282, 81 3599,-<br />

Service-<br />

Registrierung<br />

Xtreem-FS-Dir-Server<br />

Glücklicherweise müssen die Entwickler<br />

dazu fast gar nichts machen: Babu DB<br />

bringt die entsprechenden Kopiermechanismen<br />

bereits mit.<br />

Das Fraunhofer-FS hingegen kennt<br />

zwei Möglichkeiten für die Ablage der<br />

Metadaten: in einer normalen Datei oder<br />

in erweiterten Attributen. Während Ersteres<br />

dem Admin mehr Auswahlmöglichkeiten<br />

bei der Auswahl des Dateisystems<br />

erlaubt, ist der zweite Ansatz deutlich<br />

performanter.<br />

<strong>Die</strong> Entwickler empfehlen übrigens als lokales<br />

Dateisystem Ext 4, und zwar mit einer<br />

Inode-Größe von 512 Byte. In diesem<br />

Fall kann FHG-FS die Metadaten direkt im<br />

Inode ablegen. Fällt der Metadaten-Server<br />

aus, hängen alle Systemaufrufe, die<br />

auf eben jene Informationen zugreifen<br />

wollen, beispielsweise auch »stat()«.<br />

<strong>Die</strong> Ablage<br />

<strong>Die</strong> eigentlichen Daten verwalten bei<br />

X treem-FS und FHG-FS die Storage-Server,<br />

auch OSD (Object-based Storage Device)<br />

genannt. Auch dort laufen normale Prozesse<br />

im User Mode eines <strong>Linux</strong>-Systems,<br />

Init-Skripte übernehmen das Starten und<br />

Stoppen. Beide Dateisysteme organisieren<br />

die OSDs in Farmen, allerdings mit<br />

etwas unterschiedlichen Zielen. Sowohl<br />

Xtreem-FS als auch FHG-FS können die<br />

Last über mehrere Storage-Server verteilen.<br />

Sie unterteilen Dateien dazu in<br />

Dateisystem-<br />

Verwaltung<br />

Innovative Computer • Zuckmayerstr. 15 • 65582 <strong>Die</strong>z<br />

BALIOS R15B 1HE SERVER<br />

inkl. MwSt.<br />

GmbH<br />

• Intel ® Xeon ® E3-1220 V2 3,1GHz S1155<br />

• 2x 4GB DDR3 RAM<br />

• 2x 1TB 24x7 SATA-2 HDD<br />

• 2x Gigabit-LAN<br />

• Systemtest mit Debian <strong>Linux</strong> 6<br />

exkl. MwSt.<br />

1188, 81 999,-<br />

Art.Nr. BTO-2989226<br />

BALIOS R25G 2HE SERVER<br />

• Intel ® Core i7-960 3,2GHz S1366<br />

• 3x 4GB DDR3 RAM<br />

• 4x 1TB 24x7 SATA-2 HDD<br />

• Adaptec 6405E RC<br />

• Systemtest mit Debian <strong>Linux</strong> 6<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

1605, 31 1349,-<br />

Art.Nr. BTO-2989227<br />

XANTHOS R45B 4HE SERVER<br />

Xtreem-FS-MRC-Server<br />

Metadaten-Operation<br />

Xtreem-FS-Clients<br />

Xtreem-FS-OSD-Server<br />

Datenoperation<br />

Server<br />

Abbildung 1: <strong>Die</strong> Architektur von Xtreem-FS: <strong>Die</strong> Nutzdaten liegen in den OSDs, die Metadaten im MRC, und<br />

den Einstiegspunkt für die Clients stellt der Dir-Server da.<br />

• 2x Intel ® Xeon ® E5-2620 2,0GHz 7,2GT 15MB 6C<br />

• 8x 4GB DDR3 RAM<br />

• 8x 1TB 24x7 SATA-2 HDD<br />

• Adaptec 71605 RC + NAND BBU<br />

• Intel ® Remote Management<br />

• Systemtest mit Debian <strong>Linux</strong> 6<br />

inkl. MwSt.<br />

exkl. MwSt.<br />

Art.Nr. BTO-2989228<br />

Intel ® , Intel ® Logo, Intel ® Inside, Intel ® Inside Logo, Atom, Atom Inside,<br />

Xeon und Xeon Inside sind Marken der Intel Corporation in den USA und<br />

anderen Ländern.<br />

Alle Preise in Euro<br />

wir liefern auch<br />

nach Österreich<br />

u. in die Schweiz


Titelthema<br />

www.linux-magazin.de Dateisystem-Überblick 02/2013<br />

26<br />

Management<br />

Server<br />

Admon<br />

Meta<br />

Storage<br />

Häppchen von 128 KByte (Xtreem-FS)<br />

beziehungsweise 512 KByte (FHG-FS)<br />

und legen diese so genannten Chunks<br />

(Stücke) auf der konfigurierten Anzahl<br />

von OSDs ab. <strong>Die</strong> Größe dieser Häppchen<br />

kann der Anwender auch nach seinen<br />

Wünschen konfigurieren.<br />

Xtreem-FS nutzt zusätzliche OSDs für Kopien<br />

der Daten, um die Ausfallsicherheit<br />

zu erhöhen. <strong>Die</strong> beteiligten Server wählen<br />

dazu einen Master, der sich durch ein<br />

Lease den anderen gegenüber als Chef zu<br />

erkennen gibt. Über ihn laufen sowohl<br />

Lese- als auch Schreibzugriffe. Bei neuen<br />

Anfragen kommt es erneut zum Auswahlprozess,<br />

gegebenenfalls gibt es ein neues<br />

Ober-OSD. Fällt der Master aus, bestimmen<br />

die verbliebenen Storage-Server einen<br />

neuen Chef. Macht eines der übrigen<br />

OSDs Probleme, verfügt Xtreem-FS über<br />

zwei Möglichkeiten, darauf zu reagieren:<br />

kompletter Fehlschlag oder Nutzung der<br />

verbliebenen Storage-Instanzen. Welchen<br />

Weg das Dateisystem wählt, bestimmt<br />

der Admin per Konfiguration.<br />

OSDs besitzen eine Art Zwitter-Funktionen.<br />

Sie sind einerseits Teile eines<br />

objektbasierten Storage-Systems und<br />

verwenden andererseits eine normales<br />

Dateisystem zur internen Datenverwaltung.<br />

FHG-FS empfiehlt die Verwendung<br />

von XFS, im Projekt-Wiki finden sich<br />

zahlreiche Tuning-Tipps für die Storage-<br />

Server: Mount-Optionen, optimale I/​<br />

O-Scheduler sowie Einstellungen für<br />

die Speicherverwaltung. Xtreem-FS ist<br />

bei der Wahl der Backend-Datenablage<br />

Metadaten-I/O<br />

flexibler, denn Funktionen wie Copy on<br />

Write oder Snap shotting haben die Entwickler<br />

bereits im eigenen Dateisystem<br />

eingebaut.<br />

Das große Ganze<br />

Daten-I/O<br />

FHG-FS-Clients<br />

Abbildung 2: <strong>Die</strong> Komponenten von FHG-FS: Metadaten-Server und OSDs kommunizieren ständig mit dem<br />

Management-Server, der Admin-Monitor dient zum Steuern der <strong>Die</strong>nste und gibt Statusinformationen aus.<br />

Ergänzend zur Daten- und Metadaten-<br />

Verwaltung ist eine Instanz mit Gesamtverantwortung<br />

erforderlich. Der Client<br />

soll einerseits recht wenig von der Topologie<br />

im Hintergrund wissen, muss<br />

aber andererseits einen Einstiegspunkt<br />

ins Dateisystem haben. Bei Xtreem-FS<br />

ist das der Dir-Server (Dir, Directory).<br />

<strong>Die</strong>ser dient als Zentralregistratur für die<br />

<strong>Die</strong>nste des Dateisystems, OSD, MRC und<br />

Volumes. Abbildung 1 zeigt die Architektur<br />

von Xtreem-FS im Überblick.<br />

<strong>Die</strong> Entwickler verwenden zur Ablage<br />

der Informationen der Dir-Instanz wiederum<br />

Babu DB. Auch ein Failover ist theoretisch<br />

– und analog zu den MRC-Servern<br />

– möglich. In den Tests des <strong>Linux</strong>-<strong>Magazin</strong>s<br />

wollte dies aber nicht funktionieren.<br />

Für den produktiven Einsatz muss der<br />

Admin hier auf andere Mittel, etwa auf<br />

Pacemaker & Co. zurückgreifen.<br />

Beim Fraunhofer-Dateisystem übernimmt<br />

der Management-Server analoge Aufgaben.<br />

Metadaten- und OSD-Instanzen<br />

kommunizieren ständig mit ihm, denn<br />

er kennt die Konfiguration des FHG-FS-<br />

Verbunds (Abbildung 2). Auch hier besitzt<br />

das Dateisystem implizite Methoden,<br />

die Ausfällen vorbeugen sollen, aber<br />

bis die nächste Version die versprochene<br />

Besserung bringt, muss der Admin zusätzlich<br />

externe Maßnahmen ergreifen.<br />

Bei beiden Dateisystemen sind die Management-Instanzen<br />

wieder Prozesse im<br />

Usermode.<br />

Ein selbst gestecktes Ziel von Xtreem-FS<br />

war es, möglichst plattformunabhängig<br />

zu sein. <strong>Die</strong>s schlägt sich auch in der<br />

Auswahl von Java als Programmiersprache<br />

nieder, verhindert aber gleichzeitig<br />

eine Integration in den <strong>Linux</strong>-Kernel. Das<br />

Dateisystem greift daher auf das Userspace-Dateisystem<br />

Fuse [10] zurück.<br />

Obwohl Performance nicht das Hauptaugenmerk<br />

der Entwickler ist, empfehlen<br />

Abbildung 3: Das in Java umgesetzte Admin-GUI von FHG-FS heißt Admon. Es hilft bei der Installation, der<br />

Administration der <strong>Die</strong>nste und gibt Informationen zum Dateisystem aus.


sie doch, möglichst aktuelle Fuse-Bibliotheken<br />

zu verwenden.<br />

Das Fraunhofer-FS hingegen ist in C<br />

geschrieben, was unter anderem einen<br />

schnelleren Client im Kernel-Mode möglich<br />

macht. <strong>Die</strong> teilweise proprietäre Lizenzierung<br />

verhindert aber den Einbau in<br />

den Mainline-Kernel. Das Programmpaket<br />

kann aber vorhandene Schnittstellen<br />

benutzen, um das entsprechende Modul<br />

zu bauen. Dazu darf der <strong>Linux</strong>-Kernel<br />

nicht älter als Version 2.6.16 sein.<br />

Java im GUI<br />

An anderer Stelle verwendet aber auch<br />

FHG-FS Java – beim Admin-GUI (Abbildung<br />

3). Es vereinfacht die Installation<br />

der Software, die Integration neuer Rechner,<br />

das Starten und Stoppen von Instanzen<br />

und gibt sogar Einblick in Statistiken<br />

des Dateisystems. Eine Anforderung der<br />

Xtreem-FS-Entwickler war die Skalierbarkeit<br />

auf WAN-Ebene.<br />

Das Schicken von Daten über öffentliche<br />

Netzwerke ruft selbstverständlich Sicherheitsexperten<br />

und Datenschützer auf den<br />

Plan, deshalb erhielt das Dateisystem ein<br />

SSL-Modul. Das kann der Admin in zwei<br />

Modi betreiben: Zum Authentisieren oder<br />

zum Verschlüsseln der Kommunikationskanäle.<br />

<strong>Die</strong> notwendigen Zertifikate müssen<br />

lokal vorliegen, eine Integration in<br />

vorhandene PKIs ist nicht möglich. Das<br />

Verschlüsseln der Kommunikation erfolgt<br />

nach dem Prinzip „Alles oder Nichts“.<br />

Daher müssen alle Xtreem-FS-Komponenten<br />

die zugehörigen Zertifikate lokal<br />

installiert haben.<br />

<strong>Die</strong>s hat einen faden Beigeschmack, da<br />

insbesondere die Clientrechner möglicherweise<br />

in Bereichen mit recht niedrigem<br />

Sicherheitslevel stehen. Glücklicherweise<br />

lassen sich die Zertifikate mit<br />

Passwörtern schützen. Dabei gibt sich<br />

die Software aber eine peinliche Blöße:<br />

Solange der Client Zugriff auf Xtreem-FS<br />

hat, läuft ein entsprechender Mountprozess,<br />

und in dessen Parameterliste taucht<br />

das Passwort im Klartext auf.<br />

Alter Andrew<br />

Der Aufschwung verteilter Dateisystem in<br />

den letzten Jahren ist genau genommen<br />

schon der zweite – wenn nicht sogar<br />

dritte – Frühling dieser Technologie. Das<br />

Zusammenfassen lokaler Verzeichnisse<br />

in einem gemeinsamen Namensraum<br />

ist nicht wirklich neu, auch nicht unter<br />

<strong>Linux</strong>. Wer schon länger in der IT unterwegs<br />

ist, hat sicher schon vom Andrew<br />

File System (AFS) gehört.<br />

<strong>Die</strong> Entwicklung begann an der Carnegie<br />

Mellon Universität als Teil des<br />

Andrew-Projekts. Nach einer kommerziellen<br />

Phase in den 1990ern veröffentlichte<br />

IBM im Jahr 2000 schließlich den<br />

Quelltext. <strong>Die</strong>ser Termin gilt heute als<br />

Geburtsstunde von Open AFS, das unter<br />

IBM Public License steht. Analog zu<br />

Xtreem-OS und Xtreem-FS war AFS als<br />

Dateisystem-Überblick 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

27<br />

<strong>Die</strong> heute führenden Spezialisten stammen oft aus der "Freie Software-Szene" und schulen seit<br />

Jahren im <strong>Linux</strong>hotel. Das erklärt die Breite und Qualität unseres Schulungsangebotes:<br />

AJAX * Amavis * Android * Angriffstechniken * Apache * Asterisk * BaseX * BayesianAnalysis * Bind * C/C++ * Cassandra *<br />

CiviCRM * Cloud * Cluster * ClusterFS * CouchDB * CSS3 * CUPS * Debian * DHCP * DNS * DNSSEC * Echtzeit <strong>Linux</strong> *<br />

Embedded <strong>Linux</strong> * eXist-db * Faces * FAI * Firewall * Forensik * FreeBSD * FreeRADIUS * GeoExt * Git * Grails * GRASS *<br />

Groovy * hadoop * Hochverfügbarkeit * HTML5 * Hudson * iSCSI * IPv6 * ITSM * Java * JavaScript * Jenkins * Kernel * KVM<br />

* LDAP * LibreOffice * <strong>Linux</strong> * LPI * m23 * MacOSX * MapFish * Mapserver * Maven * Mikrocontroller * MVS/380 * MySQL *<br />

Nagios * Node.js * OpenBSD * OpenLayers * OpenOffice * openQRM * OpenVPN * OPSI * OSGi * OTRS * Perl * PHP *<br />

Postfix * PostgreSQL * Puppet * Python * QuantumGIS * R * Rails * RedHat * Routing * Request-Tracker RT * Ruby * Samba<br />

* SAN * Scala * Scribus * Shell * Sicherheit * SNMP * Spacewalk * Spamfilter * SQL * Struts * Subversion * SuSE * TCP/IP *<br />

Tomcat * Treiber * TYPO3 * Ubuntu * UML * Unix * Univention * Virenfilter * Virtualisierung * VoIP * WebGIS * Webservices *<br />

Windows Autoinstall * Windowsintegration * x2go * xen * XML * Xpath * Xquery * z/OS * Zabbix * Zend<br />

Fast 100% der Teilnehmer empfehlen uns weiter. Siehe www.linuxhotel.de<br />

Ja, wir geben es zu und haben überhaupt kein schlechtes Gewissen dabei: Unsere Schulungen machen auch Spaß ;-)


Titelthema<br />

www.linux-magazin.de Dateisystem-Überblick 02/2013<br />

28<br />

verteiltes Dateisystem nur als Hilfsmittel<br />

für das eigentliche Projekt gedacht. Ziel<br />

von Andrew war es, Dokumente, Programme<br />

und E-Mails einfach und sicher<br />

auszutauschen.<br />

Auch bei AFS und Open AFS gibt es Fileserver,<br />

deren Aufgabe das Verwalten der<br />

Dateien ist. Dafür läuft eine Reihe von<br />

Prozessen, die jeweils spezielle Aufgaben<br />

haben. Dazu gehören die Verwaltung des<br />

Platzes an sich, aber auch das Anfertigen<br />

und Verfolgen von (Sicherungs-)Kopien<br />

und die Zugriffskontrolle. Im Grunde besteht<br />

der Namensraum von (Open) AFS<br />

aus zwei Teilen: Auf den globalen Part<br />

können alle Rechner im Verbund zugreifen,<br />

er ist über einen einheitlichen Pfad<br />

zu erreichen. Jeder Client verfügt zudem<br />

Im HPC-Umfeld gibt es mit Lustre ebenfalls<br />

seit einiger Zeit ein gestandenes<br />

verteiltes Dateisystem. <strong>Die</strong> bewegte<br />

Geschichte dieses Softwareprojekts begann<br />

ebenfalls an der Carnegie Mellon<br />

Universität. Es folgte der Erwerb durch<br />

Sun Microsystems 2007 und der Aufkauf<br />

durch Oracle im Jahr 2010, dann das Hin<br />

und Her bezüglich des Supports von beüber<br />

einen lokalen Teil und verwaltet<br />

dort Daten, die nur für diesen Rechner<br />

von Interesse sind.<br />

Von jeher sind AFS-Verbünde recht groß,<br />

Tausende von Clientrechnern sind keine<br />

Seltenheit. Damit das Dateisystem für die<br />

verschiedenen Bedürfnisse und Anforderung<br />

verwaltbar ist, findet typischerweise<br />

eine Unterteilung in so genannte Zellen<br />

statt. <strong>Die</strong> Administration und Konfiguration<br />

von Zelle A ist dabei weitestgehend<br />

unabhängig von Zelle B.<br />

Aus Performancegründen cachen die<br />

Clients sehr stark. Lese- und Schreibzugriffe<br />

finden somit lokal statt. Änderungen<br />

an den Daten auf dem Client teilt der<br />

so genannte Cache-Manager dem Server<br />

mit. Er trägt auch dafür Sorge, dass die<br />

lokalen Daten ausreichend aktuell sind.<br />

So kann der AFS-Anwender sogar auf Daten<br />

zugreifen, wenn der entsprechende<br />

Server gerade nicht verfügbar ist. Das Sicherheitskonzept<br />

des Dateisystems beruht<br />

auf Kerberos und Zugriffskontrolllisten.<br />

Noch ein Senior: Lustre<br />

Tabelle 1: Verteilte Dateisysteme für <strong>Linux</strong> im Vergleich<br />

Eigenschaft<br />

Ceph und Ceph- Gluster-FS Xtreem-FS FHG-FS Lustre Open AFS<br />

FS<br />

Lizenz GPL GPL BSD GPL, ​FHG FS EULA GPL IBM Public License<br />

Server<br />

Server-Implementierung Usermode Usermode Usermode Usermode Usermode Usermode<br />

Sprache C C Java Java und C C C<br />

Server-Plattform <strong>Linux</strong> <strong>Linux</strong> <strong>Linux</strong> <strong>Linux</strong> <strong>Linux</strong>, Solaris <strong>Linux</strong>, Unix<br />

Zugriffsprotokoll(e) nativ nativ und NFS nativ nativ nativ nativ<br />

Blockgeräte-Zugriff ja nein nein nein nein nein<br />

Qemu-Integration ja nein (in Arbeit) nein nein nein nein<br />

Interconnect IP-basiert IP-basiert und<br />

Infiniband<br />

Dateiverschlüsselung nein nein (Prototyp<br />

vorhanden)<br />

IP-basiert<br />

IP-basiert und<br />

Infiniband<br />

IP-basiert und<br />

Infiniband<br />

nein nein nein nein<br />

Backend-Dateisystem XFS, Btr-FS, Ext 4 XFS, Ext 4 beliebig XFS, Ext 4 Ldisk-FS (Ext 4),<br />

ZFS<br />

Speicherobjekt<br />

Stripe<br />

(4096 KByte)<br />

Datei (außer<br />

beim Striping)<br />

Stripe<br />

(128 KByte)<br />

Stripe<br />

(512 KByte)<br />

Stripe<br />

(4096 KByte)<br />

Online-Größenänderung ja ja ja ja ja ja<br />

NAS-Ersatz ja ja ja ja ja ja<br />

SAN-Ersatz ja nein (in Arbeit) nein nein nein nein<br />

Ausfallsicherheit ja ja ja nein (geplant) ja ja<br />

GUI verfügbar nein ja (kommerziell) teilweise ja teilweise nein<br />

Hadoop-Integration ja ja ja k.A. ja ja<br />

Open-Stack-Integration ja ja nein (theoretisch<br />

möglich)<br />

Produktionsreif<br />

Client<br />

Client-Implementierung<br />

Blockgeräte-<br />

Schicht<br />

Kernel- und Usermode<br />

Client-Plattform <strong>Linux</strong> <strong>Linux</strong>, Unix <strong>Linux</strong>, Mac OS X,<br />

Windows<br />

nein (theoretisch<br />

möglich)<br />

nein (theoretisch<br />

möglich)<br />

IP-basiert<br />

Ext 2, ​3, ​4, XFS,<br />

JFS, …<br />

Datei<br />

nein (theoretisch<br />

möglich)<br />

Posix-Schicht n /​a Posix-Schicht Posix-Schicht Dateisystem-<br />

Schicht<br />

Usermode Usermode Kernelmode Kernelmode Kernelmode<br />

<strong>Linux</strong> <strong>Linux</strong>, Solaris <strong>Linux</strong>, Unix, Mac<br />

OS X, Windows<br />

Posix-konform ja größtenteils größtenteils ja ja nein<br />

WAN-Verteilung nein ja nein nein nein ja<br />

Enterprise-Support ja ja nein ja ja ja<br />

Integration in Enterprise-<br />

<strong>Linux</strong><br />

ja ja nein nein nein nein


stimmten Versionen. Seit 2011 fährt das<br />

GPLv2-lizenzierte Lustre in ruhigeren Gewässern.<br />

<strong>Die</strong> Firma Whamcloud [11] hat<br />

sich der Weiterentwicklung der Software<br />

angenommen und beschäftigt zwei der<br />

führenden Architekten.<br />

<strong>Die</strong> Architektur von Lustre folgt dem<br />

objektbasierten Ansatz. Dabei existieren<br />

separate Instanzen für Metadaten (MDS,<br />

Meta Data Server) und die eigentlichen<br />

Daten (OSS, Object Storage Server). Jeder<br />

MDS verfügt über ein MDT (Meta Data<br />

Target), das die Metadaten für Lustre<br />

speichert (Abbildung 4).<br />

Für die Daten gilt ein ähnliches Konzept:<br />

Jedes lokale Dateisystem, das der OSS<br />

für Lustre verwendet, entspricht einem<br />

OST (Object Storage Target). Zwei oder<br />

mehr OSTs pro Storage-Server sind dabei<br />

ganz normal.<br />

Punktueller Kontakt<br />

Lustre sieht prinzipiell nur einen MDS<br />

pro Verbund vor. Seine Ausfallsicherheit<br />

lässt sich mit klassischen Failover-Clustern<br />

erhöhen, der MDS bleibt aber der<br />

potenzielle Engpass, wenn viele Metadaten-Zugriffe<br />

zeitgleich erfolgen. Der<br />

SPOC-Ansatz (Single Point of Contact)<br />

von Lustre steht daher auch immer wieder<br />

in der Kritik.<br />

Zum Abspeichern der Daten auf den OSS<br />

verwendet Lustre typischerweise entweder<br />

Ext 3, Ext 4 oder ZFS – eventuell in<br />

etwas modifizierter Version. Im Falle von<br />

ZFS ist die Posix-Schicht ZPL (ZFS Posix<br />

Layer) überhaupt nicht erforderlich, denn<br />

Lustre interagiert direkt mit der ZFS-DMU<br />

(Data Management Unit). Neben dem<br />

Standard-Ext-4 kann der Admin auch<br />

eine angepasste Variante von Ext 3, das<br />

LDISKFS (Lustre DISK File System), einsetzen.<br />

Ziel dieses Backend-Dateisystems<br />

ist es, einige Schwächen von Ext 3 zu<br />

eliminieren. So findet die Allokierung der<br />

Blöcke für den Schreibzugriff im Vorhinein<br />

statt. <strong>Die</strong> Reservierung an sich erfolgt<br />

in größeren Einheiten – ähnlich dem<br />

Extent-basierten Ansatz von Ext 4.<br />

In der Standardkonfiguration legt Lustre<br />

alle Daten einer Datei auf einem OST ab<br />

und unterteilt sie in 1 MByte große Stücke.<br />

Das Verteilen über mehrere OST ist<br />

ebenfalls möglich und sogar empfohlen.<br />

Ohne dieses Striping ist die Größe eines<br />

Objekts in Lustre durch die Größe des<br />

Backend-Dateisystems limitiert. Im anderen<br />

Falle liegt das (theoretische) Limit<br />

bei zirka 30 Petabyte.<br />

Neben MDS und OSS gehören noch zwei<br />

weitere Komponenten zu Lustre: die Management<br />

Server (MGS) und das Lustre<br />

Network (LNET). <strong>Die</strong> MGS verwalten die<br />

Informationen über den Lustre-Verbund.<br />

Sie erhalten die notwendigen Daten von<br />

den anderen Komponenten und sind der<br />

erste Anlaufpunkt für die Clients. Analog<br />

zu den MDS muss der Admin auf externe<br />

Methoden zur Erhöhung der Ausfallsicherheit<br />

zurückgreifen. Aus Kostengründen<br />

hat sich dabei eine Doppelnutzung<br />

der Failover-Cluster bewährt: Der passive<br />

Knoten für Lustre-Verbund A ist der aktive<br />

für Lustre-Verbund B. Das LNET ist<br />

eine Schnittstelle für die Kommunikation<br />

mit den OSS und MDS. Es stellt eine Abstraktionsschicht<br />

über der eigentlichen<br />

Netzwerk-Topologie dar und vereinfacht<br />

die Sichtweise für Lustre. LNET unterstützt<br />

Ethernet und Infiniband.<br />

Grüne Wiese oder Spezialist?<br />

<strong>Die</strong> Auswahl an verteilten Dateisystemen<br />

für <strong>Linux</strong> ist ansehnlich, ihre Eignung für<br />

bestimmte Anwendungsszenarien unterschiedlich:<br />

Wer auf der grünen Wiese<br />

anfängt, sollte Ceph und Gluster bevorzugen.<br />

Deren Integration in Enterprise-<br />

Distributionen von <strong>Linux</strong> erleichtert ihren<br />

Einzug ins Rechenzentrum erheblich,<br />

und das aus technischer wie operativer<br />

Sicht. <strong>Die</strong> Verwendung als Unterbau für<br />

Hadoop oder die Virtualisierung sind<br />

weitere Pluspunkte, die sie für sich verbuchen<br />

können.<br />

Um Daten recht einfach, plattformübergreifend<br />

und in großen Netzwerken auszutauschen,<br />

sind Xtreem-FS oder der Veteran<br />

Open AFS prima Kandidaten. Liegt<br />

der Schwerpunkt bei Leistung im HPC-<br />

Sinne, gilt Lustre als gesetzt, ein Blick auf<br />

FHG-FS lohnt aber auch. (mhu) n<br />

Dateisystem-Überblick 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

29<br />

MDS<br />

MGS<br />

Metadaten-Operation<br />

OSS<br />

Verbund-<br />

Informationen<br />

Clients<br />

Infos<br />

[1] Gluster-FS: [http:// www. gluster. org]<br />

[2] Ceph: [http:// www. ceph. com]<br />

[3] Xtreem-FS: [http:// www. xtreemfs. org]<br />

[4] FHG-FS: [http:// www. fhgfs. com]<br />

[5] Lustre: [http:// wiki. lustre. org]<br />

[6] Open AFS: [http:// www. openafs. org]<br />

[7] Xtreem-OS [http:// www. xtreemos. eu]<br />

[8] Lizenz des FHG-FS: [http:// www. fhgfs.​<br />

com/ docs/ FraunhoferFS_EULA. txt]<br />

[9] Babu DB:<br />

[http:// code. google. com/ p/ babudb]<br />

[10] Fuse: [http:// fuse. sourceforge. net]<br />

[11] Whamcloud: [http:// wiki. whamcloud. com]<br />

Datenoperation<br />

Server<br />

Abbildung 4: Lustre folgt dem objektbasierten Storage-Ansatz. Es speichert die Daten in den OSS, die Metadaten<br />

liegen in der separaten Instanz MDS. Der Management-Server MGS verwaltet das Dateisystem.<br />

Der Autor<br />

Dr. Udo Seidel ist eigentlich Mathe-Physik-Lehrer,<br />

seit 1996 <strong>Linux</strong>-Fan und arbeitete als <strong>Linux</strong>/​Unix-<br />

Trainer, Systemadministrator und Senior Solution<br />

Engineer. Heute ist er Leiter eines ​Unix-Teams bei<br />

der Amadeus Data Processing GmbH in Erding.


1blu-Serveroffensive!<br />

Jeder Server 6 Monate lang für nur 1,- ¤/Monat*<br />

> RootServer > vServer > ManagedServer<br />

Server-Standort<br />

Frankfurt am Main<br />

direkt am DE-CIX<br />

Service-Standort<br />

Deutschland!<br />

1blu-vServer 8P<br />

8-Kern-Hochleistungsprozessor und 12 GB RAM<br />

> Bis zu 8 CPU-Kerne nutzen<br />

> 12 GB RAM garantiert, 24 GB RAM max.<br />

> 6 IP-Adressen, 500 GB HDD, Traffic inklusive<br />

> cloud-ready: CPU, RAM, HDD flexibel buchen<br />

1,-<br />

¤ /Monat*<br />

Ganze 6 Monate lang!<br />

Weitere Server-Angebote für 1,- ¤/Monat*<br />

1blu-RootServer 6P<br />

> 6 vCores, 24 GB RAM, 1.000 GB HDD<br />

> 4 IP-Adressen, Traffic inklusive<br />

> VNC-Fernsteuerung, eigene ISO-Images<br />

1,-<br />

¤ /Monat*<br />

1blu-ManagedServer XXL<br />

> Eigene virtuelle Serverumgebung mit 8 GB RAM<br />

> Komfortable Verwaltung über Webinterface<br />

> 200 GB Speicherplatz, 5.000 GB Traffic inklusive<br />

1,-<br />

¤ /Monat*<br />

* Preis/Monat inkl. 19% MwSt. Angebote verfügbar ab Anfang Januar 2013 (Näheres unter www.1blu.de). Bei Bestellung bis 31.01.2013 jeder 1blu-Server mit einer Vertragslaufzeit von 12 Monaten<br />

für 1,- €/Monat in den ersten 6 Monaten; danach jeweils regulärer Preis/Monat (z.B. 1blu-vServer LP 7,90 €, 1blu-vServer 8P 49,- €, 1blu-RootServer 2P 24,90 €, 1blu-RootServer 6P 59,90 €,<br />

1blu-ManagedServer A 14,90 €, 1blu-ManagedServer XXL 119,- €). Es fällt keine Einrichtungsgebühr bei einer Vertragslaufzeit von 12 Monaten an. Verträge jeweils jederzeit kündbar mit einem<br />

Monat Frist zum Ende der Vertragslaufzeit. Alle Preisinformationen und Angebote für andere Vertragslaufzeiten siehe www.1blu.de. Bei Software-Bestellung 7,90 € Versandkosten.<br />

030 - 20 18 10 00 | www.1blu.de


Titelthema<br />

www.linux-magazin.de Ceph und Gluster 02/2013<br />

30<br />

Newcomer: Ceph und Gluster-FS<br />

Speicher satt<br />

Riesige und ausbaufähige Speicher sind das A und O in modernen Unternehmen. NAS und SAN sind der Standard,<br />

doch Trends wie Cloud Computing und Big Data lassen die Grenzen zwischen Storage und Server verschwimmen<br />

und bringen neue Ansätze hervor. Udo Seidel<br />

© Olena Buyskyh, 123RF.com<br />

Daten im Netz verteilt abzulegen bringt<br />

dem Administrator viele Vorteile: Es ist<br />

einfach sicherer, schneller und flexibler<br />

als jeder Fileserver. Fast alle im Storage-<br />

Umfeld tätigen Hersteller bieten entsprechende<br />

Produkte an, viele davon erfolgreich.<br />

<strong>Die</strong> <strong>Linux</strong>-Unix-Community hatte<br />

mit dem Andrew File System (AFS, [1])<br />

einen technischen Vorreiter in den eigenen<br />

Reihen. Und sie generierte – wie so<br />

oft typisch für Open Source – gleich unzählige<br />

interessante Projekte: Ceph [2],<br />

Gluster [3], Xtreem-FS [4], FHG-FS [5]<br />

sind die wichtigsten.<br />

Gemeinsame Ansätze<br />

Trotz vieler Gemeinsamkeiten rund um<br />

die verteilte Datenspeicherung unterscheiden<br />

sich die Produkte nicht nur in<br />

technischen Belangen, sondern gerade in<br />

ihrer Ausrichtung und der ursprünglichen<br />

Motivation der Entwickler: Xtreem-FS ist<br />

quasi ein Nebenprodukt eines europäischen<br />

Grid-Computing-Projekts mit dem<br />

Betriebssystem Xtreem-OS [6]. Bei FHG-<br />

FS hat die Performance eine höhere Priorität<br />

als beispielsweise die Ausfallsicherheit.<br />

Gluster und Ceph haben besonders<br />

viele Benutzer gewinnen können, nicht<br />

zuletzt weil Enterprise-<strong>Linux</strong>-Distributoren<br />

darauf basierende Produkte auf den<br />

Markt gebracht haben ([7], [8]) oder<br />

daran arbeiten ([9], [10]).<br />

Datenspeicher im Netz<br />

Lokale Dateisysteme ohne Netzwerkfunktion<br />

hat das <strong>Linux</strong>-<strong>Magazin</strong> in einer<br />

der letzten Ausgaben [11] unter die Lupe<br />

genommen. <strong>Die</strong> in diesem Artikel behandelten<br />

Ablagen entspringen alle der<br />

Familie der so genannten Shared File Systems,<br />

bei denen zwei oder mehr Rechner<br />

Zugriff auf dieselben Daten haben. Dafür<br />

verwenden die Entwickler grundverschiedene<br />

Implementierungsansätze.<br />

<strong>Die</strong> bekanntesten Network-Filesysteme<br />

basieren auf Netzwerkprotokollen wie<br />

den verschiedenen Versionen von NFS<br />

([12] bis [14]) sowie CIFS oder SMB-FS<br />

[15]. Einen ähnlichen Ansatz verfolgen<br />

die so genannten parallelen oder auch<br />

verteilten Cluster-Dateisysteme, die vor<br />

allem in Hochverfügbarkeitsszenarien<br />

Einsatz finden. Hierher gehören Lustre<br />

[16], Google-FS [17] und Moose-FS [18].<br />

Bei der zweiten Untergruppe, den Shared-<br />

Disk-Cluster-Dateisystemen wie GFS2<br />

[19] und OCFS2 [20] haben dagegen die<br />

Mitgliedserver des Clusters Datenzugriff<br />

auf Blockgerät ebene.<br />

Verteilte Dateisysteme<br />

trennen Daten von Metadaten<br />

Anders die neue Generation der verteilten<br />

Dateisysteme: Sie setzt auf eine Trennung<br />

der Verwaltung der Daten selbst und die<br />

der Metadaten, etwa der Dateirechte oder<br />

Dateinamen, also ähnlich wie bei den in<br />

einer Inode des lokalen FS gespeicherten<br />

Daten. Für Operationen wie Löschen<br />

oder Umbenennen kommuniziert der<br />

Rechner mit den Metadaten-Instanzen<br />

des verteilten Systems. Das Lesen und<br />

Schreiben der eigentlichen Daten findet<br />

auf den Storage-Komponenten statt, hier<br />

kommt der objektbasierte Ansatz zur<br />

Datenverwaltung ins Spiel.<br />

Zum gegenwärtigen Zeitpunkt gibt es besonders<br />

zwei große Anwendungsgebiete<br />

für verteilten Storage: zum einen als Ersatz<br />

für die traditionellen NAS-Lösungen,<br />

zum anderen als unbegrenzten, skalier-


aren, sicheren und flexiblen Datenspeicher<br />

für virtuelle Server.<br />

Intelligenter Speicher<br />

Bis zur Jahrtausendwende war Storage<br />

nicht sonderlich intelligent. Den Großteil<br />

der zur Speicherung von Daten relevanten<br />

Aufgaben erledigten Programme<br />

und Controller-Hardware außerhalb der<br />

Platte. <strong>Die</strong> Schnittstelle war einfach und<br />

mit Standards wie SCSI dokumentiert.<br />

<strong>Die</strong> zunehmende Leistungsstärke der<br />

Storage-Hardware warf aber die Frage<br />

neu auf, welche Aufgaben ein Fileserver<br />

übernehmen kann und soll. War bislang<br />

der Rechner für die Speicherverwaltung<br />

verantwortlich, sollte dies künftig der<br />

Storage selbst erledigen.<br />

Im neuen Ansatz tauschen sich Rechner<br />

und Speicher nicht mehr über Blöcke,<br />

sondern über so genannte Storage-Objekte<br />

aus. Blockallokierung und Platzverwaltung<br />

erledigt der Storage, nicht mehr<br />

der Rechner. <strong>Die</strong> Objekte sind recht allgemeinen<br />

Charakters, es können einfache<br />

Dateien, aber auch Partitionen sein. <strong>Die</strong><br />

entsprechende Erweiterung des SCSI-<br />

Standards – die Object-based Storage Device<br />

(OSD) Commands – genehmigte das<br />

T10-Kommitee des Incits (International<br />

Committee for Information Technology<br />

Standards) im Jahre 2004 [21].<br />

Seit Kurzem ist die zweite Generation des<br />

OSD-Standards fertig und verabschiedet<br />

[22]. Er versieht jedes Objekt mit einer<br />

64-bittigen Partitions-ID und einer 64-bittigen<br />

Objekt-ID. Der Zugriff des Rechners<br />

auf die Daten erfolgt über diese IDs. <strong>Die</strong><br />

bekannten Datei-Operationen funktionieren<br />

wie gehabt, die Verwaltung erledigt<br />

aber OSD und nicht mehr der am Storage<br />

angeschlossene Rechner. <strong>Die</strong> von<br />

traditionellen Inode-basierten Dateisystemen<br />

bekannten Metadaten sind direkt im<br />

OSD-Objekt gespeichert, da sie aber nur<br />

für den angeschlossenen Rechner von Bedeutung<br />

sind, interpretiert die OSD-Platte<br />

diese erst gar nicht (Abbildung 1).<br />

Krakenhaft, aber GPL: Ceph<br />

Der Name des Dateisystems hat seinen<br />

Ursprung im Tierreich. Ceph ist eine gebräuchliche<br />

Bezeichnung für einen als<br />

Haustier gehaltenen Kraken, den Cephalopoden.<br />

<strong>Die</strong> Fähigkeit der Tiere, viele<br />

Tätigkeiten gleichzeitig<br />

auszuführen, erinnerte<br />

die Entwickler<br />

an die gewünschte<br />

hohe Parallelität ihres<br />

Dateisystems.<br />

Der Initiator Sage Weil<br />

begann das Projekt<br />

als Teil seiner Doktorarbeit<br />

an der University<br />

of California in<br />

Santa Cruz. Im Jahr<br />

2006 stellte er es auf<br />

der Usenix-Konferenz<br />

OSDI erstmals vor, seit<br />

Version 2.6.34 ist der<br />

Posix-Client offizieller<br />

Bestandteil des <strong>Linux</strong>-<br />

Kernels.<br />

In der Folge konzentrierten<br />

sich die<br />

Entwickler auf den<br />

Ausbau der Datenmaschinerie<br />

von Ceph.<br />

Insider kennen sie unter<br />

dem Name Rados<br />

(Reliable Autonomic<br />

Distributed Object<br />

Storage, [23]). Seit<br />

Kernel 2.6.37 kann der<br />

Anwender über eine<br />

Block geräte-Schnittstelle – also ohne die<br />

Posix-Schicht – Daten in Ceph verwalten.<br />

<strong>Die</strong> Tatsache, dass Ceph Bestandteil des<br />

<strong>Linux</strong>-Kernels ist, impliziert die Implementierung<br />

in C und unter der GPL.<br />

FHG und Gluster<br />

GNU GENERAL<br />

PUBLIC LICENSE<br />

Version 3, 29 June 2007<br />

Copyright © 2007<br />

Free Software<br />

Foundation,<br />

Inc. <br />

Everyone is permitted<br />

to copy and distribute<br />

verbatim copies of this<br />

license document, but<br />

changing it is not<br />

allowed.<br />

[...]<br />

Objekt<br />

<strong>Die</strong>s trifft übrigens für alle Komponenten<br />

des Dateisystems zu und ist nicht bei<br />

allen verteilten Dateisystemen der Fall.<br />

Bei FHG-FS beispielsweise steht nur der<br />

Client unter der GPL, nicht aber die restlichen<br />

Bestandteile. <strong>Die</strong> Entwicklung von<br />

Gluster-FS (Abbildung 2) begann mehr<br />

oder weniger hinter den verschlossenen<br />

Türen der gleichnamigen Firma. Mit der<br />

Übernahme durch Red Hat im Oktober<br />

2011 änderte sich dies aber grundlegend.<br />

Seit Januar 2012 gibt es ein Board und<br />

einen Community-Manager. Beide bemühen<br />

sich vor allem um erhöhte Präsenz<br />

von Gluster-FS in Distributionen.<br />

Im Gegensatz zu Ceph (Abbildung 3) ist<br />

das verteilte Dateisystem aus dem Hause<br />

Red Hat aber nicht Bestandteil des <strong>Linux</strong>-<br />

Objekt<br />

Objekt<br />

Objekt<br />

Objekt<br />

Objekt<br />

Objekt<br />

root:root<br />

0755<br />

24-12-2012<br />

gpl_v3.txt<br />

Daten<br />

Objekt<br />

Kernels und lebt komplett im Userspace.<br />

Obwohl ebenfalls modular aufgebaut, ist<br />

ein Betrieb ohne die Posix-Schicht nicht<br />

möglich. Projekte wie Heka-FS ([24],<br />

früher Cloud-FS) setzen auf Gluster-FS<br />

auf und fügen diesem interessante Funktionen<br />

hinzu, im Falle von Heka-FS ist<br />

dies die Mandantenfähigkeit.<br />

Unter den Objekten: XFS,<br />

Ext 4 oder Btr-FS<br />

ID<br />

Metadaten<br />

Attribute<br />

Abbildung 1: Bei der objektbasierten Datenverwaltung interessieren den<br />

Server die Metadaten des FS nicht.<br />

Moderne verteilte Dateisysteme basieren<br />

letztlich auf den Ideen der objekt basierten<br />

Datenverwaltung. Folglich gibt es ab einer<br />

gewissen Abstraktionsschicht viele Gemeinsamkeiten.<br />

So arbeiten sie alle nach<br />

dem Client-Server-Modell, aber auch eine<br />

Schicht tiefer hören die Gemeinsamkeiten<br />

nicht auf. Ceph und Gluster-FS verfügen<br />

beide über Speicherinstanzen, die für das<br />

Lesen und Schreiben der Daten zuständig<br />

sind. Für diese Aufgabe verwenden die<br />

OSDs (Ceph) beziehungsweise Storage-<br />

Bricks (Gluster-FS) ein ganz ordinäres<br />

<strong>Linux</strong>-Dateisystem.<br />

Ceph und Gluster 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

31


Titelthema<br />

www.linux-magazin.de Ceph und Gluster 02/2013<br />

32<br />

Metadaten-I/O<br />

Storage-Instanzen<br />

Daten-I/O<br />

»/data/export1« »/data/export2« »/data/export3« »/data/export4«<br />

NFS<br />

Gluster<br />

Gluster-FS<br />

Gluster-FS-Clients<br />

Server<br />

Abbildung 2: Gluster-FS wird vor allem von Red Hat getrieben, ist aber noch nicht im <strong>Linux</strong>-Kernel angekommen. Als Fallback für den Client dient NFS.<br />

Für den Einsatz in produktiven Umgebungen<br />

empfehlen beide Projekte wärmstens<br />

XFS [25], erlauben aber auch die<br />

Verwendung von Ext 4 [26]. <strong>Die</strong> Ceph-<br />

Entwickler favorisieren mittelfristig das<br />

<strong>Linux</strong>-Dateisystem der Zukunft: Btr-FS<br />

[27]. <strong>Die</strong> Speicherinstanz selbst läuft als<br />

ganz normaler Prozess im Userspace.<br />

Ein Tintenfisch-Verwalter<br />

oder einfach ohne?<br />

Eine weitere gemeinsame Komponente<br />

verteilter Dateisysteme ist der Metadaten-<br />

Verwalter. <strong>Die</strong> Implementierung ist aber<br />

teilweise unterschiedlich. Bei Ceph gibt<br />

es dedizierte Serverinstanzen, die Metadaten<br />

lesen und schreiben, aber auch<br />

bereitstellen und empfangen.<br />

<strong>Die</strong> Performance der Metadaten-Verwaltung<br />

erweist sich oft als Engpass. Ceph<br />

umgeht dies durch gewichtete Lastverteilung<br />

über mehrere Server mit teilweise<br />

überlappenden Verantwortlichkeiten.<br />

Gluster-FS wählt einen anderen Weg und<br />

benutzt keinen expliziten Serverprozess.<br />

Verteilte Hashtabelle in Gluster-FS<br />

Distributed Hashtables verwenden so genanntes<br />

konsistentes Hashing. Ganz allgemein ordnet<br />

Gluster-FS jedem Datenobjekt zunächst<br />

einen Hashwert zu. Anhand dieses Hash entscheidet<br />

das Dateisystem, welcher Storage-<br />

Server für die Daten zuständig ist. Für die<br />

Partitionierung des Namensraums verwendet<br />

Gluster-FS dessen Dateinamen beziehungsweise<br />

den Hashwert.<br />

Metadaten wie Zeitstempel oder Zugriffsrechte<br />

liest das Dateisystem einfach 1:1<br />

aus dem Backend-Dateisystem. Gluster-<br />

FS-spezifische Informationen muss das<br />

Dateisystem nicht nachschauen, sondern<br />

berechnet sie gegebenenfalls (siehe Kasten<br />

„Verteilte Hashtabelle ...“). Sowohl<br />

Ceph als auch Gluster-FS verwenden<br />

keinen eigenen Speicher zum Ablegen,<br />

sondern nutzen OSDs beziehungsweise<br />

die Storage-Bricks.<br />

Monitoring<br />

Der aktuelle Zustand der Server im Dateisystemverbund,<br />

also die Information,<br />

welche Server welche Aufgaben wahrnehmen<br />

sollen und ob sie das auch tun,<br />

ist wichtig für den reibungslosen Betrieb.<br />

Bei Ceph gibt es so genannte Monitor-<br />

Instanzen, die diese Überwachungsfunktion<br />

wahrnehmen. Gluster-FS ist weniger<br />

umsichtig und verteilt die Überwachung<br />

und Handlungsprozeduren auf Serverund<br />

Client-Komponenten. Fällt eine Storage-Instanz<br />

weg, dann muss der Admin<br />

Verändert sich die Anzahl der Storage-Server<br />

oder der Name des Datenobjekts, dann wird<br />

das Umverteilen der Daten nötig. Der sauberste<br />

Weg wäre das Kopieren oder Verschieben der<br />

entsprechenden Objekte. Da dies aber auch<br />

dank neu zu erzeugender Hashes nicht unbedingt<br />

der performanteste Ansatz ist, wählt<br />

Gluster-FS einen Kompromiss und „verlinkt“<br />

den Storage-Server.<br />

manuell den gewünschten Replikations-<br />

Level erneut herstellen – Ceph erledigt<br />

dies automatisch.<br />

Eine weitere ähnliche Komponente der<br />

Architekturen von Ceph und Gluster-<br />

FS liegt außerhalb des Serverteils: der<br />

Client. Um auf die Dateisystemschicht<br />

zuzugreifen, verfügen beide über eine<br />

Fuse-basierte Implementierung. Wie bereits<br />

weiter oben erwähnt, kann Ceph<br />

bei neueren Kerneln auch auf dessen<br />

Userspace-Anteil verzichten. Außerdem<br />

erlaubt der Krake den direkten Zugriff auf<br />

die Storage-Schicht und eröffnet damit<br />

ganz neue Möglichkeiten.<br />

Um erfolgreich zu sein, muss sich ein<br />

Softwareprojekt in das vorhandene Ökosystem<br />

integrieren. Für verteilte Datenspeicher<br />

bedeutet das Kompatibilität zu<br />

Hadoop [28], Open Stack [29] und<br />

Cloudstorage wie Amazons S3 [30]. Bei<br />

der Pflicht leistet sich keiner der Kandidaten<br />

eine Schwäche, aber in der Kür<br />

hat Ceph die Nase etwas weiter vorn.<br />

Eine REST-Schnittstelle (Representational<br />

State Transfer, [31]) gehört hier zum<br />

Lieferumfang, bei Gluster-FS ist sie noch<br />

recht jung. Außerdem kann der Admin<br />

diese bei Ceph so konfigurieren, dass sogar<br />

die von Amazon bekannten S3-Tools<br />

funktionieren.<br />

Unterschiede<br />

So viel zu den Ähnlichkeiten von Ceph<br />

und Gluster-FS. Unter der Haube offenbaren<br />

sich gravierende Unterschiede: Das


Ceph-Cluster-<br />

Monitor<br />

Metadaten-<br />

Instanz des<br />

Cluster<br />

OSD-Cluster<br />

eigentliche Herzstück von Ceph ist der<br />

Datenspeicher Rados [23]. Dessen Kernkomponente<br />

wiederum ist der Crush-Algorithmus<br />

(Controlled Replication Under<br />

Scalable Hashing, Abbildung 4, [32]),<br />

den der Kasten „Quasi-statistische Datenhäckselei“<br />

erläutert.<br />

<strong>Die</strong> Daten einer Datei verstreut Ceph<br />

mehr oder weniger über alle vorhandenen<br />

Storage-Instanzen. Mit Hilfe von<br />

Platzierungsregeln lassen sich bestimmte<br />

Server bevorzugen und andere komplett<br />

ausschließen. Ausfallsicherheit gewährleistet<br />

Ceph durch Kopieren der Daten.<br />

Quasi-statistische Datenhäckselei<br />

Mit Crush verteilt Ceph die Daten quasi-statistisch<br />

über die OSDs. Mathematisch gesprochen<br />

und stark vereinfacht bekommt der Algorithmus<br />

einen Eingabewert n und berechnet daraus<br />

eine geordnete Liste L. Dabei ist n die<br />

so genannte Platzierungsgruppe, während L<br />

OSDs enthält.<br />

Zu speichernde Daten nimmt Ceph entgegen,<br />

unterteilt sie in handliche Häppchen von 4<br />

MByte Größe und bildet sie auf Storage-Objekte<br />

ab. Über einen Hashalgorithmus bekommt<br />

jedes Objekt nun eine der schon erwähnten<br />

Platzierungsgruppen zugewiesen. <strong>Die</strong> Platzierungsgruppen<br />

sind eine Abstraktionsschicht,<br />

um die Topologie der Storage-Server zu verbergen.<br />

Zur Berechnung der OSDs kommt Crush<br />

ins Spiel.<br />

Dazu benötigt Ceph aber noch die Antworten<br />

auf zwei Fragen: Wie sieht der aktuelle Zustand<br />

des Ceph-Clusters aus? Und welche Richtlinien<br />

regeln das Platzieren der Daten?<br />

Wie viele Kopien vorliegen, bestimmt<br />

der Admin wiederum durch Platzierungsrichtlinien.<br />

Ceph-Replikation<br />

<strong>Die</strong> Replikation erfolgt innerhalb der Storage-Server<br />

und ist für den Client vollkommen<br />

transparent, sowohl für normale<br />

Zugriffe als auch für den Fall des Ausfalls<br />

von einer oder mehreren Storage-Instanzen.<br />

Prinzipiell haben alle Mitglieder im<br />

Verbund – also Serverkomponenten und<br />

Clients – volle Sicht auf Rados und alle<br />

<strong>Die</strong>se Platzierungsregeln legen zum Beispiel<br />

fest, wie viele Kopien Ceph zur Erhöhung der<br />

Ausfallsicherheit anlegt. Hierher gehören aber<br />

auch Richtlinien, etwa dass die Kopien nicht auf<br />

dem gleichen Storage-Server (dem gleichen<br />

Rack, …, der gleichen Feuerzelle) landen.<br />

Clustermonitore<br />

Ceph<br />

Daten-Einund<br />

Ausgabe<br />

Ein- und Ausgabe<br />

von Metadaten<br />

Ceph-Clients<br />

Abbildung 3: Ceph verdankt seinem Namen vielarmigen Tintenfischen und ist voll im Kernel integriert.<br />

Den aktuellen Zustand des Ceph-Verbunds kennen<br />

die Clustermonitore. Sie verwalten die so<br />

genannte Clustermap. <strong>Die</strong>se enthält alle OSDs<br />

in einer hierarchischen, gewichteten Struktur.<br />

Fällt eine Storage-Instanz aus oder kommen<br />

neue dazu, aktualisieren die Monitore die Clustermap<br />

und geben sie an die OSDs weiter. Eine<br />

Veränderung im OSD-Verbund resultiert in den<br />

meisten Fällen in einer Umverteilung der Daten<br />

zwischen den Storage-Servern. Aufgrund der<br />

quasi-statistischen Natur von Crush muss Ceph<br />

im Schnitt nur 1/​m der Objekte umlagern, wobei<br />

m die Anzahl der beteiligten Instanzen ist.<br />

enthaltenen Objekte. Dabei existieren<br />

prinzipiell zwei Möglichkeiten: Entweder<br />

über die Ceph-Bibliothek »librados« auf<br />

die Dateien oder über das so genannte<br />

Rados-Blockgerät (RDB, Rados Block<br />

Device) auf Blocklevel zugreifen. QEMU<br />

[33] ist schon entsprechend vorbereitet<br />

und in der Lage, die Daten der virtuellen<br />

Gäste direkt in Rados abzulegen und zu<br />

verwalten.<br />

Aber auch ohne entsprechend angepasste<br />

Anwendungen ist die Storage-Maschine<br />

nutzbar – vorausgesetzt das System hat<br />

einen <strong>Linux</strong>-Kernel 2.6.37 oder neuer.<br />

Hier kann der Admin den Rados-Speicher<br />

als Blockgerät, also wie eine normale<br />

Festplatte, zugänglich machen. Dabei<br />

verhält sich »/dev/rbdX« wie »/dev/sda«,<br />

ist aber zusätzlich für alle Rechner im<br />

Ceph-Verbund sichtbar. Experten bemerken<br />

hier sofort die Analogie zum klassischen<br />

Fibre-Channel- oder I-SCSI-SAN.<br />

Ein sauberer Locking-Mechanismus fehlt<br />

allerdings noch, doch daran arbeiten die<br />

Ceph-Entwickler bereits.<br />

Gluster und Translatoren<br />

Gluster-FS hat eine deutlich einfachere<br />

Storage-Maschinerie – seine Vorteile liegen<br />

an anderer Stelle. Da ist zunächst der<br />

sehr modulare Aufbau. <strong>Die</strong> Basis bilden<br />

die Storage-Server, auch Bricks genannt.<br />

Jede einzelne Funktion, beispielsweise<br />

Replikation oder Posix-Kompatibilität, ist<br />

durch so genannte Translatoren repräsentiert.<br />

Gluster-FS reiht diese entsprechend<br />

den gewünschten Funktionen zu einem<br />

Brick-Graph zusammen. Zwar beherrsacht<br />

Gluster-FS im Moment (noch) keine<br />

Verschlüsselung, es fehlt aber nur am<br />

passenden Translator. Das Nachrüsten ist<br />

dann ganz einfach.<br />

Analog versuchen die Entwickler Gluster-<br />

FS für die Virtualisierung aufzubohren.<br />

Ein neuer Translator soll direkt mit Partitionen<br />

oder Logical Volumes umgehen<br />

und kein Backend-Dateisystem erwarten<br />

[34]. Gluster-FS kann dann diese Blockgeräte<br />

direkt als Dateien zur Verfügung<br />

stellen – sie dienen als Imagedateien für<br />

virtuelle Gäste. Für Firmen mit verteilten<br />

oder Notfall-Rechenzentren hält das<br />

Dateisystem die Geo-Replikation bereit.<br />

Sehr einfach kann der Admin damit asynchrone<br />

und inkrementelle Kopien der<br />

Daten aufsetzen. <strong>Die</strong> Technik dahinter<br />

Ceph und Gluster 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

33


Titelthema<br />

www.linux-magazin.de Ceph und Gluster 02/2013<br />

34<br />

Datei<br />

Objekte<br />

Platzierungs-<br />

Gruppe (PG)<br />

....<br />

....<br />

....<br />

....<br />

....<br />

....<br />

Inode, Objekt<br />

Hash (OID)<br />

Crush (PGID)<br />

OID<br />

PGID<br />

OSDX, OSDY<br />

OSDs<br />

Abbildung 4: Glusters quasi-statistische Dateiablage mit Crush setzt auf Platzierungsgruppen und OSDs. Dabei landet eine Datei auch mal in mehreren Objekten.<br />

basiert auf SSH und Rsync und lässt sich<br />

im Notfall auch vom Gluster-FS-unerfahrenen<br />

Benutzer debuggen.<br />

Der scheinbar einfache Aufbau von Gluster-FS<br />

ist aber auch seine große Stärke.<br />

Das Analysieren und Lösen von Problemen<br />

ist sehr viel leichter möglich. Fällt<br />

die Gluster-FS-Schicht aus, greift der<br />

Admin einfach auf die Daten im Backend-<br />

Dateisystem zurück. Neben dem Zugriff<br />

übers native Protokoll ist das verteilte<br />

Dateisystem auch über NFS erreichbar.<br />

<strong>Die</strong> notwendige Serverkomponente ist<br />

Teil von Gluster-FS, funktioniert aber wie<br />

bei NFS 4 nur mit TCP.<br />

Was bleibt, was kommt?<br />

Verteilte Dateisystem sind unter <strong>Linux</strong><br />

keine Mangelware. <strong>Die</strong> Grundfunktionen<br />

sind dabei nahezu identisch. Der Unterschied<br />

– und damit das Entscheidungskriterium<br />

– liegt im Detail. <strong>Die</strong> hier genauer<br />

vorgestellten Gluster und Ceph decken<br />

ein breites Feld von Anwendungsfällen<br />

ab und haben ihren Ritterschlag durch<br />

entsprechende Produkte der Enterprise-<br />

<strong>Linux</strong>-Hersteller erhalten.<br />

Verschiedene Herausforderungen liegen<br />

aber noch vor den Dateisystemen und<br />

ihren Admins. Probleme lokaler Dateisysteme<br />

zu lösen ist schon nicht trivial,<br />

der verteilte Charakter, den Ceph durch<br />

Crush noch steigert, vereinfacht dies<br />

nicht. Ein Art »fsck.cephfs« würde den<br />

Admin sicherlich ruhiger schlafen lassen.<br />

Dennoch vollzieht sich gerade ein Paradigmenwechsel<br />

in der Welt der Datenspeicher.<br />

<strong>Die</strong> Grenzen zwischen Storage,<br />

Netz und Servern verschwimmen und<br />

damit ändern sich auch die Aufgaben der<br />

jeweiligen Admins. (mfe)<br />

n<br />

Infos<br />

[1] AFS: [http:// de. wikipedia. org/ wiki/​<br />

Andrew_File_System]<br />

[2] Ceph: [http:// www. ceph. com]<br />

[3] Gluster: [http:// www. gluster. org]<br />

[4] Xtreem-FS: [http:// www. xtreemfs. org]<br />

[5] FHG-FS: [http:// www. fhgfs. com]<br />

[6] Xtreem-OS: [http:// www. xtreemos. org]<br />

[7] Red Hat Storage Server: [http:// www.​<br />

redhat. com/ products/ storage‐server]<br />

[8] Suse-Cloud: [http:// www. suse. com/​<br />

products/ suse‐cloud]<br />

[9] Inktank und Canonical:<br />

[http:// www. inktank. com/ news‐events/​<br />

new/ inktank‐partners‐with‐canonical]<br />

[10] Inktank und Ceph:<br />

[http:// www. inktank. com/ news‐events/​<br />

new/ shuttleworth‐invests‐1‐million‐inceph‐storage‐startup‐inktank/]<br />

[11] Titelthema „Dateisystem-Meisterschaft“,<br />

<strong>Linux</strong>-<strong>Magazin</strong> 07/​12, S. 22 bis 39<br />

[12] NFS: [http:// tools. ietf. org/ html/ rfc1094]<br />

[13] NFS 3: [http:// tools. ietf. org/ html/ rfc1813]<br />

[14] NFS 4: [http:// tools. ietf. org/ html/ rfc3530]<br />

[15] CIFS 1.0: [http:// tools. ietf. org/ html/​<br />

draft‐leach‐cifs‐v1‐spec‐01]<br />

[16] Lustre: [http:// wiki. lustre. org/ index. php/​<br />

Main_Page]<br />

[17] Google-FS: [http:// queue. acm. org/ detail.​<br />

cfm? id=1594206]<br />

[18] Moose-FS: [http:// www. moosefs. org]<br />

[19] GFS:<br />

[http:// www. sourceware. org/ cluster/ gfs]<br />

[20] OCFS2:<br />

[http:// oss. oracle. com/ projects/ ocfs2/]<br />

[21] <strong>Die</strong> OSD-Familie: [http:// www. t10. org/​<br />

drafts. htm# OSD_Family]<br />

[22] Ansi/Incits 400-2004: [http:// www.​<br />

techstreet. com/ standards/ INCITS/​<br />

400_2004? product_id=1204555]<br />

[23] Rados:<br />

[http:// ceph. com/ docs/ master/ rados/]<br />

[24] Heka-FS: [http:// hekafs. org]<br />

[25] XFS: [http:// xfs. org]<br />

[26] Ext 4: [http:// ext4. wiki. kernel. org]<br />

[27] Btr-FS: [http:// btrfs. wiki. kernel. org]<br />

[28] Hadoop: [http:// hadoop. apache. org]<br />

[29] Open Stack: [http:// www. openstack. org]<br />

[30] AWS: [http:// aws. amazon. com/ de/ s3/]<br />

[31] REST: [http:// www. ics. uci. edu/ ~fielding/​<br />

pubs/ dissertation/ rest_arch_style. htm]<br />

[32] Crush: [http:// www. ssrc. ucsc. edu/​<br />

Papers/ weil‐sc06. pdf]<br />

[33] Qemu: [http:// wiki. qemu.​org]<br />

[34] Gluster-FS-Translator: [http:// bugzilla.​<br />

redhat. com/ show_bug. cgi? id=805138]<br />

Der Autor<br />

Dr. Udo Seidel ist eigentlich Mathe-Physik-Lehrer<br />

und seit 1996 <strong>Linux</strong>-Fan. Nach seiner Promotion<br />

hat er als <strong>Linux</strong>/​Unix-Trainer, Systemadministrator<br />

und Senior Solution Engineer gearbeitet.<br />

Heute ist er Leiter eines <strong>Linux</strong>/​Unix-Teams bei<br />

der Amadeus Data Processing GmbH in Erding.


Titelthema<br />

www.linux-magazin.de Storage-HA 02/2013<br />

36<br />

Hochverfügbarer Netzwerkstorage mit <strong>Linux</strong><br />

An Katastrophen denken<br />

Admins, deren Telefonnummer nach dem Ausfall des Fileservers hundertmal in einer Minute gewählt wird,<br />

wissen: Verfügbarkeit ist mehr als nur eine theoretische Kenngröße. <strong>Die</strong> Wahl der richtigen Architektur, Clustersoftware<br />

und Filesysteme hilft das Schlimmste vermeiden. Martin Loschwitz<br />

© Vladimir Kolectic, 123RF.com<br />

In Zeiten des Cloud Computing gilt<br />

Hochverfügbarkeit als das K.o.-Kriterium<br />

für jede IT-Plattform. Wer mit unsauber<br />

umgesetzter Redundanz schlampt, macht<br />

sich unglaubwürdig. Das gilt für die permanente<br />

Verfügbarkeit von Anwendungen,<br />

aber noch viel mehr für die Verfügbarkeit<br />

von Daten.<br />

Böse Zungen behaupten, Cloud sei nur<br />

ein Akronym für „Can’t Locate Our<br />

Users’ Data“ – wer das als Admin vermeiden<br />

will, braucht HA-Funktionen und<br />

sinnvolle Management-Interfaces, damit<br />

zum einen erst gar nichts ausfällt, er andererseits<br />

bei gravierenderen Ereignissen<br />

schnell und einfach eingreifen kann.<br />

Redundanz ist erste Pflicht!<br />

Fast immer ist es zwingend, Daten mehrfach<br />

zu speichern, sodass sie beim Ausfall<br />

einer Systemkomponente trotzdem<br />

andernorts zur Verfügung stehen. Dass<br />

Admins bei <strong>Linux</strong>-Systemen aus einer<br />

ganzen Reihe Möglichkeiten wählen<br />

können, um ihre Dateien redundant zu<br />

halten, ist nicht selbstverständlich. Und<br />

manch einer der aktuellen Ansätze –<br />

Gluster und Ceph seien nur als Beispiele<br />

erwähnt (siehe den Artikel zu den Netzwerk-Dateisystemen<br />

in diesem Schwerpunkt)<br />

– ist noch gar nicht so alt.<br />

Großes Vorbild: Storage<br />

Area Networks<br />

Welchen Pfad der Administrator beschreitet,<br />

um seine Daten und somit auch die<br />

auf sie zugreifenden Applikationen gegen<br />

Ausfälle zu schützen, hängt maßgeblich<br />

vom Einsatzszenario ab. <strong>Die</strong>ser Artikel<br />

wirft ein Schlaglicht auf einige der Lösungen,<br />

die sich um die Redundanz von<br />

Daten bei <strong>Linux</strong> kümmern. Auffällig ist<br />

es schon: Nahezu alle Storage-Lösungen<br />

für <strong>Linux</strong> fußen auf der Idee, eine Konkurrenz<br />

zu den klassischen SAN-Storages<br />

darzustellen.<br />

SANs (Storage Area Networks, [1]) sind<br />

so etwas wie die alten Hasen im Storage-<br />

Geschäft: <strong>Die</strong> Idee eines zentralen Datensilos<br />

fürs Rechenzentrum existiert in ihrer<br />

derzeit verbreiteten Form bereits seit<br />

den 1990er Jahren, SAN-Storages dürfen<br />

sich also zu Recht auf die Fahnen schreiben,<br />

eine erste brauchbare Alternative zu<br />

Servern mit lokalen Platten gewesen zu<br />

sein. <strong>Die</strong> Raid-Idee gibt es zwar schon<br />

seit Ende der 1980er Jahre, doch war<br />

die Technik zu jener Zeit lange nicht so<br />

ausgereift wie heute.<br />

SAN-Storages sind gegenüber lokalen<br />

Platten in Servern in vielerlei Hinsicht<br />

besser ([2], [3]): Einerseits bieten sie<br />

einen zentralen Administrationspunkt,<br />

der die Storage-Verwaltung erheblich erleichtert.<br />

Darüber hinaus funktionierte<br />

es mit SAN-Storages auf Fibre-Channel-<br />

Grundlage, dass mehrere Server gleichzeitig<br />

auf unterschiedliche Segmente des<br />

Speichers zugreifen. Und auch in Sachen<br />

Redundanz waren SANs allen anderen<br />

Speicherlösungen lange Zeit überlegen:<br />

Redundante Netzteile, Hot- und Cold-<br />

Standby-Disks und redundante Netzwerkanschlüsse<br />

waren bei SANs schon<br />

früh Standard.<br />

Vendor-Lock-in<br />

Aber der Ansatz hat auch Nachteile: Wer<br />

sich SAN-Storage kauft, holt sich damit<br />

unweigerlich langfristig einige Probleme<br />

ins Haus, von denen das schlimmste der<br />

so genannte Vendor-Lock-in sein dürfte.<br />

Gemeint ist, dass sich in einen SAN-Storage<br />

nicht einfach beliebige Hardware


Abbildung 1: <strong>Die</strong> einfachste Form eines Netzwerk-Dateisystems ist und<br />

bleibt NFS – in Kombination mit DRBD auch redundant. Doch setzt dies den<br />

nicht ganz intuitiv zu bedienenden Clustermanager Pacemaker voraus.<br />

einbauen lässt. Wer sein SAN erweitern<br />

möchte, ist auf den Hersteller der Lösung<br />

angewiesen – und der kann die Preise<br />

praktisch diktieren, in dem sicheren Wissen,<br />

dass Kunden ohnehin keine echte<br />

Alternative haben.<br />

Teure Hardware<br />

Insgesamt sind SAN-Storages also keine<br />

günstige Anschaffung; zu den hohen laufenden<br />

Kosten für eventuelle Reparaturen<br />

und Erweiterungen kommen die teils horrenden<br />

Anschaffungskosten. Außerdem<br />

stößt Redundanz bei SAN-Storages üblicherweise<br />

an Grenzen, wenn es darum<br />

geht, Daten an zwei unterschiedlichen<br />

Orten zu speichern.<br />

In diesem Sinne sind auch SANs klassische<br />

Single-Points-of-Failure (SPoF):<br />

Muss die Feuerwehr den Strom in dem<br />

Teil eines Rechenzentrums abstellen, in<br />

dem ein SAN steht und in dem es gerade<br />

brennt, sind die Daten wenigstens offline.<br />

Abhilfe schafft nur das Spiegeln der<br />

Daten auf ein zweites SAN an einem anderen<br />

Ort, was den Preis für die gesamte<br />

Lösung aber endgültig in astronomische<br />

Höhen katapultiert.<br />

Mit dem Einzug des Cloud Computing ergibt<br />

sich noch ein weiteres Problem, das<br />

sich nicht ohne Weiteres lösen lässt: Klassische<br />

SANs skalieren nicht in die Breite.<br />

Wer mehr Platz braucht, steckt entweder<br />

Platten hinzu, bis das Gehäuse voll ist,<br />

oder tauscht vorhandene Platten durch<br />

größere aus. So oder so ist das Ende<br />

der Fahnenstange irgendwann erreicht.<br />

Möglichkeiten, sich wohltuend von den<br />

SAN-Problemen abzusetzen, gibt es für<br />

Storage-Lösungen auf<br />

<strong>Linux</strong>-Basis aber mehr<br />

als genug.<br />

Distributed<br />

Block Device<br />

Als erster Ersatz für<br />

klassische SAN-Lösungen<br />

hat sich DRBD [4]<br />

etabliert und früh einen<br />

Namen gemacht.<br />

<strong>Die</strong> Idee ist eigentlich<br />

simpel: Anstelle eines<br />

SAN-Storage werkelt<br />

ein aus zwei Servern<br />

bestehender Cluster<br />

mit <strong>Linux</strong> [5]. <strong>Die</strong> installierte Distribution<br />

verwendet das DRBD-Kernelmodul<br />

auf beiden Knoten, was im Grunde eine<br />

Art Raid 1 über ein bestehendes Netz<br />

ermöglicht.<br />

Besonders positiv bei DRBD ist, dass die<br />

Lösung unmittelbar im Block Storage<br />

Layer des <strong>Linux</strong>-Kernels beheimatet ist<br />

und damit für Applikationen von einer<br />

normalen Festplatte nicht zu unterscheiden.<br />

Praktisch verhält sich DRBD also<br />

nahezu völlig agnostisch hinsichtlich aller<br />

denkbaren Applikationen. Was auf<br />

einem normalen Dateisystem läuft, ist<br />

auch mit DRBD machbar, wenn auch nur<br />

im Verbund mit anderer Software.<br />

DRBD braucht einen<br />

Clustermanager<br />

Aber ein DRBD-Kerneltreiber allein<br />

macht noch nicht glücklich: Um echte<br />

Hochverfügbarkeit zu<br />

gewährleisten, braucht<br />

eine Speicherlösung<br />

mit DRBD zwingend<br />

einen Clustermanager<br />

wie etwa Pacemaker<br />

(siehe Abbildung 1,<br />

[6], [7]).<br />

Der kümmert sich darum,<br />

dass einerseits<br />

mindestens einer der<br />

beiden Netzwerkknoten<br />

tatsächlich auch<br />

den Zugriff auf die<br />

DRBD-Daten erlaubt,<br />

andererseits auch darum,<br />

dass die jeweilige<br />

Technik funktioniert,<br />

die die Daten im Netz erst nutzbar<br />

macht. Denn die Daten, die DRBD zwischen<br />

den beiden Knoten eines Speicherclusters<br />

hin- und herrepliziert, müssen<br />

ja auch irgendwie zu dem eigentlichen<br />

Adressaten gelangen.<br />

Applikationsabhängig: <strong>Die</strong><br />

DRBD-Architektur<br />

Welche Applikation das ganz konkret ist,<br />

hängt vom jeweiligen Setup ab. Im einfachsten<br />

Falle liegt auf dem DRBD-Device<br />

nur ein normales Dateisystem, auf das<br />

dann die jeweilige Applikation zugreift.<br />

Häufig kommt diese Art von Setup zum<br />

Einsatz, um eine MySQL-Datenbank einfach<br />

und unkompliziert hochverfügbar<br />

zu halten.<br />

Falls andere Server im Netz ebenfalls unmittelbaren<br />

Zugriff auf das DRBD-Device<br />

erhalten sollen, ist eine Lösung auf NFS-<br />

Grundlage denkbar: Der NFS-Server exportiert<br />

dann das Dateisystem, das auf<br />

der DRBD-Ressource liegt, und erlaubt<br />

auf diese Weise jedem NFS-Client im<br />

Netz den gleichzeitigen Zugriff.<br />

I-SCSI<br />

Falls ein solcher DRBD-Cluster als SAN-<br />

Ersatz dienen soll, bietet sich überdies<br />

I-SCSI an (Abbildung 2, [8], [9]): Auf<br />

dem gerade aktiven Knoten des Clusters<br />

läuft ein I-SCSI-Target, das das DRBD-<br />

Blockdevice hin zu einem anderen Client<br />

im Netz exportiert.<br />

Auch mehrere I-SCSI-Targets für verschiedene<br />

DRBD-Ressourcen sind möglich.<br />

Abbildung 2: Ein DRBD-Cluster kann klassischen SAN-Storage ersetzen und<br />

ist für KMUs eine günstige Alternative – hier für I-SCSI-Exporte.<br />

Storage-HA 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

37


Titelthema<br />

www.linux-magazin.de Storage-HA 02/2013<br />

38<br />

Abbildung 3: OCFS2 und GFS2 sind unnötig komplex.<br />

Hinzu kommt, dass die Konfiguration in diesem<br />

Beispiel kein Stonith verwendet.<br />

<strong>Die</strong>se Konstruktion reicht am ehesten<br />

an klassische SANs heran und lässt sich<br />

oft sogar als Drop-in-Replacement für sie<br />

installieren. DRBD-Cluster dieser Art gehören<br />

zu den zuverlässigsten Lösungen,<br />

um Daten hochverfügbar zu machen.<br />

DRBD selbst hat sich im Produktivumfeld<br />

bewährt und ist Bestandteil vieler<br />

Distributionen, Admins treffen an dieser<br />

Stelle auf erprobte Software.<br />

Doch die Medaille hat auch eine Kehrseite,<br />

etwa den nötigen Clustermanager.<br />

Praktisch kommt dafür nur der sehr<br />

komplexe Pacemaker in Frage, der vielen<br />

Admins zu kompliziert ist. Selbst für ein<br />

einfaches Zwei-Knoten-Setup entsteht beträchtlicher<br />

Lernaufwand, wenn das Verständnis<br />

der Lösung über bloße Grundkenntnisse<br />

hinausgehen soll.<br />

Graue Haare wachsen Admins regelmäßig,<br />

wenn es ans Erweitern der Lösung<br />

geht: Wie klassische SAN-Storages leiden<br />

auch DRBD-Cluster unter dem Problem,<br />

dass sie nicht in die Breite skalieren, sondern<br />

nur in die Höhe. Sind alle Plattenslots<br />

belegt, ist Schluss mit mehr Platz.<br />

dest dann, wenn Skalierbarkeit in die<br />

Breite für ihn kein Thema ist. Setups dieser<br />

Art sind tausendfach erprobt und im<br />

Netz finden sich unzählige Anleitungen<br />

für genau diesen Use-Case. Wer es in Sachen<br />

Netzwerk-FS also langsam angehen<br />

will, legt hier los.<br />

Besser: Cluster-<br />

Dateisysteme<br />

Weiter in die Richtung der SAN-Storages<br />

oder entsprechender Ersatzkonstruktionen<br />

stehen Cluster-Dateisysteme. <strong>Die</strong> Voraussetzung<br />

für ihren sinnvollen Einsatz<br />

ist ein Datensatz, der in identischer Form<br />

auf jeweils mehreren Storage-Devices zur<br />

Verfügung steht. In Frage kommen dafür<br />

beispielsweise DRBD-Ressourcen oder<br />

von replizierenden SANs gemountete Volumes.<br />

In einer normalen Konfiguration<br />

wäre der Zugriff bei solchen Szenarien<br />

nur auf jeweils einen der beiden Datensätze<br />

möglich, während im Hintergrund<br />

die Replikation dafür sorgt, dass der Datensatz<br />

auf dem anderen Gerät stets synchron<br />

bleibt.<br />

<strong>Die</strong>se Lösung besitzt einige Nachteile: So<br />

ist der passive Clusterknoten zum Nichtstun<br />

verdammt, obwohl er ja im Grunde<br />

durchaus dazu beitragen könnte, eine<br />

erhöhte Last auf dem primären Storage<br />

auszugleichen. Cluster-Dateisysteme sollten<br />

genau diesen Engpass umgehen helfen:<br />

Sie bieten die Möglichkeit, diversen<br />

Clients gleichzeitig den Zugriff auf die<br />

verschiedenen Kopien eines Datensatzes<br />

einzuräumen.<br />

Obendrein sollten Cluster-Dateisysteme<br />

vorrangig den Zugriff von mehreren<br />

Clients auf den gleichen Datensatz ermöglichen;<br />

beispielhafte Szenarios sind Session-Caches<br />

für Webumgebungen. Ihnen<br />

kommt dabei die Rolle eines Aufsehers<br />

zu: Wenn verschiedene Clients gleichzeitig<br />

auf exakt denselben Bereich des<br />

Dateisystems zugreifen wollen, sorgt das<br />

Cluster-Dateisystem dafür, dass es nicht<br />

zu konkurrierendem Zugriff kommt.<br />

Klassische Filesysteme:<br />

Zwangsläufig korrupt<br />

Konventionelle Dateisysteme sind für<br />

diese Aufgabe unbrauchbar, genau diese<br />

Form des konkurrierenden Schreibzugriffs<br />

würde sie zerstören. Denn ein normales<br />

Dateisystem unter <strong>Linux</strong> geht stets davon<br />

aus, dass Veränderungen am Dateisystem<br />

nur dort passieren, wo gerade der Mount<br />

aktiv ist. Im Cluster mit gleichzeitigem<br />

Zugriff von mehreren Clients auf die unterschiedlichen<br />

Backend-Devices würde<br />

das Dateisystem zwangsläufig korrupt,<br />

handelte es sich um ein normales Dateisystem<br />

wie XFS oder Ext 3.<br />

Clustersysteme dagegen überspannen<br />

sämtliche Instanzen eines Storage und<br />

Eine passable Lösung für<br />

zwei Knoten<br />

Dennoch gilt: Wer lediglich einen Weg<br />

sucht, Daten innerhalb eines Zwei-Knoten-Clusters<br />

auf einfache Weise redundant<br />

zu halten und sie gleichzeitig mehreren<br />

Clients über das Netzwerk verfügbar zu<br />

machen, fährt mit einem DRBD-Cluster<br />

und einer klassischen NFS-Installation<br />

derzeit immer noch am besten. Zumin-<br />

Abbildung 4: Besser geht es mit einer Stonith-Konfiguration wie in diesem Beispiel. Doch leider schalten<br />

viele Admins die Stonith-Funktionen im Betrieb aus.


stellen sicher, dass konkurrierende<br />

Schreibzugriffe ausbleiben. <strong>Die</strong> bekanntesten<br />

Vertreter dieser Dateisystem-Kategorie<br />

sind sicherlich GFS2 [10] und<br />

OCFS2 [11].<br />

Beide Lösungen [12] setzen auf den Distributed<br />

Locking Manager (DLM, [13]),<br />

den ursprünglich Red Hat entwickelt<br />

hat und der nunmehr Bestandteil des<br />

<strong>Linux</strong>-Kernels ist. Eine dritte Spielart eines<br />

solchen Setups bildet Clustered LVM<br />

[14], das den Zugriff auf die gleichen<br />

LVM-Daten über mehrere Server hinweg<br />

ermöglicht und ebenfalls den DLM im<br />

<strong>Linux</strong>-Kernel heranzieht.<br />

Jedes Projekt kocht sein<br />

eigenes Süppchen<br />

Was in der Theorie schön klingt, kämpft<br />

in der Praxis mit einigen Schwierigkeiten.<br />

In freier Wildbahn finden sich Cluster-<br />

Dateisysteme vorrangig in Replikationslösungen,<br />

bei denen der Admin DRBD<br />

im Dual-Primary-Modus nutzt und dann<br />

mit OCFS2 oder GFS2 kombiniert. Setups<br />

dieser Art sind komplex: Sie benötigen<br />

in jedem Fall einen Clustermanager, der<br />

den zugrunde liegenden Storage verwaltet<br />

und sich auch um die korrekte Funktion<br />

des Dateisystems im Betrieb kümmert.<br />

Ein Pacemaker nimmt hier eine<br />

sehr wichtige Rolle ein: Er muss in einem<br />

solchen Setup nicht nur DRBD die Stange<br />

halten, sondern auch dafür sorgen, dass<br />

der DLM wie erwartet funktioniert.<br />

SLES, RHEL, Debian<br />

Im Augenblick erfordert das Ganze allerdings<br />

Bastelarbeit: SLES bietet die<br />

notwendigen Pakete, weil Suse eine uralte<br />

Version der DLM-Komponenten für<br />

Pacemaker bis zum gegenwärtigen Zeitpunkt<br />

auf eigene Faust pflegt. Auf Red-<br />

Hat-Systemen muss gar der Clustermanager<br />

Cman [15] zum Einsatz kommen,<br />

der Pacemaker anschließend huckepack<br />

nimmt, damit dieser den DLM sowie die<br />

Cluster-Dateisysteme in der Red-Hat-Ausführung<br />

nutzen kann.<br />

Debian Squeeze setzt auf Uraltversionen<br />

der involvierten Software und Debian<br />

Wheezy unterstützt DLM vermutlich gar<br />

nicht mehr vernünftig. Zwischen den<br />

Ubuntu- und den Debian-Maintainern<br />

des <strong>Linux</strong>-HA-Stack gibt es eine Übereinkunft,<br />

den Support für DLM in absehbarer<br />

Zeit auch offiziell aus der Umgebung<br />

zu streichen.<br />

Fencing wird notwendig<br />

Hinzu kommt ein Faktor, den viele Admins<br />

vergessen: Für DLM ist funktionierendes<br />

Fencing [16] quasi obligatorisch. Ein<br />

Clusterknoten muss einen anderen aus<br />

dem Cluster rauswerfen können, wenn er<br />

ihn verdächtigt Daten zu korrumpieren.<br />

<strong>Die</strong> Fencing-Funktionen sind bei Pacemaker<br />

unter dem Oberbegriff Stonith abgehandelt,<br />

der Abkürzung für „Shoot the<br />

other node in the head“.<br />

Um genau diese Stonith-Funktion machen<br />

die meisten Sysadmins aber einen großen<br />

Bogen – aus Angst vor Fehlalarmen, die<br />

möglicherweise unnötig Unruhe in die<br />

Umgebung bringen. Dem Autor dieses<br />

Artikels sind in den vergangenen Jahren<br />

diverse Cluster unter GFS2- oder OCFS2-<br />

Ägide begegnet, auf denen Stonith deaktiviert<br />

war. So wird aus einer eigentlich<br />

guten Idee ein kleiner Datenschredder,<br />

und die Betreiber solcher Systeme sind<br />

gut damit beraten, Backups zu haben<br />

(Abbildungen 3 und 4).<br />

Fakt ist also: Cluster-Dateisysteme bringen<br />

viel Komplexität und wenig Nutzen; in<br />

den meisten Fällen reicht ein klassisches<br />

NFS völlig aus, um die Anforderungen<br />

zu erfüllen, für die Cluster-Dateisysteme<br />

gern herangezogen werden. Bei NFS ist<br />

dann zwar die Performance unter erhöhter<br />

Last möglicherweise schlechter, doch<br />

dafür sind die Daten im Cluster deutlich<br />

sicherer. Ob DLM insgesamt eine Zukunft<br />

hat, steht eingedenk aufstrebender Lösungen<br />

wie Ceph und Gluster sowieso<br />

in den Sternen (Abbildung 5). Denn<br />

schließlich kommt Gluster-FS direkt von<br />

Red Hat, also der Firma, die einst der<br />

größte Befürworter von DLM war.<br />

<strong>Die</strong> nächste Generation:<br />

Verteilte Dateisysteme<br />

Gluster-FS [17] ist ein typischer Vertreter<br />

der verteilten Dateisysteme, die quasi<br />

eine neue Generation der Netzwerk-<br />

Dateisysteme darstellen. Anders als althergebrachte<br />

Lösungen hatte Gluster von<br />

Anfang an Gelegenheit, das Thema Hochverfügbarkeit<br />

ins Design zu integrieren.<br />

Denn als die Gluster-FS-Entwickler 2005<br />

5 TAGE | NÜRNBERG | HAMBURG | KÖLN<br />

3 TAGE | NÜRNBERG | HAMBURG | KÖLN<br />

4 TAGE | NÜRNBERG | HAMBURG | KÖLN<br />

3 TAGE | NÜRNBERG | ZÜRICH<br />

2 TAGE | NÜRNBERG<br />

2 TAGE | NÜRNBERG<br />

Storage-HA 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

39


Titelthema<br />

www.linux-magazin.de Storage-HA 02/2013<br />

40<br />

mit ihrer Arbeit anfingen, war das Thema<br />

HA bereits in aller Munde.<br />

Replikation und Redundanz sind in Gluster-FS<br />

praktisch immanent. Nahezu jede<br />

Komponente eines Gluster-Clusters lässt<br />

sich problemlos in die Breite skalieren,<br />

und neu hinzugefügte Komponenten integriert<br />

die Umgebung automatisch in ihre<br />

HA-Funktionen. Beim Ausfall eines Servers<br />

in Gluster-FS tritt innerhalb des Speichers<br />

an die Stelle eines ausgefallenen<br />

Systems sofort ein adäquater Ersatz.<br />

Unnötig in Gluster-FS:<br />

Clustermanager<br />

Dateisysteme nähern möchte, der fängt<br />

idealerweise mit Gluster-FS an – für<br />

kleine und mittelgroße Setups reicht die<br />

Lösung allemal.<br />

Vielarmiger Newcomer:<br />

Ceph<br />

Als absoluter Shootingstar in Sachen<br />

Netzwerk-Dateisysteme gilt im Augenblick<br />

das von Inktank [18] entwickelte<br />

Ceph [19]. Dabei ist Ceph im Grunde gar<br />

kein echtes Dateisystem: Das Herzstück<br />

der Lösung ist ein Object Store, also ein<br />

im Userspace implementierter <strong>Die</strong>nst,<br />

der Dateien von Clients per Netzwerk<br />

entgegennimmt, diese in binäre Objekte<br />

umwandelt und die Objekte anschließend<br />

in kleine Teile trennt.<br />

Ganz am Ende dieses Vorgangs verteilt<br />

der <strong>Die</strong>nst die Teile dann auf die verfügbaren<br />

Storageserver nach einem komplizierten<br />

Algorithmus (Crush, Controllable<br />

Replication Under Scalable Hashing). Der<br />

Clou an der Sache ist, dass es verschiedene<br />

Frontends gibt, die den Zugriff auf<br />

diesen Object Store erlauben: In Form<br />

von Ceph-FS steht ein echter <strong>Linux</strong>-Dateisystemtreiber<br />

bereit, der Daten aus einem<br />

Ceph-Store lesen kann.<br />

Mehrere Clients können auf den gleichen<br />

Ceph-Store gleichzeitig zugreifen – in dieser<br />

Spielart kommt Ceph mit Ceph-FS<br />

anderen verteilten Dateisystemen wie<br />

Gluster-FS oder Lustre näher. Von Lustre<br />

hat Ceph-FS die Idee eines zentralen Metadaten-Servers<br />

geerbt, der Posix-Kompatibilität<br />

gewährleistet. Bei Ceph-FS ist<br />

es im Gegensatz zu Lustre aber nicht so,<br />

dass der Ausfall des Metadaten-Servers<br />

zu stundenlangen Downtimes führt. Wer<br />

an Lustre bereits gescheitert ist, sollte<br />

Ceph trotzdem eine Chance geben.<br />

Das Rados Block Device (RBD) bietet ein<br />

Blockdevice zum Zugriff auf Ceph. »radosgw«<br />

hat ein Restful-API im Gepäck,<br />

das über verschiedene APIs per HTTP<br />

Abbildung 5: Bei verteilten Dateisystemen wie Gluster-FS oder Ceph und ​Ceph-FS ist Redundanz ab Werk<br />

eingebaut. Der Admin muss sich um das Thema im Grunde kaum mehr kümmern.<br />

Aus der Sicht eines Sysadmin gibt es<br />

also wenig in Sachen HA, worüber er<br />

sich Gedanken machen müsste. Nicht<br />

mal ein Clustermanager ist nötig: Damit<br />

Gluster-FS funktioniert, müssen auf den<br />

beteiligten Hosts lediglich die Gluster-<br />

Daemons (»glusterd«) laufen. Pacemaker<br />

könnte in so einem Setup höchstens<br />

noch den Überwacher spielen und auf<br />

Knoten, auf denen »glusterd« abgestürzt<br />

ist, diesen neu starten. Der gleiche Effekt<br />

lässt sich aber auch mit Upstart oder<br />

Systemd erzielen, die abgestürzte <strong>Die</strong>nste<br />

auf Wunsch des Admin ebenfalls automatisch<br />

neu starten.<br />

Als Argument gegen Gluster-FS bleibt damit<br />

nur die Tatsache, dass das gesamte<br />

Konzept verhältnismäßig simpel strukturiert<br />

ist. Weil sich der ganze Ablauf<br />

bei Gluster-FS im Userland abspielt und<br />

auch das Mounten eines Dateisystems<br />

per Fuse passiert, traut mancher der Lösung<br />

nicht über den Weg. Und tatsächlich<br />

tut Gluster-FS sich mit einzelnen Setups<br />

schwer, beispielsweise wenn innerhalb<br />

eines Brick – so heißen die einzelnen<br />

Storagedevices in Gluster – viele kleine<br />

Files beheimatet sind. Das mindert die<br />

Performance deutlich.<br />

Dennoch gilt: Wer sich ohne viel Aufwand<br />

dem Thema redundante Netzwerkzugreift.<br />

Hinsichtlich des Themas HA gilt<br />

für Ceph, was auch für Gluster gilt: Von<br />

Anfang an haben Sage Weil und sein<br />

Team in Ceph die Redundanz als inhärente<br />

Funktion behandelt, sodass diese<br />

allein durch das Design der Lösung gegeben<br />

ist. Fällt ein einzelnes Glied des<br />

gesamten Speichers aus, so beeinträchtigt<br />

das in keiner Weise die Funktion des<br />

ganzen Systems.<br />

Nahtloses Skalieren<br />

Ceph skaliert in die Breite perfekt: Jede<br />

Komponente einer Ceph-Installation –<br />

egal ob es sich um die Storage-<strong>Die</strong>nste<br />

Infos<br />

[1] Storage Area Networks: [http:// en.​<br />

wikipedia. org/ wiki/ Storage_area_network]<br />

[2] Jens-Christoph Brendel, „Storage-Strategien“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 11/​04, S. 48<br />

[3] Michael Lorenz, „Canale Grande“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 05/​09, S. 52<br />

[4] DRBD: [http:// www. drbd. org]<br />

[5] Martin Loschwitz, „Storage für HA-Cluster“:<br />

Admin-<strong>Magazin</strong> 04/​11, S. 80<br />

[6] Martin Loschwitz, „Dabeibleiben ist alles“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 05/​12, S. 40<br />

[7] Michael Kromer, „Schrittmacherdienste“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 11/​10, S. 86<br />

[8] Thorsten Staerk, „Speicherriese“: <strong>Linux</strong>-<br />

<strong>Magazin</strong> 04/​10, S. 86<br />

[9] Kai-Thorsten Hambrecht, „Zielstrebig“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 05/​11, S. 66<br />

[10] GFS bei Red Hat:<br />

[http:// www. redhat. com/ gfs/]<br />

[11] OCFS bei Oracle:<br />

[https:// oss. oracle. com/ projects/ ocfs2/]<br />

[12] Udo Seidel, „Server-Traube – GFS2 und<br />

OCFS2, zwei Cluster-Dateisysteme im<br />

<strong>Linux</strong>-Kernel“: [http:// www. linux‐magazin.​<br />

de/ Online‐Artikel/ GFS2‐und‐OCFS2‐zwei‐<br />

Cluster‐Dateisysteme‐im‐<strong>Linux</strong>‐Kernel]<br />

[13] DLM: [http:// khawajahashim. files.​<br />

wordpress. com/ 2010/ 11/ white‐paper‐ondistributed‐locking‐manager1.<br />

pdf]<br />

[14] Clustered LVM:<br />

[http:// www. sourceware. org/ cluster/ clvm/]<br />

[15] Cman:<br />

[http:// sourceware. org/ cluster/ cman/]<br />

[16] Fencing: [http:// en. wikipedia. org/ wiki/​<br />

Fencing_(computing)]<br />

[17] Gluster: [http:// www. gluster. org]<br />

[18] Inktank: [http:// www. inktank. com]<br />

[19] Ceph: [http:// ceph. com]


(Object Storage Daemons, OSD), um die<br />

Monitoringserver (MON) oder um den<br />

erwähnten MDS handelt – von jeder Instanz<br />

können beliebig viele Inkarnationen<br />

Teil des Clusters sein. Ein Nadelöhr oder<br />

einen SPOF sucht man bei Ceph bei sinnvoller<br />

Anwendung, die mindestens drei<br />

Knoten beinhaltet, vergebens.<br />

Auch bei Ceph sind keine Clustermanager<br />

nötig. Wer also einen wirklich großen<br />

Datenspeicher mit inhärenter HA sein<br />

Eigen nennen möchte, sollte Ceph an die<br />

Spitze seiner Evaluierungsliste stellen.<br />

<strong>Die</strong> Entwickler der Software verorten ihr<br />

Produkt sinnvollerweise bei Größenordnungen<br />

von mehreren Terabyte Speicherkapazität.<br />

Obwohl Inktank Ceph-FS noch<br />

nicht offiziell als „fertig“ betrachtet, sind<br />

Testläufe mit Ceph und Ceph-FS bereits<br />

jetzt problemlos möglich.<br />

<strong>Die</strong> Konfiguration ist zwar nicht ganz<br />

so komfortabel wie bei Gluster-FS, aber<br />

nicht unnötig kompliziert. Das dürfte<br />

auch die noch kurz vor Redaktionsschluss<br />

bekanntgegebene Kooperation<br />

mit Suse noch fördern.<br />

Fazit<br />

Wer sich mit Dateisystemen beschäftigt,<br />

die die Nutzung eines Netzwerks bedingen,<br />

sollte zunächst klar definieren,<br />

welche Bedingungen die Plattform erfüllen<br />

muss. Davon hängt ab, welche der<br />

Lösungen überhaupt in Frage kommen,<br />

denn deren HA-Fähigkeiten unterscheiden<br />

sich deutlich.<br />

Wer lediglich mehreren Clients den Zugriff<br />

auf Daten zur selben Zeit anbieten<br />

möchte und wenn absehbar ist, dass die<br />

Summe an Daten eher gering bleibt, fährt<br />

mit einem klassischen Cluster aus zwei<br />

Knoten mit DRBD und NFS noch immer<br />

am besten. Viele Admins sind der irrigen<br />

Überzeugung, ein derartiges Setup sei<br />

nur mit GFS2 oder OCFS2 sinnvoll zu<br />

realisieren – groteskerweise verkomplizieren<br />

gerade Cluster-Dateisysteme das<br />

Thema Hochverfügbarkeit gewaltig. Von<br />

ihrem Einsatz in diesem Bereich ist daher<br />

generell abzuraten.<br />

Wer eine Large-Scale-Lösung braucht,<br />

schaut sich indes bei Gluster-FS oder<br />

Ceph um. Hier ist Redundanz fester Teil<br />

des Gesamtkonzepts, der Admin muss<br />

sich nur noch die Frage stellen, wie anspruchsvoll<br />

die Redundanz ausgebaut<br />

sein soll – sowohl Ceph als auch Gluster<br />

erlauben die Konfiguration des »replica«-<br />

Werts, der beschreibt, wie oft eine einzelne<br />

Datei im Cluster vorhanden sein<br />

muss. (mfe) <br />

n<br />

Der Autor<br />

Martin Gerhard Loschwitz<br />

arbeitet zurzeit als Principal<br />

Consultant bei Hastexo. Er<br />

beschäftigt sich dort ganz<br />

Cloud-affin mit Hochverfügbarkeitslösungen,<br />

Open<br />

Stack sowie mit verteilten Dateisystemen.<br />

Storage-HA 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

41


Titelthema<br />

www.linux-magazin.de Benchmarks 02/2013<br />

42<br />

Netzwerk-Dateisysteme im Geschwindigkeitstest<br />

Sieger!<br />

Neben technischer Raffinesse und Verfügbarkeit trägt die in der Praxis erzielbare Geschwindigkeit wesentlich<br />

zur Nutzerzufriedenheit gegenüber jedem Storage-Setup bei. Das <strong>Linux</strong>-<strong>Magazin</strong> lässt darum NFS 3 und 4,<br />

CIFS-SMB 1 und 2 sowie Gluster-FS und Ceph-FS gegeneinander rennen. Michael Kromer<br />

n Ceph-FS – die Mount-Schnittstelle zu<br />

Ceph ist neuester unter den Teilnehmern<br />

und noch als experimentell markiert.<br />

Es zeigt ähnliche Eigenschaften<br />

wie Gluster-FS und eignet sich seit<br />

der ersten Long-Term-Support-Version<br />

„Argonaut“ zum Test [6].<br />

<strong>Die</strong> ersten vier Teilnehmer des Tests<br />

decken den Löwenanteil heutiger Netzwerk-Dateisysteme<br />

in Produktivsystemen<br />

ab, im letzte Drittel treten die aussichtsreichsten<br />

Herausforderer an.<br />

Aufbau und Setup<br />

© tomwang, 123RF.com<br />

<strong>Die</strong> bisherigen Artikel im Schwerpunkt<br />

des <strong>Magazin</strong>s haben die funktionalen<br />

Aspekte der neuen Netzwerk-Dateisysteme<br />

beleuchtet. <strong>Die</strong>ser Beitrag dagegen<br />

macht sich eine fundierte quantitative<br />

Geschwindigkeitsanalyse zur Aufgabe.<br />

Denn was nutzen die schönsten Features<br />

eines neuen Dateisystems, wenn der<br />

Endbenutzer an seinem PC eine halbe<br />

Minute warten muss, bevor er ein etwas<br />

größeres Fileserver-Directory angezeigt<br />

bekommt?!<br />

Um einerseits eine gute Referenz zu haben<br />

und andererseits die gängige Praxis<br />

in Produktivumgebungen zu würdigen,<br />

nehmen die Klassiker NFS und CIFS mittels<br />

Samba in den folgenden Tests und im<br />

Text anders als in den anderen Schwerpunkt-Artikeln<br />

einen großen Raum ein.<br />

Gar nicht betrachtet werden verteilte<br />

Systeme, die ihren Clients kein Posix-<br />

Dateisystem bereitstellen, also nicht als<br />

NAS auftreten, sondern ein SAN ersetzen<br />

wollen. Folgende Netzwerk-Dateisysteme<br />

stellen sich im Labor schließlich den Geschwindigkeitstests:<br />

n NFS 3 – der „Golden Standard“ in den<br />

meisten <strong>Linux</strong>-Umgebungen mit dem<br />

Ruf schnell und unkompliziert Daten<br />

bereitzustellen, er gilt jedoch vielen<br />

als unsicher (RFC 1813, [1])<br />

n NFS 4 – Weiterentwicklung mit dem<br />

Ziel, bessere Performance und höhere<br />

Sicherheit zu bieten (RFC 3010, [2])<br />

n CIFS-SMB – das Original-SMB-Protokoll<br />

(Server Message Block), 1996 erweitert<br />

und zu CIFS umbenannt [3]<br />

n CIFS-SMB 2 – die Weiterentwicklung<br />

von CIFS, ausgeliefert mit Microsoft<br />

Windows 7 und 2008R2 sowie ab<br />

Samba 3.6 (August 2011) auch für<br />

<strong>Linux</strong> [4]<br />

n Gluster-FS – ursprünglich von Gluster,<br />

Inc., seit 2011 von Red Hat entwickeltes,<br />

in den Petabyte-Bereich skalierbares<br />

Netzwerk-Dateisystem [5]<br />

In ihrem Aufbau unterscheiden sich die<br />

Dateisysteme erheblich. Das gilt bereits<br />

bei NFS 3 und 4 (Abbildung 1). Wo mit<br />

NFS 3 getrennte Daemons mit dem Nfsd<br />

als Master und eigenständige Daemons<br />

für den Lookup (»rpcbind«), das Mounten<br />

(»rpc.mountd«) und das Locking (»rpc.<br />

statd« mit »rpc.lockd«) obligatorisch sind,<br />

sorgt bei NFS 4 alleine der Nfsd als Master<br />

mit »rpc.mountd« als Helfer für die<br />

NFS-Exports. Der Admin muss lediglich<br />

»/etc/exports« anpassen, und nach Neu-<br />

<strong>Die</strong> Testumgebung<br />

Geräte: Zwei Stück Dell PowerEdge 1950<br />

Ausstattung: Zwei Quadcore-CPUs Intel Xeon<br />

L5430 (2,66 GHz), 16 GByte ECC-RAM, zwei<br />

Ethernetcontroller Broadcom Netxtreme II<br />

BCM 5708<br />

Speichermedien: Zwei Stück SATA-II Intel SSD<br />

710 Series (100 GByte), zwei Stück Western<br />

Digital WD7500BPVT (750 GByte)<br />

Switch-Infrastruktur: Cisco SG200-26P,<br />

802.3ad-Bonding mit LACP-Group<br />

Betriebssystem: Open Suse 12.2 mit Tumbleweed<br />

Filesysteme: NFS 3, NFS 4, Samba 3.6.7 (SMB<br />

2), Ceph 0.48.2 (Argonaut), Gluster-FS 3.2.4.


Rpcbind<br />

Rpc.mountd<br />

Rpc.statd<br />

Rpc.lockd<br />

start des Daemons steht das Dateisystem<br />

zur Verfügung. Im Rahmen dieses Tests<br />

kamen zudem die NFS Utilities [7] der<br />

Version 1.2.6 zum Einsatz.<br />

CIFS-Architekturen mit ihrem sehr modularen<br />

und konditionalen Aufbau lassen<br />

sich nicht in ein paar Sätzen schlüssig<br />

erklären. Wer sich verständlicherweise<br />

dafür interessiert, kann in [8] die Grundlagen<br />

nachlesen und dort insbesondere<br />

die Abbildung B.17 zu Rate ziehen.<br />

<strong>Die</strong> vorliegende Testumgebung war mit<br />

Samba 3.6.7 bestückt und das Konfigurieren<br />

über die bekannte »/etc/samba/smb.<br />

conf«-Datei schnell erledigt.<br />

Gluster-FS teilt seine effektiv verwendeten<br />

Storage in so genannten Bricks auf,<br />

die Glusterd bereitstellt. <strong>Die</strong> Komponentenstruktur<br />

ist sehr einfach gehalten. Der<br />

Admin kommt sowohl auf dem Server<br />

als auch auf dem Client beim Einrichten<br />

lediglich mit dem Haupttool »gluster« in<br />

Kontakt. Für die Benchmark-Umgebung<br />

entschieden sich die Tester für Gluster-FS<br />

in der Mainline-Version 3.2.4, die Open<br />

Suse ausliefert.<br />

Ceph-FS ist nur ein Bestandteil des gesamten<br />

Ceph-Rados-Gesamtpakets und<br />

trägt, anders als die anderen Komponenten<br />

Rados, Librados, Radosgw und RBD<br />

(Rados Block Device), den Experimentell-<br />

Status (siehe Abbildung 2). Das Setup<br />

von Ceph-FS erwies sich im Test als ein<br />

wenig komplexer, gelang schließlich mit<br />

Hilfe der Dokumentation Ceph Quickstart<br />

[9] aber auch in wenigen Minuten.<br />

Bei der Installation zuvor war dies leider<br />

nicht der Fall, offenbar sind die Deb-<br />

Nfsd<br />

NFS 3 NFS 4<br />

Abbildung 1: <strong>Die</strong> Architektur von NFS 4 ist deutlich simpler als die von NFS 3.<br />

Pakete von Ceph besser erprobt als die<br />

RPMs. Als funktionsfähig erwies sich ein<br />

Suse-Paket [10], das ein Ceph-Poweruser<br />

in der aktuellen Long-Term-Support-Version<br />

0.48.2 per Open Suse Build Service<br />

bereitstellt.<br />

Gezielt: <strong>Die</strong> Auswahl der<br />

Performance-Tests<br />

<strong>Die</strong> verwendeten Benchmark-Tools und<br />

die selbst geschriebenen Skripte schöpfen<br />

aus dem Pool jahrelanger Erfahrungen<br />

und sinnvoller Empfehlungen diverser<br />

Experten. Analog zum <strong>Linux</strong>-<strong>Magazin</strong>-<br />

Artikel [11], der lokale Dateisysteme untersuchte,<br />

kam auch hier ein Benchmark-<br />

Mix zur Anwendung, der einerseits ein<br />

Set einfacher Dateisystem-Operationen<br />

skriptgesteuert abarbeitet und andererseits<br />

ausgewählte Durchsatztests des<br />

Standardtools Iozone ansolviert (siehe<br />

Tabelle 1).<br />

Ein Lauf der beiden<br />

Benchmarks dauerte<br />

etwa drei Stunden,<br />

jedes Dateisystem<br />

musste etwa 15 Läufe<br />

hinter sich bringen.<br />

Alle Ergebnisse wurden<br />

zum Schluss<br />

gemittelt und in Relation<br />

zueinander gebracht.<br />

Das Vorgehen<br />

stellt eine gute Basis<br />

der Vergleichbarkeit<br />

her. <strong>Die</strong> Testteile liefen<br />

sequenziell ab,<br />

Rpc.mountd<br />

Librados<br />

Library<br />

zum Zugriff<br />

auf Rados<br />

denn die Tester verzichteten auf parallel<br />

Dateisystem-Zugriffe, da einerseits erste<br />

Experimente instabile Ergebnisse zu Tage<br />

förderten und andererseits Iozone im hier<br />

verwendeten Auto-Modus multiple Threads<br />

nicht zulässt.<br />

Testaufbau und ‐kandidaten<br />

Als Testhardware arbeiteten zwei Dell<br />

Poweredge 1950 (siehe Kasten „<strong>Die</strong><br />

Testumgebung“), ein System diente als<br />

Server, das andere als Client. Das Netzwerk<br />

mit Cisco SG200 stand während des<br />

gesamten Testablaufs, der etliche Tage in<br />

Anspruch nahm, exklusiv und damit ungestört<br />

zur Verfügung. Für beide Systeme<br />

erstellten die Tester eine LACP-Gruppe,<br />

jeder Rechner war mittels einem 802.3ad-<br />

Bonding konfiguriert. Als Betriebssystem<br />

auf Server und Client lief Open Suse 12.2<br />

mit aktiviertem Tumbleweed und dem<br />

zum Redaktionsschluss aktuellen Stable-<br />

Kernel 3.6.9.<br />

Als lokales Dateisystem kam überall Ext<br />

4 zu Ehren, das alle großen Distributionen<br />

anbieten, viele sogar als Default. Um<br />

praxisnahe und sachgerechte Leistungsergebnisse<br />

zu erhalten, experimentierten<br />

und maßen die Tester mit diversen Setups.<br />

So betrieben sie die Systeme wechselweise<br />

mit SSDs und HDDs.<br />

Wichtig: Caching-Effekte<br />

minimieren<br />

Radosgw<br />

REST-basiertes<br />

Gateway zum<br />

Zugriff auf Rados<br />

RBD<br />

Verteiltes<br />

Blockdevice mit<br />

Qemu/KVM-Treiber<br />

Rados<br />

Verteilter Objekt-Store<br />

Vor jedem Benchmark-Lauf löschen<br />

»sync« und ein doppeltes »echo 3 > /proc<br />

/sys/vm/drop_caches« Pagecache, Dentries<br />

und Inodes. Das stellt sicher, dass<br />

der <strong>Linux</strong>-Kernel keine Gelegenheit er-<br />

Ceph-FS<br />

Posixkonformes<br />

verteiltes<br />

Dateisystem<br />

Abbildung 2: Ceph-FS stellt die Filesystem-Schnittstelle des Rados-<br />

Storage-Frameworks nach außen dar.<br />

Benchmarks 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

43


Titelthema<br />

www.linux-magazin.de Benchmarks 02/2013<br />

44<br />

30<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

Sekunden<br />

x 1000<br />

1,3<br />

1,2<br />

2,0<br />

1,9<br />

1,4<br />

0,9<br />

DD-Write<br />

1 MByte<br />

12,1<br />

11,6<br />

19,2<br />

18,4<br />

29,9<br />

DD-Write<br />

10 MByte<br />

26,6<br />

0,5<br />

0,5<br />

19,0<br />

18,3<br />

DD-Read<br />

10 MByte<br />

0,9<br />

0,7<br />

NFS 3<br />

NFS 4<br />

CIFS-SMB<br />

CIFS-SMB 2<br />

Gluster-FS<br />

Ceph-FS<br />

Abbildung 3: Blocktransfers im Real-World-Szenario: Gluster-FS und Ceph-FS liegt das Schreiben großer Blöcke<br />

offensichtlich nicht besonders. Beim Lesen großer Datenmengen zeigen die CIFS-Geschwister Hemmungen.<br />

Jedes Netzwerk-Dateisystem bietet beinahe<br />

unzählige Möglichkeiten zur Optimierung.<br />

Um eine klare Vergleichbarkeit<br />

herzustellen, lief ein Teil der Tests Outof-the-Box<br />

ohne Optimierung und ein<br />

anderer Teil mit einem für das jeweilige<br />

Dateisystem passenden bekannten Optimierungspattern.<br />

<strong>Die</strong> Ergebnisse des umfangreichen Bündels<br />

an Messungen haben die Tester<br />

gemittelt, da dies nicht nur der Übersichtlichkeit<br />

dient, sondern auch einen<br />

seriösen Vergleich ermöglicht. Im Umkehrschluss<br />

heißt dies, dass alle Zahlen<br />

der Analyse nicht als absolute Werte zu<br />

verstehen sind, sondern nur die Relation<br />

zwischen Dateisystemen abbilden – das<br />

dafür besonders gut.<br />

<strong>Die</strong> Balkendiagramme in Abbildung 3,<br />

4 und 5 zeigen die gemittelten Einzelergebnisse.<br />

Wer einzelne Performance-Anforderungen<br />

an Netzwerk-Dateisysteme<br />

hat, kann hier eine Vorauswahl treffen.<br />

Um den Ausgang des Wettrennens klarer<br />

zu machen, zeigen die drei ersten Spalten<br />

von Tabelle 2 die Rankings der testkanhält,<br />

Optimierungen durchzuführen und<br />

IO-Operationen über Buffers oder Caches<br />

zu serialisieren. Eine weitere Herausforderung<br />

für sauberes Benchmarking ist,<br />

dass die Testprogramme selbst keine Buffers<br />

und Caches in Anspruch nehmen.<br />

Um solchen Effekten zu begegnen gibt<br />

es drei Möglichkeiten:<br />

n Das Gehäuse aufschrauben und einen<br />

Teil des Arbeitsspeichers ausbauen,<br />

n per Grub-Kernelparameter »mem=«<br />

den Speicher limitieren, den <strong>Linux</strong><br />

verwenden soll, (was übrigens auf<br />

den Testsystemen auch unter Beachtung<br />

der »uppermem«-Direktive nicht<br />

funktionierte) oder<br />

Tabelle 1: Verwendete Benchmarks<br />

Name<br />

Mkdir<br />

Touch<br />

Echo<br />

Cat<br />

Beschreibung<br />

16 Top- mit je 1024 Unterverzeichnissen<br />

anlegen<br />

16*1024 leeren Dateien anlegen<br />

63 Bytes langes Echo in erstellte<br />

leere Dateien<br />

63-Byte-Dateien nach »/dev/null«<br />

ausgeben<br />

DD-Write Sequenzielles Schreiben von 16*128<br />

1-MByte- und 10-MByte-Dateien mit<br />

einer Blockgröße von 512 Byte<br />

DD-Read Sequenzielles Lesen von 16*128<br />

10-MByte-Dateien mit Ausgabe<br />

nach »/dev/null«<br />

Rmfile Löschen von 16*1024 63-Byte-Dateien<br />

und 16*128 10-MByte-Dateien<br />

Rmdir Löschen von 16*1024 Verzeichnissen<br />

Iozone Iozone-Benchmark (Read, Write,<br />

Random Read, Random Write) mit<br />

32-MByte-Dateien ohne Prozessor-<br />

Caching<br />

n Direct-IO benutzen, welches dafür<br />

sorgt, dass das jeweilige Dateisystem<br />

unter Umgehung vom Buffercache des<br />

<strong>Linux</strong>-Kernels sofort auf die Festplatte<br />

schreibt.<br />

<strong>Die</strong> Testcrew für diesen Artikel benutzte<br />

die letzte Variante. Außerdem deaktivierte<br />

sie sowohl Raid-Controller-RAM<br />

als auch alle Festplatten-Caches, um auch<br />

diesen Komponenten keine Gelegenheit<br />

für Optimierungen zu verschaffen.<br />

Ein berechnetes Mittel<br />

mehrerer Varianten<br />

Um stochastisch auftretenden Fehlern<br />

keine Bedeutung zu verleihen und um<br />

praxisrelevant zu bleiben, liefen wie erwähnt<br />

alle Tests mehrfach. Dabei kamen<br />

einerseits konventionelle Festplatten und<br />

andererseits schnelle SSDs zum Einsatz.<br />

Um netzwerkseitig den klassischen Fileserver<br />

genauso wie eine SAN-Umgebung<br />

zu vertreten, liefen zudem ein Teil der<br />

Messungen mit der sehr gängigen MTU<br />

von 1500 ab und ein anderer Teil mit der<br />

MTU 9000 ab, also mit Jumbo Frames<br />

wie sie in geschlossenen SAN-Netzwerkumgebungen<br />

üblich sind.<br />

Tabelle 2: Platzierung<br />

Prozessorauslastung<br />

Im Verlaufe der Benchmarks als die mit<br />

Abstand CPU-hungrigsten Daemons erwiesen<br />

sich Gluster-FS (durchschnittlich<br />

35 Prozent Last) und Ceph-FS (40 Prozent).<br />

Das ist für Storage-Planer durchaus<br />

von Bedeutung, bei den hier verwendeten<br />

Rechnern kam es über den ganzen<br />

Testzeitraum aber nie zur CPU-Vollauslastung.<br />

CIFS machte den Eindruck, bei<br />

allen Operationen gleichmäßig rund 20<br />

Prozent der CPU-Leitung zu konsumieren.<br />

Dabei war unerheblich, ob SMB 2<br />

aktiviert war oder nicht. NFS 3 gab sich<br />

mit etwa 15 Prozent am genügsamsten<br />

im Testfeld, NFS 4 lag stets mit rund 2 bis<br />

3 Prozent Aufschlag knapp darüber.<br />

Werte und Wertung<br />

Atomare Dateiaktionen DD-Write und ‐Read Iozone Gesamt<br />

1. CIFS-SMB 1. NFS 4 1. NFS 4 1. NFS 4 (16 Punkte)<br />

2. CIFS-SMB 2 2. NFS 3 2. NFS 3 2. CIFS-SMB 2 (11 Punkte)<br />

3. NFS 4 3. Ceph-FS 3. CIFS-SMB 2 2. NFS 3 (11 Punkte)<br />

4. Ceph-FS 4. Gluster-FS 4. Ceph-FS 4. Ceph-FS (10 Punkte)<br />

5. Gluster-FS 5. CIFS-SMB 2 5. Gluster-FS 5. CIFS-SMB (8 Punkte)<br />

6. NFS 3 6. CIFS-SMB 6. CIFS-SMB 6. Gluster-FS (7 Punkte)


didaten für drei die Hauptdisziplinen atomare<br />

Dateiaktionen, DD-Write und ‐Read<br />

sowie Iozone.<br />

Erstaunlich an den Ergbnissen ist, dass<br />

die beiden CIFS-Samba-Implementierungen<br />

bei den atomaren Operationen, also<br />

Verzeichnisse und Dateien anlegen und<br />

so weiter, alle anderen Teilnehmer bei<br />

Weitem übertrumpfen. Bei den Durchsatztests<br />

dagegen trübt sich das sonnige<br />

Bild merklich ein. Einzig CIFS-SMB 2<br />

erklettert beim Iozone-Benchmark noch<br />

den dritten Rang, was eindeutig die verbesserte<br />

Performance von SMB 2 gegenüber<br />

SMB 1 darlegt.<br />

Obwohl es ein Newcomer und zudem<br />

ein im Userspace beheimatetes Filesystem<br />

ist, das beim Verarbeiten ständig Systemschranken<br />

passieren muss, schafft es<br />

Ceph-FS in allen Hauptdisziplinen auf<br />

mittlere Plätze. Gerade die Datentransferrate<br />

zeigt eindeutig, dass Ceph-FS schon<br />

heute eine gute Alternative zu den Etablierten<br />

bildet. Der andere Newcomer,<br />

Gluster-FS, lief durch die Tests zwar<br />

durchwegs stabil und erfreut mit einer Leseperformance,<br />

die sogar vor CIFS-SMB 2<br />

liegt, fällt als Userspace-Filesystem beim<br />

Schreiben aber mit immens schlechten<br />

Werten auf.<br />

Bei Ceph-FS und Gluster-FS wird eine<br />

Tendenz zur Optimierung auf große Dateien<br />

erkennbar, was mit dem propagierten<br />

Einsatzzweck in der Cloud und der<br />

seit Geburt integrierten Replikation mit<br />

VM-Images übereinstimmt.<br />

NFS 4 erweist sich bei Datenübertragungen<br />

als klarer Sieger. Atomare Dateisystemoperationen<br />

sind dagegen nicht so<br />

des Kandidaten Ding – hier ist sogar der<br />

Vorgänger NFS 3 besser.<br />

The Winner is …<br />

Um einen Gesamsieger zu küren, macht<br />

dieser Artikel eine einfache Rechnung<br />

auf: Für die drei Hauptdisziplinen in Tabelle<br />

2 vergibt sie an jedes Dateisystem<br />

für dessen erreichte Platzierung Punkte:<br />

Der Erstplazierte bekommt 6 Punkte, der<br />

Zweitplazierte 5 Punkte und so weiter.<br />

Aus der Summe der Punkte aus den drei<br />

Kategorien lässt sich dann leicht das<br />

Gesamtranking bestimmen – die vierte<br />

Spalte von Tabelle 2 zeigt es. <strong>Die</strong> Arme<br />

in Siegerpose hochreißen wie im Aufmacherfoto<br />

zu diesem Artikel darf: NFS<br />

4! Den zweiten Platz teilen sich salomonisch<br />

CIFS-SMB 2 und NFS 3.<br />

Fazit<br />

<strong>Die</strong> erhobenen Benchmark-Ergebnisse<br />

rücken ein paar Dinge gerade: <strong>Die</strong> vielen<br />

Betreiber von NFS-3-Fileservern machen<br />

im Kern nichts falsch: Der betagte Klassiker<br />

hält auch im Jahr 2013 unterm Strich<br />

gut mit. NFS 4 als Gesamtsieger des Performance-Wettbewerbs<br />

erweist sich zudem<br />

als ein mehr als würdiger Nachfolger<br />

und weist der NFS-3-Gemeinde einen<br />

guten Migrationspfad.<br />

E<br />

Benchmarks 02/2013<br />

Titelthema<br />

www.linux-magazin.de<br />

45<br />

Abo abschließen und gewinnen!<br />

Sparen Sie 15% beim<br />

Print- oder Digital-Abo<br />

und gewinnen Sie eins von zwei<br />

Archos 101 XS Gen 10 im Wert<br />

von circa 380 E!<br />

<strong>Die</strong> Verlosung erfolgt am 28.02.13 um 12 Uhr<br />

unter allen Abonnenten (außer Miniabos)<br />

<strong>Die</strong> Monatszeitschrift für Android-Fans, Smartphone- und Tablet-Nutzer<br />

Jetzt bestellen unter:<br />

www.android–user.de/abo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


Titelthema<br />

www.linux-magazin.de Benchmarks 02/2013<br />

46<br />

100<br />

80<br />

60<br />

40<br />

20<br />

29<br />

29<br />

25<br />

32<br />

35<br />

38<br />

49<br />

45<br />

34<br />

35<br />

52<br />

47<br />

32<br />

31<br />

21<br />

20<br />

19<br />

18<br />

36<br />

36<br />

38<br />

38<br />

44<br />

42<br />

96<br />

96<br />

63<br />

52<br />

34<br />

34<br />

13<br />

12<br />

42<br />

57<br />

9<br />

9<br />

NFS 3<br />

NFS 4<br />

CIFS-SMB<br />

CIFS-SMB 2<br />

Gluster-FS<br />

Ceph-FS<br />

0<br />

Sekunden<br />

Mkdir Touch Echo Cat Rmfile Rmdir<br />

Abbildung 4: Zum Absolvieren atomarer Dateioperationen brauchen die einzelnen Testkandidaten meist ähnlich lange. Echte Ausreißer ins Negative gibt es allein beim<br />

Löschen von Dateien (NFS) und Verzeichnissen (Gluster-FS und Ceph-FS).<br />

In Netzen mit Windows-Teilnehmer ist<br />

Samba nicht nur funktional die richtige<br />

Wahl, sondern in der Ausprägung SMB<br />

2 auch in Sachen Geschwindigkeit. Wer<br />

moderne <strong>Linux</strong>-Distributionen und keine<br />

Clients vor Windows Vista im Netzwerk<br />

hat einsetzt, sollte nicht davor zurückschrecken,<br />

die Direktive »max protocol<br />

= SMB2« in der »[global]«-Sektion der<br />

»smb.conf« einzutragen.<br />

<strong>Die</strong> Newcomer Ceph-FS und Gluster-FS legen<br />

offenbar beide den Fokus auf die Skalierbarkeit<br />

– und das kostet bei einfachen<br />

Dateisystemoperationen Performance.<br />

Ceph-FS schlägt sich hier viel wackerer<br />

als Gluster-FS, bei dem die Entwickler in<br />

dieser Hinsicht nacharbeiten sollten. Zur<br />

Ehrenrettung des Duos soll betont sein,<br />

dass der parallele Clusterbetrieb, also das<br />

Skalieren in die Breite, insbesondere bei<br />

300<br />

250<br />

200<br />

150<br />

100<br />

50<br />

0<br />

MByte/s<br />

47<br />

48<br />

96<br />

103<br />

Write<br />

72<br />

127<br />

48<br />

49<br />

97<br />

104<br />

68<br />

89<br />

Random Write<br />

240<br />

244<br />

HPC-Anwendern, nicht Gegenstand dieses<br />

Tests war. Mit einem Mehr an Servern<br />

lassen sich Performance-Nachteile in großen<br />

Produktivumgebungen vermutlich<br />

nicht nur kompensieren, sondern sogar<br />

zum Vorteil ummünzen.<br />

Generation Dauerlauf<br />

Da Fileserver zur Infrastruktur zählen,<br />

bei der bekanntlich Stabilität als ein sehr<br />

zentrales Kriterium gilt, eignet sich ein<br />

Abfallprodukt der unternommenen umfangreichen<br />

Benchmark-Tests als Lieferant<br />

der guten Nachricht zum Schluss:<br />

Bei keinem einzigen Test und keinem<br />

Testteilnehmer traten Locks oder Abstürze<br />

auf, auch nicht bei Ceph-FS, immerhin<br />

eine experimentelle Implementierung.<br />

Hier heißt es für alle: Sieg! (jk) n<br />

96<br />

101<br />

NFS 3<br />

NFS 4<br />

CIFS-SMB<br />

CIFS-SMB 2<br />

Gluster-FS<br />

Ceph-FS<br />

Abbildung 5: Durchschnittliche Datendurchsätze beim synthetischen Iozone: <strong>Die</strong> beiden NFS-Varianten zeigen<br />

sich hier als wahre Schnell-Leser, beim Schreiben machen CIFS und der Newcomer Ceph die beste Figur.<br />

Read<br />

126<br />

95<br />

244<br />

264<br />

96<br />

101<br />

121<br />

Random Read<br />

91<br />

Infos<br />

[1] NFS 3, RFC 1813:<br />

[http:// tools. ietf. org/ html/ rfc1813]<br />

[2] NFS 4, RFC 3010:<br />

[http:// tools. ietf. org/ html/ rfc3010]<br />

[3] CIFS-SMB: [http:// tools. ietf. org/ html/​<br />

draft‐heizer‐cifs‐v1‐spec‐00]<br />

[4] CIFS-SMB 2: [http:// download. microsoft.​<br />

com/ download/ a/ e/ 6/ ae6e4142‐aa58‐45c6<br />

‐8dcf‐a657e5900cd3/ [MS‐SMB2]. pdf]<br />

[5] Gluster-FS: [http:// www. gluster. org]<br />

[6] Ceph: [http:// ceph. com]<br />

[7] NFS Utilities: [http:// nfs. sourceforge. net]<br />

[8] Microsoft-Referenz zum Common Internet<br />

File System: [http:// technet. microsoft.​<br />

com/ en‐us/ library/ cc939973. aspx]<br />

[9] Quickstart-Anleitung für Ceph: [http://​<br />

ceph. com/ docs/ master/ start/ quick‐start/]<br />

[10] Ceph auf dem Open Suse Build Service:<br />

[https:// build. opensuse. org/ package/​<br />

show? project=home%3Anick_at_<br />

seakr%3Amisc& package=ceph]<br />

[11] Michael Kromer, „<strong>Linux</strong>-Dateisysteme im<br />

Leistungstest“, <strong>Linux</strong>-<strong>Magazin</strong> 07/​12, S. 28<br />

Der Autor<br />

Michael Kromer ([http://​<br />

medozas. de]) ist Leiter Professional<br />

Services Deutschland<br />

bei Zarafa und ist anderem<br />

für Large-Scale-Implementationen<br />

und Architekturen<br />

der Groupware verantwortlich. Privat<br />

engagiert er sich in diversen Open-Source-Projekten,<br />

zum Beispiel dem <strong>Linux</strong>-Kernel, Open NX,<br />

Asterisk, Virtualbox und ISC Bind. Seine persönlichen<br />

Leidenschaften gelten Open Suse, allen<br />

möglichen Virtualisierungstechnologien und Prozessorarchitekturen.


In eigener Sache: DELUG-DVD<br />

Linus, Mint, Ubuntu, Kochbuch<br />

Einführung 02/2013 12/2010<br />

Software<br />

Auch diesen Monat bekommen DELUG-Käufer wieder eine randvolle DVD mit exklusiven Inhalten: Von ihr bootet<br />

ein Mint-14-Viererpack. Dazu gibt es eine virtuelle Maschine mit dem weltweit kleinsten Ubuntu, der Ausgabe<br />

12.04 XXS, sowie ein Linus-Video und als E-Book kostenlos das <strong>Linux</strong>-Kochbuch von O’Reilly. Markus Feilner<br />

www.linux-magazin.de<br />

47<br />

Inhalt<br />

48 Bitparade<br />

Vier Timeline-Tools zeigen selbst die<br />

kompliziertesten Ereignisse der Weltgeschichte<br />

oder auch das Tagesgeschehen<br />

in übersichtlicher Form.<br />

56 Tooltipps<br />

Im Kurztest: Procenv 0.16, Crun 0.1.3,<br />

Pstoedit 3.61, Muddog 1.0.0, Xidel 0.6,<br />

und PNG Crush.<br />

60 X2go<br />

Der Terminalserver X2go in Version 4<br />

bringt ein Firefox-Plugin, unterstützt die<br />

neuesten Unity- und Gnome-Desktops<br />

und verbessert den OS-X-Client.<br />

Neben dem normalen <strong>Linux</strong>-<strong>Magazin</strong><br />

ohne Datenträger gibt es die DELUG-<br />

Ausgabe mit Monats-DVD, bei der die<br />

Redaktion den Datenträger nach einem<br />

speziellen Konzept zusammenstellt: In<br />

einer Art modularem System enthält<br />

er Programme und Tools, die in der jeweiligen<br />

<strong>Magazin</strong>-Ausgabe getestet und<br />

besprochen werden. Zudem führt eine<br />

HTML-Oberfläche durch von der Redaktion<br />

besonders empfohlene Software.<br />

Mint-Viererpack<br />

Von der DELUG-DVD bootet die neueste<br />

Variante der Ubuntu-Alternative <strong>Linux</strong><br />

Mint. <strong>Die</strong> basiert auf Ubuntu 12.10,<br />

verzichtet jedoch auf den umstrittenen<br />

Unity-Desktop und lässt dem Anwender<br />

die Wahl zwischen dem Gnome-2-Fork<br />

Mate und der auf Gnome 3 aufbauenden<br />

Oberfläche Cinnamon. Auf der DVD<br />

befinden sich alle aktuell verfügbaren<br />

Versionen jeweils in den 32- und 64-Bit-<br />

Varianten, und zwar sowohl als bootendes<br />

Multipack als auch als ISO-Images im<br />

Verzeichnis »/isos« der DVD.<br />

Hohndel vs. Torvalds<br />

Wer mit dem Browser auf die DVD zugreift,<br />

findet im HTML-Menü diverse<br />

exklusive Inhalte, zum Beispiel ein 45<br />

Minuten langes Interview-Video mit Linus<br />

Torvalds. <strong>Die</strong> <strong>Linux</strong> Foundation hat<br />

den <strong>Linux</strong>-Erfinder zusammen mit Dirk<br />

Hohndel auf der Bühne der <strong>Linux</strong>con<br />

2012 ein angeregtes Gespräch führen lassen<br />

(Abbildung 1). In dem Gespräch kommen<br />

sowohl die neuesten Fortschritte im<br />

<strong>Linux</strong>-Kernel zur Sprache als auch seine<br />

Zukunftspläne mit dem Projekt.<br />

<strong>Linux</strong>-Kochbuch<br />

Abbildung 1: Auf der <strong>Linux</strong>con 2012: Linus Torvalds<br />

im Gespräch mit Intels Dirk Hohndel.<br />

das Installieren von Software, die Benutzerverwaltung,<br />

das Dateimanagement,<br />

die Anpassung des Kernels, Bootloader<br />

und Multibooting, Systemreparaturen mit<br />

Knoppix, Drucken mit Cups, Backups<br />

und Systemsicherung, Versionskontrolle,<br />

Postfix, Spambekämpfung, Apache oder<br />

Samba. Normalerweise kostet das 600<br />

Seiten starke E-Book 15 Euro, DELUG-<br />

Käufer bekommen es kostenlos.<br />

Als virtual Appliance überzeugt Ubuntu<br />

12.04 auf der DVD nicht durch Größe,<br />

sondern durch Effizienz: Der <strong>Linux</strong>-<br />

Server belegt gerade einmal 300 MByte<br />

und eignet sich so perfekt als Basis, um<br />

darauf beispielsweise neue Webapplikationen,<br />

<strong>Die</strong>nste oder andere Programme<br />

zu testen. Das deutsche Tastaturlayout ist<br />

bereits installiert, mit den Paketmanagern<br />

Apt-get und Dpkg lassen sich beliebige<br />

weitere Programme installieren.<br />

© Dmitri Popov<br />

Abbildung 2: Kostenlos als E-Book auf der DVD:<br />

„<strong>Linux</strong> Kochbuch“ von Carla Schroder.<br />

O’Reillys „<strong>Linux</strong> Kochbuch“ (Abbildung<br />

2) serviert dem Leser die konzentrierte<br />

Erfahrung vieler Jahre <strong>Linux</strong>-Administration<br />

in Form praktischer Rezepte. Jede<br />

Lösung lässt sich direkt auf typische Alltagsprobleme<br />

anwenden und spart Stunden<br />

mühevollen Ausprobierens rund um<br />

X2go, Timelines, Moreutils<br />

Damit nicht genug: Auf der DVD finden<br />

sich zusätzlich jede Menge Software aus<br />

den Tooltipps, der Bitparade mit den<br />

Timeline-Tools sowie die Moreutils aus<br />

Charlys Sysadmin-Kolumne. n


Software<br />

www.linux-magazin.de Bitparade 02/2013<br />

48<br />

Vier Zeitleisten-Tools im Test<br />

Zeitreise<br />

13 Tage lang drohte im Jahr 1962 der Ausbruch eines dritten Weltkriegs, aber was passierte wann in der Kubakrise?<br />

Und wie war noch gleich der zeitliche Ablauf der ersten Mondlandung? Vier Zeitleisten-Tools stellen<br />

komplexe Themen der Weltgeschichte und tagesaktuelle Ereignisse anschaulich dar. Mela Eckenfels<br />

© Bruce Rolff, 123RF<br />

Zeitleisten bevölkern das WWW – und<br />

das nicht erst, seit Facebook von der<br />

Pinnwand auf die Chronik umgestellt hat.<br />

Onlinemedien, wissenschaftliche Einrichtungen<br />

und Privatanwender profitieren<br />

gleichermaßen von der anschaulichen<br />

Umsetzung abstrakter Zahlen und Fakten.<br />

Im besten Fall bindet der Zeitstrahl<br />

nicht nur Daten, sondern auch Fotos,<br />

Videos, Texte und Links zu externen Inhalten<br />

ein und erlaubt einen virtuellen<br />

Bummel durch die Geschichte.<br />

Vier Zeitleisten-Tools treten in dieser Bitparade<br />

zur Zeitreise an: der kommerzielle<br />

Cloud-<strong>Die</strong>nst Dipity [1], das Simile-Widget<br />

Timeline [2], das Desktoptool The<br />

Timeline Project [3] und die Javascript-<br />

Bibliothek Timeline JS [4]. Unter Ubuntu<br />

12.10 und <strong>Linux</strong> Mint Cinnamon zeigen<br />

die Kandidaten, wie gut sie mit modernen<br />

Browsern und <strong>Linux</strong>-Systemen zusammenarbeiten.<br />

Auch die Bedienung<br />

steht auf dem Prüfstand. <strong>Die</strong> Tester untersuchen,<br />

wie komfortabel die Daten in<br />

den Zeitstrahl wandern, welche multimedialen<br />

Inhalte dort erlaubt sind und<br />

wie benutzerfreundlich die Navigation<br />

ist. Last but not least stellen sie die Frage<br />

nach den Im- und Exportformaten.<br />

E Dipity<br />

<strong>Die</strong> Firma Underlying Inc. aus San Francisco<br />

gründete Dipity [1] im Jahr 2007.<br />

Bei der kommerziellen Plattform handelt<br />

es sich um einen Cloud-<strong>Die</strong>nst, das heißt,<br />

dass alle Timelines auf dem Server des<br />

Anbieters verbleiben. Insgesamt fünf Tarifmodelle<br />

sind im Angebot. Der kostenlose,<br />

durch Werbung finanzierte Zugang<br />

heißt Personal und bietet drei Zeitleisten<br />

mit bis zu 150 Einträgen. Bindet der Anwender<br />

die Leiste in seine eigene Webseite<br />

ein, erlaubt Dipity maximal 5000<br />

Abrufe beziehungsweise Einblendungen<br />

pro Monat. Auch der Upload ist begrenzt<br />

auf 50 MByte.<br />

<strong>Die</strong> Bezahltarife Plus, Prime und Pro kosten<br />

rund 5 bis 100 US-Dollar monatlich.<br />

Das Plus-Modell erlaubt den Massenimport<br />

vorbereiteter Daten, bietet zehn<br />

Timelines mit unbegrenzten Einträgen<br />

und 10 000 Aufrufen in eigenen Seiten.<br />

<strong>Die</strong> nächsten Stufen, Prime und Pro,<br />

enthalten 50 000 und 100 000 Einblendungen,<br />

unbegrenzte Zeitleisten sowie<br />

weitere Extras. Wer das Design seiner<br />

Zeitleisten ans eigene Corporate Design<br />

anpassen möchte, sollte den Partner-Tarif<br />

in Erwägung ziehen und dazu mit der<br />

Firma Kontakt aufnehmen [5].<br />

Bereits ab der Plus-Variante surfen Anwender<br />

werbefrei, eingebettete Leisten<br />

verzichten auf Reklame ab Dipity Pro.<br />

Auch für die kommerzielle Nutzung ist<br />

mindestens Pro erforderlich. Ab diesem<br />

Modell steht der so genannte Kioskmodus<br />

zur Verfügung, der Zugriff auf die<br />

Bedienelemente des Browsers und auf<br />

die anderen Anwendungen unterbindet.<br />

<strong>Die</strong>se Betriebsart eignet sich somit ideal<br />

für Ausstellungen oder Museen, bei denen<br />

Besucher an einem PC selbst eine<br />

Zeitleiste durchforsten dürfen.<br />

Im Auge des Betrachters<br />

Dipity nutzt zur Darstellung gängige<br />

Webtechnologien wie HTML, CSS und<br />

Javascript/​Ajax. <strong>Die</strong> Plattform arbeitet<br />

Zeitleisten-Tools<br />

Auf der Delug-DVD dieses <strong>Magazin</strong>s<br />

befinden sich die in diesem Artikel ge-<br />

DELUG-DVD<br />

testeten Programme Simile Timeline (Version<br />

2.3.0), The Timeline Project (Version 0.18.0)<br />

und Timeline JS (Version 2.17).


Abbildung 1: Übersichtlich, bunt und mit mehreren Zoomstufen präsentiert sich der Cloud-<strong>Die</strong>nst Dipity.<br />

Neben der klassischen Ansicht bietet er eine Flipbook-, Listen- und Kartendarstellung.<br />

daher mit allen modernen Browsern<br />

(Firefox, Internet Explorer, Safari und<br />

Chrome) zusammen. Der Anbieter selbst<br />

empfiehlt für beste Ergebnisse Safari und<br />

Chrome.<br />

<strong>Die</strong> Leisten sind schlicht gehalten. Am<br />

unteren Rand befindet sich ein schmaler<br />

Zeitstrahl. Er zeigt wahlweise Stunden,<br />

Tage, Wochen, Monate, Jahre, Jahrzehnte<br />

oder Jahrhunderte an, von 9999 vor bis<br />

9999 nach Beginn der Zeitrechnung. Im<br />

großen Feld über dem Zeitstrahl platziert<br />

Dipity die eigentlichen Inhalte, Events<br />

genannt. Sie zeigen den Titel, das genaue<br />

Datum und eine <strong>Vorschau</strong> für Bilder und<br />

Videos (siehe Abbildung 1).<br />

Bunte Vielfalt<br />

Von dieser klassischen Ansicht schalten<br />

Anwender über die Links am oberen<br />

Rand zu einer anderen Perspektive um.<br />

So blättern sie im Flipbook durch die<br />

Ereignisse wie in einer Art Fotoalbum.<br />

Um Details einzublenden, genügt es, mit<br />

der Maus über das Bild zu fahren. <strong>Die</strong><br />

Listendarstellung schreibt alle Ereignisse<br />

samt ihrer ausführlichen Beschreibung<br />

untereinander und eignet sich somit<br />

prima, um einfach nur den Text herauszufiltern.<br />

Optional betrachten Anwender<br />

die Events auf einer Google-Maps-Karte,<br />

sofern sie Geotags enthalten.<br />

Anwender legen Events entweder von<br />

Hand an oder erzeugen die Leiste automatisch<br />

aus externen Quellen. Der Massenimport<br />

von Daten, zum Beispiel aus<br />

einer CSV-Datei, steht allerdings für den<br />

kostenlosen, werbefinanzierten Zugang<br />

nicht zur Verfügung. <strong>Die</strong> Konfigurationsmöglichkeiten<br />

für Ereignisse sind nicht<br />

überwältigend. Außer einer Beschreibung<br />

fügen Anwender ein Bild, einen Weboder<br />

Videolink hinzu.<br />

Bei Events, die sich über mehrere Tage<br />

oder Wochen erstrecken, scheitert Dipity,<br />

denn die Plattform kennt keine Datumsbereiche.<br />

Ebenfalls schlecht gelöst ist,<br />

Abbildung 2: Dipity bezieht Inhalte aus vielen sozialen Netzwerken. So erstellen Anwender über Hashtags<br />

schnell Zeitleisten zu populären Twitter-Themen.<br />

dass Benutzer ihre fertigen Ereignisse nur<br />

löschen, aber nicht nachträglich bearbeiten<br />

dürfen.<br />

Mit der Maus verschieben die Anwender<br />

die Zeitleiste nach rechts oder links, das<br />

Scrollen per Rad klappte im Test jedoch<br />

nicht. Am linken Rand zeigt Dipity eine<br />

Zoomfunktion, um die Ansicht zu vergrößern<br />

oder zu verkleinern. <strong>Die</strong> integrierte<br />

Suchfunktion erfasst sowohl die<br />

Eventtitel als auch die Inhalte. Eine erweiterte<br />

Suche grenzt die Recherche auf<br />

bestimmte Datumsbereiche ein.<br />

Dipitys Stärke liegt vor allem im Import<br />

von Daten aus sozialen Netzwerken. <strong>Die</strong><br />

Plattform fügt Fotos von Flickr oder Picasa,<br />

Musik von Last.fm und Pandora<br />

sowie Videos aus Youtube und Vimeo<br />

hinzu. Zudem integriert sie Blogs der<br />

Plattformen Tumblr, Wordpress und<br />

Blogger, Microblogging-Artikel von Twitter<br />

oder Friendfeed (siehe Abbildung 2).<br />

Auch vor Zeitleisten des zweiten Testkandidaten,<br />

des Simile-Widget Timeline,<br />

macht Dipity nicht Halt, sofern die zugehörige<br />

XML-Datei über eine URL erreichbar<br />

ist.<br />

Beim Export sieht es hingegen noch recht<br />

mau aus. Derzeit fertigt die Software lediglich<br />

RSS-Feeds aus den Timelines.<br />

<strong>Die</strong>se sind jederzeit über die URL der<br />

Timeline erreichbar, wenn Anwender den<br />

Zusatz »/rss« anhängen. <strong>Die</strong> Dipity-Entwickler<br />

kündigen in der FAQ einen PDF-<br />

Export für die kommende Version an, damit<br />

Benutzer ihre Zeitleisten ausdrucken<br />

und so offline verwenden können.<br />

E Simile Timeline<br />

Beim zweiten Kandidaten handelt es sich<br />

um Open-Source-Software. Ursprünglich<br />

im Rahmen eines Forschungsprojekts am<br />

MIT entwickelt, gehört Timeline [2] nun<br />

zu den Simile-Widgets (Semantic Interoperability<br />

of Metadata and Information<br />

in unlike Environments) und steht unter<br />

der BSD-Lizenz. Das Programm läuft<br />

auf Standardwebservern und setzt auf<br />

HTML, Javascript, Ajax und CSS. Es zeigt<br />

die Zeitleisten wahlweise auf dem eigenen<br />

Server oder lokal und offline an. Im<br />

Test tritt Version 2.3.0 an.<br />

Im HTML-Quellcode ihrer Webseite verlinken<br />

Anwender zunächst das Timeline-<br />

API, indem sie den Link zur Javascript-<br />

Komponente im Header setzen. Danach<br />

Bitparade 02/2013<br />

Software<br />

www.linux-magazin.de<br />

49


Software<br />

www.linux-magazin.de Bitparade 02/2013<br />

50<br />

beschreiben sie – ebenfalls im HTML-<br />

Code – in einem »«-Element die<br />

neue Zeitleiste. Dahinter sollten Nutzer<br />

über »« einen Hinweis<br />

an alle Seitenbesucher ausgeben, die<br />

Javascript im Browser deaktiviert haben.<br />

Es folgen der Aufruf verschiedener Funktionen<br />

und die Definition der Events. Das<br />

Wiki unter [6] beschreibt die einzelnen<br />

Schritte detailliert und zeigt etliche<br />

Codebeispiele.<br />

Um eine Zeitleiste offline auf dem eigenen<br />

Rechner zu präsentieren, ist kein lokaler<br />

Webserver erforderlich. Anwender<br />

laden lediglich die Timeline-Bibliotheken<br />

herunter und passen in der HTML-Datei<br />

die Pfade ans lokale System an. Auch für<br />

dieses Szenario enthält das Wiki eine<br />

Anleitung [7]. Da Simile Timeline auf<br />

offene Webstandards setzt, spielt das<br />

Widget mit allen modernen Browsern<br />

zusammen.<br />

In der Standardkonfiguration präsentiert<br />

Simile Timeline zwei Bänder. Das obere<br />

zeigt kleinere Zeitabschnitte an, das untere<br />

erlaubt die Navigation in größeren<br />

Schritten. Mehr als zwei Bänder für sehr<br />

umfangreiche Timelines sind über entsprechende<br />

Javascript-Codeschnipsel<br />

möglich. Das Widget hält Schritt mit Ereignissen<br />

vor und nach der Zeitwende.<br />

Einmalige Events stellt es als Bulletpoints<br />

dar, zeitüberspannende erscheinen als<br />

Balken. Klickt der Anwender auf einen<br />

Abbildung 3: Das Simile-Widget Timeline zeigt im oberen Bereich kleine Zeitabschnitte mit einmaligen oder<br />

andauernden Ereignissen, unten finden Anwender größere Zeitschritte für die schnelle Navigation.<br />

Eintrag, blendet das Tool die Beschreibung<br />

ein (siehe Abbildung 3).<br />

Offene Formate<br />

Events liest das Widget aus XML-, Jsonoder<br />

Sparq-Dateien ein. Wer nicht zu einem<br />

Texteditor greifen möchte, der findet<br />

im Blog Lifehacker einen XML-Generator<br />

[8]. Über ein Webformular trägt der Benutzer<br />

seine Rahmendaten ein und erhält<br />

dann fertigen Quellcode. <strong>Die</strong> Datenformate<br />

für die Ereignisse laden selbstverständlich<br />

zum Skripten ein. Das Timeline-Wiki<br />

bietet hilfreiche Anleitungen,<br />

um beispielsweise Datensätze aus einer<br />

MySQL-Datenbank in Json-Event-Quellen<br />

einzulesen [9]. Bei den multimedialen<br />

Inhalten beschränkt sich dieser Kandidat<br />

auf Bilder und Links.<br />

Anwender navigieren durch die Zeitleiste,<br />

indem sie diese mit der Maus hin und her<br />

schieben. Alternativ klappt das auch über<br />

das Mausrad. Wer mit dem Rad zoomen<br />

möchte, findet eine entsprechende Anleitung<br />

im Simile-Wiki [10]. In der Voreinstellung<br />

gibt es keinen Weg, die Zeitleiste<br />

zu vergrößern oder zu verkleinern.<br />

Such- und Filtermöglichkeiten haben die<br />

Entwickler ebenfalls nicht implementiert.<br />

Anwender, die eine solche Funktion für<br />

die eigenen Zeitleisten umsetzen möchten,<br />

sollten sich dazu Simile Exhibit anschauen<br />

[11]. Geübte Webentwickler verbinden<br />

es leicht mit Timeline und setzen<br />

so interaktive Multimedia-Timelines mit<br />

angebunden Google Maps, Filtern und<br />

Ähnlichem (Abbildung 4).<br />

Von Haus aus bietet Timeline keine Imund<br />

Exportfunktionen. Da die Datensätze<br />

aber wie erwähnt alle in offenen Formaten<br />

vorliegen, steht einer eigenen Implementation<br />

nichts im Wege.<br />

E The Timeline Project<br />

Abbildung 4: Das Framework Simile Exhibit verbindet Timeline-Werke mit Such- und Filtermöglichkeiten,<br />

interaktiven Karten und anderen Visualisierungen.<br />

The Timeline Project [3] vom Entwicklerduo<br />

Rickard und Roger Lindberg reiht<br />

sich als Desktoptool in den Testreigen


ein. <strong>Die</strong> Python-Anwendung steht unter<br />

der GPLv3 und läuft laut Aussage der<br />

Entwickler auf allen Plattformen, die Python<br />

und das zusätzlich benötigte Paket<br />

Wxpython bieten. Für Windows-Nutzer<br />

steht ein vorkompiliertes Binary zum<br />

Download bereit; <strong>Linux</strong>er finden auf der<br />

Projekthomepage die Quellen. Im Test<br />

tritt Version 0.18.0 an.<br />

Das Timeline-Tool startet der Anwender<br />

von der Kommandozeile aus mit dem<br />

folgenden Befehl:<br />

Farben, die der Benutzer bei der Einrichtung<br />

selbst aussuchen darf. Klickt er ein<br />

Ereignis mit der Maus an, sieht er die<br />

detaillierte Beschreibung und eingefügte<br />

Bilder (siehe Abbildung 5).<br />

Im Gegensatz zur Konkurrenz zeigt das<br />

Tool Daten vor der Zeitwende nur an,<br />

wenn Nutzer dies explizit aktivieren. Das<br />

Feature ist als experimentell gekennzeichnet<br />

und soll in kommenden Programm-<br />

Bitparade 02/2013<br />

Software<br />

www.linux-magazin.de<br />

51<br />

python ~/bin/timeline‐0.18.0/timeline.py<br />

In der Mitte des Programmfensters befindet<br />

sich der Zeitstrahl. Einmalige<br />

Ereignisse erscheinen oberhalb davon;<br />

solche, die sich über einen längeren Zeitraum<br />

hinweg erstrecken, positioniert The<br />

Timeline Project darunter.<br />

Events stellt die Anwendung als Balken<br />

oder Streifen dar, in denen der Titel<br />

sichtbar ist. Abhängig von der gewählten<br />

Kategorie erhalten sie unterschiedliche<br />

Abbildung 5: Hat der Benutzer zu einem Ereignis ein Bild hinzugefügt, verkleinert The Timeline Project dieses<br />

und zeigt es nach einem Mausklick in der Zeitleiste an.<br />

nUr<br />

MiT dVd!<br />

MAGAZIN<br />

Coupon senden an: <strong>Linux</strong>-<strong>Magazin</strong> Leser-Service A.B.O.<br />

Postfach 1165, 74001 Heilbronn<br />

JA,<br />

SondErAkTion<br />

Testen Sie jetzt<br />

3 Ausgaben<br />

für 3 Euro!<br />

ich möchte die nächsten 3 <strong>Linux</strong>-<strong>Magazin</strong>-Ausgaben für nur E 3*, statt<br />

E 17,40*, testen. Wenn mich das <strong>Linux</strong>-<strong>Magazin</strong> überzeugt und ich 14 Tage<br />

nach Erhalt der dritten Ausgabe nicht schriftlich abbestelle, erhalte ich das <strong>Linux</strong>-<strong>Magazin</strong> jeden<br />

Monat zum Vorzugspreis von nur E 5,13* statt E 5,80* im Einzelverkauf, bei jährlicher Verrechnung.<br />

Ich gehe keine langfristige Verpflichtung ein. Möchte ich das <strong>Linux</strong>-<strong>Magazin</strong> nicht mehr beziehen,<br />

kann ich jederzeit schriftlich kündigen. Mit der Geld-zurück-Garantie für bereits bezahlte,<br />

aber nicht gelieferte Ausgaben.<br />

Name, Vorname<br />

Straße, Nr.<br />

PLZ<br />

Ort<br />

Datum<br />

Unterschrift<br />

Gleich bestellen, am besten mit dem Coupon<br />

oder per<br />

• Telefon: 07131 / 2707 274 • Fax 07131 / 2707 78 601<br />

• E-Mail: abo@linux-magazin.de<br />

Mit großem Gewinnspiel (Infos unter: www.linux-magazin.de/probeabo)<br />

*Preis gilt für Deutschland<br />

Mein Zahlungswunsch: Bequem per Bankeinzug Gegen Rechnung<br />

BLZ<br />

Konto-Nr.<br />

Bank<br />

Beliefern Sie mich bitte ab der Ausgabe Nr.<br />

LM1124M


Software<br />

www.linux-magazin.de Bitparade 02/2013<br />

52<br />

Abbildung 6: In diesem Dialog erstellen und bearbeiten Anwender die Ereignisse. Wer ein Bild hinzufügen<br />

möchte, der wählt im unteren Bereich den Reiter »Icon«.<br />

versionen wieder ganz verschwinden –<br />

eine Rückkehr ist ungewiss.<br />

Beim Anlegen einer Zeitleiste ist Handarbeit<br />

gefragt, denn The Timeline Project<br />

liest keine Datensammlungen aus<br />

externen Quellen ein. Da die Anwendung<br />

allerdings ihre eigenen Dateien im XML-<br />

Format ablegt, könnten entsprechende<br />

Skripte beispielsweise Datenbank-Auszüge<br />

oder Excel-Tabellen für den Import<br />

vorbereiten. Allen anderen bleibt nur die<br />

Möglichkeit, die Zeitleiste über die Eingabemaske<br />

zu füttern.<br />

<strong>Die</strong> Maske bietet unter anderem die Option<br />

»Period« für andauernde Events, ein<br />

Feld für die Beschreibung (siehe Abbildung<br />

6) und den Reiter »Icon«. Über<br />

diesen wandern Bilder in die Timeline,<br />

welche die Software allerdings auf 128<br />

mal 128 Pixel verkleinert und somit nur<br />

als Thumbnails präsentiert.<br />

Schlicht und einfach<br />

sich hinter »Edit«. Sie beschränkt sich<br />

aber auf die Titel; Begriffe aus den Beschreibungen<br />

findet sie nicht.<br />

<strong>Die</strong> Exportfunktionen sind ebenso dürftig<br />

wie die Importfähigkeiten. The Timeline<br />

Project wandelt die Zeitleisten samt Text<br />

und Bildern ins SVG- oder PNG-Format.<br />

Leider erfasst die Software hierbei nur<br />

den Bildschirminhalt und nicht den gesamten<br />

Zeitstrahl. Je nach Darstellungsgröße<br />

fehlen also wichtige Daten, und<br />

die Leiste ist vorne oder hinten abgeschnitten.<br />

Wer die mit dem Programm erstellten<br />

».timeline«-Dateien in eigene Webseiten<br />

einbinden möchte, der sollte sich Timeline<br />

Viewer [12] anschauen: Benutzer<br />

können ihre Daten über ein Formular<br />

zum Onlinedienst hochladen und für den<br />

Webauftritt konvertieren.<br />

E Timeline JS<br />

Der letzte Zeitspezialist in dieser Runde<br />

stammt aus der Feder des Journalismus-<br />

Dozenten Zach Wise und ist in Zusammenarbeit<br />

mit Véritéco und Knight Lab<br />

[13] entstanden. Timeline JS [4] ist vor<br />

allem bei Journalisten im angloamerikanischen<br />

Sprachraum beliebt und steht<br />

unter der Mozilla Public License. Im Test<br />

zeigt die Version 2.17, was sie als Chronistin<br />

zu bieten hat.<br />

<strong>Die</strong> Javascript-Bibliothek setzt auf die<br />

Jade-Template-Engine sowie die Jquery-<br />

Bibliothek. Anwender stellen ihre Zeitleisten<br />

entweder online über den eingebetteten<br />

Generator her [14] oder laden<br />

das Timeline-JS-Paket von Github [15]<br />

herunter und entpacken es in einem lokalen<br />

Verzeichnis. Auf der Download-Seite<br />

befindet sich ebenfalls die Dokumentation,<br />

die verschiedene Wege aufzeigt, um<br />

die Bibliothek in eigenen Webseiten zu<br />

nutzen. Timeline JS unterstützt alle modernen<br />

Browser, den Internet Explorer<br />

erst ab Version 8.<br />

Am unteren Rand der Zeitleiste befindet<br />

sich die Skala, die entweder Jahre, Dekaden<br />

oder Jahrhunderte anzeigt. Welche<br />

Einheiten Timeline JS hier verwendet,<br />

bestimmen die Eventdaten. Eine direkte<br />

Möglichkeit, den Maßstab zu beeinflussen,<br />

haben Benutzer somit nicht. Das<br />

mittlere Band zeigt eine Event-Übersicht.<br />

Über ein kleines Icon erkennen Benutzer,<br />

Bei der Navigation unterstützt das Mausrad.<br />

Alternativ offeriert der Menüpunkt<br />

»Navigate« weitere Optionen. Hier entscheidet<br />

der Benutzer, ob er nur alle Ereignisse<br />

eines Tages oder die eines ganzen<br />

Jahrhunderts sehen möchte. Außerdem<br />

kann er in Wochen-, Monats- oder Jahresschritten<br />

durch die Timeline blättern. <strong>Die</strong><br />

Kategorien am linken Fensterrand dürfen<br />

Anwender per Mausklick gezielt ausblenden<br />

und so für mehr Übersicht sorgen,<br />

wenn sie bestimmte Ereignisse nicht sehen<br />

möchten. <strong>Die</strong> Suchfunktion versteckt<br />

Abbildung 7: Timeline JS präsentiert sich dreigeteilt: Am unteren Rand liegt die Skala, darüber die eigentliche<br />

Zeitleiste, und oben ist Platz für Multimediales.


Abbildung 8: Bequemer geht’s kaum: Wer sich Json nicht gewachsen fühlt, der baut seine Zeitleisten einfach<br />

über Google Docs zusammen.<br />

mit welchen multimedialen Inhalten die<br />

Einträge verknüpft sind. In dem oberen<br />

breiten Band blendet Timeline JS die<br />

angeschlossenen Inhalte ein (siehe Abbildung<br />

7).<br />

Gut vernetzt<br />

Als Datenbasis nutzt Timeline JS entweder<br />

Google-Spreadsheets oder Json-Dateien.<br />

Mit Letzteren füllen fortgeschrittene<br />

Anwender ihre Zeitleisten mit dynamisch<br />

generiertem Wissen, zum Beispiel aus<br />

einer Datenbank. Novizen steht der Weg<br />

über Google Docs offen (siehe Abbildung<br />

8). Ein entsprechendes Template samt<br />

einer Anleitung stellen die Timeline-JS-<br />

Macher unter [16] bereit. Um Daten vor<br />

der Zeitwende zu integrieren, schreibt<br />

der Benutzer ein Minuszeichen vor die<br />

Jahreszahl.<br />

Ein Pferdefuß des ansonsten gut gelungenen<br />

Tools: <strong>Die</strong> Entwickler empfehlen<br />

nicht mehr als 100 Ereignisse pro Zeitleiste<br />

und weisen darauf hin, dass bereits<br />

ab 20 bis 30 Einträgen die Performance<br />

leiden könnte. Hier besteht Nachbesserungsbedarf.<br />

Dafür punktet Timeline JS,<br />

wenn es um das Einbetten multimedialer<br />

Inhalte geht. Anwender dürfen zahlreiche<br />

Onlinequellen einbeziehen, darunter<br />

Flickr, Storify, Twitter, Youtube oder<br />

Vimeo. Während die anderen Testkandidaten<br />

sich auf <strong>Vorschau</strong>funktionen beschränken,<br />

ist hier im oberen Band genug<br />

Platz für die Medien.<br />

Obwohl das Tool eine vollwertige Zeitleiste<br />

präsentiert, fühlt sich die Navigation<br />

für den Betrachter eher so an, als<br />

würde er durch ein Album blättern. Für<br />

Übersicht und Struktur sorgen Tags, die<br />

so ähnlich arbeiten wie die Kategorien<br />

bei The Timeline Project. Eine Zoomfunktion<br />

ist über Schaltflächen am linken<br />

Rand erreichbar.<br />

Eine Suchfunktion existiert derzeit nicht,<br />

was aber zu verschmerzen ist, da das<br />

Limit von 100 Events die Zeitleisten selten<br />

unübersichtlich macht. Auch beim<br />

Im- und Export ist Timeline JS knausrig,<br />

solche Funktionen fehlen. Mit Json verwendet<br />

allerdings auch dieser Kandidat<br />

ein portables Datenformat, was Spielraum<br />

für eigene Lösungen lässt.<br />

Am Ende der Zeit<br />

Dipity macht eine gute Figur, wenn es<br />

darum geht, Zeitleisten fortlaufend mit<br />

Informationen aus sozialen Netzwerken<br />

zu füllen. Tweets und Bilder von Konferenzen<br />

versammelt das Timeline-Tool<br />

ganz unkompliziert. Es eignet sich daher<br />

gut für Anwender, die solche Sammlungen<br />

auf einer Webseite oder der eigenen<br />

Twitter-Wall anzeigen möchten, ohne zu<br />

sehr auf den eigenen Geldbeutel achten<br />

zu müssen. Wer Wert auf die volle Kontrolle<br />

über die eigenen Daten legt, der<br />

sollte allerdings statt des Cloud-<strong>Die</strong>nstes<br />

einem der anderen Kandidaten den Vorrang<br />

geben.<br />

Puristen, die keine multimedialen Extras<br />

brauchen, sollten sich Simile Timeline<br />

anschauen. Das Werkzeug verlangt allerdings<br />

eine gewisse Einarbeitungszeit<br />

und entfaltet erst im Zusammenspiel mit<br />

Simile Exhibit sein volles Potenzial. Eine<br />

steile Lernkurve und längere Debugging-<br />

Sessions sind für Novizen programmiert.<br />

Erfahrene Webentwickler sollten sich jedoch<br />

gut zurechtfinden.<br />

Wenn auch solide und leicht zu handhaben,<br />

so hält The Timeline Project optisch<br />

nicht mit der Konkurrenz mit. Für wenig<br />

komplexe Zeitleisten, die nicht zwingend<br />

im Web verfügbar sein müssen, ist es<br />

jedoch gut geeignet. Darüber hinaus ist<br />

es von allen Kandidaten am schnellsten<br />

einsatzbereit und verlangt den geringsten<br />

Arbeitsaufwand.<br />

Timeline JS erfreut erfahrene Programmierer<br />

und Otto-Normal-Benutzer. Multimediale<br />

Zeitleisten basteln sie ruck zuck<br />

über eigene Lösungen oder Google Docs.<br />

Was die Vielfalt externer Inhalte angeht,<br />

übertrifft der vierte Kandidat sogar Dipity.<br />

Dass die Daten auf dem eigenen Server<br />

verbleiben, ist ein weiterer Pluspunkt.<br />

Dass die Performance mit wachsenden<br />

Events allerdings abnimmt und bei 100<br />

Einträgen die Grenze erreicht ist, behindert<br />

die Zeitreise. (hej) <br />

n<br />

Infos<br />

[1] Dipity: [http:// www. dipity. com]<br />

[2] Simile-Widget Timeline:<br />

[http:// www. simile‐widgets. org/ timeline]<br />

[3] The Timeline Project:<br />

[http:// thetimelineproj. sourceforge. net]<br />

[4] Timeline JS: [http:// timeline. verite. co]<br />

[5] Dipity-Preise:<br />

[http:// www. dipity. com/ premium/ plans]<br />

[6] Timeline-Einrichtung:<br />

[http:// simile‐widgets. org/ wiki/ Timeline_<br />

GettingStarted]<br />

[7] Timeline offline nutzen:<br />

[http:// simile‐widgets. org/ wiki/ How_to_<br />

use_Timeline_offline]<br />

[8] Event-XML-Generator für Simile Timeline:<br />

[http:// lifehacker. com/ assets/ resources/​<br />

2006/ 10/ eventmaker. html]<br />

[9] Events dynamisch laden:<br />

[http:// simile‐widgets. org/ wiki/ Timeline_<br />

LoadEventsDynamically]<br />

[10] Zoomfunktion für das Mausrad:<br />

[http:// simile‐widgets. org/ wiki/​<br />

MouseWheelScrollingAndZooming]<br />

[11] Simile Exhibit, Version 3:<br />

[http:// simile‐widgets. org/ exhibit3]<br />

[12] Timeline Viewer:<br />

[http:// satyam. com. ar/ yui/ 3. 5/ timeline]<br />

[13] Knight Lab:<br />

[http:// knightlab. northwestern. edu]<br />

[14] Timeline-JS-Generator<br />

[http:// timeline. verite. co/ # embed]<br />

[15] Github-Repository für Timeline JS:<br />

[https:// github. com/ VeriteCo/ TimelineJS]<br />

[16] Google-Docs-Template für Timeline JS:<br />

[http:// timeline. verite. co/ # fileformat]<br />

Bitparade 02/2013<br />

Software<br />

www.linux-magazin.de<br />

53


Software<br />

www.linux-magazin.de Tooltipps 02/2013<br />

56<br />

Werkzeuge im Kurztest<br />

Tooltipps<br />

Procenv 0.16<br />

Umgebungsvariablen ermitteln<br />

Quelle: [https:// launchpad. net/ procenv]<br />

Lizenz: GPLv3<br />

Alternativen: Printenv, Stat<br />

Crun 0.1.3<br />

Programme wiederholt starten<br />

Quelle: [http:// code. google. com/ p/ koolkit/​<br />

wiki/ crun]<br />

Lizenz: GPLv3<br />

Alternativen: Cron<br />

Pstoedit 3.61<br />

PS- und PDF-Dateien konvertieren<br />

Quelle: [http:// www. pstoedit. net]<br />

Lizenz: GPLv2<br />

Alternativen: Gsview<br />

Procenv fragt die Umgebungsparameter<br />

und ‐variabeln eines Systems ab. Je nach<br />

Aufrufoption verrät das Tool etwa die aktuellen<br />

Systemlimits oder präsentiert die<br />

Konfiguration von »locale«, »env« oder<br />

des Compilers. Auch ermittelt es Informationen<br />

zu »cgroups«, zu geladenen Bibliotheken<br />

oder den Thread-Parametern der<br />

aktuellen Sitzung.<br />

Ohne Parameter gestartet präsentiert<br />

Procenv alle verfügbaren Fakten auf der<br />

Standardausgabe. Über »‐‐file« leiten Anwender<br />

sie in eine Datei um. Alternativ<br />

schickt »‐‐output« die Informationen an<br />

»stderr«, »stdout« oder an Syslog.<br />

Angesichts der umfangreichen Abfragemöglichkeiten<br />

empfiehlt sich unbedingt<br />

ein Blick in die Manpage. Neben einer<br />

ausführlichen Erläuterung der Optionen<br />

bietet das Handbuch auch Konfigurationsbeispiele<br />

und Anregungen für den<br />

Procenv-Einsatz auf verschiedenen Systemen.<br />

<strong>Die</strong> Entwickler empfehlen das<br />

Tool vor allem zur Fehleranalyse eigener<br />

Programme oder Skripte, um herauszufinden,<br />

welche Umgebungsbedingungen<br />

zur Ausführungszeit herrschen.<br />

★★★★★ Procenv bestimmt die Umgebungsparameter<br />

der aktuellen Sitzung im<br />

Handumdrehen. So vergleichen Anwender<br />

zum Beispiel Systeme miteinander<br />

und finden heraus, in welcher Umgebung<br />

ein Prozess läuft.<br />

n<br />

Um Programme zu bestimmten Zeiten<br />

oder in regelmäßig wiederkehrenden Intervallen<br />

zu starten, greifen die meisten<br />

Anwender zu Cron. Das Anpassen der<br />

Crontab ist jedoch zu aufwändig, um<br />

kleine Tools oder selbst geschriebene<br />

Skripte zu testen. Mit Crun empfiehlt sich<br />

eine leicht zu bedienende Alternative.<br />

Anders als Cron arbeitet Crun nicht als<br />

Daemon im Hintergrund und benötigt<br />

daher auch keine Rootrechte.<br />

Nutzer geben beim Start insgesamt drei<br />

Parameter zur Steuerung an. Der erste<br />

definiert, wie oft Crun ein Programm aufruft,<br />

der zweite bestimmt, in welchen Abständen<br />

das geschieht. Am Schluss steht<br />

der eigentliche Befehl, wahlweise mit Optionen.<br />

So sorgt beispielsweise »crun 10 5<br />

netstat ‐na« dafür, dass Crun den Netstat-<br />

Befehl zehnmal jeweils im Abstand von 5<br />

Sekunden startet. Alle Ausgaben landen<br />

auf der Standardausgabe. Mehr Konfiguration<br />

ist nicht erforderlich und derzeit<br />

auch nicht möglich. Eine Einrichtungsdatei<br />

existiert nicht.<br />

★★★★★ Das handliche Tool macht es<br />

einfach, Programme zu Test- und Analysezwecken<br />

in festgelegten Intervallen<br />

auszuführen. Eine Anpassung der<br />

Crontab entfällt. Mit Crun läuft jede Anwendung<br />

unkompliziert mehrfach und in<br />

bestimmten Abständen.<br />

n<br />

Pstoedit wandelt Postscript- und PDF-Dateien<br />

in Vektorgrafiken um. <strong>Die</strong> Liste der<br />

unterstützten Dateitypen umfasst über<br />

25 Formate, darunter SWF, DXF, HPGL,<br />

Skencil, GNU Plot und Latex2e-Picture.<br />

Das Programm kennt darüber hinaus die<br />

Metaformate WMF, OS/​2 Metafiles oder<br />

GNU Metafile. Weitere Gattungen wie<br />

etwa SVG sind über (teilweise) kostenpflichtige<br />

Plugins verfügbar.<br />

Da das Tool keine eigenen Postscript- und<br />

PDF-Routinen besitzt, ist eine Ghostscript-Installation<br />

Voraussetzung. Für<br />

die Vektorgrafikformate greift es auf die<br />

Imagemagick-Bibliotheken zurück. Pstoedit<br />

bietet Optionen, um das Dokument<br />

in mehrere Seiten aufzuteilen, einzelne<br />

Seiten zu extrahieren, sie zu drehen oder<br />

zu kippen. Andere Parameter stellen Text<br />

als Zeichnung dar oder übernehmen Kurven<br />

des Originals. <strong>Die</strong> Position von Bildern<br />

und die Seitengröße sind ebenfalls<br />

konfigurierbar.<br />

Nicht alle Optionen funktionieren für jedes<br />

Ausgabeformat. Ein Blick ins Handbuch<br />

verrät Näheres dazu. Darüber hinaus<br />

kommt Pstoedit nicht mit allen Quelldokumenten<br />

gleich gut zurecht.<br />

★★★★★ Pstoedit bietet umfangreiche<br />

Möglichkeiten, Postscript- und PDF-Dateien<br />

in Vektorgrafiken zu konvertieren<br />

und die Ergebnisse nach eigenen Wünschen<br />

zu gestalten.<br />

n


Open Source goes<br />

Präsentieren auch Sie sich auf der größten Sonderausstellung<br />

der CeBIT 2013 in Halle 6 zum Thema <strong>Linux</strong> und freie Software.<br />

Kleine und mittlere Unternehmen treffen hier auf hochrangige<br />

Entscheider. Nirgendwo sonst finden Sie eine bessere Business-<br />

Umgebung für Ihre Open Source Lösungen.<br />

Ein rundum perfekter Messeauftritt ‒<br />

maximaler Erfolg mit minimalem Aufwand:<br />

• individuelle Standgrößen ab 4 m²<br />

• Alles-inklusive-Service (Standbau, Catering, Konferenzräume, u.v.m.)<br />

• direkte Ansprache zahlreicher Neukunden<br />

• ausgewählte Fachvorträge und Keynotes im Open Source Forum<br />

• Kontakt zur internationalen Open Source Community<br />

Jetzt anmelden!<br />

www.open-source-park.de<br />

oder 0 26 1 - 20 16 902<br />

Wir sind dabei!<br />

83degrees South Ltd., agorum®<br />

Software GmbH, Alfresco Software Ltd.,<br />

All for Accounting GmbH, Ancud IT-Beratung<br />

GmbH, B1 Systems GmbH, CADEMIA-Consult<br />

GmbH, FOSS Group GmbH, GRAU DATA AG,<br />

Heinlein Support GmbH, IFE GmbH, Inmedias.it<br />

GmbH, ITOMIG GmbH, Mathias Kettner GmbH,<br />

Metaways Infosystems GmbH, NETWAYS GmbH,<br />

Opensides Sprl, Open Source Press GmbH,<br />

Pentaprise GmbH, Synetics gesellschaft für<br />

systemintegration mbh, uib gmbh, visual4<br />

GmbH, Würth Phoenix GmbH<br />

und viele mehr...<br />

Veranstalter:<br />

pluspol.de<br />

Marketing Kommunikation Internet<br />

In Kooperation mit:<br />

MEDIALINX AG


Software<br />

www.linux-magazin.de Tooltipps 02/2013<br />

58<br />

Muddog 1.0.0<br />

Prozesse verfügbar halten<br />

Quelle: [http:// code. google. com/ p/ muddog]<br />

Lizenz: BSD New<br />

Alternativen: Autocheck<br />

Xidel 0.6<br />

Daten aus Webseiten extrahieren<br />

Quelle: [http:// videlibri. sourceforge. net/​<br />

xidel. html]<br />

Lizenz: GPLv2<br />

Alternativen: Curl, Wget<br />

PNG Crush 1.7.41<br />

PNG-Dateien komprimieren<br />

Quelle: [http:// pmt. sourceforge. net/​<br />

pngcrush]<br />

Lizenz: OSI Approved License<br />

Alternativen: Opti PNG<br />

Bestimmte Programme und <strong>Die</strong>nste dürfen<br />

niemals ausfallen, sondern sollten<br />

stets verfügbar sein. Muddog hilft Administratoren<br />

solche Services zu überwachen.<br />

Das Tool basiert auf dem Free-<br />

BSD-Inetd und läuft unter Free BSD und<br />

<strong>Linux</strong>. In der Konfigurationsdatei »/etc/<br />

muddog.conf« legt der Anwender fest,<br />

welche Programme Muddog aufrufen und<br />

im Auge behalten soll. Das Tool kontrolliert<br />

regelmäßig, ob der entsprechende<br />

Prozess noch läuft, und startet ihn gegebenenfalls<br />

neu. Um ihn zu beenden,<br />

terminieren Nutzer Muddog.<br />

Ein Eintrag enthält jeweils vier Felder,<br />

die durch Leerzeichen oder Tabs getrennt<br />

sind. Im ersten steht ein eindeutiger Bezeichner<br />

für den <strong>Die</strong>nst. Es folgen Angaben<br />

zu Benutzern oder Gruppen, mit<br />

deren Rechten das Programm läuft. Dahinter<br />

steht der volle Pfad zum Binary,<br />

im letzten der Aufruf mit allen Parametern<br />

und Optionen. Anwender sollten beachten,<br />

keine Services zu definieren, die<br />

von sich aus als Daemon laufen. Muddog<br />

würde in diesem Fall das Programm wieder<br />

und wieder starten, obwohl es ein<br />

SIGCHLD-Signal erhalten hat.<br />

Muddog bietet nur drei Aufrufoptionen:<br />

Über »‐v« zeigt es seine Version an, hinter<br />

»‐P« dürfen Benutzer eine alternative<br />

Konfigurationsdatei angeben, und »‐d«<br />

schaltet das Debugging ein. Seine Fehlermeldungen<br />

reicht das Programm an<br />

Syslog weiter.<br />

★★★★★ Mit Muddog stellen Systemverwalter<br />

Programme ohne eigene Daemon-<br />

Funktion dauerhaft bereit. Das Tool behält<br />

seine Schützlinge genau im Auge<br />

und erleichtert den Einsatz durch eine<br />

übersichtliche Konfiguration. n<br />

Programme, die HTML- und XML-Dateien<br />

aus dem Internet auf den eigenen<br />

Rechner spiegeln, gibt es in Hülle und<br />

Fülle. Xidel geht noch einen Schritt<br />

weiter und extrahiert gezielt Daten aus<br />

den übertragenen Dokumenten. Welche<br />

Detailinformationen das sind, legt der<br />

Benutzer über ein Suchmuster fest. Xidel<br />

erkennt selbstständig, ob es sich bei<br />

dem Filtertyp um Xpath, Xquery, CSS<br />

oder ein einfaches Template handelt.<br />

Klappt das nicht, so geben Anwender<br />

über »‐‐extract‐kind« Hilfestellung. Komplexere<br />

Muster oder reguläre Ausdrücke<br />

schreiben Anwender optional vorher in<br />

eine Datei und übergeben diese dann<br />

beim Start.<br />

Darüber hinaus ist es möglich, Daten von<br />

der Verarbeitung auszunehmen oder gezielt<br />

einzubinden. Besitzt eine Webseite<br />

beispielsweise Links, geben Nutzer über<br />

»‐‐follow« vor, welchen Verknüpfungen<br />

Xidel folgen soll. Auch diese Option verfügt<br />

über »exclude«- und »include«-Parameter,<br />

mit denen die Link-Verarbeitung<br />

steuerbar ist. Außerdem verhindert »‐‐follow‐level«,<br />

dass Xidel sich auf komplexen<br />

Seiten zu lange aufhält.<br />

In der Voreinstellung schreibt das Tool<br />

die Ergebnisse in gut lesbarer Form als<br />

reinen Text auf die Standardausgabe.<br />

Zum Weiterverarbeiten ist auch eine<br />

Formatierung in Json- oder XML-Syntax<br />

möglich. Als Standardkodierung nutzt<br />

Xidel UTF-8, Latin 1 und UTF-16 kennt<br />

es ebenfalls. Wer die Ergebnisse lieber<br />

in einer Datei speichern möchte, der verwendet<br />

»‐‐download«.<br />

★★★★★ Xidel erfasst präzise Datenschnipsel<br />

aus HTML- und XML-Dateien.<br />

Das Tool punktet mit vielfältigen Filtermöglichkeiten.<br />

n<br />

<strong>Die</strong>ses Kommandozeilen-Werkzeug optimiert<br />

die Komprimierung von PNG-Bildern<br />

– und das ganz ohne Qualitätsverluste.<br />

In den meisten Fällen verkleinert<br />

es damit die Dateien und hilft so dabei,<br />

Plattenplatz einzusparen.<br />

PNG-Dateien bestehen aus mehreren<br />

Blöcken, darunter einem Pixeldatenblock<br />

(IDAT, Image Data). PNG Crush reduziert<br />

die Größe dieser IDAT-Fragmente und versucht<br />

die Daten mit einer Kombination<br />

aus LZ77- und Huffmann-Algorithmen<br />

zu komprimieren. Auch das Entfernen<br />

von Farbkorrekturen, etwa des Weißabgleichs,<br />

oder das Löschen des ICC-Farbprofils<br />

verringern die Größe. Während<br />

das Tool sich selbstständig um die Kompression<br />

kümmert, müssen Anwender<br />

die Farbkorrektur-Tilgung explizit beauftragen.<br />

Das Anpassen der Farbtiefe oder<br />

der Bildauflösung ist ebenfalls möglich,<br />

fällt jedoch bereits in den Bereich der<br />

Bildmanipulation.<br />

Um eine PNG-Datei zu verkleinern, rufen<br />

Anwender »pngcrush« zusammen mit<br />

dem Namen der Quell- und der Zieldatei<br />

auf. Alternativ übergeben sie beim Start<br />

direkt ein ganzes Verzeichnis mit Bildern.<br />

In der Voreinstellung überschreibt die Anwendung<br />

die Originale nicht. Sie erwartet<br />

daher für Verzeichnisse mit mehreren<br />

Dateien die Option »‐e« und eine neue<br />

Erweiterung des Dateinamens. Über alle<br />

Arbeitsschritte berichtet das Tool auf der<br />

Standardausgabe, sodass Benutzer stets<br />

im Bilde sind.<br />

★★★★★ Mit PNG Crush reduzieren Anwender<br />

die Größe der Bildersammlung,<br />

ohne an Qualität einzubüßen. (U. Vollbracht/​hej)<br />

<br />

n


R<br />

CeBIT Open Source<br />

5.–9.3.2013<br />

Werfen Sie einen Blick hinter die Kulissen<br />

von <strong>Linux</strong> und Open Source!<br />

Das tägliche Vortragsprogramm liefert Ihnen<br />

Hintergrundinformationen aus erster Hand!<br />

Jetzt in Halle 6!<br />

Stand F02<br />

Auf der Bühne: Hochkarätige Vertreter der Open-Source-Szene, u.a.<br />

Klaus Knopper,<br />

KNOPPER.NET<br />

Jon „maddog“ Hall,<br />

<strong>Linux</strong> International<br />

Peer Heinlein,<br />

Heinlein Support GmbH<br />

Powered by<br />

Presented by<br />

Sponsored by<br />

<strong>Linux</strong><br />

Professional<br />

Institute


Software<br />

www.linux-magazin.de X2go 4.0 02/2013<br />

60<br />

<strong>Vorschau</strong> auf das neue X2go<br />

Terminal 4<br />

<strong>Die</strong> freie Terminalserver-Lösung X2go erscheint bald in Version 4.0. <strong>Die</strong> Entwickler haben fleißig neue Features<br />

implementiert. Der Artikel analysiert den aktuellen Snapshot und zeigt, was sich in den letzten zwölf Monaten<br />

im Projekt getan hat. Florian Effenberger<br />

© Robert Wilson, 123RF.com<br />

Beim Zugriff auf entfernte Server macht<br />

X11-Forwarding über SSH keine gute<br />

Figur. Darum haben sich spezielle Terminalprotokolle<br />

durchgesetzt, X2go [1]<br />

beispielsweise als schnelle und Ressourcen-schonende<br />

Remotedesktop-Lösung.<br />

<strong>Die</strong> Entwicklergemeinde rund um Heinz-<br />

Markus Gräsing, Oleksandr Shneyder und<br />

Mike Gabriel steht kurz vor der Veröffentlichung<br />

von Version 4.0 des freien Terminalservers<br />

und verspricht viele neue<br />

Features.<br />

<strong>Die</strong> X2go-Macher stellen neugierigen<br />

und experimentierfreudigen Benutzern<br />

den Entwicklungszweig vorab als fertige<br />

Debian- und Ubuntu-Paketquelle<br />

zur Verfügung [2]. Alternativ gibt’s die<br />

X2go-Quellen in einem Git-Repository<br />

[3]. Möglicherweise ist beim Erscheinen<br />

dieses Artikels bereits die stabile Version<br />

veröffentlicht; die Tester haben einen<br />

Snapshot vom 20. November 2012 unter<br />

die Lupe genommen.<br />

Fox on the run<br />

Brandneu ist das Firefox-Plugin [4] für<br />

<strong>Linux</strong> zwar nicht, doch wollen es die Entwickler<br />

in der neuen Version zum ersten<br />

Mal als stabil kennzeichnen. <strong>Die</strong> Browser-Erweiterung<br />

stellt Sitzungen nahtlos<br />

in einem Firefox-Fenster dar, sodass Anwender<br />

auf den eigenständigen Client<br />

verzichten können (siehe Abbildung 1).<br />

Aufgrund der Binary-Form ist es derzeit<br />

nicht im offiziellen Mozilla-Repository<br />

enthalten, dafür aber als Paket »x2goplugin«<br />

verfügbar.<br />

Eine Vorlage für den Betrieb auf Webservern<br />

liefert das Paket »x2goplugin‐provider«.<br />

<strong>Die</strong> Datei »/usr/share/x2go/plugin/<br />

x2goplugin.html« passen Anwender an<br />

eigene Bedürfnisse an; das Wiki [5] bietet<br />

Hilfestellung für alle, die den Code<br />

in Webseiten einbinden möchten. Der<br />

über die Paketabhängigkeiten installierte<br />

Web-Applikationsserver Tntnet quittierte<br />

im Test den Versuch, »http:// localhost/​<br />

x2goplugin. html« zu öffnen, jedoch mit<br />

einem 404-Fehler.<br />

Auch das Plugin selbst lief im Snapshot<br />

noch nicht ganz rund und der Tastaturfokus-Wechsel<br />

zwischen Browserfenster<br />

und Sitzung klappte nicht immer. <strong>Die</strong><br />

Entwickler vermuten einen Bug in Firefox<br />

und versprechen, sich um das Problem<br />

zu kümmern. <strong>Die</strong> zum Redaktionsschluss<br />

fehlenden Plugin-Pakete für Windows<br />

wollen sie ebenfalls nachliefern.<br />

Schlechte Nachrichten gibt es indes für<br />

Mac-Anwender. Für diese Plattform ist<br />

aktuell keine Firefox-Erweiterung geplant.<br />

Als Gründe geben die X2go-Macher an,<br />

das Qt-Browserplugin sei nicht geeignet.<br />

Firefox lädt im Hintergrund den regulären<br />

X2go-Client, und dieser baut auf Qt auf.<br />

Doch ausgerechnet die Drittkomponente,<br />

die für die Anzeige im Browser zuständig<br />

ist, gilt laut X2go-Entwickler Oleksandr<br />

Shneyder noch als instabil. Zwar gibt es<br />

andere Ansätze, die unter OS X zum Ziel<br />

führen könnten, doch mangelt es derzeit<br />

an Ressourcen, um ein Mac-Plugin kurzfristig<br />

zu implementieren.<br />

Verlockende Früchte<br />

Der native X2go-Client für Macs [6] galt<br />

lange Zeit als Sorgenkind. Inzwischen<br />

sind die meisten Probleme behoben,<br />

auch wenn die Installation auf neueren<br />

OS-X-Versionen umständlich ist. Da<br />

Apple ab OS X 10.8 keine X11-Implementierung<br />

mehr mitliefert, müssen Anwender<br />

Xquartz nachrüsten [7]. Außerdem


Abbildung 1: Das Firefox-Plugin erhält mit der neuen X2go-Version erstmals<br />

den Status „Stabil“. Anwender greifen mit der Browser-Erweiterung auf<br />

X2go-Sitzungen zu, ohne einen Client starten zu müssen.<br />

tragen sie in den X2go-Clienteinstellungen<br />

von Hand den Pfad zum Xquartz-<br />

Programm (»/Applications/Utilities/<br />

XQuartz.app«) ein und booten den Mac<br />

neu. Danach läuft alles wie am Schnürchen<br />

(siehe Abbildung 2). Meldungen<br />

über das fehlende Paket »openssh‐server«<br />

dürfen OS-X-Nutzer getrost ignorieren –<br />

möglicherweise ist dieser Schönheitsfehler<br />

in der finalen Version behoben.<br />

Spieglein, Spieglein<br />

Alle Plattformen profitieren von den<br />

neuen so genannten veröffentlichten<br />

Anwendungen. Das Feature erlaubt es,<br />

ein Menü mit einer Liste von Programmen<br />

einzublenden, die sich nach dem<br />

Start auf einem entfernten Rechner wie<br />

eine lokale Anwendung verhalten (siehe<br />

Abbildung 3). Zwar war es in früheren<br />

X2go-Versionen ebenfalls möglich, einzelne<br />

Applikationen ohne Umweg über<br />

die Desktopumgebung zu starten, dies<br />

mussten die Benutzer jedoch auf jedem<br />

Client extra so einrichten. <strong>Die</strong> neue Funktion<br />

arbeitet hingegen Server-seitig und<br />

ermöglicht somit eine zentrale Konfiguration<br />

– sowohl systemweit als auch für<br />

einzelne Accounts.<br />

X2go findet die Programmliste im Verzeichnis<br />

»/etc/x2go/applications« (in<br />

der Voreinstellung ein symbolischer Link<br />

auf »/usr/share/applications«). Wer die<br />

veröffentlichten Anwendungen lieber für<br />

jeden Benutzer gesondert einrichtet, legt<br />

die entsprechenden ».desktop«-Dateien<br />

im Homeverzeichnis unter »~/.x2go/<br />

applications« ab. Besonders<br />

gut gefiel den<br />

Testern, dass sich die<br />

Anwendungen unter<br />

<strong>Linux</strong> an das Design<br />

der Desktopumgebung<br />

anpassen.<br />

Das Paket »x2godesktopsharing«<br />

erweitert<br />

X2go um eine Sharingfunktion<br />

für den<br />

Desktop [8]. Um den<br />

eigenen Bildschirm<br />

für Dritte freizugeben,<br />

rufen Benutzer das<br />

Programm X2go Desktop<br />

Sharing auf und<br />

aktivieren das Feature<br />

über das neue Icon in<br />

der Symbolleiste. Auf dem Client zeigt<br />

»Zugriff auf lokalen Desktop« eine Übersicht<br />

aller so freigegebenen Sitzungen<br />

(siehe Abbildung 4).<br />

Im Test klappte die Freigabe allerdings<br />

nur mit gleichen Benutzernamen problemlos;<br />

die stabile Version soll aber auch<br />

das Screensharing mit anderen Logins<br />

erlauben. <strong>Die</strong> Anwender definieren dann<br />

ganz genau, welche Accounts wie zugreifen<br />

dürfen.<br />

Eine weitere Neuerung ist der so genannte<br />

Broker. Er ermöglicht es, Clients<br />

zentral zu konfigurieren, was insbesondere<br />

in Umgebungen mit vielen Nutzern<br />

sehr praktisch ist. Anstatt auf jedem<br />

Arbeitsplatz händisch alle verfügbaren<br />

Sitzungen einzutragen, erhalten Nutzer<br />

Informationen dazu automatisch vom<br />

Broker, und zwar wahlweise über HTTP,<br />

HTTPS oder SSH.<br />

So realisieren Admins etwa Failover-<br />

Szenarien und Load-Balancing-Lösungen<br />

oder konfigurieren für verschiedene<br />

Uplinks automatisch den netztopologisch<br />

besten Server. Eine individuelle Anpassung<br />

für jeden Benutzer ist ebenfalls<br />

möglich. Zum Redaktionsschluss enthielt<br />

das Wiki noch keine Dokumentation für<br />

den Broker, die Entwickler wollen sie<br />

jedoch bald nachreichen.<br />

Tunnelblick<br />

X2go 4.0 unterstützt die neuen Gnomeund<br />

Unity-Desktops. Zusätzlich erlaubt<br />

die neue Version auch Logout-Skripte auf<br />

dem Server (Datei »~/.x2go_logout«).<br />

Auf Thin Clients, die sich in einem sicheren<br />

Netzwerk befinden, nutzt der Terminalserver<br />

jetzt optional eine direkte<br />

RDP-Verbindung via Rdesktop oder Xfree<br />

RDP, statt den Umweg über den Server zu<br />

gehen. Letzteres ist allerdings nach wie<br />

vor der bevorzugte Weg bei unsicheren<br />

Verbindungen, die dann von der X2go-<br />

Verschlüsselung profitieren.<br />

Bezüglich RDP hat die neue Release eine<br />

weitere Verbesserung in petto: <strong>Die</strong> früher<br />

umständlich zu realisierende Audio-<br />

Übertragung ist mittlerweile direkt auf<br />

Knopfdruck im Client verfügbar. Das<br />

Gleiche gilt für Dateifreigaben, die künftig<br />

ebenfalls ohne separaten Wrapper<br />

auskommen.<br />

Auch das X2go-Projekt profitiert von der<br />

Förderung des Serverherstellers Thomas<br />

Abbildung 2: Der X2go-Client für OS X läuft inzwischen rund. Hier präsentiert sich das Ubuntu Software-<br />

Center eines <strong>Linux</strong>-Servers in der Ferne auf dem lokalen OS-X-Desktop.<br />

X2go 4.0 02/2013<br />

Software<br />

www.linux-magazin.de<br />

61


Software<br />

www.linux-magazin.de X2go 4.0 02/2013<br />

62<br />

Krenn [9]. Laut eigenen Angaben arbeiten<br />

die Entwickler an einer Appliance,<br />

über die mittels X2go Remote-Unterstützung<br />

im ganzen Netzwerk möglich wird.<br />

An entsprechender Stelle platziert soll<br />

der Low Energy Server als Gateway fungieren<br />

und bei Bedarf eingehende Verbindungsanfragen<br />

automatisch an den<br />

entsprechenden Rechner durchreichen.<br />

Dabei hilft die neu im Client hinzugekommene<br />

Funktion, sich per SSH- oder<br />

HTTP-Proxy mit hinter Gateways befindlichen<br />

Systemen zu verbinden. Im Test<br />

fehlte das Feature allerdings noch auf<br />

dem OS-X-Client.<br />

<strong>Die</strong> neue Multi-Head-Funktion [10]<br />

bietet zwei Betriebsmodi. Einerseits legen<br />

Benutzer X2go-Sitzungen auf einen<br />

separaten lokalen Bildschirm, um den<br />

entfernten Desktop in voller Auflösung<br />

und ohne störende Fensterdekoration zu<br />

betrachten. Andererseits bilden sie damit<br />

ein Multi-Head-Setup auf Server-Seite ab,<br />

indem die Remotesitzung auf einem großen<br />

virtuellen Bildschirm erscheint. Xinerama<br />

verhindert, dass sich ein Fenster<br />

über mehr als einen Monitor erstreckt.<br />

Aufpoliert<br />

X2go wartet darüber hinaus auch mit<br />

etlichen Verbesserungen im Detail auf.<br />

So spricht der Client nun auch Spanisch,<br />

Norwegisch und Dänisch. <strong>Die</strong> Projektmitarbeiter<br />

behoben außerdem einige<br />

kompliziertere Bugs, vor allem in den<br />

X-Libraries und in der Cairo-Bibliothek.<br />

Das löst unter anderem Probleme bei der<br />

Grafik- und Schriftdarstellung<br />

nach dem<br />

Aufwachen aus dem<br />

Sleepmode.<br />

Wegen der freien Lizenzen<br />

kommen all<br />

diese Verbesserungen<br />

natürlich auch anderen<br />

Programmen wie<br />

beispielsweise No<br />

Machine und Free NX<br />

zugute.<br />

Da X2go inzwischen<br />

auch bei mehreren<br />

großen Unternehmen<br />

im Einsatz ist, wächst<br />

die Nachfrage nach<br />

professionellem Support<br />

für die Software.<br />

Um diesen Bedarf zu<br />

decken, hat X2go-Entwickler Oleksandr<br />

Shneyder die Phoca GmbH gegründet<br />

[11]. <strong>Die</strong> Firma bietet Beratung, Installationshilfe,<br />

Supportverträge und kundenspezifische<br />

Anpassungen, zum Beispiel<br />

individuelle Broker. Alle Verbesserungen<br />

und Erweiterungen stehen aber auch<br />

künftig unter einer freien Lizenz; eine<br />

Bezahlversion wird es nicht geben, wie<br />

das Projekt betont.<br />

Insgesamt gefällt die neue X2go-Version,<br />

auch wenn noch einige kleine Ungereimtheiten<br />

im Test auftraten. Beheben<br />

die Entwickler diese und ergänzen die<br />

Dokumentation um Erklärungen zu den<br />

relevanten Neuerungen, dürfte die finale<br />

4.0 ein großer Schritt in die richtige Richtung<br />

sein. X2go bietet als Gesamtpaket<br />

Abbildung 4: X2go teilt nun den eigenen Bildschirm mit anderen Nutzern.<br />

<strong>Die</strong> finden auf ihrem Client eine Liste mit den freigegebenen Sitzungen.<br />

viele Funktionen und Features, die sonst<br />

nur teure und proprietäre Lösungen bereitstellen.<br />

(hej) <br />

n<br />

Infos<br />

[1] X2go: [http:// www. x2go. org]<br />

[2] Nightly Builds: [http:// www. x2go. org/​<br />

doku. php/ wiki:development:nightly‐builds]<br />

[3] Git-Repository: [http:// git. x2go. org]<br />

[4] Michael Kromer, „Zugriff nach Bedarf“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 10/​10, S. 72<br />

[5] X2go-Plugin in eigene Webseiten einbinden:<br />

[http:// www. x2go. org/ doku. php/​<br />

wiki:components:x2goplugin]<br />

[6] X2go-Client für OS X: [http:// code. x2go.​<br />

org/ releases/ binary‐macosx/ x2goclient]<br />

[7] Xquartz: [http:// xquartz. macosforge. org]<br />

[8] Desktop-Sharing:<br />

[http:// www. x2go. org/ doku. php/ wiki:comp<br />

onents:desktop‐sharing]<br />

[9] Serverhersteller sponsert Open-Source-<br />

Projekte: [http:// www. linux‐magazin. de/​<br />

NEWS/ Thomas‐Krenn‐stiftet‐Server‐fuer<br />

‐Open‐Source‐Projekte]<br />

[10] Multi-Head: [http:// www. x2go. org/ doku.​<br />

php/ wiki:components:multi‐display]<br />

[11] Phoca GmbH: [http:// www. phoca‐gmbh. com]<br />

Abbildung 3: <strong>Die</strong> veröffentlichten Anwendungen verhalten sich auf Remotedesktops wie lokale Programme.<br />

<strong>Die</strong> Programmliste gruppiert nach Einsatzzweck und bietet eine Suchfunktion.<br />

Der Autor<br />

Florian Effenberger engagiert sich seit zehn Jahren<br />

für freie Software. Er ist einer der Gründer<br />

und zugleich Vorstandsvorsitzender der Document<br />

Foundation. Er schreibt regelmäßig für<br />

zahlreiche deutsche und internationale Fachpublikationen<br />

und beschäftigt sich dabei auch mit<br />

Rechtsfragen.


Aus dem Alltag eines Sysadmin: Ifdata<br />

Präzise an Schnittstellen<br />

Einführung 02/2013<br />

Sysadmin<br />

Wie schon in der vorigen Ausgabe stellt Charly wieder ein Tool vor, das seine Stärken besonders in Skripten<br />

ausspielt. Ifdata aus dem Moreutils-Paket liefert Statusinformationen von Netzwerk-Interfaces absolut passgenau.<br />

Das Herausmeißeln einzelner Werte ist nun nicht mehr nötig. Charly Kühnast<br />

www.linux-magazin.de<br />

63<br />

Inhalt<br />

64 Open Vswitch<br />

Software-Switches wie das freie Open<br />

Vswitch bringen Funktionen auf die<br />

Gastgeber von Virtualisierungen, wie<br />

sie sonst nur echte Hardware bietet.<br />

Open Vswitch arbeitet zudem mit vielen<br />

Hypervisoren zusammen.<br />

70 TCP Fast Open<br />

Mit TCP Fast Open hat Google eine Protokollerweiterung<br />

zum Verringern von<br />

Latenzen im Netzwerkverkehr vorgestellt,<br />

die eine Beschleunigung von bis<br />

zu 41 Prozent verspricht.<br />

Wenn ich ein Skript schreibe und darin<br />

die Information benötige, ob ein bestimmtes<br />

Interface existiert, und wenn<br />

ja, welche IP-Adresse und MTU es gerade<br />

hat, entsteht fast zwangsläufig sperriger<br />

Code. Ich bewerfe dann das Ergebnis von<br />

»ip addr show eth0«, »ifconfig« oder »iwconfig«<br />

so lange mit »grep«, »cut« und regulären<br />

Ausdrücken, bis die gewünschte<br />

Information herausgemeißelt ist.<br />

Ifdata aus dem Moreutils-Paket [1] dagegen<br />

löst meine Aufgabenstellung elegant<br />

und einfach. Mit Parametern steuere ich<br />

die Ifdata-Ausgabe so, dass nur das gesuchte<br />

Ergebnis erscheint und mehr nicht<br />

– das ist ideal, um es in einem Skript<br />

weiterzuverarbeiten.<br />

Zunächst möchte ich herausfinden, ob<br />

ein bestimmtes Netzwerkinterface überhaupt<br />

existiert: »ifdata ‐e eth0«. Der<br />

Befehl erzeugt keine Ausgabe. Ob die<br />

Schnittstelle existiert, verrät der Rückgabewert.<br />

In einem Skript ist das sehr praktisch,<br />

wenn ich ohne weitere Klimmzüge<br />

verzweigen will:<br />

if $(ifdata ‐e eth0); then<br />

echo "Interface gefunden";<br />

[...]<br />

else<br />

echo "Interface nicht gefunden";<br />

[...]<br />

fi<br />

Eine für Menschen lesbare Ausgabe gibt<br />

es auch. Der Parameter »‐pe« sorgt dafür,<br />

dass Ifdata ein »yes« oder »no« ausgibt.<br />

Mit einer Minischleife kann ich mir<br />

schnell einen Überblick verschaffen, wie<br />

viele Interfaces gerade aktiv sind:<br />

$ for i in `seq 0 3`;do ifdata ‐pe eth$i;U<br />

done<br />

yes<br />

yes<br />

yes<br />

no<br />

<strong>Die</strong> Testmaschine hat vier Interfaces, benutzt<br />

aber nur drei.<br />

»‐pm« auch einzeln. Wenn ich wissen<br />

will, ob das Interface gerade im Promiscuous<br />

Mode ist, lasse ich mir per<br />

$ ifdata ‐pf eth0<br />

eine Liste der Flags zusammenstellen<br />

(Abbildung 1). <strong>Die</strong> Elemente der Liste<br />

einzeln abzufragen funktioniert allerdings<br />

nicht – zum Glück, denn wer soll<br />

sich bitte die ganzen Parameter merken?!<br />

Dafür gibt es noch Daten über den Netzwerkverkehr<br />

und Fehlerzustände zu eruieren.<br />

So kann ich etwa mit<br />

$ ifdata ‐soe eth0<br />

den Fehlerzähler auslesen – und mich beruhigt<br />

anderen Sachen zuwenden, denn<br />

der steht auf null. (jk)<br />

n<br />

© Ivan Mikhaylov, 123RF.com<br />

Abbildung 1: Ifdata schaut nach, welche Flags der<br />

Netzwerkschnittstelle gehisst sind.<br />

Basisarbeit<br />

<strong>Die</strong> am häufigsten benötigten Daten –<br />

IP-Adresse, Netzmaske, Broadcastadresse<br />

und MTU – zeigt Ifdata durch Leerzeichen<br />

getrennt mit dem Parameter »‐p« an:<br />

$ ifdata ‐p eth0<br />

10.0.0.106 255.255.255.0 10.0.0.255 1500<br />

<strong>Die</strong>se Informationen bekäme ich durch<br />

Angabe von »‐pa«, »‐pn«, »‐pb« und<br />

Infos<br />

[1] Moreutils:<br />

[http:// joeyh. name/ code/ moreutils/]<br />

Der Autor<br />

Charly Kühnast administriert<br />

Unix-Syste me im Rechenzentrum<br />

Niederrhein. Zu seinen<br />

Aufgaben gehören Sicherheit<br />

und Verfügbarkeit der<br />

Firewalls und der DMZ.


Sysadmin<br />

www.linux-magazin.de Open Vswitch 02/2013<br />

64<br />

Der Software-Switch Open Vswitch<br />

Virtuos schalten<br />

Software-Switches bringen Funktionen auf die Gastgeber von Virtualisierungen, wie sie sonst nur echte Hardware<br />

bieten kann. Das freie Open Vswitch ist Bestandteil des Mainstream-Kernels, bietet leistungsfähige Komponenten<br />

und arbeitet mit vielen Hypervisoren zusammen. Konstantin Agouros<br />

© Jan Treger, 123RF.com<br />

Dank immer leistungsfähigerer Hardware<br />

sprießen die virtualisierten IT-Umgebungen<br />

auf dem Server oder in der Cloud<br />

allerorten. Weil die einzelnen Instanzen<br />

auch miteinander kommunizieren, wollen<br />

Admins auch in den virtuellen Netzen<br />

Regeln setzen, so wie sie es im echten<br />

LAN gewohnt sind.<br />

Ein typischer Mechanismus sind Bridges,<br />

die schon bei Virtualisierungssoftware<br />

auf dem Desktop zum Standardrepertoire<br />

gehören. Soll das virtuelle Windows etwa<br />

aufs WLAN des <strong>Linux</strong>-Gastgebers zugreifen,<br />

braucht es eine simulierte Netzwerk-<br />

Bridge, die der Admin per Mausklick und<br />

GUI-Dialog in schicken Menüs auf virtuellen<br />

Netzwerk-Devices im Handumdrehen<br />

bewerkstelligt.<br />

Wie ein Hub im physischen Netzwerk<br />

sind die Software-Bridges aber mit Vorsicht<br />

zu genießen, zum Beispiel sieht der<br />

virtuelle Gast den kompletten Traffic im<br />

Netzwerksegment – ein auf einem Server<br />

meist unerwünschtes Feature.<br />

Anders mit virtuellen Switches: Open<br />

Vswitch [1] erlaubt es dem Administrator,<br />

auf einem Host, der virtuelle Maschinen<br />

beherbergt, die verschiedenen virtuellen<br />

Netzwerkinterfaces durch einen<br />

oder mehrere simulierte Switches miteinander<br />

zu vernetzen. Dabei darf er einzelnen<br />

Anschlüssen VLANs zuordnen und<br />

Spiegelports anlegen. Es ist sogar möglich,<br />

mehrere Netzwerkinseln über Layer-<br />

3-Tunnel direkt miteinander zu vernetzen<br />

(Abbildung 1). Zudem unterstützt Open<br />

Vswitch auch Open Flow ([2], siehe<br />

Kasten „Open Flow“), kann Netflow-<br />

Daten [3] sammeln und an einen Netflow-Collec<br />

tor wie Ntop [4] senden.<br />

<strong>Die</strong> Architektur<br />

Open Vswitch besteht aus drei <strong>Die</strong>nsten<br />

und einem Kernelmodul. Zwar ist<br />

Letzeres nur optional, doch ohne sind<br />

die Performance-Einbußen so groß, dass<br />

wenig Freude aufkommt. Mit ihm aller-<br />

dings überrascht der virtuelle Switch:<br />

Laut Aussage des Projekts ist das Weiterleiten<br />

der Pakete schneller als bei einem<br />

Bridgemodul.<br />

Beim Einsatz des Kernelmoduls muss<br />

der Admin einige Details beachten: Das<br />

Layer-3-Tunneln geht nur mit dem Kernelmodul<br />

aus dem Sourcecode des Projekts,<br />

nicht mit dem Modul aus dem normalen<br />

Kernel. Außerdem darf das <strong>Linux</strong>-Bridgemodul<br />

nicht geladen sein. Für Skripte, die<br />

sich auf die Bridge-Utils verlassen, gibt<br />

es ein separates Kompatibilitätsmodul,<br />

das Aufrufe zum Anlegen und Manipulieren<br />

von Bridges abfängt und für Open<br />

Vswitch passend übersetzt.<br />

Open Vswitch speichert die Konfigurationen<br />

persistent in einer Json-Datenbank,<br />

üblicherweise im Verzeichnis »/etc/<br />

openswitch«. Als Server für diese Datenbank<br />

dient das Programm »ovsdb‐server«.<br />

Alle Konfigurationsänderungen, die<br />

das Hauptwerkzeug »ovs‐vsctl« durchführt,<br />

landen so direkt in der Datenbank;<br />

»ovsdb‐client« hilft dabei, die Tabellen<br />

für Menschen besser lesbar als im Json-<br />

Rohformat zu machen.<br />

Open Flow<br />

Das Protokoll Open Flow gibt Zugriff auf die<br />

Forwarding Plane eines Switch oder Routers,<br />

also auf die Tabelle, die definiert, wie Pakete<br />

(von welchem Quell- zu welchem Ziel-Port)<br />

fließen sollen. Dabei ist die Verwaltung dieser<br />

Flow vom ausführenden Gerät entkoppelt. <strong>Die</strong><br />

Idee dabei ist, dass sich so auch Access-Listen<br />

über alle Geräte zentral verwalten lassen,<br />

das Netzwerk lässt sich steuern.<br />

Mittlerweile haben sich einige namhafte<br />

Hersteller bereits auf Open Flow festgelegt,<br />

laut der Homepage des Floodlight-Projekts<br />

[2] gibt es bereits Geräte von HP, Huawei,<br />

Juniper, IBM Brocade und Netgear, die das<br />

Protokoll unterstützen.


Der Prozess »ovs‐vswitchd« steuert die<br />

virtuellen Switches auf der lokalen Maschine<br />

und unterhält die Verbindung<br />

zur Konfigurationsdatenbank. Laufen<br />

die Switches im Userspace, übernimmt<br />

dieser Prozess auch ihre Verwaltung.<br />

Mit einem Open-Flow-Controller baut<br />

»derovs‐vswitchd« die Verbindung auf<br />

und tauscht sich über das Open-Flow-<br />

Protokoll mit ihm aus.<br />

Ist dagegen kein externer Open-Flow-<br />

Controller vorhanden, dann kommt der<br />

»ovs‐controller« zum Einsatz. Controller<br />

müssen nicht auf derselben Maschine<br />

wie der »ovs‐vswitchd« laufen. Um Redundanz<br />

zu schaffen, kann der Admin<br />

auch mehrere von ihnen angeben.<br />

Ein einfaches Setup<br />

<strong>Die</strong> Konfiguration erfolgt mit »ovs‐vsctl«.<br />

Zunächst bedarf es einer leeren Konfigurationsdatenbank.<br />

Haben das nicht bereits<br />

die Init-Skripte erledigt, erzeugt<br />

ovsdb‐tool create /etc/openvswitch/conf.db U<br />

/etc/openvswitch/vswitchd/vswitch.ovsschema<br />

die Datenbank. <strong>Die</strong> folgenden Kommandos<br />

legen eine Switch-Instanz an, der<br />

der Admin auch gleich zwei Ports hinzufügt:<br />

ovs‐vsctl add‐br linux‐switch0<br />

ovs‐vsctl add‐port linux‐switch0 eth0<br />

anderen Ports agieren<br />

dann als Trunk-Ports<br />

[5], liefern also auch<br />

die Pakete der VLANs<br />

172.18.1.1<br />

aus, die der Admin<br />

aufgespannt hat.<br />

»eth0«<br />

In diesem Fall muss<br />

er allerdings auch den<br />

»islandswA«<br />

physischen Switch, an<br />

dem der Host hängt,<br />

so konfigurieren, dass<br />

er den Port als Trunk-<br />

Port akzeptiert und die<br />

Daten der verschiedenen<br />

VLANs richtig weiterleitet. Sollen<br />

alle Ports des virtuellen Switch zu einem<br />

VLAN im Rest des Netzwerks gehören,<br />

lässt sich alternativ auch auf dem Host<br />

ein VLAN-Interface hinzufügen. »vconfig<br />

add eth0 VLAN-Id«) fügt dann »eth0.<br />

VLAN-Id« statt »eth0« als Port zum virtuellen<br />

Switch hinzu.<br />

Im Zusammenspiel mit anderen Switches<br />

empfiehlt es sich, dass Spanning-Tree-Protokoll<br />

[6] zur Erkennung von Schleifen<br />

im Layer-2-Netz zu aktivieren. <strong>Die</strong>s konfiguriert<br />

der Administrator mit dem Kommando<br />

»ovs‐vsctl set Bridge linux‐switch0<br />

stp_enable=true«. <strong>Die</strong> »set«-Anweisung<br />

manipuliert direkt die Datenbank. In SQL<br />

wäre diese Anweisung gleichbedeutend<br />

mit »update bridge set stp_enable=true<br />

where name='linux‐switch0'«.<br />

Switch<br />

»eth0«<br />

172.19.1.1<br />

»islandswB«<br />

Abbildung 1: Ein typisches Netzwerk, in dem Layer-3-Tunnel nötig sind.<br />

Das Beispiel aus Listing 1 spiegelt die<br />

Interfaces »tap0« und »tap1« auf das Interface<br />

»eth1«. <strong>Die</strong> seltsam anmutenden<br />

»--« dienen dem Kommando als Trenner<br />

für die Optionen, die Anweisung »select_<br />

all=1« gibt an, dass der Spiegel allen<br />

Verkehr zwischen den Tap-Schnittstellen<br />

übertragen soll.<br />

Will er nur bestimmte Richtungen (beispielsweise<br />

von »tap0« zu »tap1«) auswählen,<br />

dann kann der Admin die Referenz<br />

(mit dem »@« davor) mit den Argumenten<br />

»select‐srt‐port=@tap0 select<br />

‐dst‐port=@tap1« spezifizieren. Mit<br />

»ovs‐vsctl list Mirror« lassen sich die konfigurierten<br />

Spiegel auflisten. <strong>Die</strong> Anweisung<br />

»ovs‐vsctl remove Bridge linux‐switch0<br />

mirror tapmirror« entfernt<br />

den Spiegel wieder.<br />

Open Vswitch 02/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

65<br />

ovs‐vsctl add‐port linux‐switch0 tap0<br />

ovs‐vsctl add‐port linux‐switch0 vboxnet0<br />

Port Mirroring<br />

Tunneln<br />

Im Beispiel legt er einen Switch mit dem<br />

Namen »linux‐switch0« an – der Name<br />

lässt sich frei wählen. <strong>Die</strong> zweite Zeile<br />

fügt das erste Ethernet-Interface des Host<br />

hinzu, das noch über keine IP-Adresse<br />

verfügen darf. Soll der Host über dieses<br />

Interface erreichbar sein, ist die Adresse<br />

dem automatisch angelegten Interface<br />

»linux‐switch0« zuzuweisen. <strong>Die</strong> dritte<br />

und die vierte Zeile kümmern sich um<br />

ein TAP- sowie das Host-only-Interface<br />

etwa eines Virtualbox-Gastes.<br />

In diesem Aufbau gleicht das physische<br />

Ethernet-Interface dem Uplink-Port eines<br />

klassischen Switch. Wer dem Vswitch-<br />

Interface eine IP-Adresse zuweist, kann<br />

ihn darüber von den angeschlossenen<br />

virtuellen Hosts erreichen. Will er Ports<br />

einem VLAN zuordnen, gibt der Administrator<br />

dem »add‐port«-Kommando noch<br />

den Parameter »tag=VLAN-Id« mit. <strong>Die</strong><br />

Zur Fehleranalyse ist es manchmal notwendig,<br />

den Traffic auf einem Port mitzuschneiden<br />

oder an einen anderen Port<br />

weiterzuleiten, um ihn mit einer kommerziellen<br />

Probe auszuwerten. Wie physische<br />

Switches erlaubt es auch Open<br />

Vswitch, einen oder mehrere Ports auf<br />

einen anderen zu spiegeln, sodass sich<br />

Pakete abgreifen lassen.<br />

Der erste Schritt in der dazu passenden<br />

Konfiguration ist das Hinzufügen<br />

des Ports zum Switch. <strong>Die</strong>s erledigt wie<br />

oben das »add‐port«-Kommando. Nach<br />

Anlegen des Mirror kann der Port für<br />

nichts anderes mehr dienen, und das Ziel<br />

muss ein physisches Interface sein. Das<br />

Kommando zum Erzeugen des Mirror ist<br />

etwas länglich, da es die dynamisch vergebenen<br />

UIDs aus der Konfigurationsdatenbank<br />

ausliest, um mit diesen Werten<br />

den Spiegel anzulegen.<br />

In größeren Umgebungen kann es notwendig<br />

sein, zwei LAN-Inseln über einen<br />

Layer-3-Tunnel miteinander zu verbinden.<br />

Das lässt sich zwar vermeiden,<br />

wenn der Planer das Netzwerk entwirft,<br />

bei einer organisch gewachsenen Umgebung<br />

wird es trotzdem manchmal<br />

notwendig. Open Vswitch kann Pakete<br />

über das Generic-Router-Encapsulation-<br />

Protokoll (GRE), CAPWAP (das häufig<br />

zwischen dummen Basestations und deren<br />

Controllern Einsatz findet) oder GRE<br />

in IPsec tunneln.<br />

Auf den beiden Hosts in Abbildung 1<br />

existiert jeweils eine Insel eines LAN<br />

Listing 1: »ovs‐vsctl«<br />

01 ovs‐vsctl ‐‐ set Bridge linux‐switch0 mirrors=@m ‐‐<br />

‐‐id=@tap0 get Port tap0 ‐‐ ‐‐id=@tap1 get Port tap1<br />

‐‐ ‐‐id=@eth1 get Port eth1 ‐‐ ‐‐id=@m create Mirror<br />

name=tapmirror select_all=1 output‐port=@eth1


Sysadmin<br />

www.linux-magazin.de Open Vswitch 02/2013<br />

66<br />

Abbildung 2: Das Web-GUI für den Floodlight-Controller mit Open Vswitch.<br />

In der realen Welt müsste der Administrator<br />

jetzt nur noch die Netzwerkkabel in<br />

die richtigen Ports seines Switch stecken.<br />

In der virtuellen Welt funktioniert das<br />

ähnlich, doch haben die Hypervisoren<br />

ihre Eigenheiten:<br />

Virtualbox und VMware bieten Hostonly-Interfaces.<br />

<strong>Die</strong>se tauchen auch auf<br />

dem Host auf (sichtbar mit »ifconfig«)<br />

und lassen sich mit dem »add‐port«-<br />

Kommando einfach einem bestimmten<br />

Switch zuweisen. Dabei ist aber darauf<br />

zu achten, dass jeder Host sein eigenes<br />

Interface bekommt, da sonst innerhalb<br />

eines Host-only-Interface die Hosts wieder<br />

wie an einem Hub hängen und beispielsweise<br />

der Traffic des Nachbarn für<br />

alle sichtbar bleibt.<br />

Xen erzeugt typischerweise VIF-Interfaces,<br />

die dem Schema »Index_der_Maschine.Index_des_Interface«<br />

folgen. Jedoch<br />

hängen die Indizes davon ab, in<br />

welcher Reihenfolge die Maschinen starten,<br />

sodass die Zuordnung zum richtigen<br />

virtuellen Switch durchaus schwierig<br />

sein kann, zumindest wenn der Admin<br />

in der Konfiguration nicht den Parameter<br />

»vifname« verwendet.<br />

Xen besitzt auch Skripte, die mit Bridges<br />

die Interfaces zu den richtigen Brücken<br />

hinzufügen. Auch sieht es Ersatzskripte<br />

vor, die der Admin stattdessen verwenden<br />

kann, um die Open-Vswitch-Einbindung<br />

umzusetzen. Wer den Bridge Compatibility<br />

Mode (im Paket »openvswitch‐brcompat«)<br />

einsetzt, sorgt dafür, dass Xen gar<br />

nichts mehr von Open Vswitch mitbekommt.<br />

Dafür müssen aber der Daemon<br />

»ovs‐brcompatd« gestartet und das passende<br />

Kernelmodul geladen sein.<br />

KVM verwendet die virtuellen Tap-Interfaces<br />

des <strong>Linux</strong>-Kernels, die sich recht<br />

simpel einbinden lassen. Doch auch hier<br />

hat der Admin auf die richtige Reihenfolge<br />

zu achten, wofür er beim Start des<br />

KVM-Gastes Skripte für das Netzwerk-<br />

Interface ausführt, die beim Hoch- und<br />

Herunterfahren ablaufen. <strong>Die</strong> Option<br />

»‐net« unterstützt dazu die mit Komma<br />

angefügten Subparameter »script=«<br />

und »downscript=«. <strong>Die</strong> Skripte erhalfür<br />

virtuelle Maschinen. <strong>Die</strong> Hosts, die<br />

diese Gäste beherbergen, sind im Netz<br />

getrennt, sodass Routen notwendig sind,<br />

um die Pakete auszutauschen. <strong>Die</strong> Adressen<br />

des aufgeteilten LAN werden dagegen<br />

im Netz nicht geroutet. Damit sich<br />

die Tunnel aufbauen lassen, muss der<br />

Admin das Kernelmodul aus der Open-<br />

Vswitch-Distribution verwenden. Das<br />

Modul aus dem Kernel selbst bringt im<br />

Logfile beim Hinzufügen des Tunnel-Interface<br />

die Warnmeldung »address family<br />

not supported«.<br />

Zwei Switches, bitte<br />

Auf beiden Seiten muss außerdem ein virtueller<br />

Switch existieren, der einen Port<br />

und eine Adresse im LAN hat und darüber<br />

routet. Auf Host A ist dies 172.18.1.1 und<br />

auf Host B 172.19.1.1. Beide Seiten haben<br />

»eth0« in diesem Switch als Port zugewiesen,<br />

die Routingtabelle ist so konfiguriert,<br />

dass die Hosts A und B erreichen.<br />

<strong>Die</strong> Insel-Switches heißen »islandswA«<br />

Listing 2: Tunnel für Host A<br />

01 # ovs‐vsctl set‐controller islandswA tcp:172.18.1.1<br />

02 # ovs‐vsctl add‐port islandswA add‐port gre1 ‐‐ set<br />

Interface gre1 type=gre options:remote_ip=172.19.1.1<br />

Listing 3: Tunnel für Host B<br />

01 # ovs‐vsctl set‐controller islandswB tcp:172.19.1.1<br />

02 # ovs‐vsctl add‐port islandswA add‐port gre1 ‐‐ set<br />

Interface gre1 type=gre options:remote_ip=172.18.1.1<br />

Listing 4: Netflow aktivieren<br />

01 # ovs‐vsctl ‐‐ set Bridge linux‐switch0<br />

netflow=@nf ‐‐ ‐‐id=@nf create NetFlow<br />

targets=\"172.16.1.1:2055\" active‐timeout=30<br />

und »islandswB« und<br />

verbinden das LAN<br />

10.1.1.0/​24. Zum Tunneln<br />

dient in diesem<br />

Beispiel GRE.<br />

Listing 2 zeigt die<br />

Konfiguration für Host<br />

A – ebenfalls einfach<br />

vom Admin an der<br />

Shell eingegeben. Auf<br />

Host B konfiguriert<br />

er das Ganze spiegelverkehrt<br />

(Listing 3).<br />

Mit dem Kommando<br />

»ovs‐vsctl show« lässt<br />

sich die vollständige<br />

Konfiguration anzeigen.<br />

Dabei ist darauf zu achten, dass<br />

bei den Switches (in der Open-Vswitch-<br />

Terminologie steht dort »Bridge«) unter<br />

dem Controller-Eintrag das Flag »is_connected:<br />

true« vorhanden ist – eine simple<br />

Erfolgskontrolle für die Konfiguration.<br />

Netflow<br />

Nach erfolgreicher Konfiguration geht’s<br />

an die Integration ins Management. Das<br />

ursprünglich von Cisco entwickelte Netflow-Protokoll<br />

liefert die für den Admin<br />

wichtigen Informationen, welche Netzwerkgeräte<br />

miteinander kommunizieren,<br />

in einem exportierbaren Format. Seit Version<br />

9 gibt es auch ein RFC (3954, [7]).<br />

Open Vswitch spricht Netflow, alternativ<br />

auch Sflow [8].<br />

<strong>Die</strong> exportierten Daten sammelt ein<br />

Netflow Collector ein. Er hat in der Regel<br />

auch eine Software zum Auswerten<br />

dabei, die die Kommunikationszusammenhänge<br />

im Netzwerk sichtbar macht.<br />

Neben einer ganzen Reihe kommerzieller<br />

Kollektoren bietet Ntop zusätzlich zur<br />

eigenen Analyse auch die Möglichkeit,<br />

als Netflow Collector zu agieren.<br />

Konfiguration<br />

Der Administrator konfiguriert Netflow<br />

pro virtuellem Switch. <strong>Die</strong> Konfiguration<br />

erfolgt über längliche Einträge in der Datenbank.<br />

Das Kommando aus Listing 4<br />

aktiviert Netflow auf dem Switch »linux‐switch0«<br />

und schickt die Flow-Daten<br />

an einen Collector auf der IP-Adresse<br />

172.16.1.1 und dem Standard-Netflow-<br />

Port 2055. Um das Senden der Daten<br />

zu deaktivieren, gibt der Administrator<br />

das Kommando »ovs‐vsctl clear Bridge<br />

linux‐switch0 netflow« ein.<br />

Virtualisierungen


ten dann die Aufrufe, beispielsweise von<br />

»downscript=«, um den Port zum Switch<br />

hinzuzufügen oder zu entfernen.<br />

Wer Libvirt zur Verwaltung der VMs verwendet,<br />

macht es sich deutlich einfacher.<br />

Libvirt unterstützt Open Vswitch bereits<br />

seit seiner Version 0.9.11, allerdings sieht<br />

der Virt-Manager als grafisches Frontend<br />

dafür noch keine Konfigurationsoption<br />

vor (Abbildung 3). Ein Texteditor hilft:<br />

In der XML-Konfiguration eines Gastes<br />

stellt der Admin einfach den Interfacetyp<br />

auf »bridge«. Der XML-Block in Listing 5<br />

zeigt die Parameter für den Port.<br />

Sicherheit, Bonding und<br />

Link Aggregation<br />

Der Autor<br />

Konstantin Agouros arbeitet<br />

bei der N.runs AG als Berater<br />

für Netzwerksicherheit<br />

und mit dem Schwerpunkt<br />

bei TK-Anbietern. Sein Buch<br />

zu DNS/DHCP ist bei Open<br />

Source Press erschienen.<br />

Open Vswitch legt für jeden angelegten<br />

Switch ein Interface an. Wer diesen Interfaces<br />

IP-Adressen gibt, ermöglicht angeschlossenen<br />

Gästen, über diese Interfaces<br />

zu routen, sofern IP-Forwarding aktiv ist.<br />

Will er das nicht, dann sollte der Admin<br />

auf die Konfiguration des Forwarding<br />

auf dem Host achten. Natürlich kann<br />

er auch über »/proc/sys/net/ipv4/conf/<br />

Name_des_Interface/forwarding« explizit<br />

einzelne Interfaces ausschließen.<br />

Open Vswitch funktioniert so auch als<br />

Layer-3-Switch oder als Router. Auch<br />

kann der Admin mit IPtables-Regeln explizit<br />

die Kommunikation zwischen einzelnen<br />

Ports unterbinden. Mit »ovs‐vsctl«<br />

kann er sogar QoS-Parameter über Scheduler<br />

wie <strong>Linux</strong>-HTB [9] setzen. Zwar<br />

wäre es auch möglich, diese Parameter<br />

einfach pro Interface zu bestimmen, besser<br />

ist es aber, die Konfiguration über<br />

Open Vswitch zu erledigen. Dann sind<br />

die Parameter schon beim Start der Open-<br />

Vswitch-<strong>Die</strong>nste vorgegeben.<br />

Open Vswitch räumt auch die Möglichkeit<br />

ein, mehrere Interfaces zu einem logischen<br />

zusammenzubinden (Bonding,<br />

[10]), um durch die Verteilung auf Ports<br />

mehr Bandbreite zu erzielen. Das Unterkommando<br />

»add‐bond<br />

bridge bondname Interface1<br />

Interface2<br />

[...]« erzeugt die<br />

Bonds. Handelt es sich<br />

um physische Interfaces<br />

und soll sich der<br />

Verbund auch über<br />

den physischen Switch<br />

fortpflanzen, an den<br />

sie angebunden sind,<br />

muss der Admin dies<br />

selbst konfigurieren,<br />

etwa mit Link Aggregation<br />

(LACP, [11]).<br />

Open Vswitch erfährt<br />

dies beim Anlegen des<br />

Bond mit »lacp=active«.<br />

Open Vswitch bietet eine leistungsfähige<br />

und komfortable Möglichkeit, virtuelle<br />

Systeme in und über die Grenzen der<br />

physischen Hosts zu vernetzen. Damit hat<br />

der Administrator das Rüstzeug, um auch<br />

komplexe Netzwerkdesigns umzusetzen.<br />

Das Bridge-Kompatibilitätsmodul erlaubt<br />

den nahtlosen Austausch von eventuell<br />

bisher verwendeten <strong>Linux</strong>-Bridges. Net/​<br />

sFlow und QoS-Mechanismen sind Highend-Features,<br />

die derzeit nicht alle physischen<br />

Switches besitzen.<br />

<strong>Die</strong> bei Redaktionsschluss dieses Artikels<br />

verfügbare Version 1.7.1 unterstützte<br />

leider keine Kernelversion neuer als 3.3<br />

bei Kernelmodulen, die für die fortgeschrittenen<br />

Funktionen notwendig sind.<br />

Wer die benötigt, braucht noch etwas<br />

Geduld, bis die Open-Vswitch-Pakete<br />

der Distributoren nachziehen. Auch die<br />

Dokumentation des Projekts könnte an<br />

einigen Stellen etwas klarer sein, aber<br />

eine Onlinesuche fördert in der Regel<br />

Konfigurationsbeispiele zu Tage, mit denen<br />

der Administrator seine Wünsche<br />

umsetzen kann.<br />

Performance<br />

Nicht zu vergessen: Tunnel kosten Performance.<br />

In einem Testaufbau ohne Router<br />

zwischen den Inseln kam Netperf zum<br />

Einsatz, um den Durchsatz zumindest<br />

oberflächlich zu messen. In einem Aufbau,<br />

der mit dem aus Abbildung 1 vergleichbar<br />

ist, erzielte das Szenario 900<br />

MBit/​s, die direkte Messung zwischen<br />

den beiden Hosts 940 MBit/​s. Ein Admin,<br />

Abbildung 3: Mit Libvirt und dem Virt-Manager geht vieles rund um<br />

Virtualisierung einfacher, meist sogar per Mausklick. Doch die Konfiguration<br />

eines Vswitch ist noch nicht im GUI angekommen.<br />

der das einzusetzen plant, sollte also von<br />

knapp 5 Prozent Overhead ausgehen,<br />

der aber sicherlich je nach verwendetem<br />

<strong>Die</strong>nst und Protokoll variiert. Außerdem<br />

ist Netperf sicherlich nicht für alle Traffic<br />

Mixes repräsentativ, eigenes Testen ist<br />

daher unabdingbar. (mfe)<br />

n<br />

Infos<br />

[1] Open Vswitch: [http:// openvswitch. org]<br />

[2] Open Flow: [http:// www. openflowhub. org]<br />

[3] Netflow: [http:// www. cisco. com/ en/ US/​<br />

products/ ps6601/ products_ios_protocol_<br />

group_home. html]<br />

[4] Ntop: [http:// www. ntop. org<br />

[5] Link Aggregation: [http:// en. wikipedia. org/​<br />

wiki/ Link_aggregation]<br />

[6] Spanning Tree Protocol: [http:// www. cisco.​<br />

com/ en/ US/ tech/ tk389/ tk621/ tsd_<br />

technology_support_protocol_home. html]<br />

[7] Netflow-RFC:<br />

[http:// www. ietf. org/ rfc/ rfc3954. txt]<br />

[8] Sflow: [http:// www. sflow. org]<br />

[9] <strong>Linux</strong>-HTB:<br />

[http:// luxik. cdi. cz/ ~devik/ qos/ htb/]<br />

[10] Michael Kromer, „Netz und doppelter Boden“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 09/​09, S. 56<br />

[11] LACP-Grundlagen:<br />

[http:// www. thomas‐krenn. com/ de/ wiki/​<br />

Link_Aggregation_und_LACP_Grundlagen]<br />

Listing 5: Bridge in Libvirt<br />

01 <br />

02 <br />

03 <br />

04 [...]<br />

05 <br />

Open Vswitch 02/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

67


Sysadmin<br />

www.linux-magazin.de TCP Fast Open 02/2013<br />

70<br />

Netzbeschleunigung mit TCP Fast Open<br />

Zeit gewinnen<br />

Mit TCP Fast Open hat Google eine Protokollerweiterung zum Verringern unnötiger Latenzen im Netzwerkverkehr<br />

vorgestellt, die je nach Anwendungsfall eine Beschleunigung von bis zu 41 Prozent verspricht und es<br />

bereits in die aktuellen <strong>Linux</strong>-Kernel 3.6 (als Client) und 3.7 (als Server) geschafft hat. Timo Schöler, Markus Feilner<br />

© mezzotint123rf, 123RF.com<br />

Den Löwenanteil des heutigen Internetverkehrs<br />

machen recht kurzlebige<br />

Datenflüsse aus, etwa der typische Aufruf<br />

einer Website: <strong>Die</strong> Rechner bauen<br />

mehrere, nicht selten mehrere Dutzend<br />

gleichzeitige TCP-Sessions auf, um dann<br />

aber nur verhältnismäßig wenig Daten<br />

vieler kleiner Elemente (HTML-Code,<br />

Mini-Grafiken, Javascript und Ähnliches)<br />

zu übertragen. Der (Zeit-)Aufwand für<br />

den Verbindungsaufbau steht dabei in<br />

keinem günstigen Verhältnis zum transferierten<br />

Inhalt. Untersuchungen zufolge<br />

initiiert ein Drittel aller Requests neue<br />

Verbindungen, ein Viertel aller durch Latenz<br />

verursachten Wartezeit stammt vom<br />

Verbindungsaufbau [1].<br />

Viele Browser kontern dies, jeder auf eine<br />

andere Art [2]: Um einem erneuten Verbindungsaufbau<br />

vorzubeugen, versuchen<br />

manche nach dem Erstaufruf der Seite<br />

ungenutzte TCP-Verbindungen offen zu<br />

halten (so genannte HTTP Persistent<br />

Connections). Das aber bindet Ressourcen<br />

und ärgert Admins: Insbesondere bei<br />

stark frequentierten Servern setzen sie<br />

mittlerweile die Timeout-Stellschrauben<br />

auf sehr kurze Zeiträume. Bessere Ansätze<br />

bietet der <strong>Linux</strong>-Kernel ab Version<br />

3.7 mit einem Google-Projekt: TCP Fast<br />

Open (TFO, [3]).<br />

Latenzen vermeiden<br />

Solche Störfaktoren erst gar nicht entstehen<br />

zu lassen und die Latenzen von<br />

vornherein zu vermeiden, das steht ganz<br />

oben auf dem Entwurf, den Mitte 2011<br />

Googles „Make the Web faster“-Team<br />

um Sivasankar Radhakrishnan, Yuchung<br />

Cheng, Jerry Chu und Arvind Jain (den<br />

Autoren der Slides in [1]) unter dem Namen<br />

TCP Fast Open vorstellte.<br />

<strong>Die</strong> Grundidee, den Aufbau einer TCP-<br />

Session effizienter zu gestalten, ist an<br />

sich nicht neu: Bereits 1994 spezifizierten<br />

RFC 1379 und RFC 1644 [4] mit T/​TCP<br />

(Transactional TCP) im Prinzip ähnliche<br />

Vorgehensweisen. Doch wegen der von<br />

Charles Hannum im September 1996 zu<br />

ernsten Sicherheitsproblemen veröffentlichten<br />

Analysen [5] hat sich T/​TCP nie<br />

auf breiter Front durchsetzen können.<br />

<strong>Die</strong> Arbeit war jedoch nicht umsonst: Aus<br />

dem daraus gewonnenen Wissen entwickelte<br />

nun das Google-Team mit TFO einen<br />

verbesserten Ansatz.<br />

<strong>Linux</strong> ist gerüstet: Seit Kernel 2.6.34 ist<br />

TFO dabei [6], ab 3.6 samt Client-seitiger<br />

Infrastruktur, ab 3.7 auch als Server. Experimentierfreudige<br />

Benutzer können –<br />

einen topaktuellen Kernel vorausgesetzt<br />

– TCP Fast Open bereits aktivieren:<br />

echo "1"> /proc/sys/net/ipv4/tcp_fastopen<br />

»"1"« schaltet TFO für den Client-, »"2"«<br />

für den Serverbetrieb an. Das Setzen beider<br />

Bits (mit »"3"«) aktiviert beide Modi.<br />

Mehr ist nicht nötig, ab sofort sollte zwischen<br />

allen derart konfigurierten Clients<br />

und Servern der Verbindungsaufbau<br />

deutlich schneller klappen, wenn Sockets<br />

und Clientsoftware mitspielen (siehe weiter<br />

unten in diesem Artikel).<br />

Kernelquellen<br />

<strong>Die</strong> praktische Umsetzung von TFO fand<br />

zwar bereits Eingang in den <strong>Linux</strong>-Kernel,<br />

aber die Feinheiten der Spezifikation werden<br />

in näherer Zukunft sicherlich noch<br />

für Detaildiskussionen auf diversen Mailinglisten<br />

führen. So ist beispielsweise<br />

der Algorithmus zum Generieren des<br />

TFO-Cookies implementationsabhängig:<br />

Je nach Server lässt sich die Priorität<br />

auf möglichst energiesparende oder auf<br />

hochperformante Ansätzen legen. Auch<br />

Aspekte der Sicherheit der Implementation<br />

bereiten sicherlich noch Arbeit, etwa<br />

der regelmäßige Austausch der Server-


seitig zur Verschlüsselung der Client-IP<br />

genutzten Keys.<br />

Wer sich in den Kernel-Quelltext rund<br />

um TFO einlesen will [7], findet den<br />

relevanten Code in der Datei »/net/ipv4/<br />

tcp_fastopen.c«, auch die genaue Vorgehensweise,<br />

wie das System das Cookie<br />

generiert. In »include/linux/tcp.h«<br />

(Listing 1) definieren die Entwickler die<br />

Rahmen für die Cookie-Größe.<br />

Three Way Handshakes<br />

Für den Aufbau einer TCP-Session ist<br />

nach dem klassischen Modell ein so genannter<br />

Three Way Handshake notwendig<br />

(Abbildung 1): Der Client fragt beim<br />

Verbindungsaufbau den entsprechenden<br />

Zielserver an (»SYN«, Synchronize), der<br />

antwortet gegebenenfalls mit einem »SYN<br />

ACK«, dass er die Verbindungsanfrage<br />

des Clients akzeptiert.<br />

Während dieser Phase setzen die Partner<br />

unter anderem die MSS fest (Maximum<br />

Segment Size, die zwischen den Verbindungsendpunkten<br />

maximal erlaubte Anzahl<br />

von Bytes an Nutzdaten in einem<br />

TCP-Segment) sowie die ISN (Initial Sequence<br />

Number, eindeutige Nummer zur<br />

Sicherstellung der Übertragung in korrekter<br />

Reihenfolge und Erkennung von<br />

Dubletten). Es findet jedoch noch kein<br />

Austausch von Nutzdaten statt.<br />

Zwar erlauben es die TCP definierenden<br />

RFCs ([8], [9]), bereits hier Nutzdaten<br />

zu übermitteln, aber nicht ihre Weiterverarbeitung<br />

vor Abschluss des kompletten<br />

Verbindungsaufbaus. Den schließt der<br />

Client, der mit »ACK« antwortet, ab. Im<br />

Regelfall gelangen erst danach Nutzdaten<br />

an den Server, etwa die Adresse der Seite,<br />

die der Browser anzeigen soll.<br />

Ein Cookie hilft Roundtrips<br />

einsparen<br />

Bis zum ersten Transfer von Nutzdaten in<br />

Schritt drei des Verbindungsaufbaus sind<br />

die Pakete also bereits einmal vom Client<br />

zum Server hin- und wieder zurückgelaufen,<br />

ein Roundtrip also, und der hat die<br />

Roundtrip Time (RTT) benötigt. Nicht<br />

selten dauert die mehrere Dutzend Millisekunden,<br />

in mobilen Netzen auch mehr<br />

als 100 Millisekunden, im GSM-Netz mit<br />

schlechtem Empfang auch schon mal<br />

mehrere Zehntelsekunden.<br />

<strong>Die</strong> Wartezeit ist zwar lästig, hat aber<br />

auch Sinn: Durch einen abgeschlossenen<br />

Verbindungsaufbau lassen sich unter<br />

anderem doppelt versandte »SYN«-Anfragen<br />

erkennen und verwerfen, die durch<br />

Netzwerkprobleme oder eventuell auch<br />

böswillig entstanden sind. Auch Angreifer,<br />

die mit Spoofing versuchen einen<br />

anderen Absender vorzugaukeln, haben<br />

es deshalb schwerer.<br />

Dem muss TFO anders begegnen: Google<br />

hat sich vorgenommen, aus den Fehlern<br />

der Vergangenheit zu lernen, und will<br />

Sicherheitsprobleme wie die bei T/​TCP<br />

vermeiden. Deshalb spezifiziert der Konzern<br />

so genannte TFO-Cookies: Bei der<br />

ersten Verbindungsanfrage eines TFOfähigen<br />

Clients generiert der angefragte<br />

Server sofort das Cookie und sendet es<br />

Client<br />

SYN<br />

SYN-ACK<br />

ACK<br />

Das ACK-Segment darf<br />

Nutzdaten enthalten<br />

Server<br />

Abbildung 1: Der traditionelle Three Way Handshake<br />

des TCP-Verbindungsaufbaus.<br />

für spätere Verbindungsaufbauten bereits<br />

im zweiten Schritt (»SYN-ACK«) an den<br />

Client (Abbildung 2).<br />

Außer dem virtuellen Keks tauschen die<br />

Rechner zu diesem Zeitpunkt keine weiteren<br />

Daten aus. Das Server-seitig erzeugte<br />

Cookie aber enthält die verschlüsselte<br />

IP-Adresse des Clients. <strong>Die</strong> Prozedur des<br />

Anfragens, Erzeugens und den Austausch<br />

des Cookies erledigt der TCP-Stack des<br />

Kernels, die Anwendungsentwickler sind<br />

aus dem Schneider.<br />

Wie bei einem Token weist der Besitz<br />

den Client als berechtigt aus, in den Genuss<br />

der TFO-Abkürzung zu kommen.<br />

Für den Client stehen bei Bedarf spezielle<br />

Flags (»MSG_TFO«) für die Systemcalls<br />

»sendto()« und »sendmsg()« bereit, für<br />

TCP Fast Open 02/2013<br />

Sysadmin<br />

www.linux-magazin.de<br />

71<br />

Client<br />

Server<br />

Client<br />

Server<br />

SYN mit<br />

Cookie-Anfrage<br />

SYN mit<br />

Cookie und Daten<br />

Client speichert<br />

Cookie für spätere<br />

Wiederverwendung<br />

SYN-ACK<br />

inklusive Cookie<br />

ACK<br />

vollendet Handshake<br />

Server generiert<br />

TFO-Cookie<br />

basierend auf<br />

Client-IP<br />

SYN-ACK<br />

ACK bestätigt Eingang<br />

des SYN und der Daten<br />

ACK<br />

vollendet Handshake<br />

Server prüft Cookie,<br />

leitet Daten weiter an Applikation<br />

Server kann vor Empfang des<br />

Client-ACK weitere Daten senden<br />

Abbildung 2: Der Verbindungsauf mit TCP Fast Open erzeugt ein TFO-Cookie, das<br />

den Client fortan wie ein Token identifiziert.<br />

Abbildung 3: Bei jedem weiteren Verbindungsaufbau überträgt der Client sein<br />

Cookie sofort, der Server antwortet mit Daten bereits im »SYN-ACK«-Paket.


Sysadmin<br />

www.linux-magazin.de TCP Fast Open 02/2013<br />

72<br />

Abbildung 4: Eine Präsentation der Entwickler zeigt das Potenzial, das TFO birgt. (Quelle: [1], S. 16)<br />

erschöpft, forciert der Server die Nutzung<br />

des traditionellen Weges.<br />

Was in naher Zukunft noch nötig sein<br />

wird, ist neben der Implementierung in<br />

diversen Betriebssystemen die Vergabe einer<br />

offiziellen TCP Option Number durch<br />

die IANA, da TFO bisher pro forma auf<br />

eine TCP Experimental Option Number<br />

zurückgreift.<br />

Von den niedrigen Latenzen profitieren<br />

hauptsächlich Admins und Benutzer,<br />

etwa bei Webservern. Für Anwendungsentwickler<br />

entsteht normalerweise keine<br />

zusätzliche Arbeit. Programme, die mit<br />

TFO nichts anfangen können, laufen aufgrund<br />

des automatischen Fallback mit<br />

den traditionellen TCP-Handshakes weiter.<br />

<strong>Die</strong>s betrifft auch Geräte wie Router,<br />

Firewalls und ähnliche, die mit bereits im<br />

»SYN«-Segment untergebrachten Nutzdaten<br />

nichts anfangen können. n<br />

01 /* TCP Fast Open */<br />

etwa einen Apache-Server gibt es Socket-<br />

Parameter wie »TCP_FASTOPEN« [10].<br />

Googles Browser Chrome nutzt TFO bereits<br />

seit 2010, wenn ihn der User mit<br />

»--enable-tcp-fastopen« gestartet hat.<br />

Neue TCP-Optionen<br />

Nach erfolgreichem Abschluss des ersten<br />

Verbindungsaufbaus (mit den bereits<br />

beim traditionellen TCP üblichen drei<br />

Schritten) verfügt der Client jetzt über<br />

das TFO-Cookie, mit dem er künftige<br />

Verbindungen um einen kompletten Paketumlauf<br />

abkürzen kann. Dann sendet<br />

er bereits beim »SYN«-Request das TFO-<br />

Cookie und erste Nutzdaten, etwa eine<br />

URL, an den Server.<br />

Damit das klappt, haben die Entwickler<br />

extra eine neue TCP-Option eingeführt:<br />

Der angefragte Server validiert das Cookie<br />

Listing 1: »include/linux/tcp.h«<br />

02 #define TCP_FASTOPEN_COOKIE_MIN 4 /* Min Fast<br />

Open Cookie size in bytes */<br />

03 #define TCP_FASTOPEN_COOKIE_MAX 16 /* Max Fast<br />

Open Cookie size in bytes */<br />

04 #define TCP_FASTOPEN_COOKIE_SIZE 8 /* the size<br />

employed by this impl. */<br />

05 <br />

06 /* TCP Fast Open Cookie as stored in memory */<br />

07 struct tcp_fastopen_cookie {<br />

08 s8 len;<br />

09 u8 val[TCP_FASTOPEN_COOKIE_MAX];<br />

10 };<br />

und stellt somit sicher, dass die im Cookie<br />

verschlüsselt hinterlegte IP-Adresse<br />

mit der des anfragenden Clients übereinstimmt.<br />

Im Erfolgsfall kann der Server<br />

bereits im zweiten Schritt des Verbindungsaufbaus<br />

und damit vor Empfang<br />

des »ACK« durch den Client Nutzdaten<br />

zurücksenden; verglichen mit dem traditionellen<br />

Weg spart dies eine vollständige<br />

RTT (Abbildungen 3 und 4).<br />

Für den Fall, dass der Server den Client<br />

nicht positiv validieren kann, sendet er<br />

keine Daten an den Client zurück, stattdessen<br />

greift als Fallback-Mechanismus<br />

der herkömmliche Drei-Wege-Handshake.<br />

Der Server bestätigt dem anfragenden<br />

Client lediglich den Empfang mit<br />

einem »ACK«.<br />

Pools schwebender Verbindungen<br />

wehren Angriffe ab<br />

Dass ein Client mit gültigem TFO-Cookie<br />

bereits Ressourcen auf dem Server in Anspruch<br />

nehmen kann, bevor der Handshake<br />

komplett abgewickelt ist, öffnet<br />

allerdings Resource-Exhaustion-Attacken<br />

auf den Server Tür und Tor. Doch dagegen<br />

hilft das auch im Falle von SYN-<br />

Flood-Attacken erfolgreiche Mittel eines<br />

begrenzten Pools „schwebender“ Verbindungen,<br />

also solcher Verbindungen, die<br />

zwar ein gültiges TFO-Cookie enthalten,<br />

aber noch nicht den kompletten Handshake<br />

durchlaufen haben. Ist dieser Pool<br />

Infos<br />

[1] TFO-Vortrag von Sivasankar Radhakrishnan<br />

et al.: [http:// conferences.​<br />

sigcomm. org/ co‐next/ 2011/ slides/​<br />

Radhakrishnan‐TCP_Fast_Open. pdf]<br />

[2] Browser Profiling: [http:// www.​<br />

browserscope. org/ ? category=network&​<br />

v=top]<br />

[3] TCP Fast Open: [http://research.google.<br />

com/pubs/archive/37517.pdf],<br />

[http:// tools. ietf. org/ html/ draft‐ietf‐tcpm<br />

‐fastopen‐01]<br />

[4] T/​TCP: [http:// tools. ietf. org/ html/ rfc1379],<br />

[http:// tools. ietf. org/ html/ rfc1644]<br />

[5] Sicherheitsprobleme bei T/​TCP:<br />

[http:// www. phrack. org/ issues. html?​<br />

issue=53& id=6]<br />

[6] TFO-Patch zum Kernel: [http:// article.​<br />

gmane. org/ gmane. linux. network/ 237151]<br />

[7] Kernelnewbies zu Kernel 3.6:<br />

[http:// kernelnewbies. org/ <strong>Linux</strong>_3. 6]<br />

[8] RFC793 TCP:<br />

[http:// tools. ietf. org/ html/ rfc793]<br />

[9] RFC1323 TCP High Performance Extensions:<br />

[http:// tools. ietf. org/ html/ rfc1323]<br />

[10] Michael Kerrisk, „TCP Fast Open: expediting<br />

web services“:<br />

[http:// lwn. net/ Articles/ 508865/]<br />

Der Autor<br />

Timo Schöler ist als Senior Systemadministrator<br />

mit Schwerpunkt Load Balancing, Hochverfügbarkeit<br />

und Virtualisierung bei der Inter.Net Germany<br />

GmbH (Snafu) in Berlin tätig.


Admin-MAGAZIN<br />

im Jahres-Abo<br />

Praktisch anwendbares Wissen und ausführliche<br />

Hintergrundberichte für alle IT-Administratoren<br />

von <strong>Linux</strong>, Unix und Windows.<br />

JETZT Zugreifen<br />

und über 15% Sparen!<br />

IHRE vorteile<br />

• 6 Ausgaben im Jahr Frei Haus<br />

• inklusive 6 ADMIN-Specials<br />

(unter anderem zu IPv6 und SSD)<br />

als PDF-Download im Wert von<br />

über 35 Euro<br />

sichern Sie Sich Ihr<br />

gratis Multitool!<br />

Jetzt abonnieren:<br />

www.admin-magazin.de/abo<br />

(Printabo 49,90 Euro, digitales Abo nur 44,90 Euro)<br />

• Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de •


Forum<br />

www.linux-magazin.de Recht 02/2013<br />

74<br />

Markenrecht und Programmnamen<br />

Namensvetter<br />

Es wird immer populärer, noch vor der Veröffentlichung den Namen eines Open-Source-Programms schützen<br />

zu lassen. Ein Gerichtsurteil stellt anhand des Streits um die Benutzeroberfläche Enigma klar: Der Rechte-<br />

Inhaber darf zwar das Verwaschen der eigenen Marke verhindern, die User aber nicht knebeln. Fred Andresen<br />

© TedColes<br />

Enigma hieß im Zweiten Weltkrieg die<br />

legendäre und im Nachhinein wohl unfreiwillig<br />

kriegsentscheidende Verschlüsselungsmaschine.<br />

Doch selbst 67 Jahre<br />

nach Kriegsende müssen sich deutsche<br />

Gerichte wieder mit dem Namen herumschlagen,<br />

wenn auch in völlig anderem<br />

Kontext: Es ging um Markenrechte, die<br />

GPL und darum, wer wann und wie bestimmen<br />

darf, wie ein (Open-Source-)<br />

Produkt zu heißen hat.<br />

Im vergangenen April hatte das Oberlandesgericht<br />

Düsseldorf im Rahmen eines<br />

Verfahrens zum einstweiligen Rechtsschutz<br />

über die zulässige Benennung<br />

eines GPL-Programms zu entschieden<br />

[1]. Entwickler einer Firma hatten den<br />

Namen Enigma (griechisch für Rätsel)<br />

für eine Benutzeroberfläche von Set-top-<br />

Boxen gewählt. Im Gerichtsverfahren<br />

standen auf der einen Seite zwei miteinander<br />

verbandelte Gesellschaften: <strong>Die</strong> Inhaberin<br />

der Gemeinschaftsmarke Enigma<br />

(seit 2008 eingetragen für Betriebssysteme,<br />

Treiber, Set-top-Boxen, Satellitenreceiver<br />

und digitale TV-Empfänger) und<br />

eine Schwestergesellschaft, die die Settop-Box<br />

Dreambox auf eine <strong>Linux</strong>-Basis<br />

setzt und vertreibt.<br />

Set-top-Box mit<br />

angepasstem <strong>Linux</strong><br />

<strong>Die</strong>se Schwestergesellschaft hatte bereits<br />

vor der Markeneintragung eine Bedienungsoberfläche<br />

unter anderem für die<br />

Dreambox entwickelt und dieses Programm<br />

im Jahr 2000 unter der GPLv2<br />

veröffentlicht. Seither setzt eine Vielzahl<br />

von Herstellern diese Benutzeroberfläche<br />

für verschiedene Set-top-Boxen ein, auch<br />

in einer an die jeweils angebotene Box<br />

angepassten Form, da sich die Hardware<br />

der einzelnen Geräte voneinander unterscheidet,<br />

was wiederum entsprechende<br />

Änderungen nötig macht.<br />

Auf der anderen Seite im Rechtsstreit<br />

standen der Verkäufer einer solchen Settop-Box,<br />

die sich ebenfalls Hardwaremäßig<br />

von der Dreambox unterscheidet,<br />

sowie der Hersteller dieses Geräts, der<br />

den Verkäufer mit den Geräten beliefert<br />

hatte. Auch diese Geräte waren mit der<br />

Enigma-Bedienoberfläche ausgestattet,<br />

allerdings in einer auf die andere Hardware<br />

angepassten Version.<br />

Ausgangspunkt für den Rechtsstreit war<br />

die Reklame des Verkäufers für das Konkurrenzprodukt<br />

mit einem Flyer, auf<br />

dem zu lesen war, dass das Gerät „mit<br />

<strong>Linux</strong>-Enigma-2-Betriebssystem“ laufen<br />

würde. <strong>Die</strong>se Aussage, auch wenn technisch<br />

nicht ganz einwandfrei formuliert,<br />

war geeignet, Kaufinteressenten klarzumachen,<br />

dass das Produkt unter dem<br />

leistungsfähigen und flexiblen Betriebssystem,<br />

gleichzeitig aber auch unter der<br />

bekannten und verbreiteten Benutzeroberfläche<br />

laufen würde. Also eigentlich<br />

gute Werbung.<br />

Durch diese Reklame sah sich allerdings<br />

auch die andere Seite, also der Verkäufer<br />

des Originals, in eigenen Rechten verletzt,<br />

hier in Bezug auf die Markenrechte<br />

am Namen „Enigma“, der sich auch auf<br />

Mailen Sie uns Ihre Fragen!<br />

Im monatlichen Wechsel mit aktuellen Fachbeiträgen<br />

lässt das <strong>Linux</strong>-<strong>Magazin</strong> in der Serie<br />

„Rechts-Rat“ Leserfragen durch einen<br />

Rechtsanwalt kompetent beantworten. Was<br />

immer Sie beschäftigt oder ärgert, oder was<br />

Sie einfach nur wissen möchten: Schreiben<br />

Sie eine entsprechende E-Mail an die Adresse<br />

[rechtsrat@linux-magazin. de].<br />

<strong>Die</strong> Themen dürfen von Software lizenzen bis<br />

zum Hardwarekauf reichen. <strong>Die</strong> Redaktion<br />

behält es sich vor, abgedruckte Zuschriften<br />

zu kürzen und eventuell enthaltene persönliche<br />

Daten zu ändern.


Abbildung 1: Dream Multimedia vertreibt die Dreambox-Varianten, also die einer Multimedia-Set-top-Box mit<br />

<strong>Linux</strong>, seit Juni allerdings verstärkt mit dem GUI des Goliath-Projekts.<br />

die zweite Softwareversion erstreckt.<br />

Dass sich in diesem Fall zwei Schwestergesellschaften<br />

um die Rechtewahrung<br />

bemühen, von denen eine die eingetragenen<br />

Markenrechte an die andere lizenziert<br />

hat, ist nur Ergebnis einer günstigeren<br />

rechtlichen Konstruktion und ohne<br />

weitere Bedeutung. Am Ende kommt es<br />

nur darauf an, dass hier eine Markeneintragung<br />

besteht, die mit dem Namen<br />

einer Software konkurriert – aber auch,<br />

dass diese Markeneintragung erst erfolgt<br />

ist, nachdem das Programm ursprünglich<br />

unter diesem Namen und unter der GPL<br />

veröffentlicht worden war.<br />

Schneller Rechtsschutz:<br />

Werbeverbot<br />

<strong>Die</strong> Antragsteller hatten das Gericht angerufen,<br />

um im Wege des einstweiligen<br />

Rechtsschutzes den Gegnern zu verbieten,<br />

den Namen Enigma zu benutzen, um<br />

für die Set-top-Box zu werben.<br />

<strong>Die</strong> eigentliche Frage lautete also: Darf<br />

man den ursprünglichen Namen eines<br />

Programms (hier von Open-Source-<br />

Software) verwenden, auch wenn entgegenstehende<br />

Markenrechte betroffen<br />

sind? Um die Sache noch ein wenig zu<br />

verkomplizieren, standen sich in diesem<br />

Fall sogar noch der ursprüngliche Entwickler<br />

und Namengeber der Software<br />

und ein Dritter gegenüber, der allenfalls<br />

abgeleitete Rechte aus der GPL geltend<br />

machen konnte.<br />

Um das Ergebnis vorwegzunehmen:<br />

Das Gericht hat in letzter Instanz entschieden,<br />

dass der Name hier Vorrang<br />

vor der Marke hat. Und das aus gutem<br />

Grund. <strong>Die</strong> Antragsteller stützten sich auf<br />

Rechtsansprüche aus einer eingetragenen<br />

Gemeinschaftsmarke. Das ist eine Markeneintragung,<br />

die EU-weit gilt und deren<br />

Rechtsfolgen in der Gemeinschaftsmarkenverordnung<br />

(GMV, [2]) geregelt sind.<br />

<strong>Die</strong> prinzipiell gleichen Regelungen sind<br />

für deutsche Marken im Markengesetz<br />

[3] enthalten.<br />

In beiden steht, dass der Inhaber einer<br />

eingetragenen (Geminschafts-)Marke<br />

das alleinige Recht hat, die Marke oder<br />

das Zeichen im geschäftlichen Verkehr<br />

zu benutzen, und dass es anderen insbesondere<br />

verboten ist, die Marke oder<br />

das Zeichen in identischer oder ähnlicher<br />

Form für eigene Waren oder <strong>Die</strong>nstleistungen<br />

zu verwenden.<br />

Konkurrierende<br />

Gemeinschaftsmarke<br />

Sowohl die GMV als auch das Markengesetz<br />

enthalten aber Ausnahmen von<br />

diesem Verbot: So ist es auch im geschäftlichen<br />

Verkehr erlaubt, Marken und Zeichen<br />

als beschreibende Angaben zu benutzen,<br />

wenn dies zur Bestimmung dient.<br />

Als Beispiel dient eine Kfz-Werkstatt, die<br />

sich auf Serviceleistungen und Ersatzteilgeschäfte<br />

für Autos einer bestimmten<br />

Marke spezialisiert hat und daher auch<br />

zum Beispiel mit „Reparaturen von Mercedes-Pkw“<br />

werben darf. <strong>Die</strong> jeweiligen<br />

Bestimmungen finden sich in Artikel 12<br />

b der GMV beziehungsweise in Paragraf<br />

23 des Markengesetzes.<br />

Gleiches gilt, wenn der Hersteller seine<br />

Ware mit den Bestandteilen bewirbt, die<br />

in seinem Produkt enthalten sind. Hierfür<br />

dient auch gleich ein Beispiel aus der IT-<br />

Welt: Der Hersteller eines Smartphones<br />

Recht 02/2013<br />

Forum<br />

www.linux-magazin.de<br />

75<br />

© ginasanders, 123RF.com<br />

© Stuart Miles, 123RF.com<br />

Abbildung 2: Im Falle von Enigma konkurrierte das Markenrecht mit dem Namen<br />

einer freien Software, die ein anderer Hersteller verwenden und bewerben wollte.<br />

Abbildung 3: Markengesetz und Gemeinschaftsmarkenverordnung geben allein<br />

dem Inhaber das Recht, eine Marke zu nutzen.


Forum<br />

www.linux-magazin.de Recht 02/2013<br />

76<br />

© Frze<br />

Abbildung 4: Mit dem Stern darf nicht jeder werben. Erlaubt ist allerdings,<br />

die Marke zur „Bestimmung“ zu nutzen, etwa bei Autowerkstätten.<br />

darf durchaus damit werben, dass sein<br />

Gerät unter Android läuft, auch wenn<br />

der Name Android geschützt ist (obwohl<br />

der größte Teil der Software natürlich<br />

frei ist …).<br />

Einen wichtigen Unterschied gibt es allerdings,<br />

was die Gemeinschaftsmarke<br />

und die einfache deutsche Marke betrifft:<br />

Nach der überkommenen nationalen<br />

Auffassung deutscher Gerichte gilt eine<br />

Marke durch die Benutzung eines anderen<br />

Zeichens von vornherein nur dann<br />

als verletzt, wenn das Zeichen seinerseits<br />

markenmäßig benutzt wird.<br />

Das setzt voraus, dass der jeweilige Einsatz<br />

auf die betriebliche Herkunft des<br />

Produkts oder der <strong>Die</strong>nstleistung hinweist.<br />

Eine bloße Beschreibung, dass es<br />

um solche Produkte oder <strong>Die</strong>nstleitungen<br />

geht oder dass entsprechende Produkte<br />

enthalten sind, genügt für eine Verletzung<br />

der deutschen Markenrechte nicht.<br />

Eine Beschreibung ist noch<br />

keine Markennutzung<br />

steller schließen. Hier<br />

war es aber – typisch<br />

für GPL-Software – so,<br />

dass bereits seit vielen<br />

Jahren verschiedene<br />

Hersteller das Programm<br />

in unterschiedlichen<br />

Set-top-Boxen<br />

adaptiert und unter<br />

dieser Angabe zusammen<br />

mit den Geräten<br />

vertrieben hatten.<br />

Der Programmname<br />

gilt daher, so schloss<br />

das Gericht, für die<br />

beteiligten Verkehrskreise<br />

mithin seit Langem<br />

als Bezeichnung einer Open-Source-<br />

Software unterschiedlicher betrieblicher<br />

Herkunft, also als Werktitel.<br />

Identisch oder ähnlich?<br />

Das Oberlandesgericht hat auch gleich<br />

geklärt, ob die Benutzeroberfläche noch<br />

als identisches Produkt anzusehen ist<br />

oder ob die durchgeführten Anpassungen<br />

hier bereits auf ein nur ähnliches Produkt<br />

schließen lassen. Typische Nutzung freier<br />

Software sei das Anpassen der Benutzeroberfläche<br />

an die unterschiedlichen<br />

Hardwareplattformen entsprechend den<br />

Geräten verschiedener Hersteller.<br />

Das liege für den Verbraucher auf der<br />

Hand. Der nehme bei derartigen Veränderungen<br />

jedenfalls so lange eine Übereinstimmung<br />

der Programme an, wie wesentliche<br />

Funktionen identisch sind und<br />

insbesondere von Drittanbietern angebotene<br />

Plugins funktionieren. Gerade die<br />

auf die Benutzeroberfläche aufsetzenden<br />

Programmergänzungen begründen sogar<br />

die Notwendigkeit, die Software mit ihrem<br />

bekannten Namen zu bezeichnen.<br />

Was erwartet der Kunde?<br />

Das Gericht zieht einen Vergleich mit der<br />

Nutzung gemeinfrei gewordener Werke:<br />

Jeder kennt unterschiedliche Verfilmungen<br />

von Literatur-Klassikern, die alle den<br />

bekannten Namen des ursprünglichen<br />

Werks nutzen. So gibt es etwa mehrere<br />

unabhängige, zulässige Verfilmungen des<br />

Buches „Der Seewolf“.<br />

Bezogen auf den Streitfall wird nach<br />

Auffassung des Gerichts der Verkehr das<br />

bekannte und an verschiedene Plattformen<br />

angepasste Programm auch mit einzelnen<br />

geringfügigen Änderungen und<br />

Anpassungen noch als das zu Recht den<br />

Namen Enigma führende Open-Source-<br />

Werk ansehen.<br />

Das Gericht war daher davon überzeugt,<br />

dass im vorliegenden Fall der Name<br />

Enigma nicht in marken- oder warenzeichenrechtlichem<br />

Sinne, sondern als bloße<br />

kennzeichnende Beschreibung benutzt<br />

wird. <strong>Die</strong> Benutzeroberfläche Enigma sei<br />

unter den Interessenten für derartige Settop-Boxen<br />

namentlich bekannt gewesen.<br />

Deshalb komme sein Einsatz nach deren<br />

maßgeblicher Verkehrsanschauung als<br />

Werktitel in Betracht.<br />

Das Werktitel-Konstrukt<br />

Ein Werktitel ist nach Paragraf 5 des Markengesetzes<br />

die geschäftliche Bezeichnung<br />

einer Druckschrift, eines Film-,<br />

Der Europäische Gerichtshof setzt für<br />

die Verletzung der Gemeinschaftsmarke<br />

zwar auch die markenmäßigen Benutzung<br />

voraus, definiert dieses Kriterium<br />

aber in einem weitreichenderen Sinn.<br />

<strong>Die</strong>se Interpretation betrifft jedoch nur<br />

die Benutzung ähnlicher Zeichen für ähnliche<br />

Erzeugnisse – dann soll leichter die<br />

Herkunftsfunktion beeinträchtigt sein. Im<br />

vorliegenden Fall ging es jedoch um die<br />

identische Bezeichnung.<br />

Unter Umständen lässt sich natürlich in<br />

einem Programmnamen eine betriebliche<br />

Herkunft erkennen, also auf den Her-<br />

© G. Fessy, Europäischer Gerichtshof<br />

Abbildung 5: Der Europäische Gerichtshof definiert die Verletzung einer Marke weitreichend.


© Wikimedia, W.J.Aylward<br />

Abbildung 6: Auch Verfilmungen dürfen mit dem Titel des ursprünglichen<br />

Werks werben, wie das die zahllosen Kino- und Fernseh-Varianten von Jack<br />

Londons Klassiker „Der Seewolf“ tun.<br />

Ton-, Bühnen- oder sonstigen Werks<br />

– und damit auch eines Computerprogramms,<br />

weil dies als Sprachwerk gilt.<br />

Der Werktitel dient in der Regel nur der<br />

namentlichen Unterscheidung gegenüber<br />

anderen Werken und genießt nur in Ausnahmefällen<br />

den Schutz des Urheberrechts<br />

– nämlich dann, wenn der Werktitel<br />

für sich bereits die urheberrechtlichen<br />

Anforderungen an persönliche geistige<br />

Schöpfung erfüllt. Der normale Schutz<br />

des Werktitels umfasst nur die geschäftliche<br />

Bezeichnung, wie er nach dem Markengesetz<br />

definiert ist.<br />

In diesem Zusamenhang stellt sich auch<br />

die Frage, was passiert, wenn sich eine<br />

eingetragene Marke und ein Werktitel<br />

gegenüberstehen: Es wäre ja leicht zu<br />

©Amazon DVD-Titel<br />

behaupten, man habe<br />

eine bestimmte Software<br />

bereits vor Jahren<br />

unter dem Namen<br />

Explorer entwickelt<br />

und lasse sich nun die<br />

Benutzung nicht verbieten,<br />

nur weil ein<br />

Softwareriese den Namen<br />

geschützt habe.<br />

Marke gegen<br />

Werktitel?<br />

Prinzipiell ist auch ein<br />

Werktitel eine Marke<br />

und genießt denselben<br />

Schutz wie andere, eingetragene Marken.<br />

Treffen mehrere Rechte des Markengesetzes<br />

zusammen, so bestimmt dessen<br />

Paragraph 6 die Prioritäten. Der Vorrang<br />

ergibt sich für eingetragene oder angemeldete<br />

Marken aus dem Anmeldetag<br />

oder für Werktitel anhand des Tages, zu<br />

dem das Recht erworben wurde.<br />

Der Markenschutz für Werktitel entsteht<br />

mit deren Benutzung im Verkehr, der<br />

bei freier Software regelmäßig mit der<br />

erstmaligen Veröffentlichung, etwa auf<br />

Sourceforge, zusammenfällt. <strong>Die</strong> Nutzung<br />

eines prioritätsälteren Werktitels kann<br />

auch der Inhaber einer gleichen eingetragenen<br />

Marke nicht verbieten.<br />

<strong>Die</strong> Konsequenz des Urteils des OLG<br />

Düsseldorf für freie Software ist vielfäl-<br />

tig erkennbar: Zum einen sind Forks berechtigt<br />

den ursprünglichen Namen des<br />

Programms so lange zu nutzen, wie die<br />

Funktionalität im Wesentlichen gleichartig<br />

bleibt und die beteiligten Verkehrskreise<br />

solche Forks gewohnt sind – und<br />

wenn das Eintragen der Marke erst später<br />

erfolgte als die ursprüngliche Veröffentlichung<br />

des Programms.<br />

Zum anderen bestehen insbesondere bei<br />

Kombinationsangeboten aus Hard- und<br />

Software keine Bedenken, die mitgelieferten<br />

und zur Betriebsgrundlage gewordenen<br />

Programme auch namentlich<br />

anzuführen, um den Kunden darüber zu<br />

informieren. (mfe) <br />

n<br />

Infos<br />

[1] OLG Düsseldorf, Urteil vom 24. April 2012,<br />

Az. I-20 U 176/​11:<br />

[http:// openjur. de/ u/ 409207. html]<br />

[2] Gemeinschaftsmarkenverordnung:<br />

[http:// oami. europa. eu/ de/ mark/ aspects/​<br />

pdf/ 4094deCV. pdf]<br />

[3] Markengesetz: [http:// www.​<br />

gesetze‐im‐internet. de/ markeng/]<br />

Der Autor<br />

RA Fred Andresen ist Mitglied<br />

der Rechtsanwaltskammer<br />

München und der Arbeitsgemeinschaft<br />

Informationstechnologie<br />

im Deutschen<br />

Anwaltverein (DAVIT).<br />

Recht 02/2013<br />

Forum<br />

www.linux-magazin.de<br />

77<br />

MAGAZIN<br />

ONLINE<br />

<strong>Linux</strong>-<strong>Magazin</strong> newsLetter<br />

Newsletter<br />

informativ<br />

kompakt<br />

Nachrichten rund um die<br />

Themen <strong>Linux</strong> und Open<br />

Source lesen Sie täglich<br />

im Newsletter des <strong>Linux</strong>-<br />

<strong>Magazin</strong>s.<br />

tagesaktuell<br />

www.linux-magazin.de/newsletter


Forum<br />

www.linux-magazin.de Bücher 02/2013<br />

78<br />

Bücher über Node.js sowie über nebenläufige Programmierung<br />

Tux liest<br />

<strong>Die</strong> Bücherseite greift zwei aktuelle Trends auf: Das erste Werk behandelt die Anwendungsentwicklung mit<br />

dem Javascript-Server Node.js. Das zweite möchte Java- und C-Programmierer in die Arbeit mit mehreren Prozessoren<br />

und Nebenläufigkeit einführen. Andreas Möller, Bernhard Bablok<br />

In seinem Buch „Node.js & Co.“ erklärt<br />

Golo Roden mit viel Begeisterung das<br />

Programmieren von Anwendungen für<br />

den Javascript-Server Node.js. Es richtet<br />

sich an Webentwickler mit guten Vorkenntnissen<br />

in der Skriptsprache.<br />

Node.js und seine Module<br />

Info<br />

Golo Roden:<br />

Node.js & Co.<br />

Dpunkt, 2012<br />

330 Seiten<br />

33 Euro<br />

ISBN: 978-3-89864-829-5<br />

Der Band ist in zwei Teile gegliedert. Der<br />

erste erklärt Node.js, der zweite dessen<br />

Module für Webanwendungen. Im ersten<br />

der 13 Kapitel beschreibt der Autor<br />

die Ursprünge von Node.js, bevor er im<br />

zweiten dessen Installation vorführt. Wie<br />

einfach sich ein TCP- oder HTTP-Server<br />

mit Node.js implementieren lässt, zeigt<br />

das dritte Kapitel.<br />

Danach behandelt das Buch das Einbinden<br />

von Modulen mit der Node-eigenen<br />

Paketverwaltung »npm«. <strong>Die</strong> Arbeit mit<br />

dem Node.js-Debugger sowie das Schreiben<br />

von Tests und das Deployment komplettieren<br />

den ersten Teil.<br />

Am Anfang des zweiten Teiles bespricht<br />

der Verfasser die Middleware Connect,<br />

die HTTP-Anfragen noch vor der Webanwendung<br />

bearbeitet. Anschließend zeigt<br />

er die Programmierung von Server- und<br />

Client-seitigen Webanwendungen an einem<br />

Beispiel, das er mit Node.js, HTML<br />

5, CSS 3 und Jquery umsetzt. <strong>Die</strong> Beispielanwendung<br />

erlaubt es den Anwendern,<br />

Dateien auf einer Weboberfläche<br />

zum Download bereitzustellen.<br />

Daneben beschreibt das Buch, wie man<br />

mit Jade und Stylus HTML- und CSS-Code<br />

erzeugt. Kapitel 12 demonstriert, wie einfach<br />

sich mit Socket.io und Nowj s Echtzeitkommunikation<br />

zwischen Browser<br />

und Server implementieren lässt. Gegen<br />

Ende setzt der Verfasser die Datenbanken<br />

Redis, Mongo DB und PostgreSQL mit<br />

Node.js ein.<br />

Außerdem behandelt er Module zum<br />

Validieren von Javascript-Objekten sowie<br />

für die Internationalisierung und<br />

Authentifizierung. Zum Schluss demonstriert<br />

er die automatisierte Optimierung<br />

von Node.js-Code. Mit diesen Themen ist<br />

das Buch eine gelungene Einführung in<br />

Node.js. Es bringt den Leser in wenigen<br />

Schritten zur eigenen Webanwendung.<br />

Nebenläufig<br />

In Zeiten, da schon Einsteiger-Smartphones<br />

mehr als einen CPU-Core besitzen,<br />

wird paralleles Programmieren für<br />

beinahe jeden Entwickler wichtig. In seinem<br />

Buch „Nebenläufige Programmierung“<br />

behandelt Carsten Vogt, Professor<br />

am Institut für Nachrichtentechnik der<br />

Fachhochschule Köln, das Thema strukturiert<br />

und übersichtlich.<br />

Das Werk richtet sich an Bachelor-Studen<br />

ten der Informatik und andere Interessierte<br />

und gliedert sich in vier große<br />

Abschnitte: Basistechniken, Synchronisation,<br />

Kommunikation (Pipes, Sockets) und<br />

Kooperation (Client-Server, Peer2Peer,<br />

RPC, RMI). Jeder Abschnitt präsentiert<br />

eine sinnvolle Mischung aus Erklärungen,<br />

Beispielen, Grafiken und Aufgaben.<br />

Auf den ersten Blick erscheint es fragwürdig,<br />

zwei so grundverschiedene Pro-<br />

grammiersprachen wie C und Java für<br />

das Thema Nebenläufigkeit heranzuziehen.<br />

Aber gerade dies verdeutlicht die<br />

Unterschiede zwischen einem Konzept,<br />

etwa Threads, und dessen konkreter Implementierung.<br />

Der Themenumfang ist gleichzeitig die<br />

größte Schwäche des Buches: Auf 260<br />

Seiten kann niemand die Feinheiten der<br />

parallelen Programmierung vermitteln.<br />

Allein für die letzten beiden Abschnitte<br />

– dort geht es hauptsächlich um (Netzwerk-)Kommunikation<br />

– gibt es Fachbücher<br />

mit deutlich mehr Seiten, die dem<br />

Thema eher gerecht werden.<br />

Wer aber einen kompetenten Einstieg<br />

in den ganzen Themenkreis sucht, ist<br />

mit dem Buch bestens bedient. Programmierer,<br />

die an einem konkreten Projekt<br />

arbeiten, greifen aber besser zu spezielleren<br />

Fachbüchern, die auf die jeweiligen<br />

Programmierschnittstellen und ihre Anwendung<br />

zugeschnitten sind.<br />

Das Buch ist in Ausstattung und Satz sehr<br />

ansprechend gestaltet. Zusätzlich erhält<br />

der Käufer einen Einkaufscode und kann<br />

damit die E-Book-Ausgabe im plattformneutralen<br />

PDF-Format herunterladen.<br />

Einziger Wermutstropfen: Mit der für den<br />

Download notwendigen Registrierung<br />

handelt man sich – gut versteckt in der<br />

Datenschutzerklärung – einen Newsletter<br />

des Verlags ein. (mhu)<br />

n<br />

Info<br />

Carsten Vogt:<br />

Nebenläufige Programmierung<br />

Hanser, 2012<br />

260 Seiten<br />

30 Euro<br />

ISBN: 978-3-446-42755-6


Probelesen<br />

ohne risiko<br />

Und Gewinnen!<br />

eines von zwei tollen Gadgets (das Los entscheidet)<br />

1. Preis: Quadrocopter -<br />

Parrot AR. Drone 2.0<br />

per Smartphone<br />

fernsteuerbar<br />

(Wert 299,- Euro)<br />

2. Preis: Mutewatch —<br />

eine wasserdichte<br />

LED-Uhr mit<br />

Touchscreen<br />

(Wert 199,90 Euro)<br />

SONDERAKTION!<br />

Testen Sie jetzt<br />

3 Ausgaben für<br />

NUR 3€*<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Mit großem Gewinnspiel unter:<br />

www.linux-user.de/probeabo<br />

* Angebot gilt innerhalb Deutschlands und Österreichs. In der Schweiz: SFr 4,50.<br />

Weitere Preise: www.linux-user.de/produkte


Forum<br />

www.linux-magazin.de Leserbriefe 02/2013<br />

80<br />

Auf den Punkt gebracht<br />

Leserbriefe<br />

Haben Sie Anregungen, Statements oder Kommentare? Dann schreiben Sie an [redaktion@linux-­magazin.­de].<br />

<strong>Die</strong> Redaktion behält es sich vor, die Zuschriften und Leserbriefe zu kürzen. Sie veröffentlicht alle Beiträge mit<br />

Namen, sofern der Autor nicht ausdrücklich Anonymität wünscht.<br />

01 LIST=$(awk '<br />

02 BEGIN {<br />

Shell-Bordmittel<br />

12/​12, S. 92: Ich habe eine Anmerkung<br />

zum Artikel Bash Bashing. Der Text<br />

und das Shellskript suggerieren, dass<br />

03 split(ENVIRON["PATH"], p, ":")<br />

04 for (i=1; i


Alle Ausgaben der letzTen 12 Monate<br />

Sie haben ein Admin verpasst? Kein Problem!<br />

Bei uns können Sie alle Ausgaben des ADMIN <strong>Magazin</strong><br />

der letzten 12 Monate ganz einfach und versandkostenfrei<br />

unter www.admin-magazin.de/einzelheft nachbestellen:<br />

ADMIN 01/2012 ADMIN 02/2012 ADMIN 03/2012<br />

ADMIN 04/2012 ADMIN 05/2012 ADMIN 06/2012<br />

Damit Sie keine Ausgabe mehr verpassen,<br />

bestellen Sie am besten gleich ein Abo<br />

vom ADMIN <strong>Magazin</strong> und sparen:<br />

Telefonisch unter: 07131 / 2707 274,<br />

per Fax: 07131 / 2707 78 601 oder<br />

E-Mail: abo@admin-magazin.de,<br />

Web: www.admin-magazin.de/abo


Know-how<br />

www.linux-magazin.de Kern-Technik 02/2013<br />

82<br />

Kernel- und Treiberprogrammierung mit dem <strong>Linux</strong>-Kernel – Folge 66<br />

Kern-Technik<br />

Android führt mit deutlichem Abstand die Hitparade der Smartphone-Betriebssysteme an. <strong>Die</strong> Kern-Technik<br />

beleuchtet, welche Änderungen Google für den Mobileinsatz am <strong>Linux</strong>-Kernel vorgenommen hat und was es<br />

mit Wakelocks, Binder und dem anonymen Shared Memory auf sich hat. Jürgen Quade, Eva-Katharina Kunst<br />

© psdesign1, Fotolia<br />

66<br />

Rund 136 Millionen verkaufte Android-<br />

Geräte zählten die Marktforscher von<br />

IDC im dritten Quartal 2012 [1]. Jeden<br />

Tag kommen 1,3 Millionen Geräte hinzu.<br />

Mit 75 Prozent Marktanteil dominiert<br />

Android die Statistiken und ruft den 1999<br />

von Linus Torvalds nicht ernst gemeinten<br />

Aufruf zur World Domination wieder<br />

in Erinnerung. <strong>Linux</strong>-Geräte sind in der<br />

Statistik interessanterweise mit 1,5 Prozent<br />

gesondert ausgewiesen. Wissen die<br />

Marktstrategen von IDC etwa nicht, dass<br />

ein Android-Smartphone auch ein <strong>Linux</strong>-<br />

Device ist?<br />

Wie die 1,5 extra gezählten Prozent<br />

ist Android allerdings kein reinrassiges<br />

<strong>Linux</strong>. Insbesondere das Userland<br />

stellt mit der C-Bibliothek Bionic und<br />

der virtuellen Maschine Dalvik eine Neuentwicklung<br />

dar. Der Kern jedoch ist in<br />

wesentlichen Teilen ein Standardkernel,<br />

für den mobilen Einsatz<br />

modifiziert. Wie<br />

man den Quellcode<br />

bekommt, beschreibt<br />

der Kasten „Quelltext<br />

des Android-<br />

Kernels“.<br />

Bei Android sind die<br />

Modifikationen jedoch<br />

so bedeutend,<br />

dass Googles Userland<br />

zunächst mit einem<br />

Standardkernel<br />

gar nicht zusammenarbeitete.<br />

<strong>Die</strong> <strong>Linux</strong>-<br />

Entwickler weigerten<br />

sich anfangs auch,<br />

Patches zu übernehmen.<br />

Ihr Argument:<br />

<strong>Die</strong> neuen Programmier-Interfaces<br />

würden<br />

auf den unbeliebten<br />

I/​O-Controls basieren, außerdem<br />

biete der Standardkernel die gewünschten<br />

Funktionalitäten bereits, wenn auch<br />

in etwas anderer Form.<br />

Bei diesen Funktionalitäten handelt es<br />

sich vor allem um effiziente Synchronisations-,<br />

Kommunikations- und Logging-<br />

Mechanismen. Hinzu kommen noch Eigenschaften<br />

des Memory-Managements,<br />

der Sicherheit, des Powermanagements<br />

sowie der Ein- und Ausgabe (siehe Abbildung<br />

1).<br />

<strong>Die</strong> Energieverwaltung hat die wesentlichsten<br />

Änderungen erfahren. Nur mit<br />

einem aggressiven Powermanagement<br />

sind die hohen Anforderungen eines Mobiltelefons<br />

an niedrigen Stromverbrauch<br />

zu erfüllen. Während sich ein Standard-<br />

<strong>Linux</strong> erst nach Aufforderung schlafen<br />

legt, versucht Android dies bei jeder sich<br />

bietenden Gelegenheit zu tun. Damit das<br />

nicht zu Unzeiten passiert, können Treiber<br />

und Applikationen im Android-Kernel<br />

mit einem „Bleib-Wach-Lock“ (Wakelock)<br />

das Schlafenlegen verhindern.<br />

Aufgewacht!<br />

Um das einmal schlafende System automatisiert<br />

wecken zu können, haben<br />

die Android-Entwickler Alarm-Timer<br />

implementiert. Anders als die bekannten<br />

Hrtimer [2] ermöglichen diese nicht<br />

nur das Wecken eines Jobs, sondern das<br />

Aufwecken des kompletten Systems aus<br />

einem Suspend-Zustand. Dafür ist die<br />

in jedem System vorhandene Real Time<br />

Clock zuständig, die im Standard-<strong>Linux</strong><br />

der RTC-Treiber bedient.<br />

Androids Alarm-Timer sind in Abgrenzung<br />

zu diesem Treiber deutlich flexibler<br />

und genauer und kombinieren die<br />

Funktionalität von Hrtimer und RTC. Im<br />

Normalbetrieb sind Alarm-Timer durch<br />

Hrtimer realisiert. Geht das System aber<br />

in den Suspend, programmiert Android<br />

die nächste Aufweckzeit in die RTC. In<br />

der Kritik der Kernelentwickler steht –<br />

wie so oft – das Userland-Interface, das<br />

auf die Gerätedatei »/dev/alarm« und auf<br />

»ioctls()« setzt.<br />

Remote Object Invocation<br />

Im Bereich Synchronisation und Kommunikation<br />

hat Android Binder eingeführt.<br />

Binder stellt eine Möglichkeit der<br />

Interprozess-Kommunikation dar, bei der<br />

eine Applikation Zugriff auf ein Objekt<br />

hat, auch wenn dieses zu einem anderen<br />

Prozess gehört. Bei dieser so genannten<br />

Remote Object Invocation ist ein Objekt<br />

mit Hilfe der Android Interface Description<br />

Language (AIDL) beschrieben. Aus


Effiziente IPC<br />

Remote Object Invocation<br />

Schlafzustand verhindern<br />

Zeitgesteuertes Aufwachen<br />

aus dem Schlafzustand<br />

Auf hohe Interaktivität getrimmt<br />

Wakelock<br />

Alarm-Timer<br />

Power-<br />

Management<br />

Scheduling<br />

Memory-<br />

Management<br />

Userland<br />

Binder<br />

ASHMEM<br />

Sychronisation/<br />

Kommunikation<br />

Prozess-<br />

Management<br />

Networking<br />

Logger<br />

»ram_console«<br />

»persistent_ram«<br />

Logging<br />

Ein-/Ausgabe<br />

Effizient verwaltetes<br />

Shared-Memory<br />

Protokollspeicher im Kernel<br />

Debugmeldungen stehen auch<br />

nach einem Reboot<br />

(Kernel-Panic) zur Verfügung<br />

Debugmeldungen lassen sich<br />

im nicht flüchtigen RAM speichern<br />

Kern-Technik 02/2013<br />

Know-how<br />

www.linux-magazin.de<br />

83<br />

Memory-Management<br />

von I/O-Speicher<br />

ION (ehemals PMEM)<br />

Low Memory Killer<br />

Paranoid Networking<br />

Kernel<br />

Timed GPIO<br />

Automatisiertes Rücksetzen<br />

von Bits der HW-Ausgabe<br />

Freigabe von Speicher-Ressourcen<br />

auf Basis der Prozessart<br />

(Vordergrund-/Hintergrundprozesse)<br />

Hardware<br />

Zugriffe werden abhängig<br />

von der Group-ID erlaubt<br />

Abbildung 1: Übersicht der Modifikationen: Fast in jedem Subsystem haben die Android-Entwickler den <strong>Linux</strong>-Kernel für ihre Zwecke angepasst.<br />

der Beschreibung wird automatisiert<br />

Code erzeugt, der für die Client-Seite –<br />

also eine normale App – ein Proxy-Objekt<br />

realisiert. <strong>Die</strong>ses Proxy-Objekt kann sich<br />

über einen Prozess, der Content Manager<br />

genannt wird, die Adresse des realen Objektes<br />

(Server-Seite) holen und auf dieses<br />

mit Hilfe eines sehr effizienten Protokolls<br />

zugreifen.<br />

Sollen die beiden Prozesse Daten austauschen,<br />

also so genannte Transactions<br />

durchführen, transferiert ein in den<br />

Kernel integrierter Gerätetreiber die Informationen.<br />

Der Binder-Treiber, dessen<br />

Quellcode sich im Staging-Bereich des<br />

Standardkernels befindet, kopiert die<br />

Daten aus dem Speicher des einen Prozesses<br />

mit dem bekannten Kernelbefehl<br />

»copy_from_user()« und transferiert sie<br />

in den Speicher des anderen Prozesses<br />

mit »copy_to_user()«.<br />

Binder stellt rein synchrone Kommunikation<br />

zur Verfügung, wobei der Server<br />

aus Effizienzgründen einen Threadpool<br />

instanziert, der ankommende Anfragen<br />

ohne Zeitverlust bearbeitet. Der Client<br />

ruft die Methode eines Objekts auf und<br />

arbeitet erst dann weiter, wenn die Methode<br />

abgearbeitet ist und das Ergebnis<br />

vorliegt. Binder ist die zentrale Komponente<br />

der Interprozess-Kommunikation<br />

des Android-Systems, mit der Apps und<br />

Systemprozesse interagieren. Klassische<br />

Interprozess-Kommunikation, insbesondere<br />

System-V-IPC, haben die Android-<br />

Entwickler aus dem Kernel verbannt.<br />

Speicher anonym<br />

Eine weitere effiziente Möglichkeit der Interprozess-Kommunikation<br />

stellt Android<br />

mit Anonymous Shared Memory (ASH-<br />

MEM) zur Verfügung. Anders als beim<br />

normalen Shared Memory ist der Kernel<br />

berechtigt, einen ASHMEM-Block selbstständig<br />

freizugeben. Hierzu kann ein<br />

Prozess Speicherseiten als nicht benötigt<br />

markieren, die der Kernel – sollte er unter<br />

Quelltext des Android-Kernels<br />

Abbildung 2: Der Quellcode für den Android-Kernel kommt per Git auf die<br />

Platte. Der Master-Zweig ist allerdings leer.<br />

Der Quellcode zu Android ist auf<br />

der Website [http:// source. android.​<br />

co m] zusammen mit Informationen<br />

zur Installation zu finden. Das<br />

Userland installiert ein Google-Tool<br />

namens Repo. Der Quellcode zum<br />

Kernel lässt sich per Git herunterladen.<br />

Abbildung 2 zeigt die hierzu<br />

notwendigen Kommandos. Das<br />

Repository »master« ist allerdings<br />

leer, die Entwickler haben es nur<br />

aus technischen Gründen angelegt.<br />

Beim Auschecken ist daher die gewünschte<br />

Kernelversion explizit<br />

anzugeben.<br />

Für die unterschiedlichen Hersteller<br />

und deren Geräte existieren bei<br />

Android jeweils eigene Kernelquellen,<br />

die per Git aus den Verzeichnissen<br />

https://android.googlesource.<br />

com/device/Hersteller/Gerät<br />

zu beziehen sind. Für Testzwecke<br />

empfiehlt sich der Goldfish-Kernel.<br />

Goldfish ist die Bezeichnung für<br />

eine virtuelle CPU, die Google für<br />

den Android-Emulator ausgewählt<br />

hat und die ARM926T-Befehle verarbeitet.<br />

<strong>Die</strong>ser Quellcode enthält<br />

zusätzliche Treiber für die Ein- und<br />

Ausgabe im Emulator, die für ein reales<br />

Gerät nicht erforderlich sind.<br />

Weitere Informationen finden sich<br />

unter [http:// source. android. com/​<br />

source/ building‐kernels. html].


Know-how<br />

www.linux-magazin.de Kern-Technik 02/2013<br />

84<br />

Priorisierung<br />

Foreground<br />

Visible<br />

Service<br />

Background<br />

Empty<br />

Interagiert direkt<br />

mit dem User<br />

Partiell sichtbar, aber<br />

interagiert mit dem User<br />

Aktiv, aber ohne direkte<br />

User-Interaktion<br />

Gestartet, zurzeit<br />

ohne sichtbare Elemente<br />

Beendet, für schnellen<br />

Restart noch im Speicher<br />

Abbildung 3: Android ordnet die Prozesse in fünf<br />

Kategorien ein.<br />

Speicherdruck stehen – freigibt, bevor er<br />

den Low Memory Killer aktivieren muss.<br />

Ein solcher Einsatz ist beispielsweise im<br />

Fall von Caches sinnvoll.<br />

Implementierungstechnisch handelt es<br />

sich bei ASHMEM um einen gemeinsamen<br />

Speicherbereich, den »mmap()«<br />

in den jeweiligen Prozess-Adressraum<br />

einblendet. Um einen solchen Speicher<br />

erstmals zu reservieren, greift ein Prozess<br />

auf die Gerätedatei »/dev/ashmem« zu.<br />

Damit andere Prozesse auf den gleichen<br />

Speicher zugreifen können, bekommen<br />

sie den Dateideskriptor übergeben. Das<br />

muss über das erwähnte Binder-Subsystem<br />

erfolgen, da Filedeskriptoren prozessspezifisch<br />

sind. Binder ist in der<br />

Lage, den Filedeskriptor für die anderen<br />

Prozesse zu übersetzen.<br />

Speicher reservieren<br />

liche Low Memory Killer schließlich soll<br />

verhindern, dass das System instabil<br />

wird, weil der Speicher ausgeht, denn<br />

Android verwendet kein Swap.<br />

Der Low Memory Killer überwacht daher<br />

ständig die Speicherauslastung und fordert,<br />

sobald eine erste Schranke erreicht<br />

ist, insbesondere Hintergrundprozesse<br />

dazu auf, aktuelle Daten und wichtige<br />

Zustandsinformationen zu sichern. Erst<br />

wenn sich die Speichersituation weiter<br />

verschärft, werden unkritische Hintergrundprozesse<br />

beendet – wenn nichts anderes<br />

hilft, auch Vordergrundprozesse.<br />

Abschussliste<br />

<strong>Die</strong> Entscheidung, welche Jobs zuerst<br />

dran glauben müssen, orientiert sich an<br />

dem im Standardkernel ohnehin vorhandenen<br />

Wert »oom_score_adj«. <strong>Die</strong>ser<br />

existiert für jeden Job und liegt beim<br />

aktuellen Kernel im Bereich von ‐1000<br />

bis 1000. Ein Job mit einem »oom_score«<br />

von 1000 wird als Erster in die ewigen<br />

Jagdgründe geschickt, ein Job mit einem<br />

Score von ‐1000 überhaupt nicht.<br />

Für die Zuordnung der Score-Werte zu<br />

den Jobs unterscheidet Android zwischen<br />

fünf Prozessarten: Vordergrund-, sichtbare,<br />

Service-, Hintergrund- und leere<br />

Prozesse (foreground, visible, service,<br />

background, empty). Empty-Prozesse<br />

sind übrigens Jobs, die sich beendet haben.<br />

Android hält diese aber noch im<br />

Speicher, sodass sie – sollten sie noch<br />

einmal gestartet werden – sehr rasch aktiviert<br />

sind (Abbildung 3).<br />

Implementiert ist der Low Memory Killer<br />

als Treiber, der sich über die Funktion<br />

»register_shrinker()« in das Memory-Management<br />

einklinkt. Über das »/sys/«-<br />

Dateisystem lässt er sich – wie in seinem<br />

Quellcode angegeben – konfigurieren:<br />

Steht »0,8« in der Datei<br />

/sys/module/lowmemorykiller/parameters/adj<br />

und »1024,4096« in der Datei<br />

/sys/module/lowmemorykiller/parameters/U<br />

minfree<br />

bedeutet dies, dass Android alle Jobs<br />

mit einem »oom_score« von 8 und mehr<br />

terminiert, wenn weniger als 4096 Speicherseiten<br />

zur Verfügung stehen. Sind<br />

weniger als 1024 Pages frei, beendet das<br />

Betriebssystem alle Jobs mit einem Score<br />

von 0 und mehr. Für das Scheduling<br />

setzt Android im Wesentlichen die im<br />

Standardkernel bereits implementierten<br />

Mechanismen ein.<br />

Das <strong>Linux</strong>-Scheduling basiert zunächst<br />

auf Prioritätsebenen. Dabei unterscheidet<br />

es zwei Bereiche, den der dynamischen<br />

und den der statischen Prioritätsebenen.<br />

Im Bereich der dynamischen Prioritäten<br />

erlaubt es sich der Scheduler, je nach Situation<br />

die Prioritäten anzupassen. Hierbei<br />

greift er auf den <strong>Linux</strong>-spezifischen<br />

Completely-Fair-Scheduling-Algorithmus<br />

(CFS) zurück. Statische Prioritäten dagegen<br />

rührt er nicht an.<br />

Prioritäten und Container<br />

Android-Prozesse sind typischerweise<br />

einer der 40 Prioritätsebenen aus dem<br />

dynamischen Bereich zugeordnet und<br />

werden damit per CFS verwaltet. Vereinfacht<br />

ausgedrückt teilt der Scheduler<br />

eine bestimmte Zeitscheibe (zum Beispiel<br />

10 Millisekunden) gleichmäßig auf die<br />

rechenbereiten Prozesse auf. Gibt es zwei<br />

lauffähige Jobs, bekommt jeder eine Zeitscheibe<br />

von 5 Millisekunden. Gibt es fünf<br />

Jobs, erhält jeder eine Zeitscheibe von 2<br />

Millisekunden.<br />

Außerdem stellt der Mechanismus der<br />

Container Groups (Cgroups) sicher,<br />

dass ein Android-Gerät immer interaktiv<br />

bleibt. Dazu hat Android zwei Gruppen<br />

gebildet, nämlich »bg_non_interactive«<br />

und »default«. Den nicht interaktiven<br />

Jobs stehen lediglich 5 Prozent der CPU-<br />

Leistung zur Verfügung, die interaktiven<br />

Userspace<br />

»main«<br />

»radio«<br />

rw-rw--w-<br />

rw-rw--w-<br />

»system«<br />

rw-rw--w-<br />

rw-rw--w-<br />

»logcat«<br />

»loglib«<br />

»event«<br />

Kernelspace<br />

Eine weitere Möglichkeit, Speicher zu reservieren,<br />

besonders für den Zugriff auf<br />

die Grafikkarte, stellt der mit Android 4.0<br />

eingeführte Memory Manager ION bereit.<br />

Er ersetzt den aus früheren Versionen<br />

bekannten Memory Manager PMEM und<br />

bietet ein einheitliches API für verschiedene<br />

Basisverfahren wie »vmalloc()«,<br />

»kmalloc()« oder auch so genannten<br />

Carveout-Speicher, also RAM, der bereits<br />

beim Booten reserviert ist. Dabei können<br />

Speicherbereiche so organisiert werden,<br />

dass sich im Fall der Nichtnutzung zur<br />

Energieeinsparung einzelne RAM-Riegel<br />

abschalten lassen.<br />

ION lässt sich sowohl vom Kernel als<br />

auch vom Userland aus verwenden. Für<br />

Letzteres stellt er einen Satz von I/​O-<br />

Controls bereit. Der Quellcode zu ION<br />

befindet sich im Android-Kernel unter<br />

»kernel/drivers/gpu/ion/«. Der erwähnte<br />

und ebenfalls im Staging-Bereich befind-<br />

»/dev/log/«<br />

Abbildung 4: Anders als ein Standard-<strong>Linux</strong> protokolliert<br />

Android Systemereignisse im Kernelspace.


Abbildung 5: Linus Torvalds hat nachgegeben und<br />

übernimmt Android-Features in seinen Kernel.<br />

Tasks (mit den Typen »foreground« und<br />

»visible») bekommen die restlichen 95<br />

Prozent zugeteilt.<br />

Timed GPIO<br />

Android hat das I/​O-Subsystem des <strong>Linux</strong>-Kernels<br />

mit Timed GPIO um eine<br />

zeitgesteuerte Ein-/​Ausgabe erweitert.<br />

General Purpose Input Output (GPIO) bezeichnet<br />

Ein- und Ausgabeleitungen. Als<br />

Input konfiguriert können sie programmgesteuert<br />

den Zustand des anliegenden<br />

Signals einlesen. Hier sind Taster, Schalter<br />

und einfache Sensoren angeschlossen.<br />

Als Output schalten sie den Zustand der<br />

zugehörigen Leitung programmgesteuert<br />

an oder aus. An diesen Leitungen lassen<br />

sich LEDs und insbesondere auch der<br />

Vibrationsmotor eines Android-Smartphones<br />

betreiben.<br />

Einen GPIO-Treiber gibt es auch im Standard-<strong>Linux</strong>,<br />

doch die Android-Variante<br />

erweitert diesen um die Zeitsteuerfunktion.<br />

Der Timed-GPIO-Treiber ermöglicht<br />

es, den Zustand der Ausgabeleitung für<br />

eine definierte Zeit, die in Millisekunden<br />

angegeben ist, zu setzen. Nach Ablauf<br />

der Zeit wird der Ursprungszustand wieder<br />

eingenommen.<br />

<strong>Die</strong> Zeitsteuerfunktion ließe sich relativ<br />

einfach auch im Userland unterbringen,<br />

also in den Applikationen. Android<br />

möchte aber mit der Kernel-Implementierung<br />

das Userland entlasten und denkt<br />

vor allem an den Fehlerfall beziehungsweise<br />

an den Programmabsturz, bei dem<br />

die Ausgabeleitung möglicherweise zu<br />

lange in einem unerwünschten Zustand<br />

verweilt und den Smartphone-Benutzer<br />

beispielsweise mit nicht enden wollendem<br />

Vibrieren belästigt.<br />

Neben diesen Erweiterungen hat Android<br />

auch das Protokollieren von Systeminformationen<br />

optimiert. Unter <strong>Linux</strong> reichen<br />

Applikationen typischerweise die zu protokollierenden<br />

Informationen per Socket<br />

an den Syslog-Daemon weiter, der sie in<br />

einer Datei unter »/var/log/« abspeichert.<br />

Meldungen des Standardkernels selbst<br />

legt <strong>Linux</strong> in einem Kernelspeicher ab,<br />

aus dem sie der »klogd« ebenfalls dem<br />

Syslog übergibt. Den Android-Entwicklern<br />

sind die Socket-Kommunikation und<br />

der Dateizugriff aber zu aufwändig, sie<br />

haben das Logging daher komplett in den<br />

Kernel verlagert.<br />

Dazu implementierten sie den Treiber<br />

»logger«, der vier Ringpuffer im Kernel<br />

reserviert. Android stellt sie den Anwendungen<br />

über die Gerätedateien »/dev/<br />

log/event« (256 KByte), »/dev/log/main«<br />

(64 KByte), »/dev/log/radio« (64 KByte)<br />

und »/dev/log/system« (64 KByte) zur<br />

Verfügung (Abbildung 4). <strong>Die</strong> Zugriffsrechte<br />

der Gerätedateien erlauben jeder<br />

Applikation den schreibenden (also loggenden)<br />

Zugriff. Lesen ist allerdings nur<br />

ausgewählten Applikationen erlaubt,<br />

beispielsweise »logcat«, dem Pendant<br />

zum Syslog-Daemon. Zur Abstraktion<br />

des Zugriffs greift das Programm auf die<br />

Bibliothek Liblog zurück, die allen Applikationen<br />

zur Verfügung steht.<br />

Wachhunde debuggen<br />

Der Android-Treiber »ram_console« erleichtert<br />

Entwicklern das Debugging. Im<br />

Fall eines Kernel-Crash landen die Kernelnachrichten<br />

in einem RAM-Speicher,<br />

sodass sie nach dem Reboot über die<br />

Gerätedatei »/proc/last_kmsg« auslesbar<br />

sind. Ist das Gerät zwischen Absturz und<br />

Reboot aber ohne Strom, sind die Nachrichten<br />

verloren. »ram_console« kommt<br />

zum Einsatz, um Kernel-Panics und<br />

Watchdog-Resets zu debuggen.<br />

Eine aktuelle Neuerung bringt der Treiber<br />

»persistent_ram«. Wie der Name andeutet,<br />

macht er es möglich, Daten in nicht<br />

flüchtigem Speicher abzulegen. Dadurch<br />

stehen sie auch dann zur Verfügung,<br />

wenn das Android-Gerät zwischendurch<br />

stromlos war. Natürlich funktioniert der<br />

Treiber nur, wenn auch die geeignete<br />

Hardware vorhanden ist.<br />

In Abgrenzung zu einem Standardkernel<br />

bietet Android noch ein Paranoid Network<br />

genanntes Feature. Es schränkt den<br />

Zugriff auf einige Netzwerkfunktionen<br />

abhängig von der Gruppenzugehörigkeit<br />

der nutzenden Task ein. <strong>Die</strong> entsprechenden<br />

Gruppen-IDs sind in der Kernel-Headerdatei<br />

»android_aid.h« zu finden und<br />

gehen von 3001 bis 3007.<br />

Linus zeigt Einsicht<br />

Paranoid Network ist bislang nicht im<br />

Staging-Bereich des Standardkernels aufgetaucht.<br />

Dabei übernimmt Linus Torvalds<br />

(Abbildung 5) inzwischen wesentliche<br />

Patches, ein aktuelles Android-Userland<br />

läuft seit Kernel 3.3 auch auf dem<br />

Standardkernel. „Ihr hattet recht, und wir<br />

nehmen unsere Kritik zurück. Wenn eure<br />

Kernelversion auf Millionen von Geräten<br />

weltweit läuft, dann habt ihr ja was richtig<br />

gemacht“, sagte der <strong>Linux</strong>-Erfinder<br />

am 7. November auf der <strong>Linux</strong>con Europe<br />

2012 in Barcelona und meinte damit<br />

die Android-Entwickler [1].<br />

In einem oder spätestens in zwei Jahren<br />

werden sich die auf den Smartphones<br />

genutzten Kernel vermutlich nur noch<br />

in kleinen Details vom Standardkernel<br />

unterscheiden. (mhu) <br />

n<br />

Infos<br />

[1] IDC-Pressemeldung, „Android Marks<br />

Fourth Anniversary Since Launch with<br />

75.0% Market Share in Third Quarter“:<br />

[https:// www. idc. com/ getdoc. jsp?​<br />

containerId=prUS23771812]<br />

[2] Quade, Kunst: „<strong>Linux</strong>-Treiber entwickeln“,<br />

Dpunkt 2011, S. 174 ff.<br />

[3] Jörg Thoma, „Linus Torvalds: Wir haben<br />

uns Android zu Unrecht verweigert“, Golem,<br />

7.11.2012: [http:// www. golem. de/ news/<br />

linus‐torvalds‐wir‐haben‐uns‐android‐zu<br />

‐unrecht‐verweigert‐1211‐95576. html]<br />

<strong>Die</strong> Autoren<br />

Eva-Katharina Kunst, Journalistin, und Jürgen<br />

Quade, Professor an der Hochschule Niederrhein,<br />

sind seit den Anfängen von <strong>Linux</strong> Fans von Open<br />

Source. In der Zwischenzeit ist die dritte Auflage<br />

ihres Buches „<strong>Linux</strong> Treiber entwickeln“<br />

erschienen.<br />

Kern-Technik 02/2013<br />

Know-how<br />

www.linux-magazin.de<br />

85


Programmieren<br />

www.linux-magazin.de Bash Bashing 02/2013<br />

88<br />

Shellskripte aus der Stümper-Liga – Folge 24: (Ver-)Rechnen mit der Bash<br />

Bash Bashing<br />

<strong>Die</strong> Macher der Bash spendierten der Shell Rechenkenntnisse auf Vierte-Klasse-Niveau. Wer mehr als die<br />

Grund rechenarten benötigt, weicht auf »bc« aus. Dass die Ergebnisse rechnender Bash-Skripte trotz der simplen<br />

Möglichkeiten jedes Mal stimmen, ist gleichwohl nicht gesagt. Bernhard Bablok<br />

© Fotograf, 123RF.com<br />

01 #!/bin/bash<br />

02 <br />

03 a=1<br />

04 b=9<br />

05 c1=$(expr $a + $b)<br />

06 c2=$[a+b]<br />

07 c3=$((a+b))<br />

08 let c4=$a+$b<br />

09 let c5=a+b<br />

10 <br />

Als Mathe-Schülerin ist die Bash nur<br />

Mittelmaß. Zum Glück steht das Fach<br />

selten auf dem Stundenplan: Im Alltag<br />

brauchen Programmierer meist nur Zählvariablen,<br />

sie wandeln Returncodes um<br />

oder berechnen hin und wieder Blockgrößen.<br />

Für diese Aufgaben ist die Bash<br />

mächtig genug. Das Listing 1 zeigt fünf<br />

Listing 1: Syntax varianten für die<br />

Addition<br />

11 echo ‐e "c1=$c1\nc2=$c2\nc3=$c3\nc4=$c4\nc5=$c5"<br />

Möglichkeiten, zwei<br />

Zahlen zu addieren.<br />

Alle Varianten führen<br />

normalerweise<br />

zum gleichen Ergebnis.<br />

Soweit die gute<br />

Nachricht.<br />

Aber die Bash wäre<br />

nicht die Bash, wenn<br />

nicht irgendwelche<br />

mehr oder minder<br />

seltenen Ausnahmefälle<br />

zu Syntaxfehlern<br />

führen würden. Wer<br />

mag, kann vor dem<br />

Weiterlesen Listing 1<br />

selbst auf Fallstricke<br />

untersuchen.<br />

<strong>Die</strong> Zeile 6 spielt eine<br />

Sonderrolle. <strong>Die</strong>se<br />

Syntaxvariante funktioniert<br />

zwar noch, ist aber nicht mehr<br />

dokumentiert. Jeder Bash-Programmierer<br />

sollte sie aus seinem Repertoire streichen.<br />

<strong>Die</strong> Zeile 5 verwendet ein externes Programm.<br />

Wer auf portable Skripte Wert<br />

legt, sollte diese Variante wählen – selbst<br />

Systeme mit extrem funktionsbeschnittenen<br />

Shells verfügen typischerweise über<br />

das »expr«-Kommando.<br />

Auch Zeile 7 gewinnt etwas an Portabilität,<br />

wenn der innere Ausdruck durch<br />

Leerzeichen von den Klammern abgetrennt<br />

ist. Neben der Portabilität spielt<br />

die Robustheit eines Skripts eine tragende<br />

Rolle – einige der gezeigten Varianten<br />

erweisen sich als wenig robust.<br />

Fehlende Initialisierung<br />

<strong>Die</strong> beiden Alternativen in den Zeilen 8<br />

und 9 verhalten sich unterschiedlich, je<br />

nachdem, ob die Variablen initialisiert<br />

sind oder nicht. <strong>Die</strong> Bash weist nicht<br />

initialisierten Variablen den Wert »0« zu.<br />

Wenn »b« nicht gesetzt ist, dann führt die<br />

Zeile 8 zu einem Syntaxfehler, während<br />

Zeile 9 funktioniert. Auch der Variante<br />

mit »expr« bereiten nicht initialisierte Variablen<br />

Probleme.<br />

Im Normalfall ist also die Variante in<br />

Zeile 9 ohne Variablenauflösung sinnvoller,<br />

der Shellcode ist auch besser lesbar.<br />

Skripte wie »lavtc.sh« aus den Mjpeg<br />

Tools [1] würden dann auch von der dadurch<br />

erhöhten Lesbarkeit profitieren<br />

(Listing 2).<br />

<strong>Die</strong> Variante in Zeile 7 von Listing 1 –<br />

„Arithmetic Expansion“ genannt – verhält<br />

sich, was uninitialisierte Variablen angeht,<br />

wie die in Zeile 9. Welche Ausführung als<br />

lesbarer erscheint, ist Geschmackssache.<br />

<strong>Die</strong> Arithmetic Expansion lässt sich aber<br />

universeller einsetzen. Doch leider gibt es<br />

Situationen, in denen auch diese robusten<br />

Varianten scheitern.<br />

Eine explizit stabile Basis<br />

sorgt für Robustheit<br />

<strong>Die</strong> Seite [2] gibt einen Überblick über<br />

das Rechnen mit der Bash. Am Ende steht<br />

ein Beispiel, das zu einem gegebenen<br />

Monat den Vormonat (dezimal in zwei<br />

Stellen) berechnet:<br />

newmonth=$(( (month + 10) % 12 + 101 ))<br />

newmonth=${newmonth:1:2}<br />

Dummerweise funktioniert die erste Zeile<br />

nicht, falls »month« selbst zweistellig ist<br />

und es sich um den August oder September<br />

handelt. Denn die Bash interpretiert<br />

Zahlen mit führenden Nullen als Zahlen<br />

in Oktaldarstellung, und »08« und »09«<br />

sind dabei ungültig. Von den Varianten in<br />

Listing 1 hat nur der Ausdruck mit »expr«


Abbildung 1: <strong>Die</strong> Manpage von »bc« referenziert diverse mathematische<br />

Funktionen und erläutert deren Anwendung.<br />

mit führenden Nullen keine Probleme.<br />

<strong>Die</strong> explizite Angabe der Basis 10 löst das<br />

Problem, sobald man in Zeile 1 »month«<br />

einfach durch<br />

10#$month<br />

ersetzt. Selbst wenn »month« leer ist,<br />

gibt es keinen Syntaxfehler, denn »10#«<br />

interpretiert die Bash als Null. <strong>Die</strong> Bash<br />

unterstützt Basen von 2 bis 64, damit<br />

sind zum Beispiel Umwandlungen von<br />

und nach Hexadezimal recht einfach.<br />

Viele Rechenoperatoren,<br />

aber nur Integerzahlen<br />

Neben den Grundrechenarten beherrscht<br />

die Bash die ganze Palette an Operatoren,<br />

die man auch von höheren Programmiersprachen<br />

kennt, zum Beispiel Pre- und<br />

Post-Increment, diverse Bit- oder Vergleichsoperatoren.<br />

<strong>Die</strong> Sprache C ist hier<br />

das Vorbild. Größte Einschränkung: <strong>Die</strong><br />

Bash rechnet immer nur mit Integerzahlen,<br />

5 durch 3 ist also 1.<br />

Ein explizites Limit gibt das Bash-Manual<br />

nicht an. Einfach hochzuzählen ist eine<br />

schlechte Idee, da nach 2 63 -1 der Wert ‐2 63<br />

folgt. Im Gegensatz zum Überlauf führt<br />

die Division durch null zu einem Fehler.<br />

Integer-Arithmetik langt nicht für alle Aufgaben.<br />

Wer Gleitkommazahlen braucht,<br />

weicht auf »bc« (Basic Calculator, [3])<br />

aus. Das Posix-Urgestein nimmt mathematische<br />

Ausdrücke<br />

über Stdin entgegen.<br />

Ein einfaches<br />

bc


Programmieren<br />

www.linux-magazin.de C++11 02/2013<br />

Modernes C++ in der Praxis – Folge 8<br />

Räumkommando<br />

90<br />

<strong>Die</strong> neuen Smart Pointer in C++11 machen den Zugriff auf Ressourcen transparent und räumen hinter sich auf.<br />

<strong>Die</strong>ser Artikel stellt als ersten Vertreter den Unique Pointer vor. Rainer Grimm<br />

C++11<br />

asynchrone Aktionen<br />

override<br />

decltype <strong>Die</strong> Idee ist einfach und doch mächtig<br />

zugleich: Sie kapselt die Lebenszeit einer<br />

Move-Semantik<br />

Neue Container<br />

auto<br />

zu überwachenden Ressource in einem<br />

Variadic Templates<br />

lokalen Objekt. Im Konstruktor des Ob-<br />

bind jekts wird die Ressource erzeugt und im<br />

Type Traits<br />

Destruktor gelöscht.<br />

C++11<br />

Alias Templates<br />

Tuple Da die C++-Laufzeit die Lebenszeit des<br />

Objekts, das Objekt wiederum die Le-<br />

default<br />

function<br />

benszeit der kritischen Ressource verwal-<br />

Range-basierte<br />

C++11<br />

tet, wird die Ressource automatisch ge-<br />

nullptr<br />

For-Schleife<br />

löscht. So überwachen die Smart Pointer<br />

Zufallszahlen<br />

Zeitbibliothek die Lebenszeit ihres dynamisch allokier-<br />

delete<br />

final<br />

ten Speicherbereichs und die Locks<br />

Benutzerdefinierte Literale<br />

Smart Pointer »std::lock_guard« und »std::unique_lock«<br />

Hashtabellen<br />

static_assert<br />

reguläre Ausdrücke<br />

[2] die Lebenszeit ihres Mutex, um<br />

Threads Deadlocks zu vermeiden.<br />

Lambda-Funktionen<br />

Array<br />

Listing 1 soll das deterministische Konstruktor-<br />

und Destruktor-Verhalten der<br />

Klasse »ResourceGuard« verdeutlichen.<br />

„Zahle nicht für das, was du nicht nutzt“,<br />

betont der C++-Erfinder Bjarne Stroustrup<br />

gerne [1]. Daher ist es nur konsequent,<br />

dass auch C++11 statt einer impliziten<br />

nicht mehr benötigt. Während dieser Artikel<br />

»std::unique_ptr« vorstellt, wird sich<br />

der nächste in der Reihe mit »std::shared_<br />

ptr« beschäftigen.<br />

Der Konstruktor in Zeile 7 erzeugt das<br />

dynamische Array, der Destruktor (Zeile<br />

11) gibt es wieder frei. Da das Beispiel<br />

Instanzen der Klasse »ResourceGuard«<br />

Garbage Collection eine explizite Speicherverwaltung<br />

als lokale Objekte verwendet, rufen sie<br />

mit den neuen Smart<br />

RAII-Idiom<br />

den Destruktor auf, sobald sie ihren Gültigkeitsbereich<br />

verlassen. <strong>Die</strong>s geschieht<br />

Pointern »unique_ptr« und »shared_ptr«<br />

anbietet. Dabei implementiert der Unique<br />

Pointer den exklusiven Zugriff auf seinen<br />

Speicherbereich, der Shared Pointer einen<br />

Referenzzähler auf diesen. Ihnen ist<br />

gemeinsam, dass sie ihre Ressource automatisch<br />

löschen, wenn das Programm sie<br />

<strong>Die</strong> intelligenten Zeiger in C++11 verwalten<br />

automatisch den Speicherbereich<br />

der ihnen anvertrauten Ressource gemäß<br />

RAII-Idiom, die Abkürzung steht für Resource<br />

Acquisition Is Initalization. <strong>Die</strong>ses<br />

Idiom kommt in C++ gerne zum Einsatz.<br />

beim Objekt »resGuard(10000)« (Zeile 21)<br />

nach Verlassen der Main-Funktion, beim<br />

Objekt »resGuard2(200000)« am Ende<br />

des Bereichs in Zeile 25. In Abbildung<br />

1 lässt sich das dynamische Verhalten<br />

schön nachvollziehen.<br />

Listing 1: Speichermanagement mit RAII-Idiom<br />

01 #include <br />

02 using std::endl;<br />

03 using std::cout;<br />

04 <br />

05 class ResourceGuard{<br />

06 public:<br />

07 ResourceGuard(int i){<br />

08 myIntArray= new int[i];<br />

09 cout


Probelesen<br />

ohne risiko<br />

Abbildung 1: Das RAII-Idiom angewandt: Beim Verlassen<br />

des Gültigkeitsbereichs gibt der Resource<br />

Guard die Ressourcen frei.<br />

Insgesamt bietet C++11 vier intelligente<br />

Zeiger an. Einerseits rundet der<br />

»std::weak_ptr« die Funktionalität des<br />

»std::shared_ptr« ab, denn er hilft dabei,<br />

zyklische Referenzen des Shared Pointer<br />

aufzubrechen. Solche Referenzen verhindern,<br />

dass der Referenzzähler den<br />

Wert 0 erreichet. <strong>Die</strong>s wäre aber die Bedingung,<br />

um die Ressource zu löschen.<br />

Andererseits erbt C++11 von C++ den<br />

»std::auto_ptr«.<br />

Im neuen Sprachstandard gilt dieser Auto<br />

Pointer allerdings als deprecated, denn er<br />

schleppt ein konzeptionelles Problem mit<br />

sich herum: Wenn er kopiert wird, wendet<br />

er heimlich Move-Semantik [3] an.<br />

Bevor sich der Artikel den Details rund<br />

um »std::auto_ptr« und »std::unique_ptr«<br />

widmet, stellt Tabelle 1 die vier Smart<br />

Pointer im Überblick dar.<br />

Zeiger-Kunde<br />

Tabelle 1: Smart Pointer im Überblick<br />

Name Standard Beschreibung<br />

auto_ptr C++98 Besitzt die Exklusiv-Ressource.<br />

Abbildung 2: Gefährlich: Der Auto Pointer verursacht<br />

unerwünscht einen Null Pointer.<br />

Im neuen C++11 dient »std::unique_ptr«<br />

als Ersatz für den »std::auto_ptr« aus<br />

C++, der – wie oben beschrieben – gefährliche<br />

Nebenwirkungen besitzt. <strong>Die</strong>se<br />

lassen sich an dem einfachen Beispiel in<br />

Listing 2 demonstrieren, das dennoch<br />

Überraschungen birgt. Zeile 23 initialisiert<br />

einen Auto Pointer mit dessen allokierter<br />

Integer-Ressource:<br />

auto_ptr autoPtr1{new int(2011)}<br />

Abbildung 2 zeigt die Adresse des Speicher<br />

bereichs und seinen Wert.<br />

Verwendet der Programmierer »auto-<br />

Ptr1« wie in Zeile 28, um »autoPtr2«<br />

zu initialisieren, nimmt das Unheil<br />

sein Lauf: Der Aufruf »auto_ptr<br />

autoPtr2(autoPtr1)« verschiebt die Ressource<br />

von »autoPtr1« nach »autoPtr2«.<br />

Doch »autoPtr1.get()« verweist im Unterschied<br />

zu »autoPtr2.get()« auf keinen<br />

Wert mehr und lässt sich somit auch<br />

nicht ausgeben. Der Funktionsaufruf von<br />

»catchResour ce(autoPtr2)« in Zeile 34<br />

veranlasst, dass »autoPtr2« kopiert wird.<br />

Das verschiebt die Ressource. Nun ist »localInt«<br />

in Zeile 17 der exklusive Besitzer<br />

von » newInt(2011)«. In der Abbildung<br />

3 ist die heimliche Move-Semantik des<br />

»std::auto_ptr« dargestellt.<br />

Natürlich kann der Entwickler das fehlerträchtige<br />

Kopieren von »std::auto_ptr«<br />

mit viel Disziplin vermeiden, doch besser<br />

ist es, wenn der Compiler das Kopieren<br />

gar nicht zulässt. Hier beginnt die Geschichte<br />

des neuen »std::unique_ptr«.<br />

Verschiebt beim Kopieren heimlich die Ressource.<br />

unique_ptr C++11 Besitzt die Exklusiv-Ressource.<br />

Lässt sich nicht kopieren.<br />

Verwaltet nicht kopierbare Objekte (Threads, Locks, Dateien …).<br />

shared_ptr C++11 Besitzt einen Referenzzähler auf eine gemeinsam genutzte Ressource.<br />

Verwaltet automatisch den Referenzzähler.<br />

Löscht die Ressource, sobald der Referenzzähler den Wert 0 besitzt.<br />

weak_ptr C++11 Hilft zyklische Referenzen von »shared_ptr« aufzulösen.<br />

Und Gewinnen!<br />

eines von zehn „ivori“<br />

smartphone GadGets<br />

das smartphone wird<br />

zum desktop telefon<br />

G eeiGnet für alle<br />

smartphones mit mini<br />

Jack<br />

ein cooles retro Gad-<br />

Get für Büro und zu<br />

hause<br />

gesponsert von<br />

sonderAkTion!<br />

Testen sie jetzt<br />

3 Ausgaben für<br />

nUr 3€*<br />

Telefon: 07131 /2707 274<br />

Fax: 07131 / 2707 78 601<br />

E-Mail: abo@linux-user.de<br />

Mit großem Gewinnspiel unter:<br />

www.linux-user.de/probeabo<br />

* Angebot gilt innerhalb Deutschlands und Österreichs.<br />

In der Schweiz: SFr 4,50. Weitere Preise: www.linux-user.de/produkte<br />

.de


Programmieren<br />

www.linux-magazin.de C++11 02/2013<br />

92<br />

01 #include <br />

02 #include <br />

03 #include <br />

04 <br />

05 using std::endl;<br />

06 using std::cout;<br />

07 using std::string;<br />

08 using std::auto_ptr;<br />

09 <br />

autoPtr1<br />

new int(2011)<br />

Der »std::unique_ptr« in C++11 ist der<br />

bessere Smart Pointer [4]. Er besitzt ein<br />

sehr ähnliches Interface wie »std::auto_<br />

ptr« [5]. Listing 3 zeigt, wie einfach<br />

sich der Unique Pointer einsetzen lässt,<br />

ohne die Risiken des alten Auto Pointer<br />

in Kauf zu nehmen. Der Wrapper »MyInt«<br />

macht das Löschen der Ressourcen auf<br />

dem Terminal sichtbar. Abbildung 5 zeigt<br />

die Ausgabe. Der Ausdruck<br />

unique_ptr uniquePtr2{U<br />

move(uniquePtr1) }<br />

in Zeile 28 verschiebt die Ressource von<br />

»uniquePtr1« nach »uniquePtr2«. Das ist<br />

exemplarisch in der Abbildung 4 dar-<br />

10 void printAutoPtr(const string& name, const<br />

auto_ptr& autoPtr){<br />

11 cout


mit »malloc()« allokiert und muss daher<br />

wieder mit »free« freigegeben werden:<br />

int* ptr=(int*)malloc(sizeof(int));<br />

unique_ptr intptr;<br />

Unique Pointer besitzen zudem eine Template-Spezialisierung<br />

für Arrays. Damit<br />

lässt sich einfach ein »std::unique_ptr«<br />

von Integern definieren. Als Default-<br />

Löschfunktion kommt dabei »delete []«<br />

zum Einsatz:<br />

unique_ptr intArray (new int[4]);<br />

intArray[0]=1998;<br />

intArray[1]=2005;<br />

intArray[2]=2011;<br />

intArray[3]=2017;<br />

Während der »std::unique_ptr« den Lebenszyklus<br />

genau einer Ressource überwacht,<br />

stellt der »std::shared_ptr« den typischen<br />

Anwendungsfall für einen Smart<br />

Pointer dar. Er bietet einen Referenzzähler<br />

auf eine gemeinsam genutzte Variable<br />

an, die automatisch mitzählt, wie viele<br />

Listing 3: »std::unique_ptr«<br />

01 #include <br />

02 #include <br />

03 <br />

04 using std::ostream;<br />

05 using std::cout;<br />

06 using std::endl;<br />

07 using std::unique_ptr;<br />

08 using std::move;<br />

09 <br />

10 struct MyInt{<br />

11 MyInt(int i):i_(i){}<br />

12 <br />

13 ~MyInt(){<br />

14 cout


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 02/2013<br />

94<br />

Onlinebücherei<br />

Bequem zum richtigen Buch<br />

Um Onlinedokumente auf Google Drive mit Tags zu versehen, legt ein Skript mit Hilfe zweier APIs Metadaten<br />

auf Evernote ab. Damit kann der Benutzer beispielsweise seine in der Cloud gelagerten E-Books nach Kategorien<br />

durchsuchen. Michael Schilli<br />

© Gennadiy Poznyakov, 123RF.com<br />

<strong>Die</strong> gewünschten Metadaten legt Evernote<br />

als Tags ab, die es Notes zuweist.<br />

Der Anwender vergibt Tags entweder mit<br />

der Maus im Webbrowser auf Evernote.<br />

com (Abbildung 3) oder mit einem der<br />

vielen Clients auf Windows-, Mac- oder<br />

Mobilgeräten. Auch das API weist Notes<br />

API-generierte Tags zu.<br />

Bleibt zu klären, wie die Einträge für die<br />

PDF-Dateien in die Evernote-Datenbank<br />

kommen. Das vorgestellte Skript (Listing<br />

1) legt von allen lokal gefundenen PDF-<br />

Dateien ein Jpg-Bild der Titelseite an und<br />

lädt es in einen Note-Eintrag im Folder<br />

»50‐Ebooks« meines Evernote-Accounts<br />

hoch (Abbildung 2). Nachdem ich mit<br />

der Maus Tags auf die Einträge gezogen<br />

habe, kann ich mit Evernotes Suchfunktion<br />

Einträge auswählen (Abbildung 4).<br />

Wie vor zwei Monaten an gleicher Stelle<br />

[2] erörtert, liegen meine ehemaligen<br />

Papierbücher jetzt als PDFs auf Google<br />

Drive. <strong>Die</strong> Liste meiner digitalisierten Folianten<br />

am PC-Bildschirm zu durchstöbern<br />

ist kein Problem. Sitze ich aber vor<br />

meinem mobilen Lesegerät und möchte<br />

in der Onlinebibliothek schmökern, ist<br />

die lange Textliste in Abbildung 1 unpraktisch.<br />

Was fehlt, ist ein Mechanismus, mit<br />

dem ich zum Beispiel gelesene Bücher als<br />

solche markieren kann.<br />

Helfen würde es auch, großformatige Bücher<br />

– Informatik-Literatur mit langen<br />

Programmlistings beispielsweise – extra<br />

zu kennzeichnen, da ihre Darstellung<br />

auf Mobiltelefonen mies ist. Wenn ich<br />

an der Supermarktkasse Schlange stehe,<br />

will ich auf dem Smartphone am liebsten<br />

nur kleinformatige Werke angeboten bekommen,<br />

mit denen das Minidisplay am<br />

besten klarkommt.<br />

Auf Google Drive fehlen also Tags, die<br />

Dateien mit Eigenschaften versehen. Ein<br />

»finished«-Tag für ganz gelesene Werke,<br />

ein »active«-Tag für halb gelesene und ein<br />

»pocket«-Tag für Taschenbücher, die auch<br />

auf einem Smartphone gut zu lesen sind.<br />

Dann könnte jeder Benutzer nach seinen<br />

Vorlieben Bücher mit bestimmten Tags<br />

auflisten und zügig auswählen.<br />

Bis die Google-Entwickler in die Gänge<br />

kommen, fällt meine Wahl auf die Applikation<br />

Evernote. Sie ist auf allen Geräten<br />

verfügbar, auf denen auch Google Drive<br />

läuft, und speichert, wie vor einiger Zeit<br />

hier erörtert ([3], [4]), beliebige Daten in<br />

„Note“ genannten Einträgen, die wiederum<br />

in „Notebooks“ genannten Ordnern<br />

liegen. Außerdem bietet der Evernote-<br />

<strong>Die</strong>nst ein API auf den Datenspeicher<br />

an, sodass Programmierer ohne Weiteres<br />

Hunderte oder Tausende Einträge maschinengesteuert<br />

anlegen können.<br />

Einfacher als Oauth<br />

Nach dem Erscheinen der Perl-Snapshots<br />

([3], [4) hat Evernote leider von Passwort-basierter<br />

Authentisierung auf Oaut h<br />

2 umgestellt. Wegen des geänderten API<br />

funktionieren die Skripte von damals<br />

nicht mehr und neue Applikationen zu<br />

entwickeln gestaltet sich etwas aufwändiger<br />

als zuvor.<br />

Doch haben die Evernote-Entwickler ein<br />

Einsehen mit Hobbybastlern, die statt<br />

Daten von wildfremden App-Kunden<br />

nur ihre eigenen Accounts manipulieren<br />

wollen. Freizeitschrauber dürfen sich<br />

nämlich unter [5] einen so genannten<br />

Developer-Token abholen. Der Textstring<br />

Online PLUS<br />

In einem Screencast demonstriert<br />

Michael Schilli das Beispiel: [http://​<br />

www.linux-magazin.de/​plus/​2013/02]


lässt sich lokal speichern<br />

und gewährt<br />

ähnlich wie ein Passwort<br />

Zugang zu genau<br />

einem Evernote-<br />

Datenspeicher.<br />

Listing 1 zieht als wichtigstes<br />

CPAN-Modul<br />

Net::Evernote::Simple<br />

herein, das der Einfachheit<br />

halber das<br />

offizielle Evernote-<br />

Thrift-API schon enthält.<br />

Eine Yaml-Datei<br />

namens »~/.evernote.<br />

yml« im Homeverzeichnis des Users enthält<br />

unter dem Eintrag »dev_token« den<br />

Developer-Token, den sich der auf Evernote<br />

eingeloggte User unter [5] abgeholt<br />

hat. In Zeile 18 liefert die Methode<br />

»note_store()« ein Objekt, mit dem der<br />

User direkt Evernote-API-Funktionen aufrufen<br />

darf, die der Evernote-Server intern<br />

als Webrequests geschickt bekommt.<br />

Abbildung 1: Michael Schillis Bibliothek auf Google Drive erscheint bislang<br />

nur als graue PDF-Liste gescannter Papierbücher.<br />

Zeile 20 ermittelt über »en_folder_id()«<br />

die GUID des Notebooks »50‐Ebooks«,<br />

das der User auf Evernote schon angelegt<br />

hat. Ab Zeile 115 ruft sie zunächst<br />

die API-Funktion »listNotebooks()« auf,<br />

übergibt den Developer-Token und erhält<br />

eine Liste aller Notebooks des Accounts.<br />

<strong>Die</strong> If-Bedingung in Zeile 123 filtert das<br />

Gesuchte heraus. <strong>Die</strong> Methode »guid()«<br />

Abbildung 2: Mit Hilfe eines API-Skripts zeigt Evernote<br />

die Bücher der Bibliothek nun mit Titelbild und<br />

Tagging-Funktion.<br />

Perl-Snapshot 02/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

95<br />

8,90€ *<br />

124 Seiten <strong>Linux</strong><br />

+ DVD<br />

<strong>Die</strong> aktuelle Ausgabe von<br />

<strong>Linux</strong>User Spezial dringt in die<br />

Tiefen des <strong>Linux</strong>-Systems ein und<br />

zeigt, wie Sie Ihren Rechner auf<br />

der Kommandozeile administrieren.<br />

Jetzt bestellen<br />

unter: www.linuxuser.de/spezial<br />

Tel.: 089-9934110, Fax: 089-99341199, E-Mail: order@linuxuser.de


Programmieren<br />

www.linux-magazin.de Perl-Snapshot 02/2013<br />

96<br />

extrahiert daraus die GUID und gibt sie<br />

ans Hauptprogramm zurück.<br />

Schrittweise abpumpen<br />

Bei jedem Aufruf holt das Skript mit »en_<br />

folder_notes()« alle im Notebook »50‐E -<br />

books« auf Evernote gespeicherten Notes<br />

ab und iteriert über die lokal gespeicherten<br />

E-Book-PDFs. Das Gleiche ließe sich<br />

auch mit Cloud-PDFs auf Google Drive<br />

erreichen. Wie auch immer, das Programm<br />

findet raus, welche lokalen PDFs<br />

noch nicht in Evernote liegen.<br />

Für jedes gefundene Dokument legt die in<br />

Zeile 36 aufgerufene Funktion »en_add()«<br />

eine neue Evernote-Note an. <strong>Die</strong> Funktion<br />

»en_folder_notes()« erzeugt zum<br />

Finden der Einträge in einem Notebook<br />

einen Filter, der die Notebook-GUID vorgibt,<br />

und holt dann jeweils 50 Einträge<br />

auf einmal ab. Kommen tatsächlich 50<br />

zurück, erhöht sie den Zähler »$offset«<br />

und fragt abermals nach.<br />

Da Net::Evernote::Simple das Evernote-<br />

API enthält, muss die Library im Modulraum<br />

das gleichnamige Präfix vorsehen.<br />

Modulnamen wie EDAMTypes::Data gera-<br />

Abbildung 3: Im Browser hat der User dem Buch „Der App-Entwickler Crashkurs“<br />

die Tags »computer‐book« und »finished‐book« zugewiesen.<br />

ten wegen des führenden<br />

Präfix etwas länglich.<br />

Da die Spaltenbreite<br />

beim gedruckten<br />

Listing 1 begrenzt<br />

ist, stellen die Zeilen<br />

46 bis 54 die erforderlichen<br />

Modulnamen<br />

des API zeilenweise<br />

zusammen und ziehen<br />

dann die Modu le mit<br />

»require« herein. Normale<br />

Skripte würden<br />

einfach »use Net::...<br />

::Data« benutzen.<br />

Das neben dem Bücher-Dateinamen<br />

ebenfalls benötigte Jpg-Bild der Titelseite<br />

fieselt die Funktion »title_pic()« unter tätiger<br />

Mithilfe des Utility »pdftk« aus den<br />

PDF-Dateien heraus. »convert« aus dem<br />

Imagemagick-Fundus wandelt die PDF-<br />

Titelseite in Zeile 107 in ein Jpg-Foto um.<br />

Beide Utilities sind mit einem Paketmanager<br />

wie »apt‐get« schnell installiert.<br />

Das Anlegen einer neuen Note in Evernote<br />

mit einer eingebetteten Jpg-Datei erfordert<br />

etwas XML, wie »en_add()« ab Zeile<br />

41 nahelegt. Zunächst schlürft die Funktion<br />

»slurp« aus dem Fundus des CPAN-<br />

Moduls Sysadm::Install die Jpg-Daten in<br />

die Variable »$content«. <strong>Die</strong>se Rohdaten<br />

nimmt die Methode »body()« der Klasse<br />

EDAMTypes::Data entgegen und verlangt<br />

außerdem einen MD5-Hash des Inhalts,<br />

den die Funktion »md5_hash()« aus dem<br />

CPAN-Modul Digest::MD5 herzustellen in<br />

der Lage ist. Auch die Dateigröße in Bytes<br />

ist einzutüten.<br />

Aus der Datenklasse formen die Zeilen 66<br />

bis 69 ein Objekt der Klasse EDAMTypes-<br />

::Resource. <strong>Die</strong>se wiederum packt die<br />

Listing 1: »github‐push‐receiver.cgi«<br />

001 #!/usr/local/bin/perl ‐w<br />

002 use strict;<br />

003 use Net::Evernote::Simple;<br />

004 use Log::Log4perl qw(:easy);<br />

005 use File::Basename;<br />

006 use File::Temp qw( tempfile );<br />

007 use Digest::MD5 qw( md5_hex );<br />

008 use Sysadm::Install qw( :all );<br />

009<br />

010 Log::Log4perl‐>easy_init( $INFO );<br />

011<br />

012 my( $HOME ) = glob "~";<br />

013<br />

014 my $EN_FOLDER = "50‐Ebooks";<br />

015 my $BOOKS_DIR = "$HOME/books";<br />

016<br />

017 my $enote = Net::Evernote::Simple‐>new();<br />

018 my $enstore = $enote‐>note_store();<br />

019<br />

020 my $en_folder_id = en_folder_id(<br />

021 $enote, $enstore );<br />

022<br />

023 my %en_books = map { $_ => 1 }<br />

024 en_folder_notes( $enote, $enstore,<br />

025 $en_folder_id );<br />

026<br />

027 for my $pdf ( ) {<br />

028 my $file = basename $pdf;<br />

029 (my $title = $file ) =~ s/\.pdf$//;<br />

030<br />

031 if( exists $en_books{ $title } ) {<br />

032 DEBUG "$title already in Evernote";<br />

033 next;<br />

034 }<br />

035<br />

036 en_add( $enote, $enstore, $title,<br />

037 title_pic( $pdf ), $en_folder_id );<br />

038 }<br />

039<br />

040 ###########################################<br />

041 sub en_add {<br />

042 ###########################################<br />

043 my( $enote, $enstore, $title,<br />

044 $title_pic, $en_folder_id ) = @_;<br />

045<br />

046 my $PRFX = "Net::Evernote::Simple::" .<br />

047 "EDAMTypes::";<br />

048 my $data_class = $PRFX . "Data";<br />

049 my $resource_class = $PRFX . "Resource";<br />

050 my $note_class = $PRFX . "Note";<br />

051<br />

052 eval "require $data_class";<br />

053 eval "require $resource_class";<br />

054 eval "require $note_class";<br />

055<br />

056 INFO "Adding $title to Evernote";<br />

057<br />

058 my $data = $data_class‐>new();<br />

059<br />

060 my $content = slurp $title_pic;<br />

061 $data‐>body( $content );<br />

062 my $hash = md5_hex( $content );<br />

063 $data‐>bodyHash( $hash );<br />

064 $data‐>size( length $content );<br />

065<br />

066 my $r = $resource_class‐>new();<br />

067 $r‐>data( $data );<br />

068 $r‐>mime( "image/jpeg" );<br />

069 $r‐>noteGuid( "" );<br />

070<br />

071 my $note = $note_class‐>new();<br />

072 $note‐>title( $title );<br />

073 $note‐>resources( [$r] );<br />

074 $note‐>notebookGuid( $en_folder_id );<br />

075<br />

076 my $enml =


Abbildung 4: Sind die Tags »fun‐book« und »pocket‐book« gesetzt, zeigt<br />

die Suche nur unterhaltsame Taschenbücher.<br />

Methode »resources()« in ein Objekt der<br />

Klasse EDAMTypes::Note. Jede Evernote-<br />

Notiz besteht aus einer Anzahl dieser<br />

Ressourcen, auf welche die Notes verlinken,<br />

damit Browser und Evernote-<br />

Applikationen sie als Teil der Note anzeigen<br />

können. Am Ende stopft die Zeile<br />

86 das weiter oben angegebene XML in<br />

den Contentbereich der Note, damit die<br />

Inhalte ein Format bekommen.<br />

Ein abschließender Aufruf der API-Funktion<br />

»createNote()« mit dem Developer-<br />

Token spielt die neue<br />

Note auf dem Evernote-Server<br />

ein.<br />

Download-Link<br />

implantieren<br />

Mit dem in [2] vorgestellten<br />

Google-Drive-<br />

API lässt sich in Listing<br />

1 leicht ein Downloadlink<br />

in jeden Evernote-Eintrag<br />

einbauen,<br />

der auf das PDF-Dokument<br />

zeigt. Dazu liefert<br />

das API für gefundene<br />

Dateien ein »downloadUrl«-Feld mit<br />

einem HTTPS-Link auf den Google-Server.<br />

Im Link ist der Query-Parameter<br />

»gd=true« gesetzt. Wer ihn entfernt und<br />

im Browser klickt, lädt die Drive-Datei<br />

auf sein lokales Gerät herunter.<br />

Zur Performance-Optimierung lassen sich<br />

die Dokumente, wie in [2] vorgeschlagen,<br />

aufgesplittet ablegen und geeignet<br />

verlinken. Nun können Lesewütige auch<br />

unterwegs Bücher häppchenweise herunterladen<br />

und losschmökern. (jk) n<br />

Infos<br />

[1] Listings zu diesem Artikel: [ftp:// www.​<br />

linux‐magazin. de/ pub/ listings/ magazin/​<br />

2013/ 02/ Perl]<br />

[2] Michael Schilli, „Papierbuch am Ende“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 12/​2012, S. 102, [http://​<br />

www. linux‐magazin. de/ Ausgaben/ 2012/ 12/​<br />

Perl‐Snapshot]<br />

[3] Michael Schilli, „Zettels Trauma“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 01/​2012, S. 118<br />

[4] Michael Schilli, „Unvergesslich“:<br />

<strong>Linux</strong>-<strong>Magazin</strong> 04/​2012, S. 100<br />

[5] Evernote gibt Developer-Tokens zum privaten<br />

Datenzugriff aus: [http:// dev. evernote.​<br />

com/ documentation/ cloud/ chapters/​<br />

Authentication. php# devtoken]<br />

Der Autor<br />

Michael Schilli arbeitet<br />

als Software-Engineer bei<br />

Yahoo in Sunnyvale, Kalifornien.<br />

In seiner seit 1997<br />

laufenden Kolumne forscht<br />

er jeden Monat nach praktischen<br />

Anwendungen der Skriptsprache Perl.<br />

Unter [mschilli@perlmeister. com] beantwortet<br />

er gerne Fragen.<br />

Perl-Snapshot 02/2013<br />

Programmieren<br />

www.linux-magazin.de<br />

97<br />

085<br />

086 $note‐>content( $enml );<br />

087<br />

088 $enstore‐>createNote(<br />

089 $enote‐>dev_token(), $note );<br />

090 }<br />

091<br />

092 ###########################################<br />

093 sub title_pic {<br />

094 ###########################################<br />

095 my( $in_pdf ) = @_;<br />

096<br />

097 my ($fh1, $pdf_file) = tempfile(<br />

098 SUFFIX => '.pdf', UNLINK => 1 );<br />

099<br />

100 my ($fh2, $jpg_file) = tempfile(<br />

101 SUFFIX => '.jpg', UNLINK => 1 );<br />

102<br />

103 tap { raise_error => 1 },<br />

104 "pdftk", "A=$in_pdf", "cat", "A1",<br />

105 "output", $pdf_file;<br />

106<br />

107 tap { raise_error => 1 },<br />

108 "convert", "‐resize", "100x",<br />

109 $pdf_file, $jpg_file;<br />

110<br />

111 return $jpg_file;<br />

112 }<br />

113<br />

114 ###########################################<br />

115 sub en_folder_id {<br />

116 ###########################################<br />

117 my( $enote, $store ) = @_;<br />

118<br />

119 my $notebooks = $enstore‐>listNotebooks(<br />

120 $enote‐>dev_token() );<br />

121<br />

122 for my $notebook (@$notebooks) {<br />

123 if ( $notebook‐>name() eq $EN_FOLDER ){<br />

124 return $notebook‐>guid();<br />

125 }<br />

126 }<br />

127<br />

128 die "$EN_FOLDER not found";<br />

129 }<br />

130<br />

131 ###########################################<br />

132 sub en_folder_notes {<br />

133 ###########################################<br />

134 my( $enote, $store, $en_folder_id ) = @_;<br />

135<br />

136 my $filter_class = "Net::Evernote::" .<br />

137 "Simple::EDAMNoteStore::NoteFilter";<br />

138 eval "require $filter_class";<br />

139<br />

140 my $filter = $filter_class‐>new();<br />

141 $filter‐>notebookGuid( $en_folder_id );<br />

142<br />

143 my @titles = ();<br />

144<br />

145 my $max_per_call = 50;<br />

146<br />

147 for( my $offset = 0; ;<br />

148 $offset += $max_per_call ) {<br />

149<br />

150 my $note_list = $store‐>findNotes(<br />

151 $enote‐>dev_token(),<br />

152 $filter, $offset, $max_per_call );<br />

153<br />

154 my $notes_found = 0;<br />

155<br />

156 for my $note (<br />

157 @{ $note_list‐>{ notes } } ) {<br />

158 $notes_found++;<br />

159<br />

160 push @titles, $note‐>title();<br />

161 }<br />

162<br />

163 last if $notes_found != $max_per_call;<br />

164 }<br />

165<br />

166 return @titles;<br />

167 }


Service<br />

www.linux-magazin.de IT-Profimarkt 02/2013<br />

100<br />

PROFI<br />

MARKT<br />

Sie fragen sich, wo Sie maßgeschneiderte<br />

<strong>Linux</strong>-Systeme und kompetente<br />

Ansprechpartner zu Open-Source-Themen<br />

finden? Der IT-Profimarkt weist Ihnen<br />

als zuverlässiges Nachschlagewerk<br />

den Weg. <strong>Die</strong> hier gelisteten Unternehmen<br />

beschäftigen Experten auf ihrem<br />

Gebiet und bieten hochwertige Produkte<br />

und Leistungen.<br />

<strong>Die</strong> exakten Angebote jeder Firma entnehmen<br />

Sie deren Homepage. Der ersten<br />

Orientierung dienen die Kategorien<br />

Hardware, Software, Seminaranbieter,<br />

Systemhaus, Netzwerk/TK und Schulung/Beratung.<br />

Der IT-Profimarkt-Eintrag<br />

ist ein Service von <strong>Linux</strong>-<strong>Magazin</strong><br />

und <strong>Linux</strong>User.<br />

Online-Suche<br />

Besonders bequem finden Sie einen<br />

<strong>Linux</strong>-Anbieter in Ihrer Nähe über die<br />

neue Online-Umkreis-Suche unter:<br />

[http://www.it-profimarkt.de]<br />

Informationen<br />

fordern Sie bitte an bei:<br />

Medialinx AG<br />

Anzeigenabteilung<br />

Putzbrunner Str. 71<br />

D-81739 München<br />

Tel.: +49 (0)89/99 34 11-23<br />

Fax: +49 (0)89/99 34 11-99<br />

E-Mail: anzeigen@linux-magazin.de<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl<br />

4= Fachliteratur 4= Seminaranbieter 5 = Software 5 = Software 6 = Schulung/Beratung 6 = Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Schlittermann internet & unix support 01099 Dresden, Tannenstr. 2 0351-802998-1 www.schlittermann.de √ √ √ √<br />

imunixx GmbH UNIX consultants 01468 Moritzburg, Heinrich-Heine-Str. 4 0351-83975-0 www.imunixx.de √ √ √ √ √<br />

Heinlein Support GmbH 10119 Berlin, Schwedter Straße 8/​9b 030-405051-0 www.heinlein-support.de √ √ √ √ √<br />

TUXMAN Computer 10369 Berlin, Anton-Saefkow-Platz 8 030-97609773 www.tuxman.de √ √ √ √ √<br />

Hostserver GmbH 10405 Berlin, Winsstraße 70 030-47375550 www.hostserver.de √<br />

Compaso GmbH 10439 Berlin, Driesener Strasse 23 030-3269330 www.compaso.de √ √ √ √ √<br />

elego Software Solutions GmbH 13355 Berlin, Gustav-Meyer-Allee 25 030-2345869-6 www.elegosoft.com √ √ √ √<br />

verion GmbH 16244 Altenhof, Unter den Buchen 22 e 033363-4610-0 www.verion.de √ √ √<br />

Logic Way GmbH 19061 Schwerin, Hagenower Str. 73 0385-39934-48 www.logicway.de √ √ √ √<br />

Sybuca GmbH 20459 Hamburg, Herrengraben 26 040-27863190 www.sybuca.de √ √ √ √ √<br />

iTechnology GmbH 22083 Hamburg, Osterbekstrasse 90b 040 / 69 64 37 20 www.itechnology.de √ √ √ √<br />

JEL Ingenieurbuero 23911 Einhaus, Hauptstr. 7 04541-8911-71 www.jeltimer.de √<br />

beitco - Behrens IT-Consulting 26197 Ahlhorn, Lessingstr. 27 04435-9537330-0 www.beitco.de √ √ √ √ √<br />

talicom GmbH 30169 Hannover, Calenberger Esplanade 3 0511-123599-0 www.talicom.de √ √ √ √ √<br />

primeLine Solutions GmbH 32549 Bad Oeynhausen, Dornenbreite 18a 05731/​86940 www.primeline-solutions.de √ √ √ √<br />

teuto.net Netzdienste GmbH 33602 Bielefeld, Niedenstr. 26 0521-96686-0 www.teuto.net √ √ √ √ √<br />

MarcanT GmbH 33602 Bielefeld, Ravensberger Str. 10 G 0521-95945-0 www.marcant.net √ √ √ √ √ √<br />

Hostserver GmbH 35037 Marburg, Biegenstr. 20 06421-175175-0 www.hostserver.de √<br />

LINET Services GmbH 38118 Braunschweig, Cyriaksring 10a 0531-180508-0 www.linet-services.de √ √ √ √ √ √<br />

OpenIT GmbH 40599 Düsseldorf, In der Steele 33a-41 0211-239577-0 www.OpenIT.de √ √ √ √ √<br />

<strong>Linux</strong>-Systeme GmbH 45277 Essen, Langenbergerstr. 179 0201-298830 www.linux-systeme.de √ √ √ √ √<br />

<strong>Linux</strong>hotel GmbH 45279 Essen, Antonienallee 1 0201-8536-600 www.linuxhotel.de √<br />

OpenSource Training Ralf Spenneberg 48565 Steinfurt, Am Bahnhof 3-5 02552-638755 www.opensource-training.de √<br />

Intevation GmbH 49074 Osnabrück, Neuer Graben 17 0541-33508-30 osnabrueck.intevation.de √ √ √ √<br />

Sigs Datacom GmbH 53842 Troisdorf, Lindlaustraße 2c 02241-2341-201 sigs-datacom.de √<br />

uib gmbh 55118 Mainz, Bonifaziusplatz 1b 06131-27561-0 www.uib.de √ √ √ √<br />

LISA GmbH 55411 Bingen, Elisenhöhe 47 06721-49960 www.lisa-gmbh.de √ √ √ √ √<br />

saveIP GmbH 64283 Darmstadt, Schleiermacherstr. 23 06151-666266 www.saveip.de √ √ √ √ √<br />

LAMARC EDV-Schulungen u. Beratung GmbH 65193 Wiesbaden, Sonnenberger Straße 14 0611-260023 www.lamarc.com √ √ √ √<br />

ORDIX AG 65205 Wiesbaden, Kreuzberger Ring 13 0611-77840-00 www.ordix.de √ √ √ √ √<br />

<strong>Linux</strong>Haus Stuttgart 70565 Stuttgart, Hessenwiesenstrasse 10 0711-2851905 www.linuxhaus.de √ √ √ √ √<br />

Manfred Heubach EDV und Kommunikation 73728 Esslingen, Hindenburgstr. 47 0711-4904930 www.heubach-edv.de √ √ √ √<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

(S.102)


Markt<br />

3 AusgAben für nur 5,90 E<br />

Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />

Neu!<br />

Kennenlernangebot:<br />

3 AusgAben<br />

für nur 5,90 E<br />

Jetzt bestellen unter:<br />

www.android–user.de/miniabo<br />

Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de


Service<br />

www.linux-magazin.de Markt 02/2013<br />

102<br />

IT-Profimarkt<br />

IT-Profimarkt – Liste sortiert nach Postleitzahl (Fortsetzung von S. 100)<br />

1 = Hardware 2 = Netzwerk/TK 3 = Systemhaus<br />

4= Seminaranbieter 5 = Software 6 = Beratung<br />

Firma Anschrift Telefon Web 1 2 3 4 5 6<br />

Waldmann EDV Systeme + Service<br />

74321 Bietigheim-Bissingen,<br />

Pleidelsheimer Str. 25<br />

IT-Profimarkt listet ausschließlich Unternehmen, die Leistungen rund um <strong>Linux</strong> bieten. Alle Angaben ohne Gewähr. <br />

07142-21516 www.waldmann-edv.de √ √ √ √ √<br />

in-put Das <strong>Linux</strong>-Systemhaus 76133 Karlsruhe, Moltkestr. 49 0721-6803288-0 www.in-put.de √ √ √ √ √ √<br />

Bodenseo 78224 Singen, Pomeziastr. 9 07731-1476120 www.bodenseo.de √ √ √<br />

<strong>Linux</strong> Information Systems AG 81739 München, Putzbrunnerstr. 71 089-993412-0 www.linux-ag.com √ √ √ √ √<br />

<strong>Linux</strong>Land International GmbH 81739 München, Putzbrunnerstr. 71 089-99341441 www.linuxland.de √ √ √ √ √ √<br />

Synergy Systems GmbH 81829 München, Konrad-Zuse-Platz 8 089-89080500 www.synergysystems.de √ √ √ √ √<br />

B1 Systems GmbH 85088 Vohburg, Osterfeldstrasse 7 08457-931096 www.b1-systems.de √ √ √ √ √<br />

ATIX AG 85716 Unterschleißheim, Einsteinstr. 10 089-4523538-0 www.atix.de √ √ √ √ √ √<br />

OSTC Open Source Training and Consulting GmbH 90425 Nürnberg, Waldemar-Klink-Str. 10 0911-3474544 www.ostc.de √ √ √ √ √ √<br />

Dipl.-Ing. Christoph Stockmayer GmbH 90571 Schwaig, Dreihöhenstr. 1 0911-505241 www.stockmayer.de √ √ √<br />

pascom - Netzwerktechnik GmbH & Co.KG 94469 Deggendorf, Berger Str. 42 0991-270060 www.pascom.net √ √ √ √ √<br />

fidu.de IT KG 95448 Bayreuth, Ritter-v.-Eitzenb.-Str. 19 0921 / 16 49 87 87 - 0 www.linux-onlineshop.de √ √ √ √<br />

Computersysteme Gmeiner 95643 Tirschenreuth, Fischerhüttenweg 4 09631-7000-0 www.gmeiner.de √ √ √ √ √<br />

RealStuff Informatik AG CH-3007 Bern, Chutzenstrasse 24 0041-31-3824444 www.realstuff.ch √ √ √<br />

CATATEC CH-3013 Bern, Dammweg 43 0041-31-3302630 www.catatec.ch √ √ √<br />

Syscon Systemberatungs AG CH-8003 Zürich, Zweierstrasse 129 0041-44-4542010 www.syscon.ch √ √ √ √ √<br />

Würth Phoenix GmbH IT-39100 Bozen, Kravoglstraße 4 0039 0471 56 41 11 www.wuerth-phoenix.com √ √ √ √<br />

n<br />

Einfach auf LinuX umstEigEn!<br />

4 x im Jahr kompaktes <strong>Linux</strong>-Know-how - IMMER mit 2 DVDs<br />

n Easy<strong>Linux</strong> macht den<br />

Umstieg auf <strong>Linux</strong> einfach<br />

n Verständliche<br />

Schritt-für-Schritt-Anleitungen<br />

n Nachvollziehbare<br />

Tipps und Tricks<br />

15%<br />

sparen<br />

EASYLINUX-JAHRES-ABO<br />

NUR 33,30E*<br />

❱<br />

JEtzt gRatis<br />

abo-pRämiE<br />

sichERn!<br />

ich bekomme gratis:<br />

• SoftMaker Office Paket<br />

für <strong>Linux</strong> im Wert<br />

von 69,95 Euro<br />

(solange Vorrat reicht)<br />

*Preise außerhalb Deutschlands siehe www.easylinux.de/abo<br />

JETZT GLEICH BESTELLEN! n tel.: 07131 / 2707 274 n fax: 07131 / 2707 78 601<br />

n E-mail: abo@easylinux.de n uRL: www.easylinux.de/abo


u<br />

Seminare / Markt<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

Online-Training<br />

Prüfungsvorbereitung<br />

für LPIC 1 & 2<br />

Besorgen Sie sich Brief und<br />

Siegel für Ihr <strong>Linux</strong>-<br />

Knowhow mit der<br />

LPI-Zertifizierung.<br />

- Training für die Prüfungen<br />

LPI 101 und 102<br />

- Training für die Prüfungen<br />

LPI 201 und 202<br />

Sparen Sie mit<br />

paketpreiSen!<br />

JETZT MIT NEUEN<br />

LErNZIELEN! *<br />

*ANpAssUNg dEr LErNZIELE 2012<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

academy.linux-magazin.de/lpic<br />

OpenSource Training Ralf Spenneberg<br />

Schulungen direkt vom Autor<br />

Wege aus der Lizenzfalle mit Samba 3/4<br />

3 Tage 29.01. ­ 31.01.2013<br />

Virtualisierung mit KVM<br />

3 Tage 29.01. ­ 31.01.2013<br />

Monitoring mit Nagios, Munin & Co<br />

Teststudium<br />

ohne Risiko!<br />

5 Tage 28.01. ­ 01.02.2013<br />

Snort IDS/IPS Technology<br />

4 Tage 05.02. ­ 08.02.2013<br />

Hacking Webapplications<br />

4 Tage 12.02. ­ 15.02.2013<br />

<strong>Linux</strong> System Administration / LPIC­1<br />

5 Tage 18.02. ­ 22.02.2013<br />

<strong>Linux</strong> Storage Lösungen<br />

2 Tage 12.03. ­ 13.03.2013<br />

High Availability und Loadbalancing<br />

2 Tage 14.03. ­ 15.03.2013<br />

Apache 2.x Webserver Administration<br />

4 Tage 25.03. ­ 28.03.2013<br />

Freie Distributionswahl:<br />

Opensuse, Fedora, Debian Squeeze,<br />

CentOS oder Ubuntu LTS<br />

Ergonomische Arbeitsplätze<br />

Umfangreiche Schulungsunterlagen mit<br />

Übungen<br />

Am Bahnhof 3­5<br />

48565 Steinfurt<br />

Tel.: 02552 638755<br />

Fax: 02552 638757<br />

Weitere Informationen unter www.os­t.de<br />

Fernstudium<br />

IT-Sicherheit<br />

Aus- und Weiterbildung zur Fachkraft für<br />

IT-Sicherheit. Ein Beruf mit Zukunft. Kostengünstiges<br />

und praxisgerechtes Studium<br />

ohne Vorkenntnisse. Beginn jederzeit.<br />

NEU:PC-Techniker, Netzwerk-Techniker,<br />

<strong>Linux</strong>-Administrator LPI, Webmaster<br />

Teststudium ohne Risiko.<br />

GRATIS-Infomappe<br />

gleich anfordern!<br />

FERNSCHULE WEBER<br />

-seit 1959-<br />

Postfach 21 61<br />

Abt. C25<br />

26192 Großenkneten<br />

Tel. 0 44 87 / 263<br />

Fax 0 44 87 / 264<br />

www.fernschule-weber.de<br />

tl<br />

a<br />

ta<br />

s<br />

•<br />

n<br />

c<br />

i<br />

e<br />

h<br />

g<br />

e<br />

p<br />

rü<br />

Fernstudium<br />

s<br />

s<br />

a<br />

el<br />

g<br />

f<br />

t<br />

n<br />

d<br />

z<br />

u<br />

Seminare/Markt 02/2013<br />

Service<br />

www.linux-magazin.de<br />

103<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

M-Academy_1-9h_Anzeige_LPIC-Mike_v3.indd 1<br />

ür<br />

ACADEMY<br />

Online-Training<br />

Erfolgreicher Einstieg in<br />

WordPress 3<br />

mit Hans-Georg Esser, Chefredakteur Easy<strong>Linux</strong><br />

Ansprechende Webseiten, Blogs und<br />

Shops einfach selber erstellen<br />

❚ Installation in 5 Minuten<br />

❚ Designs ändern<br />

❚ Optimieren für Suchmaschinen<br />

❚ Funktionen erweitern<br />

❚ Benutzerrechte festlegen<br />

❚ Geld verdienen mit Werbung<br />

❚ Besucher analysieren<br />

❚ Sicherheit und Spam-Schutz<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/wordpress<br />

12.10.2012 14:41:16 Uhr<br />

DiD you<br />

know?<br />

UNIX-C-C++ Java<br />

Seminare<br />

in Nürnberg<br />

(oder inhouse)<br />

UNIX/<strong>Linux</strong><br />

UNIX/<strong>Linux</strong>-Aufbau<br />

C, C-Aufbau<br />

C++<br />

OOA/OOD (mit UML)<br />

Java<br />

Perl, XML<br />

weitere Kurse auf Anfrage, Telephonhotline<br />

Dipl.-Ing.<br />

Christoph Stockmayer GmbH<br />

90571 Schwaig/Nbg • Dreihöhenstraße 1<br />

Tel.: 0911/505241 • Fax 0911/5009584<br />

EMail: sto@stockmayer.de<br />

http://www.stockmayer.de<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

-9h_Anzeige_wordpress_v02.indd 1<br />

ACADEMY<br />

Erleichtern Sie sich Ihre<br />

tägliche Arbeit mit (Auszug):<br />

❚ einheitlichen Dokumentenvorlagen<br />

❚ automatischen Formatierungen<br />

❚ generierten Inhaltsverzeichnissen<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

18.04.2011 11:18:15 Uhr<br />

Online-Training<br />

mit Hans-Georg Esser, Chefredakteur Easy<strong>Linux</strong><br />

OpenOffice -<br />

Arbeiten mit Vorlagen<br />

Mit vielen<br />

Praxisbeispielen<br />

WusstEn siE’s?<br />

<strong>Linux</strong>-<strong>Magazin</strong> und <strong>Linux</strong>User haben<br />

ein englisches Schwester magazin!<br />

Am besten, Sie informieren gleich<br />

Ihre <strong>Linux</strong>-Freunde in aller Welt...<br />

©mipan, fotolia<br />

<strong>Linux</strong>-<strong>Magazin</strong><br />

ACADEMY<br />

20%<br />

Treue-Rabatt für<br />

Abonnenten<br />

Online-Training<br />

IT-Sicherheit<br />

Grundlagen<br />

mit Tobias Eggendorfer<br />

Themen:<br />

- physikalische Sicherheit<br />

- logische Sicherheit<br />

• Betriebssystem<br />

• Netzwerk<br />

- Sicherheitskonzepte<br />

- Sicherheitsprüfung<br />

Inklusive Benutzer- und<br />

Rechteverwaltung, Authentifizierung,<br />

ACLs sowie wichtige<br />

Netzwerkprotokolle und mehr!<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/openoffice<br />

www.linux-magazine.com<br />

Informationen und Anmeldung unter:<br />

academy.linux-magazin.de/sicherheit<br />

M_Academy_1-9h_Anzeige_openoffice-Mike.indd 1<br />

12.04.2011 LMI_german_2-9h_black_1906-2012.indd 15:08:54 Uhr<br />

1<br />

20.06.2012 LM-Academy_1-9h_Security-Mike.indd 14:54:43 Uhr<br />

1<br />

12.04.2011 14:00:35 Uhr


Service<br />

www.linux-magazin.de Inserenten 02/2013<br />

104<br />

Inserentenverzeichnis<br />

1&1 Internet AG http://​www.einsundeins.de 10<br />

1blu AG http://​www.1blu.de 35<br />

ADMIN http://​www.admin-magazin.de 73, 81<br />

Android User GY http://​www.android-user.de 101<br />

Deutsche Messe AG http://​www.cebit.de 21<br />

Easy<strong>Linux</strong> http://​www.easylinux.de 102<br />

embedded projects GmbH http://​www.embedded-projects.net 101<br />

Fernschule Weber GmbH http://​www.fernschule-weber.de 103<br />

Ico Innovative Computer GmbH http://​www.ico.de 25<br />

<strong>Linux</strong> <strong>Magazin</strong>e http://www.linux-magazine.com 103<br />

<strong>Linux</strong>-<strong>Magazin</strong> Academy<br />

http://​www.academy.linux-magazin.de<br />

15, 22, 103<br />

<strong>Linux</strong>-<strong>Magazin</strong> Online http://​www.linux-magazin.de 77<br />

<strong>Linux</strong>User http://​www.linuxuser.de 79, 91<br />

Netways GmbH http://​www.netways.de 39<br />

Chemnitzer <strong>Linux</strong>-Tage http://chemnitzer.linux-tage.de 41<br />

Pluspol GmbH http://​www.pluspol.de 57<br />

PlusServer AG http://​www.plusserver.de 54, 68, 86, 98<br />

Schlittermann internet & unix support http://​schlittermann.de 101<br />

Spenneberg Training & Consulting http://​www.spenneberg.com 103<br />

Stockmayer GmbH http://​www.stockmayer.de 103<br />

Strato AG http://​www.strato.de 1, 2, 17<br />

Medialinx AG http://www.medialinx-gruppe.de 59<br />

<strong>Linux</strong> User Spezial http://​www.linux-user.de/​spezial 95<br />

<strong>Linux</strong>-Hotel http://​www.linuxhotel.de 27<br />

<strong>Linux</strong>-<strong>Magazin</strong> http://​www.linux-magazin.de 51, 107<br />

Thomas Krenn AG http://​www.thomas-krenn.com 108<br />

Ubuntu User http://​www.ubuntu-user.de 93<br />

Einem Teil dieser Ausgabe liegen Beilagen der Firma HACKATTACK IT SECURITY<br />

GmbH (http://​www.hackattack.com ) bei. Wir bitten unsere Leser um freundliche<br />

Beachtung.<br />

Veranstaltungen<br />

26.10.2012-09.04.2013<br />

Concurso Univ. de SwL – Desarrollo<br />

National, Spain<br />

http://www.concursosoftwarelibre.org<br />

17.-18.01.2013<br />

Univention Summit 2013<br />

Bremen<br />

http://www.univention.de<br />

28.01.-02.02.2013<br />

<strong>Linux</strong> Conf Au<br />

Canberra, Australien<br />

http://linux.conf.au<br />

29.-30.01.2013<br />

Cloud Expo Europe 2013<br />

Olympia National Hall, London<br />

http://www.cloudexpoeurope.com<br />

02.-03.02.2013<br />

Fosdem<br />

Brüssel<br />

https://fosdem.org/2013/<br />

05.-06.02.2013<br />

M-Days<br />

Frankfurt<br />

http://www.m-days.com<br />

07.-08.02.2013<br />

Apps World North America<br />

San Francisco, CA<br />

http://www.apps-world.net/northamerica<br />

19.-20.02.2013<br />

DFN Workshop Sicherheit in vernetzten Systemen<br />

Hamburg<br />

http://www.dfn-cert.de<br />

22.-24.02.2013<br />

SCaLE 11x<br />

Los Angeles, CA, USA<br />

http://www.socallinuxexpo.org/scale11x/<br />

26.02.-01.03.2013<br />

GUUG FFG 2013<br />

Fachhochschule Frankfurt am Main<br />

60318 Frankfurt am Main, Deutschland<br />

http://www.guug.de/veranstaltungen/ffg2013/<br />

05.-09.03.2013<br />

CeBIT 2013<br />

30521 Hannover, Deutschland<br />

http://www.cebit.org<br />

16.-17.03.2013<br />

Chemnitzer <strong>Linux</strong>-Tage 2013<br />

09126 Chemnitz, Deutschland<br />

http://chemnitzer.linux-tage.de<br />

02.-22.04.2013<br />

Concurso Univ. de SwL – Evaluación<br />

Sevilla, Spain<br />

http://www.concursosoftwarelibre.org<br />

20.04.2013<br />

Grazer <strong>Linux</strong>tage 2013<br />

8020 Graz, Österreich<br />

http://www.linuxtage.at<br />

10.-11.05.2013<br />

Concurso Univ. de SwL – Final<br />

Granada, Spain<br />

http://www.concursosoftwarelibre.org<br />

22.-25.05.2013<br />

<strong>Linux</strong>Tag 2013<br />

Messegelände Berlin, Halle 7<br />

14055 Berlin, Deutschland<br />

http://www.linuxtag.org<br />

13.-19.07.2013<br />

Akademy 2013<br />

Bilbao, Spain<br />

http://akademy2013.kde.org<br />

01.-08.08.2013<br />

Guadec 2013<br />

Brno, Czech Republic<br />

http://guadec.org


Impressum<br />

<strong>Linux</strong>-<strong>Magazin</strong> eine Publikation der <strong>Linux</strong> New Media, einem<br />

Geschäftsbereich der Medialinx AG<br />

Redaktionsanschrift Putzbrunner Str. 71<br />

81739 München<br />

Tel.: 089/993411-0<br />

Fax: 089/993411-99 oder -96<br />

Internet<br />

www.linux-magazin.de<br />

E-Mail<br />

redaktion@linux-magazin.de<br />

Geschäftsleitung<br />

Chefredakteur<br />

stv. Chefredakteure<br />

Redaktionsltg. Online<br />

Brian Osborn (Vorstand), bosborn@medialinx-gruppe.de<br />

Hermann Plank (Vorstand), hplank@medialinx-gruppe.de<br />

Jan Kleinert (V.i.S.d.P.), jkleinert@linux-magazin.de (jk)<br />

Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Print- und Onlineredaktion<br />

Aktuell, Forum, Software,<br />

Programmierung Mathias Huber, mhuber@linux-magazin.de (mhu)<br />

Sysadmin, Know-how Markus Feilner, mfeilner@linux-magazin.de (mfe)<br />

Ständige Mitarbeiter Fred Andresen, Zack Brown, Mela Eckenfels, Heike Jurzik (hej),<br />

Anika Kehrer (ake), Peter Kreußel, Charly Kühnast,<br />

Martin Loschwitz, Michael Schilli, Tim Schürmann,<br />

Mark Vogelsberger, Uwe Vollbracht, Arnold Zimprich (azi)<br />

Schlussredaktion<br />

Grafik<br />

Bildnachweis<br />

DELUG-DVD<br />

Chefredaktionen<br />

International<br />

Produktion<br />

Onlineshop<br />

Abo-Infoseite<br />

Abonnenten-Service<br />

ISSN 1432 – 640 X<br />

Jürgen Manthey<br />

Mike Gajer, Klaus Manuel Rehfeld, Judith Erb (Art Director)<br />

xhoch4, München (Titel-Illustration)<br />

123RF.com, Fotolia.de, Photocase.com, Pixelio.de und andere<br />

Thomas Leichtenstern, tleichtenstern@linux-magazin.de (tle)<br />

<strong>Linux</strong> <strong>Magazin</strong>e International<br />

Joe Casad (jcasad@linux-magazine.com)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Poland<br />

Artur Skura (askura@linux-magazine.pl)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Spain<br />

Paul C. Brown (pbrown@linux-magazine.es)<br />

<strong>Linux</strong> <strong>Magazin</strong>e Brasil<br />

Rafael Peregrino (rperegrino@linuxmagazine.com.br)<br />

Christian Ullrich, cullrich@linux-magazin.de<br />

www.medialinx-shop.de<br />

www.linux-magazin.de/Produkte<br />

Veronika Kramer<br />

abo@linux-magazin.de<br />

Tel.: 07131/27 07 274<br />

Fax: 07131/27 07 78 601<br />

CH-Tel: +41 43 816 16 27<br />

Preise Print Deutschland Österreich Schweiz Ausland EU<br />

No-Media-Ausgabe 4 5,95 4 6,70 Sfr 11,90 (siehe Titel)<br />

DELUG-DVD-Ausgabe 4 8,50 4 9,35 Sfr 17,— (siehe Titel)<br />

Jahres-DVD (Einzelpreis) 4 14,95 4 14,95 Sfr 18,90 4 14,95<br />

Jahres-DVD (zum Abo 1 ) 4 6,70 4 6,70 Sfr 8,50 4 6,70<br />

Mini-Abo (3 Ausgaben) 4 3,— 4 3,— Sfr 4,50 4 3,—<br />

Jahresabo No Media 4 63,20 4 71,50 Sfr 99,96 4 75,40<br />

Jahresabo DELUG-DVD 4 87,90 4 96,90 Sfr 142,80 4 99,90<br />

Preise Digital Deutschland Österreich Schweiz Ausland EU<br />

Heft-PDF Einzelausgabe 4 5,95 4 5,95 Sfr 7,70 4 5,95<br />

DigiSub (12 Ausgaben) 4 63,20 4 63,20 Sfr 78,50 4 63,20<br />

DigiSub (zum Printabo) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

HTML-Archiv (zum Abo 1 ) 4 12,— 4 12,— Sfr 12,— 4 12,—<br />

Preise Kombiabos Deutschland Österreich Schweiz Ausland EU<br />

Mega-Kombi-Abo 2 4 143,40 4 163,90 Sfr 199,90 4 173,90<br />

Profi-Abo 3 4 136,60 4 151,70 Sfr 168,90 4 165,70<br />

1<br />

nur erhältlich in Verbindung mit einem Jahresabo Print oder Digital<br />

2<br />

mit <strong>Linux</strong>User-Abo (DVD) und beiden Jahres-DVDs, inkl. DELUG-Mitgliedschaft (monatl.<br />

DELUG-DVD)<br />

3<br />

mit ADMIN-Abo und beiden Jahres-DVDs<br />

Schüler- und Studentenermäßigung: 20 Prozent gegen Vorlage eines Schülerausweises<br />

oder einer aktuellen Immatrikulationsbescheinigung. Der aktuelle Nachweis ist bei<br />

Verlän gerung neu zu erbringen. Andere Abo-Formen, Ermäßigungen im Ausland etc.<br />

auf Anfrage.<br />

Adressänderungen bitte umgehend mitteilen, da Nachsendeaufträge bei der Post nicht<br />

für Zeitschriften gelten.<br />

Pressemitteilungen<br />

Marketing und Vertrieb<br />

Mediaberatung D, A, CH<br />

presse-info@linux-magazin.de<br />

Petra Jaser, pjaser@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 24<br />

Fax: +49 (0)89 / 99 34 11 – 99<br />

Michael Seiter, mseiter@linux-magazin.de<br />

Tel.: +49 (0)89 / 99 34 11 – 23<br />

Mediaberatung USA Ann Jesse, ajesse@linux-magazine.com<br />

und weitere Länder Tel.: +1 785 841 8834<br />

Darrah Buren, dburen@linux-magazine.com<br />

Tel.:+1 785 856 3082<br />

Pressevertrieb<br />

Druck<br />

MZV Moderner Zeitschriften Vertrieb GmbH & Co. KG<br />

Ohmstraße 1, 85716 Unterschleißheim<br />

Tel.: 089/31906-0, Fax: 089/31906-113<br />

Vogel Druck und Medienservice GmbH, 97204 Höchberg<br />

Der Begriff Unix wird in dieser Schreibweise als generelle Bezeichnung für die Unixähnlichen<br />

Betriebssysteme verschiedener Hersteller benutzt. <strong>Linux</strong> ist eingetragenes<br />

Marken zeichen von Linus Torvalds und wird in unserem Markennamen mit seiner<br />

Erlaubnis verwendet.<br />

Eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung<br />

durch die Redaktion vom Verlag nicht übernommen werden. Mit der Einsendung von<br />

Manus kripten gibt der Verfasser seine Zustimmung zum Abdruck. Für unverlangt<br />

eingesandte Manuskripte kann keine Haftung übernommen werden.<br />

Das Exklusiv- und Verfügungsrecht für angenommene Manuskripte liegt beim Verlag. Es<br />

darf kein Teil des Inhalts ohne ausdrückliche schriftliche Genehmigung des Verlags in<br />

irgendeiner Form vervielfältigt oder verbreitet werden.<br />

Copyright © 1994 – 2013 Medialinx AG<br />

Impressum 02/2013<br />

Service<br />

www.linux-magazin.de<br />

105<br />

Krypto-Info<br />

GnuPG-Schlüssel der <strong>Linux</strong>-<strong>Magazin</strong>-Redaktion:<br />

pub 1024D/44F0F2B3 2000-05-08 Redaktion <strong>Linux</strong>-<strong>Magazin</strong><br />

<br />

Key fingerprint = C60B 1C94 316B 7F38 E8CC E1C1 8EA6 1F22 44F0 F2B3<br />

Public-Key der DFN-PCA:<br />

pub 2048R/7282B245 2007-12-12,<br />

DFN-PGP-PCA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 39 D9 D7 7F 98 A8 F1 1B 26 6B D8 F2 EE 8F BB 5A<br />

PGP-Zertifikat der DFN-User-CA:<br />

pub 2048R/6362BE8B (2007-12-12),<br />

DFN-PGP-User-CA, CERTIFICATION ONLY KEY (DFN-PGP-Policy: 2008-2009)<br />

<br />

Key fingerprint = 30 96 47 77 58 48 22 C5 89 2A 85 19 9A D1 D4 06<br />

Root-Zertifikat der CAcert:<br />

Subject: O=Root CA, OU=http://www.cacert.org, CN=CA Cert Signing Authority/<br />

Email=support@cacert.org<br />

SHA1 Fingerprint=13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33<br />

MD5 Fingerprint=A6:1B:37:5E:39:0D:9C:36:54:EE:BD:20:31:46:1F:6B<br />

GPG-Schlüssel der CAcert:<br />

pub 1024D/​65D0FD58 2003-07-11 [expires: 2033-07-03]<br />

Key fingerprint = A31D 4F81 EF4E BD07 B456 FA04 D2BB 0D01 65D0 FD58<br />

uid CA Cert Signing Authority (Root CA) <br />

Autoren dieser Ausgabe<br />

Konstantin Agouros Virtuos schalten 64<br />

Fred Andresen Namensvetter 74<br />

Bernhard Bablok Bash Bashing 88<br />

Bernhard Bablok Tux liest 78<br />

Ulrich Bantle Zahlen & Trends 12<br />

Zack Brown Zacks Kernel-News 18<br />

Mela Eckenfels Zeitreise 48<br />

Florian Effenberger Terminal 4 60<br />

Rainer Grimm Räumkommando 90<br />

Michael Kromer Sieger! 42<br />

Eva-Katharina Kunst Kern-Technik 82<br />

Charly Kühnast Präzise an Schnittstellen 63<br />

Martin Loschwitz An Katastrophen denken 36<br />

Andreas Möller Tux liest 78<br />

Jürgen Quade Kern-Technik 82<br />

Michael Schilli Bequem zum richtigen Buch 94<br />

Timo Schöler Zeit gewinnen 70<br />

Dr. Udo Seidel Speicher satt 30<br />

Dr. Udo Seidel Verteilte Objekte 24<br />

Uwe Vollbracht Tooltipps 56<br />

Carsten Zerbst Technisch und Agil 20


Service<br />

www.linux-magazin.de <strong>Vorschau</strong> 02/2013 03/2013 02/2013 01/2013<br />

106<br />

<strong>Vorschau</strong><br />

03/2013 Dachzeile<br />

Kolab 3<br />

© olegunarua, 123RF<br />

Dauerbaustelle Distribution<br />

Neue Versionen von <strong>Linux</strong>-Distributionen herausbringen macht<br />

viel Arbeit. Dass Tausende Pakete auch auf Dauer gepflegt werden<br />

wollen, honorieren die wenigsten privaten Anwender. Das<br />

Thema Maintenance, also das stetige Einpflegen von Securitypatches<br />

und Bugfixes, bringt keinen Ruhm, ist für den produktiven<br />

Einsatz jedes Betriebssystems aber zwingend.<br />

Das nächste <strong>Magazin</strong> beurteilt die Qualität der kostspieligen<br />

Kärrnerarbeit großer Distributionen. Dazu analysieren die Tester,<br />

ob und wann die Maintainer auf Patches der weitläufigen<br />

Open-Source-Community reagieren, und betreiben Ursachenforschung.<br />

Außerdem berät die Redaktion Anwender, die ein<br />

<strong>Linux</strong> länger als fünf Jahre in Betrieb halten müssen.<br />

MAGAZIN<br />

Überschrift<br />

Kurz nach dieser <strong>Magazin</strong>ausgabe und siebeneinhalb Jahre nach<br />

Version 2 soll die dritte Version des freien Groupware-Servers<br />

Kolab erscheinen. Ob sich Akonadi, Active Sync, bessere Performance<br />

und das Berücksichtigen von viel mehr Clients nach<br />

so langer Zeit als großer Wurf erweisen, lohnt es zu klären.<br />

Open Attic<br />

<strong>Die</strong> als Debian-Paket ausgelieferte Storage-Software kombiniert<br />

offene Schnittstellen, freien Code und eine Weboberfläche:<br />

Open Attic beherrscht Provisioning, Monitoring, Backups,<br />

blockorientiertes Speichermanagement, Snap shots, Deduplizierung<br />

und das automatische Spiegeln von Daten.<br />

<strong>Die</strong> Stecknadel im Heuhaufen<br />

Ein neuer Begriff für ein altes Problem: Big Data steht für Datenmassen,<br />

die der Mensch nicht überschauen und nur mit astronomischen<br />

Maßstäben quantifizieren kann. Programmierer, die<br />

Informationen aus solchen Textgebirgen herausfiltern müssen,<br />

finden mit Lucene ein Framework zum Indizieren und Suchen.<br />

<strong>Die</strong> Ausgabe 03/2013<br />

erscheint am 7. Februar 2013<br />

Ausgabe 02/2013<br />

erscheint am 17.01.2013<br />

© Zeusmedia, sxc.hu<br />

<strong>Linux</strong> im Netzwerk<br />

Ohne Netzwerk funktioniert heute kaum<br />

noch eine Anwendung sinnvoll. Speicher<br />

gibt es in der Cloud und viele Tools stehen<br />

ebenfalls als Web-App bereit. Aber wehe,<br />

wenn das vermeintliche Tor zum Land der<br />

unendlichen Möglichkeiten zu einem Einfallstor<br />

für Eindringlinge gerät. Damit es<br />

nicht so weit kommt, zeigen wir im kommenden<br />

Schwerpunkt, welche Barrieren vor dem unbemerkten Zugriff<br />

schützen, wie Sie trotzdem einen performanten Zugriff auf Ihre<br />

Daten im Internet erreichen und wie Sie im lokalen Netz jederzeit die<br />

Kontrolle über Traffic und Clients behalten.<br />

Writer2Latex<br />

Mit Latex erstellen Sie Dokumente im perfekten Drucklayout. Das<br />

Problem liegt in den oft kryptischen Befehlen, die bislang den breiten<br />

Einsatz des Satzsystems verhindert haben. Mit Writer2Latex steht ein<br />

Satz Makros bereit, der den Export direkt aus Libre Office erlaubt.<br />

E-Books im Eigenbau<br />

Ob selbst geschriebene Prosa, Handbuch oder Fachliteratur – mit Sigil<br />

bringen Sie Texte unkompliziert in die richtige Form für den Export<br />

als E-Book. Dabei unterstützt Sie die Software bei der Eingabe<br />

wichtiger Metadaten und prüft, ob das Ergebnis den Richtlinien für<br />

die Formate entspricht. Das spart viel Zeit und Nerven, die Sie besser<br />

zum Erstellen der Inhalte nutzen.<br />

Gnome Boxes<br />

Das neue Pferd im Virtualisierungsstall<br />

heißt Gnome Boxes<br />

und kommt mit wenigen Schaltflächen<br />

aus. Ob die aber reichen,<br />

um im Alltag sinnvoll mit dem<br />

Frontend für Libvirt zu arbeiten,<br />

und wie sich die Software im<br />

Vergleich zu anderen Ansätzen<br />

schlägt, das zeigt ein Test in der<br />

kommenden Ausgabe.


Alle Artikel des Jahres<br />

2012 auf einer DVD!<br />

Jahres-dvd<br />

2012<br />

Ubuntu<br />

12.10<br />

Bootmenü mit 8<br />

Ubuntu-Varianten<br />

32+64 Bit<br />

• Zwölf Ausgaben<br />

komplett als HTML<br />

und PDF<br />

• Durchdachte<br />

Navigation, die<br />

mit jedem Brow ser<br />

funktioniert<br />

• Blitzschnelle<br />

Volltextsuche<br />

• Alle Listings<br />

Jetzt gleich bestellen!<br />

www.linux-magazin.de/DVD2012 oder 089 - 99 34 11 - 00


Ein vollwertiger Server,<br />

im Taschenbuchformat!<br />

Green-IT<br />

Stromverbrauch: ca. 6 - 9 Watt<br />

Unauffällig<br />

Klein und absolut geräuschlos<br />

Kein PC<br />

Echte Serverkomponenten 24/7 zertifiziert<br />

Low Energy Server<br />

Bestens geeignet für Anwendungs- und<br />

Softwareentwickler - ebenso als Firewalllösung oder<br />

Router und aufgrund der geringen Größe für den<br />

mobilen Einsatz. Dank des sparsamen Verbrauchs<br />

ist der LES ebenfalls als kleiner Webserver praktisch.<br />

Sparen Sie im Jahr über 100 Euro an<br />

Stromkosten gegenüber einem vergleichbaren<br />

Server auf Atombasis.<br />

Nur bei Thomas<br />

Krenn ab:<br />

€<br />

499,–<br />

www.thomas-krenn.com/les_499<br />

TRY<br />

&<br />

BUY<br />

<strong>Die</strong>sen und andere Thomas Krenn Server<br />

können Sie auch per Try & Buy testen<br />

DE: +49 (0) 8551 9150 - 0<br />

CH: +41 (0) 848207970<br />

AT: +43 (0)732 - 2363 - 0<br />

Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen und Behörden. Druckfehler, Irrtümer und Änderungen in Preis und Ausstattung<br />

vorbehalten. Unsere Versandkosten richten sich nach Gewicht und Versandart - mehr unter: www.thomas-krenn.com/versandkosten.Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!