1. Particularités
    1. Un système Unix BSD
    2. Un noyau Mach
    3. Interface graphique
      1. Le moteur graphique
      2. Aqua
    4. Apple, mode d'emploi
  2. Installation
    1. Les mauvais choix d'Apple
    2. Mes vœux pour 2011...
    3. Préliminaires
      1. Stratégies de mots de passe
      2. Stratégies de disques
      3. Partitionner un disque externe
      4. Cloner Macintosh HD
      5. Partitionner le disque interne
    4. Versions du système
      1. 10.0 : Cheeta
      2. 10.1 : Puma
      3. 10.2 : Jaguar
      4. 10.3 : Panther
      5. 10.4 : Tiger
      6. 10.5 : Léopard
      7. 10.6 : Snow Léopard
        1. Mon installation
        2. Premières impressions
        3. Un Dock sinistre
        4. Cafouillages
      8. 10.7 : Lion
        1. Premières réactions (1)
        2. Premières réactions (2)
        3. Réinstallation de Lion
        4. Nouvelles réactions sur Lion (3)
        5. XCode 4
        6. Les mensonges de Lion
        7. Les pièges de Lion
        8. Débuter avec Lion
        9. Conserver Lion
        10. Installer Lion
        11. Les mystères de la restauration
    5. Installer le système
      1. Faire une nouvelle installation
        1. Réinstaller SnowLéopard
        2. Réinstaller Leopard
        3. Réinstaller Tiger
        4. Cloner le système
        5. L'assistant migration
      2. Personnaliser
        1. Compléments d'Apple
        2. Les must d'Internet
        3. Configurer Media
        4. Créez les comptes utilisateurs
        5. Ré-installez vos données
  3. Eléments de Mac OS X
    1. Le bureau
      1. Ouverture d'une session
      2. Pas de fond d'écran
      3. Rien sur le bureau
      4. Bien disposer le Dock
      5. La fenêtre du Mac
      6. Le menu du Mac
      7. Le clavier du Mac
      8. Les raccourcis clavier
      9. Les services
      10. Capture d'écran
      11. Spaces
    2. Le Finder
      1. Système de fichiers
      2. Les permissions
      3. ZFS c'est fini...
      4. ZFS sans Apple
        1. Retour sur les systèmes de fichiers
        2. Les insuffisances de HFS+
        3. Les atouts de ZFS
        4. macZFS
          1. Devenez root
          2. Préparez le travail
          3. Installez maczfs
      5. Les présentations
      6. Réglages du Finder
      7. Les problèmes du Finder
      8. Le Finder Spatial
      9. Un autre Finder ?
      10. Spotlight
      11. URLs de fichiers
    3. Les outils
      1. Gestion des couleurs
      2. Gestion du texte
      3. Les dictionnaires
      4. Exposé
      5. Dashboard
      6. Configuration audio
      7. La console
      8. Le terminal
      9. Trousseau d'accès
      10. Utilitaire de disques
  4. Les applications
    1. Aperçu
      1. Mode graphique
        1. La barre d'outils
        2. Les sélections
        3. Réglages de couleurs
        4. Pot pourri graphique
      2. Mode PDF
        1. Copier/coller
        2. Les annotations
        3. Pot pourri PDF
    2. Mail
  5. Sauvegardez...
    1. Formes de sauvegarde
    2. Que sauvegarder ?
    3. Outils de sauvegarde
      1. Time Machine
      2. CCC
      3. SuperDuper
    4. Le système
    5. Les données utilisateurs
    6. La médiathèque

Les atouts de ZFS




Un grand espoir a touché le communauté Macintosh quand Apple a manifesté son implication dans ZFS. Il a malheureusement été anéanti très rapidement après l'abandon brutal du projet par Apple. ZFS était l'amélioration la plus propice à faire de Mac OS X un système d'exploitation réellement intéressant (effectivement "le plus avancé au monde"", selon les termes -mensongers- d'Apple), à propulser le système d'exploitation vers de nouveaux horizons, notamment celui des entreprises où le Mac est toujours resté confidentiel et limité à des niches spécifiques (PAO). Depuis, Apple n'a fait que confirmer son renoncement à cette part pourtant essentielle de marché, en stoppant brutalement son programme XServe, et en laissant tomber sans ménagement, en même temps, beaucoup de ceux qui lui avaient fait confiance.

