GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que ZFS ? Pourquoi les gens en sont-ils fous ?

Aujourd'hui, nous allons jeter un œil à ZFS, un système de fichiers avancé. Nous discuterons d'où il vient, de quoi il s'agit et pourquoi il est si populaire parmi les techniciens et les entreprises.

Même si je viens des États-Unis, je préfère le prononcer ZedFS au lieu de ZeeFS parce que ça sonne plus cool. Vous êtes libre de le prononcer comme bon vous semble.

Remarque :vous verrez ZFS répété plusieurs fois dans l'article. Quand je parle de fonctionnalité et d'installation, je parle d'OpenZFS. ZFS (développé par Oracle) et OpenZFS ont suivi des chemins différents depuis qu'Oracle a arrêté OpenSolaris. (Plus d'informations à ce sujet plus tard.)

Histoire de ZFS

Le système de fichiers Z (ZFS) a été créé par Matthew Ahrens et Jeff Bonwick en 2001. ZFS a été conçu pour être un système de fichiers de nouvelle génération pour OpenSolaris de Sun Microsystems. En 2008, ZFS a été porté sur FreeBSD. La même année, un projet a été lancé pour porter ZFS sur Linux. Cependant, étant donné que ZFS est sous licence sous la licence commune de développement et de distribution, qui est incompatible avec la licence publique générale GNU, il ne peut pas être inclus dans le noyau Linux. Pour contourner ce problème, la plupart des distributions Linux proposent des méthodes pour installer ZFS.

Peu de temps après qu'Oracle a acheté Sun Microsystems, OpenSolaris est devenu une source proche. Tous les développements ultérieurs de ZFS sont également devenus des sources fermées. De nombreux développeurs de ZFS étaient mécontents de cette tournure des événements. Les deux tiers des principaux développeurs ZFS, dont Ahrens et Bonwick, ont quitté Oracle en raison de cette décision. Ils ont rejoint d'autres entreprises et ont créé le projet OpenZFS en septembre 2013. Le projet a été le fer de lance du développement open source de ZFS.

Revenons au problème de licence mentionné ci-dessus. Étant donné que le projet OpenZFS est distinct d'Oracle, certains se demandent probablement pourquoi ils ne changent pas la licence en quelque chose qui est compatible avec la GPL afin qu'il puisse être inclus dans le noyau Linux. Selon le site Web d'OpenZFS, la modification de la licence impliquerait de contacter toute personne ayant contribué au code de l'implémentation actuelle d'OpenZFS (y compris le code ZFS commun initial jusqu'à OpenSolaris) et obtenez leur autorisation pour modifier la licence. Étant donné que ce travail est presque impossible (car certains contributeurs peuvent être morts ou difficiles à trouver), ils ont décidé de conserver la licence qu'ils ont.

Qu'est-ce que ZFS ? Quelles sont ses fonctionnalités ?

Comme je l'ai déjà dit, ZFS est un système de fichiers avancé. En tant que tel, il présente des fonctionnalités intéressantes. Tels que :

  • Stockage mutualisé
  • Copie sur écriture
  • Instantanés
  • Vérification de l'intégrité des données et réparation automatique
  • RAID-Z
  • Taille de fichier maximale de 16 exaoctets
  • Stockage maximal de 256 quadrillions de zettaoctets

Décomposons quelques-unes de ces fonctionnalités.

Stockage mutualisé

Contrairement à la plupart des systèmes de fichiers, ZFS combine les fonctionnalités d'un système de fichiers et d'un gestionnaire de volumes. Cela signifie que contrairement aux autres systèmes de fichiers, ZFS peut créer un système de fichiers qui s'étend sur une série de lecteurs ou un pool. Non seulement cela, mais vous pouvez ajouter du stockage à un pool en ajoutant un autre lecteur. ZFS gère le partitionnement et le formatage.

Copie sur écriture

La copie sur écriture est une autre fonctionnalité intéressante (et intéressante). Sur la plupart des systèmes de fichiers, lorsque les données sont écrasées, elles sont perdues à jamais. Sur ZFS, les nouvelles informations sont écrites dans un bloc différent. Une fois l'écriture terminée, les métadonnées des systèmes de fichiers sont mises à jour pour pointer vers les nouvelles informations. Cela garantit que si le système tombe en panne (ou si quelque chose d'autre se produit) pendant l'écriture, les anciennes données seront conservées. Cela signifie également que le système n'a pas besoin d'exécuter fsck après un plantage du système.

Instantanés

