macOS High Sierra a apporté un nouveau système de fichiers nommé « Apple File System », qui remplace l’ancien système de gestion fichiers HFS+. Egalement connu sous le nom APFS, il est utilisé par défaut sur les iPhones et iPads depuis iOS 10.3, ainsi que sur l’Apple Watch et l’Apple TV. Le développement de ce nouveau système a démarré en 2014 avec Dominic Giampaolo en tant qu’ingénieur en chef. Il s’agit d’une implémentation autonome partie d’une feuille blanche.
Le système de fichiers d’Apple est optimisé pour le stockage Flash/SSD, il offre un chiffrement fort, des latences ultra-faibles et des surcharges de mémoire limitées. Il faut garder à l’esprit que l’APFS est conçu uniquement pour répondre aux besoins des produits de l’écosystème d’Apple. A ce jour, Disk Utility est reconnaît une majorité de SSD tiers qui peuvent tirer parti du système APFS. Il peut également être utilisé avec les disques durs traditionnels (HDD) et le stockage externe à connexion directe.
Un peu d’histoire
HFS a été introduit en 1985 lorsque le Mac avec 512K de mémoire était le fleuron d’Apple. HFS+, une itération significative a été livré en 1998 sur les PowerMacs G3 avec des disques durs de 4 Go. Depuis, les capacités de stockage ont augmenté significativement. HFS+ a subi de nombreuses modifications avec bifurcations multiples pour différents appareils. L’équipe d’iOS a créé sa propre variante HFS, travaillant si secrètement que même l’équipe d’ingénieurs macOS n’en connaissaient l’existence…
Aujourd’hui, les utilisateurs stockent généralement des centaines de giga-octets et accèdent à des millions de fichiers sur des lecteurs flash à haute vitesse et à faible latence. Les gens transportent leurs données avec eux et ils exigent que les informations sensibles soient sécurisées.
Fonctionnalités
1. Clones
Un clone est une copie presque instantanée d’un fichier ou d’un répertoire qui n’occupe aucun espace supplémentaire. Les clones permettent au système d’exploitation de réaliser des copies de fichiers rapides sur un même volume sans occuper d’espace de stockage supplémentaire et en économisant la batterie. Les modifications apportées aux données sont écrites ailleurs et continuent à partager les blocs non modifiés. Les modifications apportées à un fichier sont enregistrées en tant que « deltas » du fichier cloné, ce qui réduit l’espace de stockage requis pour les révisions de documents et les copies.
Les blocs de données sont partagés en utilisant un schéma de copie sur écriture (copy-on-write), seules les métadonnées sont réellement copiées.
Plutôt que de simplement créer une deuxième copie des données de ce fichier sur le disque, APFS crée un marqueur indiquant que deux fichiers sur le disque pointent vers les mêmes données. Cela signifie que l’opération de copie doit avoir lieu immédiatement. Si vous modifiez l’un des deux fichiers, APFS stockera le fichier original et le fichier modifié, et tout fonctionnera comme prévu.
2. Instantanés
Un instantané (snapshot) de volume est une instance ponctuelle du système de fichiers en lecture seule. Le système d’exploitation utilise des instantanés pour que les sauvegardes fonctionnent plus efficacement et offrent un moyen de rétablir les modifications apportées à un moment donné.
Par exemple, APFS incorpore des instantanés au niveau du système de fichiers. Le premier instantané contient une image complète du lecteur entier, tandis que les instantanés futurs contiennent uniquement les modifications apportées depuis le cliché précédent. Seules les nouvelles données que vous avez ajoutées occupent de l’espace. Time Machine fonctionne de manière similaire, mais les instantanés de l’APFS sont encore plus efficaces. Time Machine n’utilise pas encore APFS, mais Apple pourrait déplacer Time Machine vers APFS dans une future version de macOS.
Si vous souhaitez créer un nouvel instantané sur un volume de démarrage APFS, vous pouvez utiliser la commande tmutil. Le système crée un fichier nommé com.apple.TimeMachine.<date-du-snapshot>. Plus d’informations sur la commande tmutil se trouvent dans les pages man.
Les instantanés sont générés automatiquement dans High Sierra lorsqu’une mise à jour importante est effectuée. Avant que la mise à jour ne soit appliquée, le système d’exploitation génère un instantané TimeMachine. Ceci est utile lorsque le système rencontre des problèmes de stabilité après les mises à jour importantes.
3. Partage de l’espace
Le partage d’espace permet à plusieurs systèmes de fichiers de partager le même espace libre sous-jacent sur un volume physique. Contrairement aux schémas de partitionnement rigides qui pré-allouent une quantité fixe d’espace pour chaque système de fichiers, les volumes au format APFS peuvent croître et rétrécir sans repartitionner le volume.
En utilisant Apple File System, l’espace disque d’un conteneur est partagé entre tous ses volumes. Par défaut, chaque volume dans un conteneur APFS signale le même espace disque disponible, qui est égal à l’espace disque total disponible du conteneur.
Les conteneurs peuvent éventuellement configurer un quota, ou une allocation maximale d’espace disque pour un volume, ainsi qu’une réservation, ou une allocation minimale garantie d’espace disque pour un volume.
4. Le chiffrement
La sécurité et la confidentialité sont fondamentales dans la conception du système de fichiers d’Apple. C’est la raison pour laquelle Apple File System implémente un cryptage complet sur disque dur, cryptant des fichiers et toutes les métadonnées sensibles.
Les méthodes de chiffrement disponibles dépendent du matériel et du système d’exploitation, et peuvent varier pour Mac, iPhone, iPad, Apple TV et Apple Watch.
APFS prend en charge les modèles de chiffrement suivants pour chaque volume d’un conteneur:
- Pas de chiffrement : un utilisateur peut simplement choisir de ne pas crypter ses données du tout. Ce n’est probablement pas la meilleure façon de traiter vos fichiers si vous avez des données sensibles sur votre ordinateur portable.
- Chiffrement à clé unique : le cryptage à clé unique sur votre appareil fonctionnera de la même manière que FileVault fonctionne sur un Mac en ce moment. Il va crypter vos données, nécessitant une clé pour y accéder.
- Chiffrement à plusieurs clés avec des clés par fichier pour les données et une clé distincte pour les métadonnées sensibles : le cryptage multi-clés sur APFS permettra aux utilisateurs de créer plusieurs clés pour différents fichiers, ou même des parties de fichiers. Il s’agit d’un nouvel ajout à APFS, car il permet le chiffrement «par fichier», de sorte que différents fichiers peuvent avoir des clés de chiffrement différentes. Le chiffrement à plusieurs clés garantit l’intégrité des données de l’utilisateur. Même si quelqu’un devait compromettre la sécurité physique de l’appareil et accéder à la clé de l’appareil, il ne pourrait toujours pas déchiffrer les fichiers de l’utilisateur. APFS offre un chiffrement au niveau du système de fichiers, pas au niveau du disque comme c’était le cas auparavant dans HFS+. Cela rend le processus de chiffrement plus robuste. Avec APFS, activer et désactiver FileVault ne nécessite pas de redémarrer le système.
Les modes de chiffrement utilisés par Apple File System sont AES-XTS ou AES-CBC, selon le matériel.
5. Protection améliorée
APFS utilise un nouveau schéma de métadonnées de copie à l’écriture (copy-on-write) pour garantir que les mises à jour du système de fichiers soient protégées contre les pannes, sans le double temps d’écriture de la journalisation.
Le schéma de protection des données (copy-on-write) permet de partager des structures de données tant qu’aucune modification n’est apportée. Une fois qu’une modification est demandée (écriture), une nouvelle copie unique est faite, s’assurant que l’original est laissé intact. Une fois l’écriture terminée, les informations de fichier sont mises à jour pour pointer vers les nouvelles données. Par exemple, lorsque vous mettez à jour les métadonnées d’un fichier, comme son nom, par exemple, le système de fichiers HFS + modifiera directement ces métadonnées. Si votre Mac tombe en panne avant la fin de l’opération, des données peuvent être corrompues.
Avec APFS, lorsque vous modifiez les métadonnées d’un fichier, APFS crée une nouvelle copie de celles-ci. APFS pointe le fichier d’origine sur cette métadonnée uniquement après l’écriture des nouvelles. Il n’y a donc aucun risque de corruption des métadonnées. Cette fonctionnalité est également présente dans d’autres systèmes de fichiers modernes, tels que ZFS et BtrFS sous Linux et ReFS sous Windows.
6. Sparse files
Apple File System prend en charge les fichiers contenant de données dispersés – « sparse files » -, un moyen plus efficace de représenter les blocs vides sur le disque.
Avec des données clairsemées, le stockage est alloué uniquement en cas de besoin. Cela permet à la taille logique des fichiers d’être supérieure à l’espace physique occupé sur le disque. Les API peuvent interroger à la fois la taille logique et physique des fichiers fragmentés, avec des fonctionnalités permettant de rechercher et de revenir au début des trous et des sections de données.
Dans les systèmes de fichiers non clairsemés, l’espace fichier doit être réservé à l’avance, même si aucune donnée n’est prête à être stockée.
La prise en charge des fichiers fragmentés signifie qu’un fichier volumineux (disons 2 Go) ne recevra que l’espace total de 2 Go sur le périphérique de stockage alors que les données réelles dans le fichier ont une taille de 2 Go. Par exemple, considérez le cas d’utilisation où vous téléchargez un fichier en utilisant un torrent. Le fichier peut être un fichier volumineux, disons 2 Go. Dans le système de fichiers HFS +, au moment où le fichier commence à être téléchargé, le système de fichiers alloue 2 Go d’espace au fichier, même si les données réelles téléchargées (et donc sauvegardées) peuvent ne représenter qu’un seul kilo-octet.
APFS marquera l’espace tel qu’il est alloué afin de ne pas manquer d’espace sur le disque, mais écrira seulement les données sur le disque une fois qu’il y aura de vraies données à écrire.
APFS inclut également le support TRIM qui est une commande dans le protocole ATA qui permet à un système de fichiers d’indiquer à un disque SSD qu’un espace a été libéré.
7. Le dimensionnement rapide
Le dimensionnement rapide des répertoires permet au système de fichiers Apple de calculer rapidement l’espace total utilisé par une hiérarchie de répertoires et de le mettre à jour au fur et à mesure de l’évolution de la hiérarchie.
Le dimensionnement rapide des répertoires fonctionne en pré-calculant la taille du répertoire lorsque le contenu est ajouté et supprimé. Par exemple, le dossier Documents d’un utilisateur est un bon candidat pour le dimensionnement rapide des répertoires, contrairement au répertoire /tmp.
Le système de fichiers peut activer le dimensionnement rapide d’un répertoire sur des répertoires vides. Vous ne pouvez pas activer la taille de répertoire rapide sur les répertoires contenant des fichiers ou d’autres répertoires directement. Vous devez d’abord créer un nouveau répertoire, activer le dimensionnement rapide du dossier, puis déplacer le contenu du répertoire existant vers le nouveau répertoire.
8. Atomic Safe-Save
Apple File System introduit Atomic Safe-Save pour les bundles et les répertoires. Atomic Safe-Save exécute des renoms dans une transaction unique, de sorte que, du point de vue de l’utilisateur, l’opération est terminée ou ne se produit pas du tout.
Atomic Safe-Save est similaire à l’idée de copy-on-write mais s’applique à n’importe quelle opération de fichier, telle que renommer ou déplacer un fichier ou un répertoire.
En renommant un fichier par exemple, le fichier sur le point d’être renommé est copié avec les nouvelles données (le nom du fichier). Ce n’est que lorsque le processus de copie est terminé que le système de fichiers est mis à jour pour pointer vers les nouvelles données. Cela garantit que si pour une raison quelconque, comme une panne de courant, ou un problème de CPU, l’écriture n’est pas terminée, le fichier original reste intact.
Conclusion
La mise à jour vers High Sierra et le passage vers APFS ne seront pas remarqués par la plupart des utilisateurs de Mac. L’intégration APFS dans macOS a été conçue pour s’adapter à tout progrès prévisible dans la technologie de stockage.
APFS est un nouveau système de gestion de fichiers qui possède de nombreuses nouvelles fonctionnalités et d’implémentations pour l’avenir. En conséquence, nous devons lui donner du temps pour vieillir comme pour un bon vin…
![]() | F. Andrei |