Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Ceph: Workshop zum<br />
Netzwerk-Dateisystem<br />
<strong>ADMIN</strong><br />
Netzwerk & Security<br />
Windows<br />
Security <strong>Co</strong>mpliance Manager<br />
sichert Windows-Rechner ab<br />
Im Vergleich: Small Business<br />
Server mit Linux-F<strong>und</strong>ament<br />
Recht: Alle Fakten zu<br />
Gebrauchtsoftware<br />
05 2012<br />
Sep – Okt.<br />
<strong>KVM</strong> <strong>und</strong> <strong>Co</strong>.<br />
Bausteine zur Server-Virtualisierung<br />
VM-Images auf Knopfdruck<br />
Management mit oVirt 3.1<br />
Cloud-Speicher im Test<br />
Neues in Hyper-V 3.0<br />
Auf Heft-CD:<br />
ClearOS<br />
<strong>Co</strong>mmunity 6.3.0<br />
Btrfs<br />
Ausführlicher Workshop zum<br />
modernen Linux-Dateisystem<br />
Rex<br />
Zentrales Management<br />
für Server-Systeme<br />
ARP-Hacking<br />
Angriff auf Switches<br />
Netzwerkdiagnose<br />
Zwei Geräte im Test<br />
www.admin-magazin.de<br />
D EUR 9,80<br />
A EUR 10,80 - BeNeLux EUR 11,25<br />
CH sfr 19,60 - E / I EUR 12,75<br />
4 196360 509805 05
globalBusiness:<br />
weltweit mehr<br />
als 4.000 Orte<br />
verfügbar<br />
New York – Berlin zum Ortstarif:<br />
globalBusiness verbindet Sie mit der Welt.<br />
Und so geht’s: Sie erhalten von der outbox AG<br />
eine lokale Rufnummer z.B. aus New York.<br />
Alle Anrufe darauf werden umgehend auf Ihre<br />
Festnetznummer in Berlin – oder auf jedes<br />
andere beliebige Ziel – weitergeleitet. So sind<br />
Sie in Ihrem Büro in Deutschland für internationale<br />
K<strong>und</strong>en zu deren Ortstarif erreichbar.<br />
Bieten Sie Ihren K<strong>und</strong>en <strong>und</strong> Interessenten mit<br />
globalBusiness diese persönliche <strong>und</strong> günstige<br />
Kontaktmöglichkeit <strong>und</strong> sichern Sie sich Ihren<br />
Wettbewerbsvorteil. Alle verfügbaren Länder<br />
<strong>und</strong> Vorwahlen im Web: www.outbox.de/admin<br />
Infos <strong>und</strong> Beratung: 0800 / 66 474 640<br />
www.outbox.de/admin
ist der ruf erst ruiniert<br />
e ditoriA l<br />
Ist der Ruf erst ruiniert<br />
Auch Sprache ist nicht für die Ewigkeit gemacht, ihre Worte <strong>und</strong> Regeln kommen<br />
<strong>und</strong> gehen. Einen Text aus dem Hochmittelalter verstehen wir kaum noch, <strong>und</strong><br />
selbst Luther, keine 500 Jahre tot, würden wir über den M<strong>und</strong> fahren: Die zu seiner<br />
Zeit übliche doppelte Verneinung etwa –„Nu wachse auff dyr hynfurt nymmer mehr<br />
keyn frucht“ – gilt uns heute als Logikfehler, <strong>und</strong> wo er zum Beispiel von „Flecken“<br />
sprach, sagen wir „Dorf“.<br />
Ein anderes Wort, dessen Bedeutung langsam verblasst, ist „Allmende“. Es bezeichnet<br />
ein Gemeingut, früher war damit vor allem Gemeindeland gemeint, eine Wiese,<br />
die von allen genutzt werden konnte oder ein Stück Wald, in dem jeder Dorfbewohner<br />
Holz sammeln durfte. Im Englischen ist das Wort noch lebendiger: <strong>Co</strong>mmons,<br />
das findet sich beispielsweise im Namen der „Creative <strong>Co</strong>mmons“ eines freien, nicht kommerziellen Lizenzpakets.<br />
In dem lebt nicht nur die Bezeichnung weiter, sondern auch die Idee vom Teilen, von Fairness, von Kooperation.<br />
Entsprechende Kampagnen erfahren als Gegenbewegung zu einer zerstörerischen Wirtschaftsweise momentan<br />
sogar auf vielen Gebieten eine Renaissance. Die Open-Source-Bewegung kann man als Teil dieser übergreifenden<br />
Initiativen verstehen.<br />
Allerdings teilt nicht jeder diese Anschauungen. Eine Firma, die den Begriff <strong>Co</strong>mmons völlig aus ihrem Wortschatz<br />
gestrichen zu haben scheint, ist Oracle. Das zumindest lässt der jüngste <strong>Co</strong>up vermuten: Da entfernte man Tests<br />
auf bereinigte Fehler, die von Anfang an zum MySQL-Quellcode gehörten <strong>und</strong> die sicherstellten, dass sich ein einmal<br />
ausgemerzter Fehler nicht wieder einschleichen konnte, aus den zugänglichen Sourcen. So wird die Allgemeinheit<br />
ausgesperrt, Know-how monopolisiert.<br />
Das könnte man vielleicht als bedauerliche Fehlleistung verbuchen, wäre es nicht Strategie. Oracle, durch den<br />
Kauf von Sun zu einigen bedeutenden Open-Source-Projekten gelangt, ist dabei, alle an die Wand zu fahren. Erst<br />
verweigert die Firma die Kommunikation mit den Open-Solaris-Entwicklern, dann zwingt sie die Open-Office-Gemeinde<br />
in einen Fork, indem sie die Bürosuite demonstrativ ignoriert, jetzt sabotiert sie die MySQL-<strong>Co</strong>mmunity.<br />
Doch diese Politik hat ihren Preis. Im Frühjahr 2010 verabschiedete sich der ehemalige Chief Open Source Officer<br />
Simon Phipps von Oracle. Bereits zuvor war der Maintainer des Linux Block Layer Jens Axboe gegangen. Im April<br />
2010 ist der Java-Urvater James Gosling der Nächste, der Oracle den Rücken kehrt. Danach kündigen der DTrace-<br />
Erfinder Bryan Cantrill <strong>und</strong> der MySQL-Manager Kaj Arnö. Im Herbst verlässt der ZFS-Architekt Jeff Bonwick die<br />
Firma, dem bald darauf Oracle’s VP für Open Storage, Mike Shapiro, folgt. In diesem Sommer hielt es schließlich<br />
auch der Btrfs-Chefentwickler Chris Mason nicht länger aus. Eine Abstimmung mit den Füßen.<br />
Kann Oracle jetzt ungeniert leben? Das wird sich zeigen …<br />
@ leserbriefe@admin-magazin.de<br />
www.facebook.com/adminmagazin www.twitter.com/admagz<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
3
s e RVice<br />
<strong>ADMIN</strong><br />
Netzwerk & Security<br />
inhalt<br />
05/2012<br />
in diesem Heft-schwerpunkt:<br />
bausteine zur server-Virtualisierung<br />
(ab s. 30)<br />
Bastelst<strong>und</strong>e<br />
boxgrinder <strong>und</strong> Vmbuilder<br />
helfen Administra-<br />
44Virtuelle<br />
toren, virtuelle maschinen zu bauen.<br />
Login<br />
netzwerk<br />
schwerpunkt: Virtualisierung<br />
8 Vorgelesen<br />
bücher zu sQL-Optimierung <strong>und</strong><br />
Freebsd 9<br />
10 Branchen-News<br />
neues von Firmen <strong>und</strong> Projekten.<br />
16 Gebraucht gekauft<br />
was eine neue entscheidung des eugH<br />
für den Lizenzhandel bedeutet.<br />
22 LAN unter der Lupe<br />
werkzeuge für die Fehlersuche:<br />
zwei netzwerktester im Vergleich.<br />
26 Auf Schatzsuche<br />
wie eine sinnvolle automatische<br />
diensteerkennung gelingt.<br />
34 Wirtshaus<br />
die basis von Red Hats management-<br />
Tool als freie software: Verwaltung virtueller<br />
infrastrukturen mit oVirt 3.1.<br />
20 Admin-Story<br />
se Linux in der Praxis.<br />
Service<br />
3 Editorial<br />
4 Inhalt<br />
6 Heft-CD<br />
114 Impressum <strong>und</strong> <strong>Vorschau</strong><br />
schwerpunkt: Virtualisierung<br />
30 Revierkampf<br />
was Version 3.0 von microsofts Virtualisierungslösung<br />
Hyper-V bringt.<br />
40 Wolkenk<strong>und</strong>e<br />
drei private speicherclouds verglichen.<br />
was ist besser: mieten oder selbst<br />
hosten?<br />
44 Virtuelle Bastelst<strong>und</strong>e<br />
erzeugung von KVm-maschinen mit boxgrinder<br />
<strong>und</strong> Vmbuilder automatisieren.<br />
4 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
52<br />
Ausgeschnüffelt<br />
netzwerkverbindungen<br />
trotz einsatz<br />
von switches abgehört.<br />
inhalt<br />
s e RVice<br />
die neue Version<br />
94Aufpoliert<br />
von Active directory<br />
in windows server 2012.<br />
in Butter<br />
ein btrfs-<br />
80Alles<br />
workshop für<br />
die tägliche Praxis.<br />
Know-how<br />
62 Storage-Magie<br />
ein blick hinter die Kulissen des<br />
RAdOs-Objectstore.<br />
68 König der Rechner<br />
Plattformübergreifendes<br />
Konfigurationsmanagement<br />
mit<br />
Rex <strong>und</strong> Perl.<br />
80 Alles in Butter<br />
wie man die neuen Features des kommenden<br />
Linux-Filesystems in der Praxis<br />
richtig nutzt.<br />
74 Projekt-Jonglage<br />
wie Kanban hilft, iT-Prozesse zu verbessern.<br />
security<br />
52 Ausgeschnüffelt<br />
man-in-the-middle-Attacken trotz netzwerk-switches<br />
mit ARP cache Poisoning.<br />
Test<br />
94 Aufpoliert<br />
einfacher zu virtualisieren: Active directory<br />
in windows 2012.<br />
Programmieren<br />
108 Abgezapft<br />
c-Programme, skripte <strong>und</strong> Kernelmodule<br />
debuggen <strong>und</strong> tracen.<br />
56 Gefixt <strong>und</strong> zugenäht<br />
microsoft<br />
security<br />
compliance<br />
manager<br />
härtet serversysteme<br />
ab.<br />
100 Business in a Box<br />
small business server mit Linux:<br />
clearOs, zentyal <strong>und</strong> Resara.<br />
112 In der Pfeife<br />
das subprocess-modul<br />
ruft unix-<br />
Tools in<br />
Pythonscripts<br />
auf.<br />
Mehr Infos auf Seite 6<br />
ClearOS 6.3<br />
n Small Business Server mit Linux-F<strong>und</strong>ament<br />
n Druck-, Datei- <strong>und</strong> Maildienste, Antispam, Antivirus,<br />
Firewall <strong>und</strong> vieles mehr<br />
www.A dmin-mAgA zin.de Admin AusgA be 05-2012 5
serviC e<br />
Heft-Cd<br />
Heft-CD<br />
Auf dem beiliegenden Datenträger finden Sie die neueste<br />
<strong>Co</strong>mmunity-Version 6.3.0 von ClearOS [1], einer Linux-<br />
Distribution für den Einsatz als Small Business Server.<br />
◗ Datei-, Druck- <strong>und</strong> Maildienste, Antispam, Antivirus,<br />
Firewall u.v.m.<br />
◗ Grafisches Administrations-Frontend.<br />
◗ Zugang zu Clearcenter Marketplace [2] mit Active-Directory-<strong>Co</strong>nnector<br />
<strong>und</strong> Kaspersky-Antimalware.<br />
◗ Mehr Informationen im Artikel ab S. 100.<br />
Legen Sie einfach die CD in das Laufwerk ein, <strong>und</strong> starten<br />
Sie den Rechner. Möglicherweise müssen Sie noch im<br />
BIOS die richtige Boot-Reihenfolge einstellen, damit das<br />
Laufwerk vor der Festplatte an die Reihe kommt. n<br />
info<br />
CD KAPUTT?<br />
Wir schicken Ihnen kostenlos eine<br />
Ersatz-CD zu, E-Mail genügt:<br />
info@admin-magazin.de<br />
[1] ClearOS:<br />
[http://www.clearfo<strong>und</strong>ation.com/Software/overview.html]<br />
[2] Clearcenter Marketplace:<br />
[http://www.clearcenter.com/Software/clearos-marketplace.html]<br />
6 AusgA be 05-2012<br />
Admin www.A dmin-mAgA zin.de
WAGEN SIE DEN SPRUNG<br />
IN DIE SERVERWELT<br />
„Mit einem virtuellen Server von Host Europe<br />
werden Sie zum Administrator: hosten Sie<br />
Ihre Website endlich ohne Einschränkungen.“<br />
Michael Mertens,<br />
Head of Product Management<br />
Cloud Hosting<br />
DER EIGENE SERVER ZUM EINSTIEGSPREIS<br />
Host Europe macht es möglich: Hosten Sie Ihre Website auf<br />
unserem neuen Einstiegsserver zum besonders günstigen Preis.<br />
Lassen Sie sich von unserem Team beraten, wie Sie noch heute<br />
wechseln können.<br />
24 h Beratung <strong>und</strong> Support: 0800 467 8387<br />
Der Einstiegsserver<br />
Virtual Server L 5.0<br />
€6, 49 mtl.*<br />
In den ersten 6 Monaten,<br />
danach € 12, 99 mtl.*<br />
Keine Setupgebühr<br />
MEHR<br />
FLEXIBILITÄT<br />
Voller Rootzugriff <strong>und</strong> frei<br />
wählbare Einstellungen<br />
von Datenbanken, Domains,<br />
E-Mail-Konten etc.<br />
ERST TESTEN,<br />
DANN ZAHLEN<br />
Innerhalb der ersten 30 Tage<br />
können Sie das Produkt<br />
jederzeit zurückgeben. Keine<br />
Kosten – kein Risiko.<br />
EINFACHE<br />
BEDIENUNG<br />
Komfortable Serververwaltung<br />
über Admin-Panel mit<br />
intuitiver Benutzeroberfläche.<br />
* Der Aktionspreis von € 6,49 für die ersten 6 Monate gilt ausschließlich für Virtual Server L 5.0,<br />
die bis zum 30.09.2012 neu bestellt werden. Anschließend beträgt die monatliche Gebühr für<br />
Virtual Server L 5.0 € 12,99. Keine Mindestvertragslaufzeit. Keine Setupgebühr. Kündigungsfrist:<br />
4 Wochen zum Monatsende. Alle angegebenen Preise inkl. MwSt.<br />
www.hosteurope.de
LO gin<br />
bücher<br />
Bücher über FreeBSD <strong>und</strong> SQL-Optimierung<br />
Vorgelesen<br />
eines unserer Rezensionsexemplare beschäftigt sich mit der bsd-welt, das<br />
andere mit der Performance von sQL-datenbanken. Oliver Frommel, Jens-Christoph brendel<br />
Bücher über BSD-Unix-Systeme sind auf<br />
dem von Linux dominierten Markt rar.<br />
Umso löblicher ist es, dass der dpunkt-<br />
Verlag nun ein neues Buch herausgebracht<br />
hat, das sich dem Betrieb von<br />
FreeBSD auf Serversystemen widmet.<br />
Nach einer kurzen Übersicht über die<br />
spezifischen Vorteile, die FreeBSD bietet,<br />
widmet sich der Autor der Installation<br />
<strong>und</strong> der Bedienung des Systems, gefolgt<br />
von einem ausführlichen Kapitel zur Software-Installation<br />
über die Ports.<br />
Der Rest des Buches widmet sich den<br />
Diensten, die Administratoren über eine<br />
FreeBSD-Installation anbieten können:<br />
Datenbanken, bei denen neben MySQL<br />
auch die modernen Forks wie MariaDB<br />
<strong>und</strong> Drizzel behandelt werden, PostgreSQL<br />
aber fehlt. Für den Einsatz als<br />
Webserver konzentriert sich das Buch auf<br />
die schnelle Apache-Alternative Nginx<br />
<strong>und</strong> demonstriert, wie man das performante<br />
PHP-FPM-Modul dabei verwendet.<br />
Auch die Konfiguration als Mailserver<br />
mit Postfix, Dovecot sowie die Spam-<br />
Bekämpfung per Dspam <strong>und</strong> Greylisting<br />
wird ausführlich behandelt.<br />
Eigene Kapitel widmen sich Security-Themen<br />
wie den FreeBSD-spezifischen Jails,<br />
die mit leichgewichtiger Virtualisierung<br />
Subsysteme voneinander isolieren. Auch<br />
der leistungsfähigen pf-Firewall ist ein<br />
eigenes Kapitel gewidmet. Etwas weniger<br />
Raum räumt das Buch Randthemen wie<br />
dem Aufsetzen eines Subversion-Servers,<br />
VPNs, Monitoring <strong>und</strong> Load Balancing<br />
ein. Auch Storage mit RAIDs wird nur am<br />
Rande behandelt.<br />
Das größte Manko für viele Leser ist vermutlich<br />
das vollständige Fehlen des ZFS-<br />
Dateisystems, das unter FreeBSD im Gegensatz<br />
zu Linux ohne Einschränkungen<br />
verfügbar ist. Dem könnte man allerdings<br />
ein eigenes Buch widmen. Abgesehen<br />
davon ist das Buch ein Muss für jeden<br />
FreeBSD-Administrator <strong>und</strong> auch für Linux-Fans<br />
geeignet, die mal einen Blick in<br />
die BSD-Welt werfen möchten.<br />
SQL Performance<br />
Das Buch heißt „SQL Performance“, aber<br />
von der Rechenleistung eines Datenbankservers<br />
ist davon nicht oder nur am<br />
Rande die Rede, auch die I/ O-Leistung<br />
des verwendeten Storage spielt zum Beispiel<br />
keine Rolle in den Erörterungen.<br />
Stattdessen geht es auf knapp 200 Seiten<br />
nur um eins: das richtige Indizieren.<br />
Die Beschränkung auf dieses Kernthema<br />
der Datenbankperformance wirkt sich<br />
durchaus positiv aus: Der Autor verliert<br />
sich nicht in Allgemeinplätzen, sondern<br />
behandelt konzentriert <strong>und</strong> tiefgehend<br />
die Index-Problematik, die er aus mehreren<br />
Perspektiven f<strong>und</strong>iert <strong>und</strong> sachk<strong>und</strong>ig<br />
beleuchtet. Die Erklärungen sind gut<br />
verständlich <strong>und</strong> nachvollziehbar, immer<br />
wieder werden die Erkenntnisse mit konkreten<br />
Ausführungsplänen verschiedener<br />
SQL-Datenbanken belegt, bei deren Interpretation<br />
zusätzlich ein eigener Anhang<br />
hilft. So erhält der Leser das Rüstzeug,<br />
um eigene Anwendungen zu analysieren<br />
<strong>und</strong> das Gelernte zu übertragen.<br />
In insgesamt acht Kapiteln wird deutlich,<br />
dass es nicht reicht, irgendwelche Indizes<br />
anzulegen. Selbst wenn sie von der Datenbank<br />
verwendet werden, können sie<br />
unter Umständen mehr schaden als nützen.<br />
Nur ein wohl überlegt konstruierter<br />
Index sorgt für optimale Performance. Im<br />
Einzelnen werden unter anderem parametrisierte<br />
Abfragen, funktionsbasierte<br />
Indizes, Join-Operationen, Daten-Cluster<br />
oder das Zusammenspiel von Sort- <strong>und</strong><br />
Group-by-Operationen mit Indizes erläutert.<br />
Daneben geht es um Indizes <strong>und</strong><br />
Skalierungsprobleme oder den Einfluss<br />
von Indizes auf Schreiboperationen.<br />
Allerdings offenbart sich an diesem Punkt<br />
auch die wohl unvermeidliche Kehrseite<br />
der Medaille: Das Buch ist für jeden interessant,<br />
der mit Datenbanken zu tun hat,<br />
aber wirklich profitieren werden wohl nur<br />
Entwickler. Denn nur sie verfügen über<br />
die Detailkenntnisse, mit denen sich der<br />
Index auf die in der Applikation tatsächlich<br />
verwendeten Abfragen zuschneiden<br />
lässt. Wer solche Anfragen nicht selbst<br />
programmiert, kann sie erstens höchstens<br />
durch aufwendiges Reverse Engineering<br />
nachvollziehen <strong>und</strong> hat zweitens keine<br />
Möglichkeit, sie zu beeinflussen.<br />
Für alle Anwendungsentwickler, die<br />
SQL-Abfragen programmieren <strong>und</strong> Indizes<br />
dazu passend konfigurieren wollen,<br />
sollte der schmale Band, den man etwa<br />
via Amazon beziehen kann, eine Pflichtlektüre<br />
sein.<br />
n<br />
Freebsd-server<br />
Benedikt Nießen<br />
Der eigene Server mit FreeBSD 9<br />
279 Seiten<br />
dpunkt-Verlag<br />
36,90 Euro<br />
ISBN: 3-89864-814-1<br />
sQL Performance<br />
Markus Winand<br />
SQL Performance Explained<br />
204 Seiten<br />
Winand<br />
29,95 Euro<br />
ISBN: 3-95030-781-8<br />
8 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Das feiern wir:<br />
10 Jahre Thomas Krenn - 10 Jahre perfekt beraten!<br />
5000m²<br />
Pünktlich zu unserem 10-jährigen Bestehen<br />
verdoppeln wir die Firmenzentrale – von 2500<br />
Quadratmeter auf ganze 5000 Quadratmeter.<br />
Der neue Thomas Krenn Shop:<br />
www.thomas-krenn.com<br />
DE: +49 (0) 8551 9150-0<br />
CH: +41 (0) 848207970<br />
AT: +43 (0) 732 - 2363<br />
Verkauf erfolgt ausschließlich an Gewerbetreibende, Firmen, Freiberufler (Ärzte, Rechtsanwälte etc.), staatliche Institutionen <strong>und</strong> Behörden. Druckfehler, Irrtümer <strong>und</strong> Änderungen in Preis <strong>und</strong> Ausstattung vorbehalten.<br />
Unsere Versandkosten richten sich nach Gewicht <strong>und</strong> Versandart. Genaue Preisangaben finden Sie unter: www.thomas-krenn.com/versandkosten. Thomas-Krenn.AG, Speltenbach-Steinäcker 1, D-94078 Freyung
Login<br />
news<br />
+++ neueste Nachrichten immer auf http://www.admin-magazin.de +++++ neueste Nachrichte<br />
Neue Software <strong>und</strong> Produkte<br />
Branchen-News<br />
Univention setzt künftig auf Ubuntu-Clients<br />
Mit der im Juli erschienenen Version<br />
3.0.2 seines Univention <strong>Co</strong>rporate Servers<br />
kann der Bremer Linux-Distributor<br />
Ubuntu-Systeme als Clients verwalten.<br />
Dafür streicht die Firma das auf der eigenen<br />
Debian-Variante basierende Produkt<br />
Univention <strong>Co</strong>rporate Desktop. Im<br />
Gegensatz zu Ubuntu habe der eigene<br />
Univention <strong>Co</strong>rporate Server nicht die<br />
erwünschte Verbreitung gef<strong>und</strong>en, teilt<br />
das Bremer Softwarehaus mit. Man wolle<br />
die Entwicklung eines eigenen Desktop-<br />
Systems einstellen <strong>und</strong> sich auf die am<br />
Markt verbreiteten Linux-Distributionen<br />
konzentrieren.<br />
Mit dem neuen Univention <strong>Co</strong>rporate Server<br />
stehe somit erstmals eine „umfassende<br />
Open-Source-Lösung für das Domänenmanagement<br />
von Ubuntu-Clients zur<br />
Verfügung“. Auch die Univention Thin<br />
Client Services werden durch Univention<br />
<strong>Co</strong>rporate Clients (UCC) auf der Basis<br />
von Ubuntu ersetzt. Das verbessere die<br />
Hardwarekompatibilität, Anpassbarkeit<br />
<strong>und</strong> Verwaltbarkeit. Der UCC soll im vierten<br />
Quartal 2012 auf den Markt kommen.<br />
Univention-Geschäftsführer Peter Ganten<br />
vergleicht die Unterstützung für Ubuntu<br />
mit der für proprietäre Clients: „Wie bei<br />
Microsoft Windows als dem am meisten<br />
mit UCS verwendeten Client-Betriebssystem<br />
(…) werden wir nun auch Ubuntu<br />
als Linux-Alternative unterstützen.“ Das<br />
betrifft laut Ganten sowohl native als<br />
auch virtuelle Clients. Die eingesparten<br />
Ressourcen wollen die Bremer in die Anbindung<br />
von Tablets <strong>und</strong> Smartphones<br />
investieren.<br />
Für die letzte Version des <strong>Co</strong>rporate<br />
Desktops erhalten K<strong>und</strong>en wie versprochen<br />
Support bis Ende 2013. Die Wiki-<br />
Seite [http://wiki.univention.de/index.php?<br />
title=Ubuntu] informiert über die technischen<br />
Details der Integration von Ubuntu<br />
12.04 in eine Univention-Domäne.<br />
Neue Netzwerkspeicher von Buffalo<br />
Nach den Zwei- <strong>und</strong> Vier-Bay-Modellen<br />
der Terastation von Buffalo kommen nun<br />
auch die Sechs- <strong>und</strong> Acht-Bay-Modelle<br />
auf den deutschen Markt. Die neuen Modelle<br />
– Terastation 5600 <strong>und</strong> 5800 – sind<br />
mit dem Intel Atom Dual-<strong>Co</strong>re-Prozessor<br />
D2700 <strong>und</strong> 64Bit-Architektur sowie 2<br />
GByte DDR3 RAM ausgestattet <strong>und</strong> werden<br />
1390 beziehungsweise 1740 Euro<br />
kosten. Sie eignen sich als NAS- oder<br />
iSCSI-Appliance für den Businessbereich<br />
<strong>und</strong> können via Web-Access sowie Apps<br />
Der NAS-Speicher Buffalo 5800 kann acht Festplatten<br />
aufnehmen.<br />
für Android, iOS <strong>und</strong> Windows Phone 7<br />
auch von Mobilgeräten erreicht werden.<br />
An die Netzwerkspeicher lassen sich über<br />
eine USB-3.0-Schnittstelle sowohl weitere<br />
externe Platten anschließen als auch<br />
Amazon-S3-Ressourcen anbinden.<br />
Über die Management Software „Buffalo<br />
Surveillance Server Client B<strong>und</strong>le“ gelingt<br />
die Einbindung von Sicherheits- oder IP-<br />
Kameras, die das RTSP-Protokoll nutzen<br />
<strong>und</strong> ONVIF-konform sind. Die Software<br />
bietet Kamera- <strong>und</strong> Speicherplatzverwaltung<br />
sowie eine speicherübergreifende<br />
Suche <strong>und</strong> unterstützt über<br />
1400 Kameramodelle von mehr als<br />
180 Kameraherstellern. Sie verwaltet<br />
alle Daten im Netz, während sie<br />
diese auch bei gleichzeitiger Aufnahme,<br />
beispielsweise über Metadaten,<br />
durchsuch- <strong>und</strong> abspielbar<br />
macht. Durch Kapazitäten von 6<br />
bis 32 TByte sind mit den neuen<br />
TeraStation 5000er-Modellen deutlich<br />
längere Zyklen vor dem Überschreiben<br />
alter Aufnahmen möglich.<br />
Im B<strong>und</strong>le enthalten ist eine freie<br />
Kameralizenz, weitere Lizenzen<br />
können hinzugekauft werden.<br />
ZFS für Linux aktualisiert<br />
Mit dem Release-Kandidaten 10 der Version<br />
0.6.0 nähern sich die Entwickler der<br />
kernelbasierten ZFS-Implementierung für<br />
Linux einer stabilen Version. Der <strong>Co</strong>de<br />
ist nun kompatibel zur Kernel-Version<br />
3.5. Neben einer Reihe kleiner Verbesserungen<br />
haben die Entwickler auch damit<br />
begonnen, das nötige Patchen des Kernel-<br />
Sourcecode zu automatisieren. Das ist<br />
nötig, weil aufgr<strong>und</strong> der inkompatiblen<br />
freien Software-Lizenzen von ZFS (CDDL)<br />
<strong>und</strong> dem Linux-Kernel (GPL) beide nicht<br />
im selben Quellcode-Baum ausgeliefert<br />
werden können. Deshalb muss der Anwender<br />
selbst den Quellcode der beiden<br />
Komponenten herunterladen, den Kernel<br />
mit dem ZFS-<strong>Co</strong>de patchen <strong>und</strong> dann<br />
selbst compilieren.<br />
Eine alternative ZFS-Implementierung für<br />
Linux gibt es unter der Adresse [http://<br />
zfs-fuse.net/]. Sie umgeht das Lizenz-<br />
Problem, indem sie das von Solaris<br />
stammende Dateisystem im Userspace<br />
mithilfe von FUSE (Filesystem in Userspace)<br />
implementiert. Die kernelbasierte<br />
ZFS-Implementierung ist aber schneller.<br />
Der Quellcode zu ZFS on Linux ist unter<br />
[http://zfsonlinux.org/] zu finden.<br />
10 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
n immer auf http://www.admin-magazin.de<br />
Bacula-Konferenz lädt ein<br />
Die nunmehr vierte Konferenz, die von Red Hat, Bacula<br />
Systems, Univention <strong>und</strong> Linux New Media gesponsort wird,<br />
wendet sich wieder der bekannten Open-Source-Backup- Lösung<br />
der Enterprise-Klasse zu <strong>und</strong> bietet ein interessantes Vortragsprogramm.<br />
So wird es um Maintenance <strong>und</strong> Deployment von<br />
Bacula mithilfe von Puppet gehen, um die automatisierte<br />
Einbindung von Windows Systemen in Bacula mithilfe von<br />
OPSI, um LANfree Backups mit Bacula oder um die Sicherung<br />
virtueller Maschinen unter <strong>KVM</strong>. Interessierte können sich<br />
unter [http://www.bacula-konferenz.de/anmeldung] für die Konferenz<br />
anmelden.<br />
TM<br />
MobyDick<br />
Die Zukunft der Telefonie<br />
Mit der MobyDick Telefonanlage haben Sie alle Fäden selbst in<br />
der Hand. Außerdem verbinden Sie die Features modernster<br />
Telefonie mit den Vorteilen von Voice over IP.<br />
Die Kommunikationslösung für Ihr<br />
Unternehmen<br />
FreeNAS 8.3 Beta verbessert ZFS<br />
Wie das FreeNAS-Entwicklerteam bekannt gibt, ist eine Betaversion<br />
des kommenden Release 8.3.0 verfügbar. Das Basissystem<br />
wurde damit auf FreeBSD 8.3-RELEASE-p7 aktualisiert. Somit<br />
verwendet FreeNAS wie FreeBSD in der aktuellen Beta nun die<br />
ZFS-Version 28. Da das aktuelle Release FreeNAS 8.2 noch ZFS<br />
15 verwendet, bedeutet dieser Sprung, dass das Dateisystem in<br />
der Beta-Version um eine Reihe von Features bereichert wurde,<br />
darunter Deplizierung (eingeführt mit Version 21) <strong>und</strong> Triple<br />
Parity RAID-Z (neu in Version 17).<br />
Bei RAID-Z handelt es sich streng genommen nicht um eine<br />
RAID-Technologie im klassischen Sinn, sondern um eine Methode<br />
der red<strong>und</strong>anten Datenspeicherung auf Dateisystemebene<br />
in ZFS. Ein RAID-Z mit Triple Parity erhöht gegenüber dem einfachen<br />
<strong>und</strong> doppelten Parity-RAID-Z noch einmal die Datensicherheit<br />
<strong>und</strong> kann den Ausfall von drei Disks ohne Datenverlust<br />
verkraften. Zur Speicherung der Parity-Daten sind allerdings<br />
entsprechend auch drei Platten nötig.<br />
Leitfaden zur Desktop-Virtualisierung<br />
Der Branchenverband BITKOM hat einen neuen Leitfaden<br />
zur Desktop-Virtualisierung aufgelegt. Er sieht darin Desktop-<br />
Virtualisierung <strong>und</strong> Thin Clients als ideale Ergänzung zum<br />
Cloud <strong>Co</strong>mputing. „Desktop aus der Cloud“ beziehungsweise<br />
„Desktop-as-a-Service“ können laut BITKOM dank optimierter<br />
Managementprozesse, Flexibilität <strong>und</strong> Ressourcenschonung zugleich<br />
zu Kosteneinsparungen beitragen.<br />
Bei der Desktop-Virtualisierung wird nicht nur eine einzelne<br />
Anwendung auf dem Server ausgeführt, sondern das gesamte<br />
Betriebssystem des <strong>Co</strong>mputers ausgelagert. Der Anwender kann<br />
auf alle seine Programme, sämtliche Daten <strong>und</strong> die persönlichen<br />
Einstellungen über das Netzwerk zugreifen. Die individuelle Arbeitsumgebung<br />
sieht so auf dem Thin Client oder Tablet gleich<br />
aus. Die Betriebskosten sinken, weil Konfiguration, Wartung<br />
oder das Erstellen von Sicherheitskopien an zentraler Stelle<br />
erfolgen. Zugleich erhöht sich die Sicherheit, da zum Beispiel<br />
auf mobilen Geräten wie Notebooks oder Tablets keine Daten<br />
gespeichert werden, die bei Verlust in falsche Hände geraten<br />
könnten.<br />
www.A dmin-mAgA zin.de<br />
Unified <strong>Co</strong>mmunications:<br />
Telefon<br />
Video<br />
VoiceMail<br />
Präsenzmanager<br />
Instantmessaging<br />
FaxEmail Gateway<br />
PrintFax Gateway<br />
<strong>Co</strong>nferencing<br />
Mehr Informationen finden Sie unter:<br />
http://www.pascom.net<br />
http://community.pascom.net<br />
NEU<br />
Kostenlose<br />
<strong>Co</strong>mmunity<br />
Version<br />
erhältlich<br />
pascom<br />
Netzwerktechnik GmbH & <strong>Co</strong>. KG<br />
Berger Straße 42<br />
94469 Deggendorf<br />
Tel.: +49 991 27006 - 0<br />
AusgA be 05-2012<br />
11
Login<br />
news<br />
+++ neueste Nachrichten immer auf http://www.admin-magazin.de +++++ neueste Nachrichte<br />
Neue Version 1.2.6 des Samba Traffic Analyzer<br />
Mit Version 1.2.6 ist nach einem Jahr<br />
Entwicklungszeit ein neues Release des<br />
Samba Traffic Analyzer (SMBTA) erschienen.<br />
Von Gr<strong>und</strong> auf haben die Entwickler<br />
um Holger Hetterich die Infrastruktur<br />
zur Echtzeitanalyse<br />
überarbeitet. Davon macht<br />
eine Demo-Anwendung Gebrauch,<br />
die in Echtzeit die Ergebnisse<br />
der Traffic-Analyse<br />
auf der Kommandozeile ausgibt.<br />
Ein zweiter Monitoring-<br />
Client ist in Qt geschrieben<br />
<strong>und</strong> zeigt die gemessenen<br />
Werte grafisch an.<br />
Zur genaueren Analyse sammelt<br />
der SMBTA die mitgeschnittenen<br />
Daten in einer<br />
Datenbank. Hierbei vermerkt<br />
die neue Version nun mehr Details wie<br />
Benutzernamen, Dateinamen <strong>und</strong> IP-Adressen.<br />
Testweise ist hierbei jetzt auch die<br />
Speicherung in einer Sqlite3-Datenbank<br />
Der Samba Traffic Analyzer hilft Performance-Engpässe in Samba-Netzen<br />
aufspüren. (Quelle: SMBTA-Wiki)<br />
möglich. Dafür suchen die Entwickler<br />
noch Tester.<br />
Der Samba Traffic Analyzer sucht künftig<br />
selbst online nach einer neueren Software-Version.<br />
Administratoren<br />
können ein Feature nutzen,<br />
das die Konfigurationsdaten<br />
anderer SMBTA-Instanzen<br />
ausliest. Auch das Webinterface<br />
WebSMBTA bietet einige<br />
Neuerungen, etwa das User-<br />
Management <strong>und</strong> die Suche in<br />
den gespeicherten Protokolldaten<br />
betreffend. Die Dokumentation<br />
wird nicht länger<br />
mit der Software ausgeliefert,<br />
sondern künftig im SMBTA-<br />
Wiki [https://wiki.samba.org/<br />
index.php/SMBTA] gepflegt.<br />
FreeBSD nun mit Hyper-V virtualisierbar<br />
Microsofts Hypervisor Hyper-V ist nun in der Lage, auch Gäste<br />
mit FreeBSD-8.2.-Betriebssystem aufzunehmen. Das Ganze<br />
funktioniert zunächst in einer Beta-Version, die von [http://<br />
freebsdonhyper-v.github.com] heruntergeladen werden kann. Die<br />
nötigen FreeBSD-Treiber, die der Download enthält, sollten<br />
vorerst nur für die Evaluierung verwendet werden. Es ist aber<br />
geplant, in Kürze ISO-Images der letzten FreeBSD-Versionen<br />
mit vorinstallierten Treibern zu veröffentlichen. Außerdem soll<br />
künftig auch FreeBSD 9.0 von Windows Server 2012 unterstützt<br />
werden. Das Projekt geht auf eine Vereinbarung zur Zusammenarbeit<br />
zwischen Microsoft, Insight Global, Citrix <strong>und</strong> NetApp<br />
zurück, die auf der BSD<strong>Co</strong>n 2012 im Mai vorgestellt wurde.<br />
Packetfence 3.5.0 überarbeitet<br />
Packetfence, eine Open-Source-Lösung für Network Access<br />
<strong>Co</strong>ntrol (NAC), ist in Version 3.5.0 erhältlich. Das neue Packetfence-Release<br />
arbeitet mit dem Switch Cisco Catalyst 3560G<br />
zusammen <strong>und</strong> verbessert die Unterstützung für die Netgear-<br />
Reihe GS110 sowie Cisco Aironet. Ebenfalls neu ist der Support<br />
für das Intrusion Detection System (IDS) Suricata sowie ein<br />
Remediation-Modul für Sourcefire 3D. Zudem lässt sich nun<br />
jeder SSID ein eigenes Captive Portal zuordnen, an dem sich<br />
die Anwender für den Netzwerkzugriff anmelden müssen. Ein<br />
neuer webbasierter Installer erleichtert Installation <strong>und</strong> Konfiguration<br />
von Packetfence.<br />
Packetfence ist unter GPLv2 lizenziert. Die neue Version 3.5.0<br />
steht im Quelltext sowie in Paketen für Red Hat Enterprise<br />
Linux, Centos sowie Debian 6.0 zum Download bereit. Der<br />
Hauptsponsor, die kanadische Firma Inverse, bietet kommerziellen<br />
Support an.<br />
HP siegt über Oracle<br />
In einem Rechtstreit vor dem Superior <strong>Co</strong>urt des US-Staates<br />
Kalifornien hat HP jetzt erstritten, dass Oracle weiter HP-Server<br />
mit Itanium-Prozessoren unterstützen muss. Das Gericht urteilte,<br />
Oracle müsse alle Software einschließlich neuer Versionen<br />
<strong>und</strong> Updates, die zum Zeitpunkt des Vertragsschlusses am 20.<br />
September 2010 für die HP-Server der Itanium-Familie verfügbar<br />
war, weiter ohne zusätzliche Kosten auf diese Plattform portieren<br />
<strong>und</strong> dort so lange anbieten, bis HP die Produktion dieser<br />
Server eines Tages einstellt.<br />
HP ist der größte Anbieter von Servern mit diesen Prozessoren.<br />
Oracle hatte die Unterstützung für Itanium-CPUs abgekündigt<br />
<strong>und</strong> argumentiert, Intel wolle diese Produktlinie ohnehin einstellen.<br />
HP berief sich auf vertragliche Vereinbarungen <strong>und</strong><br />
setzte sich damit jetzt durch.<br />
<strong>KVM</strong>-Support für Debian <strong>und</strong> Ubuntu<br />
Fujitsu bietet seit August Support für die Debian/ Ubuntu Fujitsu<br />
Server Edition (FSE) der Firma Bytec. Software-Agenten, die Fujitsu<br />
sonst nur für Suse Enterprise Linux <strong>und</strong> Red Hat Enterprise<br />
Linux sowie VMware bereitstellt, sind somit auch für Debian/<br />
Ubuntu FSE verfügbar. Unterstützt sind derzeit Debian Squeeze<br />
<strong>und</strong> Ubuntu 10.04 LTS, die Unterstützung von Ubuntu 12.04 LTS<br />
soll in den kommenden Wochen folgen.<br />
Künftig werden jährlich zehn neu von Fujitsu produzierte Server-System<br />
durch Bytec zertifiziert, für die dann der entsprechende<br />
Support bereitsteht. Seit August leistet Bytec im Auftrag<br />
von Fujitsu auch Support für virtualisierte Systeme, die auf dem<br />
Linux-Hypervisor <strong>KVM</strong> basieren, die damit bei geschäftskritischen<br />
Anwendungen in Konkurrenz etwa zu VMware-Systemen<br />
treten sollen.<br />
12 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
news<br />
Login<br />
n immer auf http://www.admin-magazin.de ++++ neueste Nachrichten immer auf http://www.<br />
Nokia verkauft Qt an Digia<br />
Wie das finnische Software- <strong>und</strong> Systemhaus Digia bekannt<br />
gibt, übernimmt es von Nokia das komplette Geschäft mit dem<br />
GUI-Framework Qt. Damit ist Digia künftig dafür verantwortlich,<br />
Qt unter Open Source wie auch der kommerziellen Lizenz<br />
weiterzuentwickeln. Auf dem Programm steht nun laut Digia<br />
die Portierung von Qt auf Android, iPhone/ iPad <strong>und</strong> Windows<br />
8. Digia hatte bereits 2011 das kommerzielle Lizenzgeschäft<br />
mit Qt von Nokia übernommen <strong>und</strong> weitet sein Engagement<br />
mit der kompletten Übernahme auf den Open-Source-Bereich<br />
aus. „Maximal“ 125 Qt-Entwickler in Oslo <strong>und</strong> Berlin werden<br />
künftig für Digia arbeiten.<br />
Spam ist kein gutes Geschäft<br />
Eine im Journal of Economic Perspectives veröffentlichte Studie<br />
kommt zu dem Schluss, dass Spam weltweit jährlich über<br />
16 Milliarden Euro Schaden verursacht, den Spammern aber<br />
nur 160 Millionen Euro einbringt. Die Studie, die online unter<br />
[http://aeaweb.org/articles.php?doi=10.1257/jep.26.3.87] verfügbar ist,<br />
konstatiert, dass 88 Prozent aller weltweit verschickten Mails<br />
als Spam zu klassifizieren seien. Dabei sei das Verhältnis von<br />
Kosten zu Nutzen r<strong>und</strong> 100:1 – einem hohen gesellschaftlichen<br />
Schaden steht also ein marginaler Nutzen für den Spammer<br />
gegenüber. Da aber die Kosten für den Spamversand so niedrig<br />
sind – eine Million Mails lassen sich für 20 bis 50 US-Dollar<br />
versenden – rechnet es sich für kriminelle Spammer bereits,<br />
wenn nur ein Empfänger unter 25 000 zum Beispiel auf eine<br />
Phishing-Mail hereinfällt.<br />
Damit bleibt Spam ein zumindest geringfügig profitables Geschäft,<br />
obwohl dank guter Filter nur 1,2 Prozent aller versendeten<br />
Spam-Mails tatsächlich bei den Benutzern landen <strong>und</strong> Spam<br />
so nur eine <strong>Co</strong>nversion Rate von 0,00006 bis 0,0001 Prozent<br />
erreicht. Die Forscher plädieren dafür, ergänzend zu Anti-Spam-<br />
Maßnahmen die Betriebskosten der Spammer zu erhöhen, ob<br />
durch gesetzliche Abgaben beim Mailversand oder mit der<br />
Spam-the-Spammers-Technik. Schon leichte Kostensteigerungen<br />
würden viele Kampagnen unwirtschaftlich werden lassen.<br />
ClearOS 6.3 integriert Zarafa-Groupware<br />
In der neuen Version 6.3.9 bringt die Linux-Distribution ClearOS<br />
einige neue Mail-Komponenten mit. Dazu kommt die sogenannte<br />
Zarafa <strong>Co</strong>llaboration Platform, die neben E-Mail-Funktionen<br />
auch LDAP-Directory-Synchronisierung <strong>und</strong> Kalenderfunktionen<br />
bietet. Zarafa lässt sich als Third-Party-Anwendung in<br />
die Professional-Edition von ClearOS integrieren <strong>und</strong> kostet<br />
pro Jahr <strong>und</strong> User 29 US-Dollar. Als neue Anwendung gibt es<br />
dort auch Antimalware Premium von Kaspersky, das Mails <strong>und</strong><br />
Webtraffic nach Malware durchsuchen kann. Pro Jahr <strong>und</strong> 50<br />
Anwendern kostet dieser Dienst 150 US-Dollar.<br />
Von ClearOS, das auf dem <strong>Co</strong>de von Red Hat Enterprise Linux<br />
basiert, gibt es neben der Professional Edition auch eine kostenlose<br />
<strong>Co</strong>mmunity-Variante, deren Anwender aber auf das Einbinden<br />
der obigen Zusatzprogramme verzichten müssen. ClearOS<br />
Professional gibt es mit Support ab 80 US-Dollar im Jahr. Dafür<br />
bekommt der Anwender einen Linux-Server, der sich über ein<br />
grafisches Frontend bedienen lässt <strong>und</strong> sich als Datei-, Druck-,<br />
Mail-, Datenbankserver <strong>und</strong> so weiter einsetzen lässt. Auch<br />
Security- <strong>und</strong> Netzwerk-Features wie eine Application Level<br />
Firewall, DNS, RADIUS, Multi-WAN-Anbindung, PPTP <strong>und</strong> VPN<br />
sind vorhanden. Ein Artikel Small-Business-Server mit Linux, in<br />
dem es auch um ClearOS geht, ist auf S. 100 zu finden.<br />
Migrationshilfe von MS SQL zu MySQL<br />
Oracle bietet jetzt eine Reihe neuer Tools in seinem Windows-<br />
Release 5.5.25a, darunter eine Migrationshilfe für Nutzer von<br />
Microsofts SQL Server. Der neue Installer, den es nur in einer<br />
Windows-Version gibt, integriert in die MySQL-Workbench<br />
ein Werkzeug, das den Umstieg erleichtern soll. Die MySQL-<br />
Workbench ist das visuelle Administrations- <strong>und</strong> Design-Tool<br />
für MySQL. Mit der Migration sollen sich laut Oracle bis zu 90<br />
Prozent der Total <strong>Co</strong>st of Ownership sparen lassen. Daneben<br />
enthält das Release auch eine verbesserte Integration von My-<br />
SQL in MS Excel, eine verbesserte Installationsroutine <strong>und</strong> ausgebaute<br />
Monitoringmöglichkeiten. Das alles aber ausdrücklich<br />
nur für die Windows-Welt.<br />
DEUTSCHE PYTHON KONFERENZ<br />
EINE PROGRAMMIERSPRACHE VERÄNDERT DIE WELT<br />
Sechs Tage Python mit Vorträgen, Tutorials <strong>und</strong> Sprints – http://pycon.de<br />
Py<strong>Co</strong>n DE<br />
29.10. – 3.11.12<br />
Leipzig<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
13
1&1 CLOUD SERVER<br />
DAS DEDICATED-GEFÜHL – MIT MAXIMALER FLEXIBILITÄT.<br />
Ihre Anforderungen ändern sich immer wieder, manchmal auch unvorhergesehen? Dann sollten<br />
Sie sich für einen Dynamic Cloud Server von 1&1 entscheiden. Denn bei 1&1 sind Sie immer<br />
auf der sicheren Seite: Mit über 11 Mio. K<strong>und</strong>enverträgen, 2 Milliarden € Jahresumsatz,<br />
5.000 Mitarbeitern <strong>und</strong> 5 Hochleistungs-Rechenzentren in Deutschland, Europa <strong>und</strong> den<br />
USA ist 1&1 einer der größten Webhoster weltweit. Und mit 20 Jahren Server-Erfahrung<br />
<strong>und</strong> 1.500 Developern sind wir auch in Zukunft Ihr zuverlässiger Partner. Darum nutzen<br />
Sie bei 1&1 viele Vorteile, die Ihnen so kein anderer Hoster bietet.<br />
VOLLER ROOT-ZUGRIFF<br />
Komfort <strong>und</strong> Funktionsumfang eines Root Servers, mit dedizierten Ressourcen.<br />
HÖCHSTE FLEXIBILITÄT<br />
■ CPU, RAM <strong>und</strong> Festplattenspeicher unabhängig voneinander zubuchbar.<br />
Aktion: Dauerhaft 50% günstiger – pro St<strong>und</strong>e <strong>und</strong> Einheit 0,005 € statt 0,01 €.<br />
■ Per Mausklick ausbaufähig bis hin zum eigenen Rechenzentrum mit maximal<br />
99 virtuellen Maschinen – ohne Migration!<br />
■ Absolute Kostentransparenz durch st<strong>und</strong>engenaue, leistungsbezogene Abrechnung.<br />
UNLIMITED TRAFFIC<br />
100 Mbit/s Bandbreite. Ohne Zusatzkosten, ohne Drosselung.<br />
PARALLELS ® PLESK PANEL 11<br />
■ neueste Version des besten Verwaltungstools für Ihren Server<br />
■ inklusive unlimited Domains<br />
AUSFALLSICHER<br />
Red<strong>und</strong>ant gespiegelte Speicher- <strong>und</strong> Recheneinheiten schützen<br />
Ihren Cloud-Server automatisch vor Ausfällen.<br />
DOMAINS | E-MAIL | WEBHOSTING | E-SHOPS | SERVER<br />
* 1&1 Dynamic Cloud Server dauerhaft 19,99 €/Monat statt bisher 39,99 €/Monat in der Basiskonfi guration. Performance Features dauerhaft für 0,005 €/St<strong>und</strong>e <strong>und</strong> Einheit statt bisher<br />
0,01€/St<strong>und</strong>e <strong>und</strong> Einheit zubuchbar. Einrichtungsgebühr von 39,– € entfällt.
DAUERHAFT<br />
50 % AUF IHRE<br />
GESAMTE KONFIGURATION<br />
1&1 DYNAMIC CLOUD SERVER<br />
Perfekt als Application-, Datenbank-, Hostingoder<br />
Game-Server – oder für alles zusammen.<br />
■ Basiskonfiguration: 1 CPU, 1 GB RAM,<br />
100 GB Festplatte<br />
■ Unlimited Traffic mit 100 Mbit/s Bandbreite<br />
■ Citrix Xen Server basierend auf AMD Multicore-<br />
Architektur (AMD Opteron 6272)<br />
■ Freie Wahl aus CentOS, Debian, Ubuntu,<br />
openSUSE oder Windows (optional)<br />
■ Nur bei 1&1: Optional SUSE<br />
Linux Enterprise Server<br />
■ Nur bei 1&1: Server-Management <strong>und</strong><br />
-Monitoring per Mobile App<br />
■ 24/7 Service <strong>und</strong> Support durch<br />
1&1 Server Expertenteam.<br />
■ Keine Einrichtungsgebühr<br />
nur19, 99<br />
€/Monat*<br />
39,<br />
99<br />
0 26 02 / 96 91<br />
0800 / 100 668<br />
www.1<strong>und</strong>1.info
Login<br />
gebrauchtsoftware<br />
© jorisvo, 123RF<br />
Was eine Entscheidung des EuGH für den Lizenzhandel bedeutet<br />
Gebraucht gekauft<br />
was ist mit software-Lizenzen, die man einmal bezahlt hat, nun aber nicht mehr oder nur noch teilweise nutzt?<br />
darf man das tote Kapital in Cash verwandeln? der europäische gerichtshof hat mit einem neuen urteil endlich<br />
für Rechtsklarheit gesorgt. Vilma niclas<br />
Bücher <strong>und</strong> Laptops darf man ohne Probleme<br />
weiterverkaufen. Wie sieht es aber<br />
mit Software aus, die man nicht mehr benötigt?<br />
Bisher galt: Software, die man auf<br />
einem Datenträger, wie CD oder DVD mit<br />
einer unbefristeten Lizenz erworben hat,<br />
konnte man unproblematisch weiterverkaufen.<br />
Anders Software, die im Internet<br />
heruntergeladen wurde. Hier war bislang<br />
der Weiterverkauf umstritten.<br />
Den Weiterverkauf von Datenträgern<br />
erlaubt der sogenannte Erschöpfungsgr<strong>und</strong>satz,<br />
demzufolge sich das Verbreitungsrecht<br />
des Urhebers an der Kopie<br />
beim ersten Verkauf verbraucht. Danach<br />
kann der K<strong>und</strong>e – wie bei anderen gebrauchten<br />
Sachen auch – alleine entscheiden,<br />
ob <strong>und</strong> wie er diese weiterverkaufen<br />
möchte. Dies soll sicherstellen,<br />
dass die Ware frei zirkulieren kann. Doch<br />
der Gr<strong>und</strong>satz spricht explizit <strong>und</strong> im<br />
Juristendeutsch nur von einem „Vervielfältigungsstück“.<br />
Die Softwareindustrie<br />
argumentierte bislang, dieser Begriff<br />
schließe keine Downloads ein.<br />
Verbraucherschützer sehen es hingegen<br />
als ein Recht des Nutzers an, auch<br />
Softwaredownloads weiterverkaufen zu<br />
können, da immer mehr K<strong>und</strong>en Software<br />
per Download <strong>und</strong> nicht auf DVD<br />
erwerben. Sie sind der Ansicht, die Interessenlage<br />
ist für Verbraucher identisch,<br />
egal, wie die Software nun zum K<strong>und</strong>en<br />
gelangt. Er hat dafür einmal gezahlt <strong>und</strong><br />
möchte sie nun weiterveräußern. Zudem<br />
gibt es immer weniger Software auf Datenträgern,<br />
<strong>und</strong> das Argument der Industrie<br />
würde bedeuten: Digital eingekaufte<br />
Güter wären prinzipiell nicht mehr weiterverkäuflich.<br />
Second-Hand-Downloads<br />
Dabei versteht sich, dass nach dem<br />
Weiterverkauf keine Kopie der Software<br />
zurückbehalten werden darf. Die Sicherungskopie<br />
ist mit zu verkaufen. Hier<br />
liegt neben Umsatzeinbußen die Sorge<br />
der Softwareindustrie: Angst vor Raubkopien.<br />
Das Angebot gebrauchter Software<br />
senkt die Preise für Software am Markt,<br />
<strong>und</strong> dies ist den Softwareherstellern nicht<br />
lieb. Nun entschied der Europäische Gerichtshof<br />
über die Frage, ob per Download<br />
vertriebene Software weiterverkauft<br />
werden darf mit einem überraschenden<br />
Urteil.<br />
Es ging um folgenden Fall: Ein K<strong>und</strong>e<br />
lud dabei von einer Internetseite Oracles<br />
Software auf seinen <strong>Co</strong>mputer. Das per<br />
Lizenzvertrag gewährte Nutzungsrecht<br />
am Programm erlaubte, die Kopie dieses<br />
Programms dauerhaft auf einem Server<br />
zu speichern <strong>und</strong> bis zu 25 Nutzern darauf<br />
Zugriff zu gewähren. Im Lizenzvertrag<br />
steht: Der K<strong>und</strong>e erwirbt ausschließlich<br />
für seine internen Geschäftszwecke<br />
ein unbefristetes <strong>und</strong> nicht abtretbares<br />
Nutzungsrecht. Aufgr<strong>und</strong> des Software-<br />
Pflegevertrages kann der K<strong>und</strong>e aktualisierte<br />
Versionen der Software (Updates)<br />
<strong>und</strong> Programme zur Fehlerbehebung<br />
(Patches) von der Internetseite Oracles<br />
herunterladen. Die so als Volumenlizenz<br />
im Paket erworbene Software ist oft<br />
günstiger als der Erwerb einer einzigen<br />
Lizenz.<br />
UsedSoft ist ein deutsches Unternehmen,<br />
das mit Lizenzen handelt, die es<br />
Oracle-K<strong>und</strong>en abgekauft hat. Wer bei<br />
ihm K<strong>und</strong>e wird, lädt sich etwa nach dem<br />
16 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Kauf einer gebrauchten Oracle-Lizenz<br />
die fragliche Software unmittelbar von<br />
einer Oracle-Internetseite herunter. Wer<br />
bereits über das Programm verfügt, kann<br />
Lizenzen für zusätzliche Nutzer hinzuerwerben.<br />
Oracle vs. UsedSoft<br />
Oracle verklagte UsedSoft vor den deutschen<br />
Gerichten, um diese Praxis zu<br />
untersagen. Der B<strong>und</strong>esgerichtshof, der<br />
letztinstanzlich über diesen Rechtsstreit<br />
zu entscheiden hat, befragte den Europäischen<br />
Gerichtshof, ob diese Praxis<br />
konform mit der Europäischen Richtlinie<br />
über den Rechtsschutz von <strong>Co</strong>mputerprogrammen<br />
sei. Oracle meint, der in<br />
der Richtlinie vorgesehene Erschöpfungsgr<strong>und</strong>satz<br />
sei nicht auf Nutzungslizenzen<br />
für aus dem Internet heruntergeladene<br />
<strong>Co</strong>mputerprogramme anwendbar. Diese<br />
seien nicht verkäuflich.<br />
Die Kernfrage war also: Ist der Erschöpfungsgr<strong>und</strong>satz<br />
auf digital erworbene Programmkopien<br />
anwendbar? Der Europäische<br />
Gerichtshof entschied mit einem Pro<br />
<strong>und</strong> einem <strong>Co</strong>ntra – jedoch zum Nutzen<br />
vieler kleiner mittelständischer Unternehmen<br />
<strong>und</strong> Verbraucher: Der Gr<strong>und</strong>satz der<br />
Erschöpfung des Verbreitungsrechts gelte<br />
nicht nur, wenn der Urheber die Kopie<br />
seiner Software auf einem Datenträger<br />
(CD-ROM oder DVD) vermarkte, sondern<br />
auch, wenn er sie durch Herunterladen<br />
von seiner Internetseite verbreite. Auch<br />
beim Download werde das Eigentum an<br />
dieser Kopie übertragen. Somit könne der<br />
Rechteinhaber es nicht untersagen, die<br />
Kopie weiterzuverkaufen.<br />
Nicht zu verbieten<br />
Es handle sich um eine Vervielfältigung,<br />
die für eine bestimmungsgemäße Benutzung<br />
des <strong>Co</strong>mputerprogramms durch<br />
den rechtmäßigen Erwerber notwendig<br />
sei. Dies gestatte die Richtlinie. Solche<br />
Vervielfältigungen dürften nicht im Lizenzvertrag<br />
untersagt werden. Jeder spätere<br />
Erwerber einer Software könne die<br />
ihm vom Ersterwerber verkaufte Kopie<br />
auf seinen <strong>Co</strong>mputer herunterladen. Der<br />
EuGH meint: Wäre es nur erlaubt Programmkopien<br />
weiterzuverkaufen, die auf<br />
einem Datenträger verkauft worden sind,<br />
beschränke dies den K<strong>und</strong>en zu sehr.<br />
www.A dmin-mAgA zin.de<br />
Der Urheber könnte den Weiterverkauf<br />
von Kopien, die aus dem Internet heruntergeladen<br />
worden sind, kontrollieren<br />
<strong>und</strong> bei jedem Weiterverkauf erneut ein<br />
Entgelt verlangen, obwohl er schon beim<br />
Erstverkauf der betreffenden Kopie eine<br />
angemessene Vergütung erzielen konnte.<br />
Eine solche Einschränkung sei zur Wahrung<br />
des fraglichen geistigen Eigentums<br />
nicht erforderlich.<br />
Der Gerichtshof geht weiter: Selbst wenn<br />
mit einem Zusatzvertrag ständig Updates<br />
der Software erworben werden, so ist<br />
der Erschöpfungsgr<strong>und</strong>satz auch darauf<br />
anwendbar. Selbst wenn der Wartungsvertrag<br />
befristet ist, sind die aufgr<strong>und</strong><br />
eines solchen Vertrags verbesserten,<br />
veränderten oder ergänzten Funktionen<br />
Bestandteil der ursprünglich heruntergeladenen<br />
Kopie, <strong>und</strong> der K<strong>und</strong>e kann diese<br />
ohne zeitliche Begrenzung nutzen. Für<br />
den Verbraucher, der in der Regel nur<br />
eine einzige Lizenz kaufen oder weiterverkaufen<br />
wird, soweit eine sehr positive<br />
Entscheidung.<br />
Doch der Gerichtshof schiebt dem Gebrauchtsoftwaremarkt<br />
dennoch einen<br />
großen Stein in den Weg: Die Richter<br />
weisen darauf hin, dass der Ersterwerber<br />
zwar zum Verkauf berechtigt sei, aber<br />
nicht dazu, die Lizenz aufzuspalten <strong>und</strong><br />
nur einzelne Teile daraus weiterzuverkaufen,<br />
falls er nicht mehr alle Lizenzen<br />
der Volumenlizenz benötige. Günstig im<br />
Paket erworbene Lizenzen, die aus dem<br />
Internet heruntergeladen werden, dürfen<br />
also nicht zu einem sehr günstigen<br />
Preis einzeln weiterverkauft werden. Dies<br />
war aber einer der Hauptmärkte der Gebrauchtsoftwarehändler.<br />
Ein klarer Sieg<br />
also auch der Softwareindustrie.<br />
Konsequenzen<br />
Es ist ab sofort erlaubt, sowohl Software<br />
auf Datenträgern als auch Software, die<br />
aus dem Internet heruntergeladen worden<br />
ist (unbefristete Lizenz) weiterzuverkaufen.<br />
Verboten ist es, je nach Lizenzmodell<br />
des Herstellers, Volumenlizenzen<br />
aufzuspalten. Hier sollte man vorher den<br />
Softwarehersteller um Erlaubnis bitten.<br />
Es kommt auf das konkrete Lizenzmodell<br />
an. Wie bei Geräten oder Büchern auch,<br />
darf man sogar gebraucht erworbene<br />
Software wiederum verkaufen. Dies gestattet<br />
auch der Erschöpfungsgr<strong>und</strong>satz.<br />
Schneller<br />
ist besser<br />
Hosting im Failovercluster:<br />
Hochsicherheits-Datacenter<br />
in Frankfurt/Main<br />
DE-CIX Direktanbindung<br />
ISO 9001 zertifiziertes<br />
Managed Hosting<br />
24/7 Service <strong>und</strong> Support<br />
Immer einen Schritt voraus<br />
Wir bieten Hostinglösungen vom<br />
Server bis zum Clustersystem inkl.<br />
Beratung, Planung <strong>und</strong> Service 24/7.<br />
hostserver.de/server<br />
Managed Hosting<br />
zertifiziert nach<br />
ISO 9001 : 2008<br />
0 30 / 420 200 24 hostserver.de<br />
Berlin Marburg Frankfurt am Main<br />
AusgA be 05-2012 17
Login<br />
gebrauchtsoftware<br />
Das Programm ist nach dem ersten Verkauf<br />
frei handelbar.<br />
Man sollte aber damit rechnen, dass die<br />
Softwareindustrie weiterhin versuchen<br />
wird, den Gebrauchtsoftwaremarkt zu<br />
erschweren. Ein Beispiel wie dies im<br />
Verbrauchermarkt bereits jetzt gelingt,<br />
zeigt der Fall Valve. Das Unternehmen<br />
koppelt seine <strong>Co</strong>mputerspiele auf DVD an<br />
einen personalisierten Internet-Account,<br />
der nicht übertragbar ist. So lässt sich<br />
zwar die DVD weiterverkaufen, doch<br />
dem Zweiterwerber nützt sie nichts. Verbraucherschützer<br />
sind vergeblich dagegen<br />
vorgegangen. Der B<strong>und</strong>esgerichtshof<br />
erteilte dieser Praxis grünes Licht, da<br />
diese den Erschöpfungsgr<strong>und</strong>satz nicht<br />
verletzte.<br />
Auch andere Anbieter, die digital Software<br />
vertreiben, unterbinden den Weiterverkauf<br />
technisch. So sind nicht alle<br />
Apps weiterverkäuflich. Da diese aber<br />
nichts anderes als kleine Softwareprogramme<br />
sind, gilt auch für diese theoretisch<br />
das Urteil des EuGH.<br />
Stolpersteine<br />
Worauf sollte man achten beim Kauf<br />
gebrauchter Lizenzen? Kann man ohne<br />
Bedenken gebrauchte Software kaufen?<br />
Erlaubt ist es, ein <strong>Co</strong>mputerspiel oder<br />
ein Office-Paket auf DVD weiterzuverkaufen<br />
oder zu verschenken. Klauseln<br />
in AGB, die dies verbieten oder von der<br />
Zustimmung des Herstellers abhängig<br />
machen, sind unwirksam. Sie schränken<br />
den Erwerber unzulässig ein. Nur bei<br />
sehr teurer Software dürfen Hersteller die<br />
Verkauf<br />
Checkliste gebrauchtsoftwarehandel<br />
n Liegen für alle zu verkaufenden Lizenzen<br />
Datenträger, Handbuch, Verpackung, Lizenzurk<strong>und</strong>e,<br />
Lizenzvertrag <strong>und</strong> Lizenzschlüssel/<br />
Seriennummer vor <strong>und</strong> der Originalkaufbeleg?<br />
n Ist der Supportvertrag, sofern dieser kostenpflichtig<br />
ist, rechtzeitig gekündigt? Kann<br />
man ihn an den neuen Käufer übertragen?<br />
Dies sollte man klären, um Ärger mit dem<br />
Käufer zu vermeiden.<br />
n Verkaufen sollte man den OriginalDatenträger,<br />
nicht nur die Recovery CD oder Sicherungskopie.<br />
Außerdem darf man beim Verkauf<br />
keine Kopien zurückbehalten. Es ist eine<br />
komplette Deinstallation erforderlich. Sofern<br />
K<strong>und</strong>en vertraglich verpflichten, vor der<br />
Weitergabe der Software den Hersteller<br />
zu informieren. Testversionen <strong>und</strong> andere<br />
nicht zum Weiterverkauf überlassene<br />
Software darf weder verkauft noch<br />
überlassen werden. Handelt es sich bei<br />
der Software um ein Upgrade, müssen<br />
alle Vorversionen der Software, auf die<br />
sich das Update bezieht, weitergegeben<br />
werden. Kopien zurückzubehalten ist<br />
eine Urheberrechtsverletzung.<br />
Weiter stellt sich die Frage: Kann man<br />
darauf setzen, dass der Hersteller nicht<br />
etwa den Support verweigert, weil ihm<br />
der Verkauf der Software nicht passt?.<br />
Hier sollte man vor dem Kauf auf Nummer<br />
sicher gehen <strong>und</strong> den Hersteller fragen,<br />
ob der Support gewährleistet ist.<br />
Rein juristisch gilt: Enthält der Lizenzvertrag<br />
den unbefristeten Support, können<br />
Sie den Support weiterhin beanspruchen,<br />
wenn der Supportvertrag neben<br />
der Lizenz ordnungsgemäß übergeht. Ob<br />
dies wiederum möglich ist, hängt vom<br />
Supportvertrag ab, der ja nichts mit der<br />
Lizenz an der Software zu tun hat.<br />
Zertifikate dabei?<br />
Achten sollte man zudem darauf, dass die<br />
beigefügten Zertifikate echt sind. So hat<br />
der B<strong>und</strong>esgerichtshof entschieden, dass<br />
Händler gebrauchter Microsoft-Software<br />
keine Echtheitszertifikate für den Verkauf<br />
von OEM-Versionen nutzen dürfen. Dies<br />
verletze das Markenrecht von Microsoft.<br />
Ein Händler hatte separat voneinander<br />
gebrauchte Windows-Lizenzen <strong>und</strong> andererseits<br />
gebrauchte Windows-OEM-<br />
es Vorgängerversionen als UpgradeGr<strong>und</strong>lage<br />
gab, sind auch diese weiterzugeben.<br />
n Man sollte das Restrisiko beim Verkauf minimieren,<br />
indem man für den Weitervertrieb<br />
gewerbliche Vermittler nutzt, deren Tagesgeschäft<br />
der Verkauf von gebrauchten Lizenzen<br />
ist.<br />
Einkauf<br />
n Seien Sie skeptisch, wenn Software allzu<br />
günstig angeboten wird. Es könnte sich um<br />
illegale Kopien handeln.<br />
n Beim Einkauf überzähliger Volumenlizenzen<br />
gilt: riskant. Hier werden Nutzungsrechte<br />
aus einem Vertrag abgespalten, <strong>und</strong> nach<br />
dem EuGH ist dies je nach Lizenzmodell <strong>und</strong><br />
Lizenzvertrag des Herstellers illegal. Nur<br />
Echtheitszertifikate eingekauft. Die Käufer<br />
erhielten gebrauchte echte Recovery-<br />
CDs zusammen mit gebrauchten echten<br />
Echtheitszertifikaten. Microsoft hatte<br />
die vom Händler verkauften Pakete aus<br />
Recovery-CD <strong>und</strong> OEM-Echtheitszertifikaten<br />
nicht selbst in dieser Kombination<br />
in den Handel gebracht. Durch die neue<br />
Kombination verletze der Händler das<br />
Markenrecht. Die Lizenzen müssen so<br />
weiterverkauft werden, wie man sie erworben<br />
hat.<br />
Neben der Markenverletzung könnte aber<br />
auch eine Urheberrechtsverletzung abgemahnt<br />
werden. Dies kann auch K<strong>und</strong>en<br />
treffen, wenn diese keine Lizenz nachweisen<br />
können. Schwarze Schafe gibt es<br />
aber überall. Man sollte sich dadurch<br />
nicht verunsichern lassen <strong>und</strong> etwa auf<br />
einen nachvollziehbaren Preis am Markt<br />
achten. Dieser ist oft ein Indiz, ob es sich<br />
um legale Ware handelt oder nicht. Ist<br />
dieser allzu niedrig, sollte man stutzig<br />
werden.<br />
Wer muss beweisen, dass das rechtmäßig<br />
erworbene <strong>und</strong> auch nur einmal verkaufte<br />
Lizenzen waren? Oder dass die Lizenzpakete<br />
nicht geteilt wurden? Der Käufer<br />
muss bei einer Nachprüfung – egal ob<br />
gebrauchte oder neue Software – nachweisen,<br />
dass er eine legale Lizenz besitzt.<br />
Microsoft empfiehlt bei Einzelhandelsprodukten<br />
die Verpackung, mitgelieferte<br />
Komponenten, Rechnungskopie <strong>und</strong> den<br />
Endnutzer-Lizenzvertrag (EULA) sorgfältig<br />
aufzubewahren sowie den Datenträger.<br />
Diese dienen als Nachweis, dass<br />
man das lizenziertes Produkt rechtmäßig<br />
erworben hat. Beim Weiterverkauf<br />
mutige K<strong>und</strong>en sollten von diesem Markt profitieren<br />
<strong>und</strong> auf jeden Fall Rückstellungen für<br />
Abmahnungen bilden. Am besten spricht man<br />
vor dem Einkauf mit dem Softwarehaus <strong>und</strong><br />
vergewissert sich, dass der Softwarehersteller<br />
einen Supportvertrag mit dem Zweitkäufer<br />
schließt <strong>und</strong> Updates liefert oder sogar<br />
mit dem Reseller der gebrauchten Lizenzen<br />
kooperiert.<br />
n Darauf achten, dass der Vermittler die Gewährleistung<br />
nicht ausschließt. Am besten<br />
verlangt man eine Freistellungserklärung<br />
des Vermittlers <strong>und</strong> eine notarielle Erklärung<br />
des Verkäufers, dass dieser die Software gelöscht<br />
hat <strong>und</strong> eine legale Lizenz des Herstellers<br />
weiterveräußert. Für Verhandlungen<br />
lohnt ein Anwalt.<br />
18 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
gebrauchtsoftware<br />
Login<br />
© duoduo, 123RF<br />
Abbildung 1: Vielleicht handeln bald digitale Antiquariate gebrauchte Software ebenso selbstversändlich, wie<br />
ihr analoges Pendant alte Bücher verkauft.<br />
Weiterhin umstritten bleibt die Rechtslage,<br />
ob man eine günstig erworbene<br />
Studenten- oder Dozentenversion einer<br />
Software weiterverkaufen darf. Man kann<br />
mit dem Erschöpfungsgr<strong>und</strong>satz für den<br />
Weiterverkauf plädieren <strong>und</strong> sich auf den<br />
Standpunkt stellen, der Lizenzvertrag<br />
zwischen Verkäufer <strong>und</strong> Erstkäufer binde<br />
den folgenden Erwerber nicht. Es gibt<br />
aber andere juristische Ansichten, die<br />
darauf verweisen, dass der Lizenzvertrag<br />
es nur erlaubt, die Software mit bestimmten<br />
Bezugsberechtigungen zu nutzen, die<br />
man beim Kauf nachweisen musste, etwa<br />
mit dem Studentenausweis.<br />
Man sollte daher auf der Hut sein, bevor<br />
man derartige Software öffentlich anbietet<br />
<strong>und</strong> etwa bei eBay weiterverkauft. Es<br />
könnte statt des erhofften Gewinns eine<br />
teure Abmahnung folgen, gegen die man<br />
sich zur Wehr setzen muss. Es kommt<br />
unter anderem auf die Regelungen im<br />
Lizenzvertrag an. Klar äußern sich die<br />
Hersteller zu dieser Rechtsfrage darin<br />
aber selten. Eine explizite Nachfrage bei<br />
Microsoft bezüglich des Weiterverkaufs<br />
einer Studentenversion, die in einer Box<br />
auf einem Datenträger gekauft worden<br />
war ergab:<br />
„Die MSLT (Microsoft Software License<br />
Terms) beinhalten alle Rechte <strong>und</strong> Grenzen,<br />
der die Verwendung von Microsoft-<br />
Software unterliegen. … Die Einzelhander<br />
Software sollten diese Bestandteile<br />
weitergegeben werden sowie alle Versionen<br />
des Programms. Adobe möchte für<br />
den Beweis, dass Nutzungsrechte eingeräumt<br />
wurden, den Originaldatenträger<br />
mit zugehöriger Seriennummer <strong>und</strong> die<br />
Lizenzbestimmungen (EULA) sehen.<br />
Echtheitszertifikate, Handbücher, Rechnungen<br />
oder Kaufverträge können zusätzlich<br />
herangezogen werden, sind aber<br />
für sich allein nicht rausreichend.<br />
Es darf nur das Original weitergegeben<br />
werden. Hat man Zweifel, sollte man sich<br />
beim Verkauf nochmal explizit zusichern<br />
lassen, dass der Verkäufer im Fall einer<br />
Abmahnung Rechtsverteidigungskosten<br />
für Sie übernimmt.<br />
Wenn man Software kauft <strong>und</strong> die Lizenz<br />
nicht rechtmäßig, also etwa entgegen<br />
dem Lizenzvertrag aufgespalten worden<br />
ist, liegt ein Rechtsmangel vor. Dies hieße<br />
der Verkäufer ist zur Gewährleistung verpflichtet.<br />
Der Käufer kann vom Verkäufer<br />
eine Originallizenz nachfordern oder vom<br />
Kaufvertrag zurücktreten <strong>und</strong> den Kaufpreis<br />
zurückfordern <strong>und</strong>/ oder Regress für<br />
Kosten der Rechtsverteidigung verlangen<br />
sowie gegebenenfalls Schadensersatz. In<br />
derartigen Fällen handelt es sich zudem<br />
um eine Urheberrechtsverletzung. Der<br />
Softwarehersteller kann Inhaber von illegalen<br />
Lizenzen abmahnen. In der Regel<br />
werden Händler abgemahnt, nicht Käufer.<br />
Ausgeschlossen ist dies aber nicht.<br />
Schadensersatz, wie Lizenzgebühren<br />
muss man nur dann an den Urheber zahlen,<br />
wenn der Urheber dem Inhaber der<br />
Kopie schuldhaftes Handeln nachweisen<br />
kann. Der Käufer kann ihm entstandene<br />
Kosten als Regress vom Verkäufer rückfordern<br />
– zumindest theoretisch.<br />
Schüler- <strong>und</strong><br />
Dozentenversionen<br />
delslizenz gestattet die Installation <strong>und</strong><br />
Nutzung von Office Home and Student<br />
auf drei Rechnern in einem Haushalt.<br />
Gr<strong>und</strong>sätzlich dürfen Sie das Office Paket<br />
verkaufen.<br />
Beim Verkauf Ihrer Originalsoftware gilt<br />
es Folgendes zu beachten: Alle Produktbestandteile<br />
müssen zusammen veräußert<br />
werden (Datenträger, Echtheitszertifikat<br />
<strong>und</strong> Installationsschlüssel). Wenn<br />
Sie dem Käufer alle Lizenzunterlagen,<br />
die Sie mal beim Kauf erworben haben<br />
weitergegeben haben, kann dieser die<br />
Office Version auf seinem Rechner wieder<br />
installieren <strong>und</strong> aktivieren.“<br />
Ungeklärt ist zudem die Frage, ob ein<br />
ehemaliger Student die Software weiter<br />
nutzen kann, etwa als Existenzgründer.<br />
Digitale Antiquariate<br />
Leider konnte der EuGH in dem ihm<br />
vorgelegten Fall nicht über den Weiterverkauf<br />
von anderen digitalen Werken<br />
entscheiden, wie eBooks, digitale Musik<br />
<strong>und</strong> Filme. Für diese Werke gilt eine<br />
andere EU-Richtlinie. Das Urteil ist also<br />
nicht ohne Weiteres übertragbar. Der<br />
EuGH merkte aber an, dass er für diese<br />
Produkte von einer ähnlichen Rechtsansicht<br />
ausgehe, da auch für sie im Gesetz<br />
der Erschöpfungsgr<strong>und</strong>satz vorgesehen<br />
sei (Abbildung 1). Man gehe davon aus,<br />
dass diese Vorschrift ähnlich auszulegen<br />
sei. Neben dem Softwaregebrauchtmarkt<br />
könnte sich also ein Markt für gebrauchte<br />
eBooks oder digitale Musik bald legal<br />
etablieren. Das Urteil ist ein Meilenstein<br />
<strong>und</strong> Hoffnungsschimmer. (jcb) n<br />
Die Autorin<br />
Die Autorin ist Rechtsanwältin <strong>und</strong> Fachjournalistin<br />
für ITRecht in Berlin. Sie veröffentlicht<br />
seit 1997 in zahlreichen Medien zu Fragen des IT<br />
Rechtes. Darüber hinaus referiert sie regelmäßig,<br />
etwa zu aktuellen Fragen des Internetrechtes,<br />
gibt Workshops <strong>und</strong> unterrichtet darüber hinaus<br />
als Lehrbeauftragte für ITRecht an der Beuth<br />
Hochschule für Technik, Berlin. Sie ist Mitglied<br />
in der Deutschen Vereinigung für Gewerblichen<br />
Rechtsschutz <strong>und</strong> Urheberrecht<br />
e.V. (GRUR), der<br />
Deutschen Gesellschaft für<br />
Recht <strong>und</strong> Informatik e.V.<br />
(DRGI) sowie im Deutschen<br />
Fachjournalistenverband.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
19
Login<br />
Admin-story<br />
»setgid« sind jedoch außen vor. Logge<br />
ich mich auf dem System ein, wird mein<br />
Konto auf »staff_u« gemappt, damit erhalte<br />
ich dann ebenfalls auch Zugriff auf<br />
»sudo« <strong>und</strong> kann so den Rechner verwalten.<br />
Dieses Setup läuft nun schon eine ganze<br />
Zeit auf seinem Rechner, <strong>und</strong> es gab bisher<br />
keine großen Probleme. Läuft ein<br />
Programm mal nicht so wie es soll, dann<br />
hilft der »setroubleshoot«-Daemon dabei,<br />
das Problem einzukreisen <strong>und</strong> zu beheben.<br />
Er hinterlässt eine Meldung in der<br />
Logdatei »/var/log/messages« <strong>und</strong> gibt<br />
dabei genaue Anweisungen, wie sich das<br />
Problem lösen lässt. Auf Desktop-Systemen<br />
gibt außerdem ein Applet Auskunft<br />
darüber, wenn ein Zugriff durch SE Linux<br />
blockiert wurde.<br />
© Pavel Ignatov, 123RF<br />
SE Linux in der Praxis<br />
Schutzschild<br />
das schutzschild se Linux lässt immer noch viele Admins zusammenzucken.<br />
dabei ist der betrieb mittlerweile sehr umkompliziert <strong>und</strong> schafft<br />
einen gewaltigen mehrwert in bezug auf die sicherheit des kompletten<br />
systems. das Regelwerk den eigenen wünschen anzupassen, ist auch<br />
keine große Kunst mehr. Thorsten scherf<br />
Innerhalb meiner Firma hat es sich<br />
irgendwie eingebürgert, neue Entwicklungen<br />
immer zuerst an Familienmitgliedern<br />
auszuprobieren, bevor diese auf die<br />
Allgemeinheit losgelassen werden. Bei<br />
einem Kollegen aus den USA ist es die<br />
Listing 1: makefile<br />
01 # make -f /usr/share/selinux/devel/Makefile<br />
02 <strong>Co</strong>mpiling targeted xguest_irc module<br />
03 /usr/bin/checkmodule: loading policy configuration<br />
from tmp/xguest_irc.tmp<br />
04 /usr/bin/checkmodule: policy configuration loaded<br />
05 /usr/bin/checkmodule: writing binary representation<br />
(version 10) to<br />
06 tmp/xguest_irc.mod<br />
07 Creating targeted xguest_irc.pp policy package<br />
08 rm tmp/xguest_irc.mod.fc tmp/xguest_irc.mod<br />
eigene Ehefrau, bei mir meistens der<br />
Sohn, manchmal ist aber auch meine<br />
Frau das Versuchskaninchen. Diese besitzt<br />
allerdings auch einen Mac, sodass<br />
neue Policies primär auf dem Rechner<br />
meines Sohnes getestet werden. Sitzt<br />
dieser an seinem Fedora-System, so sind<br />
zumeist nur drei Applikationen geöffnet,<br />
der Webbrowser, sein Lieblingsspiel<br />
<strong>und</strong> ein IRC-Client, über den er sich mit<br />
Fre<strong>und</strong>en über das Spiel austauscht – das<br />
behauptet er zumindest.<br />
Auf dem Fedora-System läuft die SE Linux-Targeted-Policy,<br />
<strong>und</strong> sein Account<br />
wird auf den SE-Linux-Benutzer »user_u«<br />
gemappt. Damit hat er Zugriff auf sämtliche<br />
Netzwerkressourcen, »setuid« <strong>und</strong><br />
Schutz vor Malware<br />
Auch im Wohnzimmer steht ein Familien-Notebook,<br />
auf dem sich vor allem<br />
meine Frau <strong>und</strong> mein Sohn anmelden<br />
<strong>und</strong> auf dem meistens ein Webbrowser<br />
<strong>und</strong> ein IRC-Client laufen. Sicher ist es<br />
sinnvoll, die Accounts auf dem Familien-<br />
Rechner noch weiter abzusichern, dachte<br />
ich mir dann eines Tages, <strong>und</strong> stellte die<br />
beiden User-Accounts von »user_u« auf<br />
»xguest_u« um. Nun gestattet dieser SE-<br />
Linux-User-Account den Zugriff auf das<br />
Netzwerk jedoch nur über den Firefox-<br />
Webbrowser, alle anderen Netzwerkzugriffe<br />
werden unterb<strong>und</strong>en.<br />
Somit wird also sämtlichem Ungeziefer,<br />
das eventuell aus den Weiten des World<br />
Wide Web den Weg auf den Familen-<br />
Rechner gef<strong>und</strong>en hat, der Zugriff auf<br />
das Netzwerk verboten. Es ist noch nicht<br />
einmal möglich, dieses Ungeziefer aus<br />
dem Download-Ordner zu starten (oder<br />
sich selbst starten zu lassen). Dieses Verhalten<br />
lässt sich jedoch über ein SE Linux<br />
ändern. Schließlich soll auf dem Rechner<br />
nicht nur gespielt, sondern von Zeit zu<br />
Zeit auch mal gearbeitet werden. Über<br />
eine Boolean-Variable lässt sich das jeweils<br />
gewünschte Verhalten zur Laufzeit<br />
einstellen:<br />
# getsebool allow_xguest_exec_content<br />
allow_xguest_exec_content --> off<br />
Das Mapping auf den SE-Linux-Benutzer<br />
»xguest_u« habe ich zuvor mittels<br />
»semanage« eingestellt:<br />
20 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Admin-story<br />
Login<br />
# semanage login -m -s xguest_u linus<br />
# semanage login -l | grep linus<br />
linus xguest_u s0<br />
Damit kann sich mein Sohn wie zuvor<br />
anmelden, bekommt nun aber den SE-<br />
Linux-Benutzer »xguest« auf seinen eigenen<br />
Account gemappt:<br />
$ id -Z<br />
xguest_u:xguest_r:xguest_t:s0<br />
Ein Zugriff auf das Netzwerk ist nun nur<br />
über den HTTP-Port 80 möglich, jeder<br />
andere Zugriff wird unterb<strong>und</strong>en:<br />
$ ping 8.8.4.4<br />
ping: icmp open socket: Permission denied<br />
$ nc -v aspmx.l.google.com 25<br />
nc: connect to aspmx.l.google.com port 25 U<br />
(tcp) failed: Permission denied<br />
$ nc -v www.google.com 80<br />
<strong>Co</strong>nnection to www.google.com 80 port [tcp/U<br />
http] succeeded<br />
Soweit so gut, allerdings klappt nun der<br />
Zugriff auf den IRC-Server natürlich auch<br />
nicht mehr. Versuche ich den IRC-Client<br />
zu starten, erscheint folgende Fehlermeldung<br />
im Log:<br />
Aug 16 15:50:34 tscherf setroubleshoot: U<br />
SELinux is preventing /usr/bin/xchat<br />
from name_connect access on the tcp_socket .U<br />
For complete SELinux messages run sealert -lU<br />
482a1457-4fdc-4d8c-91d0-d5ddf4b23891<br />
Um Diskussionen von Anfang an aus<br />
dem Weg zu gehen, wollte ich dieses<br />
Manko natürlich beheben <strong>und</strong> ein entsprechendes<br />
SE-Linux-Policy-Modul<br />
entwickeln, das den Zugriff auf einen<br />
IRC-Server ermöglicht, auch wenn der<br />
angemeldete Benutzer auf den SE-Linux-<br />
Account »xguest_u« gemappt ist.<br />
Eigene Regel<br />
Rufe ich also wieder »sealert« auf, teilt<br />
das Tool mir mit, dass der Zugriff auf<br />
den IRC-Port 6667 unterb<strong>und</strong>en ist. Der<br />
Aufruf von »audit2allow« bestätigt dies<br />
<strong>und</strong> schlägt vor, das Standardregelwerk<br />
um folgenden Eintrag zu erweitern:<br />
durch das Anhängen der Option »-R« beim<br />
Aufruf von »audit2allow«. Und tatsächlich:<br />
Nun bekomme ich den Vorschlag,<br />
das Interface »corenet_tcp_connect_ircd_<br />
port« mit dem Argument »xguest_t« zu<br />
verwenden. Hänge ich jetzt noch mittels<br />
der Option »-M« einen Modulnamen an<br />
das Tool an, so erzeugt es mir direkt ein<br />
fertiges Policy-Modul, das ich zum Standardregelwerk<br />
hinzufügen kann.<br />
Quellcode inklusive<br />
Glücklicherweise erzeugt das Tool nicht<br />
nur das binäre Modul, sondern auch die<br />
Sourcen dazu. Das nutze ich dazu, um<br />
mir die Möglichkeit offenzuhalten, den<br />
Zugriff auf den IRC-Port mittels eines Booleans<br />
dynamisch aus- <strong>und</strong> einzuschalten.<br />
Ich erweitere also die von »audit2allow«<br />
erzeugte Type-Enforcement-Datei um die<br />
entsprechenden Anweisungen für ein<br />
Boolean. Ist das RPM-Paket »selinux-policy«<br />
installiert, befindet sich auf dem<br />
Fedora-System im Ordner »/usr/share/<br />
selinux/devel« ein Makefile, mit dessen<br />
Hilfe ich die Source-Dateien sehr einfach<br />
in ein neues, binäres Policy-Modul wandeln<br />
kann (Listing 1).<br />
Anschließend lade ich das so erzeugte<br />
Modul zum SE-Linux-Standardregelwerk<br />
hinzu:<br />
semodule -i xguest_irc.pp<br />
Der folgende Befehl zeigt an, dass nun<br />
eine entsprechende Regel auf dem System<br />
bekannt ist:<br />
$ sesearch -A -s xguest_t -t ircd_port_t<br />
Fo<strong>und</strong> 1 semantic av rules:<br />
allow xguest_t ircd_port_t : tcp_socketU<br />
name_connect ;<br />
Diese Policy läuft nun schon eine Zeitlang<br />
auf dem Familien-Rechner, <strong>und</strong> bisher<br />
hat sich noch niemand beschwert.<br />
Der Zugriff auf das Web <strong>und</strong> die Kommunikation<br />
mit den Kumpels über IRC<br />
klappt weiterhin ohne Probleme. Sollte<br />
jetzt irgendein Programm versuchen, sich<br />
ungewollten Zugriff auf das Netzwerk zu<br />
verschaffen, wird dies jetzt wirkungsvoll<br />
verhindert. Dank der dynamisch gehaltenen<br />
Policy bin ich nun sogar in der Lage,<br />
den Zugriff auf die IRC-Server zu deaktivieren,<br />
sollte die häusliche Situation dies<br />
einmal erfordern:<br />
setsebool xguest_use_irc off<br />
Zum Schluss nun noch einmal der komplette<br />
Aufruf von »audit2allow« mit dem<br />
von mir manuell abgeänderten Policy-<br />
Modul für den Zugriff auf einen IRC-<br />
Server (Listing 2).<br />
n<br />
Listing 2: Policy-modul<br />
01 # grep xchat /var/log/audit/audit.log | audit2allow<br />
-R -M xguest_irc<br />
02<br />
03 policy_module(xguest_irc,1.0.0)<br />
04<br />
05 require {<br />
06 type xguest_t;<br />
07 }<br />
08<br />
09 ## <br />
10 ## a<br />
11 ## Allow xguest users to use IRC<br />
12 ## <br />
13 ## <br />
14 gen_tunable(xguest_use_irc, true)<br />
15<br />
16 tunable_policy(`xguest_use_irc',`<br />
17 corenet_tcp_connect_ircd_port(xguest_t)<br />
18 '<br />
# grep xchat /var/log/audit/audit.log | U<br />
audit2allow<br />
allow xguest_t ircd_port_t:tcp_socket name_U<br />
connect;<br />
Aus anderen Policy-Entwicklungen weiß<br />
ich, dass für den Zugriff auf die meisten<br />
Netzwerk-Ports ein Interface zur Verfügung<br />
steht, ich überprüfe dies wieder<br />
Der Autor<br />
Thorsten Scherf arbeitet als Senior <strong>Co</strong>nsultant für<br />
Red Hat EMEA. Er ist oft als<br />
Vortragender auf Konferenzen<br />
anzutreffen. Wenn neben<br />
Arbeit <strong>und</strong> Familie noch<br />
Zeit bleibt, nimmt er gerne<br />
an Marathonläufen teil.<br />
C13<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
21
n etzwerk<br />
netzwerktester<br />
© Kirill Cherezov, 123RF<br />
Werkzeuge für die Fehlersuche im Netz<br />
LAN unter<br />
der Lupe<br />
netzwerkfehler betreffen nicht selten viele Clients <strong>und</strong> sind entsprechend<br />
dringlich. mit dem richtigen Handwerkszeug gestaltet sich die Fehlersuche<br />
wesentlich einfacher. spezialisierte netzwerktester gehören dazu.<br />
Jens-Christoph brendel<br />
Die Zeit, die für aufwendiges Troubleshooting<br />
draufgeht, fehlt meist woanders.<br />
Deshalb sind Werkzeuge immer willkommen,<br />
die eine effizientere Fehlersuche<br />
erlauben. Sogenannte Netzwerktester<br />
versprechen das beispielsweise im LAN.<br />
Aber können sie die Zusicherung auch<br />
halten? Wir haben uns zwei Vertreter dieser<br />
Gattung angesehen.<br />
LanXPLORER<br />
Zu den gr<strong>und</strong>legenden Tests, die das<br />
handliche kleine Gerät vom Hersteller<br />
IDEAL Industries (Abbildung 1) beherrscht,<br />
gehört eine Überprüfung der<br />
Verkabelung. Im Setup lassen sich dafür<br />
verschiedene Verdrahtungsschemata von<br />
CAT5e UTP über CAT 7 STP bis etwa<br />
zu <strong>Co</strong>ax RJ59 einstellen. Ein Ende der<br />
Kabelstrecke wird mit dem LanXPLORER<br />
verb<strong>und</strong>en, an das andere kommt ein<br />
spezielles Gegenstück. Nun lässt sich<br />
nicht nur die Länge des Kabels ermitteln,<br />
sondern es lassen sich auch unterbrochene<br />
oder falsch verb<strong>und</strong>ene Adern,<br />
Kurzschlüsse oder übersprechende<br />
Adernpaare detektieren (Abbildung 2).<br />
Sinnvollerweise sollte ein solcher Check<br />
allen anderen Prüfungen vorangehen. Ein<br />
eingebauter Tongenerator in Verbindung<br />
mit einem induktiven Empfänger ermöglicht<br />
es zudem, das entfernte Ende einer<br />
Kabel strecke aufzuspüren, wenn die<br />
Zuordnung ansonsten unklar ist.<br />
Aktive Tests<br />
Anschließend ist der LanXPLORER bereit<br />
für eine Reihe aktiver Netzwerktests.<br />
Wo Power over Ethernet (PoE) verwendet<br />
wird, ist diese Funktion überprüfbar.<br />
Sodann kann der Tester eine beliebige<br />
Gegenstelle (zehn Ziele sind voreinstellbar)<br />
anpingen <strong>und</strong> dabei mögliche<br />
Paketverluste <strong>und</strong> die Antwortverzögerung<br />
protokollieren. Auch ein Traceroute<br />
mit Laufzeitangaben zu jedem Hop ist<br />
möglich. Daneben lassen sich alle Hosts,<br />
Server <strong>und</strong> Drucker in einem Subnetz<br />
zusammentragen. Das Resultat eines solchen<br />
Portscans, der auch die wichtigsten<br />
Dienste erkennt, kann in Form einer<br />
sogenannten Netmap gesichert werden<br />
(Abbildung 3). Bei späteren Testläufen<br />
lässt sich deren Resultat mit einer zuvor<br />
gespeicherten Map vergleichen, wobei<br />
pro Kategorie hinzugekommene oder<br />
zwischenzeitlich entfernte Geräte aufgeführt<br />
werden.<br />
Einige dieser Tests, nämlich Verdrahtungstest,<br />
PoE Lasttest, Ping, Traceroute<br />
<strong>und</strong> der Netmap-Vergleich oder eine<br />
Auswahl davon, lassen sich zu einem<br />
Autotest zusammenfassen <strong>und</strong> mit einem<br />
Tastendruck starten. Allerdings ist die<br />
Zusammenstellung dieses automatischen<br />
Tests nicht völlig wahlfrei.<br />
Auf Wunsch generiert der LanXPLORER<br />
einfache Statistiken, etwa Top-Ten-Listen<br />
für die verwendeten Netzwerkprotokolle,<br />
häufigsten Fehler oder aktivsten<br />
Sender. Daneben zeigt er die Parameter<br />
des momentan verwendeten Links an<br />
(Geschwindigkeit, Auto-Negotiation <strong>und</strong><br />
Duplex-Art).<br />
Was alle Varianten des Gerätes gewöhnlichen<br />
Twisted-Pair-Kabeln ablauschen<br />
können, das vermögen die Modelle Plus<br />
<strong>und</strong> Pro auch im WiFi-Netz oder mit einem<br />
entsprechenden Interface in einer<br />
LWL-Verkabelung. Nur das hier getestete<br />
Pro-Modell lässt sich dank einer zweiten<br />
22 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
netzwerktester<br />
n etzwerk<br />
Abbildung 1: Der handliche LanXPLORER wiegt<br />
nur 650 g <strong>und</strong> gestattet überall das Testen der<br />
Gr<strong>und</strong>funktionen eines lokalen Netzwerks.<br />
Netzwerkschnittstelle außerdem in einen<br />
Verbindungsweg einschleifen. In diesem<br />
Inline-Modus beherrscht es zusätzlich<br />
eine einfache VoIP-Statistik <strong>und</strong> eine<br />
PC-Diagnose, die wiederum eine Protokollstatistik<br />
beinhaltet, außerdem Pakete<br />
zählt, <strong>und</strong> die via DHCP an das Endgerät<br />
übermittelten Parameter erkennt.<br />
Grenzen<br />
Die Möglichkeiten funktionaler Tests<br />
sind recht begrenzt, <strong>und</strong> auch Performanceprobleme<br />
sind mit dem Tool nur<br />
ansatzweise zu analysieren. Es können<br />
in keinem Fall Pakete inspiziert oder mitgeschnitten<br />
werden. Sieht man von der<br />
rudimentären Ausgabe von DHCP-Parametern<br />
ab, lassen sich Services generell<br />
nicht funktional prüfen. Die Transfergeschwindigkeit<br />
ist nur unter Zuhilfenahme<br />
zusätzlicher Messgeräte erfassbar. Filter<br />
beschränken sich auf einige fest vorgegebene<br />
Auswahlmöglichkeiten.<br />
Wenn man Netzwerkproblemen vertieft<br />
auf den Gr<strong>und</strong> gehen will, kommt man<br />
mit einem Laptop <strong>und</strong> einem extra Kabeltester<br />
weiter. Dieser Gerätemix ist aber<br />
deutlich unhandlicher, schwerer, komplexer<br />
in der Bedienung <strong>und</strong> weniger robust.<br />
Dagegen vereint der LanXPLORER alle<br />
gr<strong>und</strong>legenden Tests in einem Gerät, das<br />
wenig mehr als ein halbes Kilo wiegt <strong>und</strong><br />
in eine Kitteltasche passt. Die Bedienung<br />
ist dank Touch-Display sehr einfach <strong>und</strong><br />
intuitiv. Den häufigsten Problemen <strong>und</strong><br />
namentlich Hardwarefehlern (Verkabelung,<br />
Interfaceausfälle, etc.) wird man<br />
damit zuverlässig auf die Schliche kommen.<br />
Schwergewicht Fluke<br />
Der zweite Testkandidat, ein OneTouch<br />
AT von Fluke Networks, präsentierte<br />
sich schon beim Auspacken als Schwergewicht,<br />
<strong>und</strong> das im wörtlichen wie übertragenen<br />
Sinn: Mit einem deutlich größeren<br />
farbigen Touchscreen (14,5 cm Diagonale,<br />
480 x 640 Pixel) (Abbildung 4),<br />
mit leise rauschendem Lüfter <strong>und</strong> einem<br />
Kilo Elektronik mehr auf den Rippen,<br />
der es zu danken ist, dass das Gerät das<br />
Testarsenal seines Mitbewerbers qualitativ<br />
wie quantitativ übertrifft. Allerdings<br />
gilt das auch für den Preis: Während der<br />
LanXPLORER ab 1200 <strong>und</strong> bis 2800 Euro<br />
in der Vollausstattung kostet, muss man<br />
für das OneTouch AT mindestens knapp<br />
5000 Euro ausgeben, mit allem Drum<br />
<strong>und</strong> Dran kann man aber auch das Doppelte<br />
anlegen. Eine stolze Summe, bei der<br />
sicher nicht nur Gelegenheitsnutzer ins<br />
Rechnen kommen.<br />
Die gr<strong>und</strong>legenden Tests erledigt das<br />
OneTouch AT genauso spielend leicht wie<br />
zuvor der LanXPLORER. Ein Test-Button<br />
startet eine Reihe vorkonfigurierter Tests,<br />
die sich auch hier von der Verbindung<br />
zum nächsten Switch über das LAN <strong>und</strong><br />
dort angebotene Dienste bis zu Internetservices<br />
hocharbeiten <strong>und</strong> in einer alle<br />
Tests zusammenfassenden Wertung münden<br />
(grüner oder roter Kopfbalken). Existiert<br />
ein DHCP-Server, der nur Geräten<br />
mit ihm bekannter MAC-Adresse eine IP-<br />
Adresse gewährt, muss der Netzwerktester<br />
dem DHCP-Server bekannt gemacht<br />
werden, sonst ist nicht viel mehr als die<br />
Verkabelung testbar. Alternativ lässt sich<br />
die die MAC-Adresse des Testers auch<br />
editieren. Der erste <strong>und</strong> gr<strong>und</strong>legende<br />
Test ist eine Kabelprüfung auf richtige<br />
Verdrahtung, Unterbrechungsfreiheit <strong>und</strong><br />
Übersprechen sowie PoE, sofern verwendet.<br />
Mit einem speziellen Endstück gelingt<br />
eine recht genaue Längenmessung.<br />
Ein Auffinden des entfernten Kabelendes<br />
mithilfe eines Tongenerators ist wie beim<br />
LanXPLORER möglich, allerdings gehört<br />
der Empfänger (Sonde) nicht zum Lieferumfang,<br />
sondern muss als Zubehör<br />
erworben werden. Hat man eine aktive<br />
Gegenstelle, werden auch die angebotene<br />
wie die ausgehandelte Linkrate <strong>und</strong> der<br />
Duplex-Mode angezeigt. Beim nächstgelegenen<br />
Switch erkennt der Tester Modell,<br />
Abbildung 2: Das Kabel ist in Ordnung. Der Lanexplorer hat die Länge ermittelt<br />
<strong>und</strong> die Verdrahtung überprüft.<br />
Abbildung 3: Eine sogenannte Netmap in der Übersicht. Gespeicherte Ansichten<br />
lassen sich mit aktuellen Bef<strong>und</strong>en vergleichen.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
23
n etzwerk<br />
netzwerktester<br />
Abbildung 4: Der Netzwerktester OneTouch AT<br />
von Fluke Networks. Das Gerät hat einen großen<br />
Touchscreen <strong>und</strong> braucht einen Lüfter.<br />
Abbildung 5: Eine Übersicht zu einem Wi-Fi<br />
Access Point mit Angaben zur Signalstärke, SSID,<br />
Verschlüsselung <strong>und</strong> so weiter.<br />
Abbildung 6: Das Resultat des automatischen Tests:<br />
Gecheckt wurden sowohl eine kabelgeb<strong>und</strong>ene<br />
Verbindung wie ein WLAN. Der Ver-Fi-Test kam hinzu.<br />
IP- <strong>und</strong> Mac-Adresse sowie Portnummer<br />
der Verbindung, sofern der Switch SNMP<br />
versteht <strong>und</strong> das möglicherweise erforderliche<br />
Passwort (<strong>Co</strong>mmunity-String) in<br />
der Konfiguration des Testers hinterlegt<br />
wurde. Hier wie bei einem benachbarten<br />
Gateway lassen sich prinzipiell auch Portstatistiken<br />
abrufen, was aber ebenfalls<br />
SNMP <strong>und</strong> eine passende Konfiguration<br />
voraussetzt.<br />
Tieferer Einblick<br />
Im Unterschied zum zuvor getesteten<br />
Gerät kann der Kandidat von Fluke Networks<br />
nicht nur mit Ja oder Nein auf die<br />
Frage nach der Funktionstüchtigkeit etwa<br />
von DNS oder DHCP antworten, sondern<br />
liefert außerdem Perfomancedaten <strong>und</strong><br />
Details wie die Antwortzeit oder den<br />
Ablauftermin der DHCP-Informationen<br />
mit. Beim Ping-Test wird die Zeit für das<br />
DNS-Lookup gesondert ausgewiesen <strong>und</strong><br />
für die ICMP-Antworten erhält man Minimum,<br />
Maximum <strong>und</strong> Durchschnittswerte<br />
für die Geschwindigkeit. Zusätzlich<br />
zum einfachen Ping-Test kann man eine<br />
frei konfigurierbare Webseite abrufen<br />
oder ein MByte Testdaten von oder zu<br />
einem beliebigen FTP-Server transferieren.<br />
Auch eine Google-Suchanfrage <strong>und</strong><br />
ein Mail-Abruf stehen als frei konfigurierbare<br />
Tests bereit. Genauso lässt sich<br />
der SYN/ ACK-Handshake mit einem beliebigen<br />
Applikationsport checken. Ein<br />
spezieller Veri-Fi-Test ermittelt darüber<br />
hinaus Durchsatz, Datenverlust, Latenz<br />
<strong>und</strong> Jitter zwischen kabelgestützten <strong>und</strong><br />
WLAN-Verbindungen.<br />
WLAN inklusive<br />
Auch für die WLAN-Verbindungen als<br />
solche sind etliche Informationen abrufbar<br />
(Abbildung 5), darunter die Auslastung<br />
der Kanäle, Signalstärke <strong>und</strong><br />
Rauschen der Access Points, oder eine<br />
Liste der eingebuchten Clients. Mithilfe<br />
einer mitgelieferten, ansteckbaren Richtantenne<br />
lassen sich sogar WLAN-Clients<br />
oder Access Points orten.<br />
Wie beim LanXPLORER können dem Autotest<br />
weitere Komponenten hinzugefügt<br />
werden (Abbildung 6), allerdings hat der<br />
Admin hier mehr Freiheitsgrade: Neben<br />
den schon genannten gibt es Tests für<br />
verschiedene Protokolle einschließlich<br />
RTSP (Video), IGMP (Multicast) oder<br />
SMTP (E-Mail). Ähnlich wie beim zuvor<br />
betrachteten Gerät gibt es auch hier eine<br />
LAN-Ansicht, die Hosts, Server, Drucker<br />
oder VoIP-Gegenstellen summiert. Leider<br />
ist diese Ansicht nicht interaktiv, sodass<br />
sich keine Detailinformationen zu den<br />
erkannten Geräten abrufen lassen.<br />
Das haben wohl etliche Anwender bemängelt,<br />
denn nun plant der Hersteller<br />
eine Erweiterung. Außerdem weist die<br />
Übersicht „0 Switches“ aus, obwohl der<br />
Home-Screen sehr wohl den nächstgelegenen<br />
Switch kennt <strong>und</strong> en détail beschreibt.<br />
Das, wie auch nicht erkannte<br />
Drucker gehen auf das Konto einer unvollständigen<br />
SMTP-Konfiguration. Allerdings<br />
erkannte Konkurrent LanXPLORER<br />
einen Printserver auch ohne SMTP.<br />
Auch Flukes OneTouch AT kennt einen<br />
Inline-Modus, in dem es sich in eine bestehende<br />
Verbindung einschleifen lässt.<br />
Im Unterschied zum LanXPLORER lassen<br />
sich dabei auch Pakete mitschneiden.<br />
Zum Auswerten muss man sie allerdings<br />
doch wieder auf ein Speichermedium<br />
transferieren <strong>und</strong> mit einschlägiger Software<br />
auf einem PC betrachten.<br />
Fazit<br />
Ein hoher Preis muss hohe Erwartungen<br />
wecken. Beim OneTouch AT wird sie<br />
nicht jeder erfüllt sehen. Zwar kombiniert<br />
das Gerät leichte Bedienbarkeit mit<br />
einer Vielzahl zweckmäßiger Tests, ist<br />
flexibel konfigurierbar, dabei noch gut<br />
transportabel <strong>und</strong> kompakt. Es übertrifft<br />
aber ein Gerät, das preiswerter ist, oder<br />
auch die Lösung mit Laptop <strong>und</strong> freier<br />
Netztester-Software (Wireshark, NMap,<br />
Kismet oder ähnliche) nicht um so viel,<br />
wie man mit einem Blick auf die Rechnung<br />
vermuten sollte. So bleiben ihm<br />
wohl vor allem solche Anwendungsfälle,<br />
in denen die Kosten eine untergeordnete<br />
Rolle spielen, <strong>und</strong> in denen die Admins<br />
so oft <strong>und</strong> intensiv auf Fehlersuche im<br />
Netz unterwegs sind, dass ein kleiner<br />
Komfortgewinn bei ihnen einen sehr hohen<br />
Stellenwert einnimmt. (jcb) n<br />
24 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Linux-<strong>Magazin</strong><br />
ACADEMY<br />
... wir qualifizieren Ihre Mitarbeiter!<br />
IT Trainings Online<br />
Linux <strong>und</strong> Open Source<br />
Nutzen Sie die Vorteile<br />
der Linux-<strong>Magazin</strong> Academy!<br />
✓<br />
✓<br />
✓<br />
✓<br />
✓<br />
Kompetent: Unsere Dozenten sind ausge wiesene<br />
Profis mit lang jähriger Schulungserfahrung.<br />
Flexibel: Der Schulungsteilnehmer lernt, wann,<br />
wo <strong>und</strong> sooft er möchte.<br />
Kosteneffizient: Nutzen Sie Einsparungen<br />
gegenüber Vor-Ort-Schulungen.<br />
Übersichtlich: Die komfortable Web- Oberfläche<br />
zeigt gleich zeitig den Trainer <strong>und</strong> dessen<br />
Arbeitsfläche<br />
Individuell: Jeder Teilnehmer folgt seinem eigenen<br />
Lerntempo.<br />
Trainingspakete:<br />
• LPIC-1-Training<br />
LPIC-2-Training<br />
IT-Sicherheit Gr<strong>und</strong>lagentraining<br />
• WordPress 3.0<br />
www.lpi.org<br />
OpenOffice – Arbeiten mit Vorlagen<br />
Was Teilnehmer über die<br />
Linux-<strong>Magazin</strong> Academy sagen:<br />
„Mit den Videos haben Sie ins Schwarze<br />
getroffen. Es gibt nichts Vergleichbares.“<br />
„Eine hervorragende Anleitung zum<br />
praktischen Arbeiten.“<br />
Testen Sie unsere Demovideos:<br />
academy.linux-magazin.de/demo<br />
Präsentiert von:<br />
www.linux-magazin.de<br />
www.linuxhotel.de<br />
Weitere Infos: academy.linux-magazin.de
n etzwerK<br />
Autodiscovery<br />
© Scott Rothstein, 123RF<br />
Wie eine automatische Diensteerkennung gelingt<br />
Schatzsuche<br />
mangelt es an information über die eigene infrastruktur, sind Fehlinvestitionen<br />
<strong>und</strong> andere schwierigkeiten die Folge. die automatische erkennung<br />
aller Hosts <strong>und</strong> dienste ist dabei scheinbar der Königsweg – aber bewährt<br />
sie sich auch in der Praxis? bernd erk<br />
Das Stichwort Autodiscovery klingt vielversprechend<br />
<strong>und</strong> die Erwartungen sind<br />
hoch: Auf Knopfdruck soll sich ein Rechner<br />
im Netz alles Nötige zusammensuchen<br />
<strong>und</strong> daraus die Konfiguration des<br />
Monitoringsystems basteln. Das muss<br />
anschließend im Falle eines Falles nur<br />
noch alarmieren. Dieses Szenario taugt<br />
allerdings bestenfalls für ein optimistisches<br />
Vertriebsversprechen. Die Praxis<br />
sieht anders aus.<br />
Nagios <strong>und</strong> Icinga haben beide keinen<br />
Autodiscovery-Prozess. Wer so etwas<br />
dennoch haben will, der kann sich vieler<br />
nützlicher Tools bedienen, die diese<br />
Funktion nachbilden. Wie das geht, das<br />
beschreibt dieser Beitrag.<br />
Auch wenn häufig keine <strong>Co</strong>nfiguration<br />
Management Database (CMDB) oder<br />
ähnliche Werkzeuge zur Verwaltung der<br />
<strong>Co</strong>nfiguration Items vorhanden sind, stehen<br />
doch andere Informationsquellen zur<br />
Verfügung. Das können Listen von Serverhardware,<br />
DHCP- <strong>und</strong> DNS-Einträge<br />
oder auch Bestandsinformationen aus einem<br />
Active Directory sein. Häufig verwalten<br />
auch Tools der Hersteller bestimmte<br />
Hardware. Diese Informationen lassen<br />
sich oft leicht exportieren. So kann man<br />
die Daten von Cisco Works beispielsweise<br />
via CLI-Tool exportieren oder auch direkt<br />
auf die darunter liegende Datenbank via<br />
JDBC zugreifen.<br />
Die Konfiguration von Nagios beziehungsweise<br />
Icinga lässt sich von Haus aus in<br />
verschiedene Dateien <strong>und</strong> Unterordner<br />
aufteilen. So lassen sich beispielsweise<br />
in einem Verzeichnis manuell gepflegte<br />
Konfigurationsdateien speichern, ein anderes<br />
kann generierte Konfigurationen<br />
aufnehmen. Gerade hier sind Konfigurationsdateien<br />
ein sehr flexibles Mittel.<br />
Automatische Überwachung<br />
Gibt es noch gar keine oder nur unzureichende<br />
Informationen über die zu überwachende<br />
Umgebung, ist ein Autodiscovery<br />
der Infrastruktur ein gängiger Weg<br />
für eine erste Bestandsaufnahme. Nahezu<br />
alle Autodiscovery-Werkzeuge arbeiten<br />
nach dem gleichen Muster: Der Admin<br />
gibt einen IP-Bereich vor, dessen Adressen<br />
dann gescannt werden, um offene<br />
Ports zu finden <strong>und</strong> so die dort laufenden<br />
Dienste zu identifizieren. Gerade im<br />
Netz- <strong>und</strong> Hardwarebereich liefern darüber<br />
hinaus SNMP-Abfragen oft detailreiche<br />
Informationen über Komponenten<br />
<strong>und</strong> deren Zustand.<br />
NMap einsetzen<br />
NMap [1] steht für Network Mapper <strong>und</strong><br />
ist das Tool der Wahl für das Scannen von<br />
Netzbereichen. Neben reinen Portscans<br />
versucht es mit OS-Fingerprinting auch<br />
die entsprechende Betriebssystemplattform<br />
zu identifizieren. Einen simplen<br />
Portscan auf ein Beispielsystem bewerkstelligt<br />
der folgende Befehl: »nmap -v -A<br />
www.haribo.de«.<br />
Die gekürzte Ausgabe dieses Befehls<br />
zeigt Listing 1. Zu sehen sind die offenen<br />
Standardports wie FTP, SSH, HTTP<br />
<strong>und</strong> MySQL. Eines der leistungsfähigsten<br />
Merkmale von NMap ist die NMap Scripting<br />
Engine (NSE) [2]. Sie ermöglicht<br />
die Basisfunktionen von NMap mit kleinen<br />
Lua-Snippets zu erweitern, um mehr<br />
Details über bestimmte Dienste herauszufinden.<br />
Für eine Vielzahl von Applikationen<br />
<strong>und</strong> Protokollen gibt es bereits<br />
in Kategorien unterteilte fertige Skripte<br />
im Online-Archiv von NMap [3]. So ist<br />
für den Alltagsgebrauch schon alles an<br />
Bord. Mit der Verwendung der Snippets<br />
können vorhandene Dienste sowohl auf<br />
freigegebene Featuresets aber auch auf<br />
ihre Sicherheit untersucht werden.<br />
Anschließend gilt es, die gewonnenen<br />
Erkenntnisse ins Nagios- oder Icinga-Format<br />
zu verwandeln, was mit dem ebenfalls<br />
bereits vorhandenen Skript »nmap-<br />
2nagios-ng« [4] ein Kinderspiel ist.<br />
Hat man also zuerst eine bestimmte<br />
Range gescannt (zum Beispiel mit »nmap<br />
-sS -O -oX mynet.xml 10.10.0.0/24«),<br />
<strong>und</strong> sind die gewonnenen Ergebnisse in<br />
»mynet.xml« gelandet, lässt sich aus der<br />
XML-Datei so eine valide Nagios-/Icinga-<br />
Konfiguration generieren:<br />
./nmap2nagios-ng.pl -i -e -r mynet.xml U<br />
-o hostconfig.cfg<br />
26 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Autodiscovery<br />
n etzwerK<br />
Die verwendeten Standardeinstellungen<br />
für Thresholds, Kontaktgruppen, Hostgruppen<br />
<strong>und</strong> so weiter können vorher in<br />
der entsprechenden »conf«-Datei angepasst<br />
werden. Templates für neue Services<br />
können ebenfalls in der <strong>Co</strong>nfig-Datei<br />
hinterlegt werden, um dem Perl-Script<br />
neue Template-Zuordnungen beizubringen.<br />
Zum Schluss muss »hostconfig.cfg«<br />
dann lediglich noch in das richtige Verzeichnis<br />
kopiert werden, <strong>und</strong> los geht’s.<br />
Clientbasiertes Discovery<br />
Nach einer solchen netzwerkbasierten<br />
Inventur der Infrastruktur kann das Monitoring<br />
der Systeme natürlich noch verfeinert<br />
werden. Abhängig vom Betriebssystem<br />
gelingt das beispielsweise, indem<br />
man SNMP benutzt oder lokale Agenten<br />
einspielt.<br />
Als Beispiel für einen Agenten bietet etwa<br />
die bekannte Nagios-Lösung check_mk<br />
[5] die Möglichkeit, den Host nach vorhandenen<br />
Services zu durchsuchen <strong>und</strong><br />
diese zu überwachen. Solche Agenten<br />
sind für die gängigen Linux-Plattformen<br />
<strong>und</strong> Windows verfügbar. Für den Einsatz<br />
unter Windows bietet sich auch<br />
NSClient++ an, dessen Standardmodule<br />
auf jedem Client aktiviert werden<br />
können. Eine Besonderheit ist, dass NS-<br />
Client++ in der Lage ist, die Resultate<br />
selbst zu ermitteln <strong>und</strong> dann als passives<br />
Ergebnis an den Monitoringserver<br />
zu senden.<br />
Gerade unter Sicherheits- <strong>und</strong> Update-<br />
Gesichtspunkten ist es aber oft problematisch,<br />
individuelle Clients einzuspielen.<br />
Oft sind nur Pakete aus der jeweiligen<br />
Distribution zugelassen. Hier kann die<br />
Erweiterung des lokalen »snmpd« <strong>und</strong> die<br />
Verwendung von »check_snmp_extend«<br />
[6] Abhilfe schaffen. Die Idee dahinter<br />
ist einfach <strong>und</strong> genial zugleich. Neue<br />
mehr auf der OsmC<br />
Mehr zum Thema Autodiscovery für Monitoringlösungen<br />
gibt es auch auf der Open<br />
Source Monitoring <strong>Co</strong>nference [7], die der<br />
IT-Dienstleister Netways GmbH in der Zeit<br />
vom 17. bis zum 18. Oktober 2012 in Nürnberg<br />
ausrichtet, <strong>und</strong> auf dem ersten PuppetCamp<br />
in Deutschland [8]. Mit ähnlichen Themen<br />
wie sie dieser Artikel aufgreift, beschäftigen<br />
sich dort mehrere Vorträge namhafter<br />
Referenten.<br />
Kommandos zur Abfrage von Monitoring-<br />
Informationen werden in die »snmpd.<br />
conf«-Datei eingetragen <strong>und</strong> lassen sich<br />
dann mit einem normalen Plugin-Aufruf<br />
ausführen, wenn die korrekte SNMP<br />
<strong>Co</strong>mmunity angegeben wird.<br />
Das folgende Beispiel illustriert die Überwachung<br />
eines Software-Raid mithilfe<br />
dieses Eintrags in die »snmpd.conf«:<br />
extend raid-md0 /usr/local/bin/U<br />
check_raid.pl --device=md0<br />
Nach einem Neustart des »snmpd« ist<br />
die Abfrage sofort verfügbar <strong>und</strong> kann<br />
mit folgendem Nagios- oder Icinga-Snip<br />
verwendet werden.<br />
define service{<br />
use<br />
generic-service<br />
host_name<br />
snmp_server<br />
service_description SOFTRAID status<br />
check_command check_snmp_extensionU<br />
!raid-md0<br />
}<br />
vorhandenen Geschäftsprozesse. Dabei<br />
beginnt die Inventarisierung nicht durch<br />
Definition aller Komponenten, sondern<br />
vielmehr mit einer genauen Analyse der<br />
Geschäftsprozesse. Bei diesen Prozessen<br />
kann es sich um eine Mail-Lösung, das<br />
SAP-System oder auch die eigene Active-<br />
Bringt man die entsprechenden »snmpd.<br />
conf«-Erweiterungen<br />
mit einer Paketverteilung<br />
oder besser<br />
einem Konfigurationsmanagement<br />
auf die<br />
Clients aus, lassen sich<br />
die verfügbaren Informationen<br />
durch eine<br />
NMap-Erweiterung<br />
abfragen <strong>und</strong> automatisch<br />
in die Konfiguration<br />
übernehmen.<br />
• Linux - Crashkurs für Administratoren: 8.10.12<br />
• Python: 15.10. 12<br />
Zu Fuß<br />
Alle bisher beschriebenen<br />
Szenarien inventarisierten<br />
die Umgebung<br />
vollständig <strong>und</strong> nahmen<br />
alle gef<strong>und</strong>enen<br />
Komponenten in das<br />
Monitorung auf. Dieses<br />
Verfahren hat aber den<br />
Nachteil, dass man von<br />
der Vielzahl an Services<br />
leicht erschlagen<br />
wird <strong>und</strong> die wichtigen<br />
Komponenten nur<br />
schwer identifiziert.<br />
Ein anderer, jedoch manueller<br />
Ansatz ist die<br />
Konfiguration <strong>und</strong> Einrichtung<br />
auf Basis der<br />
Listing 1: nmap-Aufruf<br />
01 root@sandbox:~# nmap -v -A www.haribo.de<br />
02 ...<br />
03 Host www2.haribo.com (213.185.81.67) is up (0.011s<br />
latency).<br />
04 Interesting ports on www2.haribo.com (213.185.81.67):<br />
05 Not shown: 995 closed ports<br />
06 PORT STATE SERVICE VERSION<br />
07 21/tcp open ftp?<br />
08 22/tcp open tcpwrapped<br />
09 80/tcp open http Apache httpd<br />
10 |_ html-title: Requested resource was http://www2.<br />
haribo.com/?locale=de-DE and no page was returned.<br />
11 443/tcp open ssl/http Apache httpd<br />
12 |_ html-title: Requested resource was http://www2.<br />
haribo.com/?locale=de-DE and no page was returned.<br />
13 3306/tcp open tcpwrapped<br />
Jetzt<br />
anrufen<br />
<strong>und</strong> Termin<br />
sichern!<br />
Linux Schulungen 2012 – Nicht verpassen!<br />
• NEU: Die BASH-Shell für Administratoren: 22.10.12<br />
• Systemmonitoring mit Nagios <strong>und</strong> Check_MK: 12.11.12<br />
• NEU: Erweiterungen programmieren für Check_MK (5 Tage): 19.11.12<br />
• Linux als Server im Inter- <strong>und</strong> Intranet: 26.11.12<br />
• Storage - LVM, MD, Multipathing, iSCSI: 3.12.12<br />
• Fortgeschrittenes Monitoring mit Nagios & Check_MK: 10.12.12<br />
Gerne machen wir auch Inhouse-Schulungen direkt bei Ihnen vor Ort.<br />
Fragen Sie uns nach einem Angebot zu Ihrem Wunschthema.<br />
Tel.: 089 / 18 90 42 10<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
mk@mathias-kettner.de<br />
AusgA be 05-2012 www.mathias-kettner.de<br />
27
n etzwerK<br />
Autodiscovery<br />
Directory-Domain handeln.<br />
Nach Festlegung der entsprechenden<br />
Prioritäten beginnt<br />
man also den Prozess zu zerlegen<br />
<strong>und</strong> seine Einzelbausteine<br />
zu identifizieren.<br />
Bleiben wir beim Beispiel des<br />
Mail<br />
zentralen Exchange-Clusters<br />
(Abbildung 1). Um den Mail-<br />
Service zu gewährleisten, sind<br />
verschiedene Subsysteme notwendig,<br />
die ebenfalls eigene<br />
Abhängigkeiten aufweisen.<br />
Durch Definition eines solchen<br />
Service-Abbildes lassen Mail-Cluster.<br />
sich diese Abhängigkeiten<br />
identifizieren <strong>und</strong> die einzelnen Subsysteme<br />
auch in anderen Prozessen weiterverwenden.<br />
So ist der DNS-Cluster<br />
mit großer Wahrscheinlichkeit auch für<br />
andere Teilprozesse von großer Bedeutung<br />
<strong>und</strong> muss dann nicht neu definiert<br />
werden.<br />
Die beteiligten Hosts <strong>und</strong> Services lassen<br />
sich auf diese Weise konfigurieren <strong>und</strong><br />
dann überwachen. Nach <strong>und</strong> nach entsteht<br />
so ein Prozessabbild der eigenen<br />
Umgebung, was in der Regel ein besseres<br />
Verständnis der IT-Umgebung ermöglicht<br />
als es mit einem Sammelsurium unabhängiger<br />
Einzeldienste möglich wäre.<br />
Auch für bestehende Monitoringumgebungen<br />
ist dieses Vorgehen ein guter Revisions-<br />
<strong>und</strong> Optimierungsprozess.<br />
Die Schattenseite von<br />
Autodiscovery<br />
Das große Problem von automatisch<br />
erfassten Umgebungen ist das Prinzip<br />
Masse statt Klasse. Ein Blick auf ein Monitoringsystem<br />
gibt meist schnell darüber<br />
Aufschluss, ob kontrolliert gearbeitet<br />
wurde oder schlichtweg alles überwacht<br />
wird, was sich NMap <strong>und</strong> lokalen Agenten<br />
nicht entziehen konnte.<br />
Das erstes Problem, das daraus resultiert,<br />
ist die meist unqualifizierte Alarmierung<br />
die zu Mail-Regeln mit anschließenden<br />
Papierkorb-Verschiebungen führt.<br />
Alternativ behilft sich der Admin dann<br />
damit, dass er alle ihm nicht wirklich<br />
bekannten Services auf Downtime<br />
setzt oder die Notifizierung deaktiviert.<br />
Im Ergebnis weiß dann keiner mehr so<br />
genau, was, wie <strong>und</strong> vor allem warum<br />
überwacht wird. Ein weiteres Problem<br />
DNSCluster<br />
Exchange Cluster<br />
Internet <strong>Co</strong>nnection<br />
Abbildung 1: Schematische Darstellung der Service-Abhängigkeiten in einem<br />
ist das Lifecycle-Management einer solchen<br />
Umgebung. Durchläuft das Überwachungs-Setup<br />
nicht die klassischen Status<br />
Entwicklung, Test/ QA <strong>und</strong> Produktion<br />
sind die Konsequenzen leicht abzusehen:<br />
Es wird entweder alles, nichts oder<br />
das Falsche alarmiert. Unterschiedliche<br />
Prioritäten lassen sich schwer qualifizieren,<br />
die Admins werden demotiviert <strong>und</strong><br />
am Ende werden SMS-Alerts konsequent<br />
ignoriert.<br />
Wie geht es besser<br />
Macht man sich erst beim Einrichten des<br />
Monitoring Gedanken über die vorhandene<br />
Infrastruktur, ist schon zuvor einiges<br />
schiefgelaufen. Wenngleich die Pflege<br />
einer CMDB <strong>und</strong> die Einführung eines<br />
Konfigurationsmanagements mit großen<br />
Aufwänden verb<strong>und</strong>en sind, handelt<br />
es sich doch meist um eine lohnende<br />
Investition. So ist dann die Hard- <strong>und</strong><br />
Softwareausstattung aller Systeme schon<br />
vor Einbau in das Rack bekannt. Daraus<br />
leitet sich dann auch auf logische Weise<br />
ein vernünftiges Monitoring ab. Parallel<br />
zur Installation des Servers, der Monitoring-Clients<br />
<strong>und</strong> Agenten lassen sich so<br />
auch passende Checks deployen <strong>und</strong> in<br />
das Monitoring-System übertragen.<br />
Viel wichtiger jedoch ist die nachhaltige<br />
Weiterverarbeitung von Events <strong>und</strong> Fehlern,<br />
die für ein aussagekräftiges Problem-Management<br />
notwendig sind. Werden<br />
Services also automatisch generiert<br />
<strong>und</strong> eindeutige CI-Informationen wie<br />
etwa die CI-ID aus dem CMDB-System<br />
an den Check übergeben, können die<br />
da raus resultierenden Fehler <strong>und</strong> die<br />
Alarme später wieder dem betroffenen<br />
c1-dns-1 : bind-response<br />
c1-dns-2 : bind-response<br />
c1-dns-3 : bind-response<br />
Exchange Node 1<br />
Exchange Node 2<br />
c1-router : c1-<br />
internetconnection-1<br />
c1-router : c1-<br />
internetconnection-2<br />
Objekt zugeordnet werden.<br />
Aus dem <strong>Co</strong>nfiguration Item<br />
für ein SAN-Volume wird<br />
so also ein SAN-Check mit<br />
Custom Variable <strong>und</strong> im Fehlerfall<br />
wieder ein Alert, der<br />
diese Komponente eindeutig<br />
identifiziert. Dann ist es nur<br />
noch ein kleiner Schritt, um<br />
aus dem Alert die dazu passenden<br />
CMDB-Informationen<br />
abzurufen.<br />
Zu guter Letzt sei noch ein<br />
kurzer Blick über den Tellerrand<br />
gestattet: Nagios <strong>und</strong><br />
Icinga sind zwei hervorragende<br />
Monitoringsysteme, die sich nicht<br />
nur zum Überwachen von Servern, Switchen<br />
oder Storage-Systemen eignen, sondern<br />
die auch inventarisieren können. So<br />
ist es Nagios oder Icinga beispielsweise<br />
möglich, durch kleinere Anpassungen<br />
von Standardprüfungen ohne Probleme<br />
Seriennummern, Anzahlen von Prozessoren,<br />
Arbeitsspeicher oder Festplatten <strong>und</strong><br />
natürlich deren jeweilige Auslastung zu<br />
liefern. Die auf diesem Weg gewonnenen<br />
Daten können für spätere Auswertungen<br />
einem Business-Report zugutekommen<br />
oder schlicht <strong>und</strong> einfach in die CMDB<br />
zurückfließen, was viele immer wiederkehrende<br />
Pflegearbeiten spart. (jcb) n<br />
Infos<br />
[1] NMAP: [http://nmap.org]<br />
[2] Doku zur Nmap Scripting Engine:<br />
[http://nmap. org/ book/nse.html]<br />
[3] NSE-Skripte: [http://nmap.org/ nsedoc]<br />
[4] nmap2nagios-ng: [https://www.<br />
monitoringexchange.org/inventory/<br />
Utilities/AddOn-Projects/<strong>Co</strong>nfiguration/<br />
nmap2nagios-ng]<br />
[5] check_mk:<br />
[http://mathias-kettner.de/check_mk.html]<br />
[6] check_snmp_extend: [https://github.com/<br />
nickanderson/ check_snmp_extend]<br />
[7] Open Source Monitoring <strong>Co</strong>nference:<br />
[http://www. netways.de/osmc]<br />
[8] Puppet Camp:<br />
[http://www. netways.de/puppetcamp]<br />
Der Autor<br />
Bernd Erk ist Managing Director der Nürnberger<br />
NETWAYS GmbH, die sich seit über 15 Jahren auf<br />
das Thema Open Source Systems Management<br />
spezialisiert hat.<br />
28 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
www.kamp.de<br />
In der IT setzt man besser<br />
auf einen starken Partner!<br />
IT-Lösungen – stark <strong>und</strong> individuell. Mehr unter www.kamp.de
VirT uA lisierung<br />
Hyper-V 3.0<br />
© Nico Smit, 123RF<br />
Hyper-V 3.0 in Windows Server 2012<br />
Revierkampf<br />
mit dem alten Hypervisor Hyper-V ließ microsoft noch viele Features für<br />
den professionellen einsatz vermissen. die neue Version 3.0 wurde deutlich<br />
verbessert <strong>und</strong> schließt langsam zu Vmware auf. Thomas Joos<br />
Mit Windows Server 2012 liefert Microsoft<br />
eine neue Version seiner Visualisierungstechnologie<br />
Hyper-V aus. Sie<br />
bietet gegenüber dem Vorgänger einge<br />
Verbesserungen. Da die Technologie zum<br />
Lieferumfang des Serverbetriebssystems<br />
gehört, können Unternehmen Hyper-V<br />
3.0 generell ohne Zusatzkosten nutzen.<br />
Dieser Artikel gibt einen Überblick über<br />
die für den praktischen Einsatz wichtigsten<br />
Neuerungen. Wer sie selbst erfahren<br />
will, kann den Release Candidate von<br />
Windows Server 2012 herunterladen, der<br />
auf [1] zur Verfügung steht.<br />
Mehr Speicher<br />
Hyper-V-Hosts können zukünftig 2 TByte<br />
RAM nutzen <strong>und</strong> 160 CPUs verwalten,<br />
Virtuelle Maschinen selbst nutzen 512<br />
GByte Arbeitsspeicher. Virtuelle Maschinen<br />
lassen sich in Hyper-V-Clustern priorisieren<br />
<strong>und</strong> mit der Livemigration im<br />
laufenden Betrieb zwischen Clusterknoten<br />
verschieben. Fällt ein Knoten aus,<br />
verschiebt Hyper-V 3.0 die virtuellen<br />
Maschinen mit der höchsten Priorität<br />
zuerst.<br />
Mit Schnappschüssen lassen sich virtuelle<br />
Server zu einem bestimmten Zeitpunkt<br />
sichern <strong>und</strong> wiederherstellen. Bei<br />
Domänencontrollern sichern Snapshots<br />
auch die Active-Directory-Datenbank.<br />
Setzten Anwender auf einem Domänencontroller<br />
einen Schnappschuss zurück,<br />
konnte es bisher zu Inkonsistenzen der<br />
AD-Datenbank kommen, die auch die anderen<br />
Domänencontroller beeinflussten.<br />
Das liegt daran, dass in einem Active Directory<br />
alle Objekte eine bestimmte Nummer<br />
besitzen, die Update Sequence Number<br />
(USN). Jeder DC führt eine eigene<br />
Liste dieser USNs <strong>und</strong> befindet sich auch<br />
in dieser Liste. Setzt man einen Snapshot<br />
zurück, ändern sich die USNs vieler Objekte,<br />
was mit hoher Wahrscheinlichkeit<br />
zu Inkonsistenzen führt. In jedem Fall<br />
trennen die anderen DCs den wiederhergestellten<br />
DC vom Netzwerk.<br />
Durch die Neuerungen von Active Directory<br />
in Windows Server 2012 <strong>und</strong> Hyper-<br />
V 3.0 lassen sich Domänencontroller mit<br />
Windows Server 2012 nun leichter virtualisieren.<br />
Das Erstellen von Snapshots für<br />
Domänencontroller stellt kein Problem<br />
mehr dar.<br />
Um einen virtuellen Domänencontroller<br />
mit Windows Server 2012 zu klonen, sind<br />
keine Zusatztools notwendig. Administratoren<br />
kopieren einfach die virtuelle Maschine<br />
<strong>und</strong> geben dem Klon einen neuen<br />
Namen. Auf Basis der neuen Generation-<br />
ID in Windows Server 2012 <strong>und</strong> deren<br />
Unterstützung in Hyper-V 3.0 erkennt<br />
der neue Server das Active Directory <strong>und</strong><br />
bindet sich problemlos ein.<br />
Mit Hyper-V-Replica lassen sich in Windows<br />
Server 2012 virtuelle Festplatten<br />
<strong>und</strong> ganze Server asynchron zwischen<br />
verschiedenen Hyper-V-Hosts im Netzwerk<br />
replizieren <strong>und</strong> synchronisieren.<br />
Die Replikation findet über das Dateisystem<br />
statt, ein Cluster ist nicht notwendig.<br />
Die Replikationen kann manuell, automatisiert<br />
oder nach einem Zeitplan stattfinden.<br />
Auf diesem Weg lassen sich virtuelle<br />
Server auch hochverfügbar betreiben,<br />
ohne teure Cluster zu installieren. Zur<br />
Einrichtung bietet der Hyper-V-Manager<br />
einen Assistenten.<br />
Einfachere Replikation<br />
Im Gegensatz zur aktuellen Version von<br />
VMware-Produkten kann Hyper-V diese<br />
Replikation unabhängig vom eingesetzten<br />
Speichersystem durchführen; außerdem<br />
steht die Funktion kostenlos zur<br />
Verfügung. Mit dieser neuen Technologie<br />
lassen sich problemlos virtuelle Server im<br />
laufenden Betrieb zwischen verschiedenen<br />
Hyper-V-Hosts replizieren.<br />
Die entsprechende Replikation steuert<br />
man über einen Assistenten, der über<br />
das Kontextmenü von virtuellen Servern<br />
im Hyper-V-Manager erreichbar ist. Damit<br />
ein Hyper-V-Host überhaupt für Replikate<br />
zur Verfügung steht, muss der<br />
Administrator sie auf dem Server in den<br />
»Hyper-V-Einstellungen« im Bereich »Replikationskonfguration«<br />
erst aktivieren<br />
(Abbildung 1).<br />
Wurde die Konfiguration nicht vor der<br />
Aktivierung der Replikation vorgenommen,<br />
erkennt der Replikations-Assistent<br />
das <strong>und</strong> schlägt die Konfiguration des<br />
Ziel-Servers vor. Diese Konfiguration ist<br />
dann auch über das Netzwerk möglich.<br />
Es ist allerdings empfehlenswert, sie<br />
schon vor der Einrichtung der Replikation<br />
vorzunehmen.<br />
Größere Platten<br />
Hat der Quell-Server den Ziel-Server erfolgreich<br />
verifiziert, kann der Administrator<br />
die Replikation weiter konfigurieren<br />
<strong>und</strong> die Authentifizierung festlegen, mit<br />
der sich Ziel- <strong>und</strong> Quell-Server miteinander<br />
verbinden. So wählt er etwa aus,<br />
welche virtuellen Festplatten auf den<br />
30 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Hyper-V 3.0<br />
VirT uA lisierung<br />
G Abbildung 2: Festlegen der Optionen für die initiale Replikation.<br />
F Abbildung 1: Aktivieren der Replikation auf einem Hyper-V-Host.<br />
Ziel-Server repliziert werden sollen. Windows<br />
Server 2012 arbeitet bei virtuellen<br />
Festplatten mit VHDX-Dateien, die eine<br />
Größe von 16 TByte erreichen können<br />
– in Windows Server 2008 R2 SP1 sind<br />
VHD-Dateien auf 2 TByte beschränkt.<br />
Außerdem lässt sich festlegen, ob die<br />
Replikation auch Schnappschüsse mitreplizieren<br />
soll oder nur den eigentlichen<br />
Server. Neben dem aktuellsten Zeitpunkt<br />
kann man beliebige Wiederherstellungspunkte<br />
in der Vergangenheit erlauben.<br />
Allerdings erhöht das deutlich den Ressourcen-Verbrauch<br />
der Replikation. Die<br />
letzte Option steuert die erste Replikation<br />
Anzeige<br />
Kann eine<br />
Schulungseinrichtung<br />
für mehr als EINEN<br />
Themenbereich<br />
berühmt werden?<br />
Das Linuxhotel ist bekannt für erstklassige Open-Source-Schulungen. In den letzten Jahren kamen Java<br />
<strong>und</strong> andere Programmiersprachen hinzu - wie immer in Kooperation mit führenden Spezialisten, <strong>und</strong> in<br />
abgeschiedener, konzentrierter, aber auch ziemlich verspielter Umgebung. Es ist so naheliegend, auch<br />
Entwicklerthemen bei den OpenSource‘lern zu lernen, weil man dort schon immer sehr „unter die<br />
Haube“ guckte <strong>und</strong> mit viel Freude intensivst arbeitet. Das weiss ein Großteil der deutschen Admins, nur<br />
unter Entwicklern hat's sich noch nicht so ganz herumgesprochen.<br />
Mehr siehe www.linuxhotel.de<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
31
VirT uA lisierung<br />
Hyper-V 3.0<br />
Abbildung 3: Die Erweiterungen für virtuelle Switches in Windows Server 2012<br />
bieten Protokollierung <strong>und</strong> Filter per Windows Filtering Platform.<br />
des Servers. Man kann in diesem Bereich<br />
eine sofortige Replikation anstoßen oder<br />
sie zeitgesteuert starten (Abbildung 2).<br />
Wer sich extra neue Rechner für Hyper-V<br />
zulegt, sollten darauf achten, dass sie<br />
auch mit genügend Netzwerkkarten ausgestattet<br />
sind. Wichtig ist dabei auch,<br />
dass die Karten die neuen Funktionen in<br />
Hyper-V unterstützen. In den Netzwerkeinstellungen<br />
lassen sich unter anderem<br />
Berechnungen für IPsec vom Prozessor<br />
des virtuellen Servers auf die Netzwerkkarte<br />
auslagern.<br />
Ebenfalls neu in Hyper-V ist die Single-<br />
Root I/ O Virtualization (SR-IOV). Auch<br />
hier lassen sich Hardware-Funktionen<br />
von Netzwerkkarten durch Hyper-V nutzen.<br />
Dazu stellen kompatible Netzwerkkarten<br />
für virtualisierte Umgebungen implementierte<br />
E/ A-Kanäle zur Verfügung,<br />
mit denen sich die Netzwerkkarte gegenüber<br />
virtualisierten Servern wie mehrere<br />
Netzwerkkarten verhält. SR-IOV ist vor<br />
allem bei E/ A-intensiven Anwendungen<br />
interessant, etwa für SQL Server.<br />
Virtuelle Switches<br />
Bevor man auf einem Hyper-V-Host virtuelle<br />
Server installiert, besteht der erste<br />
Schritt in der Konfiguration des virtuellen<br />
Switches, in Hyper-V auch vSwitch genannt.<br />
Dazu steht im Hyper-V-Manager<br />
der Bereich »Manager für virtuelle Switches«<br />
zur Verfügung. Zunächst erstellt<br />
man für die einzelnen physischen Netzwerkkarten<br />
im Server einen virtuellen<br />
Switch. Im Bereich MAC-Adressbereich<br />
lässt sich der dynamische MAC-Bereich<br />
festlegen, den die virtuellen Netzwerkkarten<br />
der Server erhalten.<br />
Für virtuelle Server lassen sich aber auch<br />
statische MAC-Adressen festlegen. Das ist<br />
vor allem bei einem Betrieb im Cluster<br />
wichtig. Verschiebt man virtuelle Server<br />
zwischen den Clusterknoten, ändern sich<br />
beim Neustart die MAC-Adressen, da jeder<br />
Knoten seinen eigenen Pool hat. Das<br />
kann zu Problemen<br />
mit der Windows-<br />
Aktivierung sowie<br />
mit Netzwerklas-<br />
tenausgleichs-<br />
Clustern führen.<br />
Virtuelle Switches<br />
agieren als Layer-<br />
2-Netzwerkswitches<br />
<strong>und</strong> erlauben<br />
auch die Einbindung<br />
von NDIS-<br />
Filtern (Network<br />
Device Interface Specification) <strong>und</strong> von<br />
Windows-Filtering-Platform-Treibern.<br />
Auf diese Weise lassen sich auch Plugins<br />
von Drittherstellern in Hyper-V einbinden,<br />
die erweiterte Netzwerk- <strong>und</strong><br />
Sicherheitseinstellungen für virtuelle<br />
Server bieten (Abbildung 3). Die entsprechenden<br />
Einstellungen sind über den<br />
Menüpunkt »Erweiterungen« für jeden<br />
einzelnen vSwitch zu finden.<br />
Sind die physischen Netzwerkkarten des<br />
Servers jeweils einem virtuellen Switch<br />
zugeordnet, lassen sich diese den einzelnen<br />
virtuellen Servern zuweisen.<br />
Das erfolgt beim Erstellen der virtuellen<br />
Maschine oder nachträglich in den<br />
Einstellungen über den Bereich »Netzwerkkarte«.<br />
Die erste Einstellung besteht<br />
in der Zuweisung des virtuellen Switch.<br />
Direkt auf der Startseite steht auch die<br />
Steuerung der Bandbreite zur Verfügung.<br />
Auf diese Weise lässt sich die erlaubte<br />
Netzwerknutzung virtueller Server genauer<br />
steuern als in Windows Server<br />
2008 R2.<br />
Neue Wächter<br />
Abbildung 4: In den erweiterten Netzeinstellungen finden sich zum Beispiel die<br />
DHCP- <strong>und</strong> Routerwächter, die Störenfriede im Netz verhindern.<br />
Bei den erweiterten Features finden<br />
sich die beiden neuen Einstellungen<br />
»DHCP-Wächter« <strong>und</strong> »Router-Wächter«,<br />
die verhindern, dass virtuelle Server unkontrolliert<br />
als DHCP-Server oder als<br />
Router agieren (Abbildung 4). Dies soll<br />
verhindern, dass virtuelle Server unerwünscht<br />
als DHCP-Server oder Router<br />
agieren <strong>und</strong> das Netzwerk stören.<br />
Windows Server 2008 R2 kann immer<br />
nur einen Server auf einmal übertragen,<br />
was meistens nicht sehr effizient ist, vor<br />
allem bei Cluster-Umgebungen, die mehrere<br />
virtuelle Server hosten. Windows<br />
Server 2012 mit Hyper-V 3.0 kann jetzt<br />
mehrere Livemigrationen auf einmal<br />
durchführen. Die Einstellungen sind in<br />
den Hyper-V-Einstellungen des Hosts im<br />
Bereich »Livemigrationen« zu finden.<br />
Fazit<br />
Hyper-V 3.0 ist ein herausragendes Feature<br />
von Windows Server 2012. Microsoft<br />
hat viele Schwachpunkte der Vorgängerversionen<br />
behoben <strong>und</strong> die Virtualisierungsplattform<br />
effizient weiterentwickelt.<br />
Die neue Hyper-V-Replikation, die deutlich<br />
verbesserten Möglichkeiten für virtuelle<br />
Netzwerkkarten sowie die neuen<br />
Möglichkeiten der Live-Migration bieten<br />
einen echten Mehrwert. Auf absehbare<br />
Zeit wird VMware wohl der Platzhirsch<br />
des Virtualisierungswalds bleiben, aber<br />
Microsoft schleicht mit Hyper-V langsam<br />
heran. (ofr)<br />
n<br />
Infos<br />
[1] Download von Windows Server 2012 Release<br />
Candidate: [http:// technet. microsoft.<br />
com/ de‐de/ evalcenter/ hh670538. aspx]<br />
32 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
NEU!<br />
HP MicroServer<br />
Die günstigsten Dedicated<br />
Marken-Server der Welt<br />
ECO<br />
Certification<br />
Ab 17,99 € im Monat erhalten Sie<br />
Ihren eigenen Dedicated Root-Server<br />
NEU<br />
Eigener Dedicated Server<br />
CPU<br />
Leistung<br />
RAM<br />
Festplatten (7.200 rpm)<br />
Festplatten-Ausbau bis zu<br />
Optionaler Raid-<strong>Co</strong>ntroller<br />
<strong>KVM</strong> over IP optional<br />
Anbindung<br />
IPv4 Adresse inkl.<br />
IPv6 Subnetz (/64) inkl.<br />
Betriebssysteme<br />
Extras<br />
Monatsgr<strong>und</strong>gebühr ab<br />
Einrichtungsgebühr<br />
HP MicroServer S HP MicroServer M HP MicroServer L<br />
AMD N40L<br />
2 x 1,5 GHz<br />
4 GB DDR3<br />
1 x 160 GB<br />
4 x 3.000 GB<br />
AMD N40L<br />
2 x 1,5 GHz<br />
8 GB DDR3<br />
2 x 1.000 GB<br />
4 x 3.000 GB<br />
AMD N40L<br />
2 x 1,5 GHz<br />
16 GB DDR3<br />
2 x 3.000 GB<br />
4 x 3.000 GB<br />
100 MBit Flatrate 100 MBit Flatrate 100 MBit Flatrate<br />
Debian 6.0, Ubuntu 12.04<br />
NEU<br />
CentOS 6, openSUSE 12.1, FreeBSD 8.1, Windows 2008 R2 (19,99 € Aufpreis im Monat)<br />
50 GB Backup-Speicher, Monitoring, Reset- <strong>und</strong> Rescue-System<br />
17,99 € 34,99 € 49,99 €<br />
0,00 € 0,00 € 0,00 €<br />
Jetzt informieren <strong>und</strong> bestellen Tel.: 0211 / 545 957 - 300 www.webtropia.com<br />
powered by<br />
PLATINUM PARTNER
ViRTuA lisieR ung<br />
oVirt 3.1<br />
© Roger Jegg, 123RF<br />
Verwaltung virtueller Infrastrukturen mit oVirt 3.1<br />
Wirtshaus<br />
die ursprünglich von Red Hat initiierte Verwaltungsplattform für virtuelle<br />
infrastrukturen oVirt steht seit Kurzem in der Version 3.1 zur Verfügung.<br />
mit Fedora 17 lässt sich das neue Release einfach installieren <strong>und</strong> in<br />
betrieb nehmen. Thomas drilling<br />
Vor einigen Jahren sorgte Red Hat für<br />
Unmut in der Linux-Gemeinde, weil<br />
das grafische Verwaltungstool für die<br />
eigene Virtualisierungslösung RHEV einen<br />
Windows-Rechner voraussetzte. Die<br />
Microsoft-Altlast rührte daher, dass Red<br />
Hat im Jahr 2008 nicht nur den vom<br />
israelischen <strong>KVM</strong>-Spezialisten Qumranet<br />
entwickelten <strong>KVM</strong>-Hypervisor übernommen,<br />
sondern gleich die ganze Firma gekauft<br />
hat, mitsamt eines zum damaligen<br />
Zeitpunkt fast fertigen Desktop-Virtualisierungs-Produkts,<br />
das auf Windows<br />
basierte.<br />
Ade Windows<br />
Mit RHEV-Version 3.0 [1] haben die<br />
Red-Hat-Entwickler zwar alle Bestandteile<br />
der Management-Komponente<br />
„RHEV-M“ von C# auf Java portiert, der<br />
Einsatz der Administrator <strong>Co</strong>nsole erfordert<br />
bei RHEV aber offiziell immer noch<br />
eine Windows-Maschine mit Internet Explorer<br />
7 oder größer, weil das auf oVirt<br />
basierende Frontend noch nicht alle Features<br />
des Vorgängers beherrscht. Seit Red<br />
Hat oVirt unter der Apache-Open-Source-<br />
Lizenz der Gemeinschaft übergeben hat<br />
<strong>und</strong> die Software unter dem Dach des<br />
gleichnamigen oVirt-Projektes von Suse,<br />
Canonical, Cisco, IBM, Intel <strong>und</strong> anderen<br />
gemeinsam weiterentwickelt wird, hat<br />
oVirt das Potenzial, den kommerziellen<br />
Lösungen von VMware, Citrix <strong>und</strong> Microsoft<br />
eine leistungsfähige, freie Cloud-<br />
Management-Plattform als Alternative<br />
gegenüberzustellen, die keineswegs nur<br />
Red-Hat-basierte Strukturen verwaltet.<br />
Das oVirt-Projekt basiert auf zahlreichen<br />
von Red Hat entwickelten Technologien<br />
mit der Kernel-based Virtual Machine<br />
(<strong>KVM</strong>) <strong>und</strong> der Virtualisierungs-API Libvirt.<br />
Die erste finale <strong>und</strong> stabile oVirt-<br />
Version 3.0 ist als Technologie-Preview in<br />
Red Hats kommerzieller Virtualisierung-<br />
Lösung RHEV 3.0 [1] enthalten, die seit<br />
Januar diesen Jahres verfügbar ist.<br />
RHEV-Setup<br />
Eine Installation von RHEV für Server<br />
besteht typischerweise aus einem (oder<br />
mehreren) Hypervisor-Hosts „RHEV-H“,<br />
einem Management-Sytem „RHEV-M“,<br />
das wahlweise auf RHEV oder RHEL basierende<br />
Hypervisor-Systeme verwaltet,<br />
sowie einem Host für die Administrationskonsole<br />
<strong>und</strong> einem PC (Windows<br />
oder Linux) für das Benutzer-Portal.<br />
Hinzu kommen ein oder mehrere Storage-Systeme<br />
(SAN, iSCSI).<br />
Die jeweiligen minimalen <strong>und</strong> empfohlenen<br />
Hardware-Anforderungen zeigt Red<br />
Hats Promo-Seite [2] beim Herunterladen<br />
der Evaluierungs-Version von RHEV<br />
3. Red Hat schlägt zum Testen auch ein<br />
Minimal-Setup vor. Das besteht aus einem<br />
Enterprise Virtualization Manager Server<br />
(RHEV-M) mit einer lokalen ISO-Domain<br />
<strong>und</strong> einem Hypervisor-Host. Ersterer<br />
soll laut Red Hat nach Möglichkeit ein<br />
RHEL6-System mit Quadcore-Prozessor,<br />
16 GByte RAM, 50 GByte lokalem Festplattenspeicher<br />
<strong>und</strong> 1-GBit-Netzwerkkarte<br />
sein, der die erwähnte ISO-Domain<br />
zur Verfügung stellt.<br />
Als Client für die Admin <strong>Co</strong>nsole empfiehlt<br />
Red Hat ein Windows-7-System.<br />
Bleibt noch der Mini-Hypervisor RHEV-H<br />
für den Virtualisierungs-Host. Der lässt<br />
sich wahlweise als 172 MByte kleine<br />
Evaluierungs-Version von Red Hat herunterladen,<br />
darf aber laut Red Hat auch<br />
RHEL 6 (also auch CentOS 6) oder Fedora<br />
17 sein. Als Hardware empfiehlt Red<br />
Hat einen Dual-<strong>Co</strong>re-Server mit 16 GByte<br />
RAM, <strong>und</strong> 50 GByte Speicher sowie eine<br />
1-GBit-Netzwerkkarte. Dessen CPU muss<br />
allerdings zwingend ein 64-Bit-System<br />
mit Virtualisierungs-Erweiterung AMD-<br />
V oder Intel VT sein.<br />
RHEV 3 basiert im Gegensatz zu RHEV<br />
2.2 nicht mehr auf RHEL 5, sondern<br />
auf RHEL 6, was <strong>KVM</strong>-seitig eine Reihe<br />
von Vorteilen mitbringt. Gastsysteme<br />
34 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
oVirt 3.1<br />
ViRTuA lisieRung<br />
können damit beispielsweise bis zu 64<br />
virtuelle CPU-Kerne <strong>und</strong> bis zu 2 TByte<br />
Arbeitsspeicher verwenden. Ferner unterstützt<br />
der RHEL6-Kernel alle aktuellen<br />
<strong>KVM</strong>-Techniken wie KSM (Kernel<br />
Shared Memory), Vhost-Net, Transparent<br />
Huge pages (THP) oder X2apic.<br />
Fehlt noch eine weitere Komponente<br />
im RHEV-Virtualisierungsbaukasten<br />
„RHEV für Desktops“, ein Add-on für<br />
RHEV-Server, das eine Virtual Desktop<br />
Infrastructure (VDI) ermöglicht.<br />
Die Kommunikation zwischen einem<br />
Client oder Thin-Client <strong>und</strong> via RHEV<br />
virtualisiertem Desktop-Betriebssystem<br />
läuft dabei über das von Qumranet entwickelte<br />
Spice-Protokoll, das Red Hat<br />
ebenfalls inzwischen an zahlreichen<br />
Stellen verbessert hat, sodass Nutzer<br />
beispielsweise auch beliebige USB-1.1/<br />
2.0-Geräte an den Clients nutzen können,<br />
welche Spice an das entfernte virtualisierte<br />
Desktop-Betriebssystem weiterreicht.<br />
Mehr-Komponenten-Kleber<br />
Die neue oVirt-Version 3.1 steht auf der<br />
oVirt-Projektseite zum Herunterladen zur<br />
Verfügung. Das Paket enthält den JBoss-<br />
Applikationsserver 7.0 als F<strong>und</strong>ament<br />
der oVirt-Engine, den <strong>KVM</strong>-Hypervisor,<br />
ein in Python geschriebenes SDK, je<br />
ein Admin- <strong>und</strong> User-Portal als Webanwendung<br />
sowie die zum Aufsetzen der<br />
Libvirt-VDSM-Nodes/ Host benötigten<br />
Komponenten. Jeder oVirt-Node besitzt<br />
seinen eigenen Hypervisor, seinen eigenen<br />
Storage Pool <strong>und</strong> seine eigenen Disk<br />
Images.<br />
Die oVirt-Nodes kommunizieren über<br />
einen Stack aus Libvirt <strong>und</strong> dem sogenannten<br />
oVirt Host Agent (VDSM) mit<br />
der oVirt-Engine, die letztlich den ganzen<br />
Rechnerverb<strong>und</strong> verwaltet. Die virtuellen<br />
Gastsysteme teilen über in Python realisierte<br />
oVirt Guest Agents der oVirt-Engine<br />
unter anderem mit, welche IP-Adresse sie<br />
verwenden, welche Anwendungen auf<br />
ihnen installiert sind, oder wie viel Speicher<br />
sie benötigen.<br />
Weitere Komponenten sind das auf Java<br />
basierende Webinterface zum Einrichten,<br />
Konfigurieren <strong>und</strong> Verwalten von Hypervisoren<br />
(Wirten) <strong>und</strong> Gastsystemen, das<br />
User Portal, mit dem sich User an den<br />
Gastsystemen anmelden <strong>und</strong> schließlich<br />
die REST-API zum Anzapfen der oVirt-<br />
Engine durch eigene Programme oder<br />
Skripte. Neben diesem gibt es außerdem<br />
noch ein Kommandozeilen-Interface.<br />
Das<br />
Backend der oVirt-<br />
Engine speichert sämtliche<br />
Daten <strong>und</strong> Konfigurationen<br />
in einer<br />
PostgreSQL-Datenbank<br />
<strong>und</strong> authentifiziert Benutzer<br />
über OpenLDAP<br />
oder Active Directory.<br />
Unabhängig von RHEV<br />
<strong>und</strong> Red Hat soll sich<br />
oVirt künftig zum „Orchestrieren“ von<br />
Cloud- <strong>und</strong> Virtualisierungs-Umgebungen<br />
als freie Alternative zu VMware <strong>und</strong><br />
Citrix etablieren.<br />
Neuerungen in oVirt 3.1<br />
Für all jene, die oVirt 3.0 mit CentOS 6.3<br />
oder Fedora 17 bereits ausprobiert haben,<br />
sind die Neuerungen der aktuellen Version<br />
3.1 von Interesse [4]. So unterstützt<br />
die oVirt-Engine beispielsweise jetzt Red<br />
Hats Directory Server oder IBMs Tivoli<br />
Directory Server zur Authentifizierung.<br />
Außerdem unterstützt oVirt 3.1 unter anderem<br />
das Anlegen <strong>und</strong> Klonen von Live-<br />
Schnappschüssen, Hotplugging in virtuellen<br />
Maschinen <strong>und</strong> kann aus virtuellen<br />
Maschinen heraus externe Blockgeräte<br />
als lokale Festplatte einbinden. Darüber<br />
hinaus lassen sich mit oVirt 3.1 Storage-<br />
Cluster konfigurieren.<br />
Besonders interessant für den folgenden<br />
Workshop ist der neue Installationsmo-<br />
… alles nur eine Frage der Lastverteilung !<br />
BalanceNG ®<br />
●<br />
Der Software Load-Balancer für Linux <strong>und</strong> Solaris<br />
●<br />
Voll virtualisierbar<br />
●<br />
Keine zusätzliche Hardware erforderlich<br />
●<br />
Security made in Germany:<br />
Garantiert frei von versteckten “Backdoors”<br />
Alle Informationen unter: www.BalanceNG.net<br />
Abbildung 1: War oVirt 3.0 bereits installiert, steht oVirt 3.1 zwar einfach als Aktualisierung<br />
zur Verfügung, der Admin muss oVirt 3.0 aber trotzdem entfernen.<br />
Inlab Software GmbH<br />
Josef-Würth-Str. 3<br />
82031 Grünwald<br />
Tel: 089 / 64911420<br />
http://www.inlab.de<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
35
ViRTuA lisieR ung<br />
oVirt 3.1<br />
Abbildung 2: Die Struktur einer virtuellen Umgebung<br />
in oVirt.<br />
dus „All-In-One“, der es dem Admin ermöglicht,<br />
zum Beispiel einen Fedora-Host<br />
in einem Rutsch wahlweise als Management<br />
Maschine oder Hypervisor zu konfigurieren.<br />
Als weitere Neuerungen seien<br />
die Unterstützung zum Mounten beliebiger<br />
Posix-kompatibler Dateisysteme,<br />
der Import virtueller Maschinen <strong>und</strong> die<br />
Integration des oben genannten Python-<br />
SDKs sowie der Kommandoschnittstelle<br />
genannt. Entwickler dürften sich zudem<br />
über die Erweiterung des REST-API mit<br />
JSON <strong>und</strong> den Session-Support freuen.<br />
oVirt unter Fedora<br />
Im Folgenden demonstriert der Artikel die<br />
prinzipielle Inbetriebnahme des Backends<br />
auf einer Management-Maschine. Eine<br />
ausführliche Dokumentation der Lösung<br />
findet sich beispielsweise unter [5]. Die<br />
oVirt-Engine setzt neben einem Java<br />
Runtime Environment den Applikationsserver<br />
JBoss-Server 7 voraus. Da oVirt<br />
sämtliche Daten in einer Datenbank speichert,<br />
erfordert das Setup außerdem eine<br />
PostgreSQL-Datenbank.<br />
Fedora 17 bringt wie CentOS 6.3 von<br />
Haus aus die erste stabile oVirt-Version<br />
3.0 mit. Die gerade erschienene zweite<br />
stabile oVirt-Version 3.1 lässt sich bei<br />
Fedora 17 über die Paketquelle »Fedora --<br />
x86_64 Test Updates« installieren. Fedora<br />
17 bietet dann die neue oVirt-Version 3.1<br />
als Aktualisierung an (Abbildung 1).<br />
Ein direkte Upgrade einer installierten<br />
oVirt-Version 3.0 in Fedora ist nicht möglich.<br />
Wie in den Veröffentlichungshinweisen<br />
der aktuellen Version beschrieben,<br />
muss der Admin eine installierte<br />
oVirt-Version 3.0 zunächst deinstallieren,<br />
etwaige existierende virtuelle Maschinen<br />
zuvor exportieren, die Paketquellen in<br />
Fedora 17 aktualisieren, auf oVirt 3.1 aktualisieren<br />
<strong>und</strong> dann die virtuellen Maschinen<br />
wieder importieren. Die für November<br />
angekündigte Fedora-Version 18<br />
soll oVirt 3.1 standardmäßig enthalten.<br />
Wahlweise lässt sich das Aktualisieren<br />
der für oVirt 3.1 benötigten Paketquellen<br />
auch mit Yum erledigen:<br />
yum localinstall http://ovirt.org/releases/U<br />
ovirt-release-fedora.noarch.rpm<br />
Ovirt selbst lässt sich dann in Form einer<br />
Reihe zum Framework gehörender Pakete<br />
über die Paketverwaltung installieren,<br />
wobei zum Beispiel die <strong>Co</strong>re-Engine<br />
mit dem Paket »ovirt-engine« korrespondiert.<br />
Dessen Installation mit »yum install<br />
ovirt-engine« installiert automatisch auch<br />
die übrigen benötigten Pakete, etwa das<br />
»Ovirt-Engine-Backend«, das »<strong>Co</strong>nfiguration<br />
Tool for Open Virtalization Manage«,<br />
sowie die Pakete »Database Scripts for<br />
Open Virtalization Manager« (das die benötigten<br />
Tabellen <strong>und</strong> Konfigurationen<br />
in die PostgreSQL-Datenbank schreibt),<br />
»ISO Upload Tool for Open Virtalization<br />
Manager«, »Log <strong>Co</strong>llector for Open Virtalization<br />
Manager«, »Notification Service<br />
for Open Virtalization Manager« <strong>und</strong><br />
»Open API for Red Hat Enterprisse Virtualization<br />
Manager«.<br />
Ebenfalls zwingend erforderlich sind<br />
die Pakete »Setup and upgrade scripts<br />
for Open Virtalization Manager« <strong>und</strong><br />
»<strong>Co</strong>mmon Libaries for Open Virtalization<br />
Manager Tools«. Der JBoss-Applikationsserver,<br />
das JRE (OpenJDK 1.7.0),<br />
die PostgreSQL-Datenbank (9.1.3), sowie<br />
verschiedene andere Komponenten wie<br />
etwa VDSM werden ebenfalls automatisch<br />
installiert. Wer oVirt auf dem Hypervisor-Host<br />
installiert, braucht lediglich<br />
die »ovirt-node*«-Pakete.<br />
Motor starten<br />
Abbildung 3: oVirt verfügt über ein ausgefeiltes Rollen- <strong>und</strong> Berechtigungs-Modell.<br />
Das Paket »ovirt-engine-setup-3.1.0-1.<br />
fc17« stellt das Skript »engine-setup« zur<br />
Verfügung, das mit Root-Rechten auszuführen<br />
ist. Das Skript selbst benötigt mindestens<br />
2 GByte freien Arbeitsspeicher.<br />
Wer »engine-setup« bereits zum Installieren<br />
<strong>und</strong> Testen von oVirt 3.0 verwendet<br />
hat, muss »engine-cleanup« ausführen,<br />
um etwaige Reste einer alten Installation<br />
zu entfernen, offene Datenbankverbindungen<br />
zu schließen, Tabellen zu löschen<br />
<strong>und</strong> so weiter.<br />
Das Skript fragt eine Reihe wichtiger Parameter<br />
ab, darunter auch das Passwort<br />
für den Administrator (»admin«) der<br />
Web-Anwendung (»Admin Portal«), die<br />
Datenbank <strong>und</strong> zeigt in eckigen Klammern<br />
die jeweiligen Defaultwerte, die<br />
sich mit [Eingabe] übernehmen lassen.<br />
Außerdem fragt »engine-setup« nach dem<br />
Firmennamen <strong>und</strong> dem Default-Speicher-<br />
Backend. Zur Wahl stehen iSCSI, Fibre<br />
Channel <strong>und</strong> NFS. Letzteres eignet sich<br />
gut für einen schnellen Testlauf, wobei<br />
das Skript anbietet, ein NFS-Share als<br />
ISO-Domäne auf dem lokalen Server anzulegen<br />
<strong>und</strong> der Administrator den gewünschten<br />
Mountpoint angeben kann.<br />
36 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
oVirt 3.1<br />
ViRTuA lisieRung<br />
Abbildung 4: Die oVirt-Entwickler haben auch an<br />
einen Assistenten gedacht.<br />
Danach bietet das Skript an, die IPTables-Firewall<br />
zu konfigurieren <strong>und</strong> listet<br />
noch einmal sämtliche Einstellungen auf,<br />
bevor es die oVirt-Einrichtung startet,<br />
in deren Verlauf es auch die benötigten<br />
Zertifikate generiert <strong>und</strong> die Datenbank-Tabellen<br />
anlegt. Ürigens lässt sich<br />
»engine-setup« auch gezielt mit Parametern<br />
füttern. »engine-setup -help« gibt<br />
darüber Auskunft.<br />
Danach steht das oVirt-Interface unter<br />
des Adresse »http://Management-Server«<br />
zur Verfügung, wahlweise auch über<br />
HTTPS. Zu beachten ist dabei, dass das<br />
oVirt-Framework mindestens 4 GByte Arbeitsspeicher<br />
benötigt, sonst startet das<br />
Webinterface nicht.<br />
Nun kann man sich am User Portal, am<br />
Administrator Portal oder am Reports<br />
Portal anmelden. Der Account für das<br />
Admin Portal lautet »admin« mit dem<br />
während der Konfiguration festgelegten<br />
Passwort.<br />
Datencenter<br />
Im Navigationsbereich links, ausgehend<br />
vom Data Center »Default«, sind die administrierbaren<br />
Ressourcen der virtualisierten<br />
Infrastruktur zu sehen, bestehend<br />
aus Data Centern, Clustern, Storages <strong>und</strong><br />
Disks sowie Hosts, Pools, Templates <strong>und</strong><br />
VMs (Abbildung 2). Ein komplexes Rollen-<br />
<strong>und</strong> Berechtigungsschema ermöglicht<br />
dem Administrator das Delegieren<br />
von Verwaltungsaufgaben. Der Einstiegspunkt<br />
hierfür ist der Link „<strong>Co</strong>nfigure“<br />
links oben (Abbildung 3).<br />
Ein virtueller Host lässt sich mit einem<br />
Klick auf »New« im Reiter »Hosts« erzeugen,<br />
auch wenn das Anlegen von Hosts<br />
erst sinnvoll ist, wenn die entsprechenden<br />
Voraussetzungen, etwa Storage für<br />
virtuelle Fesplatte, ISOs <strong>und</strong> so weiter<br />
erfüllt sind.<br />
Firewall konfigurieren<br />
Der Dialog erwartet neben der IP-Adresse<br />
(oder FQDN-Namen) des Hosts einen<br />
symbolischen Namen <strong>und</strong> ein Passwort.<br />
Außerdem muss der Host per SSH erreichbar<br />
sein. Sollte wie im Beispiel als<br />
Hypervisor ebenfalls ein frisch installiertes<br />
Fedora-17-System zum Einsatz kommen,<br />
wird das Hinzufügen dieses Hosts<br />
in oVirt am Aufbau der SSH-Verbindung<br />
scheitern. Wer nicht gleich passende<br />
IPTables-Regeln aus dem Ärmel schüttelt,<br />
muss IPTables auf dem Hypervisor<br />
zunächst als Root-User mit<br />
systemctl stop iptables.service<br />
deaktivieren. Viele Dialoge in oVirt starten<br />
mit einem Klick auf »Guide Me« einen<br />
Assistenten, etwa um<br />
sich mit einer existierenden<br />
ISO-Library<br />
oder einem existenten<br />
Storage zu verbinden<br />
(Abbildung 4).<br />
Um eine virtuelle<br />
Maschine anzulegen,<br />
markiert man im Navigations-Frame<br />
auf<br />
der linken Seite im<br />
gewünschten Cluster<br />
den Ziel-Host, aktiviert<br />
dann im rechten<br />
Fensterteil den Reiter<br />
»Virtual Machines«<br />
<strong>und</strong> klickt auf »New<br />
Server« oder »New<br />
Desktop«.<br />
Fazit<br />
Mit oVirt schließt<br />
nicht nur Red Hats<br />
Enterprise Virtualisierungslösung<br />
RHEV<br />
zu den etablierten<br />
Virt-Management-Lösungen<br />
von VMware,<br />
Citrix <strong>und</strong> Microsofts<br />
System Center 2012<br />
auf. Dank offener Lizenz<br />
wird auch mit<br />
Selbstbau-Lösungen eine professionelle<br />
Verwaltung von virtuellen Umgebungen<br />
möglich. Leider kommt oVirt in RHEV<br />
3 noch gar nicht offiziell zum Einsatz,<br />
jedenfalls nicht, was das Admin-Frontend<br />
angeht. Mit Fedora 17 lässt sich<br />
aber bereits sehr schön verifizieren, wie<br />
sich Red Hat die Zukunft ohne .Net <strong>und</strong><br />
Active Directory vorstellt. Die nächste<br />
RHEV-Version wird dann endlich keinen<br />
Windows-Rechner zur Administration<br />
mehr benötigen. (ofr)<br />
n<br />
Infos<br />
[1] RHEV 3.0:<br />
[http:// de. redhat. com/ promo/ rhev3]<br />
[2] Anforderungen RHEV: [http:// de. redhat.<br />
com/ promo/ rhev3/ tryit/ sysreq. php]<br />
[3] oVirt:[http:// www. ovirt. org]<br />
[4] Release Note oVirt 3.1: [href="http:// wiki.<br />
ovirt. org/ wiki/ OVirt_3. 1_release_notes]<br />
[5] Ovirt Installation-Guide: [http:// www. ovirt.<br />
org/ w/ images/ a/ a9/ OVirt-3. 0-Installation_<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
37
VirtuA lisierung<br />
speicherclouds<br />
© pakhnyushchyy, 123RF<br />
Drei private Speicherclouds im Vergleich<br />
Wolkenk<strong>und</strong>e<br />
zentrale netzwerkspeicher mit Clients für jede Plattform sind praktisch. Ob die landläufige Anrede „Cloud“<br />
zutrifft, sei dahingestellt. Hier geht es darum, welches die beste implementierung ist: gemietet oder selbst<br />
gehostet, als reine software- oder halbe Hardwarelösung? Jens-Christoph brendel<br />
Drei Probanden (Tabelle 1) haben wir<br />
näher unter die Lupe genommen: zum<br />
Ersten das allseits bekannte Dropbox [1],<br />
Urvater der von Drittanbietern gehosteten<br />
NAS-Speicher, dem später beispielsweise<br />
Stratos Hidrive oder Ubuntu One folgten,<br />
um nur zwei unter vielen aufzuzählen.<br />
Zum Zweiten Owncloud [2], eine Softwarelösung,<br />
die es erlaubt, einen ähnlichen<br />
Service auf heimischer Hardware<br />
unter eigener Regie aufzusetzen. Das<br />
bietet sich zum Beispiel dann an, wenn<br />
Bedenken wegen der Sicherheit, Zuverlässigkeit<br />
oder Leistungsfähigkeit des<br />
Hosters bestehen, denn bei dieser Variante<br />
behält man alles unter Kontrolle, der<br />
Server steht im eigenen Rechnerraum. Die<br />
dritte Variante schließlich ist in gewisser<br />
Weise eine Steigerung der letztgenannten<br />
Strategie: Auch hier operiert der Admin<br />
auf eigener Hardware, muss aber nicht<br />
einmal die Software installieren, denn<br />
hier kommt die „Cloud“ als Zusatzfunktion<br />
einer NAS-Appliance vorinstalliert<br />
mit. Als Beispiel dafür haben wir uns die<br />
Cloud Station [3] auf einer Synology-<br />
Diskstation DS 712+ angesehen.<br />
E Dropbox<br />
Was bei Dropbox im Vergleich mit den<br />
Kontrahenten unmittelbar auffällt, ist<br />
die sehr gute Integration in das Client-<br />
Betriebssystem: Syncstatus-Anzeigen via<br />
Abbildung 1: Syncstatus-Anzeigen im Dateimanager bietet derzeit nur Dropbox,<br />
Owncloud plant allerdings Ähnliches für den September.<br />
Ordner-Icon im Dateimanager (Abbildung<br />
1) <strong>und</strong> ein Kontextmenü zum Sharen der<br />
Inhalte bieten weder Own cloud noch Synology.<br />
Den zweiten großen Pluspunkt<br />
verbucht Dropbox aufgr<strong>und</strong> seiner riesigen<br />
<strong>Co</strong>mmunity mit mehr als 50 Millionen<br />
Anwendern weltweit. Owncloud<br />
kommt bis jetzt höchstens auf ein H<strong>und</strong>ertstel<br />
davon. Das schlägt sich in der<br />
Anzahl an Tools <strong>und</strong> Erweiterungen von<br />
Drittanbietern <strong>und</strong><br />
auch im Reifegrad<br />
nieder. Selbst für<br />
das Mobilbetriebssystem<br />
Android<br />
existieren neben<br />
dem eigentlichen<br />
Dropbox-Client<br />
noch Dutzende<br />
Apps, die bestimmte<br />
Beschränkungen<br />
aufheben,<br />
einzelne Ordner<br />
synchronisieren,<br />
40 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
speicherclouds<br />
VirtuA lisierung<br />
Musik streamen, Transfers automatisieren<br />
oder einfach nur die Dropbox als<br />
universellen Speicher für eigene Zwecke<br />
nutzen.<br />
Drittens überzeugt Dropbox durch seine<br />
Stabilität. Im Unterschied etwa zu Owncloud<br />
hat es der Anwender hier mit einer<br />
ausgereiften Software zu tun, die Kinderkrankheiten<br />
überw<strong>und</strong>en hat, dafür unter<br />
der Haube etliche Schmankerl bietet,<br />
etwa Deduplikation, die Synchronisation<br />
geänderter Dateifragmente statt großer<br />
Files oder das selektive Syncen. Außerdem<br />
kommt Dropbox sicher auch sein<br />
minimalistischer Ansatz zugute. Außer<br />
mit einer Fotogalerie schmückt es sich<br />
nicht mit Tausenden Extras, sondern<br />
konzentriert sich auf sein Kerngeschäft<br />
<strong>und</strong> überlässt es Drittanbietern, darauf<br />
aufzusetzen.<br />
Demgegenüber steht freilich, dass sich<br />
der Dropbox-Nutzer in Abhängigkeit von<br />
diesem Anbieter begibt – sowohl in Sicherheitsfragen<br />
wie auch mit Blick auf die<br />
Tarifpolitik. Was der Anbieter verlautbart,<br />
kann man glauben oder nicht – überprüfen<br />
lässt es sich in der Regel nicht. Und<br />
jenseits aller schönen Worte steht fest,<br />
dass auch Dropbox nicht unverw<strong>und</strong>bar<br />
ist. Erst kürzlich wurden durch das gestohlene<br />
Passwort eines Dropbox-Mitarbeiters<br />
zahlreiche E-Mail-Adressen von<br />
Nutzern kompromittiert <strong>und</strong> mit Spam<br />
überschwemmt. Dropbox gelobt Besserung<br />
<strong>und</strong> will nun beispielsweise intern<br />
eine Zweifaktor-Authentifizierung [4]<br />
einführen. Aber niemand weiß, wann ein<br />
Hacker eventuell die nächste Schwachstelle<br />
mit welchen Folgen ausnutzt.<br />
E Owncloud<br />
Eine Reaktion auf die Gefahren einer<br />
zu engen Bindung an einen Anbieter ist<br />
das Streben nach Autonomie. Hat man<br />
den Cloud-Speicher im eigenen Rechenzentrum,<br />
behält man die Zügel in der<br />
Hand. Eine Lösung, die es relativ einfach<br />
möglich macht, die eigene Cloud zu<br />
hosten, bietet das Open-Source-Projekt<br />
Owncloud.<br />
Auf den ersten Blick macht Owncloud<br />
einen begeisternden Eindruck: Es unterstützt<br />
mit Linux, Windows, Mac OS X,<br />
Android <strong>und</strong> iOS die wichtigsten Plattformen.<br />
Es ist erweiterbar <strong>und</strong> bringt in<br />
Form interner, vorinstallierter Applikatio-<br />
Abbildung 2: Die Namenskonventionen sind freizügig, beispielsweise erlauben sie Doppelpunkte in<br />
Dateinamen. Der Browserclient kommt damit klar, der native Windows-Client aber will »test:1« nicht kennen.<br />
nen schon eine Reihe nützlicher Funktionen<br />
mit, etwa Audio-Streaming oder das<br />
Hosting von Kalendern <strong>und</strong> Kontakten.<br />
Es verlangt nur für Support Geld <strong>und</strong> ist<br />
relativ leicht aufzusetzen, ein gewöhnlicher<br />
LAMP-Stack reicht. Allerdings: Freiheit<br />
bedeutet auch hier Verantwortung<br />
– für Ausfallschutz,<br />
Skalierbarkeit oder Sicherheit<br />
des Storage<br />
muss der Anwender<br />
selbst geradestehen.<br />
Der zweite Blick ist<br />
etwas ernüchternder:<br />
Noch gibt es Lücken<br />
<strong>und</strong> kleine Fehler an<br />
ziemlich vielen Orten<br />
(Abbildung 2). Wir<br />
wollen uns eine kleinliche<br />
Auflistung schenken,<br />
nur ein Beispiel:<br />
Owncloud sortiert<br />
sämtliche Audio-Files<br />
– darunter beispielsweise<br />
auch FLAC-<br />
Dateien – im Browserclient<br />
unter den<br />
Menüpunkt „Musik“,<br />
kann dann aber davon<br />
nur MP3-Dateien auch<br />
tatsächlich abspielen.<br />
Das mag man noch<br />
als seltsames Feature<br />
schlucken. Löscht man<br />
jedoch physisch unter<br />
„Dateien“ die offenbar<br />
nicht unterstützten Titel<br />
im FLAC-Format,<br />
bleiben sie unter „Mu-<br />
sik“ in der Playlist als Untote weiterhin<br />
erhalten, selbst nach einem Rescan.<br />
Obwohl schon jede Menge Bugfixes in die<br />
von uns getestete nicht mehr allerneueste<br />
Version 4.0.1 eingeflossen waren, macht<br />
Owncloud durchgängig den Eindruck einer<br />
zwar prinzipiell funktionierenden, im<br />
Linux-Server<br />
Das Administrationshandbuch<br />
948 S., 2. Auflage 2012, 49,90 €<br />
» www.Galileo<strong>Co</strong>mputing.de/3051<br />
Admin-Know-how<br />
<strong>Co</strong>mputer-Netzwerke<br />
370 S., 2012, 24,90 €<br />
» www.Galileo<strong>Co</strong>mputing.de/2515<br />
Das Komplettpaket LPIC-1 & LPIC-2<br />
Das gesamte Prüfungswissen<br />
545 S. <strong>und</strong> 552 S., mit 2 DVDs, 59,90 €<br />
» www.Galileo<strong>Co</strong>mputing.de/2895<br />
www.Galileo<strong>Co</strong>mputing.de<br />
VMware vSphere 5<br />
1180 S., 2. Auflage 2012, 89,90 €<br />
» www.Galileo<strong>Co</strong>mputing.de/3000<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
41<br />
AusgA be 05-2012<br />
Wissen, wie’s geht.
VirtuA lisierung<br />
speicherclouds<br />
Detail aber unfertigen Software. Das fängt<br />
bei Kleinigkeiten an, wie dem doppelten<br />
Menüpunkt „Beenden“ im Linux-Client,<br />
setzt sich fort über derbe Darstellungsfehler<br />
im Internet Explorer <strong>und</strong> endet<br />
noch nicht bei Sicherheitsbedenken, wie<br />
sie der Security-Experte Pascal Junod [5]<br />
jüngst gegen die Owncloud-Verschlüsselung<br />
ins Feld führte. So stellt sich dasselbe<br />
Gefühl ein wie beim Testen einer<br />
Beta-Version: Alles sieht schon sehr verheißungsvoll<br />
aus, aber es fehlt der letzte<br />
Schliff <strong>und</strong> die Stabilität, die man sich für<br />
einen Produktiveinsatz wünschen würde.<br />
Wer einen Blick auf die Roadmap wirft,<br />
w<strong>und</strong>ert sich nicht mehr sehr: Mehrere<br />
Major Releases binnen weniger Monate<br />
sind eben nur zu schaffen, wenn man<br />
die eigentlich nötigen ausgiebigen Testphasen<br />
in stabile Versionen umetikettiert.<br />
Nichtsdestotrotz: OwnCloud hat fraglos<br />
das Potenzial, sich zu einer sehr interessanten<br />
Private Storage Cloud zu entwickeln.<br />
E Synology Cloud<br />
Wer eine NAS-Appliance kauft, der hat<br />
im Gr<strong>und</strong>e schon alles für einen kleinen<br />
Cloud-Storage beisammen: Häufig ein Linux-Betriebssystem,<br />
meist mit Webserver,<br />
das Disk- <strong>und</strong> RAID-Management, den<br />
Netzwerkanschluss. Es liegt also einigermaßen<br />
nahe, auch eine Applikation für<br />
den Fernzugriff <strong>und</strong> die Synchronisation<br />
mit externen Clients zu integrieren. Auf<br />
diese Idee sind etliche Hersteller gekommen<br />
(Western Digital: WD 2go, Qnap:<br />
MyCloudNAS, <strong>und</strong> andere). Wir haben<br />
uns die Lösung angesehen, die Synology<br />
Abbildung 3: Geschafft! Der Begrüßungsbildschirm der Cloud Station lädt zur<br />
Benutzung ein.<br />
in sein NAS-Betriebssystem DSM 4.0 auf<br />
Linux-Basis integriert (Abbildung 3).<br />
Was bei unserem Test gleich zu Anfang<br />
für einen Kritikpunkt sorgte: Es gibt keinen<br />
Linux-Client! Und das, obwohl das<br />
NAS-Betriebssystem selbst auf Linux<br />
gründet. Offenbar empfindet der Hersteller<br />
keine moralische Verpflichtung, der<br />
<strong>Co</strong>mmunity, von der er profitiert, etwas<br />
zurückzugeben. Da auch ein Browseroder<br />
Mobilclient fehlt <strong>und</strong> sich der Fernzugriff<br />
immer der Cloud-Station-Anwendung<br />
bedienen muss, schauen alle in die<br />
Röhre, die nicht vor einem Windows-<br />
Rechner oder Intel-Mac sitzen.<br />
Notgedrungen wichen wir auf Windows<br />
aus. Die Verbindungsaufnahme gestaltet<br />
sich hier prinzipbedingt ein wenig komplizierter,<br />
denn anders als der Dropboxoder<br />
ein Owncloud-Server befindet sich<br />
ein NAS-Server normalerweise im LAN<br />
<strong>und</strong> hat keine direkte Internetverbindung.<br />
Stattdessen wird er sich – gerade<br />
auch im SMB-Umfeld – häufig in einem<br />
NAT-Subnetz wiederfinden <strong>und</strong> von außen<br />
eigentlich nicht erreichbar sein.<br />
Synology begegnet dem mit zwei Strategien:<br />
Zum einen verwendet es einen dynamischen<br />
DNS-Dienst, dabei sind sowohl<br />
ein hauseigener wie auch andere Anbieter<br />
wie DynDNS nutzbar. Dieser Dienst<br />
übersetzt den Namen des Cloudservers in<br />
die externe IP-Adresse des Internet-Routers.<br />
Zum anderen pollt der Cloud-Server<br />
permanent einen Rechner bei Synology,<br />
den er regelmäßig fragt, ob sich Clients<br />
für ihn interessiert haben. Ist das der Fall,<br />
vermittelt der auf dem Synology-Rechner<br />
laufende Service Quick<strong>Co</strong>nnect eine<br />
Tunnelverbindung zwischen dem Cloud-<br />
Server <strong>und</strong> seinem<br />
Client <strong>und</strong> zieht<br />
sich dann zurück.<br />
Dieses Prozedere<br />
erspart Portweiterleitungen<br />
auf<br />
dem Router, erhöht<br />
allerdings<br />
die Komplexität,<br />
kostet etwas Performance<br />
<strong>und</strong> ist<br />
eine potenzielle<br />
Fehlerquelle.<br />
Eine Verschlüsselung<br />
auf dem<br />
Server fehlt vollkommen,<br />
zumindest<br />
für sicherheitskritische Daten scheidet<br />
diese Clouds also von vorneherein<br />
aus. Irgendwelche Viewer- oder Player-<br />
Apps, Editoren, Kalender oder Adressbücher<br />
gibt es in Synologys Cloud Station<br />
ebenfalls nicht – allerdings bietet<br />
der NAS-Server selbst (zumindest im<br />
LAN) derartiges in Hülle <strong>und</strong> Fülle an.<br />
Der Status der Synchronisierung lässt<br />
sich zwar nicht unmittelbar an der Datei<br />
ablesen, aber über ein kleines Symbol im<br />
System-Tray von Windows ist ein Menü<br />
aufrufbar, das über den Verbindungsstatus<br />
Auskunft gibt <strong>und</strong> zum Beispiel auch<br />
verrät, welche Files zuletzt synchronisiert<br />
wurden.<br />
Einmal eingerichtet, funktioniert die<br />
Cloud erwartungsgemäß. Vorteilhaft ist<br />
die Integration in die schicke Web-GUI<br />
des NAS-Betriebssystems. Leicht irritierend<br />
wirkt allerdings die inkonsistente<br />
Verwendung von Menü-Bezeichnern. So<br />
ist beispielsweise in der Cloud-Station-<br />
Hilfe von »Hauptmenü > Bedienfeld«<br />
die Rede, wo »Hauptmenü > Systemsteuerung«<br />
gemeint ist. Wo die Hilfe auf<br />
»Hauptmenü > Cloud Station > Benutzerprivilegien«<br />
verweist, meint sie tatsächlich<br />
„Hauptmenü > Cloud Station ><br />
Berechtigungen“ <strong>und</strong> so weiter.<br />
Alles in allem: Der Ansatz leuchtet ein,<br />
die Ausführung lässt Wünsche offen.<br />
Fazit<br />
Wen die Bindung an einen Anbieter oder<br />
die Kosten des Abo-Modells nicht schrecken,<br />
<strong>und</strong> wer keine Angst vor Datenlecks<br />
hat, der kommt mit Dropbox oder einem<br />
vergleichbaren Dienst am bequemsten<br />
zum Ziel. Hier ist nur auf denkbar einfache<br />
Weise der Client zu installieren, um<br />
alles andere kümmert sich der Betreiber.<br />
Infos<br />
[1] Dropbox: [https:// www. dropbox. com]<br />
[2] Owncloud: [http:// owncloud. org]<br />
[3] Cloud Station:<br />
[http:// www. synology. com/ dsm/ home_file_<br />
sharing_cloud_station. php? lang=deu]<br />
[4] Mehr Sicherheit bei Dropbox:<br />
[https:// blog. dropbox. com/ index. php/<br />
security‐update‐new‐features/]<br />
[5] Pascal Junod zur Sicherheit von Owncloud:<br />
[http:// crypto. junod. info/ 2012/ 05/ 24/<br />
owncloud‐4‐0‐and‐encryption/]<br />
42 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
speicherclouds<br />
VirtuA lisierung<br />
Der Service ist ausgereift, ergänzende Angebote<br />
von Drittanbietrern sind vielseitig,<br />
die Plattformunterstützung ist gut.<br />
Wer die Zügel in der Hand behalten will<br />
<strong>und</strong> es sich zutraut, selbst einen hoch<br />
verfügbaren <strong>und</strong> sicheren Storage zu managen,<br />
der sollte sich Owncloud ansehen.<br />
Wenn es die Kinderkrankheiten einmal<br />
überw<strong>und</strong>en hat, wird es eine komplette<br />
<strong>und</strong> dabei günstige Private Cloud für Storage<br />
sein, die viele Clients unterstützt<br />
<strong>und</strong> sich relativ einfach aufsetzen <strong>und</strong><br />
administrieren lässt.<br />
Wer sich weder in die Hände von Dropbox<br />
begeben will noch Speicher-Know-how<br />
investieren kann, für den ist eine Cloud<br />
als NAS-Ableger vielleicht das Richtige.<br />
Allerdings muss man sich der Beschränkungen<br />
bewusst sein: Die von uns getestete<br />
DS 712+ verfügt beispielsweise nur<br />
über zwei Plattensteckplätze. Gespiegelt<br />
reicht das für maximal 3 TByte, auch<br />
der Cache hat eine fixe Größe, für eine<br />
Hotspare-Platte fehlt der Platz, die Daten<br />
werden unverschlüsselt abgelegt, die Anzahl<br />
möglicher Accounts ist beschränkt,<br />
ebenso die Dateigröße (1 GByte) <strong>und</strong> so<br />
weiter. Es gibt größere Hardware-Modelle<br />
von Synology, aber die verschieben das<br />
Limit des einen Geräts nur etwas nach<br />
oben. Zudem ist derzeit – ohne Linux,<br />
ohne Mobil- <strong>und</strong> Browserclient – die<br />
Plattformunterstützung eher mager. n<br />
Tabelle 1: drei storage Clouds im Vergleich<br />
Feature ownCloud Dropbox Synology Cloud Station<br />
Version 4.0.1 ‐ Beta<br />
Dokumentation<br />
Handbuch Install Guide Nein Nein, eine Seite im DSM<br />
Manual<br />
Wiki, FAQ Ja Ja Nein<br />
Foren Ja Ja Ja<br />
Kosten<br />
Für Hardware <strong>und</strong> Support Für Speicher > 2 GByte, Kosten der NAS‐Appliance<br />
(gestaffelt)<br />
volumenabhängig<br />
Client‐Plattformen<br />
Browser Ja Ja Nein<br />
Windows Ja Ja Ja<br />
Linux Ja Ja Nein<br />
Mac Ja Ja Ja<br />
Android Ja Ja nein<br />
Iphone/ iPad Ja Ja Nein<br />
Blackberry Nein Ja Nein<br />
Verschlüsselung<br />
auf dem Client Nein Nein Nein<br />
auf dem Transportweg Ja, SSL Ja, SSL Ja, SSL<br />
auf dem Server Ja, Blowfish Ja, AES256 Nein<br />
Suche<br />
nach Dateinamen<br />
Im Browser <strong>und</strong> im Client Im Browser <strong>und</strong> im Client Im Client via OS<br />
via OS<br />
via OS<br />
nach Metadaten Nein Nein Nein<br />
Viewer‐ & Player‐Apps im Browser‐Client<br />
Fotos (Galerie) Ja Ja Nein<br />
Text‐Reader Ja Nein Nein<br />
PDF‐Viewer Ja Nein Nein<br />
ODF‐Viewer Ja Nein Nein<br />
Kalender‐Hosting Ja Nein Nein<br />
Audio‐/ Video‐Streaming<br />
MP3‐Streaming in<br />
Nein (aber mit 3rd‐Party‐ Nein<br />
Browserclient integriert Apps)<br />
Bearbeitungsfunktionen für Dokumente Ja, Texteditor Nein Nein<br />
Syncing & Sharing<br />
nur geänderte Dateiteile syncen Nein Ja Nein<br />
selektives Syncen (nicht alle Ordner auf alle Geräte) Ja, im Mobilclient Ja Nein<br />
Bandbreitenbeschränkung Ja, serverseitig via OS Ja, für Up‐ <strong>und</strong> Download Ja, ab DSM 4.1<br />
Quotas für User Ja Nein Nein<br />
Wiederherstellung älterer Versionen Ja Ja, 30 Tage Nein, nur indirekt, nur 32<br />
Versionen<br />
Sharing mit fremden Usern ohne Registrierung Ja Ja Nein<br />
Sync‐Status‐Anzeige im Client Nein Ja Ja<br />
API für Programme Dritter Ja Ja Nein<br />
Anzahl Drittanbieter‐Tools einige reichlich keine<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
43
VirtuA lisierung<br />
Vm-images bauen<br />
Erzeugung von <strong>KVM</strong>-Maschinen mit Boxgrinder <strong>und</strong> VMBuilder automatisieren<br />
Virtuelle<br />
Bastelst<strong>und</strong>e<br />
© yewkeo, 123RF<br />
das manuelle Anlegen einer virtuellen maschine ist unkompliziert, wird aber zu mühsamen Arbeit, wenn man<br />
regelmäßig viele virtuelle maschinen einrichten muss. mit den Programmen Vmbuilder <strong>und</strong> boxgrinder lässt sich<br />
dieser Prozess automatisieren. michael Kofler<br />
Eigentlich soll Virtualisierungstechnologie<br />
dem Administrator die Arbeit erleichtern.<br />
Werden aus einigen Servern<br />
einige Dutzend VMs, gestaltet sich die<br />
vermeintliche Erleichterung schnell als<br />
Bürde. Praktisch sind deshalb Tools, die<br />
das Anlegen neuer virtueller Rechner erleichtern.<br />
Die schnellste <strong>und</strong> einfachste<br />
Methode, um eine neue virtuelle Maschine<br />
einzurichten, ist das Klonen. Dazu<br />
führen Sie in der Shell das Kommando<br />
»virt-clone« aus, zum Beispiel so:<br />
virt-clone --original userver5 --name U<br />
userver6 --file /var/lib/libvirt/images/U<br />
userver6.img<br />
»virt-clone« erzeugt eine neue XML-Definitionsdatei<br />
für die virtuelle Maschine,<br />
kopiert die Image-Datei für die virtuelle<br />
Festplatte <strong>und</strong> gibt dem Netzwerkadapter<br />
eine neue, zufällige MAC-Adresse. Die<br />
restlichen Hardware-Komponenten bleiben<br />
unverändert.<br />
Nach dem Klonen ist allerdings eine<br />
Menge Handarbeit erforderlich: Sie müssen<br />
in der virtuellen Maschine die Netzwerkkonfiguration<br />
anpassen <strong>und</strong> den<br />
Hostnamen neu einstellen. Wenn es in<br />
der ursprünglichen virtuellen Maschine<br />
einen SSH-Server gab, müssen Sie auch<br />
den SSH-Schlüssel der neuen virtuellen<br />
Maschine neu erzeugen.<br />
Boxgrinder<br />
Das Klonen ist also mit vielen manuellen<br />
Eingriffen verb<strong>und</strong>en, die fehleranfällig<br />
sind. Wozu klonen, wenn Sie<br />
virtuelle Maschinen mit einem einzigen<br />
Kommando von Gr<strong>und</strong> auf neu erzeugen<br />
können? In der Red-Hat-Welt hilft dabei<br />
das Boxgrinder-Projekt [1]. Damit lassen<br />
sich im Handumdrehen virtuelle Fedora-,<br />
RHEL, CentOS- <strong>und</strong> Scientific-Linux-Maschinen<br />
erzeugen. Boxgrinder ist übrigens<br />
kein <strong>KVM</strong>-spezifisches Werkzeug:<br />
Es kommt auch mit diversen anderen<br />
Virtualisierungs- <strong>und</strong> Cloud-Systemen<br />
zurecht <strong>und</strong> unterstützt neben <strong>KVM</strong> auch<br />
VMware, Amazon EC2 <strong>und</strong> Virtualbox.<br />
Fertige Boxgrinder-Pakete existieren momentan<br />
leider nur für Fedora. Die Installation<br />
ist unkompliziert:<br />
yum install rubygem-boxgrinder-build<br />
RHEL- <strong>und</strong> CentOS-Anwender müssen<br />
wohl auf Version 6.4 warten, bis offizielle<br />
Boxgrinder-Pakete zur Verfügung stehen.<br />
Auch wenn Sie im Produktiveinsatz<br />
vermutlich nicht Fedora als <strong>KVM</strong>-Host<br />
einsetzen werden, ist diese Einschränkung<br />
weniger schlimm, als es auf den<br />
ersten Blick scheint: Zum einen können<br />
Sie Boxgrinder unter Fedora ausführen,<br />
um beispielsweise eine virtuelle CentOS-<br />
Maschine zu erzeugen <strong>und</strong> auf einem<br />
unter CentOS laufenden <strong>KVM</strong>-Host zu<br />
installieren. Fedora dient damit also nur<br />
als Vehikel, um Boxgrinder auszuführen,<br />
aber nicht als Virtualisierungssystem.<br />
Zum anderen können Sie Boxgrinder auf<br />
dem <strong>KVM</strong>-Host in einer virtuellen Maschine<br />
ausführen. Auf der Boxgrinder-<br />
Website finden Sie hierfür sogar ein fertiges<br />
Image [2].<br />
44 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Vm-images bauen<br />
VirtuA lisierung<br />
Viele Funktionen von Boxgrinder sind in<br />
Plugins implementiert. Es gibt drei Typen<br />
von Plugins:<br />
n OS-Plugins steuern betriebssystemspezifische<br />
Details der virtuellen<br />
Maschinen.<br />
n Plattform-Plugins sind für die Besonderheiten<br />
des jeweiligen Virtualisierungssystems<br />
verantwortlich.<br />
Wenn kein Plattform-Plugin zum Einsatz<br />
kommt, werden virtuelle <strong>KVM</strong>-<br />
Maschinen erstellt.<br />
n Delivery-Plugins kümmern sich<br />
schließlich darum, wie die virtuelle<br />
Maschine ausgeliefert wird, das heißt<br />
wie sie zum Virtualisierungs-Host<br />
übertragen wird.<br />
Nach der Installation von Boxgrinder verschaffen<br />
Sie sich mit dem Kommando<br />
»boxgrinder-build --version« einen Überblich<br />
über die zur Verfügung stehenden<br />
Plugins (siehe Listing 1).<br />
Das Appliance Definition<br />
File<br />
Bevor Sie Ihre erste virtuelle Maschine<br />
mit Boxgrinder erzeugen, müssen Sie die<br />
virtuelle Maschine in einer Textdatei beschreiben,<br />
dem sogenannten Appliance<br />
Definition File. Diese Datei kann wie in<br />
Listing 2 aussehen.<br />
Zwingend erforderlich sind lediglich die<br />
Angaben name sowie »os/ name« <strong>und</strong><br />
»os/ version«. Wenn Sie als Betriebssystem<br />
»rhel«, »centos« oder »sl« (für Scientific<br />
Linux) angeben, müssen Sie als<br />
Versionsnummer einfach 5 oder 6 angeben.<br />
Boxgrinder berücksichtigt dann automatisch<br />
die aktuellste passende Version<br />
(momentan also Version 6.3).<br />
Für alle weiteren Parameter kommen gegebenenfalls<br />
Defaultwerte zur Anwendung.<br />
Im »os«-Abschnitt können Sie mit<br />
»password« das gewünschte Root-Passwort<br />
angeben (standardmäßig lautet es<br />
»boxgrinder«).<br />
Der »hardware«-Abschnitt ist für die Partitionierung<br />
der virtuellen Festplatte zuständig.<br />
Hier geben Sie die gewünschten<br />
Partitionen mit dem Mount-Punkt <strong>und</strong> der<br />
Größe in GByte an. Falls Sie eine Swap-<br />
Partition wünschen, geben Sie statt des<br />
Mount-Punkts die Zeichenkette »swap«<br />
an. Falls die Partitionierungsdaten fehlen,<br />
richtet Boxgrinder lediglich eine ein<br />
GByte große Root-Partition ein.<br />
Außerdem bestimmt der »hardware«-<br />
Abschnitt die Anzahl der CPU-<strong>Co</strong>res<br />
(standardmäßig einer) <strong>und</strong> die Größe<br />
des RAM-Speichers in MByte bestimmen<br />
(standardmäßig 256).<br />
Der »packages«-Abschnitt bestimmt, welche<br />
Pakete in der virtuellen Maschine<br />
installiert werden. Dabei geben Sie die<br />
gewünschten Pakete zeilenweise an,<br />
wobei Sie jeweils ein Minuszeichen voranstellen<br />
müssen. »@name« bezeichnet<br />
Paketgruppen.<br />
Die Paketgruppe »core« ist automatisch<br />
ausgewählt. Sie bewirkt bei Fedora- <strong>und</strong><br />
RHEL-Distributionen eine Minimalinstallation<br />
für den Textmodusbetrieb (ungefähr<br />
200 Pakete mit etwa 600 MByte<br />
Platzbedarf). Die Namen <strong>und</strong> der Umfang<br />
der Paketgruppen von Red-Hat-basierten<br />
Distributionen gehen aus der Datei<br />
»repodata/xxx-comps.xml« auf der Installations-DVD<br />
hervor. Auch »yum grouplist<br />
-v« liefert eine Liste aller Gruppen,<br />
wobei die für den Boxgrinder relevanten<br />
Gruppen-IDs in Klammern angegeben<br />
werden. »yum grouplist« kennt die minimale<br />
<strong>Co</strong>re-Gruppe allerdings nicht.<br />
Neben den hier beschriebenen Schlüsselwörtern<br />
können Sie im Appliance<br />
Definition File zusätzliche Paketquellen<br />
Listing 1: boxgrinder-Plugins<br />
01 boxgrinder-build --version<br />
02 BoxGrinder Build 0.10.2<br />
03<br />
04 Available os plugins:<br />
05 - rhel plugin for Red Hat Enterprise Linux<br />
06 - centos plugin for CentOS<br />
07 - fedora plugin for Fedora<br />
08 - sl plugin for Scientific Linux<br />
09<br />
10 Available platform plugins:<br />
11 - vmware plugin for VMware<br />
12 - ec2 plugin for Amazon Elastic <strong>Co</strong>mpute Cloud<br />
(Amazon EC2)<br />
13 - virtualbox plugin for VirtualBox<br />
14 - virtualpc plugin for VirtualPC<br />
Listing 2: Application definition File für CentOs<br />
01 name: centos<br />
02 summary: CentOS installation with BoxGrinder<br />
03 os:<br />
04 name: centos<br />
05 version: 6<br />
06 hardware:<br />
07 partitions:<br />
08 "/":<br />
09 size: 4<br />
10 "/home":<br />
angeben (»packages«), andere Appliance-<br />
Dateien integrieren (»appliances«), einzelne<br />
Dateien hinzufügen (»files«) sowie<br />
nach Abschluss der eigentlichen Installation<br />
Kommandos ausführen (»post«).<br />
Im Detail sind diese Möglichkeiten in [3]<br />
beschrieben.<br />
Build my box …<br />
Im einfachsten Fall erzeugen Sie die neue<br />
virtuelle Maschine durch den simplen<br />
Aufruf von »boxgrinder-build«, wobei Sie<br />
als einzigen Parameter den Namen des<br />
Appliance Definition File angeben:<br />
boxgrinder-build centos.appl<br />
»boxgrinder-build« muss von Root ausgeführt<br />
werden. Die Ausführung dauert<br />
mehrere Minuten. Wenn eine Distribution<br />
erstmals erzeugt wird, werden alle<br />
erforderlichen Pakete heruntergeladen.<br />
Boxgrinder speichert die Pakete im<br />
Verzeichnis »/var/cache/boxgrinder/<br />
rpms-cache«, weswegen ein neuerlicher<br />
Aufruf des Kommandos dann wesentlich<br />
schneller verarbeitet wird.<br />
Standardmäßig speichert Boxgrinder die<br />
resultierenden Dateien (also eine RAW-<br />
Datei mit dem virtuellen Datenträger <strong>und</strong><br />
15<br />
16 Available delivery plugins:<br />
17 - s3 plugin for Amazon Simple Storage Service<br />
(Amazon S3)<br />
18 - cloudfront plugin for Amazon Simple Storage<br />
Service (Amazon S3)<br />
19 - ami plugin for Amazon Simple Storage Service<br />
(Amazon S3)<br />
20 - sftp plugin for SSH File Transfer Protocol<br />
21 - ebs plugin for Elastic Block Storage<br />
22 - local plugin for Local file system<br />
23 - elastichosts plugin for ElasticHosts<br />
24 - openstack plugin for OpenStack<br />
25 - libvirt plugin for libvirt Virtualisation API<br />
11 size: 1<br />
12 "swap":<br />
13 size: 0.5<br />
14 cpus: 1<br />
15 memory: 1024<br />
16 packages:<br />
17 - @core<br />
18 - @mysql<br />
19 - acpid<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
45
VirtuA lisierung<br />
Vm-images bauen<br />
eine Libvirt-XML-Datei) im folgenden<br />
Verzeichnis:<br />
build/appliances/x86_64//U<br />
//1.0/-plugin/<br />
Bei der Verwendung des Appliance Definition<br />
Files aus Listing 2 ergibt sich<br />
also:<br />
build/appliances/x86_64/centos/6/centos/U<br />
1.0/centos-plugin/<br />
Boxgrinder verwendet normalerweise das<br />
RAW-Format für Image-Dateien. Wenn<br />
Sie das QCOW2-Format vorziehen, rufen<br />
Sie Boxgrinder wie folgt auf:<br />
boxgrinder-build centos.appl --os-config: U<br />
format:qcow2<br />
In der virtuellen Maschine ist außer »root«<br />
kein weiterer Benutzer eingerichtet. Das<br />
Root-Passwort lautet standardmäßig<br />
»boxgrinder« <strong>und</strong> sollte aus Sicherheitsgründen<br />
sofort beim ersten Start der virtuellen<br />
Maschine geändert werden.<br />
Beachten Sie, dass Boxgrinder bei jedem<br />
Aufruf testet, ob eine virtuelle Maschine<br />
mit dem angegebenen Namen bereits<br />
existiert. In diesem Fall verzichtet das<br />
Kommando auf eine neuerliche Erzeugung.<br />
Das spart Zeit, führt aber dazu,<br />
dass Änderungen im Appliance Definition<br />
File ignoriert werden. Nach jeder<br />
Listing 3: beispielhafte boxgrinder-Konfiguration<br />
01 plugins:<br />
02 fedora:<br />
03 format: qcow2<br />
04 centos:<br />
05 format: qcow2<br />
06 libvirt:<br />
07 connection_uri: qemu+ssh://root@kvmhost/system<br />
08 image_delivery_uri: sftp://root@kvmhost/var/lib/<br />
libvirt/images<br />
09 bus: virtio<br />
10 overwrite: true<br />
11 domain_type: kvm<br />
Änderung in dieser Datei müssen Sie<br />
Boxgrinder explizit mit der Option »-f«<br />
dazu zwingen, die virtuelle Maschine<br />
neu einzurichten.<br />
Boxgrinder <strong>und</strong> Libvirt<br />
Natürlich können Sie die resultierende<br />
Image-Datei <strong>und</strong> die dazugehörende<br />
XML-Datei nun manuell am Virtualisierungs-Host<br />
installieren. BoxGrinder kann<br />
Ihnen aber auch diese Aufgabe abnehmen.<br />
Dazu wählen Sie mit der Option<br />
»-d« ein Delivery-Plugin aus. Für <strong>KVM</strong>-<br />
Maschinen ist das Libvirt-Plugin am besten<br />
geeignet, also »-d libvirt«.<br />
Ohne weitere Optionen kopiert BoxGrinder<br />
die Image-Datei dann in das Verzeichnis<br />
»/var/lib/libvirt/images« <strong>und</strong><br />
fügt die virtuelle Maschine in die Liste<br />
der von libvirt verwalteten Maschinen<br />
hinzu. Wenn der <strong>KVM</strong>-Host auf einem<br />
anderen Rechner läuft oder wenn Sie die<br />
Image-Datei in einem anderen Speicherpool<br />
ablegen möchten, müssen Sie zwei<br />
Zusatzoptionen angeben: connection_uri<br />
für die Auslieferung der Beschreibung<br />
der virtuellen Maschine (XML-Datei) <strong>und</strong><br />
»image_delivery_uri« für die Übertragung<br />
der Image-Datei:<br />
boxgrinder centos.appl --os-config format:U<br />
qcow2 -d libvirt --delivery-config U<br />
connection_uri:qemu+ssh://root@kvmhost/system,U<br />
image_delivery_uri:sftp://root@kvmhost/var/U<br />
lib/libvirt/images<br />
Das Boxgrinder-Kommando wird damit<br />
sehr unübersichtlich. Soweit die Zusatzoptionen<br />
für jeden Boxgrinder-Aufruf<br />
zutreffen, ist es deswegen besser, diese in<br />
»/root/.boxgrinder/config« zu speichern.<br />
Diese Datei kann zum Beispiel aussehen<br />
wie in Listing 3. Der Boxgrinder-Aufruf<br />
vereinfacht sich damit wieder zu:<br />
boxgrinder centos.appl -d libvirt<br />
Leider gelten in den von Boxgrinder<br />
erzeugten virtuellen Maschinen einige<br />
recht seltsame Default-Einstellungen. So<br />
werden die virtuellen Festplatten standardmäßig<br />
als IDE-Festplatten angesprochen.<br />
Dies ändert die Option »bus:virtio«<br />
in »/root/.boxgrinder/config«, die auf<br />
den Virtio-Treiber umschaltet. Wenn Sie<br />
die virtuelle Maschine als QCOW2-Image<br />
einrichten, enthält die XML-Datei der<br />
virtuellen Maschine ein falsches Speicherformat.<br />
Die Einstellung lässt sich mit<br />
»virsh edit« oder im Virt-Manager korrigieren<br />
(siehe Abbildung 1).<br />
Als Hypervisor kommt Qemu statt <strong>KVM</strong><br />
zum Einsatz. Das ist auch der Gr<strong>und</strong><br />
dafür, warum die virtuellen Maschinen<br />
so langsam laufen. Abhilfe schafft die<br />
Option »domain_type:kvm« in »/root/.<br />
boxgrinder/config«.<br />
Schnelleres Netzwerken<br />
Auch die Netzwerkanbindung verwendet<br />
nicht Virtio, sondern einen RTL8139-<br />
Adapter. Schneller funktioniert das Netz,<br />
wenn Sie das Gerätemodell der Netzwerkkarte<br />
auf »virtio« umstellen. Es existiert<br />
leider keine entsprechende Option<br />
im Libvirt-Plugin von Boxgrinder.<br />
ACPI <strong>und</strong> APIC sind standardmäßig nicht<br />
aktiv. ACPI ermöglicht es, die virtuelle<br />
Maschine durch ein ACPI-Shutdown-<br />
Kommando geordnet herunterzufahren<br />
beziehungsweise neu zu starten. APIC<br />
Listing 4: Virtueller ubuntu-server mit Vmbuilder<br />
01 vmbuilder kvm ubuntu --suite precise \<br />
02 --libvirt qemu:///system \<br />
03 --mem 512 --user kofler \<br />
04 --dest /var/lib/libvirt/images/firma-abc.de \<br />
05 --hostname firma-abc.de \<br />
06 --bridge br0 \<br />
07 --ip 79.47.194.162 --mask 255.255.255.248 --net<br />
79.47.194.160 \<br />
08 --gw 79.47.194.166 --dns 213.211.98.98 \<br />
09 --addpkg openssh-server --addpkg acpid \<br />
10 -v<br />
Abbildung 1: Bei QCOW2-Images ist das Speicherformat des Datenträgers falsch voreingestellt.<br />
46 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Vm-images bauen<br />
VirtuA lisierung<br />
steht für Advanced Programmable Interrupt<br />
<strong>Co</strong>ntroller <strong>und</strong> bezeichnet ein<br />
Schema, um Hardware-Interrupts an die<br />
CPUs weiterzuleiten. Sie sollten beide<br />
Optionen im Dialogblatt »Overview« des<br />
Virtual Maschine Managers (Unterpunkt<br />
Maschineneinstellungen) setzen.<br />
In der virtuellen Maschine gilt das US-<br />
Tastaturlayout. Abhilfe: Sie müssen das<br />
Keyboard in der Datei »/etc/sysconfig/<br />
keyboard« richtig einstellen. In den virtuellen<br />
Maschinen gilt die Zeitzone EDT<br />
(Eastern Daylight Time, das ist die Zeit,<br />
die in New York gilt). Die Lösung hierbei<br />
ist: Kopieren Sie die geeignete Zeitzonendatei<br />
von »/usr/share/zoneinfo« nach »/<br />
etc/localtime«. Anschließend müssen Sie<br />
noch innerhalb der virtuellen Maschine<br />
die Netzwerkeinstellungen manuell<br />
anpassen.<br />
Die Gefahr ist aber groß, dass derartig<br />
suboptimale Optionen übersehen werden<br />
<strong>und</strong> die virtuelle Maschine deswegen<br />
weniger effizient läuft, als es eigentlich<br />
möglich wäre. Es ist unverständlich, warum<br />
nicht von vorneherein zweckmäßigere<br />
Defaulteinstellungen zum Einsatz<br />
Tabelle 1: Vmbuilder-Optionen<br />
Option<br />
Funktion<br />
--addpkg Name<br />
Installiert zusätzlich das angegebene Paket. Wenn Sie mehrere Pakete wünschen, müssen Sie die Option für jedes Paket<br />
anführen. Es ist also nicht zulässig, mehrere Paketnamen auf einmal zu nennen.<br />
--arch i386|amd64 Gibt die gewünschte CPU-Architektur an – standardmäßig verwendet VMBuilder dieselbe Architektur wie jene des Hostrechners.<br />
--bridge Name<br />
Verwendet für den Netzwerkzugang die angegebene Netzwerk-Bridge.<br />
--components<br />
Name1,Name2<br />
--dest Name<br />
--firstboot Dateiname<br />
--firstlogin Dateiname<br />
--flavour Name<br />
--hostname Name<br />
Verwendet die angegebenen Paketquellen (zum Beispiel »main,universe,multiverse«) statt nur »main«. Die Liste der Paketquellen<br />
muss ohne Leerzeichen angegeben werden!<br />
Verwendet das angegebene Zielverzeichnis (standardmäßig »./ubuntu-kvm« relativ zum aktuellen Verzeichnis). Dieses<br />
Verzeichnis wird von VMBuilder erzeugt. Das Verzeichnis darf noch nicht existieren, es sei denn, Sie wollen den bisherigen<br />
Inhalt des Verzeichnisses überschreiben <strong>und</strong> führen VMBuilder mit der Option »-o« aus.<br />
Gibt den Dateinamen eines Shell-Skripts an. Es wird in das Dateisystem der virtuellen Maschine kopiert <strong>und</strong> beim ersten<br />
Bootprozess ausgeführt. Es darf keine interaktiven Elemente enthalten.<br />
Gibt den Dateinamen eines Shell-Skripts an. Es wird in das Dateisystem der virtuellen Maschine kopiert <strong>und</strong> beim ersten<br />
Login automatisch ausgeführt. Das Skript darf interaktive Elemente enthalten. Es dient in der Regel dazu, eine Basiskonfiguration<br />
durchzuführen (beispielsweise die Veränderung des Login-Passworts, die Einstellung des Passworts des MySQL-<br />
Servers, falls dieser installiert wurde <strong>und</strong> so weiter).<br />
Gibt die gewünschte Kernel-Variante an. In der Regel ist »virtual« die richtige Wahl. Damit erhalten Sie einen für Virtualisierungssysteme<br />
optimierten Kernel.<br />
Gibt den gewünschten Hostnamen für die virtuelle Maschine an. Dieser Name wird gleichzeitig auch zur Bezeichnung der<br />
virtuellen Maschine für die Libvirt-Werkzeuge verwendet <strong>und</strong> darf noch nicht genutzt werden. Wenn diese Option nicht angegeben<br />
wird, verwendet VMBuilder sowohl als Hostnamen als auch als Libvirt-Namen »ubuntu«.<br />
Die IP-Adresse der virtuellen Maschine. Ohne diese <strong>und</strong> die folgenden Angaben erwartet VM einen DHCP-Server.<br />
--ip n.n.n.n<br />
--mask n.n.n.n Die Netzwerkmaske der virtuellen Maschine. Der Default-Wert ist 255.255.255.0.<br />
--net n.n.n.n<br />
Die Netzwerkadresse der virtuellen Maschine. Der Default-Wert lautet n.n.n.0.<br />
--bcast n.n.n.n<br />
Die Broadcast-Adresse der virtuellen Maschine mit dem Default-Wert n.n.n.255.<br />
--gw n.n.n.n<br />
Die Adresse des Default Gateway. Ohne diese Angabe verwendet die VM die Adresse n.n.n.1.<br />
--dns n.n.n.n<br />
Die Nameserver-Adresse, per Default n.n.n.1.<br />
--libvirt qemu:/// system Installiert die virtuelle Maschine im Libvirt-System.<br />
-m n Weist der virtuellen Maschine n MByte Speicher zu (standardmäßig 128).<br />
--mirror URL<br />
Verwendet für den Download der Installationspakete den angegebenen Mirror-Server statt »http://archive.ubuntu.com/<br />
ubuntu«. Wenn Sie vorhaben, viele Installationen durchzuführen, sollten Sie einen eigenen Mirror-Server einrichten. Beachten<br />
Sie, dass die Mirror-Adresse auch in der Datei »/etc/apt/sources.list« der virtuellen Maschine eingetragen wird, sodass<br />
dann auch die virtuelle Maschine diesen Mirror verwendet. Wenn Sie das nicht möchten, verwenden Sie statt »--mirror« die<br />
Option »--install-mirror«.<br />
--ppa Name<br />
Verwendet außer den gewöhnlichen Paketquellen auch das angegebene Personal Package Archive (PPA).<br />
--proxy URL<br />
Verwendet den angegebenen Proxy-Server für den Download der Installationspakete.<br />
-o / --overwrite Löscht den Inhalt des Verzeichnisses »./ubuntu-kvm« beziehungsweise des mit »--dir« angegebenen Verzeichnisses.<br />
--part Dateiname Liest die gewünschte Partitionierung der Festplatte aus der angegebenen Datei. Jede Zeile dieser Datei gibt das mount-<br />
Verzeichnis (für die Root- <strong>und</strong> Swap-Partition ohne einleitendes /-Zeichen) <strong>und</strong> die gewünschte Größe in MByte an.<br />
--raw Dateiname Gibt den Namen einer RAW-Image-Datei an, in die das Dateisystem installiert werden soll.<br />
--user Login<br />
Der Login-Name für die neue VM. Per Default lauten Account <strong>und</strong> Passwort »ubuntu«, <strong>und</strong> es gibt kein Root-Passwort.<br />
--name Fullname Den vollständigen Name für den Benutzer-Account.<br />
--pass Passwort Das Passwort des Accounts.<br />
--rootpass Passwort Das Root-Passwort für die virtuelle Maschine.<br />
--suite Name Gibt den Namen der gewünschten Ubuntu-Version an (zum Beispiel »precise« für Ubuntu 12.04).<br />
-v Gibt während der Installation Feedback darüber, was gerade passiert.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
47
VirtuA lisierung<br />
Vm-images bauen<br />
kommen. Mit der Notwendigkeit, diverse<br />
Einstellungen manuell richtig zu stellen,<br />
bleibt von der durch Boxgrinder eingesparte<br />
Zeit beim Einrichten von virtuellen<br />
Maschinen nicht mehr viel übrig. Abhilfe<br />
können Scripts schaffen, die die XML-<br />
Datei der neuen virtuellen Maschine auf<br />
dem <strong>KVM</strong>-Host korrigieren <strong>und</strong> die innerhalb<br />
der virtuellen Maschine diverse<br />
Gr<strong>und</strong>einstellungen verändern (Tastaturlayout,<br />
Zeitzone).<br />
Künftig soll es zu Boxgrinder auch ein<br />
grafisches Frontend namens Boxgrinder<br />
Studio geben, das über eine REST-<br />
Schnittstelle mit den Build-Tools zusammenarbeitet<br />
(Abbildung 2).<br />
VMBuilder<br />
Das Ubuntu-spezifische Gegenstück zu<br />
Boxgrinder ist VMBuilder. Er hilft dabei,<br />
virtuelle Ubuntu-Maschinen mit minimalem<br />
Aufwand einzurichten. Neben <strong>KVM</strong>/<br />
Libvirt unterstützt es auch die Virtualisierungssysteme<br />
Amazon EC2, Virtual-<br />
Box, VMware <strong>und</strong> Xen. VMBuilder ist als<br />
Python-Script realisiert, das sich im Paket<br />
»python-vm-builder« befindet:<br />
apt-get install python-vm-builder<br />
Die Manpage zum Kommando VMBuilder<br />
ist leider wenig hilfreich. Eine Liste aller<br />
Optionen liefert »vmbuilder kvm ubuntu<br />
--help«. Außerdem enthält der Ubuntu-<br />
Server-Guide ein VMBuilder-Kapitel [4].<br />
VMBuilder muss mit Root-Rechten beziehungswese<br />
mit »sudo« ausgeführt<br />
werden. In der Minimalvariante sieht die<br />
Syntax wie im folgenden Beispiel aus:<br />
vmbuilder kvm ubuntu --suite precise U<br />
--libvirt qemu:///system<br />
Der erste Parameter gibt das gewünschte<br />
Virtualisierungssystem an, der zweite<br />
die Distribution. Die Option »--suite« bestimmt<br />
die Ubuntu-Version, wobei »precise«<br />
der <strong>Co</strong>dename für Ubuntu 12.04 ist.<br />
Die Option »--libvirt uri« gibt schließlich<br />
an, auf welchem <strong>KVM</strong>-Host VMBuilder<br />
die virtuelle Maschine einrichten soll.<br />
VMBuilder führt gr<strong>und</strong>sätzlich eine Minimalinstallation<br />
durch, die etwa 190 Pakete<br />
umfasst <strong>und</strong> 500 MByte Speicherplatz auf<br />
der Festplatte belegt. Die Installation umfasst<br />
keinen grafischen Desktop.<br />
VMBuilder erstellt die Image-Datei für<br />
die virtuelle Festplatte im Unterverzeichnis<br />
»ubuntu-kvm«<br />
relativ zum gerade<br />
aktuellen Verzeichnis.<br />
Wenn Sie die<br />
virtuelle Maschine<br />
an einem anderen<br />
Ort speichern<br />
möchten, sollten<br />
Sie vor der Ausführung<br />
von VMBuilder<br />
das Verzeichnis<br />
wechseln oder<br />
mit der Option<br />
»--dest« das Zielverzeichnis<br />
vorgeben.<br />
VMBuilder<br />
erzeugt das Zielverzeichnis<br />
selbst,<br />
es darf nicht existieren!<br />
Ist das doch<br />
der Fall, meldet sich VMBuilder mit einer<br />
Fehlermeldung – ärgerlicherweise aber<br />
erst am Ende des Build-Prozesses.<br />
Für die von VMBuilder erzeugten virtuellen<br />
Maschinen gibt es eine Reihe von<br />
Standard-Einstellungen. So kommt dieselbe<br />
CPU-Architektur wie auf dem Rechner<br />
zum Einsatz, auf dem VMBuilder ausgeführt<br />
wird. Wenn Sie VMBuilder also<br />
auf einer 64-Bit-Installation von Ubuntu<br />
ausführen, wird auch in der virtuellen<br />
Maschine eine 64-Bit-Version von Ubuntu<br />
installiert. Der virtuellen Maschine steht<br />
dabei eine CPU (ein <strong>Co</strong>re) sowie 128<br />
MByte RAM zur Verfügung.<br />
Das Dateisystem wird in einer QCOW2-<br />
Image-Datei mit 4 GByte abgelegt. Davon<br />
sind 3 GByte für die Systempartition <strong>und</strong><br />
ein weiteres GByte für die Swap-Partition<br />
reserviert. Die Image-Datei wird im<br />
Verzeichnis »kvm-ubuntu« gespeichert<br />
<strong>und</strong> nicht in einen Libvirt-Speicherpool<br />
übertragen. Die Image-Datei wird über<br />
den IDE-Treiber an die virtuelle Maschine<br />
weitergegeben (also nicht über den effizienteren<br />
Virtio-Treiber). Der Netzwerkadapter<br />
verwendet dagegen den Virtio-<br />
Treiber. Die virtuelle Maschine befindet<br />
sich im Default-Netzwerk der Libvirt-<br />
Werkzeuge. In der virtuellen Maschine<br />
wird der Benutzer »ubuntu« mit dem<br />
Passwort »ubuntu« eingerichtet. »ubuntu«<br />
lautet auch der Hostname.<br />
Wenn Sie von diesen Eckdaten abweichende<br />
Einstellungen wünschen, müssen<br />
Sie entsprechende Optionen angeben<br />
(siehe Tabelle 1). Das macht den Aufruf<br />
Abbildung 2: Das in Planung befindliche Boxgrinder Studio soll als grafisches<br />
Frontend die Erstellung virtueller Maschinen erleichtern.<br />
des VMBuilder-Kommandos leider recht<br />
unübersichtlich.<br />
Listing 4 zeigt eine reale Ubuntu-Server-<br />
Installation. Mit diesen Optionen (beachten<br />
Sie insbesondere --dest <strong>und</strong> --hostname)<br />
erzeugt »vmbuilder« die folgenden<br />
Dateien, wobei »xxxxxx« eine zufällige<br />
Zeichenkette ist:<br />
/etc/libvirt/qemu/firma-abc.de.xml<br />
/var/lib/libvirt/images/firma-abc.de/U<br />
xxxxxx.qcow2<br />
Die erste Zeile ist die XML-Datei für Libvirt,<br />
die zweite gibt die Image-Datei an.<br />
VMBuilder-Eigenheiten<br />
Leider weist auch VMBuilder einige Macken<br />
auf. So weigert er sich, die neue<br />
virtuelle Maschine in der Libvirt-Verwaltung<br />
einzurichten, wenn schon eine<br />
gleichnamige Maschine existiert. Das ist<br />
so weit sinnvoll, schön wäre nur, wenn<br />
der entsprechende Test bereits zu Beginn<br />
erfolgen würde <strong>und</strong> nicht erst zum Ende<br />
des Build-Prozesses. Geben Sie also mit<br />
»--hostname« einen eindeutigen Namen<br />
an, der nicht nur als Hostname verwendet<br />
wird, sondern auch als Name für die<br />
Libvirt-Werkzeuge.<br />
VMBuilder legt zum Erzeugen virtueller<br />
Maschinen das Verzeichnis<br />
»kvm-ubuntu« an, löscht es später aber<br />
nicht mehr (selbst wenn das Verzeichnis<br />
dank der Option »--dest« leer ist). Bei<br />
einem neuerlichen Aufruf gibt das Skript<br />
dann die Fehlermeldung »ubuntu-kvm<br />
48 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Vm-images bauen<br />
VirtuA lisierung<br />
already exists« aus. Abhilfe: Löschen Sie<br />
das Verzeichnis von Hand.<br />
Der VMBuilder wählt die Hardware-<br />
Komponenten der virtuellen Maschine<br />
nicht optimal aus. Insbesondere der Festplattenzugriff<br />
über einen virtuellen IDE-<br />
<strong>Co</strong>ntroller bremst die VM. Wenn Sie den<br />
schnelleren Virtio-Treiber nutzen möchten,<br />
ersetzen Sie in »/etc/fstab« der virtuellen<br />
Maschine »/dev/sda« durch »/dev/<br />
vda« <strong>und</strong> fahren die virtuelle Maschine<br />
dann herunter. Anschließend stellen Sie<br />
in der Konfiguration der virtuellen Maschine<br />
von IDE auf Virtio um (am einfachsten<br />
im Virtual Machine Manager).<br />
Das Paket »acpid« wird nicht automatisch<br />
installiert. Die virtuelle Maschine reagiert<br />
deswegen nicht auf ACPI-Ereignisse (also<br />
zum Beispiel auf die Shutdown-Anforderung<br />
des Virtual Machine Managers).<br />
Installieren Sie zur Lösung dieses Problems<br />
das Paket »acpid« oder geben Sie<br />
beim Einrichten der virtuellen Maschine<br />
die Option »--addpkg acpid« an.<br />
In der virtuellen Maschine gilt standardmäßig<br />
das US-Tastaturlayout. Abhilfe<br />
schafft hier das Kommando »dpkg-reconfigure<br />
keyboard-configuration«. VMBuilder<br />
installiert in der virtuellen Maschine<br />
als Bootloader Grub 0.97 <strong>und</strong> nicht die<br />
normalerweise bei Ubuntu zum Einsatz<br />
kommende Version 2.<br />
Im Gegensatz zu Boxgrinder legt VMBuilder<br />
keinen Cache für die zur Installation<br />
erforderlichen Pakete an. Daher müssen<br />
alle erforderlichen Pakete bei jeder Installation<br />
erneut heruntergeladen werden.<br />
Richten Sie deshalb besser einen APT-<br />
Proxy ein (zum Beispiel mit »approx«<br />
oder mit »apt-cacher-ng«). Beim Aufruf<br />
von VMBuilder müssen Sie nun mit »--install-mirror«<br />
die Proxy-Adresse angeben.<br />
Fazit<br />
Boxgrinder <strong>und</strong> VMBuilder können Menge<br />
Zeit beim regelmäßigen Einrichten virtueller<br />
Maschinen sparen. Beide Tools sind<br />
aber nicht ohne Tücken <strong>und</strong> richten sich<br />
an professionelle Administratoren. Für<br />
<strong>KVM</strong>-Anwender, die nur hin <strong>und</strong> wieder<br />
eine neue virtuellen Maschine anlegen,<br />
lohnt sich die Einarbeitung nicht. (ofr) n<br />
Infos<br />
[1] Boxgrinder: [http://boxgrinder.org]<br />
[2] Meta-Appliance verwenden:<br />
[http://boxgrinder. org/tutorials/boxgrinde<br />
r-build-meta-appliance/]<br />
[3] Appliance-Definition: [http://boxgrinder.<br />
org/tutorials/ appliance-definition/]<br />
[4] JeOS <strong>und</strong> VMBuilder: [https://help.<br />
ubuntu.com/ 12. 04/ serverguide/C/<br />
jeos-and-vmbuilder.html]<br />
Der Autor<br />
Michael Kofler [http:// kofler. info] arbeitet als<br />
selbstständiger <strong>Co</strong>mputerbuch-Autor <strong>und</strong> Trainer.<br />
Zuletzt hat er zusammen mit Ralf Spenneberg<br />
das Buch „<strong>KVM</strong> für die Server-Virtualisierung“ im<br />
Addison-Wesley-Verlag veröffentlicht.<br />
SERVER VIRTUALISIERUNG<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
49
s eC u R i T y<br />
ARP Cache Poisoning<br />
© Eric Issele, 123RF<br />
ARP Cache Poisoning <strong>und</strong> Paket-Sniffing<br />
Ausgeschnüffelt<br />
um in geswitchten netzwerken an sensible informationen zu gelangen <strong>und</strong> ihre eigene identität zu verbergen,<br />
verwenden Cracker Techniken wie ARP Cache Poisoning. dieser Artikel erklärt, wie es funktioniert. david J. dodd<br />
Listing 1: ARP-Pakete mit nemesis<br />
In der Theorie sollten in einem Netzwerk<br />
mit Switches die Sicherheitsrisiken<br />
gering sein. Der Switch tauscht Daten nur<br />
mit dem Rechner aus, für den sie gedacht<br />
sind, statt sie wie bei einem Broadcast-<br />
Medium allen zugänglich über eine gemeinsame<br />
Leitung zu schicken. Doch<br />
wie so oft haben findige Hacker auch<br />
hier Sicherheitslücken ausgemacht, die<br />
die schöne Theorie Makulatur werden<br />
lassen.<br />
Eine solche Methode besteht darin, die<br />
eigene MAC-Adresse zu fälschen <strong>und</strong><br />
die ARP-Tabelle zu „vergiften“ (im Englischen<br />
wird von ARP Cache Poisoning<br />
gesprochen). Die ARP-Tabellen in Netzwerkgeräten<br />
<strong>und</strong> Rechnern speichern die<br />
Zuordnung von IP- <strong>und</strong> den MAC-Adressen,<br />
die in der Hardware der Netzwerkkarte<br />
festgelegt sind, sich aber dennoch<br />
auch von Hand im Betriebssystem ändern<br />
lassen. Weil das ARP-Protokoll keine Zustandsinformationen<br />
speichert, lässt sich<br />
der ARP-Cache überschreiben, außer ein<br />
Eintrag ist explizit als „permanent“ gekennzeichnet.<br />
ARP Cache Poisoning verschafft einem<br />
Angreifer die Gelegenheit, die Daten<br />
zwischen zwei Rechnern unerlaubt mitzuschneiden.<br />
Der beteiligte <strong>Co</strong>mputer A<br />
denkt dabei, er würde mit B kommunizieren,<br />
aber aufgr<strong>und</strong> der gefälschten<br />
ARP-Einträge gehen die Pakete in Wahrheit<br />
an den <strong>Co</strong>mputer des Angreifers. Der<br />
wiederum kann entweder A direkt antworten<br />
oder die Pakete an B weiterleiten,<br />
nachdem er sie zur weiteren Verwendung<br />
gespeichert hat. Genauso macht er das<br />
01 $ while true<br />
02 > do<br />
03 > sudo nemesis arp -v -r -d eth0 -S 192.168.1.2 -D 192.168.1.133 -h 00:22:6E:71:04:BB -m<br />
00:0C:29:B2:78:9E -H 00:22:6E:71:04:BB -M 00:0C:29:B2:78:9E<br />
04 > sudo nemesis arp -v -r -d eth0 -S 192.168.1.133 -D 192.168.1.2 -h 00:22:6E:71:04:BB -m<br />
00:22:6B:7E:AD:7C -H 00:22:6E:71:04:BB -M 00:22:6B:7E:AD:7C<br />
05 > echo „Redirecting“<br />
06 > sleep 10<br />
07 > done<br />
mit den Paketen von B, er ist also bei<br />
diesem Angriff der klassische Man-inthe-Middle.<br />
Tools<br />
Um ARP Cache Poisoning anzuwenden,<br />
muss der Angreifer sich im selben Netzwerksegment<br />
befinden wie die Systeme,<br />
für die er sich interessiert. Der erste<br />
Schritt besteht darin, die IP-Adressen <strong>und</strong><br />
die zugehörigen MAC-Adressen herauszufinden.<br />
Dafür gibt es einige Tools, zum<br />
Beispiel Ettercap [1], eine Suite von Programmen<br />
für Man-in-the-Middle-Angriffe<br />
in einem lokalen Netz. Es kann Verbindungen<br />
abhören (Sniffing), nach Inhalten<br />
filtern, unterstützt aktive wie passive<br />
Protokollanalyse <strong>und</strong> vieles mehr. Der<br />
Befehl<br />
ettercap -T -M arp:remote //<br />
bringt schnell alle Hosts im aktuellen<br />
Subnetz in Erfahrung. Um die Ergebnisse<br />
anzusehen, drücken Sie [L]. Mit der Taste<br />
[h] gibt das Tool einen Hilfetext aus. Um<br />
die fortlaufende Ausgabe der gelesenen<br />
Pakete abzustellen, drücken Sie die Leertaste.<br />
52 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Das Arpspoof-Tool aus dem Dsniff-Paket<br />
[2], einer freien Suite für Netzwerk-Auditing<br />
<strong>und</strong> Penetration-Testing, erlaubt<br />
das ARP-Poisoning einer bestimmten<br />
Adresse derart, dass das betroffene System<br />
nicht mehr mit anderen Rechnern<br />
kommunizieren kann. Das Paket enthält<br />
Programme wie »dsniff«, »filesnarf«,<br />
»mailsnarf«, »msgsnarf«, »urlsnard« <strong>und</strong><br />
»webspy«, die passiv den Netzwerkverkehr<br />
auf interessante Daten hin untersuchen.<br />
Die Tools »arpspoof«, »dnsspoof«<br />
<strong>und</strong> »macof« helfen dabei, Pakete mitzulesen,<br />
die normalerweise in geswitchten<br />
Netzwerken nicht zu sehen wären. Das<br />
kompatible, aber eigenständige Arpspoof<br />
[3] kann einfacher als Ettercap Pakete<br />
umleiten:<br />
arpspoof -i eth0 -t Target Host<br />
Die Angabe der Netzwerkschnittstelle ist<br />
optional, aber erforderlich, wenn man<br />
mehr als eine Netzwerkkarte im Rechner<br />
stecken hat. Die Option »-t« gibt den<br />
Rechner an, dessen Traffic man übernehmen<br />
möchte. Der Host kann etwa<br />
das Default Gateway sein, was dann verhindert,<br />
dass der angegriffene Rechner<br />
Ziele außerhalb seines lokalen Netzes<br />
erreichen kann.<br />
Arpspoof leitet Pakete um, indem es ARP-<br />
Antworten fälscht. Dazu verwendet es<br />
die »arp_send()«-Funktion, die ein ARP-<br />
Paket mit Quell-/ Ziel-IP <strong>und</strong> der MAC-<br />
Adresse verschickt. Die Libnet ist eine<br />
Bibliothek, die eine API für Netzwerkprogrammierung<br />
in verschiedenen Protokollen<br />
bietet.<br />
Wie genau ARP-Poisoning funktioniert,<br />
lässt sich gut mit dem Nemesis-Tool [4]<br />
nachvollziehen. Hat man die IP- <strong>und</strong><br />
die MAC-Adresse des Zielrechners, kann<br />
man mit Nemesis die ARP-Informationen<br />
manipulieren. Nemesis ist ein Kommandozeilentool,<br />
mit dem sich laut Dokumentation<br />
ARP-, DNS-, Ethernet-, ICMP-,<br />
IGMP-, IP-, OSPF-, RIP-, TCP- <strong>und</strong> UDP-<br />
Tabelle 1: ARP-Optionen von nemesis<br />
Option Funktion<br />
-S Quell-IP-Adresse<br />
-D Ziel-IP-Addresse<br />
-h MAC-Adresse des Senders<br />
-m MAC-Adresse des Ziels<br />
-H Quell-MAC-Adresse<br />
-M Ziel-MAC-Adresse<br />
Pakete zusammenstellen <strong>und</strong> ins Netz<br />
einschleusen lassen. Listing 1 zeigt, wie<br />
man mit Nemesis zwei Pakete schnürt,<br />
die den ARP-Cache manipulieren.<br />
Die verwendeten Nemesis-Optionen<br />
zeigt Tabelle 1. Die beiden Kommandos<br />
fälschen die ARP-Antworten von<br />
192.168.1.2 an 192.168.1.133 <strong>und</strong> dann<br />
von 192.168.1.33 an 192.168.1.2 <strong>und</strong><br />
senden falsche ARP-Antworten, damit<br />
der gefälschte ARP-Cache erhalten bleibt.<br />
Um das sicherzustellen, läuft Listing 1 in<br />
einer Schleife, die die beiden Befehle alle<br />
zehn Sek<strong>und</strong>en aufs Neue ausführt. Der<br />
angegriffene Rechner ist dann offline <strong>und</strong><br />
nicht mehr in der Lage, mit anderen zu<br />
kommunizieren.<br />
Sniffing<br />
Ein Ziel eines ARP-Angriffs ist es, den<br />
Angreifer in die Lage zu versetzen, interessante<br />
Informationen, die über das<br />
Netz gehen, mitzuschneiden <strong>und</strong> weiterzuverwenden.<br />
Dafür gibt es wieder mehrere<br />
Tools. So bietet Ettercap den Bridge<br />
Mode, der gelesene Pakete mitschneidet,<br />
die sich später auswerten oder auch<br />
gleich manipulieren lassen, bevor man<br />
sie an seine Angriffsziele weiterleitet. Der<br />
Bridge Mode setzt zwei Netzwerkkarten<br />
voraus, die sich im gleichen Netzwerksegment<br />
befinden. Solchermaßen aufgesetzte<br />
Rechner sind sehr schwer zu<br />
finden:<br />
ettercap -Tq -i eth0 -B eth1<br />
Der Schalter »-i« setzt das primäres Interface<br />
»eth0« fest, als Bridging-Interface<br />
dient »eth1«. Im der grafischen Schnittstelle<br />
von Ettercap, die sich mit »-G« starten<br />
lässt, findet sich die Funktion unter<br />
»Sniff | Bridged Sniffing«.<br />
Um alle Pakete in eine Datei zu schreiben,<br />
gibt es eine Reihe von Tools, darunter<br />
»p0f«, ein passives Betriebssystem-Fingerprinting-Programm.<br />
Mit dem<br />
Parameter »-w« aufgerufen, schreibt »p0f«<br />
eine Tcpdump-kompatible Datei:<br />
p0f -w dumpfile.pcap<br />
Genauso funktioniert das mit dem Dsniff-<br />
Tool aus dem gleichnamigen Paket:<br />
dsniff -w dumpfile.pcap<br />
Auch Ettercap kann die mitgeschnittenen<br />
Pakete in ein File schreiben:<br />
ACH SO!<br />
SCHULUNGEN FÜR <strong>ADMIN</strong>S,<br />
DIE DURCHBLICKEN WOLLEN<br />
Fachlich <strong>und</strong> didaktisch kompetente<br />
Dozenten, spannende Schulungsthemen,<br />
eine lockere Atmosphäre im Kurs <strong>und</strong><br />
angenehme Unterrichtsräume – all das<br />
erwartet Sie bei uns in Berlin an der<br />
Heinlein Akademie.<br />
Die nächsten Kurse:<br />
ab 08.10.<br />
Netzwerkrouting für Profis<br />
ab 15.10.<br />
Apache2 Webserver<br />
ab 15.10.<br />
Sichere Mailserver mit Postfix<br />
ab 17.10.<br />
Puppet Master Curriculum<br />
ab 22.10.<br />
Bacula Administration Level I<br />
ab 22.10.<br />
DNS <strong>und</strong> DNSsec<br />
Jetzt anmelden unter<br />
www.heinlein-akademie.de<br />
www.A dmin-mAgA zin.de<br />
53<br />
AusgA be 05-2012 Linux höchstpersönlich.
s eC u R i T y<br />
ARP Cache Poisoning<br />
Abbildung 1: Im Bridge Mode schneidet Ettercap die Pakete mit, die zwischen<br />
zwei Rechnern ausgetauscht werden.<br />
Abbildung 2: Scapy bereitet Paket-Dump-Dateien auf Wunsch grafisch auf <strong>und</strong><br />
zeigt dabei den Inhalt der TCP/IP-Pakete im Detail an.<br />
ettercap -T -M arp:remote /192.168.1.1/ U<br />
/192.168.1.130/ -w dumpfile.pcap<br />
Zuverlässiger ist es, nur die Pakete von<br />
einem bestimmten <strong>Co</strong>mputer mitzuschneiden<br />
statt den kompletten Traffic.<br />
Dabei stürzt Ettercap gelegentlich ab.<br />
Um die gespeicherten Daten zu untersuchen,<br />
können Sie Scapy [5] verwenden,<br />
das ebenso spezielle Datenpakete anfertigen<br />
kann, wie auch Netze scannen, Routen<br />
tracen <strong>und</strong> so weiter. Im interaktiven<br />
Modus starten Sie »scapy« <strong>und</strong> lesen die<br />
Protokolldatei ein, dann zeigt Scapy eine<br />
Grafik ähnlich der in Abbildung 2.<br />
>>> a=rdpcap("dumpfile.pcap")<br />
>>> a<br />
<br />
>>> a[423].pdfdump(layer_shift=1)<br />
Scapy kann auch grafisch darstellen, was<br />
im Netzwerk passiert, indem es ein einfaches<br />
Diagramm des Datenflusses erstellt.<br />
Dazu bietet es die Methode »conversations()«,<br />
die voraussetzt, dass die Pakete<br />
Graphviz <strong>und</strong> Imagemagick installiert<br />
sind. So schneidet der folgende Befehl<br />
den WLAN-Verkehr mit <strong>und</strong> zeigt ihn<br />
grafisch an.<br />
>>> a=sniff(iface="wlan0", U<br />
prn=lambda x: x.summary())<br />
>>> a.conversations()<br />
Das Ergebnis ist in Abbildung 3 zu sehen.<br />
Mit der rechten Maustaste öffnet sich auf<br />
dem dargestellten Fenster ein Menü, mit<br />
dem sich das Diagramm in verschiedenen<br />
Formaten speichern lässt.<br />
Fazit<br />
ARP Cache Poisoning eröffnet Angreifern<br />
die Möglichkeit, auch in geswitchten Netzen<br />
den Datenverkehr zwischen Rechnern<br />
mitzulesen <strong>und</strong> zu manipulieren.<br />
Mit den hier vorgestellten Programmen<br />
lässt sich das eigene Netzwerk dahingehend<br />
überprüfen, ob es in dieser Hinsicht<br />
verw<strong>und</strong>bar ist.<br />
Eine Maßnahme gegen die hier demonstrierten<br />
Angriffe sind die erhöhten Port-<br />
Security-Vorkehrungen, die viele Switches<br />
heute bieten. Sie sollte man auf jeden Fall<br />
aktivieren. Auch Tools wie Arpwatch [6]<br />
oder Arpalert [7] helfen dabei, solche<br />
Attacken zu verhindern oder zumindest<br />
aufzudecken. Gegen das Mitschneiden<br />
von Daten hilft auf jeden Fall Verschlüsselung,<br />
sei es HTTPS bei Webtraffic oder<br />
SSH bei interaktiven Sessions. (ofr) n<br />
Infos<br />
[1] Ettercap:<br />
[http://ettercap. sourceforge.net/]<br />
[2] Dsniff:<br />
[http://monkey. org/ ~dugsong/dsniff/]<br />
[3] Arpspoof:<br />
[http://arpspoof. sourceforge.net/]<br />
[4] Nemesis:<br />
[http://nemesis. sourceforge.net/]<br />
[5] Scapy:<br />
[http://www. secdev.org/projects/scapy/]<br />
[6] Arpwatch: [http://linuxcommand.org/<br />
man_pages/ arpwatch8.html]<br />
[7] Arpalert: [http://www.arpalert.org/]<br />
Abbildung 3: Scapy gibt eine Übersicht über den Datenfluss im Netz.<br />
Der Autor<br />
David J. Dodd besitzt eine „Top Secret“-Freigabe<br />
des amerikanischen Verteidigungsministeriums<br />
<strong>und</strong> bietet <strong>Co</strong>nsulting-Leistungen zu Informationssicherheit.<br />
Er hält Vorträge auf diversen<br />
Security-Konferenzen, ist Mitglied von Infragard<br />
<strong>und</strong> trägt zu Securing Our eCity bei.<br />
54 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
3 AUSGABEN<br />
FÜR NUR 5,90 E<br />
Jetzt bestellen: 3 Hefte zum Preis von einem. Sie sparen 66 %!<br />
KENNENLERN-<br />
ANGEBOT:<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
s eCuriT y<br />
security <strong>Co</strong>mpliance manager<br />
© Konstantin Kirillov, 123RF<br />
Microsoft Security <strong>Co</strong>mpliance Manager härtet kostenlos Serversysteme ab<br />
Gefixt <strong>und</strong> zugenäht<br />
die microsoft-betriebssysteme gelten nicht unbedingt als inbegriff der <strong>Co</strong>mputersicherheit. der kostenlose<br />
security <strong>Co</strong>mpliance manager hilft dabei, die gr<strong>und</strong>legenden Absicherungsmaßnahmen zu treffen. Thomas Joos<br />
Unternehmen haben beim Einsatz mehrerer<br />
Windows-Server oft das Problem,<br />
Sicherheitseinstellungen einheitlich zu<br />
verteilen <strong>und</strong> optimal zu gestalten. Der<br />
kostenlose Microsoft Security <strong>Co</strong>mpliance<br />
Manager (SCM) enthält Vorlagen<br />
<strong>und</strong> Empfehlungen für eine Absicherung<br />
von Servern über Gruppenrichtlinien <strong>und</strong><br />
PowerShell-Skripte. Im Fokus steht dabei<br />
die Absicherung des Windows-Betriebssystems.<br />
In der neuen Version beherrscht<br />
das Tool auch die Absicherung von Exchange<br />
Server 2007 SP3/ 2010 SP2.<br />
Im Gr<strong>und</strong>e genommen erstellt das Tool<br />
Vorlagen für Gruppenrichtlinien, die bereits<br />
Empfehlungen von Microsoft integriert<br />
haben. Administratoren können die<br />
Richtlinien noch an das eigene Unternehmen<br />
anpassen <strong>und</strong> anschließend in<br />
neue Richtlinien über Gruppenrichtlinien<br />
integrieren <strong>und</strong> an Server verteilen. Das<br />
Tool unterstützt aber nicht nur Active-<br />
Directory-Server, sondern auch alleinstehende<br />
Server. Hier bietet SCM auch ein<br />
Befehlszeilentool, mit dem Administratoren<br />
über Batchdateien Server absichern<br />
können.<br />
Kostenloses Tool<br />
Microsoft stellt den Security <strong>Co</strong>mpliance<br />
Manager (SCM) kostenlos auf [1] zum<br />
Download bereit. Sie installieren das<br />
Tool, importieren auf Wunsch die bestehenden<br />
Gruppenrichtlinien von Active<br />
Directory <strong>und</strong> können anschließend die<br />
Einstellungen der Richtlinien mit den<br />
Konfigurations-Empfehlungen aus dem<br />
SCM vergleichen. Anschließend können<br />
Sie die angepassten Richtlinien wieder in<br />
Active Directory importieren. Haben Sie<br />
noch keine Gruppenrichtlinien im Einsatz,<br />
können Sie aber auch problemlos<br />
neue Richtlinien über das SCM erstellen<br />
oder einzelne Server auch mit SCM über<br />
lokale Sicherheitsrichtlinien absichern.<br />
SCM unterstützt die Absicherung von<br />
Windows Server 2003/ 2008/ 2008 R2 sowie<br />
die Client-Betriebssysteme Windows<br />
XP/ Vista <strong>und</strong> Windows 7 inklusive Service<br />
Pack 1. In der Version 2.5 des SCM<br />
fehlt derzeit noch die Unterstützung für<br />
Windows 8 <strong>und</strong> Windows Server 2012.<br />
Bei Veröffentlichung dieser beiden Betriebssysteme<br />
im letzten Quartal 2012<br />
wird Microsoft aber wohl eine entsprechend<br />
aktualisierte Version des SCM anbieten.<br />
Ebenfalls absichern lassen sich<br />
aber Internet Explorer 8/ 9, Office 2007/<br />
2010 <strong>und</strong> Exchange Server 2007/ 2010 inklusive<br />
der aktuellsten Service Packs, vor<br />
allem Exchange Server 2010 SP2.<br />
Administratoren können SCM problemlos<br />
auf der eigenen Arbeitsstation betreiben<br />
(Abbildung 1). Allerdings muss<br />
auf der Arbeitsstation Windows 7 als<br />
64-Bit-Version installiert sein. Wollen Sie<br />
später Einstellungen von SCM in eine<br />
Exceltabelle exportieren, muss auf dem<br />
entsprechenden <strong>Co</strong>mputer Excel 2007/<br />
2010 installiert sein. Das ist allerdings<br />
optional <strong>und</strong> nur dann notwendig, wenn<br />
56 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Sie verschiedene Einstellungen aus dem<br />
SCM in Excel importieren wollen.<br />
Security <strong>Co</strong>mpliance<br />
Manager in der Praxis<br />
SCM benötigt das .NET Framework 4.0<br />
[2]. Auch die kostenlose Datenbank SQL<br />
Server 2008 R2 Express Edition [3] ist<br />
auf dem Server notwendig. Diese Voraussetzungen<br />
sollten Sie vor dem SCM installieren.<br />
Verwenden Sie bei beiden die<br />
Standardeinstellungen zur Installation. In<br />
SQL Server 2008 R2 speichert SCM seine<br />
Konfigurationsdaten, Baselines, die Einstellungen<br />
<strong>und</strong> Dokumentationen.<br />
Der nächste Schritt ist die SCM-Installation<br />
auf einer Arbeitsstation oder einem<br />
Server. Eine Installation unter Windows<br />
8 oder Windows Server 2012 ist derzeit<br />
nicht möglich. Nach der Installation<br />
steht das Verwaltungstool des SCM zur<br />
Verfügung. Beim ersten Start liest das<br />
Tool die entsprechenden Konfigurationsempfehlungen,<br />
Baselines genannt, für die<br />
Serversysteme ein <strong>und</strong> startet die SCM-<br />
Verwaltungsoberfläche. Links wählen Sie<br />
die Empfehlungen (Baselines) aus, in der<br />
Mitte des Fensters lassen sich Einstellungen<br />
vornehmen <strong>und</strong> ändern. Rechts<br />
finden Sie Aktionen, um die Vorlagen zu<br />
sichern <strong>und</strong> später in eine Gruppenrichtlinie<br />
einzulesen.<br />
Sie sollten in regelmäßigen Abständen die<br />
SCM-Baselines in SCM über das Internet<br />
aktualisieren lassen. Verwenden Sie dazu<br />
den Link »Download Microsoft Baselines<br />
manually« im Startbildschirm des SCM.<br />
Das Tool öffnet den Internet Explorer <strong>und</strong><br />
schlägt neue Baselines zur Installation<br />
vor. Über die Seite [4] können Sie Baselines<br />
auch manuell herunterladen <strong>und</strong> in<br />
SCM integrieren.<br />
Baselines bearbeiten<br />
Auf der linken Seite stehen die verschiedenen<br />
Empfehlungen über Baselines zur<br />
Verfügung. Um Server oder Programme<br />
anzupassen, klicken Sie auf die Baseline,<br />
die Sie verwenden wollen, <strong>und</strong> wählen im<br />
rechten Bereich bei »Baseline« den Befehl<br />
»Duplicate« im Aktionsbereich aus. Auf<br />
diese Weise lassen sich eigene Richtlinien<br />
erstellen <strong>und</strong> die Standardrichtlinien<br />
bleiben erhalten. Die duplizierte Vorlage<br />
enthält bereits Einstellungen <strong>und</strong> Empfehlungen<br />
von Microsoft. Die nächsten<br />
Schritte bestehen darin, die Einstellungen<br />
der erstellten Baseline an die eigenen<br />
Bedürfnisse anzupassen.<br />
Sind die Einstellungen abgeschlossen,<br />
exportieren Sie diese. Dazu stehen im<br />
rechten Bereich verschiedene Optionen<br />
zur Verfügung. Am besten verwenden<br />
Sie den Export als Sicherungsdatei von<br />
Gruppenrichtlinien. Das hat den Vorteil,<br />
dass Sie diese Sicherung in der Gruppenrichtlinienverwaltung<br />
als neue Gruppenrichtlinie<br />
im Netzwerk importieren<br />
können. Durch das Importieren werden<br />
die Einstellungen aber nicht angewendet.<br />
Abbildung 1: Starten des Microsoft Security <strong>Co</strong>mpliance Manager. NETWAYS ®<br />
NETWAYS ®<br />
www.A dmin-mAgA zin.de<br />
AusgA be 05-2012<br />
57
s eCuriT y<br />
security <strong>Co</strong>mpliance manager<br />
Sie müssen die neue Richtlinie zunächst<br />
mit einer Organisationseinheit oder einer<br />
Domäne verknüpfen. Die importierten<br />
Einstellungen entsprechen einer ganz<br />
normalen Gruppenrichtlinie.<br />
Haben Sie die Baseline als Sicherungsdatei<br />
für Gruppenrichtlinien exportiert,<br />
kopieren Sie diese auf einen Domänencontroller<br />
oder verwenden die Gruppenrichtlinienverwaltung<br />
auf der lokalen Arbeitsstation.<br />
Dazu müssen Sie aber die<br />
entsprechenden Remoteserver-Verwaltungstools<br />
installieren. Die Einstellungen<br />
lassen sich aber auch in Vorlagen von<br />
System Center <strong>Co</strong>nfiguration Manager<br />
einlesen. Unternehmen, die auf System<br />
Center setzen, können SCM also direkt<br />
anbinden. Die Integration über die Datensicherung<br />
von Gruppenrichtlinien funktioniert<br />
aber ebenso problemlos.<br />
Einstellungen von verschiedenen selbst<br />
erstellten Baselines können Sie in SCM<br />
auch miteinander vergleichen <strong>und</strong> zusammenführen.<br />
Dazu steht der Menüpunkt<br />
»<strong>Co</strong>mpare | Merge« zur Verfügung.<br />
Nach der Auswahl der Richtlinien lassen<br />
sich diese vergleichen oder zu einer<br />
neuen Richtlinie zusammenfassen. Sie<br />
können auf diesem Weg auch Baselines,<br />
die Sie selbst bearbeitet haben, mit den<br />
Standard-Baselines vergleichen <strong>und</strong> sehen<br />
so auf einen Blick die Änderungen,<br />
die Sie vorgenommen haben. Die Ergebnisse<br />
der Vergleiche lassen sich auch ins<br />
Excel-Format exportieren, um dort besser<br />
die Unterschiede zu erkennen. Das<br />
ist zum Beispiel sinnvoll, wenn Sie eine<br />
*CAB-Datei importieren, die Sie von einer<br />
anderen SCM-Installation erhalten<br />
haben.<br />
Baselines erweitern<br />
Sie können in einer Baseline aber nicht<br />
nur mit den Vorgaben arbeiten, die Microsoft<br />
vorschlägt oder vorhandene<br />
Einstellungen abändern, sondern auch<br />
Einstellungen aus anderen Baselines integrieren<br />
<strong>und</strong> konfigurieren. So können Sie<br />
zum Beispiel zu einer Exchange-Richtlinie<br />
noch Einstellungen aus Office 2010 integrieren,<br />
um auch Outlook-Einstellungen<br />
auf Exchange-Servern zu steuern.<br />
Um in einer Baseline weitere Einstellungen<br />
hinzuzufügen, klicken Sie im Bereich<br />
»Setting« auf »Add«. Hier können<br />
Sie Einstellungen mit »Delete« auch entfernen.<br />
Wollen Sie neue Einstellungen<br />
gruppiert anzeigen, erstellen Sie über<br />
»Setting Group« mit »Add« neue Einstellungsgruppen.<br />
Baselines bearbeiten <strong>und</strong><br />
dokumentieren<br />
Haben Sie die Baseline erstellt <strong>und</strong> die<br />
Bearbeitung gestartet, finden Sie im mittleren<br />
Teil mehrere Spalten, in denen Sie<br />
die Einstellungen festlegen (Abbildung<br />
2). Ganz links sehen Sie den Namen der<br />
Einstellung. Im Bereich »Default« ist die<br />
Standardeinstellung des entsprechenden<br />
Server-Systems zu finden. Die Einstellung<br />
»Microsoft« zeigt die Empfehlung von Microsoft<br />
für diesen Bereich. Ändern Sie<br />
Einstellungen ab, sehen Sie diese in der<br />
Spalte »Customized«. Die Spalte »Severit«<br />
zeigt die Wichtigkeit an, die Microsoft<br />
der entsprechenden Einstellung zumisst.<br />
Die letzte Spalte »Path« zeigt an, wo die<br />
Einstellung in der Registry zu finden ist,<br />
oder ob die Einstellung über die Powershell<br />
eingestellt wird.<br />
Haben Sie eigene Baselines erstellt, sind<br />
sie im Bereich »Custom Baselines« zu<br />
finden. Hier gibt es auch den neuen<br />
Menüpunkt »Attachments | Guides«.<br />
Über diesen Bereich können Sie zu Baselines<br />
eigene Dokumentation, Tools <strong>und</strong><br />
Informationen anhängen, die für die<br />
Umsetzung notwendig sind. Anhänge<br />
lassen sich auf diesem Weg ausdrucken,<br />
anzeigen, exportieren, speichern, oder direkt<br />
anzeigen. Dabei unterstützt SCM 2.5<br />
folgende Dateien: ».cab«, ».doc«, ».docx«,<br />
».mp«, ».rtf«, ».txt«, ».url«, ».xls«, ».xlsx«,<br />
».xlsm«, ».zip«.<br />
Um eine Baseline nach ihrer Fertigstellung<br />
vor ungewollten Änderungen zu<br />
schützen, wählen Sie im Aktionsbereich<br />
den Menüpunkt »Lock« aus. Anschließend<br />
können Sie keinerlei Änderungen<br />
mehr an dieser Baseline vornehmen. Sie<br />
können aber jederzeit über »Edit« die<br />
Bearbeitung wieder aktivieren. Alle Änderungen,<br />
die Sie an Baselines in SCM<br />
vornehmen, werden protokolliert. Die<br />
Protokolldatei öffnen Sie über »View |<br />
Baseline Change Log«. Im Fenster sehen<br />
Sie alle Aktionen, die Sie in SCM vorgenommen<br />
haben, auch Änderungen an<br />
den Baselines.<br />
Einstellungen exportieren<br />
<strong>und</strong> importieren<br />
Haben Sie alle Einstellungen in einer oder<br />
mehreren Baselines abgeschlossen, können<br />
Sie im rechten Bereich bei »Export«<br />
auswählen, wie Sie diese Einstellungen<br />
auf den Servern verteilen oder dokumentieren<br />
wollen. Dazu stehen die folgenden<br />
Optionen zur Verfügung:<br />
n Excel: Hier erstellt das Tool eine XLSM-<br />
Datei, die mit Excel 2007/ 2010 kompatibel<br />
ist. Die Datei können Sie jederzeit<br />
auch für andere Zwecke nutzen. Sie<br />
müssen dazu nicht unbedingt auf dem<br />
Ziel-Rechner SCM installieren.<br />
n GPO Backup: Erstellt ein Verzeichnis<br />
mit einer GPO-Sicherung der Baseline.<br />
Abbildung 2: Konfigurieren von gr<strong>und</strong>legenden Einstellungen.<br />
58 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
security <strong>Co</strong>mpliance manager<br />
s eC uriT y<br />
Diese können Sie in der<br />
produktiven Umgebung<br />
wieder importieren ebenso<br />
wie eine normale Gruppenrichtlinie.<br />
Dazu erstellen<br />
Sie eine neue Gruppenrichtlinie<br />
in Active Directory<br />
<strong>und</strong> stellen die Einstellungen<br />
aus dem GPO-<br />
Backup in dieser neuen<br />
Sicherung wieder her.<br />
n SCAP: Diese Option erstellt<br />
eine Datei auf Basis des Security<br />
<strong>Co</strong>ntent Automation<br />
Protocol (SCAP). Dieses<br />
kann auch in anderen Systemen<br />
verwendet werden.<br />
n SCCM DCM erstellt Pakete,<br />
die kompatibel mit Microsoft System<br />
Center <strong>Co</strong>nfiguration Manager sind.<br />
Sie lassen sich zur Überwachung <strong>und</strong><br />
Konfiguration der angeb<strong>und</strong>enen Ziel-<br />
<strong>Co</strong>mputer nutzen.<br />
n SCM wiederum erstellt eine CAB-Datei,<br />
die Sie in anderen SCM-Installation<br />
wieder importieren können <strong>und</strong><br />
dadurch weiter bearbeiten.<br />
Haben Sie einen SCM-kompatiblen Export<br />
durchgeführt, können Sie diese<br />
Einstellungen zwar nicht für den Import<br />
von Gruppenrichtlinien nutzen, aber die<br />
Einstellungen in der SCM-Oberfläche<br />
wieder importieren <strong>und</strong> bearbeiten. Den<br />
Import starten Sie entweder über den<br />
Menü bereich »Import« auf der rechten<br />
Seite, oder Sie verwenden die Tastenkombination<br />
[Strg]+[I]. Im »Import<br />
Baselines Wizard« wählen Sie das Paket<br />
aus, das Sie importieren wollen. Klicken<br />
Sie auf »Next« liest der Assistent die Daten<br />
ein <strong>und</strong> zeigt die integrierten Baselines<br />
an. Mit einem Klick auf »Import«<br />
integriert der Assistent die Baselines in<br />
der CAB-Datei in SCM auf dem lokalen<br />
Rechner. Sie haben in diesem Bereich<br />
auch die Möglichkeit, Datensicherungen<br />
von Gruppenrichtlinien zu importieren.<br />
Dazu wählen Sie die Option »Import | GP<br />
Backup (folder)«.<br />
Einstellungen<br />
Um Windows-Server mit SCM abzusichern,<br />
ist kein Active Directory notwendig,<br />
die Einstellungen lassen sich auch<br />
in lokale Richtlinien einlesen. Dazu stellt<br />
SCM das Zusatztool »LocalGPO« zur Ver-<br />
Abbildung 3: SCM kann Einstellungen auch als Skript importieren.<br />
fügung. Mit dem Tool aus der Programmgruppe<br />
»Microsoft Security <strong>Co</strong>mpliance<br />
Manager« lassen sich Einstellungen lokal<br />
aus SCM in eine Richtlinie auf dem Server<br />
importieren.<br />
Das Tool arbeitet in der Befehlszeile<br />
<strong>und</strong> stellt verschiedene Optionen für<br />
den Import zur Verfügung. LocalGPO ist<br />
vor allem für Server gedacht, die über<br />
keine Domänenanbindung verfügen. Im<br />
ersten Schritt installieren Sie das Tool auf<br />
dem Server <strong>und</strong> können anschließend<br />
auf der Befehlszeile die Einstellungen<br />
importieren.<br />
Nach der Installation starten Sie dazu<br />
»LocalGPO <strong>Co</strong>mmand-line« in der Programmgruppe<br />
»LocalGPO«. Um die Einstellungen<br />
einer SCM-Baseline auf einem<br />
lokalen Server zu importieren, erstellen<br />
Sie zunächst die Baseline, wie zuvor beschrieben.<br />
Anschließend exportieren Sie<br />
diese als GPO-Backup in ein Verzeichnis.<br />
Dieses kopieren Sie auf den Server, auf<br />
dem Sie die Richtlinien umsetzen wollen.<br />
Anschließend geben Sie den Befehl<br />
»cscript LocalGPO.wsf /Path:« ein.<br />
Bei der Umsetzung der neuen Einstellungen,<br />
speichert LocalGPO die Einstellungen<br />
der lokalen Richtlinie. So können Sie<br />
diese jederzeit wiederherstellen. Um die<br />
ursprünglichen Einstellungen auf dem<br />
Server wiederherzustellen, verwenden<br />
Sie den Befehl »cscript LocalGPO.wsf /<br />
Restore«.<br />
Mit LocalGPO haben Sie auch die Möglichkeit,<br />
die Einstellungen der lokalen<br />
Sicherheitsrichtlinie in eine GPO-Datensicherung<br />
zu sichern. Diese können<br />
Sie zum einen ebenfalls zum<br />
Wiederherstellen nutzen, indem<br />
Sie sie auf einem Server<br />
wieder importieren.<br />
Zum anderen können Sie<br />
diese Sicherung auf anderen<br />
lokalen Servern importieren.<br />
Außerdem ist es möglich,<br />
auf Basis dieser Sicherung<br />
eine neue Active-Directory-<br />
Gruppenrichtlinie zu erstellen<br />
<strong>und</strong> diese Einstellungen<br />
zu importieren. Verwenden<br />
Sie dazu den Befehl »cscript<br />
LocalGPO.wsf /Path: <br />
/Export«. Importieren können<br />
Sie diese Sicherung entweder<br />
mit LocalGPO, oder Sie verwenden<br />
die Gruppenrichtlinienverwaltungskonsole.<br />
Sie können aber auch die lokale Sicherheitsrichtlinie<br />
eines Servers in ein »GPO-<br />
Pack« exportieren. Mit diesem können Sie<br />
die Sicherheitseinstellungen auf einem<br />
anderen Server importieren, ohne dass<br />
Sie LocalGPO auf dem Zielsystem installieren<br />
müssen. Verwenden Sie dazu<br />
den Befehl »cscript LocalGPO.wsf /Path:<br />
„“ /Export /GPOPack«. Mehr zu<br />
diesem Thema lesen Sie auf der Internetseite<br />
[5]. (ofr)<br />
n<br />
Infos<br />
[1] Security <strong>Co</strong>mpliance Manager: [http:// go.<br />
microsoft. com/ fwlink/ ? LinkId=182512]<br />
[2] .NET 4.0: [http:// go. microsoft. com/ fwlink/<br />
? LinkId=208784]<br />
[3] SQL Server Express Edition: [http:// www.<br />
microsoft. com/ germany/ express/ products/<br />
database. aspx]<br />
[4] Baselines: [http:// social. technet. microsoft.<br />
com/ wiki/ contents/ articles/ 1865. microsoft<br />
‐security‐compliance‐manager‐scm‐baseli<br />
ne‐download‐help‐en‐us. aspx]<br />
[5] SCM v2 Beta, LocalGPO Rocks: [http://<br />
blogs. technet. com/ b/ secguide/ archive/<br />
2011/ 07/ 05/ scm‐v2‐beta‐localgpo‐rocks.<br />
aspx]<br />
Der Autor<br />
Thomas Joos ist freiberuflicher IT‐<strong>Co</strong>nsultant <strong>und</strong><br />
seit über 20 Jahren in der IT tätig. Neben seinen<br />
Projekten schreibt er praxisnahe Fachbücher<br />
<strong>und</strong> Fachartikel r<strong>und</strong> um Windows <strong>und</strong> andere<br />
Microsoft‐Themen. Online trifft man ihn unter<br />
[http:// thomasjoos. spaces. live. com].<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
59
KnOw-hOw<br />
Ceph/ RAdOs<br />
© Ljupco Smokovski, 123RF<br />
Der RADOS-Objectstore <strong>und</strong> Ceph, Teil 2<br />
Storage-Magie<br />
im zweiten Teil des workshops zu RAdOs <strong>und</strong> Ceph geht es um die RAdOs-interna, um weitere Frontends zum<br />
Object store neben Ceph <strong>und</strong> um das Vermeiden von Fallstricken. martin Loschwitz<br />
Das vorletzte <strong>ADMIN</strong>-<strong>Magazin</strong> hat RA-<br />
DOS <strong>und</strong> Ceph vorgestellt <strong>und</strong> vermittelt,<br />
was es damit auf sich hat. Der zweite Teil<br />
sieht nun genauer hin <strong>und</strong> erläutert die<br />
gr<strong>und</strong>legenden Konzepte, die bei ihrer<br />
Entwicklung eine Rolle spielen. Wie sorgt<br />
der Cluster zum Beispiel für die interne<br />
Red<strong>und</strong>anz der abgelegten Objekte? Und<br />
welche Möglichkeiten existieren neben<br />
Ceph noch, um an die Daten aus dem<br />
Object Store heranzukommen?<br />
Bereits die erste Folge des Workshops demonstrierte,<br />
wie ein existierender Cluster<br />
um einen Knoten zu erweitern ist (»ceph<br />
osd crush add 4 osd.4 1.0 pool=default<br />
host=daisy« unter der Annahme, dass<br />
der Hostname des neuen Servers »daisy«<br />
ist). Der Befehl bewirkt, dass der Host<br />
»daisy« zum Teil des Clusters wird <strong>und</strong><br />
das gleiche Gewicht (1,0) erhält wie<br />
alle anderen Knoten. So leicht wie das<br />
Hinzufügen eines Knotens zur Clusterkonfiguration<br />
gerät auch das Entfernen.<br />
Der passende Befehl lautet: »ceph osd<br />
crush remove osd.4«. Der Parameter<br />
»pool=default« beim Hinzufügen weist<br />
dabei schon auf ein wichtiges Feature<br />
hin: die Pools.<br />
Mit Pools arbeiten<br />
RADOS hat die Möglichkeit, den zusammenhängenden<br />
Speicher des Object<br />
Stores zu unterteilen. Die einzelnen<br />
Fragmente heißen Pools. Dabei entspricht<br />
ein Pool keinem zusammenhängenden<br />
Speicherbereich wie bei einer<br />
Partition, sondern bildet eine logische<br />
Ebene aus entsprechend der Poolzugehörigkeit<br />
getagten Binärdaten. Pools erlauben<br />
beispielsweise Konfigurationen,<br />
innerhalb derer einzelne Benutzer nur<br />
auf bestimmte Pools zugreifen dürfen.<br />
In der Default-Konfiguration stehen die<br />
Pools »metadata«, »data« <strong>und</strong> »rbd« zur<br />
Verfügung. Eine Übersicht über alle vorhandenen<br />
Pools ist mit »rados lspools« zu<br />
bekommen (Abbildung 1).<br />
Wer die Konfiguration um einen zusätzlichen<br />
Pool erweitern will, nutzt den Befehl<br />
»rados mkpool Name«, wobei Name<br />
62 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
durch einen entsprechend eindeutigen<br />
Namen zu ersetzen ist. Soll ein vorhandener<br />
Pool verschwinden, funktioniert<br />
»rados rmpool Name«.<br />
RADOS-Interna: Placement<br />
Groups <strong>und</strong> die Crushmap<br />
Eines der ausdrücklichen Design-Ziele<br />
von RADOS ist es, nahtlos skalierbares<br />
Storage zu bieten. Dafür sollen Admins<br />
die Möglichkeit haben, einen RADOS-<br />
Objectstore jederzeit um beliebig viele<br />
Speicherknoten zu vergrößern. Von entscheidender<br />
Bedeutung ist dabei das<br />
Thema Red<strong>und</strong>anz. RADOS trägt ihm<br />
Rechnung, indem es sich selbstständig<br />
um die Replikation von Daten kümmert,<br />
ohne dass der Admin des RADOS-Clusters<br />
händisch einzugreifen braucht. Aus<br />
der Kombination mit Skalierbarkeit ergibt<br />
sich dabei für RADOS ein Problem, mit<br />
dem sich andere Replikationslösungen<br />
nicht herumschlagen: Wie lassen sich<br />
Daten innerhalb eines größeren Clusters<br />
bestmöglich verteilen?<br />
Zur Erinnerung: Herkömmliche Storage-<br />
Lösungen kümmern sich in aller Regel<br />
„nur“ darum, dass Daten von einem Server<br />
auf den anderen kopiert werden, damit<br />
im Zweifelsfalle ein Failover stattfinden<br />
kann. Meist laufen solche Lösungen<br />
überhaupt nur innerhalb eines Clusters<br />
mit zwei oder höchstens drei Knoten,<br />
dass weitere Knoten hinzukommen, ist<br />
von vorneherein ausgeschlossen.<br />
Bei RADOS geht das nicht: Hier können<br />
theoretisch beliebig viele Knoten in den<br />
Cluster aufgenommen werden, <strong>und</strong> bei<br />
jedem muss sich der Object Store darum<br />
kümmern, dass auch dessen Inhalte innerhalb<br />
des gesamten Clusters red<strong>und</strong>ant<br />
verfügbar sind. Nicht zuletzt steht den<br />
Entwicklern obendrein auch noch das<br />
Thema „Rack Awareness“ ins Haus: Wer<br />
einen 20-Knoten-Cluster mit RADOS in<br />
seinem Rechenzentrum stehen hat, wird<br />
dessen Knoten idealerweise auf mehrere<br />
Brandabschnitte oder Gebäude verteilen<br />
Abbildung 1: »rados lspool« zeigt die Pools an, die<br />
RADOS im Augenblick kennt.<br />
wollen, um so für zusätzliche Sicherheit<br />
zu sorgen. Damit das funktioniert, muss<br />
die Speicherlösung allerdings wissen,<br />
welcher Knoten wo steht <strong>und</strong> welche Daten<br />
wo <strong>und</strong> wie zu bekommen sind. Die<br />
Lösung für dieses Problem, die sich die<br />
Entwickler von RADOS <strong>und</strong> allen voran<br />
RADOS-Guru Sage A. Weil ausdachten,<br />
besteht aus zwei Teilen: den Placement<br />
Groups <strong>und</strong> der Crushmap.<br />
Data Placement in RADOS<br />
Innerhalb eines RADOS-Clusters finden<br />
sich drei verschiedene Maps, nämlich<br />
einerseits die MON-Map, die eine Liste<br />
aller Monitoring-Server ist, die OSD-<br />
Map, in der sich alle physikalischen Object<br />
Storage Devices (OSDs) finden, <strong>und</strong><br />
schließlich die Crushmap. Auf den OSDs<br />
selbst liegen die binären Objekte, also die<br />
tatsächlichen im Object-Store abgelegten<br />
Daten.<br />
Nun kommen die Placement Groups (PG)<br />
ins Spiel: Nach außen hin wirkt es, als sei<br />
die Zuweisung von Storage-Objekten zu<br />
bestimmten OSDs rein zufällig. Tatsächlich<br />
erfolgt die Zuweisung hingegen anhand<br />
der Placement Groups. Jedes Objekt<br />
gehört zu einer solchen Gruppe. Vereinfacht<br />
dargestellt ist eine Placement Group<br />
eine Liste von verschiedenen Objekten,<br />
die im RADOS-Store abgelegt sind. Zu<br />
welcher Placement Group ein Objekt<br />
gehört, errechnet RADOS anhand des<br />
Namens des Objektes, des gewünschten<br />
Replikations-Levels sowie einer Bitmask,<br />
die die Summe aller PGs im RADOS-<br />
Cluster festlegt.<br />
In der Crushmap, die der zweite Teil<br />
dieses Systems ist, steht die Information,<br />
welche Placement Groups wo im Cluster<br />
– also auf welchem OSD – landen<br />
sollen (Abbildung 2). Replikation spielt<br />
sich stets auf der PG-Ebene ab: Alle Objekte<br />
einer Placement-Group werden im<br />
RADOS-Cluster zwischen verschiedenen<br />
OSDs repliziert.<br />
Die Crushmap verdankt ihrem Namen<br />
übrigens dem von ihr genutzten Algorithmus.<br />
Der Crush-Algorithmus wurde speziell<br />
im Hinblick auf einen Einsatzzweck<br />
wie bei RADOS entwickelt; er entstammt<br />
ebenfalls der Feder von Sage A. Weil.<br />
Sein Name ist ein Kunstwort, es steht für<br />
<strong>Co</strong>ntrolled, Scalable, Decentralized Placement<br />
of Replicated Data. Sage Weil hebt<br />
www.A dmin-mAgA zin.de
KnOw-hOw<br />
Ceph/ RAdOs<br />
ein Feature von Crush besonders hervor:<br />
Anders als Hash-Algorithmen verhält<br />
sich Crush auch dann stabil, wenn viele<br />
Storage-Devices gleichzeitig den Cluster<br />
verlassen oder hinzukommen. Das Rebalancing,<br />
das manch andere Storage-<br />
Lösung benötigt, sorgt meist für jede<br />
Menge Traffic <strong>und</strong> für entsprechend lange<br />
Wartezeiten. Crush-basierte Cluster verschieben<br />
hingegen gerade so viele Daten<br />
zwischen den Storage-Knoten, dass ein<br />
ausgeglichenes Verhältnis erreicht wird.<br />
Das Data Placement<br />
manipulieren<br />
Freilich hat im Hinblick auf die Frage,<br />
welche Daten wo landen, auch der Admin<br />
ein Wörtchen mitzureden. Praktisch<br />
alle Parameter, die die Replikation in RA-<br />
DOS betreffen, sind durch den Admin<br />
zu konfigurieren. Dazu gehört beispielsweise<br />
auch, wie oft ein einzelnes Objekt<br />
innerhalb des RADOS-Clusters existieren<br />
soll, wie viele Replicas es also davon<br />
gibt. Freilich steht es dem Admin ebenso<br />
frei, die Zuweisung der Replicas an OSDs<br />
Listing 1: die Crushmap für 6 server in 2 Racks<br />
001 # begin crush map<br />
002<br />
003 # devices<br />
004 device 0 device0<br />
005 device 1 device1<br />
006 device 2 device2<br />
007 device 3 device3<br />
008 device 4 device4<br />
009 device 5 device5<br />
010<br />
011 # types<br />
012 type 0 device<br />
013 type 1 host<br />
014 type 2 rack<br />
015 type 3 root<br />
016<br />
017 # buckets<br />
018 host host0 {<br />
019 id -1 # do not change unnecessarily<br />
020 # weight 1.000<br />
021 alg straw<br />
022 hash 0 # rjenkins1<br />
023 item device0 weight 1.000<br />
024 }<br />
025 host host1 {<br />
026 id -2 # do not change unnecessarily<br />
027 # weight 1.000<br />
028 alg straw<br />
029 hash 0 # rjenkins1<br />
030 item device1 weight 1.000<br />
031 }<br />
032 host host2 {<br />
033 id -3 # do not change unnecessarily<br />
034 # weight 1.000<br />
035 alg straw<br />
036 hash 0 # rjenkins1<br />
037 item device2 weight 1.000<br />
038 }<br />
039 host host3 {<br />
040 id -4 # do not change unnecessarily<br />
041 # weight 1.000<br />
042 alg straw<br />
043 hash 0 # rjenkins1<br />
044 item device3 weight 1.000<br />
045 }<br />
046 host host4 {<br />
047 id -5 # do not change unnecessarily<br />
048 # weight 1.000<br />
049 alg straw<br />
050 hash 0 # rjenkins1<br />
051 item device4 weight 1.000<br />
052 }<br />
053 host host5 {<br />
054 id -6 # do not change unnecessarily<br />
055 # weight 1.000<br />
056 alg straw<br />
057 hash 0 # rjenkins1<br />
058 item device5 weight 1.000<br />
059 }<br />
060 rack rack0 {<br />
061 id -7 # do not change unnecessarily<br />
062 # weight 2.000<br />
063 alg straw<br />
064 hash 0 # rjenkins1<br />
065 item host0 weight 1.000<br />
066 item host1 weight 1.000<br />
067 }<br />
068 rack rack1 {<br />
069 id -8 # do not change unnecessarily<br />
070 # weight 2.000<br />
071 alg straw<br />
072 hash 0 # rjenkins1<br />
073 item host2 weight 1.000<br />
074 item host3 weight 1.000<br />
075 }<br />
076 rack rack2 {<br />
077 id -9 # do not change unnecessarily<br />
078 # weight 2.000<br />
079 alg straw<br />
080 hash 0 # rjenkins1<br />
081 item host4 weight 1.000<br />
082 item host5 weight 1.000<br />
083 }<br />
084 root root {<br />
085 id -10 # do not change unnecessarily<br />
086 # weight 6.000<br />
087 alg straw<br />
088 hash 0 # rjenkins1<br />
089 item rack0 weight 2.000<br />
090 item rack1 weight 2.000<br />
091 item rack2 weight 2.000<br />
092 }<br />
093<br />
094 # rules<br />
095 rule data {<br />
096 ruleset 1<br />
097 type replicated<br />
098 min_size 2<br />
099 max_size 2<br />
100 step take root<br />
101 step chooseleaf firstn 0 type rack<br />
102 step emit<br />
103 }<br />
104<br />
105 # end crush map<br />
64 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Ceph/ RAdOs<br />
KnOw-hOw<br />
zu manipulieren. So kann RADOS Rücksicht<br />
auf den Standort bestimmter Racks<br />
nehmen. Replikationsregelungen, die der<br />
Admin festlegt, steuern die Verteilung<br />
der Replicas von Placement Groups auf<br />
verschiedene OSD-Gruppen. Eine Gruppe<br />
kann dabei zum Beispiel alle Server in<br />
einem RZ-Raum enthalten <strong>und</strong> eine andere<br />
Gruppe die Server in einem zweiten<br />
Raum.<br />
Wie die Replikation von Daten in RADOS<br />
funktioniert, legen Admins fest, indem<br />
sie die Crush-Regeln entsprechend manipulieren.<br />
Gr<strong>und</strong>sätzlich gilt: Weder<br />
auf die Einteilung der Placement Groups<br />
noch auf die Ergebnisse der Crush- Kalkulationen<br />
lässt sich unmittelbar Einfluss<br />
nehmen. Stattdessen erfolgt die Festlegung<br />
der Replikationsregeln pro Pool;<br />
die Einteilung der Placement Groups <strong>und</strong><br />
die Platzierung anhand der Crushmap<br />
erledigt RADOS im Anschluss allein. Ab<br />
Werk kommt RADOS mit einer Default-<br />
Regel, die besagt, dass pro Pool von jedem<br />
Objekt zwei Replicas zu existieren haben.<br />
Die Anzahl an Replicas ist stets pro Pool<br />
festzulegen; ein alltägliches Beispiel<br />
wäre es, diese Zahl auf 3 zu erhöhen.<br />
Das geht mit folgendem Befehl:<br />
»ceph osd pool set data size 3«<br />
Um die gleiche Änderung für den Pool<br />
»test« durchzusetzen, wäre an dieser<br />
Stelle »data« durch »test« zu ersetzen.<br />
Ob der Cluster im Anschluss tut, was der<br />
Admin von ihm erwartet, kann er mit<br />
»ceph -v« genauer untersuchen.<br />
Objects<br />
Objects<br />
Objects<br />
Placement Group<br />
Placement Group<br />
Placement Group<br />
Diese Art der Bedienung unter Einsatz<br />
von »ceph« ist zweifellos angenehm,<br />
bietet aber nicht den vollen Funktionsumfang.<br />
Denn im Beispiel verwendet<br />
der Pool weiterhin die Crushmap, die ab<br />
Werk mitgeliefert wird. Sie lässt Eigenschaften<br />
wie das Rack, in dem ein Server<br />
hängt, außen vor. Wer Replicas anhand<br />
dieser Eigenschaften verteilen möchte,<br />
kommt nicht umhin, eine eigene Crushmap<br />
zu konstruieren.<br />
Die eigene Crushmap<br />
In einer eigenen Crushmap kann der<br />
Administrator nach Belieben festlegen,<br />
wie die Objekte seiner Pools zu verteilen<br />
sind. Das Tool »crushtool« leistet in diesem<br />
Zusammenhang wertvolle Dienste,<br />
denn es erstellt entsprechende Vorlagen.<br />
Das folgende Beispiel erstellt eine Crushmap<br />
für ein Setup aus sechs OSDs (also<br />
einzelne Storage-Devices in Servern), die<br />
auf drei Racks verteilt sind:<br />
»crushtool --num_osds 6 -o crush.example.map<br />
--build host straw 1 rack<br />
straw 2 root straw 0«<br />
Der Parameter »--num_osds 6« legt fest,<br />
dass dem Cluster sechs einzelne Storage-<br />
Devices zur Verfügung stehen. »--build«<br />
leitet ein Statement aus drei dreiteiligen<br />
Parametern ein, die der Syntax »Name<br />
Interner Crush- Algorithmus Zahl« folgen.<br />
»Name« ist frei wählbar, allerdings empfiehlt<br />
es sich, aussagekräftige Bezeichnungen<br />
zu nutzen. »host straw 1« legt<br />
Crush Map<br />
<strong>Co</strong>nfiguration<br />
Abbildung 2: Die Elemente das RADOS-Universums, deren Zusammenspiel die Crush-Map steuert.<br />
OSD<br />
OSD<br />
OSD<br />
Pools<br />
Pools<br />
Pools<br />
fest, dass pro Host eine Replica erlaubt<br />
ist, »rack straw 2« lässt RADOS wissen,<br />
dass pro Rack 2 Server existieren. »root<br />
straw 0« bezieht sich auf die Anzahl der<br />
Racks <strong>und</strong> legt fest, dass die Replicas<br />
gleichmäßig auf die vorhandenen Racks<br />
verteilt sein sollen.<br />
Wer sich die entstandene Crushmap<br />
im Klartext ansehen möchte, der greift<br />
anschließend zum Befehl »crushtool -d<br />
crush.example.map -o crush.example«;<br />
die Datei, in der die Map im Klartext<br />
steht, ist dann »crush.example« (Listing<br />
1). Die Namen der Devices <strong>und</strong> Hosts<br />
(»device0, device 2 ...« <strong>und</strong> »host1m host<br />
2 ...«) sind freilich an die lokalen Gegebenheiten<br />
anzupassen. So sollte der<br />
Name des Devices mit dem Devicenamen<br />
aus »ceph.conf« übereinstimmen (im Beispiel<br />
»osd.0«), <strong>und</strong> der Hostname sollte<br />
mit dem Hostname des Server kongruieren.<br />
Replikas auf Racks<br />
verteilen<br />
Die eigentliche Replikation definiert die<br />
Zeile »step chooseleaf firstn 0 type rack«,<br />
die festlegt, dass Replicas auf die Racks<br />
zu verteilen sind. Um für eine Verteilung<br />
pro Host zu sorgen, weicht »rack« zugunsten<br />
von »host«. Die Parameter »min_size«<br />
<strong>und</strong> »max_size« wirken unscheinbar, sind<br />
aber ganz besonders in Kombination mit<br />
»ruleset 1« von großer Bedeutung dafür,<br />
dass RADOS später tatsächlich auch die<br />
erstellte Regel nutzt. Für jeden Pool ist<br />
festgelegt, welches Ruleset der Crushmap<br />
es verwendet; RADOS matcht dabei<br />
aber nicht nur auf den Namen, sondern<br />
eben auch auf die Paremeter »min_size«<br />
<strong>und</strong> »max_size«, die sich auf die Anzahl<br />
der Replikas beziehen. Konkret heißt<br />
das: Soll RADOS einen Pool nach dem<br />
Ruleset 1 beackern, der 2 Replicas nutzt,<br />
greift die Regel aus dem Beispiel. Hat der<br />
Admin aber mit dem oben erläuterten<br />
Befehl festgelegt, dass 3 Replikas für die<br />
Objekte des Pools vorhanden sein sollen,<br />
würde RADOS die Regel nicht anwenden.<br />
Um sie genereller zu gestalten, empfiehlt<br />
sich »min_size« mit 1 <strong>und</strong> »max_size«<br />
mit 10 – diese Regel greift dann für alle<br />
Pools, die das Ruleset 1 nutzen <strong>und</strong> eine<br />
bis zehn Replikas voraussetzen.<br />
Ausgehend von diesem Beispiel ist es<br />
Admins möglich, eine eigene Crushmap<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
65
KnOw-hOw<br />
Ceph/ RAdOs<br />
Abbildung 3: Besondere Vorsicht ist beim RADOS-Einsatz geboten,<br />
wenn Ext3 oder Ext4 zum Einsatz kommen.<br />
zu gestalten. Diese muss anschließend<br />
ihren Weg zurück in RADOS finden.<br />
Die vorhandene Crushmap<br />
erweitern<br />
In der Realität hat es sich als praktisch<br />
herausgestellt, die existierende Crushmap<br />
um neue Einträge zu erweitern, statt<br />
eine komplette neue zu bauen. Um an<br />
die gerade laufende Crushmap heranzukommen,<br />
ist der folgende Befehl nützlich:<br />
»ceph osd getcrushmap -o crush.<br />
running.map« schreibt die Crushmap in<br />
binärer Form in »crush.running.map«, es<br />
folgt ein Decode: »crushtool -d crush.<br />
running.map -o crush.map« befördert die<br />
Plaintext-Ausgabe in » crush.map«. Nach<br />
dem Editieren ist die Crushmap mittels<br />
»crushtool -c crush.map -o crush.new.<br />
map« wieder zu encodieren, bevor sie<br />
mit »ceph osd setcrushmap -i crush.new.<br />
map« ihren Weg zurück in den RADOS-<br />
Cluster findet.<br />
Dass ein neu angelegter Pool die erstellte<br />
Regel verwenden soll, ist dann idealerweise<br />
in »ceph.conf« festzulegen: Dort<br />
wird die neue Regel einfach zum Standard-Wert.<br />
Wenn das neue Ruleset aus<br />
dem Beispiel in der Crushmap die ID 4<br />
hat (»ruleset 4«), hilft beim Konfigurationsblock<br />
»[osd]« die Zeile »osd pool default<br />
crush rule = 4«. Zusätzlich<br />
lässt sich mit »osd pool<br />
default size = 3« festlegen,<br />
dass neue Pools immer mit 3<br />
Replicas angelegt werden.<br />
Die 4K-Grenze bei<br />
Ext3 <strong>und</strong> Ext4<br />
Nach einiger Storage-Theorie<br />
geht es zurück in den Alltag<br />
des Sysadmins. Wer eine RA-<br />
DOS-Installation durchführt<br />
<strong>und</strong> als Dateisystem für die<br />
Objekte von RADOS ein Ext3<br />
oder Ext4 verwendet, tappt<br />
schnell in eine Falle: Dort dürfen<br />
die XATTR-Attribute von<br />
Dateien, also die Extended<br />
Attributes, eine Größe von 4<br />
Kilobyte nicht überschreiten.<br />
Genau das tun die XATTR-<br />
Einträge von RADOS aber<br />
regelmäßig. Sorgt der Admin<br />
nicht vor, stürzt im schlimmsten<br />
Falle »ceph-osd« ab oder wirft mit<br />
kryptischen Fehlermeldungen um sich<br />
(»Operation not supported«).<br />
Abhilfe schafft die Verwendung einer externen<br />
Datei, um die XATTR-Einträge zu<br />
speichern. Dazu gehört in den »[osd]«-<br />
Eintrag in »ceph.conf« die Zeile »filestore<br />
xattr use omap = true ; for ext3/4<br />
filesystem« (Abbildung 3). So schützt<br />
der Admin den Cluster gegen eventuelle<br />
Probleme.<br />
Alternative: Das RADOS-<br />
Blockdevice<br />
Der erste Teil des Workshops hat sich<br />
ausführlich mit Ceph beschäftigt, das<br />
ein Dateisystem-Frontend für RADOS ist.<br />
Doch Ceph ist nicht die einzige Möglichkeit,<br />
um an Daten heranzukommen,<br />
die in einem RADOS-Store abgelegt sind<br />
– eine andere Möglichkeit bietet das<br />
RADOS-Blockdevice »rbd«. Über dieses<br />
lassen sich Objekte in RADOS ansprechen,<br />
als lägen sie auf einer Festplatte.<br />
Die Funktion ist besonders im Kontext<br />
der Virtualisierung sehr hilfreich, denn<br />
indem »kvm« ein Blockdevice als Festplatte<br />
zugeschanzt bekommt, erspart<br />
sich die Virtualisierung den Umweg über<br />
ein <strong>Co</strong>ntainer-Format wie Qcow2. Hinzu<br />
kommt, dass die Verwendung von »rbd«<br />
sich sehr leicht gestaltet – ab Werk ist<br />
bereits ein »rbd«-Pool angelegt, den Admins<br />
sich zu nutze machen können. Um<br />
beispielsweise ein »rbd«-Laufwerk mit<br />
einer Größe von einem Gigabyte anzulegen,<br />
genügt der Befehl »rbd create test<br />
--size 1024«.<br />
Danach lässt sich das Blockdevice auf<br />
jedem Host mit »rbd«-Kernelmodul verwenden.<br />
Das Modul gehört mittlerweile<br />
zum Mainline-Kernel <strong>und</strong> findet sich auf<br />
praktisch allen aktuellen Systemen. Weil<br />
in »ceph.conf« im ersten Teil des Workshops<br />
festgelegt ist, dass sich Benutzer<br />
authentifizieren müssen, um an die RA-<br />
DOS-Dienste heranzukommen, gilt das<br />
freilich auch für »rbd«. Zur Erinnerung:<br />
Die Login-Credentials finden ihren Weg<br />
nach »ceph-authtool -l /etc/ceph/admin.<br />
keyring« auf den Bildschirm.<br />
Danach funktioniert auf einem Rechner,<br />
der »rbd« geladen hat, folgender Befehl,<br />
um das Rbd-Laufwerk zu aktivieren: »echo<br />
„IP-Adressen der Mons, durch Beistriche getrennt<br />
name=admin,secret=Authkeyrbd<br />
test“ > /sys/ bus/ rbd/ add«<br />
Fazit<br />
RADOS hat das Zeug zum Star: Es bietet<br />
Administratoren die Möglichkeit, im<br />
Einsatz befindliche 2-Knoten-Storages<br />
durch nahtlos skalierbares Storage auf<br />
Gr<strong>und</strong>lage von RADOS zu ersetzen. Augenblicklich<br />
planen die Entwickler, die<br />
Version 0.48 zur Version 1.0 zu machen,<br />
die dann offiziell den Stempel „Ready for<br />
Enterprise“ bekommen soll. Die vorausgehende<br />
Version 0.47 ist inzwischen bereits<br />
erschienen, man darf also gespannt<br />
sein. (jcb)<br />
n<br />
Infos<br />
[1] Erklärungen zum Data Placement in RA‐<br />
DOS: [http:// www. ssrc.ucsc.edu/Papers/<br />
weil‐osdi06. pdf]<br />
[2] Erklärungen zum Crush‐Algorithmus:<br />
[http://www. ssrc. ucsc.edu/Papers/<br />
weil‐sc06. pdf]<br />
Der Autor<br />
Martin Gerhard Loschwitz arbeitet als Principal<br />
<strong>Co</strong>nsultant bei hastexo. Er beschäftigt sich dort<br />
intensiv mit Hochverfügbarkeitslösungen <strong>und</strong><br />
pflegt in seiner Freizeit den Linux‐Cluster‐Stack<br />
für Debian GNU/ Linux.<br />
66 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Linux-<strong>Magazin</strong><br />
ACADEMY<br />
LPIC-1<br />
All-in-One Solution<br />
✓<br />
✓<br />
✓<br />
Stellen Sie Ihr Linux-Wissen mit<br />
einer Zertifizierung unter Beweis!<br />
Nutzen Sie die volle Flexibilität bei<br />
der Zeiteinteilung Ihrer Schulung!<br />
Holen Sie sich alles, was Sie<br />
benötigen, in einem Paket!<br />
LPIC-1 Komplettpaket* nur € 1.490<br />
*Zertifizierung als „Junior Level Linux Professional“<br />
100% flexibel!<br />
Weitere Infos: academy.linux-magazin.de/solution
Know-how<br />
management mit Rex<br />
© Stanislav Rishnyak, 123RF<br />
Rechner verwalten mit Rex<br />
König der Rechner<br />
genau wie untertanen ihrem König gehorchen müssen, sollten auch alle Rechner <strong>und</strong> server eines unternehmens<br />
den Kommandos ihres Administrators folgen. dank Rex muss er sich dabei noch nicht einmal von seinem<br />
Thron erheben. Tim schürmann<br />
Mit Rex verwaltet der Administrator<br />
sämtliche Rechner in einem Netzwerk<br />
von einer zentralen Stelle aus. Als einzige<br />
Voraussetzung müssen alle <strong>Co</strong>mputer per<br />
SSH erreichbar sein, der Rechner des Administrators<br />
benötigt zudem eine installierte<br />
Perl-Umgebung. Auf dem eigenen<br />
Rechner definiert der Administrator dann<br />
eine Aufgabe (Task), die wiederum einige<br />
ausgewählte oder sogar alle anderen<br />
<strong>Co</strong>mputer ausführen beziehungsweise<br />
abarbeiten.<br />
Auf diese Weise kann man etwa Programme<br />
nachinstallieren <strong>und</strong> löschen,<br />
Wartungsaufgaben ausführen, die Konfiguration<br />
sämtlicher Stationen einheitlich<br />
ändern, Dokumente verteilen oder<br />
schlicht Informationen über den Ges<strong>und</strong>heitszustand<br />
der Systeme abfragen. Mit<br />
einem entsprechend formulierten Task<br />
genügt beispielsweise schon der Befehl<br />
»rex apache2«, um auf allen Webservern<br />
Apache2 zu installieren <strong>und</strong> sie gleich<br />
auch noch mit passenden Konfigurationsdateien<br />
auszustatten.<br />
Rex heißt übrigens nach dem Willen<br />
der Programmautoren in Wirklichkeit<br />
„(R)?ex“. Da dies aber schwer zu schreiben,<br />
lesen <strong>und</strong> auszusprechen ist, verwendet<br />
dieser Artikel im Weiteren eine<br />
andere Schreibweise.<br />
Freie Auswahl<br />
Kontrollieren kann Rex <strong>Co</strong>mputer mit den<br />
Linux-Distributionen CentOS 5 <strong>und</strong> 6,<br />
Debian 5 <strong>und</strong> 6, Fedora, Gentoo, Mageia,<br />
Open Suse, RHEL 5 <strong>und</strong> 6, Scientific<br />
Linux, sowie Ubuntu 10.04, 11.04<br />
<strong>und</strong> 12.04. Hinzu kommen noch Solaris-<br />
(Sun OS) <strong>und</strong> BSD-Systeme. Zwar sperrt<br />
sich Rex nicht gegen andere Linux-Distributionen,<br />
der Anwender muss dann<br />
aber beim Aktivieren einer Aufgabe die<br />
Daumen drücken.<br />
Rex selbst benötigt nur der Administrator<br />
auf seinem eigenen Rechner. Das kann<br />
sogar eine Windows- oder Mac-OS-X-<br />
Maschine sein, wichtig ist lediglich eine<br />
vorhandene Perl-Umgebung. Um Rex zu<br />
installieren, holt man zunächst (unter<br />
Linux mit dem Paketmanager) die Versionsverwaltung<br />
»git« <strong>und</strong> das Werkzeug<br />
»make« hinzu. Damit zapft man Github<br />
an <strong>und</strong> lässt ein für die Installation notwendiges<br />
Makefile generieren:<br />
git clone https://github.com/krimdomu/Rex.git<br />
cd Rex<br />
perl Makefile.PL<br />
Sehr wahrscheinlich tickern jetzt durch<br />
das Terminal ein paar von Rex vermisste<br />
Perl-Module, die man nachinstalliert –<br />
unter Linux in der Regel über den Paketmanager.<br />
Die eigentliche Installation erfolgt<br />
dann mit den beiden Kommandos:<br />
make<br />
sudo make install<br />
»rex -version« sollte jetzt eine Versionsnummer<br />
ausspucken. Andernfalls ist etwas<br />
bei der Installation schiefgelaufen,<br />
meist fehlen benötigte Perl-Pakete.<br />
Für alle unterstützten Linux-Distributionen<br />
stellen die Entwickler auch Repositories<br />
mit fertigen Rex-Paketen bereit. Wie<br />
man die Repositories einbindet, hängt<br />
von der Distribution ab. Das kostet unter<br />
Umständen mehr Tipparbeit als die<br />
hier vorgestellte Installation direkt aus<br />
den Quellen. Im Gegenzug bleibt Rex<br />
immer automatisch auf dem aktuellen<br />
Stand – zumindest halbwegs, denn zum<br />
Redaktionsschluss hinkten die Inhalte<br />
der Repositories etwas der Rex-Version<br />
68 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
management mit Rex<br />
Know-how<br />
Hinter »-H« stehen wieder die Rechner,<br />
die eine Aufgabe mit dem Namen »uptime«<br />
abarbeiten sollen. Die Definition<br />
dieser Aufgabe erwartet »rex« in einer<br />
Datei namens »uptime.rex«. Wer »uptime.rex«<br />
in »Rexfile« umbenennt, kann<br />
sich den Parameter »-f« sparen. Apropos<br />
sparen: Ohne den Parameter »-H« würde<br />
»rex« die Aktion lokal, also auf dem Rechner<br />
des Administrators ausführen. Auf<br />
diese Weise kann der Administrator Rex<br />
auch zur Automatisierung von lokalen<br />
Aufgaben missbrauchen <strong>und</strong> von ihm<br />
beispielsweise ein Programm übersetzen<br />
oder eine Dokumentation zusammenstellen<br />
lassen. Alle Parameter für »rex« müssen<br />
übrigens immer zwingend vor dem<br />
Task-Namen stehen (im obigen Beispiel<br />
also vor »uptime«). Andernfalls ignoriert<br />
»rex« sie.<br />
Sicherheitsbewussten Administratoren<br />
dürften bei einem Blick auf Listing 1<br />
sicherlich die Haare zu Berge stehen.<br />
Im Rexfile stehen tatsächlich der Beaus<br />
Github hinterher. Wer die Repositories<br />
nutzen möchte, findet entsprechende<br />
Installationsanleitungen unter [2].<br />
Sobald Rex einsatzbereit ist, sollte man<br />
noch kurz prüfen, ob alle Rechner im<br />
Netz per SSH erreichbar sind. Kann sich<br />
der Administrator dabei auf jedem Rechner<br />
mit den gleichen Benutzerdaten anmelden,<br />
vereinfacht dies das Schreiben<br />
der Tasks.<br />
Laufleistung<br />
Für einen ersten kurzen Test kann Rex ermitteln,<br />
wie lange die <strong>Co</strong>mputer im Netz<br />
bereits laufen. Diese sogenannte Uptime<br />
ermittelt für die beiden Rechner »marvin«<br />
<strong>und</strong> »zaphod« ein bündiges:<br />
rex -e "say run 'uptime'" -H "marvin zaphod"U<br />
-u hans -p 123456<br />
Hinter »-e« steht in Anführungszeichen<br />
das auszuführende Kommando. »run 'uptime'«<br />
weist »rex« an, auf den entfernten<br />
Rechnern das Programm »uptime« zu<br />
starten. Das vorangestellte »say« sorgt<br />
dafür, dass die Ausgaben von »uptime«<br />
im Terminal des Administrators landen.<br />
Der Parameter »-H« listet in Anführungszeichen<br />
alle betroffenen Rechner auf.<br />
Anstelle der Rechnernamen darf man<br />
selbstverständlich auch wie in Abbildung<br />
1 die IP-Adressen verwenden. Der für die<br />
Anmeldung an den beiden <strong>Co</strong>mputern<br />
benötigte Nutzername steht schließlich<br />
hinter »-u«, das Passwort hinter »-p«.<br />
Damit man sich bei komplexeren Aufgaben<br />
nicht die Finger w<strong>und</strong> tippt, kann<br />
man alle notwendigen Informationen<br />
auch in einer Textdatei ablegen, dem sogenannten<br />
Rexfile. Für die Abfrage der<br />
Uptime befüllt man sie mit dem Inhalt<br />
aus Listing 1.<br />
Am Anfang steht hinter »user« <strong>und</strong> »password«<br />
in Anführungszeichen der Benut-<br />
zername <strong>und</strong> das Passwort, mit dem sich<br />
der Administrator auf allen Maschinen<br />
per SSH einloggt. Danach folgt die Definition<br />
einer Aufgabe. Was sie bewirkt,<br />
verrät die kurze menschenlesbare Beschreibung<br />
hinter »desc« in Anführungszeichen.<br />
»task« gibt der Aufgabe einen<br />
eindeutigen Namen – in Listing 1 heißt<br />
sie schlicht »uptime«. Was Rex beim Aufruf<br />
der Aufgabe machen soll, steht zwischen<br />
den geschweiften Klammern. In<br />
Listing 1 startet (»run«) auf den externen<br />
Rechnern das Programm »uptime«, wobei<br />
dessen Ausgaben im Terminal des Administrators<br />
landen (»say«). Das Ende einer<br />
jeden Zeile beziehungsweise Anweisung<br />
ziert schließlich noch ein Semikolon.<br />
Die so definierte Aufgabe führt der Administrator<br />
mit folgendem Befehl aus:<br />
rex -H "marvin zaphod" -f uptime.rex uptime<br />
nutzername <strong>und</strong> das Passwort im Klartext.<br />
Lässt man sie weg, muss man sie<br />
»rex« wieder mit den Parametern »-u«<br />
<strong>und</strong> »-p« übergeben. In der zum Redaktionsschluss<br />
erhältlichen Version wertete<br />
»rex« die beiden Parameter jedoch<br />
nicht immer zuverlässig aus. Als dritte<br />
Alternative kann man sich auch mit SSH-<br />
Schlüsseln authentifizieren. Dazu dienen<br />
die Zeilen:<br />
user "hans";<br />
private_key "/pfad/zum/private.key";<br />
public_key "/pfad/zum/public.key";<br />
am Anfang des Rexfiles mit den passenden<br />
Pfaden. Sofern die Schlüssel in den<br />
Standardverzeichnissen liegen (unter<br />
»$HOME/.ssh«), reicht bereits die Angabe<br />
des »user«.<br />
Rudelbildung<br />
Wer besonders viele Rechner zu verwalten<br />
hat, kann diese im Rexfile in einer<br />
Gruppe zusammenfassen:<br />
group "intranet" => "marvin", "zaphod";<br />
Diese Zeile muss noch vor dem ersten<br />
Task stehen. In diesem Beispiel entsteht<br />
eine neue Gruppe namens »intranet«, die<br />
aus den beiden <strong>Co</strong>mputern »marvin« <strong>und</strong><br />
»zaphod« besteht. Sofern die Rechnernamen<br />
eine fortlaufende Nummer tragen,<br />
wie etwa »client01« bis »client05«, funktioniert<br />
auch eine kürzere Notation:<br />
group "intranet" => "client[01..05]";<br />
Beim Aufruf von »rex« genügt es dann,<br />
die Gruppe anzugeben:<br />
rex -G "intranet" uptime<br />
<strong>und</strong> schon führen alle darin befindlichen<br />
Rechner die Aktion »uptime« aus. Aber<br />
auch diese Angabe kann sparen, wer<br />
die Aufgabe »uptime« im Rexfile auf die<br />
Gruppe »intranet« beschränkt:<br />
task "uptime", group => "intranet", U<br />
sub { ...<br />
E<br />
Abbildung 1: Beim ersten Rechner schlägt das Login fehl, was unter anderem die kryptische Fehlermeldung am<br />
Ende zur Folge hat. Der zweite Rechner gibt hingegen brav seine Uptime preis.<br />
Listing 1: ein Rexfile mit einer Aufgabe<br />
01 user "hans";<br />
02 password "123456";<br />
03<br />
04 desc "Uptime ermitteln";<br />
05 task "uptime", sub {<br />
06 say run 'uptime';<br />
07 };<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
69
Know-how<br />
management mit Rex<br />
F Abbildung 2: »rex« protokolliert auf Wunsch alle<br />
seine Aktionen wie hier im Syslog. Die Ausgaben<br />
der aufgerufenen Programme sind allerdings nicht<br />
darunter. Je nach Umfang der Aufgabe kann »rex«<br />
auch schon einmal das Syslog überfluten.<br />
Jetzt genügt an der Kommandozeile sogar<br />
ein simples: »rex uptime«. Mehrere Gruppen<br />
notiert man in eckigen Klammern:<br />
task "uptime", group => ["intranet", U<br />
"buchhaltung"], sub { ...<br />
Anstelle der Gruppe darf der Anwender<br />
auch einfach die betroffenen Rechner<br />
auflisten:<br />
task "uptime", "marvin", "zaphod", sub { ...<br />
Laberbacke<br />
Rex ist ziemlich redselig <strong>und</strong> schreibt<br />
jede seiner Aktionen ins Terminal. Damit<br />
man dabei nicht den Überblick verliert,<br />
veranlasst die folgende Anweisung Rex<br />
dazu, alle Meldungen zusätzlich auch in<br />
eine Datei:<br />
Listing 2: erweitertes Rexfile für »uptime«<br />
01 user "hans";<br />
02 password "123456";<br />
03<br />
04 group "intranet" => "192.168.2.12",<br />
„192.168.2.13“;<br />
05 group "buchhaltung" => "192.168.2.14",<br />
"192.168.2.15";<br />
06<br />
Listing 3: Rexfile zum einrichten von Apache<br />
01 user "root";<br />
02<br />
03 desc "Apache installieren";<br />
04 task "apacheinstallieren", sub {<br />
05<br />
06 install package => "apache2";<br />
07 service "apache2" => "start";<br />
08<br />
09 };<br />
10<br />
11 desc "Konfiguration hochladen <strong>und</strong> synchron<br />
logging to_file => "rex.log";<br />
oder ins Syslog zu schreiben:<br />
logging to_syslog => "local0";<br />
Eine der beiden Zeilen gehört wieder ins<br />
Rexfile vor den ersten Task. Doch Vorsicht:<br />
In beiden Fällen landen nur die von<br />
Rex selbst erzeugten Meldungen in den<br />
Log-Dateien. Die zurückgelieferte Uptime<br />
etwa erscheint nur im Terminal, also der<br />
Standardausgabe (wie Abbildung 2 beweist).<br />
Das mit allen vorgestellten Funktionen<br />
erweiterte Rexfile zeigt Listing 2.<br />
Paketdienst<br />
07 logging to_file => "rex.log";<br />
08<br />
09 desc "Uptime ermitteln";<br />
10 task "uptime", group => ["intranet",<br />
"buchhaltung"], sub {<br />
11 say run 'uptime';<br />
12 };<br />
halten";<br />
12 task "apache", sub {<br />
13<br />
14 apacheinstallieren();<br />
15<br />
16 file "/etc/apache2/httpd.conf",<br />
17 source => "/vorlagen/httpd.conf",<br />
18 on_change => sub { service httpd =><br />
"reload"; };<br />
19<br />
20 };<br />
Listing 3 definiert gleich zwei Aufgaben:<br />
Die erste namens »apacheinstallieren«<br />
installiert auf allen Servern den Webserver<br />
Apache (»install package«) <strong>und</strong><br />
startet ihn (»service ... "start"«). Dabei<br />
ist es vollkommen egal, welche Linux-<br />
Distribution mit welchem Paketmanager<br />
auf dem Zielsystem läuft. Rex erkennt das<br />
System <strong>und</strong> spielt das Paket automatisch<br />
mit den korrekten Befehlen ein.<br />
Es gibt allerdings eine kleine Stolperfalle:<br />
Auf allen Zielsystemen muss das Paket<br />
mit dem Webserver »apache2« heißen.<br />
Kennt ein Paketmanager es etwa als »apache-2«,<br />
führt das zu einer Fehlermeldung.<br />
In heterogenen Netzwerkumgebungen<br />
kommt man daher meist doch nicht um<br />
mehrere Aufgaben für verschiedene Distributionen<br />
beziehungsweise Betriebssysteme<br />
herum.<br />
Kontrolle ist gut<br />
Die zweite Aufgabe in Listing 3 namens<br />
»apache« aktiviert zunächst die zuvor<br />
definierte Aufgabe »apacheinstallieren«.<br />
Damit stellt sie sicher, dass der Webserver<br />
auf jeden Fall ordnungsgemäß<br />
installiert ist. Anschließend kopiert sie<br />
die Datei »/vorlagen/httpd.conf« auf jeden<br />
Server nach »/etc/apache2/httpd.<br />
conf«. Sofern sich die Konfigurationsdatei<br />
mittlerweile geändert hat (<strong>und</strong> wirklich<br />
nur dann), startet Rex Apache auf dem<br />
Server automatisch neu. Dafür sorgt das<br />
»on_change«.<br />
Mit diesem Aufgaben-Duo genügt jetzt<br />
auf der Kommandozeile ein schlichtes:<br />
rex -H "marvin" apache -p Root-Passwort<br />
um auf dem Rechner »marvin« den Webserver<br />
Apache zu installieren <strong>und</strong> diesem<br />
auch gleich noch die angepasste Konfigurationsdatei<br />
»/vorlagen/httpd.conf« aufzudrücken.<br />
Nach dem gleichen Prinzip<br />
hält man auch die Konfigurationen aller<br />
anderen Rechner im Netzwerk auf dem<br />
aktuellen Stand.<br />
Spätestens in Listing 3 dürfte Perl-Kennern<br />
so einiges vertraut vorkommen.<br />
Und tatsächlich ist ein Rexfile nichts<br />
anderes als ein Perl-Skript. Jeder Task<br />
ist eine Funktion, die man in anderen<br />
Tasks aufrufen kann – damit erklärt sich<br />
70 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
management mit Rex<br />
Know-how<br />
E Abbildung 3: Um Fehlern im eigenen Rexfile auf<br />
die Schliche zu kommen, schaltet »rex« mit dem<br />
Parameter »‐d« in einen Debug‐Modus. In ihm<br />
protokolliert das Werkzeug penibel jede einzelne<br />
Aktion.<br />
auch in Listing 3 der Aufruf »apacheinstallieren();«.<br />
Wer die Skriptsprache Perl<br />
noch nicht kennt, findet auf der Rex-<br />
Homepage eine schnelle Einführung [3].<br />
Die dortigen Informationen reichen zum<br />
Schreiben von Rexfiles vollkommen aus,<br />
ein Perl-Experte muss man folglich nicht<br />
werden.<br />
Personalakte<br />
Neben den bereits vorgestellten Aktionen<br />
bringt Rex noch viele weitere mit. Mit<br />
ihnen kann man unter anderem bequem<br />
an den Netzwerkeinstellungen schrauben,<br />
laufende Prozesse abschießen <strong>und</strong><br />
sogar auf die Amazon Cloud zugreifen.<br />
Thematisch zusammengehörende Funk-<br />
tionen haben die Entwickler in Perl-Modulen<br />
zusammenfasst, von denen einige<br />
standardmäßig eingeb<strong>und</strong>en sind. Hierzu<br />
zählt etwa der Dateiupload mit »file« aus<br />
rz lam-0018 Anzeige_210x148:la1 lam-0010 Anzeige_210x148 18.08.2010 15:26 Uhr Seite 1<br />
Listing 3. Andere, wie etwa die Funktionen<br />
zur Benutzerverwaltung, muss man<br />
erst noch per Hand einbinden. Listing 4<br />
zeigt dafür ein Beispiel: Zunächst bindet<br />
„Es gibt drei Möglichkeiten, eine Firma zu ruinieren:<br />
mit Frauen, das ist das Angenehmste;<br />
mit Spielen, das ist das Schnellste;<br />
mit <strong>Co</strong>mputern, das ist das Sicherste.“<br />
Oswald Dreyer-Eimbcke, deutscher Unternehmer<br />
Es gibt allerdings auch eine ganze Reihe von Möglichkeiten, mit IT zum Unternehmenserfolg beizutragen.<br />
Und genau damit beschäftigen wir uns seit dem Jahr 1989. In weit über 100.000 St<strong>und</strong>en IT-Training,<br />
technischem <strong>Co</strong>nsulting <strong>und</strong> Software-Entwicklung haben wir eine ganze Menge Know-how entwickelt.<br />
Dieses umfassende Wissen kommt Ihnen heute zugute, wenn wir Sie in allen IT-Fragen unterstützen.<br />
Wie Sie von unserem Know-how profitieren, erfahren Sie unter www.lamarc.com.<br />
Rufen Sie uns an +49 611 26 00 23 oder schicken eine E-Mail an info@lamarc.com<br />
Seminare OnSite <strong>Co</strong>aching Netzwerk <strong>Co</strong>nsulting System <strong>Co</strong>nsulting Developer Support Software-Entwicklung<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
71
Know-how<br />
management mit Rex<br />
G Abbildung 4: Hier legt »rex« mit der entsprechenden Aufgabe aus Listing 4<br />
einen neuen Nutzer an, wie …<br />
E Abbildung 5: … die Benutzerverwaltung des Clients beweist.<br />
es das Modul »Rex::<strong>Co</strong>mmands::User« ein<br />
<strong>und</strong> verrät (hier der Einfachheit halber)<br />
die Login-Daten für den Benutzer »root«.<br />
Anschließend legt es auf allen entfernten<br />
Rechnern einen neuen Benutzer namens<br />
»klaus« an. Dazu muss es lediglich die<br />
benötigen Informationen in einen Hash<br />
schieben. So gibt etwa die Zeile:<br />
home => '/home/klaus',<br />
den Namen des zukünftigen Heimatverzeichnisses<br />
an. Neben den Hash-Einträgen<br />
aus Listing 4 existieren noch weitere,<br />
darunter auch:<br />
expire => '2012-11-30',<br />
Eigentlich kann man damit die Gültigkeit<br />
des Nutzerkontos bis zu dem angegebenen<br />
Stichtag beschränken. In der zum<br />
Redaktionsschluss aktuellen Rex-Version<br />
führte die Angabe auf den Testsystemen<br />
Listing 5: Auswertung von Parametern<br />
01 user "root";<br />
02 password "123456";<br />
03<br />
04 desc "Erstelle Benutzer";<br />
05 task "neuernutzer", sub {<br />
06<br />
Listing 4: erstellen eines neuen benutzerkontos<br />
01 use Rex::<strong>Co</strong>mmands::User;<br />
02<br />
03 user "root";<br />
04 password "123456";<br />
05<br />
06 desc "Erstelle Benutzer";<br />
07 task "neuernutzer", sub {<br />
08 create_user 'klaus' => {<br />
09 home => '/home/klaus',<br />
10 comment => 'Konto für Klaus',<br />
11 password => '123456',<br />
12 };<br />
13 };<br />
07 my ($params) = @_;<br />
08 run "useradd -m " .<br />
$params->{'benutzername'};<br />
09<br />
10 };<br />
jedoch reproduzierbar zu einem Fehler.<br />
»create_user« legt einen neuen Nutzer<br />
an, analog löscht »delete_user« einen solchen<br />
wieder:<br />
delete_user „klaus“, {<br />
delete_home => 1,<br />
};<br />
»delete_home => 1,« bewirkt, dass<br />
auch das Home-Verzeichnis ins Nirwana<br />
wandert.<br />
Mit Anhang<br />
Die Aufgabe aus Listing 4 ist auf den<br />
Benutzer »klaus« festgenagelt <strong>und</strong> somit<br />
alles andere als flexibel. Viel praktischer<br />
wäre, wenn man der Aufgabe den Benutzernamen<br />
beim Aufruf übergeben<br />
könnte:<br />
rex -H "marvin" neuernutzer U<br />
--benutzername=klaus<br />
Auch das ist kein Problem wie Listing<br />
5 beweist. Dort packt zunächst das<br />
»my ($params) = @_;« sämtliche an<br />
»rex« zusätzlich übergebenen Parameter<br />
in »$params«. Der Wert des Parameters<br />
»benutzername« steckt dann in<br />
»$params->{‚benutzername‘}«. Listing<br />
5 übergibt ihn sinnvollerweise dem<br />
»useradd«-Kommando, das wiederum das<br />
passende Benutzerkonto anlegt. Analog<br />
lassen sich beliebige weitere Parameter<br />
hinzufügen <strong>und</strong> abfragen. Diese Parameter<br />
müssen übrigens beim Aufruf von<br />
»rex« diesmal zwingend hinter dem Task-<br />
Namen stehen (wie im obigen Beispiel).<br />
Wie »useradd« benötigen manche Kommandos<br />
auf den entfernten Maschinen<br />
Root-Rechte. Dazu kann sich der Administrator<br />
wie in den hier vorgestellten<br />
Listings als »root« anmelden. Einige<br />
Distributionen wie Ubuntu deaktivieren<br />
dessen Nutzerkonto jedoch. Daher kann<br />
»rex« auf Wunsch auch jedes Kommando<br />
einer Task mit »sudo« ausführen. Man<br />
muss dem Aufruf von »rex« lediglich<br />
noch ein »-s« anhängen, das notwendige<br />
Passwort übergibt »-S«:<br />
rex -H "marvin" -s -S 123456 neuernutzer U<br />
--benutzername=klaus<br />
Fazit<br />
Wer einigermaßen Perl spricht, erhält<br />
mit Rex ein leistungsfähiges <strong>und</strong> extrem<br />
flexibles Fernwartungswerkzeug. Die<br />
Einarbeitung in das System ist schnell<br />
geschafft, die ferngesteuerten Rechner<br />
benötigen nur einen SSH-Server. Ärgerlicherweise<br />
stolpert man beim Schreiben<br />
von Aufgaben immer wieder über kleinere<br />
Unzulänglichkeiten, wie etwa das<br />
nicht funktionierende »expire« bei der<br />
Nutzerverwaltung. Die Dokumentation<br />
besteht im Wesentlichen aus einem noch<br />
spärlich bestückten Wiki [4] <strong>und</strong> ein<br />
paar Howtos [5]. Perl-Kenner sollten<br />
aber dennoch schnell durchblicken <strong>und</strong><br />
sich dann gleich auf die Funktions-Referenz<br />
stürzen [6]. (ofr)<br />
n<br />
Infos<br />
[1] Rex: [http:// rexify.org/]<br />
[2] Offizielle Rex-Repositories:<br />
[http://rexify. org/ get/index.html]<br />
[3] Schnelleinführung in Perl:<br />
[http://rexify. org/ howtos/perl.html]<br />
[4] Rex-Wiki: [http://rexify.org/api/index.html]<br />
[5] Rex-Howtos:<br />
[http://rexify. org/ howtos/index.html]<br />
[6] Rex-API-Referenz:<br />
[http://rexify. org/ api/index.html]<br />
Der Autor<br />
Tim Schürmann ist selbstständiger Diplom-Informatiker<br />
<strong>und</strong> derzeit hauptsächlich als freier<br />
Autor unterwegs. Zu seinen Büchern gesellen<br />
sich zahlreiche Artikel, die in Zeitschriften <strong>und</strong><br />
auf Internetseiten in mehreren Ländern veröffentlicht<br />
wurden.<br />
72 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Admin-mAGAZin diGitAl<br />
Profi-Know-how immer Zur hAnd<br />
vorteile<br />
• Ideal für Rechercheure<br />
• bereits vor dem Kiosk-<br />
Termin als PDF lesen<br />
• kompaktes, papierloses<br />
Archiv<br />
• Sparen Sie im Abo über<br />
20% im Vergleich zum<br />
PDF-Einzelkauf!<br />
Jetzt bestellen unter:<br />
www.admin–magazin.de/digisub<br />
Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de<br />
* Preise gelten für Deutschland.<br />
nur 44,90 E* pro Jahr<br />
(6 Ausgaben)
Know-H ow<br />
Kanban<br />
© Stephen <strong>Co</strong>burn, 123RF<br />
Wie Kanban hilft, IT-Prozesse zu verbessern<br />
Projekt-<br />
Jonglage<br />
zwischen den Herausforderungen des täglichen iT-betriebs <strong>und</strong> hochtrabenden<br />
Projekten hin- <strong>und</strong> hergerissen muss der Admin seine Ressourcen<br />
austarieren. ein mittel, das dabei unspektakulär aber wirksam helfen<br />
kann, ist die Kanban-methode. Jochen Lillich<br />
kein Projekt durchgeführt, wenn es nicht<br />
wichtig wäre, <strong>und</strong> so erwarten die Verantwortlichen,<br />
dass das Operations-Team<br />
ihr Projekt mit Priorität behandelt. Wo<br />
jede Aufgabe vorgezogen werden soll,<br />
muss es zu Konflikten kommen – <strong>und</strong><br />
auch die überlässt man dann ganz gerne<br />
dem Admin.<br />
Als wäre das nicht schon schwierig genug,<br />
kommen dann noch die internen<br />
Projekte hinzu, die nötig sind, um den<br />
stabilen Betrieb der IT-Infrastruktur zu<br />
sichern <strong>und</strong> sie für die Zukunft zu rüsten.<br />
Da muss das Backup-System erweitert<br />
werden, dort soll das Monitoring mit einer<br />
stetig steigenden Anzahl von Checks<br />
<strong>und</strong> Metriken zurechtkommen, <strong>und</strong> vielleicht<br />
ist auch die breite Einführung einer<br />
Automatisierungs-Software wie Puppet<br />
oder Chef ein schon lange gehegter<br />
Wunsch der Admins. Die Idee, dafür Personalkapazität<br />
zu reservieren, wird außerhalb<br />
der IT jedoch meist ähnlich viel<br />
Zuspruch ernten wie der Vorschlag eines<br />
mehrwöchigen Abteilungsausflugs.<br />
Weiter kompliziert sich die Situation<br />
durch das große Aufgabenspektrum unterhalb<br />
des Daches „Operations“. Schichtenmodelle<br />
wie ISO/ OSI deuten bildlich<br />
an, wie weit entfernt die Aufgaben eines<br />
Netzwerk-Administrators von denen einer<br />
Datenbank-Administratorin liegen.<br />
Doch selbst auf einer Ebene ist die Artenvielfalt<br />
groß, man denke nur an Apache<br />
<strong>und</strong> nginx, Varnish <strong>und</strong> Squid, MySQL<br />
<strong>und</strong> Oracle.<br />
Einer der wichtigsten Unterschiede zwischen<br />
einem Software-Entwicklungs-<br />
Team <strong>und</strong> einem Operations-Team ist<br />
die Menge an ungeplanter Arbeit. Jede<br />
Unterbrechung des Betriebs durch eine<br />
Störung bedeutet, dass ein oder mehrere<br />
Admins aus ihrer geplanten Arbeit gerissen<br />
werden. Und diese Unterbrechungen<br />
sind leider häufiger als man es sich<br />
wünscht.<br />
Schaut man nach den Gründen, warum<br />
IT-Projekte so häufig scheitern oder zumindestens<br />
erhebliche Schmerzen verursachen,<br />
dann stößt man auf eine ganze<br />
Reihe von wiederkehrenden Ursachen.<br />
Die Probleme<br />
Da wäre zunächst die Vielzahl der Auftraggeber,<br />
die mit ihren Anliegen auf<br />
die operativen Mitarbeiter zukommen.<br />
Jeder hat seine eigenen Vorstellungen,<br />
wie sein Projekt abzulaufen hat, aber<br />
in einem sind sich alle einig: Das eigene<br />
Projekt möge doch bitte vorrangig<br />
behandelt werden. IT-Projekte kommen<br />
aus fast allen Bereichen des Unternehmens,<br />
zum Beispiel aus dem Marketing,<br />
dem Produktmanagement oder auch<br />
der Personalabteilung. Natürlich würde<br />
Die Folgen<br />
All dies hat erhebliche Folgen für den<br />
täglichen Betrieb innerhalb einer Operations-Organisation.<br />
Nur selten genießt<br />
ein Operations-Team den Luxus eines<br />
Personalstamms, der so groß ist, dass<br />
jeder Mitarbeiter sich vollständig einem<br />
einzigen Projekt widmen kann. Dies führt<br />
dazu, dass das Team für eine Vielzahl<br />
74 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Kanban<br />
Know-H ow<br />
Fehlende Kapazität, unvollständiger<br />
Überblick, geringe Planungssicherheit<br />
<strong>und</strong> allgemeine Unzufriedenheit waren<br />
schon vor mehr als zehn Jahren die<br />
Gründe, sich in der Software-Entwicklung<br />
vom etablierten Wasserfall-Modell abzuwenden<br />
<strong>und</strong> nach Projektmanagement-<br />
Methoden zu suchen, die mehr Agilität<br />
erlauben.<br />
Beim Wasserfall-Modell durchläuft ein<br />
Gesamtprodukt verschiedene Phasen von<br />
der Planung über die Entwicklung bis<br />
zur Produktion <strong>und</strong> Auslieferung. Fehler<br />
in frühen Phasen machen sich hier oft<br />
erst spät bemerkbar <strong>und</strong> können dann<br />
nur zu hohen Kosten korrigiert werden.<br />
Agile Verfahren hingegen fokussieren<br />
sich auf leichter zu handhabende Produkt-Fragmente,<br />
die nacheinander oder<br />
gleichzeitig bestimmte Stationen durchlaufen.<br />
Dies erlaubt es, Korrekturen <strong>und</strong><br />
sogar radikale Kurswechsel zu geringeren<br />
Kosten durchzuführen. Das prominenteste<br />
Beispiel für diese Verfahren ist die<br />
Methodologie Scrum.<br />
So verlockend solche neuen Ansätze wie<br />
Scrum sind – es liegt wohl in der menschgleichzeitig<br />
laufender Aufgaben<br />
verantwortlich ist, die es<br />
am Laufen halten muss wie<br />
ein Jongleur die Bälle in der<br />
Luft. Es gibt dabei immer wieder<br />
Zeiten, zu denen mehr<br />
Aufgaben angefangen als abgeschlossen<br />
werden.<br />
Oft fehlt dem Team sogar ganz<br />
gr<strong>und</strong>legend die Kapazität,<br />
um mit allen Eventualitäten<br />
fertig zu werden, ohne dass<br />
Einbußen in Kauf genommen<br />
werden müssen. Dann reißt<br />
jeder größere Incident Kapazität<br />
an sich, die für ein oder<br />
gar mehrere (Teil-) Projekte vorgesehen<br />
war, <strong>und</strong> gefährdet somit auch deren<br />
pünktlichen Abschluss.<br />
Überblick bewahren<br />
Wer behält dabei noch den Überblick?<br />
Jedes Projekt wird zwar seinen Hauptverantwortlichen<br />
haben, aber gibt es<br />
auch eine Instanz, die die Gesamtheit<br />
aller Projekte, inklusive der IT-internen,<br />
auf dem Schirm hat? Die weiß, welcher<br />
Sysadmin gerade an welcher Aufgabe arbeitet?<br />
Die, auch nach außen hin, transparent<br />
macht, welche Aufgaben auf Kurs<br />
sind <strong>und</strong> welche gerade zu entgleisen<br />
drohen? Falls es sie nicht gibt, sollte sie<br />
geschaffen werden, <strong>und</strong> zwar innerhalb<br />
der IT-Organisation.<br />
Ohne diese Instanz ist die Planungssicherheit<br />
weder für Operatoren noch für<br />
den Rest des Unternehmens ausreichend.<br />
Die Frage, ob die richtigen Fachkräfte mit<br />
den richtigen Aufgaben beschäftigt sind,<br />
ist dann kaum zu beantworten.<br />
Leider ist das Fehlen einer solchen übergeordneten<br />
Instanz für viele Operations-<br />
Organisationen tägliche Realität, <strong>und</strong><br />
dementsprechend hoch ist der Grad an<br />
Unzufriedenheit, ja sogar Misstrauen, mit<br />
dem sich Auftraggeber <strong>und</strong> Auftragnehmer<br />
begegnen. Der Projektmanager wird<br />
unzufrieden sein, dass Termine nicht eingehalten<br />
werden – selbst, wenn diese mit<br />
der IT verabredet wurden. Und auch bei<br />
den Sysadmins macht sich Unzufriedenheit<br />
breit, weil es keine klaren Prioritäten<br />
gibt, außer, dass Störungen sofort zu<br />
behandeln sind. (Was natürlich prompt<br />
wieder Ärger erzeugen wird, wenn deshalb<br />
Deadlines platzen.)<br />
Backlog<br />
Projekt<br />
D<br />
In Arbeit<br />
Projekt<br />
B<br />
Projekt<br />
C<br />
WIP-Limit: 3<br />
Besonders frustrierend ist dabei, dass<br />
ein Admin oft nicht einmal die gr<strong>und</strong>legende<br />
Frage beantworten kann: „Was<br />
ist meine nächste Aufgabe, <strong>und</strong> wann<br />
kann ich damit anfangen?“ Die Antwort<br />
kommt, wenn überhaupt, von außerhalb<br />
des Teams. Das geht nicht nur<br />
zulasten der Jobzufriedenheit, sondern<br />
verhindert auch, dass das Ops-Team<br />
seine bescheidenen Ressourcen optimal<br />
einsetzen kann.<br />
Ausweg Agilität<br />
fertig<br />
Projekt<br />
A<br />
Abbildung 1: Das Kanban-Board stellt jeden Prozessschritt in einer eigenen<br />
Spalte dar. Die Projekte wandern von links nach rechts.<br />
Scrum<br />
lichen Natur, sich gegen tiefgreifende<br />
Änderungen zu wehren.<br />
Und oft ist es dieser Widerstand,<br />
manchmal aus dem<br />
Management, manchmal vonseiten<br />
der Mitarbeiter, der gut<br />
gemeinte Initiativen innerhalb<br />
einer Organisation zum Scheitern<br />
bringt. Ansätze, die auf<br />
einen radikalen Bruch verzichten<br />
<strong>und</strong> statt dessen graduell<br />
zu einer Verbesserung führen,<br />
haben eine höhere Chance auf<br />
Erfolg. Jeder Schritt kann dann<br />
einzeln bewertet werden <strong>und</strong><br />
Vertrauen erzeugen.<br />
Viele, die in Operations-Teams Scrum einführen,<br />
stellen fest, dass manche Ansätze<br />
des Konzepts zu einer Verbesserung führen,<br />
andere jedoch zu Schwierigkeiten.<br />
Ein einfacher, aber wichtiger Gr<strong>und</strong> dafür<br />
ist, dass Entwicklungs-Teams <strong>und</strong> Operations-Teams<br />
ähnlich, aber nicht identisch<br />
arbeiten. Der Alltag eines Admins unterscheidet<br />
sich in entscheidenden Aspekten<br />
von dem eines Software-Entwicklers.<br />
Dies wird besonders am Devops-Ansatz<br />
sichtbar, der den gesamten Lebenszyklus<br />
eines IT-Produkts von der Idee bis zum<br />
Betriebsende betrachtet.<br />
Dem Operations-Bereich fehlt zudem die<br />
für Scrum nötige klare Rollenverteilung:<br />
Wer ist der Product Owner eines Postfix-Clusters?<br />
Und Admins beneiden ihre<br />
Entwicklungs-Kollegen um deren Planungshorizont.<br />
Immer kürzer werdende<br />
Deployment-Zyklen sind als Rahmen für<br />
unflexible Sprints nicht geeignet, die einerseits<br />
keine Änderungen am Auftrag<br />
mehr erlauben <strong>und</strong> andererseits durch<br />
das Time-Boxing Leerlauf zu erzeugen<br />
drohen.<br />
Was ist Kanban?<br />
Mit der Kanban-Methode existiert ein weiterer<br />
agiler Ansatz für die Modellierung<br />
von Arbeitsabläufen. Sie erfreut sich, vor<br />
allem im IT-Bereich, stetig zunehmender<br />
Beliebtheit, weil sie einfach zu verstehen,<br />
einfach umzusetzen <strong>und</strong> einfach an den<br />
eigenen Bedarf anzupassen ist.<br />
Kanban ist ein japanisches Wort, das<br />
sich aus den Silben „kan“ (Signal) <strong>und</strong><br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
75
Know-H ow<br />
Kanban<br />
„ban“ (Karte) zusammensetzt. Es ist der<br />
Name eines Prinzips, nach dem Taiichi<br />
Ono 1947 den Produktionsablauf bei Toyota<br />
organisierte. Er orientierte sich dabei<br />
erfolgreich an den zentralen Zielen des<br />
Lean Manufacturing, die Durchlaufzeiten<br />
zu verkürzen, die Produktivität zu erhöhen<br />
sowie Zufriedenheit <strong>und</strong> Vertrauen<br />
zu schaffen. Aus der Erkenntnis heraus,<br />
dass keine Methode Perfektion erreicht,<br />
kommt in Kanban auch dem Prinzip der<br />
kontinuierlichen Verbesserung („kaizen“)<br />
eine wichtige Rolle zu.<br />
Abbildung 2: Ein Problem bei der Auslieferung blockiert die ganze Kette. Das WiP-Limit der Entwicklung<br />
verhindert, dass unaufhörlich Projekte nachrutschen.<br />
Der Kern: Pull <strong>und</strong> WIP<br />
Das Herzstück von Kanban ist ein sogenanntes<br />
Pull-Verfahren, in dem die verschiedenen<br />
Arbeitsstationen ihre freien<br />
Kapazitäten ohne externe Einflussnahme<br />
selbst auffüllen. Zu diesem Zweck wurden<br />
bei Toyota Signalkarten (daher der<br />
Name "Kanban") eingesetzt, die der jeweils<br />
vorangehenden Station anzeigten,<br />
dass ihr wieder Kapazität zur Weiterbearbeitung<br />
des Produkts zur Verfügung steht.<br />
Die Anzahl der zur Verfügung stehenden<br />
Karten war jeweils an die Kapazität der<br />
Station angepasst, sodass ihre Überlastung<br />
von vornherein vermieden wurde.<br />
Das auf diese Weise eingeführte Work-In-<br />
Progress-Limit (kurz: WIP Limit) ist der<br />
entscheidende Aspekt für den Erfolg des<br />
Kanban-Prinzips.<br />
Ein anschauliches Beispiel für ein Pull-<br />
Verfahren kommt heute in den Kaiserlichen<br />
Gärten in Tokyo zum Einsatz. Jeder<br />
Besucher erhält am Eingang eine Karte,<br />
auf der die Bitte aufgedruckt ist, sie beim<br />
Verlassen der Gärten wieder abzugeben.<br />
Nun ist der Zutritt zu den Gärten zwar<br />
kostenlos, aber er wird nur so lange gewährt,<br />
wie noch freie Karten zur Verfügung<br />
stehen. Und weil deren Gesamtzahl<br />
sinnvoll begrenzt ist, spazieren immer<br />
nur so viele Besucher durch die Gärten,<br />
dass jedem ein angenehmer Aufenthalt<br />
gesichert bleibt.<br />
Als Organisationsmethode im IT-Umfeld<br />
wurde Kanban vor allem durch David<br />
J. Anderson <strong>und</strong> dessen Buch „Kanban:<br />
Successful Evolutionary Change for Your<br />
Technology Business“ bekannt. Anderson<br />
nennt folgende Kerneigenschaften, die<br />
die Kanban-Methode ausmachen:<br />
1. Visualisierung: Die Einzelaufträge eines<br />
Projekts werden für alle Beteiligten<br />
sichtbar mit den Prozess-Schritten, die<br />
sie aktuell durchlaufen, in Beziehung<br />
gesetzt.<br />
2. Begrenzte Anzahl angefangener Aufgaben:<br />
Wie schon beschrieben, verhindert<br />
das Pull-Prinzip in Kombination<br />
mit der Einschränkung gleichzeitiger<br />
Aufträge eine Überlastung der jeweiligen<br />
Station, im IT-Kontext zum Beispiel des<br />
QS-Teams.<br />
3. Steuerung des Auftragsflusses: Auf Basis<br />
wichtiger Metriken, zum Beispiel der<br />
Durchlaufzeit eines Auftrags, der Länge<br />
der Auftragsliste einer Station oder der<br />
Verweildauer eines Auftrags an einer Station<br />
können f<strong>und</strong>ierte Entscheidungen<br />
<strong>und</strong> Voraussagen getroffen werden.<br />
4. Explizite Definition der Regeln: Die<br />
Aufgaben jeder Station werden ebenso<br />
vereinbart wie die Kriterien, nach denen<br />
sie einen Auftrag als fertig betrachten<br />
darf, <strong>und</strong> wie der Übergang zwischen den<br />
Stationen konkret geregelt ist.<br />
5. Aufbau von Feedback-Schleifen: Tägliche<br />
Standup Meetings auf Team- <strong>und</strong> Mitarbeiterebene<br />
sowie Team-übergreifende<br />
Operations Reviews stellen sicher, dass<br />
alle Beteiligten innerhalb der Organisation<br />
Einfluss auf die Weiterentwicklung<br />
der Prozesse erhalten.<br />
6. Kooperative Verbesserung, Evolution<br />
durch Experimente: Mithilfe wissenschaftlicher<br />
Modelle, beispielsweise aus<br />
der sogenannten „Theory of <strong>Co</strong>nstraints“,<br />
<strong>und</strong> gezielter Experimente können aus<br />
den erhobenen Daten Maßnahmen zur<br />
gezielten Verbesserung der Abläufe abgeleitet<br />
werden.<br />
Kanban in der Praxis<br />
Das Schöne am Kanban-Prinzip ist, dass<br />
nur sehr wenig notwendig ist, um es in<br />
der Praxis anzuwenden. Im Gr<strong>und</strong>e sind<br />
es nur zwei Dinge: Die explizite Erlaubnis<br />
WIP-Limits einzuführen <strong>und</strong> eine Wand.<br />
Die Wand, egal, ob Whiteboard, Pinwand<br />
oder virtuell in Form einer Kanban-Applikation,<br />
dient der Visualisierung des<br />
Auftragsflusses. Auf dem Kanban-Board<br />
wird jeder Prozessschritt als eine Spalte<br />
dargestellt. Abbildung 1 zeigt ein sehr<br />
einfaches Beispiel für ein solches Kanban<br />
Board. Ein klassisches Entwicklungsprojekt<br />
könnte durch die Spalten „Backlog“,<br />
„Analyse“, „Entwicklung“, „Test“,<br />
„Change-Vorbereitung“, „Produktion“<br />
<strong>und</strong> „Fertig“ modelliert werden. Im anderen<br />
Extrem nutzen Großprojekte unter<br />
Umständen sogar mehrere, hierarchisch<br />
gestaffelte Boards, wobei eines den Gesamtstatus<br />
wiedergibt <strong>und</strong> weitere Boards<br />
zur Verwaltung der einzelnen Teilprojekte<br />
zum Einsatz kommen.<br />
Rückendeckung erforderlich<br />
Alle Aufträge wandern dann von links<br />
nach rechts durch die Spalten, jeder symbolisiert<br />
durch eine Karte. Auf der Karte<br />
können noch zusätzliche Daten, etwa der<br />
Verantwortliche oder der Zeitpunkt des<br />
Auftragseingangs, festgehalten werden.<br />
Entsprechend der Kapazität jeder Station<br />
wird jeder Spalte ein festes WIP-Limit<br />
zugeordnet. Der Erfolg der Kanban-Methode<br />
steht <strong>und</strong> fällt damit, diese Grenzen<br />
streng einzuhalten! Hierfür ist die<br />
Rückendeckung durch das Management<br />
fast unabdingbar, denn ohne diese werden<br />
die WIP-Limits <strong>und</strong> damit der Nutzen<br />
der Methode erfahrungsgemäß bald<br />
im Machtgerangel der verschiedenen<br />
Interessen untergehen. Nur in wirklich<br />
seltenen Ausnahmefällen, die im Vorfeld<br />
exakt definiert werden müssen, darf eine<br />
76 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Kanban<br />
Know-H ow<br />
WIP-Grenze überschritten werden, beispielsweise<br />
für Maßnahmen zur Behebung<br />
eines Produktionsausfalls.<br />
Es sei an dieser Stelle darauf hingewiesen,<br />
dass bei der Festlegung der WIP-<br />
Limits Gestaltungsspielraum besteht.<br />
Eine für kleine Teams geeignete Variante<br />
beschränkt zum Beispiel einfach spaltenübergreifend<br />
die Anzahl der Karten,<br />
die eine Person insgesamt auf der Wand<br />
haben darf.<br />
Nun gilt es, die Backlog-Spalte mit Aufträgen<br />
zu befüllen, damit diese ihre Wanderung<br />
über das Board beginnen können.<br />
Dies erfolgt sinnvollerweise in regelmäßigen<br />
Priorisierungstreffen zwischen Auftraggebern<br />
<strong>und</strong> dem Operations-Team.<br />
Ihr zeitlicher Abstand sollte groß genug<br />
sein, um beim nächsten Mal wieder Platz<br />
auf dem Board zu haben, <strong>und</strong> klein genug,<br />
um die vorhandene Kapazität sinnvoll<br />
auszulasten.<br />
Was folgt?<br />
In agilen Projekten hat sich die Gewichtung<br />
von Backlog-Kandidaten als hohe<br />
Kunst herausgebildet. Planning Poker<br />
<strong>und</strong> andere Methoden sollen hier bei der<br />
Entscheidung helfen, welche Aufgabe<br />
als nächste angegangen werden soll. Die<br />
Aufwandsschätzung ist im Ops-Bereich<br />
erfahrungsgemäß kein effizientes Verfahren,<br />
weil sie aufgr<strong>und</strong> der Komplexität<br />
der IT-Infrastruktur die Beteiligung verschiedenster<br />
Spezialisten (DBA, Netzwerk-Architekt,<br />
etc.) erforderlich macht<br />
<strong>und</strong> deshalb wegen der Koordinationskosten<br />
nicht skaliert. Ein pragmatischeres<br />
Verfahren hingegen wäre ein Weighted<br />
Ro<strong>und</strong> Robin zwischen den Projektverantwortlichen<br />
anhand deren Budgets.<br />
Auch die Verzögerungskosten – „Welche<br />
Kosten werden entstehen, wenn wir diesen<br />
Auftrag jetzt noch liegen lassen?“<br />
– sind ein möglicher Schlüssel zur Gewichtung.<br />
Wichtig ist es, diese Treffen regelmäßig<br />
abzuhalten; ein wöchentlicher Turnus<br />
hat sich bewährt. Zum einen entstehen<br />
dadurch Routine <strong>und</strong> Transparenz.<br />
Wichtiger noch: Die WIP-Limits können<br />
dann gering gehalten werden, was<br />
es dem Team erlaubt, sich auf einzelne<br />
Aufträge zu konzentrieren. Die dadurch<br />
minimierten Durchlaufzeiten, zusammen<br />
mit der Visualisierung der Fortschritte am<br />
Kanban-Board, schaffen dann Vertrauen<br />
in Team <strong>und</strong> Methode.<br />
Um dieses Vertrauen weiter zu stärken,<br />
sollte auch die Auslieferung fertiger Aufträge<br />
regelmäßig erfolgen. Anders als<br />
Scrum verlangt die Kanban-Methode<br />
dabei kein Time-Boxing, was dem Ops-<br />
Team mehr Spielraum gibt. In dringenden<br />
Fällen kann auch eine ad-hoc-Auslieferung<br />
sinnvoll sein. Teams, die schon eine<br />
gewisse Prozessreife erreicht haben, können<br />
dies in Form des <strong>Co</strong>ntinuous Deployment<br />
sogar zum Regelfall machen.<br />
Täglich kommunizieren<br />
Kommunikation spielt in der Kanban-Methode<br />
eine wichtige Rolle, <strong>und</strong> der wichtigste<br />
Ort dafür ist das tägliche Standup-Meeting.<br />
Sein Ziel ist es, Probleme<br />
im Prozessablauf aufzudecken <strong>und</strong> gemeinsam<br />
nach Lösungen zu suchen. Teilnehmer<br />
des Standup-Meetings sind vor<br />
allem die Mitglieder des Admin-Teams,<br />
<strong>und</strong> auch für die Projektverantwortlichen<br />
ist es sinnvoll investierte Zeit.<br />
Wie diese Standup-Meetings die kontinuierliche<br />
Verbesserung vorantreiben<br />
<strong>und</strong> allen Beteiligten Gelegenheit geben,<br />
einen Beitrag dazu zu leisten, zeigt auf<br />
sehr anschauliche Weise die im <strong>Co</strong>micstil<br />
illustrierte Geschichte „Ein Tag in<br />
Kanban-Land“ [1].<br />
In den Abbildungen 2 bis 5 ist ein Abschnitt<br />
aus der Geschichte nachgestellt.<br />
Zunächst war alles prima gelaufen. Die<br />
Entwickler hatten Projekt A bereits zur<br />
Auslieferung weitergereicht, <strong>und</strong> Projekt<br />
B wartete auch schon, dass der einzige<br />
Platz in der Auslieferungs-Spalte wieder<br />
frei würde. Normalerweise würde das<br />
freie Entwicklerteam sich jetzt Projekt D<br />
holen, aber ihr WIP-Limit verhindert es<br />
(Abbildung 2).<br />
Macht Kanban hier also die Entwickler<br />
zum Engpass, obwohl sie freie Kapazität<br />
haben? Nein! Die Methode deckt lediglich<br />
den wahren Engpass auf, nämlich die<br />
Auslieferung. Hier stockt der Auftragsfluss<br />
gerade, weil es Probleme mit Projekt<br />
A gibt. Anstatt also über die Admins, die<br />
immer alles aufhalten, zu lästern, investieren<br />
die Entwickler ihre freie Kapazität<br />
effektiver in die Beseitigung der Blockade<br />
(Abbildung 3).<br />
Die Situation verschärft sich, als das<br />
andere Entwicklerteam seine Arbeit an<br />
Projekt C abschließt (Abbildung 4). Die<br />
Freude des Projektmanagers darüber ist<br />
nur von kurzer Dauer, denn anstatt weitere<br />
Aufträge in den Stau schicken zu<br />
dürfen, muss er warten, bis das Problem<br />
aus dem Weg geräumt ist (Abbildung 5).<br />
Spoiler Alert: Projekt A geht schließlich<br />
erfolgreich in Produktion, <strong>und</strong> es werden<br />
von den Beteiligten unmittelbar Maßnahmen<br />
getroffen, um eine Wiederholung<br />
des Problems in Zukunft zu vermeiden.<br />
Dieses Beispiel zeigt anschaulich, wie<br />
die Kanban-Methode den Fokus auf die<br />
Schwachstellen im Auftragsfluss lenkt<br />
<strong>und</strong> alle Beteiligten zwingt, sich mit ihnen<br />
auseinanderzusetzen.<br />
In größeren, unregelmäßigen Abständen<br />
ist dann ein Operations Review sinnvoll,<br />
das, ähnlich der Retrospektive in Scrum,<br />
die kontinuierliche Verbesserung der gesamten<br />
Projektabläufe zum Ziel hat. Deshalb<br />
ist zusätzlich zu den IT-Mitarbeitern<br />
das Management ein unverzichtbarer Teil<br />
des Teilnehmerkreises.<br />
Kanban im Vergleich<br />
Abbildung 3: Die Entwickler helfen bei der Auslieferung, so werden ihre Kapazitäten besser investiert,<br />
nämlich dort, wo es klemmt.<br />
Dass Kanban dem Wasserfall-Modell bei<br />
Weitem überlegen ist, hat es mit den an-<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
77
Know-H ow<br />
Kanban<br />
deren agilen Methoden gemeinsam. Insbesondere<br />
die sich schneller zeigenden<br />
Resultate <strong>und</strong> die weitaus verlässlicheren<br />
Prognosen <strong>und</strong> Zusagen sind Vorteile, die<br />
jeder schnell zu schätzen weiß.<br />
Auch den Vergleich mit Scrum muss die<br />
Kanban-Methode nicht scheuen. Ihre Einführung<br />
ist deutlich einfacher, denn sie<br />
kommt ohne vorgeschriebene Rollen aus<br />
<strong>und</strong> benötigt nur einfachste Mittel – eine<br />
Pinwand genügt. Dass sie, statt Generalisten<br />
zu bevorzugen, eine Spezialisierung<br />
der Beteiligten erlaubt, entspricht deutlich<br />
besser der Realität eines Operation-<br />
Bereichs mit seinen Netzwerk-Admins<br />
<strong>und</strong> DBAs. Dadurch, dass bei Kanban<br />
Iterationen optional (wenn auch zumindest<br />
zu Beginn hilfreich) sowie Planung<br />
<strong>und</strong> Auslieferung unabhängig voneinander<br />
sind, erlaubt die Methode viel Flexibilität.<br />
Es schafft Zufriedenheit auf beiden<br />
Seiten, dass neue Aufträge jederzeit erteilt<br />
werden können, ohne dass sie (dank<br />
WIP-Limits) zu einer Überlastung führen<br />
können. Die Größe der Aufträge ist nicht<br />
vorgeschrieben, <strong>und</strong> auf eine teure Aufwandsschätzung<br />
kann verzichtet werden.<br />
Als einer der wichtigsten Vorteile gegenüber<br />
Scrum gibt der Verzicht der Kanban-<br />
Methode auf Time-Boxing dem Ops-Team<br />
den nötigen Spielraum, seine Kapazität<br />
optimal zu nutzen.<br />
Kanban online<br />
Dass eine Pinwand für den Start mit der<br />
Kanban-Methode genügt, muss ja nicht<br />
heißen, dass man unbedingt so, naja,<br />
vorsintflutlich arbeiten muss – gerade<br />
als ITler! Und der Einsatz digitaler Tools<br />
hilft ja tatsächlich der effizienten Kommunikation,<br />
speziell in größeren oder gar<br />
verteilten Teams. Hier gibt es mittlerweile<br />
ein großes Spektrum an Lösungen. Zum<br />
einen kann man sich natürlich mit allgemeinen<br />
Anwendungen wie einer Tabellenkalkulation<br />
behelfen, es gibt aber<br />
auch spezielle Kanban-Anwendungen,<br />
insbesondere in Form von Web-Applikationen.<br />
Unter diesen zeichnet sich Trello<br />
[3] durch kostenfreie Nutzung <strong>und</strong> stetig<br />
steigenden Funktionsumfang aus. Alternativ<br />
sind unter anderem auch Kanban<br />
Tool [4] <strong>und</strong> Agile Zen [5] einen Blick<br />
wert.<br />
Weiterführende Quellen<br />
Abbildung 5: Sobald die Ursache der Stockung beseitigt ist, geht es überall weiter.<br />
Abbildung 4: Der Stau vor der Auslieferung nimmt noch zu.<br />
Wer sich tiefgreifender mit der Kanban-Methode<br />
für IT auseinandersetzen<br />
möchte, ist natürlich gut beraten, bei ihrem<br />
Erfinder nachzulesen. David J. Andersons<br />
Buch „Kanban: Successful Evolutionary<br />
Change for Your Technology<br />
Business“ gibt es auch in einer deutschen<br />
Übersetzung [6]. Aktuelle Informationen<br />
zur Evolution der Kanban-Methode veröffentlicht<br />
Anderson auf seiner Website<br />
[7]. Eine wachsende Zahl von Anhängern<br />
der Kanban-Methode hat sich unter<br />
dem Motto „YES WE KANBAN“ zur Limited<br />
WIP Society [8] zusammengeschlossen.<br />
Ihre Website liefert ständig neue Informationen<br />
zum Thema <strong>und</strong> lädt zum<br />
Erfahrungsaustausch im Forum ein.<br />
Auch im deutschsprachigen Web finden<br />
sich viele interessante Beiträge zum<br />
Thema, zum Beispiel auf IT-Agile.de [9]<br />
Und wer sich unterwegs im Auto oder<br />
im Zug über Kanban auf dem Laufenden<br />
halten möchte, dem sei der „ITK Podcast“<br />
[10] ans Herz gelegt. (jcb) n<br />
Infos<br />
[1] Ein Tag im Kanban-Land:<br />
[http:// www. it-agile. de/ kanban-comic.<br />
html]<br />
[2] Blog des Autors:<br />
[http:// www. jochen-lillich. de]<br />
[3] Trello: [http:// www. trello. com]<br />
[4] Kanban Tool:<br />
[http:// www. kanbantool. com]<br />
[5] Agile Zen: [http:// www. agilezen. com]<br />
[6] David J. Anderson: „Kanban: Evolutionäres<br />
Change Management für IT-Organisationen“,<br />
dpunkt-Verlag 2011, ISBN-10:<br />
3898647307, 35 Euro<br />
[7] Kanban-Infos:<br />
[http:// agilemanagement. net]<br />
[8] Limited WIP Society:<br />
[http:// www. limitedwipsociety. org]<br />
[9] IT Agile: [http:// www. it-agile. de]<br />
[10] ITK Podcast:<br />
[http:// itkanban. com/ category/ podcast]<br />
Der Autor<br />
Jochen Lillich stieß 1993 auf Linux <strong>und</strong> arbeitete<br />
nach seinem Informatik-Studium zunächst<br />
als Systemadministrator <strong>und</strong> Linux-Trainer. Als<br />
Führungskraft bei WEB.DE <strong>und</strong> 1&1 sammelte er<br />
mehrjährige Erfahrung im Betrieb großer IT-<br />
Infrastrukturen <strong>und</strong> der Leitung von IT-Teams.<br />
2010 gründete er das Unternehmen „freistil IT“,<br />
das nach dem Motto „Ops for Devs“ hochgradig<br />
optimierte IT-Plattformen für Entwickler <strong>und</strong> Anwender<br />
von Open Source Software betreibt. Sein<br />
persönliches Blog trägt den Namen „Associative<br />
Disarray“ [2].<br />
78 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
JETZT<br />
MiT dVd!<br />
MAGAZIN<br />
SondErAkTion<br />
Testen Sie jetzt<br />
3 Ausgaben<br />
für 3 Euro!<br />
Jetzt schnell bestellen:<br />
• Telefon 07131 / 2707 274<br />
• Fax 07131 / 2707 78 601<br />
• E-Mail: abo@linux-magazin.de<br />
• Web: www.linux-magazin.de/probeabo<br />
Mit großem Gewinnspiel unter:<br />
www.linux-magazin.de/probeabo<br />
GEwinnEn SiE...<br />
EinES Von ZEHn „iVori“ SMArTpHonE GAdGETS<br />
Einsendeschluss ist der 15.12.2012<br />
gesponsert von:<br />
.de
KnOw-hOw<br />
btrfs<br />
© tobi, 123RF<br />
Ein Btrfs-Praxis-Check <strong>und</strong> -Workshop<br />
Alles in Butter<br />
seit ende Februar unterstützt suse btrfs offiziell im service Pack 2 seines enterprise server 11. zwei wochen<br />
später folgte Oracle mit btrfs-support im eigenen Linux. es scheint an der zeit, sich mit den möglichkeiten des<br />
jungen Filesystems einmal gründlich auseinanderzusetzen. Andreas Kurz<br />
Btrfs ist noch immer als „experimental“<br />
im Linux-Kernel eingestuft <strong>und</strong> noch<br />
keine der Endk<strong>und</strong>en-Distributionen verwendet<br />
es als bevorzugtes Dateisystem.<br />
Dabei lockt das designierte Standard-<br />
Dateisystem für Linux mit Enterprise-<br />
Funktionen, die man in dieser Art unter<br />
Linux bis dato nicht aus einer Hand bekommen<br />
konnte. Lange Zeit blieb nur<br />
ein neiderfüllter Blick in Richtung ZFS,<br />
das allerdings mit seiner Sun <strong>Co</strong>mmon<br />
Development and Distribution License<br />
(CDDL) so ganz <strong>und</strong> gar nicht kompatibel<br />
mit der GNU General Public License<br />
(GPL) des Linux-Kernels ist.<br />
<strong>Vorschau</strong><br />
Dieser Artikel beginnt mit einer kurzen<br />
Beschreibung der wichtigsten Eigenschaften<br />
<strong>und</strong> Funktionen von Btrfs, gefolgt<br />
von einer Installationsanleitung am<br />
Beispiel einer virtuellen Instanz unter<br />
Ubuntu 12.04. Diesem Ubuntu-System<br />
stehen auch mehrere virtuelle Festplatten<br />
zur Verfügung, auf denen dann erste<br />
Schritte mit Btrfs <strong>und</strong> dem wichtigsten<br />
Administrationswerkzeug demonstriert<br />
werden.<br />
Im Anschluss wird das Root-Dateisystem<br />
des Testsystems von Ext4 nach Btrfs konvertiert<br />
<strong>und</strong> in ein RAID 1 umgewandelt.<br />
Damit kann dann die praktische Anwendung<br />
von Filesystem-Snapshots im Zuge<br />
von Software-Updates mit anschließendem<br />
Rollback der Änderungen vorgeführt<br />
werden.<br />
Enterprise-Features<br />
Btrfs ist ein <strong>Co</strong>py-on-Write-Filesystem<br />
(<strong>Co</strong>W). Während ein Filesystem wie Ext3<br />
Blockänderungen in einem Journal protokolliert,<br />
schreibt Btrfs Änderungen an<br />
einem Block immer an eine neue Stelle<br />
auf dem Datenträger <strong>und</strong> referenziert bei<br />
Erfolg in den Metadaten auf den neuen<br />
Datenblock. Erst danach werden die alten<br />
Daten zum Überschreiben freigegeben,<br />
sofern auf sie nicht mehr anderweitig<br />
verwiesen wird, zum Beispiel durch einen<br />
Snapshot.<br />
Btrfs hat sich auf die Fahnen geschrieben,<br />
nicht nur fortgeschrittene Zusatzfunktionen<br />
zu bieten, sondern in erster<br />
Linie fehlertolerant, leicht administrierbar<br />
<strong>und</strong> im Falle des Falles auch schnell<br />
reparierbar zu sein. Es verwendet für die<br />
Verwaltung von Metadaten <strong>und</strong> Nutzdaten<br />
ausschließlich <strong>Co</strong>W-optimierte binäre<br />
Bäume (B-Trees), mit Ausnahme des Superblocks.<br />
Btrfs speichert auch Prüfsummen<br />
(CRC32C-Hashes) für Daten <strong>und</strong><br />
Metadaten, um stille Datenkorruption<br />
zu erkennen. Darüber hinaus bietet es<br />
Funktionen, die auf hohe Skalierbarkeit<br />
in modernen Datenzentren ausgerichtet<br />
sind. Vor Btrfs waren dafür zusätzliche<br />
Werkzeuge zur Verwaltung von Speicherplatz<br />
(Logical Volume Management)<br />
oder der Erhöhung der Ausfallsicherheit<br />
(RAID) nötig.<br />
80 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
trfs<br />
KnOw-hOw<br />
Die wichtigsten Eigenschaften von Btrfs<br />
(Stand: Kernel Version 3.4) [1] sind:<br />
n Prüfsummen von Metadaten <strong>und</strong> Daten<br />
n Subvolumes (Dateisystem im Dateisystem)<br />
n Beschreibbare Snapshots<br />
n Snapshots von Snapshots<br />
n Filesystem-Klone (beschreibbarer<br />
Snapshot eines Read-Only-Filesystems)<br />
n Datei-Klone<br />
n Transparente Komprimierung<br />
n Integriertes Volume-Management<br />
(kann mehrere Festplatten verwalten)<br />
n Unterstützung der RAID-Level 0, 1<br />
<strong>und</strong> 10<br />
n Umstellung des RAID-Levels im laufenden<br />
Betrieb<br />
n Hintergr<strong>und</strong>prozess zum proaktiven<br />
Aufspüren <strong>und</strong> Beheben von Fehlern<br />
(„scrubbing“)<br />
n Filesystem-Vergrößerung <strong>und</strong> -Verkleinerung<br />
im laufenden Betrieb<br />
n Defragmentierung im laufenden Betrieb<br />
n Werkzeug zur Filesystem-Reparatur<br />
(nicht im laufenden Betrieb verwendbar)<br />
n Verlustlose Konvertierung eines Ext3-<br />
oder Ext4-Dateisystemes (<strong>und</strong> wieder<br />
retour)<br />
Quasi selbstverständlich sind eine dynamische<br />
Anzahl von Inodes, effizientes<br />
Speichern von kleinen Dateien, die Verwendung<br />
von Extends, Access <strong>Co</strong>ntrol<br />
Lists (ACLs) <strong>und</strong> erweiterte Attribute. Ein<br />
Must-have sind auch die Unterstützung<br />
des TRIM-Kommandos <strong>und</strong> spezielle Optimierungen<br />
für SSD-Speicher. Die maximale<br />
Dateisystem- <strong>und</strong> Datei-Größe ist<br />
mit 2 64 Bytes oder 16 Exbi-Bytes (EiB)<br />
großzügig bemessen, <strong>und</strong> mit maximal<br />
2 64 Files pro Filesystem sollte für die<br />
nächsten paar Jahre ausreichend vorgesorgt<br />
sein.<br />
Einstiegshürden<br />
Vor der Verwendung von Btrfs gilt es<br />
herauszufinden, was die empfohlenen<br />
Mindestversionen für den Kernel <strong>und</strong><br />
die dazugehörigen Administrationsprogramme<br />
– die Btrfs-Tools – sind. Eine<br />
Orientierung an den Enterprise-Versionen<br />
der Kernel von SUSE <strong>und</strong> Oracle<br />
ist erfahrungsgemäß nicht ganz einfach,<br />
weil diese maximal einen Ausgangspunkt<br />
markieren, der durch mehr oder weniger<br />
viele Zusatz-Patches in die gewünschte<br />
Form gebracht wird. Sehr hilfreich sind<br />
dabei einerseits das Btrfs-Wiki [1] als<br />
auch die sehr entgegenkommenden Entwickler<br />
im Btrfs-Channel im IRC-Netzwerk<br />
Freenode.<br />
Die Btrfs-Entwickler sähen natürlich am<br />
liebsten, dass der letzte Releasekandidat<br />
des Linux-Kernels getestet wird. Bei<br />
genauerem Nachfragen spricht die Entwicklergemeinde<br />
aber dem Filesystem<br />
ab Kernel Version 3.2 schon sehr hohe<br />
Stabilität zu.<br />
Nicht viel übersichtlicher als die Wahl<br />
der richtigen Version eines Distributionskernels<br />
ist die Wahl der Version der zugehörigen<br />
Administrations-Programme.<br />
Sie ist seit mehr als zwei Jahren bei 0.19<br />
eingefroren. Es existieren verschiedenste<br />
Zwischenversionen mit mehr oder weniger<br />
viel Funktionsumfang. Was als letzte<br />
Rettung bleibt, ist die Orientierung am<br />
Datum im Paketnamen oder der Paket-<br />
beschreibung. Dieses Datum sollte zumindest<br />
dem 28. März 2012 entsprechen,<br />
dem Tag, an dem Chris Mason in seinem<br />
offiziellem Git-Repository [2] auf<br />
»kernel.org« die aktuelle Version getagt<br />
hat. An dieser Version fällt der verheißungsvolle<br />
Git-Tag »dangerdonteveruse«<br />
auf, was wohl auf die Qualität des darin<br />
enthaltenen »btrfsck«-Programms zur<br />
Überprüfung <strong>und</strong> Reparatur von Btrfs-<br />
Dateisystemen hinweisen soll. Das Fehlen<br />
einer zuverlässigen Möglichkeit ein<br />
korruptes Btrfs, mit stark beschädigten<br />
Metadaten wieder herzustellen, war bis<br />
jetzt ein Gr<strong>und</strong> für viele Linux-Distributionen<br />
(allen voran Fedora), mit der<br />
Umstellung des Standard-Filesystems auf<br />
Btrfs zu warten.<br />
Praktischerweise erschien Ende April<br />
die nächste Long-Term-Support-Version<br />
12.04 von Ubuntu, basierend auf der Kernel-Version<br />
3.2. Unverständlicherweise<br />
enthält Ubuntu 12.04 LTS allerdings (zum<br />
Zeitpunkt der Erstellung dieses Artikels)<br />
eine Version des »btrfs-tools«-Paketes die<br />
mittlerweile annähernd zwei Jahre alt ist<br />
(siehe Launchpad Bug #894456 [3]). Der<br />
nahen Verwandtschaft von Ubuntu zu<br />
Debian sei Dank kann man sich des aktuellen<br />
Paketes in Debian Sid bedienen [4],<br />
das dort in der Version »0.19+20120328«<br />
zur Verfügung steht. Derart gerüstet geht<br />
es los mit einer frischen Ubuntu 12.04<br />
LTS Server Standard-Installation als Testsystem,<br />
erweitert um die »btrfs-tools« aus<br />
Debian Sid.<br />
Buttern für Einsteiger<br />
Das Anlegen eines Btrfs-Dateisystems erfordert<br />
erwartungsgemäß nicht viel mehr<br />
Abbildung 1: Ein Blick ins Proc-Filesystem offenbart: Die vier unpartitionierten<br />
Devices »/dev/vdb« bis »/dev/vde« stehen exklusiv für Btrfs zur Verfügung.<br />
Abbildung 2: Ein Dateisystem mit dem Label »TEST« wird angelegt. Das<br />
Multifunktionswerkzeug »btrfs« liefert zusätzliche Informationen über das<br />
neue Btrfs Volume.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
81
KnOw-hOw<br />
btrfs<br />
der Metadaten darstellt, gibt »fi df« einen<br />
genaueren Einblick, wie Btrfs Daten eines<br />
bestimmten Typs allokiert hat. Die<br />
Metadaten werden dabei standardmäßig<br />
immer red<strong>und</strong>ant abgelegt, zur Steigerung<br />
der Fehlertoleranz:<br />
Data: total=16.01GB, used=15.40GB<br />
System, DUP: total=8.00MB, used=4.00KB<br />
Metadata, DUP: total=1.00GB, U<br />
used=79.20MB<br />
Abbildung 3: Das »df«-Kommando liefert nur Informationen, wie viel Platz die Benutzerdaten belegen. Hinter<br />
den Kulissen verbraucht Btrfs deutlich mehr Plattenspeicher.<br />
als unbenutzten Platz auf einer Festplatte<br />
<strong>und</strong> das entsprechende Werkzeug »mkfs.<br />
Btrfs«. Um später auch das integrierte<br />
Volume-Management von Btrfs zu testen,<br />
stehen dieser virtuellen Ubuntu-Instanz<br />
noch vier Extra-Devices mit jeweils 32<br />
GiB zur Verfügung (siehe Abbildung 1).<br />
Ein Filesystem mit dem Label »TEST«<br />
wird durch das Kommando »mkfs.btrfs<br />
-L TEST /dev/vdb« erzeugt.<br />
Filesystem anlegen<br />
Das Anlegen eine Btrfs-Filesystems ist<br />
praktisch augenblicklich erledigt, da nur<br />
wenige Metadaten geschrieben werden<br />
müssen. Ein zeitraubendes Erzeugen<br />
von Inode-Tabellen ist nicht notwendig.<br />
Mit dem Universal-Werkzeug »btrfs« bekommt<br />
man auch sofort nähere Informationen<br />
zum frisch erstellten Btrfs-Volume<br />
(Abbildung 2). Dieses Kommandozeilen-<br />
Programm ist das zentrale Werkzeug, um<br />
verschiedenste administrative Tätigkeiten<br />
an Btrfs-Dateisystemen durchzuführen.<br />
In diesem Beispiel wird das Btrfs-Volume<br />
über das Label identifiziert, es kann aber<br />
auch genauso gut über den Devicenamen<br />
der Festplatte angesprochen werden<br />
(»/dev/vdb«).<br />
Ohne weitere Angaben listet das Kommando<br />
alle dem Kernel gerade bekannten<br />
Btrfs-Dateisysteme auf. Es sei auch erwähnt,<br />
dass »mkfs.btrfs« nicht überprüft,<br />
ob denn vielleicht schon ein Btrfs- geschweige<br />
denn irgendein anderes Dateisystem,<br />
eine LVM-Signatur oder Ähnliches<br />
auf der Festplatte vorhanden ist.<br />
Das frisch angelegte Filesystem kann jetzt<br />
ganz klassisch gemountet werden:<br />
mount /dev/vdb /mnt<br />
Ein Mounten mithilfe der UUID oder<br />
des Filesystem-Labels ist natürlich auch<br />
möglich, man weiß ja nie, wann sich<br />
die Reihenfolge oder Bezeichnung der<br />
Festplatten ändert.<br />
Zeit, das frische Btrfs mit Daten zu befüllen.<br />
Mithilfe eines lokalen »rsync -a /usr<br />
/mnt« <strong>und</strong> »dd« bevölkern auch schnell<br />
ein paar Dateien in GByte-Größe das Volume.<br />
Ein anschließend ausgeführtes »df<br />
-h /mnt« zeigt erwartungsgemäß einen<br />
entsprechenden Füllgrad von etwa 50<br />
Prozent oder 16 GByte an. Intern verbraucht<br />
Btrfs aber in Wirklichkeit mehr<br />
Platz für die Verwaltung seiner wachsenden<br />
Metadaten (siehe Abbildung 3).<br />
Wie viel Platz ist frei?<br />
Das Werkzeug »btrfs« liefert genauere Informationen<br />
über den tatsächlichen Gesamtverbrauch<br />
des Filesystems. Solange<br />
die an »btrfs« übergebenen Kommandos<br />
eindeutig sind, können sie abgekürzt<br />
werden (siehe Abbildung 3).<br />
Das Ergebnis dieser Kommandos zeigt,<br />
wie viel an Plattenplatz zugewiesen ist,<br />
<strong>und</strong> was davon von Metadaten <strong>und</strong> Nutzdaten<br />
in Anspruch genommen werden<br />
kann. Auch der effektive Grad der Benutzung<br />
ist ablesbar. Während »fi show«<br />
den Gesamtverbrauch der Benutzer- <strong>und</strong><br />
Hat Btrfs beim Anlegen des Dateisytems<br />
nur ein Device zur Verfügung, erzeugt<br />
es automatisch ein Duplikat der Metadaten<br />
an einer anderen Stelle auf der Festplatte,<br />
hier durch DUP in der Ausgabe<br />
von »fi df«gekennzeichnet. Werden bei<br />
der Erstellung des Dateisystems mehrere<br />
Blockgeräte angegeben, dann wird für<br />
Metadaten RAID 1 verwendet <strong>und</strong> RAID 0<br />
für Daten. Sowohl für Metadaten als auch<br />
Daten kann aus verschiedenen Profilen<br />
gewählt werden:<br />
n single<br />
n RAID 0<br />
n RAID 1<br />
n RAID 10<br />
Dabei werden für RAID 0 <strong>und</strong> RAID 1 zumindest<br />
zwei Blockgeräte <strong>und</strong> für RAID<br />
10 wenigstens vier Blockgeräte benötigt.<br />
Mit den Schaltern »-m Profil« für Metadaten<br />
<strong>und</strong> »-d Profil« für Daten kann beim<br />
Ausführen von »mkfs.btrfs« detailliert gesteuert<br />
werden, wie das neue Dateisystem<br />
anzulegen ist. Die Stripe-Größe für<br />
ein RAID 0 <strong>und</strong> auch RAID 10 ist auf 64<br />
KByte fixiert <strong>und</strong> wird in absehbarer Zeit<br />
wohl auch nicht veränderbar werden.<br />
Voraussichtlich mit Kernel 3.6 kommen<br />
die lange erwarteten Profile für RAID 5<br />
<strong>und</strong> RAID 6.<br />
Chunks<br />
Für eine regelmäßige Kontrolle der<br />
Checksumme auf allen Datenträgern im<br />
RAID kann ein »btrfs scrub start Path |<br />
Device« als Cron-Job eingesetzt werden.<br />
Im laufenden Betrieb werden bei einem<br />
Lese- oder Checksummen-Fehler die Daten<br />
automatisch von einer anderen Kopie<br />
gelesen <strong>und</strong> bei RAID 1 <strong>und</strong> RAID 10 die<br />
fehlerhafte Replika neu angelegt.<br />
Btrfs reserviert Speicherplatz für Daten<br />
<strong>und</strong> Metadaten in fixen Einheiten, »Block<br />
Groups« genannt. Block Groups wiederum<br />
bestehen aus einem oder mehreren<br />
82 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
trfs<br />
KnOw-hOw<br />
»Chunks« (je nach RAID-Level). Diese<br />
Chunks sind für Daten meistens 1 GByte<br />
<strong>und</strong> für Metadaten 256 MByte groß. Eine<br />
Ausnahme bilden die ersten Metadaten-<br />
Chunks, die von »mkfs.btrfs« mit 1 GByte<br />
angelegt werden, genug Platz vorausgesetzt.<br />
Bei Blockgeräten mit wenigen<br />
GByte Größe kommen auch Zwischengrößen<br />
zum Zug..<br />
Jetzt erklärt sich auch, warum in dem<br />
zuvor angelegten Filesystem insgesamt<br />
18 GByte an Festplattenplatz bereits zugewiesen<br />
sind: 16 x 1 GByte Benutzerdaten,<br />
2 x 1 GByte Metadaten (weil doppelt<br />
abgelegt) <strong>und</strong> ein kleiner Teil für die speziellen<br />
System Chunks (dort befindet sich<br />
der B-Tree, der alle Chunks verwaltet).<br />
Bei Filesystemen unter 1 GByte verwendet<br />
Btrfs automatisch spezielle Mixed<br />
Chunks, die sowohl Benutzerdaten als<br />
auch Metadaten beinhalten, um den geringen<br />
Platz besser auszunutzen.<br />
Die Metadaten belegen auf diesem Dateisystem<br />
zwar noch keine 80 MByte, aber<br />
es wurde auch noch nicht wirklich produktiv<br />
genutzt. Sind Chunks einmal einem<br />
Datentyp zugewiesen, werden diese<br />
(bis jetzt) auch nicht mehr automatisch<br />
freigegeben, wenn sie nicht mehr benötigt<br />
werden. Das kann dazu führen, dass<br />
ein Filesystem, das laut »df -h« noch über<br />
ausreichend Reserven verfügt, beim Anlegen<br />
neuer Daten früher als erwartet<br />
mit einer Fehlermeldung antwortet, dass<br />
kein Platz mehr frei ist – außer in den<br />
Metadaten-Bereichen. Das sind dann die<br />
berüchtigten »ENOSPC«-Fehler, über die<br />
viele Btrfs-Benutzer berichten, vor allem,<br />
weil sie in der Vergangenheit auch noch<br />
viel häufiger zu Unrecht ausgeworfen<br />
wurden. Bei Btrfs ist immer ein Blick auf<br />
die Ausgaben von »btrfs fi show« <strong>und</strong><br />
»btrfs fi df mountpoint« notwendig, um<br />
den verbrauchten aber auch potenziell<br />
noch freien Platz in einem Dateisystem<br />
herauszufinden. Das gute alte »df -h« hat<br />
bei Btrfs nur begrenzte Aussagekraft, speziell<br />
wenn es um verlässliche Aussagen<br />
zu dem noch verfügbaren Platz geht.<br />
Platz da!<br />
Sollte es aus Platzgründen notwendig<br />
sein, Chunks wiederzuverwerten, bleibt<br />
nur der Ausweg, ein »btrfs balance« zu<br />
starten. Wie viel Platz dadurch zurückgewonnen<br />
werden kann, ist im Vorhinein<br />
leider nicht ermittelbar, <strong>und</strong> es gibt auch<br />
keine Möglichkeit eines Simulations-Laufes.<br />
Immerhin kann dieses Kommando im<br />
laufenden Betrieb auf ein Dateisystem angewendet<br />
werden (siehe Abbildung 4):<br />
Btrfs balance start /mnt &<br />
So ein Balance-Lauf dauert je nach Füllgrad<br />
des Dateisystems <strong>und</strong> der Leistung<br />
des Systems entsprechend lang. Alle Daten<br />
werden einmal komplett gelesen <strong>und</strong><br />
in neue Chunks geschrieben. Das bedeutet<br />
auch, dass für ein erfolgreiches Balance<br />
noch etwas Platz frei sein muss, zumindest<br />
so viel, um die erste ausgewählte<br />
Block Group kopieren zu können inklusive<br />
dem Platz, den die Metadaten, die<br />
während des <strong>Co</strong>W-Prozesses anfallen,<br />
benötigen.<br />
Nur mit aktuellem Kernel<br />
Stört die Last eines im Hintergr<strong>und</strong> laufendes<br />
»balance« zu sehr, lässt es sich<br />
abbrechen, für dieses Beispiel wäre ein<br />
»btrfs balance stop /mnt« zu verwenden.<br />
Es stellt sich heraus, dass alle Kommandos<br />
für »balance« außer »start« in Ubuntu<br />
12.04 einen Fehler erzeugen. Um das zu<br />
beheben, müsste ein aktuellerer Kernel<br />
her. Neuere Kernel ab der Version 3.3 erlauben<br />
es dann auch, ein »balance« temporär<br />
anzuhalten <strong>und</strong> zu einem späteren<br />
Zeitpunkt wieder fortzusetzen oder auch,<br />
den aktuellen Fortschritt des Prozesses<br />
anzuzeigen. Ebenso ist ein unfreiwilliger<br />
Abbruch eines Balance-Vorganges,<br />
etwa durch einen Stromausfall, nicht kritisch,<br />
<strong>und</strong> die Aktion wird beim nächsten<br />
Mount des Dateisystems automatisch<br />
fortgeführt (ab Kernel 3.3 verhindert das<br />
die Mount-Option »skip_balance«). Im<br />
G Abbildung 5: Ein neues Subvolume mit dem Namen »subvol_test« wird<br />
angelegt. Ein »btrfs sub list« zeigt die ID, den Namen <strong>und</strong> die ID des zugehörigen<br />
Top-Level Volumes an. Eigentlich sollte 256 die erste verwendete ID sein, warum<br />
Btrfs hier 276 wählt, ist unklar.<br />
F Abbildung 4: Balance kann nicht benötigte aber zugewiesene Chunks wieder<br />
freimachen. Ein »btrfs fi df« <strong>und</strong> ein »btrfs fi show« vor <strong>und</strong> nach dem Balance<br />
zeigen, dass die Metadaten Chunkgröße auf 256 MByte reduziert wurden <strong>und</strong><br />
somit wieder 1,5 GByte (2 x 750MByte) mehr frei verfügbar sind.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
83
KnOw-hOw<br />
btrfs<br />
praktischen Betrieb von Btrfs wird bei<br />
der Dimensionierung eines neuen Dateisystems<br />
der zusätzliche Platzbedarf für<br />
Metadaten Fall einkalkuliert werden müssen.<br />
Mit wie viel zu rechnen ist, wird<br />
wohl nur die Erfahrung zeigen können.<br />
Bekannt ist: Besonders hungrig auf Metadaten<br />
erweisen sich viele kleine Dateien,<br />
weil diese Daten direkt in den Metadaten-<br />
Bereichen abgelegt werden (auch leere<br />
Dateien). Außerdem sind Snapshots in<br />
dieser Hinsicht sehr anspruchsvoll.<br />
Dateisystem im<br />
Dateisystem<br />
Für das Management von Speicherplatz<br />
auf modernen Linux-Systemen ist LVM<br />
fixer Bestandteil im Portfolio vieler Systembetreuer<br />
geworden. Soll ein Unterverzeichnis<br />
in ein eigenes Dateisystem<br />
ausgelagert werden, sei es aus Sicherheits-<br />
oder aus rein organisatorischen<br />
Gründen, wird mit LVM ein eigenes<br />
Logical Volume erzeugt <strong>und</strong> darauf ein<br />
neues Dateisystem angelegt. Einen recht<br />
ähnlichen Mechanismus bietet Btrfs in<br />
der Form von »Subvolumes«, mit dem<br />
Unterschied: Hier entfällt das gesonderte<br />
Anlegen eines neuen Dateisystems.<br />
Ein Subvolume verhält sich praktisch wie<br />
ein Verzeichnis. Es besitzt einen Namen<br />
<strong>und</strong> befindet sich irgendwo in einem<br />
schon bestehenden Pfad auf einem bereits<br />
bestehenden Volume.<br />
Zum Start enthält jedes neue Btrfs-Dateisystem<br />
genau ein Subvolume, das sogenannte<br />
»Top-Level-Volume« mit der fixen<br />
Subvolume-ID 5. Dieses spezielle Subvolume<br />
wird auch standardmäßig beim Einhängen<br />
dieses Dateisystems verwendet.<br />
Praktisch verhält sich ein Subvolume wie<br />
ein vollwertiges eigenes Btrfs-Dateisystem,<br />
das sich aber seine Metadaten mit<br />
dem Top-Level-Volume teilt. Subvolumes<br />
können fast beliebig viele angelegt werden,<br />
das theoretische Limit liegt bei 2 64<br />
256 Subvolumes pro Btrfs-Dateisystem.<br />
Mit der Kommando-Gruppe »btrfs subvolume«<br />
können Subvolumes angelegt,<br />
gelöscht <strong>und</strong> aufgelistet werden. Sie sind<br />
auch an beliebiger Stelle im Verzeichnisbaum<br />
einzuhängen <strong>und</strong> können verschiedene<br />
Mount-Parameter verwenden (alle<br />
generischen <strong>und</strong> subvol,subvolid) (siehe<br />
Abbildung 5):<br />
btrfs subvolume create /mnt/subvol_test<br />
btrfs sub list /mnt<br />
mkdir /mnt2 && mount -t Btrfs U<br />
-o subvol=subvol_test /dev/vdb /mnt2<br />
Die Ausgabe von »df -h« errinnert an<br />
Bind-Mounts. Dementsprechend besteht<br />
ein Weg, herauszufinden, welches Subvolume<br />
an welcher Stelle eingehängt ist,<br />
auch darin, einen Blick in »/proc/ self/<br />
mountinfo« zu werfen (siehe Abbildung<br />
6). Ein Subvolume, das sich nicht auf<br />
oberster Ebene seines Eltern-Volumens<br />
befindet, muss über seine ID mittels der<br />
Mount-Option »subvolid=ID« eingehängt<br />
werden. Dabei ist ein nicht unwichtiges<br />
Detail: Für das Anlegen von Subvolumes<br />
reichen normale Benutzerrechte. Mittels<br />
einer speziellen Btrfs-Mount-Option des<br />
Eltern-Subvolumes ist auch das Löschen<br />
des Subvolumes erlaubt.<br />
Wer unter LVM Logical Volumes zur Begrenzung<br />
des maximalen Platzverbrauches<br />
eines bestimmten Bereiches in der<br />
Ordnerstruktur eingesetzt hat, wird mit<br />
Btrfs noch länger keine Freude haben:<br />
Es gibt noch keine<br />
Möglichkeit, die<br />
maximale Größe<br />
eines Subvolumes<br />
festzulegen. Wann<br />
die sogenannten<br />
Subvolume<br />
Quota Gruppen<br />
(QGroups) verfügbar sein werden, ist<br />
noch offen, die entsprechenden Patches<br />
existieren bereits.<br />
Individuelle Snapshots von Teilen eines<br />
Dateisystems sind wohl einer der Hauptgründe<br />
für den Einsatz von Subvolumes.<br />
Dabei handelt es sich bei Snapshots um<br />
zum Zeitpunkt der Erstellung eingefrorene<br />
Abbilder eines Subvolumes, wie man<br />
sie schon vom LVM kennt. Im Gegensatz<br />
zu normalen Subvolumes sind Snapshots<br />
also nicht leere Ordner, sondern mit den<br />
Daten des Quell-Subvolumes zum Zeitpunkt<br />
der Snapshot-Erzeugung befüllt.<br />
Dabei handelt es sich zu Beginn der Existenz<br />
eines Snapshots fast ausschließlich<br />
um Referenzen auf die Daten-Blöcke des<br />
Quell-Subvolumes.<br />
Snapshots mal anders<br />
Das Besondere an Btrfs-Snapshots ist,<br />
dass sie quasi umsonst mitgeliefert werden<br />
<strong>und</strong> dadurch sehr effizient sind.<br />
Snapshots in Btrfs verbrauchen auch<br />
zu Beginn ihres Lebens keinerlei Platz,<br />
es muss nicht wie bei LVM-Snapshots<br />
ein bestimmter Teil der Festplatte gleich<br />
zugewiesen werden. Dementsprechend<br />
können Btrfs-Snapshots auch nicht überlaufen,<br />
weil zur Erstellung zu wenig<br />
vorallokiert <strong>und</strong> zu spät an ein Vergrößern<br />
gedacht wurde. Diese Filesystem<br />
Snapshots eröffnen ein weites Spektrum<br />
an Anwendungsmöglichkeiten, da im Gegensatz<br />
zu LVM-Snapshots keine (teils<br />
dramatischen) Geschwindigkeitseinbu-<br />
G Abbildung 6: Ein »grep« nach »btrfs« in »/proc/self/mountinfo« zeigt direkt,<br />
welche Subvolumes wo eingehängt sind.<br />
E Abbildung 7: Ein Snapshot des Top-Level Volumes wird erzeugt <strong>und</strong> eine 3<br />
GByte große Datei in ein Subvolume verschoben. Das ändert die Sicht der Dinge<br />
für »du« <strong>und</strong> »df« auf unterschiedliche Weise.<br />
84 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
trfs<br />
KnOw-hOw<br />
Welchen Namen ein Snapshot bekommt,<br />
ist prinzipiell frei wählbar, ein aussagekräftiges<br />
Namensschema aber sehr<br />
empfehlenswert. Man erkennt mit dem<br />
extra Schalter »-p« für »btrfs subvolume<br />
list« das Parent-Subvolume, von dem ein<br />
Subvolume abstammt. Es ist aber nicht<br />
möglich, einen Snapshot von einem Subvolume<br />
zu unterscheiden, <strong>und</strong> es ist auch<br />
nicht direkt erkennbar, wann der Snapshot<br />
erstellt wurde. Dass es möglich ist, auch<br />
Snapshots von Snapshots beliebiger Tiefe<br />
zu machen, vereinfacht das Ganze nicht<br />
wirklich, sie stammen nämlich alle vom<br />
selben Eltern-Volume ab. Hier gibt es<br />
noch Aufholbedarf hinsichtlich einfacherer<br />
Administration. Genug Platz für das<br />
Speichern der Deltas zwischen den Subßen<br />
bei der Verwendung von<br />
vielen Snapshots zu erwarten<br />
sind. Eine Limitierung der<br />
Anzahl an Snapshots gibt es<br />
wie bei Subvolumes praktisch<br />
nicht.<br />
Wie die nahe Verwandtschaft<br />
mit Subvolumes erahnen lässt,<br />
sind Snapshots auch über dieselbe<br />
Kommando-Gruppe zu<br />
erstellen. Folgendes Beispiel<br />
legt einen neuen Snapshot<br />
des Top-Level Volumes an<br />
<strong>und</strong> verschiebt anschließend<br />
eine Datei aus dem Top-Level<br />
in das zuvor erzeugte Subvolume.<br />
Der Snapshot konserviert<br />
wie gewünscht den Datenstand<br />
zum Zeitpunkt seiner Erstellung. Wie<br />
auf jedes andere Subvolume kann auf<br />
einen Snapshot direkt über den Verzeichnisnamen<br />
zugegriffen werden, ihn extra<br />
einzuhängen, ist nicht notwendig (siehe<br />
Abbildung 7).<br />
Snapshots verwenden<br />
Nach dem Verschieben einer 3 GByte<br />
großen Datei in ein Subvolume zeigt ein<br />
»du« des Top-Level Volumes wie erwartet<br />
nur mehr 13 GByte statt 16 GByte an. Der<br />
Snapshot weist noch immer die 16 GByte<br />
aus <strong>und</strong> das Subvolume »subvol_test«<br />
nur 3 GByte. Ein »df« weist auf die 3<br />
GByte extra Bedarf des Snapshots hin.<br />
Abbildung 8: Ein Filesystemcheck gefolgt von der Konvertierung des<br />
Dateisystems von Ext4 nach Btrfs. Kurz <strong>und</strong> schmerzlos, zumindest bei einem<br />
nur wenig befüllten Dateisystem.<br />
volumes vorausgesetzt kann<br />
beispielsweise ganz einfach<br />
mittels Cron-Job stündlich<br />
ein Snapshot eines Subvolumes<br />
(etwa des Home-Verzeichnisses)<br />
erstellt <strong>und</strong> alte<br />
Snapshots automatisch gelöscht<br />
werden. Auf Wunsch<br />
können Snapshots auch nur<br />
read-only, rein für Backup-<br />
Zwecke erzeugt werden. Ein<br />
Backup des Dateisystems auf<br />
unabhängige Datenträger ersetzen<br />
Snapshots aber nicht.<br />
Sie sind an das Top-Level-<br />
Subvolume <strong>und</strong> damit an dieselben<br />
Festplatten geb<strong>und</strong>en.<br />
Da Snapshots nicht rekursiv sind, kann<br />
ganz gezielt für Unterverzeichnisse mit<br />
stark variablen Inhalten – zum Beispiel<br />
ein »/var/ log«- oder ein »/var/ spool«-Verzeichnis<br />
– ein eigenes Subvolume erzeugt<br />
werden, um es von einem Snapshot eines<br />
darüber liegenden Verzeichnisses auszunehmen.<br />
Das kann viel Platz während<br />
der Lebenszeit eines Snapshots sparen.<br />
Hardlinks begrenzt<br />
Wer im Zuge von Backups Lösungen einsetzt,<br />
die massiv auf den Gebrauch von<br />
Hardlinks setzen, sollte eine Eigenheit<br />
von Btrfs im Hinterkopf haben. Es ist nur<br />
eine sehr kleine, begrenzte Anzahl an<br />
Hardlinks auf ein <strong>und</strong> dieselbe Datei in-<br />
Linux-<strong>Magazin</strong><br />
ACADEMY<br />
Online-Training<br />
IT-Sicherheit Gr<strong>und</strong>lagen<br />
mit Tobias Eggendorfer<br />
Themen (Auszug):<br />
❚ physikalische Sicherheit<br />
❚ Sicherheitskonzepte<br />
❚ Sicherheitsprüfung<br />
❚ logische Sicherheit<br />
• Betriebssystem<br />
• Netzwerk<br />
20%<br />
Treue-Rabatt für<br />
Abonnenten<br />
Deckt in Teilbereichen auch das Prüfungswissen für LPIC-303-Inhalte ab.<br />
Inklusive Benutzer- <strong>und</strong> Rechteverwaltung, Authentifizierung,<br />
ACLs sowie wichtige Netzwerkprotokolle <strong>und</strong> mehr!<br />
Das Gr<strong>und</strong>lagentraining für IT-Sicherheit richtet sich an Systemadministratoren <strong>und</strong> solche, die es<br />
werden wollen ebenso wie an ambitionierte Heimanwender. Nur 299 E inkl. 19 % MwSt.<br />
@Kirsty Pargeter, 123RF<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
Informationen <strong>und</strong> Anmeldung unter: academy.linux-magazin.de/sicherheit<br />
85
KnOw-hOw<br />
btrfs<br />
nerhalb eines Verzeichnisses erlaubt. Die<br />
Release Notes zum Suse Linux Enterprise<br />
Server 11 SP2 sprechen von etwa 150 erlaubten<br />
Hardlinks im praktischen Betrieb<br />
[7]. Auch hierfür sind für die Zukunft<br />
deutliche Verbesserungen zu erwarten.<br />
Wer auf einen vollen Snapshot eines<br />
Subvolumes verzichten kann <strong>und</strong> nur<br />
Snapshots einzelner Dateien benötigt,<br />
dem kann Btrfs auch helfen. Platzschonende<br />
<strong>Co</strong>W-Klone von Dateien werden<br />
mithilfe von »cp --reflink SOURCE DEST«<br />
erzeugt. Eine praktische Methode, um<br />
beispielsweise eine Image-Datei einer virtuellen<br />
Maschine zu klonen.<br />
Rolle rückwärts<br />
Für diese einfache, flexible <strong>und</strong> vor allem<br />
günstige Art Snapshots zu erzeugen<br />
hat sich auch schon ein Einsatzbereich<br />
herauskristallisiert, der Systemupdates<br />
den Schrecken nimmt: ein komplettes<br />
Rollback nach Paketinstallationen. Unter<br />
Open Suse <strong>und</strong> für den Suse Enterprise<br />
Server gibt es zu diesem Zweck »Snapper«<br />
[5], aktuelle Fedora- <strong>und</strong> Oracle-<br />
Linux-Versionen liefern das Yum-Plugin<br />
»yum-plugin-fs-snapshot« mit Btrfs-Support,<br />
für aktuelle Debian <strong>und</strong> Ubuntu<br />
Distributionen steht »apt-btrfs-snapshot«<br />
als Plugin für »apt« zur Verfügung.<br />
Alle diese Programme erzeugen vor der<br />
Installation von neuen Paketen über<br />
Hooks in den jeweiligen Paketmanagern<br />
einen Snapshot der Subvolumes, auf denen<br />
das System installiert ist, bevor neue<br />
Pakete oder Updates installiert werden.<br />
Das erlaubt nach einem fehlgeschlagenen<br />
Update einen schnellen Rückschritt auf<br />
eine vor dem Update noch funktionierende<br />
System-Konfiguration. Hierbei ist<br />
es ganz egal, ob es sich um ein manuelles<br />
Ausführen des Paket-Managers oder<br />
ein automatisches Update via Cron-Job<br />
handelt, das regelmäßig aktuelle Security<br />
Fixes über Nacht einspielt.<br />
Dafür muss natürlich das Betriebssystem<br />
auf Btrfs installiert sein, oder man benutzt<br />
das Programm »btrfs-convert«, um<br />
bestehende Ext3- oder Ext4-Dateisysteme<br />
auf Btrfs zu konvertieren. Diese Variante<br />
des Umstiegs beinhaltet sogar die Option<br />
wieder auf das Original-Dateisystem<br />
zurückzuwechseln. Die einzige Voraussetzung<br />
für diese Konvertierung ist: ausreichend<br />
freier Platz im ursprünglichen<br />
Dateisystem, um sowohl die Daten des<br />
alten als auch die Kopie davon im neuen<br />
Btrfs-System abzulegen.<br />
Btrfs sichert während dieses Vorganges<br />
das erste MByte am Beginn des Devices<br />
an eine alternative Position, baut seine<br />
eigenen Metadaten auf <strong>und</strong> referenziert<br />
auf die Datenblöcke des Ext3/ 4-Dateisystemes.<br />
Am Ende existiert ein Snapshot<br />
der ursprünglichen Daten. Neue Metadaten<br />
<strong>und</strong> Daten werden von Btrfs an freie<br />
Stellen auf der Festplatte geschrieben,<br />
sodass keine Blöcke des ursprünglichen<br />
Dateisystems verloren gehen. Solange der<br />
Snapshot des originalen Ext3/ 4-Dateisystems<br />
vorhanden<br />
ist, ist eine Reversion<br />
möglich.<br />
Allerdings verliert man dabei alle Änderungen<br />
seit der Konvertierung. Mit Grub<br />
2.0 (seit 1.99-rc2) kann auch von einem<br />
Btrfs-Dateisystem gebootet werden, es<br />
ist keine extra Partition für »/ boot« mit<br />
einem alternativen Dateisystem notwendig.<br />
Kurz <strong>und</strong> schmerzlos<br />
Eine erfolgreiche Konvertierung des<br />
Root-Dateisystems beginnt mit einem<br />
Reboot in eine Rettungsumgebung, wie<br />
sie beispielsweise auf einer Ubuntu Installations-CD<br />
zu finden ist. Dort fehlt<br />
jedoch das Kommando »btrfs-convert«.<br />
Daher sollte man es vor dem Reboot des<br />
Systems nach »/boot« kopieren, das ja<br />
üblicherweise eine eigene Partition ist.<br />
Durch eine Änderung des Eintrages für<br />
das Root-Dateisystem in »/etc/fstab« von<br />
»ext4« nach »btrfs« steht einem erfolgreichem<br />
Restart nur noch die erfolgreiche<br />
Konvertierung im Wege. Einmal in die<br />
Rettungsumgebung gestartet, kann statt<br />
des Root-Dateisystems die Boot-Partition<br />
eingehängt werden, um an das Konvertierungstool<br />
zu gelangen. Dann folgt ein<br />
»fsck« des ursprünglichen Dateisystems<br />
gefolgt von der Konvertierung <strong>und</strong> einem<br />
Neustart in das konvertierte System<br />
(siehe Abbildung 8).<br />
Nach dem Start des Systems sieht das<br />
frisch konvertierte Btrfs als Root-Dateisystem<br />
oberflächlich betrachtet recht unverdächtig<br />
aus, bei genauerem Hinsehen<br />
stellt sich aber heraus, dass hier einiges<br />
passiert ist (siehe Abbildung 9). Auffallend<br />
an diesem konvertierten Datei-<br />
Abbildung 9: Das von Ext4 konvertierte Btrfs benötigt hier fast so viel Platz für<br />
Metadaten wie für Daten. Außerdem ist schon die komplette Platte zugewiesen.<br />
Das Ext4-Dateisystem ist als Image Datei verfügbar.<br />
Abbildung 10: Das Hinzufügen von zusätzlichen Blockgeräten verteilt noch<br />
keine bestehenden Daten neu. Die Platz der hinzugefügten Festplatte ist aber<br />
unmittelbar verfügbar.<br />
86 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
30. <strong>und</strong> 31. Oktober 2012<br />
<strong>Co</strong>ngress Frankfurt<br />
Wer powert Ihre Cloud?<br />
Durch die Teilnahme an SNW Europe, Datacenter Technologies <strong>und</strong> Virtualization World<br />
können Sie herausfinden, welche Produkte, Technologien <strong>und</strong> Serviceleistungen die derzeitig<br />
verfügbaren Public <strong>und</strong> Private Cloud Lösungen powern. Diese werden Ihnen durch das<br />
Branchenwissen verschiedener Verbände, unabhängiger Analysten <strong>und</strong> Kommentatoren<br />
sowie Ihrer eigenen IT Kollegen aus ganz Europa vermittelt. Es gibt keinen besseren Ort <strong>und</strong><br />
Zeitpunkt, um sich auf die zukünftigen Anforderungen Ihrer IT im Unternehmen vorzubereiten.<br />
“Cloud allows IT to return to innovating for the business”<br />
William Fellows, VP Research EMEA, the 451 Group<br />
Sparen Sie 120€ Eintrittsgebühr!<br />
Kostenloser Eintritt mit<br />
Promocode: P24M12 auf<br />
www.poweringthecloud.com<br />
Platin <strong>und</strong> Gold Sponsoren<br />
Die Eigentumsrechte an SNW Europe liegen bei<br />
SNIA <strong>und</strong> <strong>Co</strong>mputerworld. Die Eigentumsrechte<br />
an Datacenter Technologies <strong>und</strong> Virtualization<br />
World liegen bei SNIA Europe <strong>und</strong> Angel Business<br />
<strong>Co</strong>mmunications. Alle drei Konferenzen werden<br />
von Angel Business <strong>Co</strong>mmunications Ltd organisiert<br />
<strong>und</strong> von SNIA Europe unterstützt.<br />
Sponsoring Möglichkeiten - Bitte kontaktieren<br />
Sie Carly Stephens:<br />
T: +44 (0)1923 690 223<br />
E: carly.stephens@angelbc.com
KnOw-hOw<br />
btrfs<br />
G Abbildung 12: Ein erneutes Balance, diesmal nur der Metadaten, gewinnt 7<br />
GByte der 9 GByte zur allgemeinen Verwendung zurück — pro Blockgerät.<br />
F Abbildung 11: Das Ausbalancieren inklusive der Konvertierung in ein RAID 1<br />
erledigt ein einziger Befehl. Nachher zeigt sich eine gleichmäßige Verteilung <strong>und</strong><br />
auch eine Verbesserung beim Platzverbrauch.<br />
Metadaten unterschiedlich sein kann,<br />
wird die mögliche Gesamtkapazität bei<br />
unterschiedlicher Festplattengröße dann<br />
variieren. Wie in Abbildung 10 zu erkennen,<br />
ist auf der gerade hinzugefügten<br />
Festplatte noch kein Platz zugewiesen.<br />
Das vergrößerte Dateisystem könnte<br />
jetzt schon verwendet werden. Um die<br />
Daten <strong>und</strong> Metadaten auf alle Blockgeräte<br />
gleichmäßig zu verteilen, ist aber<br />
ein Rebalance empfehlenswert. Der Vollständigkeit<br />
halber sei hier auch erwähnt,<br />
dass Btrfs auch auf einem LVM Logical<br />
Volume oder einem Linux Software-RAID<br />
installiert werden kann. Speziell beim<br />
Umgang mit Logical Volumes darf natürlich<br />
die einfache Möglichkeit des Online-<br />
Vergrößerns <strong>und</strong> auch Online-Verkleinerns<br />
nicht fehlen. Das gelingt mithilfe<br />
von »btrfs filesystem resize«.<br />
Seit Kernel 3.3 kann ein Rebalance auch<br />
den RAID-Level der Daten <strong>und</strong>/ oder Metadaten<br />
eines schon bestehenden Volumes<br />
ändern. Um auch diese neuen Funktionen<br />
auszutesten <strong>und</strong> auch zahlreiche<br />
Verbesserungen bei der Geschwindigkeit<br />
<strong>und</strong> Fehlerbehandlung nutzen zu können,<br />
werden die weiteren Tests in diesem<br />
Artikel mit einem 3.4er Kernel aus dem<br />
Mainline-Kernel-Archiv [6] von Ubuntu<br />
durchgeführt.<br />
Eine gleichmäßige Verteilung der Daten<br />
<strong>und</strong> Metadaten bedeutet in diesem Fall<br />
eine Duplizierung, um Red<strong>und</strong>anz durch<br />
RAID 1 zu erreichen. Zu diesem Zweck<br />
müssen auch alle Daten bewegt werden.<br />
Seit Kernel 3.3 kann festgelegt werden,<br />
ob nur mehr bestimmte Teile des Dateisystem<br />
ist auch die fehlende Metadaten-<br />
Red<strong>und</strong>anz.<br />
Ab in den Pool<br />
Das ist die perfekte Gelegenheit, den Umgang<br />
mit mehreren Blockgeräten, auch<br />
Pooling genannt, auszutesten. Noch dazu<br />
sollen nicht nur die Metadaten, sondern<br />
auch die Benutzer-Daten via RAID 1 vor<br />
Fehlern einzelner Blockgeräte aber auch<br />
vor zufälliger Datenkorruption geschützt<br />
werden.<br />
Wie würde die Erweiterung eines Dateisystems<br />
um eine Festplatte im Fall von<br />
LVM aussehen? Mit LVM-Werkzeugen<br />
wäre dazu zuerst ein neues Blockgerät<br />
oder wenigstens eine Partition für den<br />
Gebrauch als Physical Volume zu definieren.<br />
Dieses Physical Volume müsste<br />
dann zu einer Volume Group hinzugefügt<br />
werden. Abschließend könnte ein Filesystem<br />
auf einem Logical Volume vergrößert<br />
oder auf einem neuen Logical Volume<br />
angelegt <strong>und</strong> eingehängt werden.<br />
In einem Schritt<br />
Bei Btrfs erledigt das Werkzeug »btrfs«,<br />
diesmal mit dem Schalter »device add«,<br />
die ganze Arbeit in einem Schritt. Dieser<br />
Befehl fügt eine unbenutzte Festplatte zu<br />
dem Root-Dateisystem hinzu:<br />
btrfs device add /dev/vde /<br />
Die Blockgeräte müssen auch nicht alle<br />
die gleiche Größe besitzen. Je nach verwendetem<br />
RAID-Level, das für Daten <strong>und</strong><br />
systems ausbalanciert oder dessen RAID-<br />
Konfiguration verändert werden soll. Ein<br />
vollständiges <strong>und</strong> bei vielen Daten zeitaufwändiges,<br />
komplettes Ausbalancieren<br />
ist nicht mehr immer notwendig.<br />
Eine Frage der Balance<br />
Folgendes Kommando konvertiert ein<br />
nicht-red<strong>und</strong>antes Root-Dateisystem<br />
in ein red<strong>und</strong>antes. Der Schalter »-d«<br />
bestimmt hierbei die Modifikation, die an<br />
den Daten durchgeführt wird, während<br />
»-m« die Anwendung auf Metadaten<br />
festlegt:<br />
btrfs fi balance start -dconvert=raid1 U<br />
-mconvert=raid1 /<br />
Wie in Abbildung 11 zu erkennen ist,<br />
verteilen sich Daten <strong>und</strong> Metadaten jetzt<br />
schön gleichmäßig über beide Blockgeräte.<br />
Es fällt allerdings auch auf, dass<br />
trotz des geringen Metadatenverbrauches<br />
9 GByte dafür zugewiesen sind. Ein spezifisches<br />
Balance der Metadaten sollte<br />
hier Abhilfe schaffen. Mit dem folgenden<br />
Befehl werden nur die Metadaten-Chunks<br />
optimiert:<br />
btrfs fi balance start -m /<br />
Leider führte dieser Befehl auf dem Testsystem<br />
dazu, dass das System nicht mehr<br />
reagierte <strong>und</strong> Meldungen über hängende<br />
Btrfs-Kernel-Tasks auf der Konsole protokollierte.<br />
Nach einem Reset des Systems<br />
nach einigen St<strong>und</strong>en Wartezeit startete<br />
alles problemlos, <strong>und</strong> der Balance-Prozess<br />
war offensichtlich erfolgreich. Pas-<br />
88 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Android User im Abo<br />
Die Monatszeitschrift für Android-Fans, Smartphone- <strong>und</strong> Tablet-Nutzer<br />
NEU MIT PRÄMIE!<br />
15% sparen beim Print- oder<br />
Digital-Abo <strong>und</strong> exklusive<br />
Prämie sichern!<br />
SoftMaker Office über Google Play erhältlich, Freischaltung erfolgt per<br />
Gutscheincode. Angebot gilt solange der Vorrat reicht, Tablet <strong>und</strong><br />
Smartphone sind nicht Bestandteil der Prämie!<br />
JETZT BESTELLEN!<br />
www.android–user.de/abo<br />
Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@android-user.de
KnOw-hOw<br />
btrfs<br />
siert ein System-Absturz während des<br />
Ausbalancierens, wird der Prozess nach<br />
dem Systemstart automatisch im Hintergr<strong>und</strong><br />
fortgesetzt, falls er noch nicht<br />
abgeschlossen war. Wie bereits erwähnt,<br />
gibt es auch die Möglichkeit, den aktuellen<br />
Fortschritt anzuzeigen, den Balance-<br />
Prozess zu pausieren oder auch komplett<br />
abzubrechen.<br />
In Abbildung 12 kann man erkennen,<br />
dass nur mehr 2 GByte pro Blockgerät für<br />
Metadaten zugewiesen sind <strong>und</strong> damit 7<br />
GByte pro Festplatte wieder freigemacht<br />
wurden. Diese Werte sind für ein RAID<br />
1 mit zwei Replikas dann immer mal<br />
zwei zu nehmen, da ja alle Daten <strong>und</strong><br />
Metadaten gespiegelt sind. Ein einfaches<br />
»df -h /« zeigt deshalb doppelt so viel<br />
an verbrauchtem Plattenplatz an. Dieser<br />
Wert beinhaltet auch die red<strong>und</strong>anten<br />
Metadaten. Im Ausgleich dazu wird<br />
aber auch die Summe aller Blockgeräte<br />
des Volumes als Dateisystemgröße angezeigt.<br />
Wie der Wert des noch verfügbaren<br />
Platzes zustande kommt, ist unklar<br />
<strong>und</strong> konnte trotz intensiver Recherche<br />
des Autors auch nicht herausgef<strong>und</strong>en<br />
werden. Wer kurz nachrechnet, bemerkt,<br />
dass hier etwa 8 GByte fehlen:<br />
root@maibutter:~# df -h /<br />
Filesystem Size Used Avail Use% Mounted on<br />
/dev/m/maibutter-root 60G 4.8G 47G 10% /<br />
Die Anzahl der Replikas einer Datei für<br />
RAID 1 <strong>und</strong> eines Stripes für RAID 10<br />
ist übrigens immer zwei, unabhängig<br />
von der Anzahl der Platten im Pool. Hier<br />
soll in Zukunft auch noch die Option<br />
für mehr als zwei Kopien hinzukommen.<br />
RAID 5 <strong>und</strong> RAID 6 wird wohl nicht vor<br />
Kernel 3.6 verfügbar sein.<br />
Bei der Verwendung von mehreren Blockgeräten<br />
für ein Btrfs-Dateisystem ist auch<br />
zu beachten, dass nur das Laden des<br />
Btrfs-Kernel-Modules für den Kernel<br />
nicht ausreicht, um alle zusammengehörigen<br />
Geräte eines Dateisystems zu<br />
erkennen. Dazu müssen alle Blockgeräte<br />
(es können auch nur ganz bestimmte angegeben<br />
werden) mit »btrfs device scan«<br />
gescannt werden. Damit das auch für<br />
ein Root-Dateisystem funktioniert, muss<br />
dieser Befehl in der Startumgebung, also<br />
der »initrd« eines Systems, ausgeführt<br />
werden. Das hier verwendete Ubuntu<br />
12.04 hat das bereits integriert. Dann ist<br />
es auch unerheblich, welches der Geräte<br />
man bei einem »mount« angibt, um das<br />
Dateisystem einzuhängen.<br />
Volume »@«<br />
Mit einem Root-Dateisystem auf Btrfs <strong>und</strong><br />
der Installation von »apt-Btrfs-snapshot«<br />
verlieren große System-Upgrades oder<br />
auch umfangreiche Programminstallationen<br />
ihren Schrecken. Allerdings hat<br />
sich da noch ein Stolperstein eingeschlichen.<br />
Da es sich bei dem Btrfs in der<br />
Testinstallation für diesen Artikel um ein<br />
konvertiertes System handelt, das nicht<br />
denselben Konventionen wie ein frisch<br />
installiertes Ubuntu 12.04 folgt, muss<br />
noch eine Anpassung vorgenommen<br />
werden. Ein Vorabtest mit dem Befehl<br />
»apt-btrfs-snapshot supported« Plugins<br />
überprüft die Snapshotfähigkeit des Systems<br />
<strong>und</strong> dabei stellt sich heraus, dass<br />
für das Root-Dateisystem der spezifischer<br />
Subvolume-Name »@« erwartet wird.<br />
Das ist auch nicht weiter konfigurierbar<br />
aber recht unkompliziert lösbar:<br />
n ein Reboot des Systems in eine Rescue-Umgebung<br />
n Erzeugung eines Subvolumes im Top<br />
Level Volume mit dem Namen „@“<br />
n Einhängen des Top-Level Volumes <strong>und</strong><br />
des neuen Root Subvolumes<br />
n Kopieren der gesamten Root Dateisystems<br />
in das neue Subvolume<br />
Anschließend ist noch der Eintrag in<br />
»/etc/fstab« zu ändern, damit in Zukunft<br />
auch immer das Root-Subvolume „@“<br />
gemountet wird:<br />
/dev/mapper/maibutter-root / U<br />
btrfs defaults,subvol=@ 0 1<br />
Ein Aufruf von »update-grub« erweitert<br />
in Ubuntu 12.04 automatisch die<br />
Boot-<strong>Co</strong>mmandline von Grub um<br />
»rootflags=subvol=@«.<br />
Sichere Updates<br />
Derart vorbereitet steht nach einem Reboot,<br />
der Installation der mittlerweile<br />
62 Updates für dieses Testsystem nichts<br />
mehr im Wege (siehe Abbildung 13). Anschließend<br />
zeigt ein Blick auf die Liste der<br />
vorhandenen Btrfs-Subvolumes, dass ein<br />
neuer Snapshot angelegt wurde (mit der<br />
Uhrzeit seiner Erstellung im Namen). Es<br />
kann auch das Kommando, das mit dem<br />
Apt-Plugin für Snapshots mitkommt, verwendet<br />
werden (siehe Abbildung 14):<br />
btrfs sub list -p /<br />
apt-btrfs-snapshot list<br />
Wenn wie in diesem Testsystem das<br />
»/ boot«-Verzeichnis ein eigenes Ext2-<br />
Dateisystem auf einer extra Partition ist,<br />
sind alle Dateien dort von einem Btrfs-<br />
Snapshot <strong>und</strong> damit auch einem Roll-<br />
G Abbildung 14: Nach dem Update einer Reihe von Paketen ist ein neuer<br />
Snapshot vorhanden <strong>und</strong> mit einem aussagekräftigen Namen versehen. Im<br />
Bedarfsfall macht man das Update schnell ungeschehen.<br />
F Abbildung 13: Es haben sich schon einige Updates angesammelt. Ein Snapshot<br />
direkt vor der Installation erlaubt ein einfaches Zurück, sollte die Stabilität der<br />
Updates nicht überzeugen.<br />
90 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
trfs<br />
KnOw-hOw<br />
Abbildung 15: »/proc/self/mountinfo« bestätigt, dass nun der Snapshot<br />
eingehängt ist. Ein Update aller Pakete zeigt wieder 62 mögliche Updates an.<br />
Abbildung 16: Nach dem Einhängen des Top-Level Volume kann das alte Root<br />
Subvolume gelöscht <strong>und</strong> das Snapshot Volume umbenannt werden. Alles im<br />
Live-Betrieb.<br />
back ausgeschlossen. Will man auch<br />
diese Dateien in Snapshots inkludiert<br />
haben, um auch Kernel-Upgrades leichter<br />
rückgängig zu machen, muss dieses Verzeichnis<br />
direkt auf dem Root-Subvolume<br />
liegen. Mit einem aktuellen Grub 2.0 ist<br />
das möglich.<br />
Zurück in die Zukunft<br />
Stellt sich nun heraus, dass das letzte Update<br />
mehr Schaden als Nutzen gebracht<br />
hat, ist jetzt ein Rollback möglich. Dazu<br />
ist die Datei »/etc/fstab« dahingehend<br />
zu ändern, dass anstatt »subvol=@«<br />
der gewünschte Snapshot (hier @aptsnapshot-2012-07-23_08:52:34)<br />
verwendet<br />
wird. Ein »grub-update« <strong>und</strong> ein<br />
Reboot später ist das System wieder<br />
auf dem Stand des Snapshots <strong>und</strong> bietet<br />
erneut die Paket-Updates an (siehe<br />
Abbildung 15).<br />
Ganz unkompliziert ist es außerdem<br />
möglich, das obsolete alte Root-Volume<br />
(namens »@«) zu löschen <strong>und</strong> stattdessen<br />
das gerade in Verwendung befindliche<br />
Snapshot-Volume umzubenennen.<br />
Hierzu muss nur das Top-Level Volume<br />
eingehängt werden, denn dort finden<br />
sich alle Subvolumes als in Gestalt von<br />
Ordnern wieder. Mit der Subvolume-ID<br />
»0« hat man dabei immer Zugriff auf<br />
das Top- Level Volume. Das Löschen<br />
eines unbenutzten Subvolumes <strong>und</strong><br />
das anschließende Umbenennen eines<br />
Subvolumes funktionieren ohne Weiteres<br />
auch im laufenden Betrieb (siehe dazu<br />
Abbildung 16):<br />
mount -o subvolid=0 /dev/dm-0 /mnt U<br />
&& cd /mnt<br />
btrfs sub delete @<br />
mv @apt-snapshot-2012-07-23_08\:52\:34/ @<br />
cd && umount /mnt<br />
Jetzt noch den Eintrag des einzuhängenden<br />
Subvolumes »subvol=@« in »/etc/<br />
fstab« kontrollieren <strong>und</strong> ein »update-grub«<br />
durchführen. Damit ist das Rollback nach<br />
einem System-Update abgeschlossen.<br />
Fazit<br />
Btrfs bietet schon jetzt eine erstaunliche<br />
Menge an praktische Funktionen an, die<br />
den Betrieb von Rechnersystemen deutlich<br />
vereinfachen können. Sowohl Suse<br />
als auch Oracle sehen auch genau dadurch<br />
den Einsatz von Btrfs gerechtfertigt,<br />
obwohl die Entwicklung noch nicht<br />
abgeschlossen ist.<br />
Es hat sich bei den Recherchen zu diesem<br />
Artikel gezeigt, dass es noch viele rauhe<br />
Ecken <strong>und</strong> Kanten an Btrfs gibt, die einen<br />
reibungslosen Gebrauch von Btrfs<br />
in eine noch in die Ferne rücken lassen.<br />
Speziell bei einem Dateisystem, dem<br />
man seine wertvollen Daten anvertraut,<br />
erwartet man sich eine stabile <strong>und</strong> unkomplizierte<br />
Gr<strong>und</strong>funktion, gepaart<br />
mit einfachen <strong>und</strong> übersichtlichen<br />
Administrationswerkzeugen.<br />
Btrfs ist auf einem guten Weg, zum Default-Filesystem<br />
für Linux zu werden,<br />
aber es werden noch einige Kernel-Releases<br />
ins Land gehen, bis es sich eine Reputation<br />
wie ein Ext3 in Sachen Stabilität<br />
<strong>und</strong> Zuverlässigkeit erarbeitet hat. Ohne<br />
Zweifel ist es Btrfs wert, als zukünftiges<br />
Enterprise-Dateisystem im Auge behalten<br />
zu werden. Seine Hauptmerkmale lassen<br />
sich trotz allem bereits jetzt aussagekräftig<br />
testen. Wer plant, Btrfs schon heute<br />
produktiv einzusetzen, der sollte einen<br />
lückenlosen Backup-Plan für den Notfall<br />
zur Hand haben. Aber wer hat das nicht<br />
– egal, auf welchem Filesystem? (jcb) n<br />
Infos<br />
[1] Btrfs Wiki: [https:// Btrfs. wiki. kernel. org/<br />
index. php/ Main_Page]<br />
[2] Git Repository der Btrfs-Programme:<br />
[https:// git. kernel. org/ ? p=linux/ kernel/ git/<br />
mason/ Btrfs-progs. git;a=shortlog;h=refs/<br />
heads/ dangerdonteveruse]<br />
[3] Update Btrfs-tools in Ubuntu 12.04 LTS,<br />
Bug #968403:<br />
[https:// bugs. launchpad. net/ ubuntu/<br />
+source/ Btrfs-tools/ +bug/ 894456]<br />
[4] Btrfs-tools Paket in Debian Sid: [http://<br />
packages. debian. org/ sid/ Btrfs-tools]<br />
[5] Snapper Portal:<br />
[http:// en. opensuse. org/ Portal:Snapper]<br />
[6] Ubuntu Mainline Kernel Archiv: [http://<br />
kernel. ubuntu. com/ ~kernel-ppa/ mainline]<br />
[7] SLES 11 SP2 Release Notes<br />
[http:// www. suse. com/ releasenotes/<br />
x86_64/ SUSE-SLES/ 11-SP2/]<br />
Der Autor<br />
Andreas Kurz ist als CTO <strong>und</strong> Principal <strong>Co</strong>nsultant<br />
bei hastexo tätig. Hochverfügbare <strong>und</strong> skalierbare<br />
Speicherlösungen sind seine Passion. In<br />
seiner Freizeit kümmert er sich um seine zwei<br />
kleinen Söhne.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
91
TesT<br />
Active directory<br />
© Sattapapan Tratong, 123RF<br />
Besseres Active Directory mit Windows Server 2012<br />
Aufpoliert<br />
mit windows server 2012 bietet microsoft zahlreiche Verbesserungen im bereich Active directory <strong>und</strong> ermöglicht<br />
auch eine bessere <strong>und</strong> leichtere Verwaltung. Thomas Joos<br />
Active Directory ist das Kernstück der<br />
meisten Windows-Netzwerke. Jetzt gibt<br />
es mit Windows Server 2012 eine neue<br />
Version, die gegenüber der alten einige<br />
Verbesserungen mitbringt. Ein wichtiger<br />
Vorteil ist, dass sich Domänencontroller<br />
leichter virtualisieren lassen. Das Erstellen<br />
von Snapshots für Domänencontroller<br />
stellt in Windows Server 2012 kein<br />
Problem mehr dar (siehe den Artikel zu<br />
Hyper-V 3.0 in diesem Heft). Es ist zu<br />
erwarten, dass auch VMware <strong>und</strong> die<br />
anderen Virtualisierungsanbieter bald<br />
nachrüsten <strong>und</strong> ebenfalls problemlos<br />
Domänencontroller mit Windows Server<br />
2012 virtualisieren können.<br />
Die verwalteten Dienstkonten (Managed<br />
Service Accounts), die Kennwörter<br />
für Dienste selbst verwalten, lassen sich<br />
in Windows Server 2012 auf mehreren<br />
Servern einsetzen. DHCP-Server können<br />
auch ohne einen Cluster zu Teams<br />
zusammengefasst werden. Die Befehlszeile<br />
gibt es in Windows Server 2012<br />
weiterhin. Zusätzlich enthält der Server<br />
wie auch der Windows-8-Client die neue<br />
Version 3.0 der Powershell. Diese lässt<br />
sich ebenfalls wesentlich leichter bedienen<br />
als der Vorgänger in Windows Server<br />
2008 R2.<br />
Mit der dynamischen Zugriffskontrolle<br />
(Dynamic Access <strong>Co</strong>ntrol) können Administratoren<br />
einfacher die Berechtigungen<br />
für den Zugriff auf Dateien, Ordner <strong>und</strong><br />
sogar Sharepoint-Bibliotheken steuern.<br />
Dazu lassen sich Dateien mit Metadaten<br />
versehen, die nur bestimmten Anwendern,<br />
zum Beispiel allen Mitarbeitern einer<br />
Abteilung oder der Geschäftsführung<br />
den Zugriff erlauben, egal, in welchem<br />
Verzeichnis oder welcher Freigabe die Daten<br />
gespeichert sind. Das Ganze funktioniert<br />
reibungslos auch beim Verschieben<br />
von Dateien in Sharepoint-Bibliotheken.<br />
Zusätzlich lässt sich über diesen Weg<br />
auch festlegen, von welchen Geräten aus<br />
Anwender auf die Daten zugreifen dürfen.<br />
Unsichere PCs, Heim-Arbeitsplätze,<br />
<strong>Co</strong>mputer in Internet-Cafes oder Smartphones<br />
lassen sich so aussperren. Die<br />
Funktion nutzt dazu die Active-Directory-<br />
Rechteverwaltung<br />
Domänencontroller<br />
virtualisieren<br />
Domänencontroller sind künftig leichter<br />
zu installieren <strong>und</strong> zu verwalten. Microsoft<br />
hat dazu im neuen Server Manager<br />
auch Servergruppen implementiert<br />
94 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Active directory<br />
TesT<br />
(Abbildung 1). So können Administratoren<br />
bereits mit Bordmitteln zentral alle<br />
Server im Netzwerk verwalten. Serverrollen<br />
<strong>und</strong> -features lassen sich über den<br />
Server Manager auch über das Netzwerk<br />
installieren.<br />
Die neue Version erlaubt zum Beispiel die<br />
Aktivierung <strong>und</strong> Verwendung des Active-<br />
Directory-Papierkorbs <strong>und</strong> weitere Aufgaben,<br />
die in Windows Server 2008 R2 über<br />
die Powershell erledigt werden mussten.<br />
Auch die Gruppenrichtlinien für Kennwörter<br />
lassen sich in der neuen Konsole<br />
konfigurieren <strong>und</strong> Organisationseinheiten<br />
zuordnen. Neu im unteren Bereich des<br />
Active Directory Administrative Centers<br />
ist die Windows Powershell History, die<br />
ausgeführte Powershell-Befehle protokolliert.<br />
Administratoren müssen nur auf<br />
den Link klicken, um alle durchgeführten<br />
Aufgaben der grafischen Oberfläche<br />
als Powershell-Befehl zu sehen <strong>und</strong> auf<br />
Wunsch zu kopieren.<br />
Um Active Directory zu installieren,<br />
wählen Administratoren die Serverrolle<br />
»Active Directory Domain Services« aus.<br />
Nach der Installation der notwendigen<br />
Systemdateien lässt sich der Einrichtungsassistent,<br />
den Microsoft gründlich überarbeitet<br />
hat, über einen Link im letzten<br />
Fenster starten. Dcpromo, der Einrichtungsassistent<br />
der Vorgängerversionen,<br />
ist weggefallen.<br />
Einfachere Verwaltung<br />
Das in Windows Server 2008 R2 eingeführte<br />
Active Directory Administrative<br />
Center, das Microsoft in Windows 2012<br />
gründlich überarbeitet hat, ist die zentrale<br />
Anlaufstelle für alle Routine-Aufgaben<br />
im Active Directory (Abbildung<br />
2). Der Aufbau der Konsole ist stark<br />
aufgabenorientiert. Im Gegensatz zu<br />
den anderen Verwaltungstools basieren<br />
die Aufgaben im Verwaltungscenter auf<br />
Powershell-Befehlen.<br />
Die Standard-Verwaltungskonsolen für<br />
Active Directory, zum Beispiel »Active<br />
Directory-Benutzer <strong>und</strong> -<strong>Co</strong>mputer«, sind<br />
immer noch verfügbar. Hier haben sich<br />
im Vergleich zu Windows Server 2008<br />
R2 keine großen Änderungen ergeben.<br />
Das gilt auch für die Snap-Ins »Active<br />
Directory-Standorte <strong>und</strong> -Dienste« <strong>und</strong><br />
»Active Directory-Domänen <strong>und</strong> Vertrauensstellungen«.<br />
Abbildung 1: Im Server Manager fasst Windows Server 2012 die Domänencontroller in einer eigenen Gruppe<br />
zusammen.<br />
Das Active-Directory-Verwaltungscenter<br />
bietet nicht alle Möglichkeiten der anderen<br />
beschriebenen Snap-Ins, sondern<br />
dient vor allem Routine-Aufgaben wie<br />
dem Zurücksetzen von Kennwörtern oder<br />
dem Anlegen neuer Objekte. Erstellen<br />
Administratoren neue Objekte wie Organisationseinheiten<br />
oder Benutzerkonten,<br />
zeigt das Center übersichtliche <strong>und</strong> leicht<br />
verständliche Formulare an. Das Tool<br />
verbindet sich über die Active-Directory-<br />
Webdienste mit dem Active Directory.<br />
Administratoren starten das Active-Directory-Verwaltungscenter<br />
entweder über<br />
die Programmgruppe »Tools« im Server<br />
Manager oder indem sie »dsac« in der Powershell<br />
oder der Befehlszeile eingeben.<br />
Auf der linken Seite der Konsole lässt<br />
sich durch die Domänen <strong>und</strong> die Organisationseinheiten<br />
navigieren. Im linken<br />
oberen Bereich können Administratoren<br />
zwischen einer Baumstruktur wie bei<br />
der Active-Directory-Benutzerverwaltung<br />
<strong>und</strong> einer Struktur ähnlich dem Startmenü<br />
wechseln.<br />
Verwendet man die Listenansicht, lässt<br />
sich beim Einblenden einer Organisationseinheit<br />
(Organisational Unit) der<br />
Inhalt dieser OU auf das Startfenster<br />
des Verwaltungscenters anheften, sodass<br />
dieser Bereich dauerhaft im Verwaltungscenter<br />
erscheint. Dazu muss<br />
lediglich auf das blaue Pinsymbol oben<br />
rechts geklickt werden. Mit dem Pin können<br />
Anwender den Vorgang auch wieder<br />
rückgängig machen.<br />
E<br />
Abbildung 2: Mit dem neuen AD Administrative Center gestaltet sich die Verwaltung von Active Directory in<br />
Windows Server 2012 einfacher.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
95
TesT<br />
Active directory<br />
der Startbildschirm von Windows Server<br />
2012 anzeigen. Hierüber können Sie<br />
ebenfalls die Verwaltungsprogramme<br />
starten <strong>und</strong> auch nach Tools suchen. Mit<br />
der Tastenkombination [Windows]+[X]<br />
blenden Windows 8 <strong>und</strong> Windows Server<br />
2012 unten links ebenfalls wichtige<br />
Verwaltungsprogramme ein. Eine weitere<br />
neue <strong>und</strong> interessante Tastenkombination<br />
ist [Windows]+[Drucken]. Sie erstellt<br />
automatisch einen Screenshot <strong>und</strong><br />
speichert ihn in der Bilder-Bibliothek. Mit<br />
[Windows]+[D] starten Administratoren<br />
sofort den Desktop.<br />
PowerShell 3.0 <strong>und</strong> Active<br />
Directory<br />
Abbildung 3: Active Directory ist über die Powershell in Windows Server 2012 installierbar.<br />
Über den Menüpunkt »Globale Suche«<br />
ist eine Suche nach Objekten in allen<br />
Domänen der Gesamtstruktur verfügbar,<br />
unabhängig von der Domäne, mit der das<br />
Administrative Center aktuell verb<strong>und</strong>en<br />
ist. Der Navigationsbereich des Active-<br />
Directory-Verwaltungscenters lässt sich<br />
jederzeit anpassen, indem man verschiedene<br />
<strong>Co</strong>ntainer aus jeder beliebigen Domäne<br />
als separate Knoten hinzufügt. Die<br />
Liste der zuletzt verwendeten Objekte<br />
wird automatisch unter einem Navigationsknoten<br />
angezeigt.<br />
Verwaltungswerkzeuge<br />
Da auch in Windows Server 2012 das<br />
Startmenü fehlt, müssen Administratoren<br />
die Verwaltungswerkzeuge über andere<br />
Wege starten. Das zentrale Verwaltungswerkzeug<br />
ist in Windows Server 2012<br />
der Server Manager. Hier sind die verschiedenen<br />
Servergruppen zusammengefasst,<br />
auch die Active-Directory-Domänendienste.<br />
Mit einem Klick auf »ADDS«<br />
sind alle DCs zu sehen, die sich mit dem<br />
Manager verwalten lassen. Auch die zusammengefassten<br />
Meldungen aus allen<br />
Ereignisanzeigen sind zu sehen.<br />
Um im Server Manager in Windows Server<br />
2012 weitere Server anzubinden, genügt<br />
ein Klick auf »Verwalten«, gefolgt<br />
von »Server hinzufügen«. Im Fenster lässt<br />
sich anschließend nach Servern suchen,<br />
um sie im lokalen Server Manager zu<br />
verwalten. Um auf Servern im Netzwerk<br />
über den Server Manager remote Rollen<br />
oder Features zu installieren, ist keine<br />
vorherige Anbindung notwendig. Im Assistenten<br />
zum Hinzufügen von zusätzlichen<br />
Rollen erscheint ein neues Fenster,<br />
in dem sich der Server auswählen lässt,<br />
auf dem eine neue Rolle oder ein neues<br />
Feature installiert werden soll.<br />
In Windows Server 2012 sind die Assistenten<br />
zum Hinzufügen von Rollen <strong>und</strong><br />
Features zusammengefasst. Über das<br />
Kontextmenü von Servern können Administratoren<br />
Server über das Netzwerk<br />
remote neu starten, eine Powershell-Sitzung<br />
auf dem Server starten oder eine<br />
RDP-Verbindung öffnen.<br />
Auch die Installation von Rollen <strong>und</strong> Features<br />
über das Netzwerk ist mit dem Kontextmenü<br />
möglich. Im Server Manager<br />
ist am Wartungscentersymbol im oberen<br />
Bereich zu sehen, ob Fehler auf einem<br />
angeb<strong>und</strong>enen Server vorliegen oder<br />
Maßnahmen zur Verwaltung notwendig<br />
sind. Allerdings lassen sich auf diesem<br />
Weg nur Rechner mit Windows Server<br />
2012 zentral verwalten. Windows Server<br />
2008 R2 lässt sich nicht an den Server<br />
Manager von Windows Server 2012 anbinden.<br />
Die wichtigsten Verwaltungswerkzeuge<br />
finden Sie jetzt ohne Umwege direkt im<br />
Server Manager. Dazu reicht ein Klick<br />
auf den Menüpunkt »Tools« oben rechts.<br />
Über die Windows-Taste lässt sich auch<br />
Windows Server 2012 lässt sich auch in<br />
der Powershell verwalten. Dazu hat Microsoft<br />
einige neue <strong>Co</strong>mmandlets integriert.<br />
Die Befehle sind zu sehen, wenn<br />
man in der Powershell 3.0 in Windows<br />
Server 2012 zunächst das entsprechende<br />
Modul mit »Import-Module ADDSDeployment«<br />
lädt. Die Befehle lassen sich zum<br />
Beispiel mit »get-command *adds*« anzeigen.<br />
Das <strong>Co</strong>mmandlet »Install-ADDS-<br />
Domain<strong>Co</strong>ntroller« installiert in einer bestehenden<br />
Domäne zum Beispiel einen<br />
neuen Domänencontroller (Abbildung<br />
3). »Install-ADDSDomain« installiert eine<br />
neue Domäne, »Install-ADDSForest« eine<br />
neue Gesamtstruktur.<br />
Um einen Domänencontroller herabzustufen,<br />
steht das <strong>Co</strong>mmandlet »UnInstall-ADDSDomain<strong>Co</strong>ntroller«<br />
zur Verfügung.<br />
Die <strong>Co</strong>mmandlets fragen alle notwendigen<br />
Optionen ab <strong>und</strong> starten den<br />
Server neu. Konfigurationen wie DNS-<br />
Server <strong>und</strong> globaler Katalog folgen anschließend<br />
ohne den Assistenten. Auch<br />
für die Installation <strong>und</strong> den Betrieb von<br />
Active Directory gibt es neue <strong>Co</strong>mmandlets:<br />
»Test-ADDSDomain<strong>Co</strong>ntrollerInstallation«,<br />
»Test-ADDSDomain<strong>Co</strong>ntrollerUn-<br />
Installation«, »Test-ADDSDomainInstallation«,<br />
»Test-ADDSForestInstallation« <strong>und</strong><br />
»Test-ADDSReadOnlyDomain<strong>Co</strong>ntroller-<br />
UnInstallation«.<br />
Migration<br />
Wer einen Domänencontroller zu Windows<br />
Server 2012 aktualisieren möchte,<br />
muss zunächst das Schema der Gesamtstruktur<br />
erweitern. Dazu führt man den<br />
96 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Active directory<br />
TesT<br />
Befehl »adprep /forestprep« auf einem<br />
Domänencontroller aus. Das Tool ist im<br />
Verzeichnis »support\adprep« auf der<br />
DVD von Windows Server 2012 zu finden.<br />
Um das Schema erweitern zu können,<br />
muss man vorher mit [c] die Erweiterung<br />
bestätigen. Diese Maßnahmen<br />
sollte man allerdings nicht in produktiven<br />
Umgebungen durchführen, da sich<br />
die Änderungen nicht mehr rückgängig<br />
machen lassen.<br />
Nach der Aktualisierung des Schemas<br />
aktualisiert »adprep /domainprep« noch<br />
die einzelnen Domänen. Neu installierte<br />
Domänencontroller lassen sich problemlos<br />
in das Active Directory aufnehmen.<br />
Auch Mitgliedsserver mit Windows Server<br />
2012 können in bestehende Domänen<br />
aufgenommen werden, wenn Domänencontroller<br />
mit Windows Server 2003/ 2003<br />
R2/ 2008/ 2008 R2 vorhanden sind. Bei<br />
Migrationen lassen sich die Betriebssmasterrollen<br />
von Vorgängerversionen auf die<br />
neuen Domänencontroller mit Windows<br />
8 Server übernehmen. Die Vorgänge dazu<br />
sind identisch mit der Übernahme in<br />
Windows Server 2008 R2.<br />
Neues DNS-System<br />
Wegen der engen Verzahnung der Server<br />
miteinander ist auch eine Verbesserung<br />
des DNS-Systems notwendig, zum Beispiel<br />
unter dem Sicherheitaspekt. Bereits<br />
mit Windows Server 2008 R2 hat Microsoft<br />
DNSSEC eingeführt, um Zonen<br />
<strong>und</strong> Einträge abzusichern. Die Verwaltung<br />
von DNS-Servern gestaltet sich im<br />
Server Manager von Windows Server<br />
2012 durch die Gruppierung wesentlich<br />
effizienter.<br />
In Windows Server 2012 lassen sich Zonen<br />
online digital signieren. DNSSEC<br />
lässt sich in der neuen Version komplett<br />
in das Active Directory integrieren. Das<br />
umfasst auch die Möglichkeit, dynamische<br />
Updates für geschützte Zonen zu<br />
aktivieren. Windows Server 2012 unter-<br />
stützt offizielle Standards wie NSEC3<br />
<strong>und</strong> RSA/ SHA-2. Neu ist auch die Unterstützung<br />
von DNSSEC auf schreibgeschützten<br />
Domänencontrollern (RODC).<br />
Findet ein RODC mit Windows Server<br />
2012 eine signierte DNS-Zone, legt er automatisch<br />
eine sek<strong>und</strong>äre Kopie der Zone<br />
an <strong>und</strong> überträgt die Daten der DNSECgeschützten<br />
Zone. Das hat den Vorteil,<br />
dass auch Niederlassungen mit RODCs<br />
gesicherte Daten auflösen können, aber<br />
die Signatur <strong>und</strong> Daten der Zone nicht<br />
in Gefahr sind.<br />
DNSSEC lässt sich über das Kontextmenü<br />
von Zonen einrichten. Eine komplizierte<br />
Konfiguration in der Befehlszeile ist nicht<br />
mehr notwendig. Auch das Offline-Setzen<br />
von Zonen entfällt. Die Signierung<br />
der Zone erfolgt über einen Assistenten,<br />
der die manuelle Signierung, eine<br />
Aktualisierung der Signierung <strong>und</strong> eine<br />
Signierung auf Basis automatischer Einstellungen<br />
erlaubt. Mit Windows Server<br />
2012 lassen sich signierte Zonen auch<br />
<strong>ADMIN</strong><br />
Netzwerk & Security<br />
Online-Archiv<br />
R<strong>und</strong> 2.000 Seiten Artikel,<br />
Studien <strong>und</strong> Workshops aus<br />
fünf Jahren Technical Review<br />
+<br />
nur<br />
4,-e*<br />
im Monat<br />
Onlinezugriff auf<br />
Heftartikel aus dem<br />
<strong>ADMIN</strong>-<strong>Magazin</strong> von<br />
2009 bis 2012!<br />
Volltextsuche<br />
Praxisrelevante Themen<br />
für alle IT-Administratoren<br />
* Angebot gültig nur<br />
für Abonnenten eines<br />
Print- oder vollen<br />
digitalen <strong>ADMIN</strong> Abos<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
Bestellen Sie unter: www.admin-magazin.de/archiv<br />
97
TesT<br />
Active directory<br />
auf andere DNS-Server im Netzwerk<br />
replizieren. Eine weitere Neuerung ist<br />
IP-Adressverwaltungsserver (IPAM), der<br />
den Serverdienst überwacht <strong>und</strong> zentral<br />
DHCP- <strong>und</strong> DNS-Server steuert. Die Installation<br />
erfolgt als Serverrolle.<br />
Remote verwalten<br />
Abbildung 4: Die Powershell 3.0 in Windows Server 2012 bietet eine neue Hilfefunktion.<br />
Administratoren können zur Remoteverwaltung<br />
vom Active-Directory-Domänencontroller<br />
entweder per Remotedesktop<br />
auf den Server zugreifen oder von der<br />
eigenen Arbeitsstation aus mit der Powershell.<br />
Neben der Powershell stehen auch<br />
andere Tools zur Verwaltung von Active<br />
Directory auf Arbeitsstationen zur Verfügung.<br />
Das funktioniert mit Windows 7<br />
sowie Windows Server 2008 R2 <strong>und</strong> auch<br />
in Windows 8 <strong>und</strong> Windows Server 2012.<br />
Wer Windows Server 2012 von Arbeitsstationen<br />
mit Windows 8 verwalten will,<br />
muss die Remoteserver-Verwaltungstools<br />
für Windows 8 installieren [1].<br />
Die Verwaltungstools für Active Directory<br />
finden sich unter »Rollenverwaltungstools<br />
| AD DS-/AD LDS-Tools«. Hier stehen<br />
auch die <strong>Co</strong>mmandlets zur Verwaltung<br />
von Active Directory zur Verfügung, zum<br />
Beispiel das »Active Directory-Modul für<br />
Windows Powershell«. In Windows 8<br />
sind die Remoteverwaltungs-Tools bereits<br />
aktiviert. Sind diese nicht gleich im<br />
Startbildschirm zu sehen, ist die Ansicht<br />
„Alle Apps“ mit der Tastenkombination<br />
[Strg]+[Tab] aktivierbar. In Windows<br />
7 befinden sich die Tools im normalen<br />
Startmenü.<br />
Wer von einem Server mit Windows Server<br />
2008 R2 oder Windows Server 2012<br />
Serverdienste verwalten will, die auf dem<br />
Server nicht aktiviert sind, kann auch<br />
hier die Verwaltungstools installieren.<br />
Dazu sind keine Patches nötig, die entsprechenden<br />
Tools lassen sich direkt über<br />
den Server Manager aktivieren. Die Installation<br />
erfolgt im Server Manager über<br />
die Auswahl von »Features | Feature hinzufügen<br />
| Remoteserver-Verwaltungstools<br />
| Rollenverwaltungstools«. In Windows<br />
Server 2012 sind die Tools über »Verwalten<br />
| Rollen <strong>und</strong> Funktionen hinzufügen«<br />
zu erreichen.<br />
Administratoren können auf Servern die<br />
Installation der Verwaltungstools auch<br />
mit der Powershell durchführen. Dazu<br />
laden Sie die entsprechenden <strong>Co</strong>mmandlets<br />
für die Verwaltung des Servers mit<br />
»Import-Module Server Manager«. Der<br />
Aufruf »Get-WindowsFeature« zeigt die<br />
verfügbaren Features. Die Installation<br />
von Features erfolgt dann mit dem Befehl<br />
»Add-WindowsFeature «Features»«,<br />
zum Beispiel »Add-WindowsFeature<br />
RSAT-AD-PowerShell,RSAT-AD-Admin-<br />
Center«. Die Befehle funktionieren in der<br />
Powershell 2.0 von Windows Server 2008<br />
R2 <strong>und</strong> in der neuen Powershell 3.0 von<br />
Windows Server 2012.<br />
Powershell im Netz<br />
Um einen Server über die Powershell remote<br />
zu administrieren, muss die Remote-<br />
Verwaltung auf dem Server aktiviert sein.<br />
Das übernimmt auf dem entsprechenden<br />
Server der Befehl »Enable-PSRemoting<br />
-force«, der auch die Windows-Firewall<br />
passend konfiguriert. Per »Disable-PSRemoting<br />
-force« lässt sich die Remoteverwaltung<br />
eines Servers über die Powershell<br />
wieder deaktivieren. In Remote-Powershell-Sitzungen<br />
gibt es die gleichen<br />
<strong>Co</strong>mmandlets wie auf den lokalen Servern.<br />
Allerdings erlauben nicht alle <strong>Co</strong>mmandlets<br />
die Remote-Verwaltung. Dies<br />
zeigt sich daran, ob das <strong>Co</strong>mmandlet die<br />
Option »-<strong>Co</strong>mputerName« unterstützt.<br />
Der Befehl »Get-Help * -Parameter <strong>Co</strong>mputerName«<br />
zeigt eine Liste aller dieser<br />
<strong>Co</strong>mmandlets.<br />
Wird die Hilfe zu <strong>Co</strong>mmandlets aufgerufen,<br />
kann sich die Powershell selbstständig<br />
aktualisieren. Das ging eingeschränkt<br />
auch mit der alten Powershell 2.0, wenn<br />
für das <strong>Co</strong>mmandlet »get-help« die Option<br />
»-online« verwendet wurde. Die<br />
Powershell 3.0 bietet das neue <strong>Co</strong>mmandlet<br />
»update-help«, das die Hilfedateien aktualisieren<br />
kann. Der Befehl ruft die Hilfe<br />
direkt aus dem Internet ab. Ebenfalls eine<br />
neue Funktion in der Powershell 3.0 ist<br />
das <strong>Co</strong>mmandlet »show-command«, das<br />
ein neues Fenster mit allen Befehlen einblendet,<br />
die in der Powershell verfügbar<br />
sind (Abbildung 4).<br />
Es ist auch möglich, in der PowerShell<br />
eine Remotesitzung auf einem Server<br />
starten. Das geht am besten mit der Powershell<br />
Integrated Script Engine (ISE),<br />
die in Windows 8 bereits aktiviert ist.<br />
In Windows 7 muss sie gegebenenfalls<br />
als Windows-Feature nachträglich aktiviert<br />
werden. Nach dem Start kann man<br />
eine Verbindung mit »Datei | Neue Remote-PowerShell-Registerkarte«<br />
öffnen.<br />
Hier gibt man einen Servernamen <strong>und</strong><br />
einen Benutzernamen ein, mit dem man<br />
sich verbinden möchte. (ofr)<br />
n<br />
Infos<br />
[1] RSAT für Windows 8:<br />
[http:// www. microsoft. com/ de‐de/<br />
download/ details. aspx? id=28972]<br />
98 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
TesT<br />
small business server<br />
© dskdesign, 123RF<br />
Linux Small Business Server im Vergleich<br />
Business<br />
aus der Box<br />
Admins kleiner unternehmen, die ihre gesamten infrastruktur-Anforderungen<br />
mit einem einzigen server abdecken wollen, sind die zielgruppe<br />
sogenannter small business server. dieser Artikel stellt drei Linux-distributionen<br />
vor, die diese Anforderung erfüllen. Thomas drilling<br />
Designer oder Elektronik/ SPS-Spezialist<br />
mit IT-Kenntnissen, die sich auf den<br />
Windows-Bereich beschränken.<br />
Querschnitt<br />
Eine Gemeinsamkeit der mit dem Begriff<br />
Small Business Server bezeichneten<br />
Produkte ist – im Gegensatz zu einem<br />
gewöhnlichen Linux-Server – deren<br />
Administrierbarkeit über eine grafische<br />
Benutzeroberfläche, womit die Produkte<br />
ihrer Zielgruppe „Admins mit begrenztem<br />
Linux-Know-how“ gerecht werden.<br />
In der Regel handelt es sich dabei um ein<br />
Webinterface.<br />
Der Markt bietet in diesem Segment<br />
reichlich Auswahl. Univention, einer der<br />
bekanntesten Hersteller, bietet seinen<br />
Univention <strong>Co</strong>rporate Server (UCS) [1]<br />
sowohl als reine Infrastruktur-Lösung an,<br />
wie auch mit installierten Anwendungen,<br />
etwa einem Groupware-Stack. Ferner gibt<br />
es eine Reihe von Third-Party-Produkten<br />
<strong>und</strong> Herstellern, die den UCS als Basis<br />
ihrer Produkte zertifizieren, etwa Open-<br />
Xchange mit ihrer Open-Xchange Advanced<br />
Server Edition (OXASE) [2] oder die<br />
Applicance Edition von Zarafa.<br />
Wir haben uns im Folgenden den All-In-<br />
One-Server Zentyal des Herstellers eBox,<br />
die ClearOS <strong>Co</strong>mmunity Edition der Clear<br />
Fo<strong>und</strong>ation sowie die <strong>Co</strong>mmunity-Edition<br />
des Resara-Server angesehen. Auf<br />
eine ausführliche Vorstellung von Univentions<br />
<strong>Co</strong>rporate Server verzichten wir,<br />
auch wenn wir den UCS gelegentlich als<br />
Referenz heranziehen, weil das Produkt<br />
schon einige Male im <strong>ADMIN</strong>-<strong>Magazin</strong><br />
Erwähnung fand (siehe etwa [2]).<br />
Zwar hat Microsoft im Jahr 2000 mit seinem<br />
Small Business Server die gleichnamige<br />
Kategorie sozusagen erf<strong>und</strong>en, bietet<br />
das Produkt aber heute nicht länger<br />
an. In der Linux-Welt hingegen buhlen<br />
eine Reihe von Server- <strong>und</strong> Plattformen<br />
um die Gunst kleiner Unternehmen, die<br />
zum Beispiel Druck- <strong>und</strong> Dateidienste<br />
in heterogenen Netzen bereitstellen<br />
müssen.<br />
Small Business Server sind auf die Bedürfnisse<br />
von Kleinunternehmen mit<br />
zehn bis 50 Mitarbeitern zugeschnitten,<br />
auch wenn sich Admins großer Firmen<br />
beim Gedanken, alle Dienste auf einem<br />
einzigen Server laufen zu lassen, die<br />
Haare sträuben. Denen steht aber in der<br />
Regel auch ein umfangreiches Werkzeugarsenal<br />
für Deployment, Virtualisierung,<br />
Backup <strong>und</strong> Monitoring zur Verfügung,<br />
um das sich zudem ein hierarchischer<br />
Mitarbeiterstab kümmert.<br />
Vergisst man einmal die theoretischen<br />
Idealvorstellungen einer zeitgemäßen<br />
IT-Organisation im Unternehmen <strong>und</strong><br />
sieht sich an, wie kleine Firmen wirklich<br />
arbeiten, ergibt sich in etwa folgendes<br />
Bild: Meist gibt es keinen Vollzeit-Administrator.<br />
Falls doch, handelt es sich<br />
um einen einzelnen Mitarbeiter mit überdurchschnittlichen<br />
IT-Kenntnissen. Nicht<br />
selten ist das ein beförderter Ex-Web-<br />
E Zentyal-Server<br />
Zentyal ist ein auf Ubuntu basierender<br />
Small Business Server, der früher unter<br />
dem Namen „eBox“ angeboten wurde.<br />
Entwickelt wird das Produkt vom spanischen<br />
Open-Source-Unternehmen eBox<br />
Technologies, <strong>und</strong> es ist wahlweise in<br />
einer kostenlosen Basic Subscription, wie<br />
auch als Business- <strong>und</strong> Enterprise-Edition<br />
erhältlich [3]. Die Unterschiede zeigt das<br />
PDF-Dokument [4]. Sie liegen im Wesentlichen<br />
in der Nutzerzahl <strong>und</strong> den<br />
angebotenen Update-Services.<br />
Das Geschäftsmodell von eBox basiert<br />
auf Support-Verträgen, die im hauseige-<br />
100 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
small business server<br />
TesT<br />
Ein Klick auf »Installieren« zeigt zunächst<br />
eine Übersicht der zu installierenden Pakete/<br />
Paketgruppen, die noch einmal mit<br />
»OK« zu bestätigen ist, bevor Zentyal<br />
mit der Installation beginnt. Dieser erste<br />
Vorbereitungsschritt nimmt zwar etwas<br />
Zeit in Anspruch, ist aber praktisch, weil<br />
der Admin so einen individuell konfigurierten<br />
SBS zusammenbauen kann. Die<br />
meisten Pakete sind praxistauglich vorkonfiguriert<br />
<strong>und</strong> erfordern keine weitere<br />
Konfiguration. Es gibt aber Ausnahmen,<br />
wie etwa die Konfiguration der Netznen<br />
Shop pro Jahr <strong>und</strong> Server abgerechnet<br />
werden <strong>und</strong> sich durch die angebotenen<br />
Zusatzleistungen <strong>und</strong> Support-Level<br />
unterscheiden. Wir haben die aktuelle<br />
Zentyal 2.2-2 <strong>Co</strong>mmunity Edition in der<br />
64-Bit-Variante installiert. Die gibt es alternativ<br />
auch in einer 32-Bit-Version <strong>und</strong><br />
als Virtual Maschine Image.<br />
Die kommende Version 3.0 stand laut<br />
Roadmap zwar zum Testzeitpunkt kurz<br />
vor Veröffentlichung, war bis Redaktionsschluss<br />
aber noch nicht verfügbar.<br />
Zentyal 3.0 verspricht vor allem die Integration<br />
von Samba 4, womit sich Zentyal<br />
im Bereich Windows-File-Services als<br />
direkter Konkurrent zu Univentions <strong>Co</strong>rporation<br />
Server oder Resara aufschwingt.<br />
Leider ist die seit September 2011 verfügbare<br />
Version 2.2 in Sachen Softwareausstattung<br />
bei einigen Paketen nicht mehr<br />
aktuell, was im Einzelfall Sicherheitslücken<br />
eröffnet. Die Version 2.2 verwendet<br />
ein Ubuntu-10.04-LTS-F<strong>und</strong>ament, während<br />
die Version 3.0 [5] den Sprung auf<br />
Ubuntu 12.04 LTS vollzieht. Alternativ<br />
steht die Beta-Version 2.3 zum Herunterladen<br />
zur Verfügung.<br />
Ubuntubau<br />
Der Zentyal Server richtet sich an Unternehmen<br />
kleiner bis mittlerer Größe<br />
<strong>und</strong> stellt als Alternative zum Microsoft<br />
SBS zahlreiche via Webinterface administrierbare<br />
Funktionen aus den Bereichen<br />
Routing/ Gateway, Netzwerkinfrastruktur,<br />
Kollaboration (zum Beispiel Zarafa), Sicherheit<br />
<strong>und</strong> Kommunikation zur Verfügung.<br />
Die Installation basiert auf dem<br />
Ubuntu-Installer, verzichtet aber auf<br />
dessen grafische Variante. Ubuntus Alternate-Installer<br />
erwartet mit Ausnahme<br />
der Angabe eines Benutzerkontos für den<br />
Systemuser sowie des Hostnamens <strong>und</strong><br />
des gewünschten Tastatur-Layouts keine<br />
weitere Interaktion.<br />
Das Boot-Menü bietet als Alternative<br />
zum Standard-Modus auch einen Experten-Modus<br />
an, mit dem erfahrene Linux-<br />
Nutzer etwa bei der Apt-Konfiguration<br />
Ubuntu-Repositories einbinden, aktualisierte<br />
Ubuntu-Pakete von einem Netzwerkspiegel<br />
holen oder die Festplatte<br />
manuell partitionieren können. Optional<br />
gibt es im Bootmenü für beide Varianten<br />
Einträge zum Installieren der Subskriptions-Versionen.<br />
Nach dem Reboot öffnet sich dank automatischem<br />
Login am Ubuntu-System ein<br />
Firefox-Fenster mit der Login-Seite der<br />
Zentyal-Administrationsoberfläche, in<br />
dem sich der Admin mit dem während<br />
der Installation angelegten Systembenutzer<br />
anmeldet. Alternativ ist die Verwaltung<br />
von einem beliebigen Host im Netz<br />
über HTTPS möglich. Nach dem ersten<br />
Login zeigt das System zunächst eine<br />
Übersicht der verfügbaren Paketgruppen.<br />
Klick der Admin auf eines der fünf<br />
großen Icons am oberen Bildschirmrand,<br />
färbt die GUI thematisch zusammengehörige<br />
Paketgruppen ein. Der Admin<br />
kann die benötigten Pakete aber beliebig<br />
kombinieren <strong>und</strong> falls gewünscht auch<br />
gleichzeitig installieren, darunter auch<br />
die freie Zarafa-Version.<br />
Maßgeschneidert<br />
werkinterfaces. Bei der Wahl des Server-<br />
Typs ist ein Nutzereingriff vonnöten,<br />
denn Zentyal bietet neben dem Szenario<br />
„Standalone-Server“ auch eines für den<br />
rollenbasierten Multiserver-Betrieb, soll<br />
der Zentyal Server etwa als (Backup) Domain<br />
<strong>Co</strong>ntroller in einer Active-Directory<br />
Domäne fungieren (Abbildung 1).<br />
Im Rahmen der MTA-Konfiguration kann<br />
der Administrator auch die zu verwendende<br />
Mail-Domain festlegen. Zum Abschluss<br />
der Paket-Installation besteht<br />
erwartungsgemäß die Möglichkeit,<br />
eine Subscription zu registrieren. Die<br />
Subscriptions erschließen wie erwähnt<br />
nicht nur den Hersteller-Support, sondern<br />
stellen auch erweiterte Funktionen<br />
zur Verfügung, wie etwa die Sicherung<br />
der Konfiguration in der Zentyal-Cloud,<br />
die Bereitstellung einer Subdomain »zentyal.me«<br />
für das direkte Adressieren des<br />
Servers oder ein Remote-Monitoring der<br />
wichtigsten Betriebsparameter.<br />
Nach dem Speichern der Änderung gelangt<br />
man mit einem Klick auf »Back to<br />
Dashboard« auf der Übersichtseite des<br />
Konfigurationsinterfaces. Dieses zeigt<br />
zwar auf den ersten Blick eine Fülle<br />
an Informationen, man findet sich aber<br />
schnell zurecht. Ein Klick auf den Link<br />
»Sicherheitsupdates« im Bereich »Allgemeine<br />
Informationen« sorgt zunächst<br />
für die Aktualisierung des Ubuntu-F<strong>und</strong>amentes.<br />
Die Bedienung des Webinterface<br />
ist weitgehend intuitiv. Leider ist die<br />
Abbildung 1: Benutzer verwaltet Zentyal selbst oder übernimmt sie von LDAP oder Active Directory.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
101
TesT<br />
small business server<br />
Abbildung 2: Das Dashboard gibt nicht nur eine Übersicht über den momentanen Zustand von Server <strong>und</strong><br />
laufenden Diensten. Letztere lassen sich von hier auch steuern.<br />
Abbildung 3: Die Sprache für Zarafa Webaccess ist in den Einstellungen des Webclients von Zarafa<br />
einzutragen.<br />
während der Installation des Basissystem<br />
gewählte Lokalisierung noch nicht durchgängig<br />
<strong>und</strong> gelegentlich recht originell<br />
eingedeutscht, etwa IDS mit „Eindringling<br />
Erkennungs System“. Außerdem<br />
bewegt sich das durchaus ansehnliche<br />
Webinterface bei der Bedienbarkeit auf<br />
dem Niveau von Webmin <strong>und</strong> ist völlig<br />
Ajax-frei, erfordert also immer ein komplettes<br />
Neuladen der einzelnen Seiten.<br />
Die schon bei der Paketauswahl angebotene<br />
Gruppierung mit »UTM«, »Gateway«,<br />
»Infrastructure«, »Office <strong>und</strong> <strong>Co</strong>mmunications«<br />
schlägt sich im Navigationsbereich<br />
links nieder. Der erste Eintrag<br />
»Übersicht« des <strong>Co</strong>re-Bereichs ganz oben,<br />
der unter anderem die Netzwerkkonfiguration<br />
beherbergt, führt ins Dashboard<br />
(Abbildung 2).<br />
Dort findet der Admin unter anderem den<br />
Bereich »Status des Moduls«, der zeigt,<br />
welche Dienste der Zentyal-Server verwaltet.<br />
Nicht gestartete Module lassen<br />
sich unter »<strong>Co</strong>re | Status des Modusl«<br />
aktivieren. Ferner ist es unter »<strong>Co</strong>re |<br />
Softwareverwaltung« möglich, weitere<br />
Komponenten nachzuinstallieren.<br />
Infrastructure, Office <strong>und</strong><br />
<strong>Co</strong>mmunications<br />
Die Installation von Zarafa beschert dem<br />
Admin die recht aktuelle Zarafa-Version<br />
7.08-351-78. Die weitere Konfiguration<br />
der Groupware erfordert, dass zuvor der<br />
Mail-Stack aktiviert <strong>und</strong> konfiguriert ist.<br />
Die Mailserver-Konfiguration wiederum<br />
ist nicht in der Rubrik »Infrastructure« zu<br />
finden, sondern unter »<strong>Co</strong>mmunication«.<br />
Hier ist sogar das Konfigurieren eines<br />
SMTP-Relays mit Authentifizierung über<br />
das Webinterface möglich.<br />
Das Speichern der Mail-Konfiguration<br />
setzt allerdings voraus, dass das E-Mail-<br />
Modul mit »Übersicht | Status des Moduls«<br />
installiert <strong>und</strong> aktiviert ist, worauf<br />
Zentyal fre<strong>und</strong>licherweise hinweist. Das<br />
allerdings funktioniert nur dann, wenn<br />
die Komponente »Benutzer & Gruppen«<br />
vorhanden ist. Dafür ist es zum Beispiel<br />
im Benutzer-Dialog vorgesehen, dass<br />
Zarafa die Quotas des Mail-Accounts<br />
übernimmt.<br />
Sind die Vorbereitungen bis hierher<br />
getroffen, kann der Admin die weitere<br />
Zarafa-Konfiguration im Menü<br />
»Office | Groupware« erledigen.<br />
102 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
small business server<br />
TesT<br />
Ist das erledigt, steht Zarafas vorbildliches<br />
Webinterface unter der Adresse<br />
»http://Zentyal-Server/webaccess« zur<br />
Verfügung (Abbildung 3).<br />
E ClearOS<br />
Der Small Business Server ClearOS firmierte<br />
im Jahr 2009 noch unter dem Namen<br />
„Clark<strong>Co</strong>nnect“. Ursprünglich als<br />
Gateway- <strong>und</strong> Router-Distribution konzipiert,<br />
tritt ClearOS mit über die Jahre<br />
gewachsenem Funktionsumfang heute<br />
als Small Business Server auf. Erst kurz<br />
vor Redaktionsschluss dieser Ausgabe ist<br />
die brandneue Version 6.3 erschienen,<br />
die unter anderem ebenfalls mit freier<br />
oder kommerzieller Zarafa-Erweiterung<br />
zu haben ist. ClearOS basiert auf CentOS<br />
6.3 <strong>und</strong> steht in mehreren kommerziellen<br />
Versionen (Professional-Edition) <strong>und</strong><br />
als <strong>Co</strong>mmunity-Variante zur Verfügung<br />
[6], wahlweise als ISO-Image zum Installieren<br />
<strong>und</strong> als Virtual Appliance. Die<br />
<strong>Co</strong>mmunity-Version von ClearOS 6.3 liegt<br />
diesem Heft als CD bei.<br />
Die kommerziellen Versionen vermarktet<br />
Clear in Form von Subsriptions pro Jahr<br />
<strong>und</strong> Server. Zur Verfügung stehen Lite-,<br />
Basic-, Standard <strong>und</strong> Premium-Subscription<br />
mit unterschiedlichen Support-<br />
Leveln <strong>und</strong> ansteigender Anzahl vorinstallierter<br />
„Apps“. Erwähnenswert sind<br />
hier beispielsweise der Active Directory<br />
<strong>Co</strong>nnector [7], die Google Apps Synchronization<br />
oder Account Synchronization<br />
(Master/ Slave). Die Unterschiede lassen<br />
sich im Clearcenter-Store nachlesen [8].<br />
Ferner gibt es die Zarafa-Variante auch in<br />
einer kommerziellen Version [9].<br />
ClearOS <strong>Co</strong>mmunity<br />
melden am Webinterface erforderlich,<br />
das den Admin mit einem „Get-Started-<br />
Guide“ begrüßt <strong>und</strong> dann mithilfe des<br />
Assistenten durch die wichtigsten Basis-<br />
Einstellungen leitet, etwa ob ClearOS im<br />
Server- (ohne Firewall), Public-Server<br />
oder Gateway-Modus betrieben werden<br />
soll, was an die Herkunft von ClearOS<br />
als Routersystem erinnert. Nach dem<br />
Abarbeiten des Assistenten, der sich im<br />
Wesentlichen der Konfiguration der Netzwerkinterfaces<br />
widmet (Abbildung 4),<br />
möchte das System verfügbare Updates<br />
installieren, die sich zum Testzeitpunkt<br />
der brandneuen Version 6.3 auf wenige<br />
Pakete beschränkten.<br />
Registrierung zwingend<br />
Ist das erledigt, zwingt auch die <strong>Co</strong>mmunity-Version<br />
den Administrator, die Installation<br />
mit einem Clearcenter-Account<br />
zu registrieren, sonst lassen sich keine<br />
weitere Komponenten installieren. Dabei<br />
muss er auch den Servernamen festlegen,<br />
der allerdings nicht mehr – wie bei<br />
früheren Versionen – zwangsweise der<br />
Domain »poweredbyclear.com« vorangestellt<br />
wird. Stattdessen kann er den, bei<br />
ClearOS »Internet Domain« genannten<br />
DNS-Domain-Namen im nächsten Schritt<br />
frei wählen.<br />
Nach der Auswahl der Zeitzone springt<br />
der Setup-Assistenten am Ende automatisch<br />
ins Menü »Marketplace | Server-Apps«<br />
<strong>und</strong> ermöglicht das Nachinstallieren<br />
der Apps aus dem Clearcenter-<br />
Marketplace. Damit kann der Admin den,<br />
im Gegensatz zu Zentyal sehr reduzierten<br />
Basis-Funktionsumfang, nach seinen<br />
Vorstellungen erweitern (Abbildung 5).<br />
Der Clear-Marketplace bietet unabhängig<br />
davon, ob der Admin die <strong>Co</strong>mmunity-<br />
Version oder eine kommerzielle Variante<br />
installiert, eine reichhaltige Auswahl<br />
freier <strong>und</strong> kostenpflichtiger Apps, von<br />
denen allerdings einige, wie Windows-<br />
Networking, FTP-Server, Print Server<br />
oder SMTP-Server eigentlich zur Gr<strong>und</strong>ausstattung<br />
gehören. Offenbar sind viele<br />
ehemalige Basis-Funktionen der Vorgängerversionen<br />
inzwischen in den Marketplace<br />
gewandert.<br />
Empfehlenswert ist beispielsweise die<br />
App „Flexshares“ (Abbildung 6), mit<br />
deren Hilfe ein freigegebenes Verzeichnis<br />
nicht nur via SMB oder FTP erreichbar<br />
ist, sondern sich über den Webserver<br />
auch als Dropbox freigeben lässt. Dies<br />
erfordert allerdings die Installation eines<br />
„Account Manager“, der bei Clear OS<br />
wahlweise auf OpenLDAP (builtin) oder<br />
Active Directory basiert. Im letzten Fall<br />
bietet ClearOS an, den „Active Directory<br />
Die Setup-Routine der <strong>Co</strong>mmunity-Version<br />
basiert erwartungsgemäß auf Red<br />
Hats Anaconda-Installer <strong>und</strong> erfordert<br />
nur wenige Benutzereingaben, darunter<br />
ein Passwort für den Root-Account.<br />
Nach dem Reboot präsentiert ClearOS<br />
eine Info-Seite, mit deren Hilfe der Admin<br />
etwa einen Standard-Browser auswählen<br />
oder sich an den angegebenen URL am<br />
Webinterface »https://ClearOS-Server:81«<br />
anmelden kann. Mit »Go to <strong>Co</strong>mmand<br />
Line« ist auch ein direktes Terminal-Login<br />
mit dem Administrator-Account möglich.<br />
Der Root-Account ist auch für das An-<br />
Abbildung 4: Ein Konfigurations-Assistent leitet durch die wichtigsten Schritte zur Basis-Konfiguration von<br />
ClearOS, darunter an erster Stelle der Netzwerkmodus.<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
103
TesT<br />
small business server<br />
einfügt. Jede App zeigt im Hauptfenster<br />
der Weboberfläche ganz oben zunächst<br />
das Icon der App, nebst einer kurzen<br />
Erläuterung <strong>und</strong> rechts davon die Schaltfläche<br />
»User Guide«, die eine detaillierten<br />
Anleitung nachlädt. Der Platz darunter<br />
zeigt je nach App die Einstellungen<br />
oder den Status des jeweiligen Dienstes.<br />
Vorbildlich: Rechts davon gibt es einen<br />
weiteren Bereich, der noch einmal den<br />
Namen der App sowie Hersteller <strong>und</strong> Versionsnummer<br />
zeigt <strong>und</strong> darunter einen<br />
Hinweis „Recommended Apps“, der darüber<br />
informiert, von welchen Apps die<br />
installierte App abhängt. Deren Name<br />
lässt sich dann direkt anklicken, um die<br />
erforderliche App nachzuinstallieren.<br />
E Resara Server<br />
Abbildung 5: ClearOS geht mit dem Zeitgeist <strong>und</strong> verpackt Funktionen in Apps, die sich über den Marketplace<br />
installieren lassen.<br />
<strong>Co</strong>nnector“ aus dem Marketplace zu<br />
installieren, der einen laufenden Active<br />
Directory Server voraussetzt (Abbildung<br />
7). Die Konfiguration von OpenLDAP<br />
erfordert lediglich die Angabe der gewünschten<br />
Base-Domain.<br />
Moderne GUI<br />
Die Administration des Systems erfolgt<br />
im Normalfall über die Weboberfläche,<br />
ist aber auch am Bildschirm des Servers<br />
möglich, bei ClearOS „grafische Konsole“<br />
genannt. Die Weboberfläche wirkt<br />
im Vergleich mit Zentyal moderner. Am<br />
oberen Bildschirmrand sind lediglich drei<br />
Links zum Dashboard, zum Marketplace<br />
<strong>und</strong> für Login/ Logout zu finden. Das<br />
Dashboard zeigt die momentane Speicherauslastung<br />
<strong>und</strong> bietet Funktionen<br />
zum Herunterfahren <strong>und</strong> Neustarten des<br />
Servers. Die weitere Navigation durch die<br />
installierten Komponenten <strong>und</strong> Funktionsgruppen<br />
ist wahlweise über den Navigationsbereich<br />
links oder mithilfe von<br />
optisch ansprechend realisierten Dropdown-Menüs<br />
am oberen Rand möglich.<br />
Die Gliederung in Server, Network, Gateway<br />
<strong>und</strong> System ist ebenfalls etwas übersichtlicher<br />
als bei Zentyal.<br />
Beinahe sämtliche Funktionen stehen<br />
bei ClearOS 6.3 in Form von Apps zur<br />
Verfügung, wobei sich die Bedienung<br />
der Apps stimmig in das GUI-Konzept<br />
Als dritter Linux-basierter Small Business<br />
Server stand der seit März 2011 in<br />
Version 1.0 verfügbare Resara-Server auf<br />
der Agenda. Während dieser Beitrag entstand,<br />
gab Resara jedoch bekannt, das<br />
Unternehmen aus persönlichen <strong>und</strong> finanziellen<br />
Gründen zu schließen. Der<br />
Resara-Server bleibt jedoch weiter interessant,<br />
denn die Firma beabsichtigt, den<br />
kompletten <strong>Co</strong>de aller Resara-Produkte,<br />
inklusive des kommerziellen Resara<br />
Servers <strong>und</strong> der Enterprise Version, innerhalb<br />
der nächsten fünf Monate der<br />
Gemeinschaft zu übergeben.<br />
Wir haben deshalb die seit April diesen<br />
Jahres verfügbare Version 1.1.2 der Resara<br />
<strong>Co</strong>mmunity-Edition in den Vergleich aufgenommen.<br />
Die Unterschiede zwischen<br />
der Resara <strong>Co</strong>mmunity Edition sowie den<br />
kommerziellen Varianten „Resara Server“<br />
<strong>und</strong> „Resara Server Enterprise“ lassen<br />
sich der Download-Seite [10] entnehmen,<br />
wobei der primäre Vorteil des kostenpflichtigen<br />
Supports mit Schließung<br />
der Firma wegfällt.<br />
Abbildung 6: Mit der Hilfe der App Flexshare ist ein freigegebenes Verzeichnis<br />
nicht nur via SMB oder FTP erreichbar, sondern lässt sich über den Webserver<br />
auch als Dropbox freigeben.<br />
Abbildung 7: Bei der Verwaltung von Benutzer-Accounts unterstützt ClearOS<br />
neben OpenLDAP mithilfe der kommerziellen App „Active Directory <strong>Co</strong>nnector“<br />
auch Microsofts Verzeichnisdienst.<br />
104 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
MAGAZIN<br />
Darüber hinaus boten die kommerziellen<br />
Version auch Multi-Server Replication,<br />
CSV Import/ Update <strong>und</strong> Server <strong>Co</strong>nfig<br />
Backup. Die <strong>Co</strong>mmunity-Edition ist teilweise<br />
unter der GPLv2 <strong>und</strong> der einer BSD-<br />
Lizenz lizensiert <strong>und</strong> steht wahlweise als<br />
1,6 GByte großes ISO-Images oder als<br />
Virtualbox-OVA-Image zur Verfügung.<br />
Außerdem steht auf der Download-Seite<br />
die Version 1.1.2 der sogenannten Admin<br />
<strong>Co</strong>nsole für Windows (Exe, Zip), Mac OS<br />
<strong>und</strong> Linux (32 <strong>und</strong> 64 Bit) zur Verfügung.<br />
Resara bietet im Unterschied zu den anderen<br />
Produkten keine webbasierten Administration.<br />
Das Download-Paket der<br />
Admin <strong>Co</strong>nsole braucht der Admin aber<br />
nur dann, wenn er seinen Resara Server<br />
von einer anderen Maschine im Netz aus<br />
administrieren möchte. Das Installieren<br />
des Server-ISOs schließt die Admin <strong>Co</strong>nsole<br />
für den lokalen nämlich Server ein.<br />
Resara intern<br />
Auch der Resara Server basiert auf<br />
Ubuntu, allerdings wie Zentyal ebenfalls<br />
auf der Version 10.04 LTS. Deren Installation<br />
unterscheidet sich nicht vom Original.<br />
Der Admin muss also außer der<br />
geführten oder manuellen Partitionierung<br />
nichts weiter tun, als einen Benutzer-<br />
Account sowie Sprache <strong>und</strong> Tastaturlayout<br />
festlegen. Resara bootet nach dem<br />
Fertigstellen der Installation ein gewöhn-<br />
liches Ubuntu-System. Auf dem Desktop<br />
ist lediglich ein Icon zum Starten von<br />
Resaras Admin <strong>Co</strong>nsole zu finden. Außerdem<br />
startet nach dem ersten Booten<br />
automatisch ein Assistent zur weiteren<br />
Konfiguration des Small Business Servers<br />
(Abbildung 8).<br />
Der widmet sich im ersten Schritt der<br />
Netzwerk-Konfiguration, übernimmt<br />
dazu aber die Daten aus der Basis-Konfiguration<br />
des Ubuntu-Basissystems. Nach<br />
der Konfiguration der Zeitzone muss der<br />
Admin den Host- <strong>und</strong> Domain-Namen<br />
festlegen. Das im Folgeschritt festzulegende<br />
Administrator-Passwort betrifft<br />
ausschließlich den Resara-Server, während<br />
der Zugang zum Ubuntu-System wie<br />
gewohnt mit dem bei der Basis-Installation<br />
festgelegten Nutzernamen erfolgt.<br />
Danach bietet der Assistent an, Resara<br />
zum DHCP-Server zu machen, wobei der<br />
Admin den gewünschten IP-Bereich festlegen<br />
darf. Anschließend komplettiert der<br />
Assistent ohne weiteren Benutzereingriff<br />
die Samba-Konfiguration.<br />
Samba zentral<br />
Die Admin <strong>Co</strong>nsole (Abbildung 9) dient<br />
im Wesentlichen zur Konfiguration von<br />
Samba, DHCP <strong>und</strong> DNS sowie zur Benutzerverwaltung.<br />
Im Reiter »Server« ist<br />
es möglich, Samba zu stoppen oder neu<br />
zu starten. Das war es dann auch schon.<br />
SondErAkTion<br />
Testen Sie jetzt<br />
3 Ausgaben<br />
für 3 Euro!<br />
nUr<br />
MiT dVd!<br />
Jetzt bestellen<br />
Abbildung 8: Resara bootet nach der Basis-Installation einen gewöhnlichen Ubuntu-Desktop, startet aber<br />
automatisch den Konfigurations-Assistenten für den Small Business Server.<br />
www.A dmin-mAgA zin.de<br />
• Telefon: 07131 / 2707 274<br />
• Fax 07131 / 2707 78 601<br />
• Mail abo@linux-magazin.de<br />
• http://linux-magazin.de/probeabo<br />
Mit großem Gewinnspiel<br />
(Infos unter: www.linux-magazin.de/probeabo)<br />
AusgA be 05-2012<br />
*Preis gilt für Deutschland 105
TesT<br />
small business server<br />
(Active Directroy) bietet ClearOS im Augenblick<br />
lediglich die Möglichkeit, mithilfe<br />
der kommerziellen App „Active Directory<br />
<strong>Co</strong>nnector“ an eine bestehe AD-<br />
Domäne anzudocken. Zentyal verspricht<br />
die AD-Integration für die kommende<br />
Version 3.0, die mit dem Erscheinen dieses<br />
Heftes bereits verfügbar sein sollte.<br />
Beim Resara-Server steht Samba 4 beziehungsweise<br />
die Realisierung einer<br />
Active-Directory-kompatiblen (Windows-)Domäne<br />
im Zentrum der Produktphilosophie.<br />
Bleibt noch zu erwähnen,<br />
dass Resara als einziger Kandidat<br />
ein natives Admin-Tool für alle wichtigen<br />
OS-Plattformen anbietet <strong>und</strong> auf ein<br />
Webinterface verzichtet. (ofr)<br />
n<br />
Abbildung 9: Der Resara-Server bietet als einziger Server im Test kein Webinterface, sondern lässt sich<br />
ausschließlich über ein natives Tool administrieren.<br />
Im Fokus von Resara steht nämlich ausschließlich<br />
Windows Filesharing. Dank<br />
Samba 4 kann Resara eine echte Active-<br />
Directory-kompatible Windows-Domäne<br />
zur Verfügung stellen, die sämtliche AD<br />
User/ <strong>Co</strong>mputer-Richtlinien, auch mit Microsoft<br />
Management Tools unterstützt.<br />
Für die AD-Funktionalität bietet die Admin-Konsole<br />
die drei vordefinierten Gruppen<br />
„Domain Admins“, „Domain Users“<br />
<strong>und</strong> „Domain Guests“, denen ein neu<br />
anzulegender Benutzer hinzuzufügen ist,<br />
damit er sich an der Windows Domäne<br />
anmelden kann. Alle weiteren Details der<br />
Samba/ AD-Konfiguration verbirgt Resara<br />
vor dem Nutzer.<br />
Erfahrene Anwender werden übrigens im<br />
Zusammenhang AD vergeblich nach den<br />
zugehörigen Diensten Heimdal (Kerberos)<br />
<strong>und</strong> OpenLDAP suchen, da beide Teil<br />
der Implementation von Samba 4 sind.<br />
Für Profis<br />
Das Anmelden von einen Windows-<br />
Client an der Windows-Resara-Domäne<br />
funktioniert ausschließlich mit einer Domänen-fähigen<br />
Windows-Version, also<br />
beispielsweise nicht mit der Windows<br />
7 Home Edition. Das Umstellen von lokaler<br />
Anmeldung auf den Domänen-Betrieb<br />
mit einem Klick auf »Einstellungen<br />
ändern« im Bereich »Einstellungen für<br />
<strong>Co</strong>mputernamen, Domäne <strong>und</strong> Arbeitsgruppe«<br />
unter »Systemsteuerung | System<br />
<strong>und</strong> Sicherheit | System« sollte dem Win-<br />
dows-Admin geläufig sein. Allerdings ist<br />
auch in den Netzwerkeinstellungen des<br />
jeweiligen Clients darauf zu achtem, dass<br />
er die DNS-Einträge aus die DNS-Zone<br />
der Resara-Domäne auflösen kann. Dazu<br />
muss der Resara-Domänen-<strong>Co</strong>ntroller<br />
in den Netzwerkeinstellungen als DNS-<br />
Server eingetragen sein. Außerdem muss<br />
der Resara-Betreiber auch Administrator<br />
auf dem Windows-System werden <strong>und</strong><br />
die aktuelle Zeit konfigurieren.<br />
Hauptsache: Windows-<br />
Dateiserver<br />
Die im Beitrag genannten Small Business<br />
Server auf Linux-Basis sind einfach zu<br />
charakterisieren: Zentyal <strong>und</strong> Clear OS<br />
sind als typische Alleskönner konzipiert.<br />
Der Funktionsumfang lässt sich vom<br />
Administrator gezielt an die eigenen<br />
Bedürfnisse anpassen. Beide bieten zur<br />
Verwaltung ein Webinterface <strong>und</strong> sind<br />
in einer <strong>Co</strong>mmunity-, sowie in diversen<br />
kommerziellen Versionen verfügbar. Die<br />
Oberfläche des auf Red Hat (CentOS) basierenden<br />
ClearOS wirkt professioneller,<br />
während die Zentyal-GUI funktional eher<br />
an das schlichte Webmin erinnert.<br />
Bei Zentyal wählt der Administrator<br />
bereits während der Installation die gewünschten<br />
Paketgruppen, kann aber später<br />
Funktionen nachinstallieren. ClearOS<br />
kommt als Minimalsystem <strong>und</strong> verlagert<br />
sämtliche Funktionen in via Marketplace<br />
installierbare Apps. In Sachen Samba 4<br />
Infos<br />
[1] Univention <strong>Co</strong>rporate Server:<br />
[http:// www. univention. de/ produkte/ ucs/]<br />
[2] Florian Effenberger, Univention <strong>Co</strong>rporate<br />
Server 3.0, <strong>ADMIN</strong> 01/ 2012<br />
[3] Zentyal Editions:<br />
[http:// www. zentyal. com/ pricing‐editions]<br />
[4] Zentyal‐Subscriptions:<br />
[http:// www. zentyal. com/ wpcontent/<br />
uploads/ 2012/ 07/ 2012_full_zentyal_edition_comparison_chart_en_EUR.<br />
pdf]<br />
[5] Zentyal 3.0:<br />
[http:// trac. zentyal. org/ milestone/ 3. 0]<br />
[6] Download ClearOS:<br />
[http:// www. clearfo<strong>und</strong>ation. com/<br />
Software/ downloads. html]<br />
[7] ClearCenter Active Directory <strong>Co</strong>nnector:<br />
[http:// www. clearcenter. com/ Software/<br />
active‐directory‐connector. html]<br />
[8] ClearCenter Store: [http:// www.<br />
clearcenter. com/ Store/ store. html]<br />
[9] ClearOS mit Zarafa: [http://<br />
www. clearcenter. com/ Software/<br />
zarafa‐collaboration‐platform. html]<br />
[10] Resara‐Versionen:<br />
[http:// www. resara. org]<br />
Der Autor<br />
Thomas Drilling ist seit mehr als zehn Jahren<br />
hauptberuflich als freier Journalist <strong>und</strong> Redakteur<br />
für Wissenschafts‐ <strong>und</strong> IT‐<strong>Magazin</strong>e tätig. Er<br />
selbst <strong>und</strong> das Team seines Redaktionsbüros verfassen<br />
regelmäßig Beiträge zu den Themen Open<br />
Source, Linux, Server, IT‐Administration <strong>und</strong> Mac<br />
OSX. Außerdem arbeitet Thomas Drilling als Buchautor<br />
<strong>und</strong> Verleger, berät als IT‐<strong>Co</strong>nsultant kleine<br />
<strong>und</strong> mittlere Unternehmen <strong>und</strong> hält Vorträge zu<br />
Linux, Open Source <strong>und</strong> IT‐Sicherheit.<br />
106 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
ALLE AUSGABEN DER LETZTEN 12 MONATE<br />
Sie haben ein admin verpaSSt? Kein problem!<br />
bei uns können Sie alle ausgaben des admin magazin<br />
der letzten 12 monate ganz einfach <strong>und</strong> versandkostenfrei<br />
unter www.admin-magazin.de/einzelheft nachbestellen:<br />
admin 05/2011 admin 06/2011 admin 01/2012<br />
admin 02/2012 admin 03/2012 admin 04/2012<br />
damit Sie keine ausgabe mehr verpassen,<br />
bestellen Sie am besten gleich ein abo<br />
vom admin magazin <strong>und</strong> 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
ProgrA mmieren<br />
systemtap<br />
Ein Blick in den Linux-Kernel mit Systemtap<br />
Abgezapft<br />
systemtap hilft dabei, in Produktivumgebungen einen blick<br />
in den laufenden Kernel zu werfen. wer sehen will, wo das<br />
system bei hoher belastung hängt, sollte einen blick auf dieses<br />
l eistungsfähige Tool werfen. steve best<br />
© Zlatko Guzmic, 123RF<br />
Früher hatte Linux nicht den besten Ruf,<br />
was seine Fähigkeiten für Tracing <strong>und</strong><br />
Debugging betrifft. Das hat sich mit der<br />
Einführung des System Tracing and Profiling<br />
Framework (kurz Systemtap [1])<br />
geändert. In den letzten fünf Jahren ist<br />
Systemtap zu einem zuverlässigen Tool<br />
gereift <strong>und</strong> nun in den meisten Linux-<br />
Distributionen vorhanden. Es gibt auch<br />
ein Eclipse-basiertes Frontend für den<br />
Einsatz zur Systemanalyse oder zur Programmierung<br />
[2].<br />
Administratoren <strong>und</strong> Entwickler könnten<br />
mit Systemtap in Echtzeit Informationen<br />
aus einem laufenden Linux-Kernel erhalten.<br />
Das Tool macht es einfach, Daten<br />
zu sammeln, die man später für Performance-Analyse<br />
oder Fehlersuche verwenden<br />
kann. Den Kernel mit speziellen Optionen<br />
zu übersetzen oder zu rebooten,<br />
ist mit Systemtap nicht nötig.<br />
Systemtap bietet eine eigene Awk-ähnliche<br />
Programmiersprache [3] für eigene<br />
Skripte <strong>und</strong> lässt sich ansonsten über<br />
die Kommandozeile steuern. Die Informationen,<br />
die Systemtap ausgibt, ähneln<br />
der Ausgabe von Tools wie<br />
»ps«, »top«, »sar«, »vmstat«,<br />
»iostat«, »free«, »uptime«,<br />
»mpstat«, »pmap«, »netstat«,<br />
»iptraf«, »tcpdump«, »strace«,<br />
»lsof« oder dem Proc-Filesystem.<br />
Die meisten dieser Tools beschränken<br />
sich auf einen Teilaspekt<br />
des Gesamtsystems<br />
<strong>und</strong> geben die gemessenen<br />
Werte immer im gleichen<br />
Format aus. Systemtap ist da<br />
flexibler, denn es kann eine<br />
breite Palette an Subsystemen gleichzeitig<br />
messen <strong>und</strong> so unter Umständen Beziehungen<br />
zueinander feststellen. Einen<br />
Messpunkt (Probe Point) im Kernel festzulegen,<br />
ist dabei sehr einfach.<br />
Installation<br />
Um mit Systemtap zu arbeiten, müssen<br />
alle nötigen Pakete installiert sein. Das<br />
bedeutet aber nicht nur, dass die Systemtap-Software<br />
installiert sein muss, sondern<br />
auch die Pakete mit den Debugging-<br />
Symbolen der untersuchten Programme,<br />
damit Systemtap zum Beispiel die Variablennamen<br />
an einem Probe Point anzeigen<br />
kann.<br />
Die Beispiele in diesem Artikel wurden<br />
auf einem System mit Red Hat Enterprise<br />
Linux 5.5 ausgeführt, auf dem die folgenden<br />
Pakete installiert wurden:<br />
n systemtap-runtime-1.1-3.el5.ix86.rpm<br />
n kernel-debuginfo-2.6.18-194.el5.rpm<br />
n kernel-debuginfo-common-2.6.18-194.<br />
el5.rpm<br />
n kernel-devel-2.6.18-194.el5.rpm<br />
Abbildung 1: Der schematische Ablauf beim Einsatz von Systemtap.<br />
Beispielsweise unter Ubuntu ist für die<br />
Debugging-Pakete ein eigenes Repository<br />
(»http://ddebs.ubuntu.com«) erforderlich,<br />
das Kernel-Entwickler-Paket heißt<br />
»linux-headers«.<br />
Systemtap bringt schon eine Anzahl von<br />
Skripte mit, die zum Beispiel Informationen<br />
über den Kontext eines Messpunkts<br />
ausgeben oder eingebaute Events bereitstellen.<br />
Ein solches Skript wird in der<br />
Systemtap-Nomenklatur „Tapset“ genannt.<br />
Mehr dazu verrät der gleichnamige<br />
Kasten.<br />
Die Manpage zu »stapfuncs« führt Funktionen<br />
auf, die die Tapset-Bibliothek bereitstellt.<br />
Dies sind einige gebräuchliche<br />
Tapsets:<br />
n »tid()«: die aktuelle Thread-ID.<br />
n »pid()«: die Prozess-ID (Taskgroup-ID)<br />
des aktuellen Threads.<br />
n »execname()«: der Name des Prozesses.<br />
n »gettimeofday_ns()«: Nanosek<strong>und</strong>en<br />
seit der Epoche (1.1.1970).<br />
Die Beispielskripte in diesem Artikel verwenden<br />
diese Tapsets, die Strings oder<br />
Zahlen zurückgeben, die sich<br />
mit der eingebauten Print-<br />
Funktion einfach ausgeben<br />
lassen. Alternativ gibt es die<br />
Funktion »printf«, die wie ihr<br />
C-Pendant Formatstrings verarbeitet,<br />
also etwa »%s« für<br />
einen String <strong>und</strong> »%d« für<br />
eine Integer-Zahl.<br />
Die einfachste Probe ist eine,<br />
die nur ein Event verfolgt.<br />
Dies lässt sich bewerkstelligen,<br />
indem man an den richtigen<br />
Stellen Print-Statements<br />
108 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
systemtap<br />
ProgrA mmieren<br />
in den Kernel einfügt. Diese Vorgehensweise<br />
ist oft der erste Schritt dabei, ein<br />
Kernel-Problem zu lösen: einen Aufruf<br />
näher zu untersuchen <strong>und</strong> zu sehen, was<br />
genau dabei passiert. Dabei wird Systemtap<br />
nur angewiesen, bei jedem Event eine<br />
Meldung auszugeben. Ein solches Skript<br />
besteht also nur aus dem Ort der Probe<br />
<strong>und</strong> der Ausgabe.<br />
Zeitmessung<br />
Als Nächstes könnte man messen, wie<br />
lange ein Aufruf dauert, beispielsweise<br />
der Systemcall »open()«. Die Zeitwerte<br />
sollen dabei in einem Array abgelegt<br />
werden, also muss Systemtap Werte aus<br />
einem Array lesen. Das funktioniert im<br />
Prinzip wie bei den meisten Programmiersprachen,<br />
also mit Indices <strong>und</strong> geschweiften<br />
Klammern, zum Beispiel:<br />
delta = gettimeofday_ns() - zeit[tid()]<br />
Setzen lassen sich Array-Werte analog:<br />
zeit[tid()] = gettimeofday_ns()<br />
Dieser <strong>Co</strong>de setzt einen Zeitstempel, der<br />
als Referenz dient, um die Differenz zu<br />
berechnen. Wenn ein Skript die Zeile<br />
ausführt, setzt Systemtap den jeweiligen<br />
Wert für die Thread-ID als Index ein.<br />
Gleichzeitig liefert der Aufruf »gettimeofday_ns()«<br />
den gerade aktuellen Zeitstempel<br />
zurück. Am Ende bleibt ein Array mit<br />
den Thread-IDs als Schlüsseln <strong>und</strong> den<br />
Zeitstempeln als Werten.<br />
Die erste Probe ist in Listing 1 zu sehen.<br />
Sie misst die Zeit, die der Kernel im Systemcall<br />
»open()« verbracht hat, dessen<br />
<strong>Co</strong>de in »fs/open.c« zu finden ist. Der<br />
Open-Aufruf besitzt die Syntax:<br />
Tapsets<br />
Bei Tapsets handelt es sich um Skripte, die<br />
Details über bestimmte Kernel-Subsysteme<br />
enthalten <strong>und</strong> sie anderen Skripten zur Verwendung<br />
anbieten. Tapsets können analog zu<br />
Bibliotheken bei C-Programmen verstanden<br />
werden. Sie verstecken die Implementierungsdetails<br />
eines Kernel-Subsystems <strong>und</strong><br />
stellen dabei die nötigen Informationen für<br />
Messung <strong>und</strong> Überwachung zur Verfügung.<br />
Tapsets werden üblicherweise von Experten<br />
des jeweiligen Kernel-Bereichs geschrieben.<br />
Anwender, die mehr ins Detail gehen wollen,<br />
verwenden meistens keine fertigen Tapsets,<br />
sondern schreiben eigene Skripte für eine<br />
spezifische Anwendung.<br />
SYSCALL_DEFINE3(U<br />
open, const char __user *,U<br />
filename, int, flags, int, mode)<br />
Die Anweisung »syscall.Funktion« platziert<br />
die Probe am Anfang der aufgeführten<br />
Funktion, sodass die Parameter<br />
als Kontextvariablen verfügbar sind.<br />
»syscall.Funktion.return« setzt die Probe<br />
dagegen direkt bei Rücksprung aus der<br />
Funktion, womit die Rückgabewerte in<br />
der Kontextvariable »$return« vorhanden<br />
sind. Die Funktion könnte auch die<br />
Parameter verändern, statt einen Wert<br />
zurückzugeben. Deshalb ist es ratsam,<br />
eventuell in der Return-Probe einen Blick<br />
darauf zu werfen.<br />
Der folgende Aufruf startet die Probe mit<br />
dem Kommando »stap« <strong>und</strong> schreibt das<br />
Listing 1: open-syscall<br />
01 global time_open<br />
02 probe syscall.open {<br />
03 time_open[tid()] = gettimeofday_ns()<br />
04 printf("syscall_open %s -pid %d args (%s)\n",<br />
execname(), pid(), argstr)<br />
05 }<br />
06<br />
Listing 2: ergebnisse<br />
Listing 3: Anzahl Aufrufe<br />
01 global count_for_sys_open<br />
02 probe kernel.function("sys_open")<br />
03 {<br />
04 count_for_sys_open++<br />
05 }<br />
06<br />
07 probe begin {<br />
08 printf("starting sys_open probe \n")<br />
09 printf("Press Ctrl-C to stop \n")<br />
Listing 4: »mkdir()«<br />
01 probe syscall.mkdir<br />
02 {<br />
03 printf( Creating directory %s mode is %d<br />
", user_string($pathname), $mode)<br />
04 }<br />
05<br />
06 probe syscall.mkdir.return<br />
07 {<br />
Ergebnis des Testlaufs in die Datei »output«:<br />
stap -o output probe1.stp<br />
Listing 2 zeigt das Resultat von einem<br />
Probelauf, bei dem die Datei stevebest<br />
mit Gedit geöffnet wurde. Dabei dauerte<br />
der Open-Aufruf 9487ns.<br />
Listing 3 zeigt, wie einfach es ist, einen<br />
Zähler einzubauen, der die Anzahl der<br />
Aufrufe von »open()« zählt <strong>und</strong> sie am<br />
Ende ausgibt.<br />
Das nächste Beispiel in Listing 4 ist eine<br />
Probe für den Systemaufruf »mkdir()«,<br />
die das zu erzeugende Verzeichnis, den<br />
gewünschten Modus <strong>und</strong> das Ergebnis<br />
ausgibt. Diese Probe verwendet die Funktion<br />
»user_string«, um den Pfadnamen zu<br />
07 probe syscall.open.return {<br />
08 if(time_open[tid()]) {<br />
09 printf("sys_open spend %d ns to complete\n",<br />
gettimeofday_ns() - time_open[tid()])<br />
10 delete time_open[tid()]<br />
11 }<br />
12 }<br />
syscall_open gedit -pid 3976 args ("/usr/share//mime/aliases", O_RDONLY|O_LARGEFILE)<br />
sys_open spend 9503 ns to complete<br />
syscall_open gedit -pid 3976 args ("/usr/share//mime/subclasses", O_RDONLY|O_LARGEFILE)<br />
sys_open spend 8746 ns to complete<br />
syscall_open gedit -pid 3976 args ("/home/best/.gnome2/gedit-metadata.xml", O_RDONLY)<br />
sys_open spend 8487 ns to complete<br />
syscall_open gedit -pid 3976 args ("/home/best/stevebest", O_RDONLY)<br />
sys_open spend 9487 ns to complete<br />
10 }<br />
11 probe end<br />
12 {<br />
13 printf("ending sys_open probe \n")<br />
14 printf("sys_open() called %d times \n",<br />
count_for_sys_open)<br />
15 }<br />
16<br />
17 # stap probe2.stp<br />
08 if (!$return)<br />
09 printf("Created with rc %d \n",<br />
$return)<br />
10 else<br />
11 printf("Failed with rc %d \n",<br />
$return)<br />
12 }<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
109
ProgrA mmieren<br />
systemtap<br />
erfahren. Die Syntax für den Aufruf der<br />
Funktion ist:<br />
user_string:string (addr:long)<br />
Sie kopiert einen String aus dem Userspace<br />
an die gegebene Adresse. Der<br />
Quellcode für »sys_mkdir()« ist in der<br />
Datei »fs/namei.c« zu finden. Die Syntax<br />
für den Aufruf sieht so aus:<br />
Listing 5: »vfs_write()«<br />
01 global write_totals;<br />
02 probe vfs.write<br />
03 {<br />
04 write_totals[execname(), pid()]++<br />
05 }<br />
06<br />
07 probe end<br />
08 {<br />
09 printf("*** write totals ***\n")<br />
10 foreach ([name,pid] in write_totals-)<br />
11 printf("%s (%d): %d \n", name, pid, write_<br />
totals[name,pid])<br />
12 }<br />
Listing 6: Ausgabe<br />
*** write totals ***<br />
metacity (3582): 327<br />
gnome-screensav (3716): 260<br />
wnck-applet (3680): 222<br />
gnome-panel (3586): 169<br />
bonobo-activati (3592): 152<br />
gnome-power-man (3647): 151<br />
gnome-settings- (3562): 137<br />
gnome-terminal (5745): 111<br />
notification-da (3720): 102<br />
simpress.bin (4020): 85<br />
asmlinkage long sys_mkdir(U<br />
const char * pathname, int mode)<br />
Das Resultat beim Ausführen sieht dann<br />
in etwa so aus:<br />
Creating directory steveb1 U<br />
mode is 511 Created with rc 0<br />
Das folgende Skript zeigt, wie man einem<br />
Problem auf den Gr<strong>und</strong> geht, das seine<br />
Ursache in einer überaus großen Zahl<br />
von Schreibvorgängen zu haben scheint.<br />
Es verwendet das Tapset »vfs« der virtuellen<br />
Dateisystemschicht <strong>und</strong> ein assoziatives<br />
Array, um Buch über die Schreibvorgänge<br />
der einzelnen Prozesse zu führen.<br />
Listing 5 zeigt das zugehörige Skript.<br />
Die VFS-Tapset-Library ist in der Datei<br />
»vfs.stp« implementiert, die sich in »/usr/<br />
share/systemtap/tapset/« befindet. Ein<br />
Blick in dieses Verzeichnis zeigt noch<br />
eine Reihe weiterer interessanter Tapset-<br />
Dateien, die man in eigenen Skripten<br />
verwenden kann. Die Kernelquellen für<br />
»vfs_write()« sind in »fs/read_write.c« zu<br />
finden. Wenn man das Skript aus Listing<br />
5 ausführt, ergibt sich eine Übersicht<br />
ähnlich zu der in Listing 6.<br />
Weil nicht nur die Anzahl der Schreibvorgänge<br />
eine Rolle spielt, sondern auch die<br />
Frage, wie viele Bytes jeweils geschrieben<br />
(<strong>und</strong> gelesen) wurden, sollte man je nach<br />
Anwendungsfall auch dies genauer untersuchen.<br />
Dazu bieten sich die Syscalls<br />
»sys_read()« <strong>und</strong> »sys_write()« an, die<br />
in »fs/read_write.c« implementiert sind.<br />
Listing 7 zeigt eine Probe, die die gelesenen<br />
<strong>und</strong> geschriebenen Datenmengen<br />
protokolliert.<br />
Fazit<br />
Systemtap ermöglicht einen Blick ins Innerste<br />
eines laufenden Linux-Betriebssystems.<br />
Mit den dynamischen Probes<br />
ist es einfach, die Untersuchung auf das<br />
Subsystem zu konzentrieren, das bei der<br />
Fehlersuche <strong>und</strong> beim Performance-Tuning<br />
interessiert. Die im Artikel vorgestellten<br />
Probes lassen sich für eigene Experimente<br />
verwenden oder für konkrete<br />
Anwendungen erweitern. (ofr) n<br />
Infos<br />
[1] Systemtap: [http://sourceware.org/<br />
systemtap/ wiki]<br />
[2] GUI for Systemtap: [http://stapgui.<br />
sourceforge. net/]<br />
[3] Systemtap-Sprachreferenz: [http://<br />
sourceware. org/ systemtap/langref/]<br />
Der Autor<br />
Steve Best arbeitet im IBM Linux Technology<br />
Center in Westford/ MA. Seit 1999 beschäftigt<br />
er sich mit Kernel-Entwicklung in den Bereichen<br />
Dateisystemen, Internationalisierung <strong>und</strong> Performance<br />
Tuning. Er hat das Buch „Linux Debugging<br />
and Performance Tuning: Tips and Techniques“<br />
geschrieben.<br />
Listing 7: »sys_read()« <strong>und</strong> »sys_write()«<br />
01 global count_sys_read, count_sys_write, sys_read_bytes_req, sys_rd_<br />
bytes, sys_write_bytes_req, sys_wr_bytes<br />
02<br />
03 probe kernel.function("sys_read") {<br />
04 count_sys_read++<br />
05 sys_read_bytes_req += $count<br />
06 }<br />
07<br />
08 probe kernel.function("sys_read").return {<br />
09 rnb = $return<br />
10<br />
11 if (rnb == -1)<br />
12 printf(" +++Read not successful+++ \n")<br />
13 else<br />
14 sys_rd_bytes += rnb<br />
15 }<br />
16<br />
17 probe kernel.function("sys_write") {<br />
18 count_sys_write++<br />
19 sys_write_bytes_req += $count<br />
20 }<br />
21<br />
22 probe kernel.function("sys_write").return {<br />
23 wnb = $return<br />
24<br />
25 if (wnb == -1)<br />
26 printf(" ***Write not successful*** \n")<br />
27 else<br />
28 sys_wr_bytes += wnb<br />
29 }<br />
30<br />
31 probe begin {<br />
32 printf("Starting probe sys_read and sys_write \n")<br />
33 }<br />
34<br />
35 probe end {<br />
36 printf("Ending probe sys_read and sys_write \n")<br />
37 printf("%d bytes requested to read \n",sys_read_bytes_req)<br />
38 printf("Total bytes read %d \n",sys_rd_bytes)<br />
39 printf("%d calls to sys_read() \n",count_sys_read)<br />
40 printf("%d bytes requested to write \n",sys_write_bytes_req)<br />
41 printf("Total bytes written %d \n",sys_wr_bytes)<br />
42 printf("%d calls to sys_write() \n",count_sys_write)<br />
43 }<br />
110 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
8,90 *<br />
140 Seiten GIMP<br />
+ DVD<br />
JETZT AM KIOSK!<br />
Ja, ich bestelle LinuxUser Spezial 01/2012 zum Preis von e 8,90*.<br />
Vorname, Name<br />
Straße<br />
Firma<br />
PLZ/Ort<br />
Abteilung<br />
<strong>Co</strong>upon ausschneiden <strong>und</strong> an<br />
Linux New Media AG, Putzbrunner Str. 71, 81739 München senden<br />
Schneller bestellen per: Tel.: 089 / 99 34 11–0 E-Mail: order@linuxnewmedia.de<br />
Fax: 089 / 99 34 11–99<br />
http://www.linuxuser.de/spezial<br />
*Preis gilt für Deutschland.<br />
Linux New Media AG, Putzbrunner Str. 71, 81739 München, Vorstand: Brian Osborn, Hermann Plank, Aufsichtsrat: Rudolf Strobl (Vorsitz), Handelsregister: HRB 129161 München<br />
E-Mail<br />
Ja, bitte informieren Sie mich über weitere Neuheiten aus dem Bereich Linux<br />
<strong>und</strong> OpenSource
PrO grA mmieren<br />
Python-subprocess<br />
© subbotina, 123RF<br />
Kommandos mit dem Subprocess-Modul aufrufen<br />
In der Pfeife<br />
Für die meisten Anwendungen stellt Python eigene bibliotheken zur Verfügung. wer dennoch einmal externe<br />
unix-Programme aufrufen oder gar verbinden will, sollte das subprocess-modul verwenden, das dieser workshop<br />
näher vorstellt. Oliver Frommel<br />
Jede Skriptsprache stellt Mechanismen<br />
bereit, mit denen Anwender Unix-Systemprogramme<br />
aufrufen können. Bei vielen<br />
gibt es einen Aufruf namens »system()«,<br />
mit dem sich das bewerkstelligen lässt.<br />
Oder es gibt die von der Shell bekannten<br />
Backticks wie »`ls`«. Auch unter Python<br />
bietet das Modul »os« diese Funktion,<br />
aber mit Python 2.4 wurde das Subprocess-Modul<br />
eingeführt, dass für diesen<br />
Zweck einige Vorteile bietet.<br />
Das Subprocess-Modul löst einige andere<br />
Aufrufe ab, die das OS-Modul bietet,<br />
etwa »popen()« (das seit Python 2.6<br />
als „deprecated“ also veraltet gilt) <strong>und</strong><br />
verschiedene Varianten von »spawn()«.<br />
Weiterhin bietet das OS-Modul eine Reihe<br />
von Exec-Aufrufen wie »execl()«, »execlp()«<br />
<strong>und</strong> so weiter, die ihren Pendants<br />
der C-Bibliothek entsprechen, aber das<br />
laufende Skript komplett durch den neu<br />
gestarteten Prozess ersetzen. Dieser Artikel<br />
beschäftigt sich im Weiteren mit den<br />
Methoden, die das Subprocess-Modul<br />
bereitstellt, um in eigenen Skripten möglichst<br />
strukturiert Kommandozeilenprogramme<br />
aufzurufen <strong>und</strong> deren Ausgabe<br />
weiterzuverarbeiten.<br />
Im einfachsten Fall lässt sich ein Befehl<br />
mit der Methode call() aufrufen, wobei<br />
Befehl <strong>und</strong> Argument als Array übergeben<br />
werden:<br />
>>> import subprocess<br />
>>> subprocess.call([„ls“, „-l“])<br />
0<br />
Das führt im interaktiven Python-Modus<br />
zwar zum gewünschten Ergebnis, denn<br />
der Inhalt des Verzeichnisses wird auch<br />
angezeigt, aber das ist eigentlich nur ein<br />
Ebeneffekt, weil sich Interpreter <strong>und</strong> der<br />
Aufruf die Standardausgabe teilen. Tatsächlich<br />
gibt der Aufruf von Call nur<br />
den Rückgabewert des aufgerufenen Befehls<br />
zurück, im Erfolgsfall, wie oben,<br />
also eine Null. Der Call-Aufruf wartet,<br />
bis das aufgerufene Kommando beendet<br />
ist, blockiert also solange das Skript<br />
beziehungsweise den aktuellen Thread.<br />
Beinahe das Gleiche wie »call()« macht<br />
»check_call()«, es prüft jedoch zusätzlich<br />
den Rückgabewert <strong>und</strong> löst eine Exception<br />
aus, wenn ein Fehler aufgetreten<br />
ist.<br />
Neu in Python-Version 2.7 ist die Methode<br />
»subprocess.check_output()«, die<br />
die Ausgabe des aufgerufenen Befehls<br />
als Bytestring zurückliefert. Wer das bei<br />
älteren Python-Versionen erreichen will,<br />
muss sich anders behelfen, dazu gleich<br />
mehr.<br />
Möglicherweise empfindet man die Notwendigkeit,<br />
den aufgerufenen Befehl <strong>und</strong><br />
seine Argumente als Array übergeben zu<br />
müssen als umständlich. Allerdings hält<br />
Python hierzu einen nützlichen Helfer<br />
bereit, der sich in diesem Fall als typisches<br />
Programmieridiom einsetzen lässt:<br />
Das Modul »shlex« bietet die Methode<br />
»split()«, die aus einem Aufruf-String genau<br />
das von den Subprocess-Methoden<br />
erwartete Format macht:<br />
cmd = „convert -geometry 80x60 a.png b.png“<br />
args = shlex.split(cmd)<br />
subprocess.call(args)<br />
Wenn man nicht wie in diesem Beispiel,<br />
Dateien auf der Festplatte verändert, wird<br />
man in Skripte typischerweise häufig die<br />
Ausgabe eines Befehls weiterverarbeiten<br />
wollen. Das erwähnte »subprocess.<br />
check_open()« ist hierzu perfekt geeignet,<br />
doch was kann man machen, wenn<br />
man noch auf eine Python-Version älter<br />
112 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Python-subprocess<br />
PrO grA mmieren<br />
Ersetzt man den Call-Aufruf in Zeile 9<br />
durch die Methode Popen, sieht das Ergebnis<br />
gleich anders aus (Abbildung 1).<br />
Die Laufzeit reduziert sich damit auf ein<br />
Drittel! Mit so einfachen Methoden lasals<br />
2.7 angewiesen ist? Die Lösung dafür<br />
ist leider nicht sehr elegant, denn sie<br />
verwendet eine der Popen-Methoden, die<br />
eigentlich für die Kommunikation mehrerer<br />
Prozesse gedacht ist. Den Stdout-<br />
Dateideskriptor setzt man dafür zuerst<br />
auf den Pipe-Modus <strong>und</strong> startet dann mit<br />
dem Aufruf von communicate die Kommunikation<br />
mit dem Subprozess:<br />
output = Popen(args, stdout=PIPE).U<br />
communicate()[0]<br />
»communicate()« gibt ein Tupel von<br />
Daten für Stdout <strong>und</strong> Stderror zurück,<br />
deshalb verwendet der obige Aufruf das<br />
»[0]«-Subskript, um an die Standardausgabe<br />
zu gelangen.<br />
Analog funktioniert es, mit Popen mehrere<br />
Befehle zu verketten, ähnlich wie<br />
bei Shell-Pipelines. Der erste Prozess<br />
bekommt als Ausgabe das Token »subprocess.PIPE«<br />
zugewiesen, das der folgende<br />
Prozess dann als Standardeingabe<br />
verwendet. Am Ende lässt sich das Ergebnis<br />
wieder mit »communicate()[0]«<br />
auffangen. Ein Beispiel zeigt Listing 1.<br />
Aus dem mit Newlines durchsetzten Ergebnisstring<br />
macht dann etwa der Aufruf<br />
»lines = output.split("\n")« ein Array<br />
mit einzelnen Zeilen.<br />
Shell=True<br />
Einer der möglichen Aufrufparameter der<br />
Subprocess-Methoden gibt an, ob beim<br />
Ausführen des Programms eine Shell gestartet<br />
werden soll oder nicht. Aus Sicherheitsgründen<br />
rät die Dokumentation<br />
davon ab, das zu tun, jedenfalls wenn ein<br />
Skript Benutzereingaben verarbeitet, die<br />
später in einen solchen Aufruf münden.<br />
Das kann nämlich zu einer Sicherheitslücke<br />
führen, die den von Webanwendungen<br />
bekannten SQL Injections ähnelt. Sie<br />
firmieren deshalb auch unter dem Namen<br />
Shell Injections <strong>und</strong> funktionieren so: Der<br />
böswillige Anwender hängt hinter eine<br />
Eingabe mit Semikolon getrennt einen<br />
eigenen Befehl an, den das fehlerhafte<br />
Skript dann mit ausführt.<br />
Parallel<br />
Bei eigenen Skripten, die länger dauernde<br />
Berechnungen oder Tasks durchführen,<br />
ist es auch wichtig zu wissen, dass manche<br />
Subprocess-Methoden die Befehle im<br />
Hintergr<strong>und</strong> ausführen, ohne das Skript<br />
zu blockieren. Auf Multicore-Rechnern<br />
führen diese Methoden zum Teil zu einem<br />
erheblichen Performance-Gewinn.<br />
Als Beispiel konvertiert das Skript in<br />
Listing 2 alle Jpg-Dateien im aktuellen<br />
Verzeichnis in Thumbnails.<br />
In dieser Form verwendet es die Call-<br />
Methode, die ein Bild nach dem anderen<br />
verarbeitet. Das Ganze dauert auf einem<br />
Vierkern-Rechner etwa 30 Sek<strong>und</strong>en:<br />
$ time python call.py<br />
real<br />
user<br />
sys<br />
0m32.028s<br />
1m32.154s<br />
0m4.568s<br />
sen sich Skripte tunen, wenn man die<br />
richtigen Python-Methoden verwendet.<br />
Das setzt natürlich voraus, dass die verarbeiteten<br />
Tasks voneinander unabhängig<br />
sind. Wer möglichst fehlerfreie Skripte<br />
schreiben will, überprüft beim Start eines<br />
Skripts, ob alle aufgerufenen Shell-Kommandos<br />
auch verfügbar sind. Dabei hilft<br />
ein Python-Skript, das ausführbare Dateien<br />
im »PATH« auf einem Unix-System<br />
sucht (Listing 3). Es zerlegt die Umgebungsvariable<br />
in einzelne Elemente, verkettet<br />
sie mit dem fraglichen Befehl <strong>und</strong><br />
prüft, ob die Datei mit dem entstehenden<br />
Pfad existiert <strong>und</strong> ausführbar ist. Falls ja,<br />
gibt die Funktion sie zurück. Findet sie<br />
keine Datei, auf die das zutrifft, ist der<br />
Rückgabewert »False«. Mit den im Artikel<br />
beschriebenen Methoden sollte es ein<br />
leichtes sein, eine Funktion zu schreiben,<br />
die das gleiche Ziel erreicht, indem sie<br />
den Unix-Befehl »which« aufruft. n<br />
Listing 1: Pipes<br />
01 import shlex<br />
02 from subprocess import Popen<br />
03 from subprocess import PIPE<br />
04<br />
05 pscmd = shlex.split("ps auxw")<br />
06 grepcmd = shlex.split("grep root")<br />
07 ps = Popen(pscmd, stdout=PIPE)<br />
08 grep = Popen(grepcmd, stdin=ps.stdout, stdout=PIPE)<br />
09 output = grep.communicate()[0]<br />
Listing 2: benchmark-<strong>Co</strong>de<br />
01 import glob<br />
02 import subprocess<br />
03<br />
04 files = glob.glob("*.jpg")<br />
05<br />
06 for file in files:<br />
07 cmd = "convert -geometry 640x480 " + file +<br />
" tmp/" + file<br />
08 print cmd<br />
09 subprocess.call(cmd)<br />
Abbildung 1: Mit dem Austausch nur des Methodenaufrufs von »call()« durch »Popen()« verringert sich die<br />
Laufzeit des Skripts auf ein Drittel.<br />
Listing 3: which<br />
01 def which(program):<br />
02 pathlist = os.environ['PATH'].split(os.pathsep)<br />
03 for dir in pathlist:<br />
04 filename = os.path.join(dir, program)<br />
05 try:<br />
06 st = os.stat(filename)<br />
07 except os.error:<br />
08 continue<br />
09 mode = S_IMODE(st.st_mode)<br />
10 if mode & 0111:<br />
11 return filename<br />
12 return False<br />
www.A dmin-mAgA zin.de<br />
Admin<br />
AusgA be 05-2012<br />
113
s e RVi C e<br />
impressum <strong>und</strong> <strong>Vorschau</strong><br />
Impressum ISSN 2190-1066<br />
<strong>ADMIN</strong>-<strong>Magazin</strong> eine Publikation der Linux New Media AG<br />
Redaktionsanschrift Putzbrunner straße 71<br />
81739 münchen<br />
Tel.: 0 89/99 34 11-0<br />
Fax: 0 89/99 34 11-99 oder -96<br />
internet<br />
www.admin-magazin.de<br />
e-mail<br />
redaktion@admin-magazin.de<br />
Geschäftsleitung b rian Osborn (Vorstand), bosborn@linuxnewmedia.de<br />
Hermann Plank (Vorstand), hplank@linuxnewmedia.de<br />
Chefredakteure Oliver Frommel (V.i.s.d.P.),<br />
ofrommel@admin-magazin.de (ofr)<br />
Jens-Christoph brendel<br />
jbrendel@admin-magazin.de (jcb)<br />
Redaktion<br />
news/Report<br />
ulrich bantle (Ltg.), ubantle@linuxnewmedia.de (uba)<br />
mathias Huber, mhuber@linuxnewmedia.de (mhu)<br />
software/Test<br />
marcel Hilzinger, mhilzinger@linuxnewmedia.de, (mhi)<br />
Kristian Kißling, kkissling@linuxnewmedia.de, (kki)<br />
security/networking markus Feilner, mfeilner@linuxnewmedia.de (mfe)<br />
Thomas Leichtenstern, tleichtenstern@linuxnewmedia.de (tle)<br />
ständige mitarbeiter elke Knitter (schlussredaktion),<br />
Carsten schnober, Tim schürmann, Claudia Thalgott<br />
Produktionsleitung Christian ullrich, cullrich@linuxnewmedia.de<br />
Grafik<br />
Klaus Rehfeld, Judith erb<br />
Titel: Judith erb, Ausgangsgrafik: tiero, 123RF<br />
Abo-Infoseite<br />
Abonnenten-Service<br />
www.admin-magazin.de/abo<br />
Veronika Kramer<br />
abo@admin-magazin.de<br />
Tel.: 07131/27 07 274, Fax: 07131/27 07 78 601<br />
Preise Print Deutschland Österreich Schweiz Ausland EU<br />
einzelheft € 9,80 € 10,80 sfr 19,60 (siehe Titel)<br />
mini-Abo (2 Ausgaben) € 9,80 € 10,80 sfr 19,60 (siehe Titel)<br />
Jahres-dVd (einzelpreis) € 14,95 € 14,95 sfr 18,90 € 14,95<br />
Jahres-dVd (zum Abo 1 ) € 6,70 € 6,70 sfr 8,50 € 6,70<br />
Jahresabo € 49,90 € 54,90 sfr 99,90 € 59,90<br />
Preise Digital Deutschland Österreich Schweiz Ausland EU<br />
Heft-PdF einzelausgabe € 9,80 € 9,80 sfr 10,71 € 9,80<br />
digisub (6 Ausgaben) € 44,90 € 44,90 sfr 49,05 € 44,90<br />
digisub (zum Printabo) € 6,— € 6,— sfr 6,— € 6,—<br />
HTmL-Archiv (zum Abo 1 ) € 48,— € 48,— sfr 48,— € 48,—<br />
Preise Kombiabos<br />
Profi-Abo 2 € 136,60 € 151,70 sfr 259,90 € 165,70<br />
1<br />
nur erhältlich in Verbindung mit einem Jahresabo Print oder digital<br />
2<br />
mit Linux-magazin-Abo <strong>und</strong> beiden Jahres-dVds<br />
Schüler- <strong>und</strong> Studentenermäßigung: 20 Prozent gegen Vorlage eines schülerausweises oder einer aktuellen<br />
immatrikulationsbescheinigung. der aktuelle nachweis ist bei Verlängerung neu zu erbringen. Andere Abo-<br />
Formen, ermäßigungen im Ausland etc. auf Anfrage.<br />
Adressänderungen bitte umgehend mitteilen, da nachsendeaufträge bei der Post nicht für zeitschriften gelten.<br />
Pressemitteilungen info@admin-magazin.de<br />
Anzeigen/Repräsentanz<br />
es gilt die Anzeigenpreisliste vom 01.01.2010<br />
National<br />
Petra Jaser<br />
Tel.: 089/99 34 11 24, Fax: 089/99 34 11 99<br />
e-mail: anzeigen@admin-magazin.de<br />
Pressevertrieb mzV, moderner zeitschriften Vertrieb gmbH<br />
breslauer straße 5, 85386 eching<br />
Tel.: 089/31906-0, Fax: 089/31906-113<br />
Druck<br />
Vogel druck <strong>und</strong> medienservice gmbH<br />
97204 Höchberg<br />
der begriff unix wird in dieser schreibweise als generelle bezeichnung für die unix-ähnlichen betriebssysteme<br />
verschiedener Hersteller, zum beispiel eurix (<strong>Co</strong>mfood), ultrix (digital equipment), HP/uX (Hewlett-Packard) oder sinix<br />
(siemens) benutzt, nicht als die bezeichnung für das Trademark von X/Open. Linux ist eingetragenes marken zeichen von<br />
Linus Torvalds <strong>und</strong> wird in unserem markennamen mit seiner erlaubnis verwendet. Alle anderen marken sind eigentum<br />
der jeweiligen inhaber. eine Haftung für die Richtigkeit von Veröffentlichungen kann trotz sorgfältiger Prüfung durch<br />
die Redaktion vom Verlag nicht übernommen werden. mit der einsendung von manu s kripten gibt der Verfasser seine<br />
zustimmung zum Abdruck im Admin-magazin. Für unverlangt ein gesandte manuskripte kann keine Haftung übernommen<br />
werden. die Redaktion behält sich vor, Artikel zu kürzen. das exklusiv- <strong>und</strong> Verfügungsrecht für angenommene<br />
manuskripte liegt beim Verlag. es darf kein Teil des inhalts ohne ausdrückliche schriftliche genehmigung des Verlags in<br />
irgendeiner Form vervielfältigt oder verbreitet werden. <strong>Co</strong>pyright © 1994–2012 Linux new media Ag<br />
Inserentenverzeichnis<br />
1&1 Internet AG http:// www.eins<strong>und</strong>eins.de 14<br />
<strong>ADMIN</strong> http:// www.admin-magazin.de 73, 97, 107, 115<br />
Android User http:// www.android-user.de 55, 89<br />
Angel Business <strong>Co</strong>mmunications Ltd http:// www.angelbc.co.uk 87<br />
Deutsche Python Konferenz - Py<strong>Co</strong>n http:// de.pycon.org 13<br />
Fernschule Weber GmbH http:// www.fernschule-weber.de 21<br />
Galileo Press http:// www.galileo-press.de 41<br />
German Unix User Group (GUUG) e.V. http:// www.guug.de 63<br />
Heinlein Professional Linux<br />
Support GmbH http:// www.heinlein-support.de 53<br />
Hetzner Online AG http:// www.hetzner.de 116<br />
Host Europe GmbH http:// www.hosteurope.de 7<br />
Hostserver GmbH http:// www.hostserver.de 17<br />
Inlab Software GmbH http:// www.inlab.de 35<br />
IT-Security Messe http:// www.it-sa.de 99<br />
Kamp Netzwerkdienste GmbH http:// www.kamp.net 29<br />
Kettner Mathias - Linux Experte http:// www.mathias-kettner.de 27<br />
Lamarc EDV-Schulungen u.<br />
Beratung GmbH http:// www.lamarc.com 71<br />
Linux-Hotel http:// www.linuxhotel.de 31<br />
Linux-<strong>Magazin</strong> http:// www.linux-magazin.de 79, 105<br />
Linux-<strong>Magazin</strong> Academy http://academy.linux-magazin.de 25, 67, 85<br />
LinuxUser http:// www.linuxuser.de 111<br />
Netways GmbH http:// www.netways.de 57<br />
Netzwerktotal http:// www.netzwerktotal.de 37<br />
outbox AG http:// www.outbox.de 2<br />
pascom - Netzwerktechnik<br />
GmbH & <strong>Co</strong>.KG http:// www.pascom.net 11<br />
PlusServer AG http:// www.plusserver.de 38, 50, 60, 92<br />
Proxmox http:// www.proxmox.com 49<br />
Thomas Krenn AG http:// www.thomas-krenn.com 9<br />
Webtropia http:// www.webtropia.com 33<br />
Autoren dieser Ausgabe<br />
Steve Best Abgezapft 108<br />
David J. Dodd Ausgeschnüffelt 52<br />
Thomas Drilling Business in a Box 100<br />
Thomas Drilling Wirtshaus 34<br />
Bernd Erk Auf Schatzsuche 26<br />
Thomas Joos Aufpoliert 94<br />
Thomas Joos Gefixt <strong>und</strong> zugenäht 56<br />
Thomas Joos Revierkampf 30<br />
© Katharina Wittfeld, 123RF<br />
VORs CHAu<br />
A dmin 06/2012 eR s CHeinT A m 8. nOVembeR 2012<br />
RAID<br />
die RAid-Technologie verspricht<br />
höhere Performance <strong>und</strong> mehr<br />
sicherheit beim permanenten speichern<br />
von daten. wir geben einen<br />
Überblick über RAid-Level, testen<br />
Rack-systeme <strong>und</strong> verraten, wie<br />
man kaputte RAids wiederherstellt.<br />
Michael Kofler Virtuelle Bastelst<strong>und</strong>e 44<br />
Andreas Kurz Alles in Butter 80<br />
Jochen Lillich Projekt-Jonglage 74<br />
Martin Loschwitz Storage-Magie 62<br />
Vilma Niclas Gebraucht gekauft 16<br />
Thorsten Scherf Schutzschild 20<br />
Tim Schürmann König der Rechner 68<br />
SQL Injections<br />
schlecht programmierte webanwendungen<br />
sind das häufigste<br />
einfallstor für Hacker.<br />
Admin erklärt, wie sQL injections<br />
funktionieren, wie man sie in eigenen<br />
Anwendungen aufspürt <strong>und</strong><br />
künftig vermeidet.<br />
© fuzzbones, 123RF<br />
114 AusgA be 05-2012 Admin www.A dmin-mAgA zin.de
Admin-mAGAZin<br />
im JAhres-Abo<br />
Jede Ausgabe des Admin-<strong>Magazin</strong>s bietet praktisch anwendbares Wissen<br />
von ausgewiesenen Experten <strong>und</strong> ausführliche Hintergr<strong>und</strong>berichte für alle<br />
Systemverwalter von Linux, Unix <strong>und</strong> Windows. Die Schwerpunkte reichen von<br />
Storage <strong>und</strong> Backup bis hin zu Netzwerk-Themen <strong>und</strong> Security.<br />
Ein Sonderteil hilft Admins heterogener Welten.<br />
15 % sparen<br />
Jetzt bestellen unter:<br />
www.admin-magazin.de/abo<br />
sichern sie sich ihr<br />
GrAtis Admin t-shirt!<br />
• Telefon 07131 / 2707 274 • Fax 07131 / 2707 78 601 • E-Mail: abo@admin-magazin.de<br />
Mit dem Jahres-Abo erhalten Sie 6 Ausgaben des Admin-<strong>Magazin</strong>s zum Vorzugspreis von E 49,90 * statt E 58,80 *<br />
(Lieferung frei Haus).<br />
* Preise gelten für Deutschland. Schweiz: SFr 82,32; Österreich: E 54,90; anderes Europa: E 59,90
Hetzner Online unterstützt mit der<br />
Verwendung von 100% regenerativem<br />
Strom aktiv den Umweltschutz.<br />
Entscheiden Sie sich gemeinsam<br />
mit uns für eine saubere Zukunft.