La copie sur écriture mène à une autre fonctionnalité ZFS :les instantanés. ZFS utilise des instantanés pour suivre les modifications dans le système de fichiers. "L'instantané contient la version originale du système de fichiers et le système de fichiers en direct contient toutes les modifications apportées depuis la prise de l'instantané. Aucun espace supplémentaire n'est utilisé. Au fur et à mesure que de nouvelles données sont écrites dans le système de fichiers en direct, de nouveaux blocs sont alloués pour stocker ces données. Si un fichier est supprimé, la référence d'instantané est également supprimée. Ainsi, les instantanés sont principalement conçus pour suivre les modifications apportées aux fichiers, mais pas l'ajout et la création de fichiers.

Les instantanés peuvent être montés en lecture seule pour récupérer une version antérieure d'un fichier. Il est également possible de restaurer le système en direct à un instantané précédent. Toutes les modifications apportées depuis l'instantané seront perdues.

Vérification de l'intégrité des données et réparation automatique

Chaque fois que de nouvelles données sont écrites sur ZFS, il crée une somme de contrôle pour ces données. Lorsque ces données sont lues, la somme de contrôle est vérifiée. Si la somme de contrôle ne correspond pas, ZFS sait qu'une erreur a été détectée. ZFS tentera alors automatiquement de corriger l'erreur.

RAID-Z

ZFS peut gérer le RAID sans nécessiter de logiciel ou de matériel supplémentaire. Sans surprise, ZFS a sa propre implémentation de RAID :RAID-Z. RAID-Z est en fait une variante de RAID-5. Cependant, il est conçu pour surmonter l'erreur de trou d'écriture RAID-5, "dans laquelle les données et les informations de parité deviennent incohérentes après un redémarrage inattendu". Pour utiliser le niveau de base de RAID-Z (RAID-Z1), vous avez besoin d'au moins deux disques pour le stockage et un pour la parité. RAID-Z2 nécessitait au moins deux disques de stockage et deux disques pour la parité. RAID-Z3 nécessite au moins deux disques de stockage et trois disques pour la parité. Lorsque des disques sont ajoutés aux pools RAID-Z, ils doivent être ajoutés par multiples de deux.

Potentiel de stockage énorme

Lorsque ZFS a été créé, il a été conçu pour être le dernier mot dans les systèmes de fichiers. À une époque où la plupart des systèmes de fichiers étaient en 64 bits, les créateurs de ZFS ont décidé de passer directement au 128 bits pour le pérenniser. Cela signifie que ZFS "offre 16 milliards de milliards de fois la capacité des systèmes 32 ou 64 bits". En fait, Jeff Bonwick (l'un des créateurs) a déclaré qu'alimenter "un pool de stockage 128 bits remplissant entièrement un pool de stockage de 128 bits nécessiterait, littéralement, plus d'énergie que de faire bouillir les océans".

Comment installer ZFS ?

Si vous souhaitez utiliser ZFS prêt à l'emploi, vous devrez installer FreeBSD ou un système d'exploitation utilisant le noyau illumos. illumos est un fork du noyau OpenSolaris.

En fait, la prise en charge de ZFS est l'une des principales raisons pour lesquelles certains utilisateurs expérimentés de Linux optent pour BSD.

Si vous souhaitez essayer ZFS sur Linux, vous pouvez l'utiliser comme système de fichiers de stockage. Récemment, Ubuntu 19.10 a introduit la possibilité d'installer ZFS sur votre racine prête à l'emploi. En savoir plus sur l'utilisation de ZFS sur Ubuntu. Si vous souhaitez essayer ZFS sur Linux, le projet ZFS sur Linux propose un certain nombre de didacticiels sur la façon de procéder.

Mise en garde

Cet article a chanté les avantages de ZFS. Maintenant, laissez-moi vous parler d'un problème rapide avec ZFS. L'utilisation de RAID-Z peut être coûteuse en raison du nombre de disques que vous devez acheter pour ajouter de l'espace de stockage.

Avez-vous déjà utilisé ZFS ? Quelle a été votre expérience? Faites-le nous savoir dans les commentaires ci-dessous.

Si vous avez trouvé cet article intéressant, veuillez prendre une minute pour le partager sur les réseaux sociaux, Hacker News ou Reddit.



Linux
  1. Quelles commandes manquent dans votre fichier bashrc ?

  2. A quoi servent les inodes ?

  3. Quelles sont les utilisations légitimes de la commande "touch" ?

  4. Pourquoi Ls et Hexdump ne sont-ils pas d'accord sur la taille du fichier ?

  5. Quelles commandes sont disponibles dans la section %pre d'un fichier Kickstart sur CentOS ?

Qu'est-ce qu'umask sous Linux ?

Pourquoi les gens sont fous d'Arch Linux ? Qu'y a-t-il de si spécial à ce sujet ?

Que sont les inodes sous Linux ?

Qu'est-ce qu'un fichier .bashrc sous Linux ?

Pourquoi cPanel — Quelles sont les fonctionnalités de cPanel ?

Qu'est-ce qu'un fichier .sh ?