Am Anfang stand eine vermeintlich ganz normale forensische Auswertung. Ermittler hatten einen Solaris-Server beschlagnahmt und sollten dessen Daten auswerten. An sich nichts Besonderes, wären da nicht drei Festplatten im Raid-5-Verbund unter ZFS verbaut gewesen.
Reichlich Komplex: ZFS
Die Vorgabe, die brandneuen ZFS-Treiber unter Linux ([1], [2], [3]) einzusetzen, um eine logische Datensicherung zu erstellen, entwickelte sich zum komplexen Projekt, das in den Tabellen, Benchmarks und Testergebnissen des vorliegenden Artikels mündete. Tabelle 1 zeigt die dabei verwendeten Versionen.
Tabelle 1: Benutzte ZFS-Versionen
ZFS als 128-Bit-Dateisystem integriert Raid- und Volume-Management mit Prüfsummen und glänzt durch zahlreiche Erweiterungen für Rechenzentren [4]. Der Name stammt ursprünglich von Zetabyte File System und stellte eine Anspielung auf die riesigen Datei- und Dateisystemgrößen (beides 16 Exbibyte, 16 mal 260 Byte) dar, die ZFS unterstützt. Weil die Features der von Sun für Solaris 10 entwickelten Software den Rahmen gängiger Filesysteme deutlich sprengen und weit in den HA- oder Netzwerkbereich reichen, entwickelte sich unter Linux-Anhängern eine heftige Diskussion, wobei die Vertreter der "One Job, one Tool"-Fraktion dem Stack-übergreifenden Funktionsumfang skeptisch gegenüberstanden.
Auch weil ZFS der Common Development and Distribution Licence (CDDL, [5]) unterliegt, lässt eine vollständige Implementierung im Linux-Kernel auf sich warten, Anwender müssen auf spezielle Tools oder Fuse zurückgreifen. Die CDDL enthält beispielsweise Passagen, nach denen die Lizenz ungültig wird, wenn ein Lizenznehmer rechtliche Schritte gegen den Lizenzgeber unternimmt. Das richtet sich vor allem gegen Patentklagen und gilt als umstritten. Die CDDL stammt aus dem Jahr 2004, als Sun die Freigabe von Solaris vorbereitete, fast ganz Open Solaris unterliegt ihr.
Auf den Zahn gefühlt
Grund genug, die Theorie und die versprochenen Eigenschaften der verschiedenen Lösungen in die Praxis umzusetzen. In den folgenden Beispielen kommen sowohl Kernel-basierte Varianten als auch die einfach zu implementierende Lösung über den Userspace und ZFS-Fuse auf einem AM3-Mainboard mit einer 500-GByte-Systemplatte und drei 1-TByte-Festplatten mit einem Raid-5-System zum Einsatz. Im Multiboot mit fünf Betriebssystemen auf jeweils 80 GByte großen Partitionen landen da:
- Open Solaris Beta 201003
- Free BSD 8.1
- Debian Squeeze
- Ubuntu 10.10 Desktop mit ZFS-Fuse
- Ubuntu 10.04 Server LTS mit proprietärem Kerneltreiber
Alles in den 64-Bit-Varianten. Die verbleibende Kapazität der Hauptplatte dient der Sicherung der Images.
Wie bei Dualboot üblich, muss der Anwender bei der Installation verhindern, dass die Betriebssysteme den Master Boot Record (MBR) überschreiben. Im Beispiel erstellt ihn Open Solaris, alle anderen OS nur einen Volume Boot Record in der jeweiligen Partition. Die Multiboot-Einträge schreibt der Admin in die »menu.lst«
von Open Solaris.
Wer hier VBR-Loader erstellt hat, dem genügen einfache Chainloader-Befehle zur Bootauswahl. Der Eintrag für Free BSD lautet beispielsweise:
title "FreeBSD 8.1"
root (hd0,1)
chainloader +1
Leicht zu erkennen: Open Solaris verwendet noch den altgedienten Grub 1. Wer die »menu.lst«
aber in »/boot«
sucht, wird sich schwer tun: Open Solaris legt diese in »/rpool/boot/grub/«
ab.