24.02.2014 Aufrufe

ADMIN Magazin KVM und Co. (Vorschau)

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 Original­Datenträ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 Upgrade­Gr<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 IT­Recht 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 IT­Recht 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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!