Mais tout n'est peut-être pas entièrement perdu : ZFS n'a pas dit son dernier mot sur le Mac, et nous allons donc nous pencher sur le sujet, d'abord en voyant en détail les améliorations qu'il pourrait y apporter.

Mis au point par Sun pour Solaris 10 et sorti à l'automne 2005, ZFS est un système de fichiers de 128 bits (alors que HFS+ fonctionne en 32 bits). 128 bits, cela représente un nombre binaire si considérable (2 128, soit 3,40 x 10 38 ) qu'il est dans la pratique inimaginable, et ne peut s'appliquer qu'à l'espace de l'Univers. Un zettaoctet, qui a donné son nom à ZFS correspond à 270, autrement dit à environ 1,18 x 1021 ; sous ZFS, la taille maximum d'un ficher (ou d'un volume) se limite à 264 ( 1,84 x 1019) et le nombre total de fichiers à 248 (2,81 x 1014).

Sous ZFS, il n'y a donc pratiquement aucune limitation à la taille et au nombre de fichiers possibles. D'ailleurs, saturer un système ZFS est impossible, car la terre ne contient pas assez de matière utilisable pour remplir entièrement un système de fichiers ZFS ! Jeff Bonwick a calculé que remplir un espace de stockage de 128 bits réclamerait une énergie supérieure à celle nécessaire pour mettre les océans du globe en ébullition...

Si bien qu'avec un système de fichiers en 128 bits, on est tranquille pour un moment, et même définitivement : on n'atteindra jamais cette limite, même si la loi de Moore continue à s'appliquer encore quelques années et se prolonge par la suite sous l'effet de nouvelles technologies (ordinateurs optiques ou quantiques). ZFS est rassurant : en l'adoptant on ne risque pas de tomber sur un mur.


Disons d'abord que ZFS n'est pas un simple rêve. Il existe bel et bien sur un certain nombre de systèmes d'exploitation, à commencer par Solaris de Sun (maintenant distribué par Oracle). Je n'en ai pas fait personnellement l'expérience, n'ayant pas à ma disposition de système Sun récent. Mais il fonctionne, indéniablement, et depuis mai 2008, les système Open Solaris et OpenIndiana proposent ZFS par défaut.

ZFS a aussi été porté sous Free BSD, et en fait partie intégrante (à titre expérimental) depuis la version 7 (Février 2008). La version 8 (depuis Janvier 2010) supporte ZFS intégralement. D'autres portages de ZFS ont été accomplis pour NetBSD et GNU/kFreeBSD. La version FreeBSD a aussi été appliquée à un NAS.

Le portage de ZFS sur Linux se heurte à des problèmes de brevets : la GPL qui gouverne la licence de Linux est incompatible avec la CDDL adoptée par Sun. La difficulté a été tournée par le projet ZFS on Fuse et par le développement (en cours) d'un port natif de ZFS sous Linux.

Il reste Mac OS X : après l'abandon d'Apple, le projet de portage Open source a été repris par maczfs, et fournit une base d'utilisation pour SnowLéopard. Et Z-4ten est toujours en état de test chez certains consommateurs professionnels.


Les atouts de ZFS, en dehors du fait qu'il est impossible de saturer le système de fichiers, c'est qu'il associe un système de fichiers très sécurisé à une gestion intégrée des volumes (pools de stockage). Rendons à César ce qui appartient à César, cette partie emprunte beaucoup à l'article de Wikipédia sur ZFS.

1- La sécurité des données

Alors que HFS+ ne prend aucune précaution avec l'intégrité des données, celle-ci est assurée naturellement sous ZFS en utilisant systématiquement une somme de contrôle sur 256 bits tout au long de l'arborescence. Chaque bloc de données (donnée ou méta-donnée) est associé à une somme de contrôle, qui n'est pas stockée dans le bloc lui-même, mais dans le pointeur associé à ce bloc. Lors de l'accès aux données, la somme de contrôle est recalculée et comparée avec celle stockée dans le pointeur. En cas de défaillance, ZFS permet d'accéder à des copies redondantes ; la seconde (ou la troisième) copie disponible fait l'objet du même test de somme de contrôle, et corrige les données initiales si le test est valide.

