Das neue Dateisystem von Apple

Wie APFS das Apple-Ökosystem verändert

05.04.2017
Von    und Klaus  Rodewig
Mark Zimmermann weist mehrere Jahre Erfahrung in den Bereichen Mobile Sicherheit, Mobile Lösungserstellung, Digitalisierung und Wearables auf. Er versteht es seine Themen aus unterschiedlichsten Blickwinkeln für unternehmensspezifische Herausforderungen darzustellen. Hierzu ist er (nebenberuflich) auf nationalen Vorträgen und als freier Autor für Fachpublikationen rund um das iOS-Ökosystem tätig.

Performance, Performance, Performance

SSDs imitieren die Blockschnittstelle herkömmlicher Festplatten, aber die zugrunde liegende Technologie ist völlig anders. Insbesondere während magnetische Medien Sektoren beliebig lesen oder schreiben können, löscht Flashspeicher große Blöcke (Blocks) und liest und schreibt kleinere Stücke (Seiten). Das Management wird durch das so genannte Flash-Translation-Layer (FTL) gewährleistet. Ein FTL ähnelt dabei einem eigenen Dateisystem, das eine virtuelle Zuordnung zwischen Blockadressen und Orten innerhalb des Mediums erzeugt.

APFS ist ein Dateisystem mit Flash-fähigen Merkmalen, in dem die Dateien in einer Art geschrieben wird, das von einem Flashspeicher leichter behandelt werden kann.

So ist APFS in der Lage, eine Reihe von kurzen und potenziell unabhängigen Speicherbefehle zu kombinieren. Dies ermöglicht es, diese in einem kombinierten Schreibprozess abzuspeichern, um damit die (langsamere) physische Speicherung effizienter zu gestalten. APFS ermöglicht es also, in einer Art und Weise die Daten auf den Datenträger zu speichern, wie es für Flash Speicher einfacher zu handhaben ist.

Für Lösch- und (Wiederbe-)schreib-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.

An dieser Stelle setzt der TRIM-Support von APFS an. TRIM ist ein Befehl im ATA-Protokoll, der es einem Dateisystem ermöglicht, einer SSD anzuzeigen, dass etwas Speicherplatz freigegeben wurde und so intern freigeräumt werden können.

Das Problem mit TRIM ist, dass es nur sinnvoll ist, wenn es freien Speicherplatz gibt. Sobald ein Datenträger meistens voll ist, hilft dieses Verfahren nichts. Daher darf davon ausgegangen werden, dass TRIM für APFS-Nutzer ein Placebo-Effekt ist, da Datenträger im täglichen Einsatz häufig sehr gut gefüllt sind und wenig freien Speicherplatz bringt.

OS X unterstützte TRIM bisher nur für Apple-eigene SSDs. Drittanbieter-SSDs hingegen benötigten oft spezielle Dienstprogramme. APFS unterstützt TRIM nun für alle SSD Hersteller.

APFS fokussiert sich auf Latenz bei den eigentlichen Zugriffen und weniger auf Datendurchsatz. Letzteres bieten moderne SSDs und Flashspeicher von Haus aus. Die Latenz hingegen 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. Dies sorgt für kurze Latenzen, um dem Anwender ein besseres Ansprechverhalten des Systems zu geben.

Was sich für Besitzer eines derartigen Speichers positiv anhört, dürfte für Anwender mit drehenden Festplatten nicht die beste Wahl sein. Praxistests müssen hier noch Erfahrungswerte liefern.

Weitere Neuerungen

Im alten HFS-Dateisystem wurden Änderungs- und Erstellungszeitpunkte noch mit einer Präzision von einer Sekunde gespeichert. Mit APFS erhöht Apple dies von einer Sekunde unter HFS+ auf 1 Milliardstel Sekunde (= 1 Nano-Sekunde). Der Sinn dahinter ist, dass das Dateisystem so erheblich genauer den Änderungsverlauf protokollieren und im Falle eines Stromausfalls wieder rekonstruieren kann.

Auch schneidet Apple alte Zöpfe ab. Das proprietäre Apple Filing Protocol, kurz AFP, eingeführt mit System 6 zum Austauschen von Dateien über Netzwerke, wird nicht mehr unterstützt. Die Netzwerkfreigabe von APFS-Volumen erfolgt nur noch das ursprünglich von Microsoft entwickelte und im Unternehmensumfeld verbreitete SMB (Server Message Block). Dieses ist schon seit OS X 10.9 Mavericks das bevorzugte Protokoll für Apple, um zwischen Macs Dateien im Netzwerk auszutauschen.

