Neues Dateisystem für iOS, macOS, tvOS und watchOS

Das bringt das Apple File System (APFS)

18.07.2016 von Mark Zimmermann  
Apple hat ein neues Dateisystem angekündigt, das in den nächsten Jahren seinen Weg in alle OS-Varianten machen wird (macOS, tvOS, iOS, watchOS). Hier ein Überblick und eine Analyse über die möglichen Einsatzzwecke von APFS innerhalb des Apple-Ökosystems.
APFS: Das neue Dateisystem für iOS, macOS, tvOS und watchOS ist für SSDs optimiert.
Foto: Sorapop Udomsri / Shutterstock.com

Dateisysteme sind die Schnittstellen zwischen dem Betriebssystem und den Datenträgern. Ein Dateisystem organisiert dabei unter anderem:

Dateisysteme sind im Vergleich zu der Entwicklung von immer leistungsfähigeren Festplatten (schnellerer Zugriff, höhere Kapazität) immer noch auf dem Stand von vor ca. 30 Jahren. Genauso alt ist das Konzept des Dateisystems HFS+ und seines Vorgängers HFS (Hierarchical File System), das in verschiedenen Abwandlungen in iOS- und macOS-Geräten seinen Dienst vollzieht.

Das erste von Apple entwickelte Dateisystem - HFS - wurde 1985 eingeführt, als der Mac 512K Apples Aushängeschild war. HFS+ war 1998 ein bedeutender Schritt und erblickte auf dem G3 PowerMac erstmalig das Licht der Welt. Seit dieser Zeit (HDD-Kapazität 4 GB) hat sich die Speicherkapazität um das Zigfache vergrößert und viele Rechner haben keine Speichermedien mehr, die auf "drehendem Rost" basieren (Festplatten). Anders gesagt: HFS wurde geschaffen, als 400-KB-Disketten die Erde regierten

Volumen- und Dateigrößen, Anzahl an Dateien und Dateien pro Verzeichnis sind hier meist in der Anzahl/Gro?ße beschränkt. Locking, feste Blockgrößen, langsame Schreibvorgänge von nicht zusammenhängenden Dateien bremsen weiterhin die I/O-Performance aus.

HFS+ wurde durch verschiedene Abspaltungen für unterschiedliche Geräte und Features (z.B. Journaling, Case-insensitive, Crypto) in mehrere konkurrierende Richtungen entwickelt. So hat auch iOS eine eigene Version von HFS. APFS (Apple File System) soll hier eine Vereinheitlichung bringen, sowohl für eine Apple Watch als auch einen OSX Server Pro.

Die Verfügbarkeit von SSD (Solid State Disks) bedingt, dass Dateisysteme von damals an die heutigen Speicherbedürfnisse angepasst werden, um den heutigen Anforderungen gerecht zu werden. Dies brachte Apple 2014 dazu, mit der Entwicklung des APFS, dem Apple Dateisystem, zu beginnen. Die Feature-Liste ist enorm und orientiert sich sehr stark an ZFS. Ein Feature wird jedoch (noch) schmerzlich vermisst: Kompression.

Trotzdem sollen die im Folgenden aufgelisteten Funktionen aufzeigen, dass Apple einige Hauptziele wie:

effizient angehen will.

Effizienter Speicherplatz

Ein moderner Trend in Dateisystemen ist das effiziente Speichern der Daten, um die tatsächliche Größe des Speichermediums effektiv zu vergrößern. Übliche Ansätze beinhalten Kompression (wie erwähnt bislang nicht in APFS enthalten) und Deduplizierung.

Oft werden Daten doppelt auf Datenträgern bzw. Dateisystemen gespeichert. Dies geschieht einerseits absichtlich aus Redundanzgründen, oft aber auch unabsichtlich und ungewollt. Manchmal ist es dem Anwender auch gar nicht klar, dass Daten doppelt abgelegt werden, beispielsweise halten manche Applikationen bestimmte Daten nochmal separat in einem eigenen (versteckten) Verzeichnis vor. Diese mehrfach gespeicherten Daten nehmen natürlich auch durch jede Kopie zusätzlichen Speicherplatz in Anspruch. Deduplizierung ist ein Ansatz, das doppelte Vorhalten von Daten zu reduzieren. Es kann als Gegenstück zur Datenredundanz angesehen werden.

