iX 5/2017
S. 74
Review
Apple-Systeme
Aufmacherbild

APFS: Ein File System für iOS und macOS

Apfelordnung

Die Tage von HFS+ sind gezählt. Der Nachfolger APFS ist bereits in iOS 10.3 integriert und für macOS Sierra als Betaversion verfügbar. Er soll künftig alle Apple-Systeme abdecken, von der Apple Watch bis zum Mac Pro.

Apple will das neue Dateisystem APFS 2017 veröffentlichen, vorher kann man es bereits als Technologievorschau ausprobieren (Abb. 1).

Das betagte HFS+ soll 2017 vom Apple File System (APFS) abgelöst werden, bei iOS ist mit Version 10.3 der Umstieg bereits vollzogen. Ein ambitionierter Zeitplan, denn das neue Dateisystem wäre dann nur etwa vier Jahre in Entwicklung gewesen. Das ist wenig für eine Systemkomponente, bei der jeder Fehler unweigerlich zur Katastrophe führt.

Die Ursprünge von HFS (als Vorläufer von HFS+) stammen aus dem Jahre 1985, es wurde über die Jahre um Journaling und einen Case-Sensitive-Modus (der die Groß- und Kleinschreibung in Datei- und Verzeichnisnamen berücksichtigt) erweitert, später kamen mit Core Storage dann Verschlüsselung und Fusion Drive unterhalb des Dateisystems hinzu. Auf iOS kann HFS+ sogar einzelne Dateien verschlüsseln.

Das Hauptaugenmerk bei APFS liegt auf einem Einsatz über alle Apple-Geräte hinweg, also der Skalierbarkeit von der Watch über iPhone, iPad und Apple TV bis zum MacBook und Mac Pro – inklusive Verschlüsselung und der besten Performance auf modernen SSDs und Flash-Modulen.

Crash-fest und transaktional

Apple hat APFS für ein sicheres Crash-Verhalten konzipiert. Metadaten werden wie bei ZFS transaktional und mittels Copy-on-Write sicher geschrieben. Das funktioniert so: Löscht man eine Datei, ändert das System das Verzeichnis nicht direkt an Ort und Stelle, sondern schreibt es mitsamt der veränderten, darüberliegenden Verzeichnisstruktur auf einen freien Platz. Ganz zum Schluss erhält der oberste Verzeichnisknoten noch eine Transaktionsnummer. So gewährleistet APFS, dass im Falle eines Stromausfalls entweder alle Änderungen durchgeführt sind oder gar keine. Zur Sicherheit kommen bei diesen Metadaten zusätzlich Checksummen zum Einsatz, sodass zu jedem Zeitpunkt ein konsistentes Dateisystem vorliegt.

Bislang hat Apple diese Vorgehensweise allerdings nur für die Metadaten implementiert, nicht für die eigentlichen Nutzdaten. Daher kann APFS Fehler innerhalb der Dateien weder erkennen noch korrigieren. Im Falle der Apple Watch mag diese Einschränkung noch nachvollziehbar sein, gerade bei macOS aber haben viele Entwickler mehr Datensicherheit erwartet.

Alle internen Felder sind bei APFS 64 Bit breit, somit sind Zeitmarken (etwa das Änderungsdatum einer Datei) nun nanosekundengenau. Alle Datenstrukturen sind erweiterbar angelegt, sodass aktuelle Versionen von APFS mit zukünftigen Versionen umgehen können, selbst wenn diese dann neue Erweiterungen benutzen. Mit anderen Worten: Auch ein mit einer zukünftigen Version von AFPS formatierter Datenträger soll so mit einer älteren Version von APFS funktionieren – wichtig gerade für den Datenaustausch auf dem Mac.

Apple hat APFS für SSDs und Flash-Speicher optimiert, mit Fokus auf kurze Latenzen und weniger auf maximalen Durchsatz. Das liegt auf der Hand, denn moderne SSDs und Flash-Speicher sind in dieser Hinsicht schon schnell genug und kurze Latenzen versprechen für Endanwender ein besseres Ansprechverhalten des Systems. Das kann aber zugleich bedeuten, dass APFS auf drehenden Festplatten nicht die beste Wahl ist; das werden Tests der fertigen Sierra-Version zeigen müssen.

Verschlüsselung integriert Apple als eine der Kernfunktionen in das neue Dateisystem. Es unterstützt eine Verschlüsselung des gesamten Dateisystems, so wie das schon HFS+ seit OS X 10.7 Lion beherrscht. Zusätzlich kann es aber auch einzelne Dateien und Attribute separat vom Dateisystem chiffrieren. Je nach Hardware kommt ein AES-XTS- oder AES-CBC-Verfahren zum Einsatz.

Teilen und sparen

Volumes werden nicht mehr in Form unabhängiger Partitionen einer SSD angelegt. Stattdessen teilen sich alle Volumes variabel den Platz auf einer Disk – je nach Bedarf. Platz spart APFS beim Kopieren von Dateien und Verzeichnissen durch Cloning: Kopiert man Dateien oder Verzeichnisse, überträgt APFS die Daten nicht Byte für Byte, sondern legt nur einen neuen Eintrag in der Verzeichnisstruktur an, der auf die originalen Daten zeigt. Damit verbraucht das System für eine Kopie nur noch den Platz für die Struktur, keinen für die kopierten Daten – und der Vorgang ist praktisch sofort erledigt. Sobald man jedoch Änderungen an den geklonten Daten vornimmt, vermerkt APFS diese und benötigt dann natürlich auch den Platz dafür auf der Platte. Für den Benutzer verhält sich eine geklonte Datei oder ein Verzeichnis somit identisch zu einer Kopie im alten HFS+, nur dass kaum Platz verbraucht wird.

Klonen mit Restrisiko

Durch die fehlenden Checksummen auf den eigentlichen Daten kann das Klonen allerdings gefährlich sein. Legt ein Benutzer zur Sicherheit mehrere Kopien eines Verzeichnisses an und tritt genau an dieser Stelle ein Fehler im Datenspeicher auf, sind alle Kopien der Daten defekt und der Benutzer merkt es unter Umständen nicht einmal sofort.