iOS 10.3 : la révolution APFS

Si l’update des produits iOS est plus longue que d’habitude avec cette nouvelle version 10.3, c’est qu’elle doit s’acquitter d’une tâche aussi ingrate qu’invisible pour les utilisateurs : transformer de fond en comble la façon dont sont stockés les fichiers sur iPhone et iPad. Et changer à la volée un système de fichiers est tout sauf trivial ! La nature fermée de ces appareils rend le tour de passe-passe possible pour Apple, qui compte bien utiliser APFS (Apple File System) sur tous ses produits très rapidement. Pour comprendre pourquoi ce changement est une évolution importante, il faut comprendre le rôle critique d’un système de fichiers sur nos machines, ce qui nécessite au passage un petit cours d’histoire.

Apple Products

Jamais une update “mineure” dans son numéro de version n’aura été aussi importante sur iOS. Cette version 10.3 apporte son lot de modifications avec dans le tas des choses bienvenues pour l’utilisateur lambda, comme l’unification des informations de votre profil dans les paramètres (enfin !) ou des animations plus rapides qui donnent l’impression qu’iOS tourne beaucoup plus vite. Mais ce n’est pas qu’un feeling dû à un changement cosmétique. APFS y est aussi peut-être bien pour quelque chose, comme nous allons le voir dans un instant.

Il est maintenant aussi possible de voir la liste des applications “obsolètes” présentes sur votre iPhone (ou iPad) en allant dans Réglages ➜ Général ➜ Information ➜ touchez “Applications”. Ces softs ne tourneront pas avec les prochaines versions d’iOS, intégralement 64 bits. Il s’agit généralement de vielles apps abandonnées depuis longtemps, mais dans le doute, vous pouvez garder vos préférées sous le coude, on n’est jamais à l’abri d’une bonne surprise. Je pleure depuis des années la mort d’iProRecorder de BIAS (société qui a fermé en 2012), mais cette fois il va falloir que je la désinstalle je crois…

La bonne surprise d’APFS

Avant d’attaquer le cours d’histoire et les raisons techniques qui font d’APFS une fantastique évolution de l’écosystème Apple, parlons de choses concrètes qui feront plaisir à tout le monde : ce nouveau système de fichier fait gagner de la place.

Plus vous avez un espace de stockage important et chargé, plus le gain est notable. J’ai récupéré pas loin de 5 Go sur mon iPhone 6s 128 Go par exemple. Même si les raisons qui suivent ne vous intéressent pas (et vous avez tort), ça donne une excellente raison d’upgrader…

APFS : un système de fichiers pour les rassembler tous

Pour parler de la nécessité de ce changement, de ce qu’il apporte et jeter un coup de projecteur sur l’historique d’Apple, rien de mieux que de faire appel à un spécialiste. Guillaume Gète mange des pommes depuis de nombreuses années : écriture de guides Mac OS X, blog et surtout gestion d’une société dédiée à la maintenance des machines Apple en entreprise, ce monsieur sait tout faire dès qu’un logo fruité est dans le coin. C’est également un ami et il m’autorise à piller sans vergogne l’excellent papier qu’il a écrit l’année dernière, après la présentation d’APFS à la WWDC 2016 (World Wide Developer Conference, la grand-messe des développeurs Apple). Découvrons enfin ce que ces 4 lettres désignent réellement !

Mais c’est quoi, un système de fichiers ?

Je vois déjà les lecteurs assidus de Geekzone froncer les sourcils, mais désolé, tout le monde ne connait pas forcément le rôle incroyablement important du file system. Une lecture de la page Wikipedia s’impose alors ! Version courte : c’est la manière dont sont organisés et indexés tous les fichiers de votre ordinateur. L’évolution de l’informatique a logiquement entrainé des évolutions des systèmes de fichiers pour s’adapter aux nouvelles formes de stockage, de tailles de plus en plus importantes et avec des impératifs différents au fil des ans. Mais commençons par le commencement !

La préhistoire : le MFS

Mac Classic