Wenn man eine Datei innerhalb eines Dateisystems kopiert, dann werden in APFS keine Daten tatsächlich kopiert. Stattdessen wird eine konstante Menge von Metadaten aktualisiert und die Daten auf der Festplatte sind geteilt. Änderungen an jeder Kopie bewirken, dass neuer Speicher allokiert wird (sogenanntes "Copy On Write" oder COW).

COW soll dafür sorgen, dass Schreibvorgänge in das Dateisystem auch dann nachvollziehbar bleiben, wenn der Vorgang unerwartet abbricht. Also wenn zum Beispiel die Stromversorgung des Rechners ausfällt.

Diese Klone führen möglicherweise zu Verwirrung. Während das Kopieren von Dateien keinen Platz verbraucht, so wird durch das Löschen von Dateien möglicherweise kein Festplattenplatz frei. Man stelle sich vor, man müsse für das Freigeben von Speicherplatz den letzten Klon einer großen Datei aufspüren, um den Platz tatsächlich zurückzubekommen. Es wird spannend zu sehen, wie Apple dies löst.

Dies hat noch einen Effekt, APFS entfernt den üblichen Weg eines Anwenders, lokale Redundanzen von Dateien vorzuhalten. Ein Defekt der zugrundeliegenden Speichereinheit bedeutet, dass alle Klone unbrauchbar sind, während bei vollständigen Kopien und lokalen Defekten nur eine der Dateien betroffen ist.

Dateien zwischen Speichermedien zu kopieren (z.B. auf einen USB Stick, um sie zu teilen) dauert natürlich noch immer eine Zeit proportional zu der Menge der zu kopierenden Daten.

Dieses Verfahren ist auf einem Computer zwar bereits mit Effizienzen verbunden, auf kleinen Computern mit stark beschränktem Speicher, wie ein iPhone oder iPad dürfte dieses Verfahren Gold wert sein. Eine Datei an zwei Orten verbraucht nur einmal Platz. APFS hat damit das Potential, eine Art "Time Machine Backup" pro Datei zu erzeugen. Eine Änderungsverfolgung für beliebige Dateien wird damit möglich. Man könnte zu vorherigen Versionen navigieren, die Historie reduzieren, oder den ganzen Stapel von Versionen auf einmal löschen.

Snapshots

Apple File System bringt die Möglichkeit mit, einen Zustand (State) eines Dateisystems "einzufrieren". Dies wird nicht durch eine 1:1-Kopie erzeugt. Viel mehr geht APFS sehr platzsparend vor.

Snapshots sind schreibgeschützte Kopien, die sehr schnell erstellt werden können. Anfänglich belegen diese keine zusätzliche Speicherkapazität. Mit zunehmender Änderung von Daten innerhalb des produktiv genutzten Datenbestandes durch den Anwender nehmen diese jedoch schrittweise mehr Kapazität, da sie Verweise auf die älteren Daten speichern und so ein Löschen dieser Daten verhindern.

Snapshots sind nur auf ganzen Dateisystemen mo?glich, nicht auf einzelnen Dateien. Es wird also immer der übergeordnete Dateisystemeintrag verwendet und dieser beinhaltet automatisch die darin enthaltenen Dateien und Verzeichnisse.

Es wird spannend sein zu beobachten, wie sich diese Snapshots nicht nur auf den Computern wiederfinden. Snapshots eignen sich besonders gut als schnelles Backup vor riskanten Aktionen. Ein fehlgeschlagenes iOS-Update würde sich so problemfrei zurücknehmen lassen.

Starke Verschlüsselung

HFS+ bot mit CoreStorage eine Full-Disk-Verschlüsselung. iOS auf der anderen Seite arbeitet mit AES-Hardware auf File-Based-Verschlüsselung. Native Unterstützung von Verschlüsselung ist ein Hauptmerkmal von APFS. Dies resultiert aus den diversen Voraussetzungen der verschiedenen Verfahren, zum Beispiel Multi-Schlüssel-Verschlüsselung (Multi-key) innerhalb des Dateisystems auf dem iPhone oder User-spezifische Verschlüsselung (Single-key) auf dem Laptop. APFS unterstützt die folgenden verschiedenen Möglichkeiten der Verschlüsselung:

Multi-Key-Verschlüsselung ist vor allem relevant für mobile Endgeräte, wo alle Daten verschlüsselt sein könnten. Dies wird an iOS deutlich. Die NSFileProtection-Klasse erlaubt es Daten zu klassifizieren, also festzulegen, wann diese entschlüsselt vorliegen sollen. So erlaubt beispielsweise das Entsperren des Handys erst den Zugang zu einem zusätzlichen Schlüssel und somit zu zusätzlichen Daten. Andere Daten sind nach der erstmaligen Anmeldung bis zum Ausschalten des Gerätes verfügbar.

Etwas das APFS ebenfalls von iOS lernen wird, ist die Tatsache, dass der "geheime Schlüssel" zur Verschlüsselung das Einzige ist, was gelöscht werden muss, um die Daten "quasi" zu entfernen. So unterstützt APFS (anscheinend) die Löschung eines Dateisystems durch Constant-Time-Kryptographie, was in der diskutil Ausgabe "effaceable" genannt wird.

Das wird vermutlich durch einen geheimen Schlüssel realisiert, der nicht aus APFS extrahiert werden kann und der für die Verschlüsselung des Dateisystems genutzt wird. Für eine sichere Löschung braucht man dann nur den Schlüssel zu löschen anstatt die komplette Festplatte zu scramblen und re-sramblen, um eine vollständige Löschung zu gewährleisten.

In Abhängigkeit von der Hardware sollen dafür die Verfahren AES-CBC oder AES-XTS verwendet werden können. Letzteres wird unter anderem auch von OpenBSD, Veracrypt oder DM-Crypt genutzt.

Es wird spannend zu sehen, wie sich diese Eigenschaften auf den mobilen Computern auswirken wird. Es bleibt jedoch noch ergänzend festzuhalten, dass gerade für das Thema spezialisierte Hardware, damit auch in macOS-Geräten, benötigt wird.

Erweiterbarkeit

APFS unterstützt das Konzept sogenannter Inodes und ist ein 64-Bit-Dateisystem, das bis zu 9 Trillionen einzelne Dateien pro Festplatte verarbeiten kann. APFS soll außerdem sogenannte Sparse-Dateien unterstützen. Datenstrukturen sind in APFS nun flexibel. Neue Attribute können jederzeit einer Datei hinzugefügt werden.

Das System kann außerdem viel genauer festhalten, wann Änderungen in einer Datei vorgeführt wurden. Darüber hinaus unterstützt APFS nun Zeitstempel im Abstand von 1 Nanosekunde, statt der derzeitigen Grenze in HFS+ von 1 Sekunde. Attribute können sogar als "optional" deklariert werden, falls diese keinen Bedarf haben.

APFS unterscheidet bei Dateinamen, wie andere unixoide Dateisysteme, immer zwischen Groß- und Kleinschreibung.

Für die Einbindung ins Netzwerk soll mit APFS nicht mehr die Eigenentwicklung AFP (Apple Filing Protocol) verwendet werden, sondern das von Windows genutzte SMB (Server Message Block).

APFS unterstützt aktuell weder Boot-Festplatten noch Apple's Fusion Drives. Es gibt noch keine offiziellen Aussagen, wie sich dies mit Release verhalten wird.

Verwaltung

Apple File System bringt ein neues Feature, die Möglichkeit den Speicher zu teilen. Ein einziger APFS-"Container", der ein Gerät umfasst, kann mehrere "Volumes" (Dateisysteme) beinhalten. APFS-Laufwerke können dynamisch in der Größe verändert werden, ohne dass das Laufwerk neu partitioniert werden muss.

APFS bringt ein neues Feature, das als "space sharing" bekannt ist. Ein einziger APFS-"Container", der eine Festplatte umfasst, kann mehrere "Volumes" (Partitionen, Dateisysteme) beinhalten. Volumes können dabei dynamisch wachsen und schrumpfen.

Viele Anwender haben nur eine Partition. Dies liegt daran, dass es aufwändig ist, vorher zu wissen, wie viel Platz eine Partition braucht. Space Sharing erlaubt ein Austausch von freiem Speicherplatz zwischen Partitionen.

Performance, Performance, Performance

APFS behauptet für Flash optimiert zu sein und lässt vermuten, dass Apple zukünftig immer weniger drehende Speichermedien (mir gefällt der Begriff des drehendenden Rostes immer besser) einbauen wird.

