L'une des faiblesses actuelles des systèmes d'exploitation d'Apple, c'est son système de fichiers, le HFS+ qui accuse quelque peu le poids de son âge.
Apple a longtemps travaillé à remplacer son système de fichiers par le ZFS, mais en 2009, Apple a fait marche arrière pour des raisons de licence (lire : ZFS : chronique d'un abandon). Depuis, Sun, qui possédait cette technologie, a été racheté par Oracle.
Vendredi dernier, le site iMore a reçu un témoignage laissant entendre qu'il y aurait des traces de ce système de fichiers dans iOS 5.1. L'implémentation de ZFS dans iOS serait relativement avancée si l'on en croit iMore. Il gérerait d'ores et déjà les lectures et écritures.
Vingt-quatre heures plus tard, le site disait avoir reçu des témoignages affirmant qu'Apple avait énormément investi dans le ZFS ces derniers temps. Cette rumeur est à prendre avec de grosses pincettes, mais elle serait extrêmement intéressante si elle s'avérait. Le ZFS est un système de fichiers extrêmement puissant et performant.
Le ZFS est particulièrement utile pour les sauvegardes. Il permet de conserver une "photographie" de base de votre disque et ne sauvegarde par la suite que les modifications faites depuis celle-ci, ce qui est bien plus économe en stockage. Les snapshots peuvent être compressées et chiffrées. Tout ceci pourrait être très utile pour iCloud.
À ne pas en douter, si ZFS faisait effectivement son apparition, il finirait également par être adopté tôt ou tard dans OS X. Reste une question, la plus importante : info ou intox ?
Vos réactions
Info
Intox
En 2 ! News de macgeneration sur le ZFS ?
@royalwithcheese
Enjoliveur ?
Intox
Le gros fantasme
Intox : ZFS est trop consommateur en RAM pour le moment.
Sur un seul périphérique mobile non amovible avec de la gestion de petits fichiers ça ne sera pas à grands chose. Déjà sur OS X ce n'est pas spécialement utile.
@lmouillart :
j'étais à deux doigts de le dire dans la news mais il semble que les choses se sont améliorées récemment. Enfin c'est ce que j'ai lu
Cela dépends des fonctionnalités du système de fichier utilisé mais cela varie de plusieurs 100ène de Mo à des 10ène de Go de RAM.
Après ils peuvent avoir fait une version allégée du ZFS, en suppriment zpools, caches, ...
Clairement ZFS est "trop puissant" pour du desktop/mobile.
En fait en y réfléchissant cela pourrait être intéressant pour des NAS ou ibiduleEntreprise de stockage pour entreprise/particulier tournant sur iOS : type super timecapsule.
"Clairement ZFS est "trop puissant" pour du desktop/mobile."
Amusant, parce que l'ayant utilisé en prod sur des grosses bécanse Sun, on en était arrivé à la conclusion que ZFS était aussi "trop pourrie" pour les serveurs. Prob de corruption passive, gouffre I/O, fragmentation par design sans outils de defrag,etc ...
Il ne sert pas à grand chose quoi.
Et surtout autant il est puissant, autant il n'a jamais été réputé pour être performant.
"L'une des faiblesses actuelles des systèmes d'exploitation d'Apple, c'est son système de fichiers, le HFS+ qui accuse quelque peu le poids de son âge."
Pourquoi ? Quels sont ses problèmes ? En quoi est-il vieillissant ?
Quelques défauts du HFS+ :
- il traite les données par blocs de 16bits (au lieu de 64 voire plus)
- les données sont stockées en big endian et non little endian (en gros, le nombre 12345678 est utilisé sous la forme 56781234 par ton processeur et sous la forme 12345678 par HFS+, donc il doit inverser tout le temps 1234 et 5678)
- les dates sont précises à la seconde (et non à la milliseconde)
- un seul processus peut écrire à la fois sur du HFS+, alors qu'on a plein de cœurs dans les processeurs
- impossible de détecter de la corruption de données
@d9pouces :
Les blocs de 16 bits ne permettent justement pas une meilleure répartition des données sans perte d'espace ?
Et pour les autres problèmes, qu'est ce qui empêche un HFS++ ?
@hadrien01 :
aujourd'hui l'espace est moins problématique que la vitesse, donc on préfère aller plus vite en perdant un peu (pas trop non plus) d'espace, que le contraire.
@d9pouces :
+1
T'as tout dit...
@d9pouces :
+1
J'ai encore beaucoup à apprendre, je tâcherai de m'en souvenir!!!
@d9pouces
Merci.
Infox ?
La difference entre little et big endian est anecdotique et n'entraine pas de difficulte surtout pour les I/O.
Les grands avantages de HFS+ sont sa securite, sa capacite de gestion de la fragmentation et surtout son economie de ressources materiel.
La plupart des reproches qu'on peu lui faire se trouvent etre deportes et compenses au niveau des processus et applications faisant appel a HFS+...
L'autre element a prendre en compte, c'est la presence de plus en plus grande d'une base de donnees en lieu et place du systeme de gestion de fichiers.
Cela est remarquable dans OS X mais plus encore dans iOS ou SQLite3 ou encore la gestion basee sur XML se substitue au gestionnaire de fichiers...
Et cela pose bien évidement la pertinence des fonctionnalites d'un système de gestion de fichier.
En bref tous ces defauts n'en sont pas vraiment, a part le problème des accès concurrents, qui il est vrai est une limitation fondamentale de tous les systèmes de gestion de fichiers cree pour les machines monoprocesseurs, donc l'écrasante majorité...
Et qui est aussi inherente au materiel: un disque ne peut lire ou ecricre qu'une piste a la fois. Pour avoir des acces parallel il faut disposer de plusieurs lignes d'I/O et il faut qu'elles soient suffisamment rapides pour suivre les processeurs...
C'est une situation qui commence tout juste a emerger avec l'arrivee des SSD et des RAID-SSD...
Donc pour des machines sous iOS, ce n'est pas vraiment une urgence
@rom54 > j'aimerais bien savoir d'où viennent ces merveilleuses qualités de HFS+ (sécurité, économies de ressources matérielles, ...)
Au contraire, HFS+ est loin d'être fiable, vu qu'il est seulement journalisé (on peut donc se retrouver avec un fichier corrompu si le kernel panique au milieu d'une écriture — pas de copy-on-write —, et un fichier peut être corrompu sans qu'on s'en rende compte — pas de contrôle d'intégrité sur les données).
Quant aux accès concurrents, des FS existants permettent déjà des écritures concurrentes (ext4, ou NTFS). D'autre part, les disques durs actuels réorganisent eux-mêmes les requêtes et peuvent donc entrelacer différentes requêtes d'écriture pour optimiser (c'es le NCQ), sauf qu'avec le HFS+ ce n'est pas possible en écriture...
@d9pouces : tout le monde sait que HFS+ est à bout de souffle.
@Jimmy_ "tout le monde sait que..."
Non :-)
Je pense comprendre ce que tu veux dire
Mais ton étrange expression est erronée :-)
@Jimmy_ :
Ça compte si je ne savais pas qu'il existait?
Au lieu de fantasmer sur une implémentation de ZFS, on pourrait plutôt réfléchir sur quelques observations. Lion à quand même introduit le plus gros changement dans l'histoire du système de fichier de Mac OS X, une solution pour créer un gestionnaire de volume logique : Core Storage.
Sans rentrer dans les détails, actuellement Core Storage dans Lion permet de crypter un volume entier avec FileVault en toute transparence.
Core Storage est responsable de la gestion des blocs de données qui constituent les différents volumes logiques sur un disque. Si on transpose ce que fait Core Storage sur les blocks au niveau du fichier et si on transforme la notion de volume en répertoire, on a peut être ici les bases d'un nouveau système de fichier.
En d'autres termes, Apple pourrait être entrain de créer en interne un nouveau système de fichier moderne pour son OS.
Enfin un LVM est totalement différent d'un système de gestion de fichier. Les LVM sont la couche au dessous des FS.
Pas pour ZFS ...
La piste de Core Storage est bien plus intéressante et concrète. Elle permettra à apple de modifier le système sans devoir tout détruire d'un coup.
-
Zfs est intéressant même pour un MacBook air, un macpro, un iPad, bref tout ! Et oui, pour monsieur et madame tout le monde.
Après reste quelles fonctions sont à conserver ou non. Et pour un appareil iOS ça reste encore peu crédible à cause des contraintes mémoires.
Mais plus sérieusement : Apple semblait avoir tourné la page après les incertitudes de oracle et sun.
ZFS est un système 128 bits, orienté pour le stockage massif, ce qui inclut des fonctions de snapshot, de vérification d'intégtité etc. Apple vendant des équipements mobiles (même les iMac ont une technologie mobile, et les Mac pros sont un peu à part), et donc s'orientant vers du ssd, je ne vois pas en quoi un système zetabyte apporterait quelque chose. Ce qui ne veut dire que des fonctions existantes dans ZFS ne seraient pas utiles, mais bon comme ZFS intègre à peu près tout ce qu'un FS peut faire, c'est une source d'inspiration systématique.
À mon avis, il est évident qu'Apple cherche à remplacer le HFS+, mais elle ne veut pas dépendre de Sun/Oracle pour développer et intégrer un nouveau système de fichiers.
Le ZFS est donc une piste séduisante, mais Apple a les moyens et les besoins de prendre son autonomie sur ce point-là.
Et je ne parle pas des avantages/inconvénients des deux systèmes, je ne les connais pas. Quelqu'un connaitrait un bon article sur le sujet pour se cultiver sur le sujet ? Je suis aussi curieux de le comparer au NTFS ou au FAT.
Remplacer HFS+...
jusqu'a maintenant le comportement d'Apple c'est de faire evoluer HFS et de le considerer comme un ensemble s'integrant dans une chaine de gestion des données.
Apple a fait une grosse avancee en passant de MFS a HFS, mais on était toujours dans le monde du PC monoprocesseur et le plus avance des système de stockage restait le Raid0 avec des disques classiques.
Sur la totalité des fonctions et sur l'efficacité, HFS+ est bien plus performant, fiable et avance que FAT et NTFS. C'est meme souvent incomparable, ne serait ce qu'au niveau de la gestion de la fragmentation ou de l'intégrité.
Par contre il est vrai que le EXT4 de Linux est plus performant que HFS+ et que HFS+ pourrait aussi s'en inspirer.
Comme je disais précédemment, il faut aussi se poser la question du niveau d'integration de la fonction. Si on veut rajouter des fonctions de type base de données dans le SGF comme dans ZFS, il faut bien peser le pour et le contre.
Ce que l'on demande a un SGF, c'est de donner un acces le plus rapide, securise et optimise(ressource) a un fichier, indépendamment du contenu du fichier.
Si maintenant on rajoute un ensemble de donnees autour de ce fichier, comme la redondance, le cryptage, des informations d'indexation, un taux de compression, des informations de versionning,...
on alourdit le processus de gestion. Cela peut paraitre necessaire pour un gros fichier complexe, mais pour des milliers de petits fichiers texte ou png (imaginez que les png de l'interface soient cryptes et indexes...), ca cree des problèmes et ca ralentit globalement la machine tout en occupant de la memoire vive...
Souvent la verification d'intégrité de l'information est plus pertinente au niveau du processus qui la genere ou l'utilise, car il en connait la structure et l'utilisation. Idem pour le cryptage.
De meme la verification de l'intégrité du materiel se situe au niveau du drivers, mais aussi au niveau plus eleve de l'OS, ce qui parait logique.