Le premier système de fichiers du Mac est apparu avec l’OS Système 1.0 de 1984, et s’appelait Macintosh File System, ou MFS pour les intimes. Oui, c’est tout de suite plus marrant en français… Bien que sophistiqué pour l’époque, il a vite montré ses limites, avec un maximum de 4094 fichiers / 20 Mo par volume. Bon, vu de 2017, c’est assez peu… Surtout quand on sait qu’il ne permettait pas de créer des sous-dossiers ! MFS a été rapidement remplacé et oublié, dès Mac OS 8, qui ne permettait plus de lire ce format. Anecdote amusante, Apple a proposé un plug-in VFS (Virtual File System) pour lire les volumes MFS sur Mac OS 10.4. Certainement un ingénieur qui avait un vieux disque dur à récupérer… L’une des particularités de MFS est d’avoir apporté la compatibilité avec les sacro-saintes ressources (resource fork) des fichiers du Mac.

HFS : les choses sérieuses commencent

Dès l’arrivée du premier disque dur pour Mac, en 1985, Apple lance son nouveau système de fichiers : HFS, pour Hierarchical File System. Déjà beaucoup plus mûr, il est taillé pour le futur tel qu’on l’imagine à l’époque… Avec une taille maximale de fichier de 2 Go et 65 535 fichiers par volume (qui peut atteindre 2 To), on pense être tranquille pour très longtemps. En comparaison, le FAT16 de Windows accepte des volumes de seulement 2 Go (4 Go sur Windows NT) à la même époque.

Mais HFS restait néanmoins un système de fichiers 16-bits, limité à de nombreux niveaux. En particulier, le nombre fixe de 65 535 blocs d’allocation sur le disque créait un gâchis d’espace énorme. Un petit alias de quelques octets sur un disque de petite taille pouvait peser plusieurs Ko sur un disque de 1 Go ! Tout comme Windows, forcé d’évoluer vers FAT32, Apple sera forcé d’évoluer vers un format de fichiers plus adapté aux disques durs de l’époque.

HFS+ : l’ère moderne

Exit la limite des blocs sur 16 bits : HFS+ (ou Mac OS Étendu) apporte la gestion de volumes sur 32 bits, réduisant ainsi la taille des blocs d’allocation et apportant plein de nouvelles fonctions utiles. Les volumes, lisibles à partir de Mac OS 8.1, sont également compatibles Unicode avec des noms de fichiers jusqu’à 255 caractères, mais le système en bénéficiera réellement avec l’arrivée de Mac OS X. HFS+ deviendra obligatoire pour pouvoir installer Mac OS X, si vous étiez assez fou pour l’installer dès le 21 mars 2001 !

Mais attention ! Bien qu’il fut officiellement lancé en 1998, HFS+ n’a pas cessé d’évoluer depuis. Avec les années, Apple continuera d’empiler les couches pour lui apporter de plus en plus de fonctions importantes :

  • Le support de la journalisation avec Mac OS X 10.2.2. Cette fonction est essentielle sur les systèmes modernes : en cas de plantage, on peut se fier à l’état du journal pour retrouver l’état fiable d’un volume après un crash système plutôt que de faire un contrôle de cohérence sur l’ensemble du disque.
  • Les listes de contrôle d’accès (ACL) avec Mac OS X 10.4.
  • La gestion des hard links vers des dossiers, essentiellement pour Time Machine (Mac OS X 10.5).
  • La compression de fichiers (Mac OS X 10.6)

Aujourd’hui, Mac, Apple TV ou Watch utilisent encore une version améliorée d’HFS+. Et c’était le cas encore pour votre iPhone ou iPad lundi, avant de passer à iOS 10.3 (car vous avez évidemment upgradé day one, on est sur Geekzone ou pas ?).

Apple Partition

Jongler avec la taille de ses partitions, bientôt de l’histoire ancienne avec APFS.

Avec pratiquement 20 ans au compteur, HFS+, même patché dans tous les sens, commençait à sérieusement accuser son âge. C’est surtout avec Time Machine que les limitations commençaient à être atteintes, transformant parfois l’expérience utilisateur de ce service en cauchemar…