Apple hat die Computerindustrie verändert, als es Flash in den iPod und das iPhone gepackt hat. Hier wurden Größenordnungen verbaut, die die Wirtschaftlichkeit von Flash-Speichern fundamental verändert haben.

Diese Verbraucheränderung beeinflusste den Markt dermaßen, indem es eine Zunahme an hybriden und "all-flash arrays" zu verzeichnen gab. Vor zehn Jahren war Flash sehr kostspielig; jetzt fordert es die Wirtschaftlichkeit von Festplatten heraus.

SSDs ähneln dem "block interface" der konventionellen Festplatten, aber die zugrundeliegende Technologie ist komplett unterschiedlich. Als Hauptunterschied ist der Umgang mit den Sektoren, die bei Festplatten willkürlich adressiert werden. Flash entfernt große Segmente (Blöcke) und liest/schreibt kleinere Segmente (Seiten).

Das Management wird vom sogenannten "flash translation layer" (FTL) durchgeführt, eine Software die Blöcke und Seiten mehr als Festplatte erscheinen lässt. Ein FTL ist einem Dateisystem sehr ähnlich. Es schafft virtuelle Abbildungen zwischen der Blockadresse und Speicherstellen innerhalb des Mediums. Apple kontrolliert den gesamten Stack einschließlich der SSD, FTL und dem Dateisystem.

APFS schreibt in einer Art die Daten auf den Datenträger, wie es für Flash Speicher einfacher zu handhaben sind. Es ist eher ein Dateisystem mit flash-aware-Charakteristiken als eines, das explizit für native Flash Schnittstellen geschrieben wurde.

APFS beinhaltet TRIM Unterstützung für SSDs. TRIM ist ein Befehl, der es einem Dateisystem erlaubt, einer SSD anzuzeigen, dass Speicher frei geworden ist.

Für Lösch- und Wiederbeschreib-Vorgänge benötigt eine einfache SSD immer länger für die Datenspeicherung als eine HDD. Dies liegt daran, dass magnetische Festplatten dies in einem Durchgang abarbeiten, eine SSD in zwei Schritten. Wenn eine Datei auf einer SSD über das Betriebssystem gelöscht wird, dann wird auf dem SSD-Laufwerk nur der Eintrag dieser Datei im Inhaltsverzeichnis des Speichers gelöscht, die eigentlichen Daten befinden sich nach wie vor auf der SSD. Mit der Zeit sind so immer weitere Bereiche auf der SSD mit eigentlich gelöschten Daten gefüllt. Beim erneuten Schreiben muss eine SSD diese Zellen erst leeren, bevor sie jene neu beschreiben kann, was die Schreibgeschwindigkeit verlangsamt. Durch den TRIM-Befehl wird dies unterbunden. Mit mehr freiem Speicherplatz, können SSDs "Platzeffizienz" ausgleichen für Leistung und Langlebigkeit. Ob TRIM einen Vorteil für den durchschnittlichen Anwender mit vollen Speichermedien ist, darf zu Recht bezweifelt werden.

APFS fokussiert sich auch auf Latenz bei den eigentlichen Zugriffen. Dies geht APFS mit I/O QoS (Quality of Service) an, indem Zugriffe, die für den Anwender direkt sichtbar sind, gegenüber Hintergrundaktivitäten, die nicht die gleichen Zeitbeschränkungen haben, priorisiert werden.

Das als "Fast Directory Sizing" bezeichnete Feature gibt dem Anwender (und dem System selbst) einen direkten Einblick in die Anzahl und Größe der in einem Verzeichnis enthaltenen Daten. Lange Vorbereitungen von Kopiervorgängen dürften damit der Vergangenheit angehören, da das System die "Zielgrösse" schneller ermittelt hat.

Aufgrund der breiten Bandbreite an Zielgeräten ist ein weiteres Ziel die Schonung der Ressourcen (CPU, RAM).

Integrität und Zuverlässigkeit

Die wohl wichtigste Aufgabe eines Dateisystems ist es, die Datenintegrität sicherzustellen und zu erhalten. APFS erhebt in Hinblick auf Datenredundanz keinen Anspruch, da die Geräte aus dem Hause Apple in 99,9 Prozent der Fälle keine doppelten Speicher aufweisen was z.B. die Erstellung eines RAIDs unmöglich macht. Stattdessen kommt die Redundanz durch niedrigere Ebenen wie z.B. Apple RAID, Hardware RAID Controller, SANs, oder sogar aus dem "einen" Gerätespeicher selbst.

