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 />
Dateisysteme 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 / LPIC1<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 35<br />
48565 Steinfurt<br />
Tel.: 02552 638755<br />
Fax: 02552 638757<br />
Weitere Informationen unter www.ost.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