Apple File System: Copy-on-Write und Clones auf SSDs und Festplatten - Vorzüge und Nachteile
Festplatten und SSDs dienen zwar einem identischen Zweck, nämlich der dauerhaften Speicherung großer Datenmengen, unterscheiden sich aber bekanntlich grundlegend, was die Technik betrifft. Moderne Dateisysteme, etwa das bereits 2016 von Apple vorgestellte APFS, berücksichtigen das und bieten einige Funktionen, die vornehmlich auf Flash-Speicher zugeschnitten sind und sich dessen Vorzüge zunutze machen. Neben drastisch höheren Lese- und Schreibgeschwindigkeiten gehört dazu auch die Tatsache, dass bei SSDs – anders als bei ihren mechanischen Pendants – eine Fragmentierung von Dateien sich nicht negativ bemerkbar macht und Zugriffe nicht verlangsamt.
APFS verfolgt beim Speichern anderen Ansatz als HFSÄltere und somit für Festplatten entwickelte Dateisysteme wie Apples HFS+ versuchten daher, Dateien so gut es ging zusammenhängend abzulegen. Hierzu wurden bereits belegte Bereiche beim Speichern eines geänderten Files überschrieben, wann immer das möglich war. Diese Methode eignet sich allerdings weniger, wenn SSDs ins Spiel kommen. Die rein elektronischen Medien sind nämlich vergleichsweise langsam, wenn es um das Löschen belegter Blöcke geht. Zudem belastet dieser Vorgang die Flash-Chips und wirkt sich negativ auf deren Lebenserwartung aus. Bei APFS wählte Apple daher einen anderen Ansatz und nutzt ein als „Copy-on-Write“ (CoW) bekanntes Verfahren. Diesem widmet Howard Oakley jetzt einen ausführlichen
Beitrag auf seinem Blog „The Eclectic Light Company“.
Copy-on-Write überschreibt Blöcke auf der SSD nichtKommt CoW zum Einsatz, werden geänderte Blocke nicht wie bei früheren Dateisystemen aus Cupertino überschrieben. Vielmehr speichert APFS sie an einer freien Stelle auf der SSD und ändert dann lediglich den zugehörigen Verzeichniseintrag. Das beschleunigt den Vorgang nicht nur, sondern bietet auch einen weiteren Vorteil: Geht beim Speichern etwas schief, lässt sich der vorherige Zustand problemlos wiederherstellen, denn der ursprüngliche Block ist immer noch vorhanden. Darüber hinaus ermöglicht Copy-on-Write das Erstellen von Snapshots, ohne dass dafür wertvoller Speicherplatz in Anspruch genommen werden muss.
Nachteile beim Einsatz von CoW auf FestplattenCopy-on-Write bringt allerdings auch einen Nachteil mit sich, und zwar im Zusammenhang mit sogenannten Clones. Dupliziert man eine Datei, geschieht zunächst im Prinzip dasselbe wie beim Speichern eines modifizierten Files. APFS erzeugt lediglich einen zusätzlichen Verzeichniseintrag für die Kopie, diese belegt folglich keinen realen Speicherplatz. Das ändert sich jedoch, sobald eine der beiden Dateien geändert wird: Unterscheiden sich Original und Clone auch nur in einem Byte, schreibt macOS einen neuen Block, der Platzbedarf vergrößert sich also. Geschieht dies mehrfach, liegen beide Dateien irgendwann komplett auf dem Speichermedium und belegen völlig unterschiedliche Blöcke. Auf einer SSD macht sich das kaum bemerkbar, hat aber beim Einsatz einer Festplatte Auswirkungen auf die Performance: Diese verringert sich nämlich durch die von Copy-on-Write hervorgerufene Fragmentierung.