Computersysteme können zu jeder Zeit versagen - Bugs, Stromausfälle, schlechte Software usw. Dies hat zur Folge, dass Dateisysteme für diese Begebenheiten gewappnet sein müssen, ohne die eigene Integrität zu gefährden. Modernere Dateisysteme mühen sich damit ab, immer einen konsistenten Zustand zu erreichen oder nur kleine Fenster mit Dateninkonsistenz zu haben.

Prüfsummen - nicht für alles

Eine Prüfsumme ist ein Auszug oder Zusammenfassung von Daten, die genutzt werden um Datenfehler zu finden und zu korrigieren. APFS erstellt Prüfsummen der eigenen Metadaten, aber nicht der Anwenderdaten. Die Rechtfertigung der Erstellung von Prüfsummen für die Metadaten ist stark: es gibt relativ wenige davon (so verbrauchen die Prüfsummen nicht viel Speicher) und ein Verlust der Metadaten kann einen potentiell riesigen Schaden verursachen. Sind etwa die Metadaten für ein "top level" Verzeichnis beschädigt, können möglicherweise alle Daten auf der Platte unzugänglich geworden sein (Atomic Safe Save).

Interessanter ist, dass ausdrücklich keine Prüfsummen von Anwenderdaten gemacht werden. Apple scheint hier auf die ECC-Fehlerkorrektur der Speichermedien zu vertrauen. Dieser Schutz nutzt eigenständig redundant Daten, um Fehler zu finden und zu korrigieren. Die Geräte haben anscheinend eine so geringe Fehlerrate, um keine Fehler während der Lebenszeit des Gerätes zu erwarten.

Gehören Sie auch zu denen, die sich um die Daten auf Ihren Geräten "sorgen" und schon gesehen haben, wie Daten durch HFS verschwinden? Ich würde schon hoffen, dass Themen wie "bit rot" (alternde Daten, die langsam ihre Integrität verlieren) von Apple mit APFS adressiert werden. Es kann jedoch sein, das Apple eine Prüfsumme für Anwenderdaten im Rahmen der Verschlüsselung nutzt. Es bleibt zu hoffen, dass Apple hier noch nachbessert.

Migration 2017 für HFS+ Anwender

Wenn APFS 2017 zur Verfügung steht, verspricht Apple eine sehr anwenderfreundliche Migration. Die Daten auf den Geräten bleiben dabei bestehen, ein Aktivieren der Option soll ausreichen, um eine Migration zur Laufzeit zu ermöglichen. Der Anwender soll im Idealfall nichts von der Migration selbst merken. Exchange Data, SearchFS, Directory Hardlinks für Time Machine werden von APFS zukünftig nicht mehr unterstützt.

Neue Aufzeichnungstechniken im Festplattenumfeld scheint Apple nicht zu adressieren. So wird Shingled Magnetic Recording (SMR), eine Technik zur Datenspeicherung auf magnetischen Datenträgern, um die Speicherdichte und die Gesamt-Speicherkapazität eines Laufwerks zu erhöhen, nicht unterstützt. Dies ist mit der Ansage "SSD First" mehr als verständlich.

Fazit: Potenzial zum Game-Changer

In kürzester Zeit hat Apple das APFS zum Beta-Status bis heute getrieben. In nicht einmal zwölf Monaten wird damit ein neues Dateisystem flächendeckend verfügbar sein. Für etwas derartig Mächtiges eine sehr geringe Zeitspanne. Die Möglichkeiten für den produktiven Einsatz sind heute noch kaum abzuschätzen. Im Vergleich zu Windows und anderen Plattformen am Markt dürfte APFS ein Game-Changer sein. Es bleibt zu hoffen, dass Migrationen und Features so zuverlässig sind, wie es sich für ein Dateisystem gehört. Dann dürfte Apple etwas auf den Markt bringen, das viele Konkurrenten schwitzen lässt.

Vielleicht stellt Apple die Lösung auch als Open Source zu Verfügung (analog Swift). Dieser Schritt wurde von Apple jedoch weder bestätigt noch abgelehnt. Es darf erwartet werden, dass es jedoch erst eine produktive Version gibt, bevor Apple dies unter Open Source anbietet. (mb)