Offener Speicher à la Sun
Artikel erschienen in Swiss IT Magazine 2008/14
Vor langer Zeit gab es nur Computer, die geschlossen waren. Mainframes und Minicomputer waren proprietär und in sich geschlossene Systeme. Man konnte nicht einfach fremde Software installieren oder fremde Hardware einbauen. Später kamen die «Open Systems», offene Systeme wie UNIX (und dessen Derivate) oder Linux. Mit ihnen konnte man nun auch Fremdhardware verwenden, eigene Software und Treiber nutzen und entwickeln, ohne durch Herstellervorgaben beschränkt zu sein. Im Anbetracht dessen, dass UNIX seit über 30 Jahren immer noch verwendet wird, kann man diese Strategie als vollen Erfolg ansehen. Innovation war möglich, da das Know-how breiter gestreut wurde. Auch wurden die Systeme sehr viel preisgünstiger.
Anders sieht es im Storage-Markt aus. Hier werden immer noch «Black Boxes» verkauft: Systeme mit bestimmten, vom Hersteller vorgegebenen Features. Eine Anpassung an die tatsächlichen Bedürfnisse beziehungsweise Gegebenheiten ist nur eingeschränkt möglich. Man muss damit leben, was der Hersteller einem anbietet. Aufrüstung im nachhinein ist schwierig und kommt meistens mit einem (teurem) Upgrade des gesamten Systems einher. Auch müssen neue Features sehr oft durch Kauf von teuren Lizenzen freigeschaltet werden. Selbst kann man kaum oder gar nicht Hand anlegen. Kurz gesagt: Storage-Systeme sind proprietär, teuer und alles andere als flexibel. Die Folge: Es gibt seit längerem kaum Innovationen im Storage-Bereich. Und auch die Auswahl ist beschränkt, weil der Markt nur von einigen Giganten beherrscht wird.
Ein auf OpenStorage basierendes System kann modular zusammengestellt werden. Basierend auf OpenSolaris als Betriebssystem werden einzelne Features in Form von Software-Paketen hinzugefügt, beispielsweise Datei-Sharing (via CIFS oder NFS als Bestandteil vom Betriebssystem), Dateisystem (ZFS, SamFS oder UFS), SAN-Fähigkeit (mit COMSTAR) oder objektorientiertes, datenbankähnliches Speichern von Daten (mit Honeycomb). Dazu kann man von Sun Support in einem frei wählbaren Umfang erhalten – je nach dem, wieviel Expertise im eigenen Haus vorhanden ist. Den aktuellen Funktionsumfang von OpenStorage zeigt die Grafik «OpenSolaris Storage Platform».
Die Nutzung von OpenSolaris bietet als Grundlage einige Vorteile: Einerseits ist Solaris als zuverlässiges System, beispielsweise aus dem Banken- und Versicherungssektor bekannt. Andererseits bietet OpenSolaris als eines der ersten Systeme umfassende Unterstützung für NFSv4 sowie einen in den Kern integrierten CIFS-Support. Damit laufen die Exporte für Windows-Systeme nicht im Userland wie bei Samba, sondern sehr viel effizienter im Kern. Mit ZFS ist ein modernes, zuverlässiges und performantes Dateisystem integriert. ZFS vereint Platten-Management (RAID, Mirror, Spare Disks … ) und Dateisystem unter einem Hut.
Die Features erinnern dabei stark an NetApps Dateisystem WAFL: Copy-on-Write-Schreibzugriff, Instant Snapshots, Disk Scrubbing oder Klonen von Dateisystemen. Dank einem 128-Bit-Adressraum lassen sich gigantische Datenmengen von bis zu 16 Exbibyte verwalten. Checksummen über Blöcke und das automatische Korrigieren von korrupten Dateisystemfragmenten sorgen für eine hohe Datensicherheit. NFSv4 ACLs, Mechanismen zur Replikation, Verschlüsselung oder Kompression runden das Bild ab. ZFS ist modular aufgebaut, sodass in Zukunft weitere Features zu erwarten sind. Mit ADM (Advanced Data Migration) wird beispielsweise ein Hierarchical-Storage-Management-Aufsatz (HSM) für ZFS entwickelt.
Damit können Daten von einem ZFS-Dateisystem automatisch auf Bandlaufwerke archiviert werden, ähnlich Suns bisherigem HSM-Produkt SamFS, das ebenfalls Teil von OpenStorage ist. Allerdings fehlt OpenStorage die SamFS-Ergänzung QFS (Quick File System), an deren Integration aber gearbeitet wird. Als drittes Dateisystem kann auch das altbewährte UFS (UNIX File System) verwendet werden. Kommt es auf bestimmte Features wie POSIX ACLs über NFSv3 an, kann es durchaus das Werkzeug der Wahl sein.
Eines der interessantesten OpenStorage-Projekte ist COMSTAR (COmmon Multiprotocol SCSI TARget). Damit ist es grob gesagt möglich, eine OpenSolaris-Installation als SCSI Target anzusprechen. Die Idee ist, die an OpenSolaris angeschlossenen Block-Devices (einzelne Platten, Arrays) zu kapseln und die Speichermedien als Ganzes dem Client zur Verfügung zu stellen, ohne dass er etwas vom dazwischen liegenden Betriebssystem mitbekommt. Ähnlich einem SAN-Speicher ist es den angeschlossenen Servern egal, woher der Speicherplatz kommt. Angesprochen wird er als Block Device über Fibre Channel, iSCSI, iSER, SAS oder FCoE. Das COMSTAR-Framework (Target) läuft auf OpenSolaris, als Initiatoren kommen beliebige Systeme in Frage.
Honeycomb ist ein Projekt zum Speichern fester Daten wie Bildern oder nicht mehr benötigter Dokumente. Studien haben gezeigt, dass es sich bei 80 Prozent der gespeicherten Daten um solche Dateien handelt, die – einmal gespeichert – nicht mehr verändert werden. Die Idee ist nun, speziell für diese Daten ein objektorientiertes Storage-System zu schaffen, welches beispielsweise über Programmiersprachen wie Java oder C direkt angesprochen werden kann.
Damit erhält man einen Datenbank-artigen Zugriff auf ein Dateisystem. Betrachtet wird ein Speicher-Archiv dabei nicht mehr als Dateisystem, sondern als eine Sammlung von Objekten mit Eigenschaften (Metadaten) und den Daten selber. Man kann sich das ein bisschen so vorstellen, als würde man sein Musikarchiv nicht mehr über Dateien und Verzeichnisse durchsuchen, sondern über ID3 Tags. Anstatt die Datei wish_you_where.mp3 im Verzeichnis Rock/Pink_Floyd/Wish_You_Where_Here/ zu suchen, sucht man nach «Titel: Wish You Where Here, Interpret:
Pink Floyd». Das mag zwar von der Idee her nicht neu sein – viele Musik- oder Bildverwaltungswerkzeuge arbeiten bereits heute nach so einem Konzept. Neu ist, dass die Suche nicht das Programm, sondern der Honeycomb-Server übernimmt. Damit soll es möglich sein, Millionen von Objekten und Petabytes an Daten einfach und ohne Zugriff auf Block-Ebene zugänglich zu machen. Honeycomb ist damit eine Art SQL-Datenbank-Server für Dateien. Honeycomb soll ausserdem das standardisierte XAM Interface unterstützen. XAM (eXtensible Access Method) bietet eine definierte Schnittstelle zwischen Consumern (Client Applikation) und dem Provider (Storage Server) und vereinfacht durch Standards die Implementierung von Software.
Damit deckt die OpenStorage-Initiative alle Bereiche ab, die notwendig sind, konkurrenzfähige und moderne Speichersysteme wie SAN oder NAS aufzubauen. Mit ZFS als leistungsfähigem und sicheren Dateisystem, SamFS (oder ZFS mit ADS) als hierarchisches Dateisystem mit der Möglichkeit von Tape Storage im Hintergrund, COMSTAR für SAN-Features, Honeycomb als innovative Speichermethode und OpenSolaris als stabile, performante und zuverlässige Basis. Mit verhältnismässig günstiger Hardware und der OpenStorage-Software ist es möglich, einen Grossteil, wenn nicht sogar alle Features zu implementieren, die proprietäre Hardware bieten. Beispiele, wie man einen eigenen NAS Filer aufbaut, bietet die OpenStorage Community im Internet an (blogs.sun.com/icedawn/entry/bondin, developers.sun.com/openstorage/articles/opensolaris_storage_server.html). Eine dieser Referenzarchitekturen von Sun basiert auf zwei JBODs der J-Serie, zwei x86 Servern, OpenSolaris und ZFS. Damit kann man ein NAS-System bauen, welches NFS, CIFS, iSCSI, AFP und vieles mehr unterstützt. Mit COMSTAR wird daraus auch noch ein FC-Storage für SANs. Ein solchermassen aufgebautes System braucht den Vergleich zu einer NetApp- oder EMC-Appliance nicht zu scheuen. An der Bedienoberfläche muss Sun allerdings noch ein wenig feilen: Zwar sind die Kommandozeilenwerkzeuge nicht schwer zu bedienen – ZFS kennt beispielsweise nur zwei Befehle – und auch webbasierte Frontends sind für die meisten Komponenten erhältlich. Allerdings decken diese in der Regel nur die jeweilige Komponente ab. Ein einheitlich zusammengefasstes Web-Front-end fehlt.
Dies dürfte sich aber mit der Zeit ändern, zumal die OpenStorage-Initiative nach wie vor ein Werk in Arbeit ist. Sun arbeitet derzeit an weiteren Funktionen wie pNFS (verteiltes NFS), auf heterogenen Knoten global verteiltem Speichern von Daten («CELESTE») oder FCoE (Fiber Channel Protocol over Ethernet).
Gregor Longariva ( longariva@softbaer.de) ist Solaris-Administrator am Rechenzentrum der Universität Erlangen-Nürnberg und Spezialist für unixoide Betriebssysteme.