Das Linear Tape File System (LTFS) ist ein ISO/IEC standardisiertes Dateisystem-Format für Tape-Medien. LTFS-Treiber sind für alle wesentlichen Betriebssystemumgebungen verfügbar und ermöglichen Lese- und Schreibzugriff auf LTFS-formatierte Tapes.
Einige Objektspeichersysteme, die Daten auch auf Tape-Medien speichern können, nutzen LTFS als Format für die Datenspeicherung. So sollten enthaltene Daten theoretisch auch ohne das Objektspeichersystem lesbar und wiederherstellbar sein.
Dieser Beitrag bewertet, ob dies auch praktisch umsetzbar ist, und analysiert die Vor- und Nachteile von LTFS aus Sicht eines Objektspeichersystems.
LTFS Konzept
LTFS wurde mit LTO-5 eingeführt, um die Speicherung von Daten auf LTO-Tapes und damit vor allem den Austausch großer Datenmengen zu vereinfachen. Ziel war es, dass der Zugriff auf Tapes möglichst ähnlich wie bei Festplatten funktionieren sollte. Ein Tape sollte wie eine Festplatte montierbar sein und die Daten sollten als Dateistruktur sichtbar und zugreifbar sein. Mit LTFS sollte die Akzeptanz des Speichermediums Tape erhöht werden, indem suggeriert wurde, ein Tape könne wie eine Festplatte benutzt werden, wie z.B. mit dem Kopieren von Dateien im Explorer per „Drag & Drop“. Zu diesem Zweck muss ein Tape ein Inhaltsverzeichnis, also einen Index enthalten, der in kurzer Zeit eingelesen werden kann. Deshalb wurde zeitgleich mit der LTFS-Spezifikation auch eine Partitionierungsfunktion für LTO-Tapes eingeführt. Eine kleine Indexpartition (partition 0) ist reserviert für Index- und Metadaten. Die große Datenpartition (partition 1) speichert die eigentlichen Nutzdaten inkl. einer oder mehrerer Kopien der Indexdaten.
Beim Einlegen eines LTFS formatierten Tapes in das Tape-Laufwerk eines Computer-Systems, in dem ein kompatibler LTFS-Treiber installiert ist, wird bei Ausführung eines Mount-Kommandos zuerst der Index vollständig eingelesen. Dieser Index wird entweder im Hauptspeicher oder auf der lokalen Festplatte gespeichert. Anschließend können die Daten auf dem Tape – analog zu einer Festplatte – in einem Datei-Browser als Datei- und Verzeichnisstruktur dargestellt werden.
Versucht man nun, mit einem Tape so zu arbeiten, wie man es mit Festplatten gewohnt ist, werden die Unterschiede der beiden Medientechnologien deutlich.
Datenzugriff
Auf Festplatten können Datenblöcke wahlfrei und mit Zugriffszeiten von wenigen Millisekunden gelesen werden („Random Access“). Im Gegensatz zur Festplatte ist Tape ein sequenzielles Medium mit Zugriffszeiten, die im Bereich von Sekunden bis Minuten liegen. Soll jedoch eine große Anzahl von kleineren Dateien von einem Band gelesen werden, dann müssen lange Zugriffszeiten vermieden werden, indem die Dateien grundsätzlich sequenziell in derselben Reihenfolge gelesen werden, in der sie geschrieben wurden. Andernfalls kann der Lesevorgang Tage dauern.
Ein übliches Tool wie der Explorer kann das nicht. Man bräuchte ein spezielles Tool, das den nach Verzeichnissen sortierten Index entsprechend umsortiert. Ein solches Tool existiert derzeit nicht.
Die Verwendung von LTFS in Verbindung mit einem Objektspeichersystem macht daher wenig Sinn. Es ist wesentlich effektiver, wenn das Objektspeichersystem das Schreiben und Verwalten der Daten auf die Tape-Medien vollständig selbst durchführt.
Das S3 REST API des Objektspeichersystems bietet Anwendungen die Möglichkeit, die Eigenschaften von Tapes zu berücksichtigen. Im Gegensatz zu den eingeschränkten Möglichkeiten eines Dateisystems können hohe Latenzen beim Lesen vom Tape mit S3 berücksichtigt werden. Auf Basis von S3 also können Anwendungen mit den Fähigkeiten und Einschränkungen von Tapes umgehen. Immer mehr Hersteller, wie z.B. Veeam und Hammerspace, unterstützen mittlerweile „S3-to-Tape“ in ihren Anwendungen.
Performance und Effizienz
Ein wesentlicher Nachteil des LTFS-Formats besteht in erheblichen Einbußen in der Schreib- und Lese-Performance. Diese Einbußen entstehen durch die zusätzlichen Dateimarken, die vorgegebene Ausrichtung von Dateien auf Blockgrenzen und die zwingende Aktualisierung des Indexes. Diese zusätzlichen Elemente führen insbesondere bei kleineren Dateien zu einer sehr ineffizienten Nutzung der Speicherkapazität eines Tapes.
Bei Verwendung von Tape-Medien in einem objektbasierten Speichersystem sind Performance und Effizienz kritische Faktoren. Daten müssen möglichst effizient und mit der maximalen Geschwindigkeit der Tape-Laufwerke geschrieben und gelesen werden.
Metadaten
LTFS wurde als Dateisystem entworfen und hat deshalb auch die in Dateisystemen üblichen Einschränkungen bei Aufbau und Länge von Dateinamen sowie bei den in den Dateinamen verwendeten Zeichen. Abgesehen von einer maximalen Länge, kennen Objektspeichersysteme grundsätzlich keine solchen Einschränkungen für Objektnamen. Viele grundsätzlich gültige Objektnamen können daher nicht auf Dateinamen abgebildet werden. Außerdem machen die Anwendungen von Objektspeichersystemen zunehmend Gebrauch von benutzerdefinierten Metadaten („Custom Meta Data“) und Tags.
Diese Metadaten können zwar im Index von LTFS gespeichert werden; sie sind dann aber proprietär, d.h. sie werden von LTFS-Treibern ignoriert und können den Index drastisch vergrößern. Letzteres kann insbesondere bei kleineren Objekten dazu führen, dass die Speicherkapazität eines Tapes nicht vollständig genutzt werden kann, weil die Index-Partition überläuft.
Ohne die Objektspeicher-Software, die die Metadaten geschrieben hat, können die Daten also nicht wieder vollständig gelesen und interpretiert werden. Das Argument der Software-Unabhängigkeit in Bezug auf LTFS verliert damit seine Gültigkeit. Die Verwendung von LTFS in Verbindung mit Objektspeichersystemen ist nicht mehr begründet, sondern sogar nachteilig.
Versionierung
Wie bei Dateisystemen üblich unterstützt auch LTFS keine Dateiversionen. Bei Objektspeichersystemen und ihren Anwendungen ist Versionierung aber eine verbreitete Funktion, die insbesondere im Zusammenhang mit Objekt Locks eingesetzt wird.
Das Objektspeichersystem könnte diesen Nachteil nur durch eine proprietäre Erweiterung an LTFS umgehen. Das wiederum bedeutet, dass nur in Verbindung mit der Objektspeicher-Software die Daten inkl. Versionsinformationen lesbar wären. Austauschbarkeit und Software-Unabhängigkeit im Sinne von LTFS gehen dann verloren.
Wesentlich effektiver ist die ausschließliche Versionsverwaltung in der Objektspeicher-Software, die die Tape Medien ohne LTFS-Overhead direkt unterstützt.
Datenverteilung
LTFS unterstützt zwar das Verteilen (Spanning) von Datenabschnitten über mehrere Tapes. Eine solche Verteilung entsteht, wenn Anwendungen große Objekte in Teilen („S3 Multipart Upload“) an das Objektspeichersystem übertragen.
Allerdings kann ein einfacher LTFS-Treiber über mehrere Tapes verteilte Dateisegmente nicht wieder lesen und zusammenfügen. Dazu benötigt man entweder das Objektspeichersystem oder ein spezielles LTFS-Tool, das derzeit nicht existiert.
Objektspeichersysteme mit „S3-to-Tape” Unterstützung können die Verteilung der Daten auf viele tausend Abschnitte verwalten. Dies schließt das Spanning von sehr großen Dateien (Objekten) über mehrere Medien ein.
Tape-Verwaltung
In größeren Unternehmen werden häufig Tape-Autoloader und -Libraries eingesetzt, mit denen sehr viele Tapes verwaltet und verwendet werden. In großen Libraries kann die Anzahl der verwalteten Tapes vierstellig sein. Ohne Verwaltungs-Software mit entsprechender Datenbank ist es praktisch unmöglich, bestimmte Dateien zu suchen und zu finden. Allein aus einer großen Anzahl von Tapes das richtige zu finden, ist ohne Management-Software so gut wie unmöglich, selbst wenn die einzelnen Tapes ohne Management-Software in einer anderen Umgebung lesbar wären.
Erasure Coding
Erasure Coding ist eine in Objektspeichersystemen übliche Methode, um Daten auf Speichermedien abzusichern. Dabei werden Daten in Fragmente aufgeteilt und mit redundanten Daten-Stücken erweitert und kodiert. Danach werden die erzeugen Daten-Segmente auf mehrere Medien verteilt gespeichert. Durch die gleichzeitige Verwendung von mehreren Tapes, z.B. in Tape-Libraries, kann dieses Verfahren sehr effizient eingesetzt werden.
LTFS schließt die Anwendung von Erasure Coding Verfahren mit Tape-Medien aus. Da LTFS ein in sich geschlossenes Dateisystem pro Tape spezifiziert, können Dateien nicht mit Redundanzdaten auf mehrere Tapes verteilt werden. Die folgende Grafik zeigt exemplarisch die Anwendung von Erasure Coding (EC) in einem Objektspeichersystem auf eine Tape-Gruppe mit vier Medien und einer EC-Rate von 3/4. Diese EC Rate erlaubt es, dass von den vier Medien ein beliebiges ausfallen kann, ohne dass Daten verloren gehen. Der Kapazitäts-Overhead beträgt nur 1,33. Weiterhin wird durch das gleichzeitige, parallele Schreiben auf vier Tape-Medien nicht nur die Datensicherheit, sondern auch die Performance deutlich erhöht.
Fazit
Der Einsatz von LTFS bringt funktionale Einschränkungen und Nachteile mit sich, die, wenn überhaupt, nur durch proprietäre Erweiterungen an LTFS und durch spezielle Lese-Tools umgangen werden können.
Außerdem sind Performance und Effizienz von LTFS einem proprietären, aber optimierten Format deutlich unterlegen.
Schließlich hat der vermeintliche Vorteil der Austauschbarkeit und Unabhängigkeit bei Einsatz von sehr vielen Tapes, wie bei Objektspeichersystemen üblich, praktisch keine Bedeutung, da die Daten auf den einzelnen Medien ohne die zugehörige Management-Software nicht mehr wiedergefunden, bzw. nicht mehr zugeordnet werden können.
Aus diesen Gründen wäre es eine Fehlentscheidung, LTFS in Objektspeichersystemen einzusetzen. Stattdessen sollte die Management-Software die Datenverteilung verwalten und Tape-Laufwerke möglichst direkt unterstützen. Nur in diesem Fall können die volle Schreib- und Lese-Performance der Laufwerke und die volle Kapazität der Tapes ausgenutzt werden, und die S3- und Objektspeicher-Funktionen können vollständig abgebildet werden.