Aufgrund der breiten Bandbreite an Zielgeräten, angefangen bei der Apple Watch bis zum MacPro, ist ein weiteres Ziel die Schonung der Ressourcen (CPU, RAM).

Migration in der Praxis

Mit iOS 10.3 hat Apple APFS leise und vom Anwender unbemerkt ausgerollt. Wäre nicht die etwas längere Installationszeit für das Update gewesen, man hätte gar nicht bemerkt, dass etwas mehr passiert als nur ein Update.

Trotzdem sind die Vorteile von APFS vorhanden. So ist der Footprint, also der Speicherplatz, den z.B. eine Runtime-Umgebung belegt oder referenziert, einer jeden Swift-App um ca. 6,5 MB gesunken. Was sich auf den ersten Blick vielleicht merkwürdig anhört, ist nur die konsequente Implementierung der APFS-Funktionen. Diese bewirken, dass die Runtime-Umgebung von Swift nicht mehr pro App, sondern nur ein Mal im Dateisystem vorgehalten wird.

Kopiert ein Anwender Dateien innerhalb einer Sandbox oder in eine andere hinein, bewirkt dies keinen zusätzlichen Speicherverbrauch. Bei einem Neustart des iOS-Gerätes bringt APFS zwischen 3-7 Sekunden Performance-Steigerung. Auch das Starten einiger Apps erfolgt nun schneller.

In allen Tests der Autoren verlieft die Migration problemlos und fehlerfrei. Natürlich rät Apple ausdrücklich zum Anfertigen eines Backups vor der Installation von iOS 10.3. Aber das sollte ja auch unabhängig von der Migration des Dateisystems eine Selbstverständlichkeit sein.

Fazit

Apple ist immer wieder für Überraschungen gut. Wurde die Entwicklergemeinde 2014 von der Einführung von Swift vollkommen überrumpelt, war es 2016 die Ankündigung von APFS. Auf der WWDC selber war APFS noch nicht verfügbar und die Beschreibungen dazu noch sehr rudimentär. In etwas mehr als einem halben Jahr hat Apple es seitdem auf iOS schon zur Produktionsreife getrieben. Es bleibt abzuwarten, wie die Migration auf dem Mac passieren wird. Wenn man sich die Liste der noch offenen Punkte anschaut, werden wir darauf allerdings noch ein bisschen warten müssen.

Spannend wird die Frage, wie Apple die neuen Features von APFS so einführt, dass es kein Inkompatibilitäten gibt. Die oben erwähnten Probleme bei der Nutzung von HFS+ mit Groß- und Kleinschreibung werden bei APFS auch vorhanden sein. Apple hat auf solche Herausforderungen in der Vergangenheit entweder mit einem schlauen Kompatibilitätsmechanismus, man erinnere sich nur an Rosetta beim Umstieg vom PowerPC zur Intel-Architektur, oder dem rigorosen Abschneiden alter Zöpfe reagiert. Denkbar ist z.B., dass APFS auf dem Mac vorerst eine Kann-Option ist und der Anwender selber entscheiden muss, es zu nutzen.

Vielleicht stellt Apple die Lösung auch als Open Source zu Verfügung (analog Swift oder ResearchKit). Dieser Schritt wurde von Apple jedoch weder bestätigt noch abgelehnt.

Eins ist sicher: APFS ist ein großer und wichtiger Wurf für Apple. In einer Zeit, wo langjährige Apple-Anwender sich schon länger fragen, ob Apple seinen Fokus nur noch auf Sticker-Apps und bunte Watch-Armbänder legt, ist es sehr erfreulich, dass sich Apple ein für Normalanwender vordergründig so unglaublich uninteressantes und langweiliges Thema wie ein Dateisystem auf die Agenda schreibt. Dabei darf man aber auch nicht vergessen, dass APFS Techniken einführt, die bei konkurrierenden Linux-Systemen seit Jahrzehnten (!) erfolgreich im Einsatz sind. Im Vergleich zum NTFS-Dateisystem, im Windows-Lager, ist Apple jedoch um Meilen voraus.

Ein bisschen weniger bunt, dafür mehr Arbeit am Fundament würde allen Apple-Produkten gut zu Gesicht stehen. (mb)