ZFS s'accommode mal des contrôleurs RAID, qui ne répondent pas à cette logique, et utilise plutôt les disques du pool de stockage. Ces disques ont eux-mêmes des systèmes de détection d'erreur, mais avec l'accroissement de la taille des disques, ces mécanismes de détection d'erreur deviennent insuffisants, et entraînent une "corruption silencieuse" (non décelée) ; c'est là qu'intervient ZFS.

Comparé à ZFS, Unix (donc Mac OS X) dispose aussi d'un outil de réparation du système de fichiers, fsck. Mais fsck (utilisé par l'Utilitaire de disque de Mac OS X) ne vérifie que les méta-données, pas les données elles-mêmes, et impose le démontage du disque pour fonctionner. Sous ZFS, l'équivalent de fsck est scrub, qui fonctionne sur des disques montés, et teste aussi bien les données que les méta-données.

Dans les (très rares) cas où une corruption ne peut pas être corrigée, ZFS peut utiliser la copie précédente du fichier, conservée grâce au mécanisme de Copy on Write (COW). Car en mettant à jour un fichier, ZFS ne récrit jamais sur l'ancien fichier mais alloue un nouveau bloc de données, et réécrit les méta-données et les pointeurs ; les mises à jour successives sont gérées sous forme de transactions, qui sont décrites dans un fichier spécial (Intent log) qui permet de reconstituer les opérations faites sur le fichier.

COW permet aussi de prendre régulièrement des clichés (snapshots) du système de fichiers. Comme toutes les données qui le composent sont déjà stockées, un cliché peut être créé très rapidement. Les clichés (quand ils sont autorisés en écriture) permettent de disposer de véritables clones du système de fichier ; les blocs qui n'ont pas subi de changement sont partagés entre tous les clones.

Pour terminer avec la sécurité, ZFS incorpore le chiffrement (encryption) et la compression des données directement dans son tuyau (pipe) d'entrées-sorties. Les règles de chiffrement sont définies au moment de la création du système de fichiers, et les clés de chiffrement sont créées aléatoirement ou peuvent être définies par l'utilisateur.

2- Les pools de stockage

Le système de fichiers de ZFS s'appuie sur des pools de stockage virtuel (zpools), qui sont constitués de dispositifs virtuels (vdevs), lesquels regroupent des périphériques en mode bloc (fichiers, partitions et disques). Les disques peuvent être configurés sans redondance, ou de façon RAID, et la taille du zpool est la somme des disques disponibles. On ne peut pas changer la configuration (le nombre de disques) d'un vdev, mais on peut ajouter des vdevs au zpool, ou remplacer un disque par un autre plus grand dans un vdev.

Les disques d'un zpool peuvent être hétérogènes, de taille et de type différents, et des SSD peuvent être associés au cache de niveau 2 (ARC) ; on peut aussi disposer de disques de rechange (hot spares) pour un disque défaillant. La totalité de l'espace disque installée dans le zpool est disponible pour le système de fichiers ZFS, des quotas et une réserve garantissant un espace disponible peuvent être définis. Autrement dit, le zpool se comporte comme un immense espace disque uniforme disponible en permanence, quelle que soit la configuration de disques qu'on y met, et qu'on peut changer à tout moment.

Les disques peuvent être enchaînés dynamiquement (dynamic striping), ce qui équilibre leur charge, et la taille des blocks est variable (jusqu'à 128 Ko) ; une compression peut même réduire la dimension d'un bloc. Comme les fichiers font partie d'un énorme pool homogène, leur gestion est facilitée (on n'a pas à se préoccuper de volumes), et pour la mémoire virtuelle, ARC remplace les pages d'Unix, avec des opérations de lecture et d'écriture qui se font différemment ("cache" vdev et "log" vdev). ZFS sait aussi s'adapter à l'endianness du processeur, du moins pour les méta-données, car pour les données, un fichier n'est qu'une suite d'octets.

Enfin, la dernière version de ZFS permet la déduplication, une technologie qui élimine des données répétitives (cela oblige à réserver 2 Go de RAM pour chaque To de stockage). Et comme le chiffrement est incorporé dans le tuyau des entrées/sorties, les opérations de compression, de chiffrement, et de vérification de somme de contrôle se font à la volée.

