APFS (Apple File System) is een systeem voor het organiseren en structureren van gegevens op een opslagsysteem. APFS oorspronkelijk uitgebracht met macOS Sierra vervangt de 30-jarige HFS +.
HFS + en HFS (een iets eerdere versie van het hiërarchisch bestandssysteem) is oorspronkelijk gemaakt in de tijd van floppydisks, het primaire opslagmedium voor de Mac toen het draaien van harde schijven een dure optie was die door derden werd aangeboden.
In het verleden heeft Apple geflirt met het vervangen van HFS +, maar APFS dat al is opgenomen in iOS, tvOS en watchOS, is nu het standaardbestandssysteem voor macOS High Sierra en later.
APFS is geoptimaliseerd voor de opslagtechnologie van vandaag en morgen
HFS + werd geïmplementeerd toen floppies van 800 kb de koning waren. Huidige Macs gebruiken mogelijk geen diskettes, maar het draaien van harde schijven begint net zo archaïsch te lijken. Omdat Apple de nadruk legt op flash-gebaseerde opslag in al haar producten, is een bestandssysteem dat geoptimaliseerd is om met roterende media te werken en de inherente latentie in afwachting van een schijf om rond te draaien gewoon niet logisch.
APFS is vanaf het begin ontworpen voor SSD en andere flash-gebaseerde opslagsystemen. Hoewel APFS is geoptimaliseerd voor de werking van solid-state opslag, presteert het goed met moderne harde schijven.
Toekomstproeven
APFS ondersteunt een 64-bits inode-nummer. De inode is een unieke ID die een bestandssysteemobject identificeert. Een bestandssysteemobject kan van alles zijn; een bestand, een map. Met een 64-bits inode kon de APFS ongeveer 9 quintillion bestandssysteemobjecten bevatten voorbij de oude limiet van 2,1 miljard.
Negen quintillion lijkt misschien een behoorlijk groot getal en je kunt terecht vragen welk opslagapparaat genoeg ruimte zal hebben om zoveel objecten te bevatten. Het antwoord vereist een kijkje in opslagtrends. Overweeg dit: Apple is al begonnen met het verplaatsen van opslagtechnologie op ondernemingsniveau naar producten op consumentenniveau, zoals de Mac en de mogelijkheid om gelaagde opslag te gebruiken. Dit was voor het eerst te zien in Fusion-schijven die gegevens tussen een krachtige SSD en een langzamere maar veel grotere harde schijf hebben verplaatst. Vaak gebruikte gegevens werden bewaard op de snelle SSD, terwijl bestanden die minder vaak werden gebruikt, werden opgeslagen op de harde schijf.
Met macOS breidde Apple dit concept uit door iCloud-opslag aan de mix toe te voegen. Toegestaan dat films en tv-programma's die je al hebt bekeken, worden opgeslagen in iCloud, waardoor lokale opslag wordt vrijgemaakt. Hoewel dit laatste voorbeeld geen uniform inode-nummeringssysteem vereist voor alle schijven die door dit gelaagde opslagsysteem worden gebruikt, geeft het wel een algemene richting aan waarin Apple zich misschien beweegt; om meerdere opslagtechnologieën samen te brengen die het best voldoen aan de behoeften van de gebruiker, en laat het besturingssysteem ze zien als een enkele bestandsruimte.
APFS-functies
APFS heeft een aantal functies die het onderscheiden van oudere bestandssystemen.
- Klonen - Klonen staan bijna onmiddellijke bestandskopieën toe zonder extra ruimte te gebruiken. In plaats van een bestand bit voor bit van de ene locatie naar de andere te kopiëren, verwijzen klonen in plaats daarvan naar het oorspronkelijke bestand en delen ze de datablokken die identiek zijn tussen de twee bestanden. Breng wijzigingen aan in één bestand en alleen het blok met gegevens dat is gewijzigd, wordt naar de nieuwe kloon geschreven, terwijl zowel het origineel als de kloon ongewijzigde gegevensblokken blijven delen. Dit maakt niet alleen het kopiëren en opslaan van bestanden bijzonder snel, maar bespaart ook op opslagbehoeften.
- Snapshots - APFS kan een volumesnapshot maken dat een momentopname vertegenwoordigt. Snapshots kunnen worden gebruikt om efficiënte back-ups te vergemakkelijken en u kunt teruggaan naar hoe de dingen zich op een bepaald moment in de tijd bevonden. Snapshots zijn alleen-lezen wijzers naar het oorspronkelijke volume en de bijbehorende gegevens. Een nieuwe momentopname neemt geen echte ruimte in beslag, behalve de hoeveelheid ruimte die nodig is om een aanwijzer op te slaan naar het oorspronkelijke volume. Naarmate de tijd verstrijkt en wijzigingen worden aangebracht in het oorspronkelijke volume, wordt de momentopname bijgewerkt met alleen de wijzigingen die optreden.
- Versleuteling - APFS ondersteunt krachtige volledige schijfversleuteling met behulp van AES-XTS of AES-CBC-modi. Zowel bestanden als metadata worden gecodeerd. Ondersteunde coderingsmethoden omvatten:
- Wissen (geen codering).
- Single-key.
- Multi-key, met toetsen per bestand voor zowel data als metadata.
- Spatie delen - Spatie delen maakt een einde aan het vooraf definiëren van partitiegroottes; in plaats daarvan delen alle volumes de onderliggende vrije ruimte op een schijf. Door ruimte te delen, kunnen meerdere volumes op een schijf worden uitgebreid en dynamisch worden verkleind als dat nodig is, zonder dat hiervoor een herverdeling nodig is.
- Copy-On-Write - Met dit gegevensbeschermingsschema kunnen gegevensstructuren worden gedeeld zolang er geen wijzigingen worden aangebracht. Nadat een wijziging is aangevraagd (schrijven), wordt een nieuwe unieke kopie gemaakt, zodat het origineel intact blijft. Pas nadat het schrijven is voltooid, wordt de bestandsinformatie bijgewerkt om naar de nieuwe gegevens te wijzen.
- Atomic Safe-Save - Dit is vergelijkbaar met het idee van copy-on-write maar is van toepassing op elke bestandsbewerking, zoals het hernoemen of verplaatsen van een bestand of map. Met gebruik van hernoemen als voorbeeld, wordt het bestand dat op het punt staat te worden hernoemd gekopieerd met de nieuwe gegevens (de bestandsnaam); pas nadat het kopieerproces is voltooid, wordt het bestandssysteem bijgewerkt om naar de nieuwe gegevens te verwijzen. Dit zorgt ervoor dat als om welke reden dan ook, zoals een stroomstoring of een soort CPU-storing, de schrijf niet wordt voltooid, het oorspronkelijke bestand intact blijft.
- Dunne bestanden - Door deze efficiëntere manier om bestandsruimte toe te wijzen, kan de bestandsruimte alleen groeien als dat echt nodig is. In niet-dunne bestandssystemen moet de bestandsruimte van tevoren worden gereserveerd, zelfs wanneer geen gegevens gereed zijn om te worden opgeslagen.