En effet, Time Machine est très exigeant : on parle de stocker des centaines de milliers de fichiers, certains variant très peu, et dans un cadre où la fiabilité est essentielle. Or, HFS+ échoue quasiment à tous les niveaux :

  • Pas de déduplication de fichiers. Vous avez plusieurs copies de fichiers identiques dans votre Mac ? Pas de bol, HFS+ va garder une copie de chacun. Pire : vous disposez de plusieurs copies de fichiers dans vos sauvegardes Time Machine ? Pas de bol, il y aura autant de copies du fichier qu’il sera mentionné sur le disque, même s’il a été juste déplacé. Pas très efficace. Pour parler poliment…
  • Pas de vérification de la cohérence des fichiers lors de la copie. Il n’existe pas de mécanisme permettant de s’assurer à 100% qu’une copie de fichier est totalement cohérente lors de la sauvegarde Time Machine. Votre fichier devrait être bien copié, mais rien ne peut le garantir à 100%.
  • Pas de snapshot. Et pourtant, ça serait génial, et pas que pour Time Machine. Vous faites une modification de votre système de fichiers, vous installez une grosse mise à jour, vous redémarrez, BIM, machine plantée. Vous pouvez en une seconde retrouver votre disque tel qu’il était avant la màj. Le rêve.
  • Pas de sauvegarde atomique des fichiers. Vous avez déplacé un fichier dans l’arborescence de votre Mac ? Oops ! Car Time Machine est idiot, il ne le sait pas, parce que HFS+ ne peut pas lui dire qu’un fichier simplement déplacé n’a pas besoin d’être recopié intégralement. Et du coup, il le sauvegarde à nouveau. Ne déplacez jamais vos dossiers de MKV de 20 Go. Jamais.
  • Pas de gestion de clone de fichiers. Un clone de fichier est une copie de fichier qui ne prend pas de place sur le disque dur. Et toutes les modifications que l’on fait à ce fichier sont ajoutées sous la forme de blocs supplémentaires sur le disque. Exemple : j’ai créé un document Word, je l’enregistre, Time Machine le sauvegarde. Je rajoute un paragraphe : Time Machine re-sauvegarde tout le fichier, y compris la partie déjà enregistrée. Pas efficace. Avec un clone, Time Machine pourrait dire “ne sauvegarde que la partie manquante du fichier, le reste, je l’ai déjà en clone”.

Pourtant, Apple a failli nous apporter toutes ces fonctions. On y a cru. Vraiment.

Les promesses de ZFS

Avec l’arrivée de Mac OS X Server 10.6 (Snow Leopard Server – 2009), Apple annonce au passage la compatibilité avec le format ZFS. Ce système de fichiers créé par Sun, c’était la promesse d’un outil moderne, taillé pour les vingt prochaines années. Mais bizarrement, très peu de temps après cette annonce, le silence radio sur le sujet s’installe chez Apple. Les suppositions sont nombreuses sur les raisons de ce revirement de situation . Un problème de licence avec Sun ? Probable. Mais il a fallu se faire à l’évidence, et composer avec HFS+ et ses faiblesses quelques années de plus…

Cette histoire de système de fichiers moderne devient même une blague récurrente dans le milieu : on se demandait si Apple allait enfin faire plaisir au célèbre John Siracusa en proposant un truc qui tient la route. John est connu pour ses tests-fleuves de macOS sur Ars Technica, où il écrira sur la nécessité de faire changer les choses rapidement. Il avait raison, et pourtant c’était en 2006. Il aura finalement fallu attendre plus de 10 ans pour que l’espoir renaisse, via un simple Tweet.

APFS Tweet

Apple File System : taillé pour les solutions de stockage modernes

Welcome APFS

Apple File System (APFS) est donc annoncé en douce, simplement via le planning de la WWDC, juste à la fin de la présentation d’ouverture. La confirmation de cette excellente nouvelle viendra de la conférence OS State of the Union, beaucoup plus technique que la conférence inaugurale. Historiquement, c’est même souvent celle où l’on découvre le plus de choses croustillantes. APFS se dévoile logiquement comme un système de fichiers plus moderne à tous les niveaux. De quoi redonner le sourire à tous ceux qui faisaient la grimace depuis le fiasco ZFS.

APFS a été conçu pour tous les appareils Apple : de l’Apple Watch jusqu’au Mac, en pensant par l’iPhone et l’iPad, en tenant compte des spécificités des SSD ou mémoires flash qui les équipent. Les fonctions TRIM sont donc nativement supportées pour améliorer les performances et la durée de vie de ces mémoires solides, mais c’est loin d’être la “nouveauté” la plus intéressante.

La véritable avancée, c’est qu’APFS n’a quasiment plus de limite : système de fichier 64 bits, il est capable de gérer jusqu’à neuf quintillions de fichiers. Soit neuf milliards de milliards de fichiers. Ouf. Ça va, vous devriez être peinard pour stocker vos trois documents Word sur votre bureau…