3- Bien d'autres possibilités

Dans la liste fournie par la page de Wikipédia, mettons l'accent sur quelques caractéristiques intéressantes :
• partage de la charge et de l'espace parmi les disques du zpool ; zéro, une ou deux copies supplémentaires (ditto blocks), sur des supports différents, des données et des méta-données associées.
• chiffrement et compression des fichiers à la volée par le tuyau d'entrée/sortie ; sommes de contrôle généralisées sur toute l'arborescence.
• sécurité d'écriture quand le disque dispose d'un cache et respecte les barrières d'écriture ; ZFS utilise le cache d'écriture de disques entiers.
• Quota définissables par utilisateur et par groupe, et pools disponible en lecture seule.
• Reconstitution des transactions ; temps d'accès constant aux répertoires.

4- Les limites de ZFS

Voici quelques extraits de la liste fournie par Wikipédia :

L'augmentation de capacité du système de fichiers est seulement possible au niveau du dispositif virtuel (vdev) supérieur ; les vdevs ne peuvent pas être imbriqués, et leur nombre ne peut pas être réduit.

ZFS est un système de fichiers local et ne permet pas un accès concurrent à partir d'hôtes multiples. Il n'est donc pas adapté aux serveurs. Il existe chez Sun un autre système de fichiers (Lustre) distribué et massivement parallèle pour ce genre de besoins. Mais le système le plus courant pour mettre en place des serveurs est Unix (ou Linux).

ZFS utilise le vidage du cache du disque pour écrire les données sur le média. Cela pose un problème dans certains logiciels de virtualisation, comme Virtual Box, qui n'est pas configuré par défaut pour utiliser le vidage du cache. C'est problématique aussi avec l'utilisation des clés USB.

ZFS n'a pas de dispositif de défragmentation. Mais il a des astuces pour limiter la fragmentation, comme une latence de 30 secondes avant une écriture répétée de données. En cas de besoin, la défragmentation peut se faire par une sauvegarde, puis une recopie du zpool sur lui même (après l'avoir détruit et recréé).

Dans un système à un seul disque, les erreurs peuvent être détectées, mais ne peuvent pas être corrigées, à moins d'avoir spécifié "copies = 2" au moment de la création du système de fichiers. On peut même faire deux copies supplémentaires avec "copies =3". Mais cela ne garantit rien dans le cas d'une panne du disque. Il est donc souhaitable d'assurer une redondance (raidz ou miroir).

Comme dans tout système RAID, les réparations d'un disque sont très longues (plusieurs jours pour un disque de 5 à 6 To -qui n'existe pas encore-, plusieurs semaines quand ils grossiront encore). Sur de gros systèmes de fichiers, il vaut mieux utiliser une redondance double (raidz2) ou même triple (raidz3).

ZFS a besoin d'être bien configuré au départ. Il est recommandé de répartir les disques disponibles en plusieurs vdevs car les performances d'Entrées/sorties sont celles d'un disque par vdev.


Le système de fichiers ZFS est donc bien adapté pour des configurations musclées, avec plusieurs disques durs ; bien configuré, il fournit alors une sécurité sans égal, et une facilité d'utilisation unique associée à l'absence de volumes : l'arborescence des fichiers se trouve dans un seul pool de données (zpool) ; et il ne craint pas la saturation (il existe même une réserve pour y palier).

C'est pourquoi il aurait été bien adapté aux iMacs et aux MacPro (même aux Mac Minis). Malheureusement, Apple en a décidé autrement, en donnant la priorité aux iBidules, et en faisant même pencher Lion vers iOS. Cela témoigne d'un mépris complet à l'égard de la plupart des utilisateurs de Macs, qui auraient légitimement bien des raisons de changer de système d'exploitation (et de machines) si Mac OS X ne présentait pas encore, avec son interface utilisateur, des avantages tout à fait décisifs, le plus souvent au niveau des détails.

Si vous voulez plus d'informations sur ZFS, vous pouvez consulter le manuel de Sun en PDF, ou le guide d'administration de ZFS d'Oracle. Voyez aussi cet article de Ars technica qui relate un entretien avec Don Brady, le fondateur de Ten's Complement.