APFS-Structure

Plus intéressant encore, dans un monde où la synchronisation d’informations devient de plus en plus critique, APFS sait gérer des datations à la nanoseconde près. Et surtout, APFS regorge d’astuces pour améliorer la gestion au jour le jour de l’espace de stockage. Certes, ce n’est pas très important si vous réinitialisez votre disque dur une fois tous les cinq ans, mais pour tous ceux qui sont amenés à formater des disques régulièrement, ce n’est pas négligeable ! Par exemple, l’allocation des blocs se fait de façon extensible dynamiquement, ce qui devrait rendre l’initialisation d’un disque beaucoup plus rapide et efficace à gérer dans le temps. De même, lorsqu’un fichier comporte beaucoup de “trous” dans ses données, la fonction dite “sparse file” permettra de mieux gérer l’espace de stockage, en réduisant la taille physique occupée par ces fichiers. Un peu comme si vous retiriez les trous d’un morceau d’emmental et compactiez tout le fromage pour qu’il prenne moins de place.

Notons encore des caractéristiques rigolotes comme le partage d’espace (space sharing) : imaginons que vous ayez formaté votre disque de 1 To en deux volumes, le premier contenant 100 Go de données, le deuxième en contenant 200 Go. L’espace restant disponible annoncé sera de 700 Go au total, pour les deux. Magique ! Et particulièrement utile par exemple pour Boot Camp, puisque ça pourrait fonctionner quelque soit le système de fichier au-dessus du conteneur APFS. Ce dernier est capable d’étendre ou réduire dynamiquement ses volumes, sans avoir à jongler avec les partitions !

La sécurité à l’honneur

Vos données seront bien plus en sureté sur un disque initialisé avec APFS : en effet, divers mécanismes comme le copy-on-write, “l’enregistrement sûr atomique”, ou la coalescence des enregistrements permettront de s’assurer qu’un fichier soit toujours correctement enregistré sur votre disque. Il est temps d’oublier les opérations à moitié effectuées !

Apple reste évidemment plus que jamais attaché à la sécurité de vos données et va encore améliorer le chiffrement des disques après FileVault 2, en proposant carrément en option un chiffrement multi-clés, avec des clés pour les fichiers et une clé spécifique pour les métadonnées sensibles. Ainsi, même si la sécurité physique du disque est compromise, vos données restent chiffrées. De quoi rendre fous les gouvernements du monde entier.

APFS, un ami pour Time Machine

Apple Time Machine

Normalement, avec tout ça, la plupart des gros défauts abordés plus haut pour Time Machine devraient être de mauvais souvenirs. L’espace devrait être bien mieux géré, puisque le clonage de dossiers ou fichiers est nativement supporté, tout comme les snapshots. De quoi regagner énormément d’espace sur vos disques de sauvegarde, et rendre ces dernières beaucoup, beaucoup plus rapides. Et du coup, si vous utilisez Time Machine sur un serveur de fichiers, le réseau devrait beaucoup moins tirer la langue. On pourrait même imaginer une sauvegarde quasi permanente et instantanée sur un autre disque, à intervalles hyper courts. Ça devient (enfin) faisable !

HFS+ peut préparer ses bagages

Déjà viré sans ménagement d’iOS, HFS+ sera remercié pour ses services (et ses maux de tête) rapidement, tant APFS lui est supérieur. Avec ce système de fichiers, Apple peut préparer son futur sereinement. D’autant plus qu’il semble qu’il sera possible de convertir dynamiquement un volume HFS+ en APFS. On espère que ça se passera aussi facilement sur Mac que sur iOS, malgré toutes les complications possibles.

Ce tweet résume bien le tour de force d’Apple sur cette transition côté iOS (et la nullité de certaines sociétés…), mais le Mac est synonyme de disques durs formatés selon les besoins de chacun, ce qui va largement compliquer la donne. Sans parler des disques qui vont en profiter pour tomber en panne, etc. Bref, quand il sera l’heure de passer à APFS sur Mac, n’oubliez pas de préparer un backup avant ! Si vous désirez encore plus d’infos sur APFS, vous pouvez consulter la doc Apple sur le sujet, ou encore lire ce post chez Blackblaze. Moi, j’ai juste hâte de passer sur ce FS si prometteur, qui semble avoir déjà un impact très positif sur les produits iOS !

Vous devriez également aimer…