GNU/Linux >> Tutoriels Linux >  >> Linux

Ce que Stratis a appris de ZFS, Btrfs et Linux Volume Manager

Comme indiqué dans la partie 1 de cette série, Stratis est un système de fichiers de gestion de volume (VMF) avec des fonctionnalités similaires à ZFS et Btrfs. Lors de la conception de Stratis, nous avons étudié les choix effectués par les développeurs de solutions existantes.

Pourquoi ne pas adopter une solution existante ?

Les raisons varient. Considérons d'abord ZFS. Développé à l'origine par Sun Microsystems pour Solaris (maintenant propriété d'Oracle), ZFS a été porté sur Linux. Cependant, son code sous licence CDDL ne peut pas être fusionné dans l'arborescence source Linux sous licence GPL. La question de savoir si CDDL et GPLv2 sont vraiment incompatibles est un sujet de débat, mais l'incertitude est suffisante pour que les fournisseurs Linux d'entreprise ne souhaitent pas l'adopter et le prendre en charge.

Btrfs est également bien établi et n'a aucun problème de licence. Pendant des années, il a été "l'élu" pour de nombreux utilisateurs, mais il n'est pas encore arrivé là où il doit être en termes de stabilité et de fonctionnalités.

Ainsi, alimenté par le désir d'améliorer le statu quo et la frustration face aux options existantes, Stratis a été conçu.

En quoi Stratis est différent

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Une chose que ZFS et Btrfs ont clairement montré est que l'écriture d'un VMF en tant que système de fichiers dans le noyau prend énormément de travail et de temps pour résoudre les bogues et se stabiliser. Il est essentiel d'être précis lorsqu'il s'agit de données précieuses. Repartir de zéro et adopter la même approche avec Stratis prendrait probablement une décennie également, ce qui n'était pas acceptable.

Au lieu de cela, Stratis a choisi d'utiliser certaines des autres fonctionnalités existantes du noyau Linux :le sous-système de mappage de périphériques, qui est notamment utilisé par LVM pour fournir le RAID, le provisionnement léger et d'autres fonctionnalités en plus des périphériques de bloc ; et le système de fichiers XFS éprouvé et performant. Stratis construit son pool en utilisant des couches de technologie existante, dans le but de les gérer pour qu'elles apparaissent comme un tout homogène pour l'utilisateur.

Ce que Stratis a appris de ZFS

Pour de nombreux utilisateurs, ZFS définit les attentes quant à ce que devrait être un système de fichiers de nouvelle génération. La lecture des commentaires en ligne de personnes parlant de ZFS a aidé à définir les objectifs de développement initiaux de Stratis. La conception de ZFS a également implicitement mis en évidence les choses à éviter. Par exemple, ZFS nécessite une étape "d'importation" lors de la connexion d'un pool créé sur un autre système. Il y a plusieurs raisons à cela, et chaque raison était probablement un problème que Stratis devait résoudre, soit en adoptant la même approche, soit en adoptant une approche différente.

Une chose que nous n'avons pas aimée à propos de ZFS, c'est qu'il comporte certaines restrictions sur l'ajout de nouveaux disques durs ou le remplacement de disques existants par des disques plus grands, en particulier si le pool est configuré pour la redondance. Bien sûr, il y a une raison à cela, mais nous avons pensé que c'était un domaine que nous pouvions améliorer.

Enfin, utiliser les outils de ZFS en ligne de commande, une fois appris, est une bonne expérience. Nous voulions avoir le même sentiment avec l'outil de ligne de commande de Stratis, et nous avons également aimé la tendance de l'outil à utiliser des paramètres de position et à limiter la quantité de frappe requise pour chaque commande.

Ce que Stratis a appris de Btrfs

Une chose que nous avons aimée à propos de Btrfs était l'outil de ligne de commande unique, avec des sous-commandes positionnelles. Btrfs traite également la redondance (profils Btrfs) comme une propriété du pool, ce qui semble plus facile à comprendre que l'approche de ZFS et permet d'ajouter et même de supprimer des lecteurs.

Enfin, l'examen des fonctionnalités offertes par ZFS et Btrfs, telles que les implémentations d'instantanés et la prise en charge de l'envoi/de la réception, a aidé à déterminer les fonctionnalités que Stratis devrait inclure.

Ce que Stratis a appris de LVM

Dès les premières étapes de conception de Stratis, nous avons étudié LVM de manière approfondie. LVM est actuellement l'utilisateur le plus important du sous-système Linux Device Mapper (DM) - en fait, DM est maintenu par l'équipe principale de LVM. Nous l'avons examiné à la fois de la possibilité d'utiliser LVM en tant que couche de Stratis et un exemple d'utilisation de DM, que Stratis pourrait faire directement avec LVM en tant que pair. Nous avons examiné le format de métadonnées sur disque de LVM (ainsi que ZFS et XFS) pour nous inspirer de la définition du format de métadonnées sur disque de Stratis.

Parmi les projets répertoriés, LVM partage le plus de points communs avec Stratis en interne, car ils utilisent tous les deux DM. Cependant, du point de vue de l'utilisation, LVM est beaucoup plus transparent sur son fonctionnement interne. Cela donne aux utilisateurs experts beaucoup de contrôle et d'options pour configurer avec précision la disposition du groupe de volumes (pool) d'une manière que Stratis ne fait pas.

Une diversité de solutions

L'un des avantages de travailler sur des logiciels libres et open source est qu'il n'y a pas de composants irremplaçables. Chaque partie, même le noyau, peut être consultée, modifiée et même remplacée si le logiciel actuel ne répond pas aux besoins des utilisateurs. Un nouveau projet n'a pas besoin de mettre fin à un projet existant s'il y a suffisamment de soutien pour que les deux soient soutenus en parallèle.

Stratis est une tentative de mieux rencontrer certains besoins des utilisateurs en matière de gestion du stockage local, ceux qui recherchent une solution puissante, facile à utiliser et simple d'utilisation. Cela signifie faire des choix de conception qui pourraient ne pas convenir à tous les utilisateurs. Les alternatives rendent possibles des choix difficiles puisque les utilisateurs ont d'autres options. Tous les utilisateurs bénéficient en fin de compte de leur capacité à utiliser l'outil qui leur convient le mieux.


Linux
  1. Qu'est-ce qu'une commande Chown sous Linux et comment l'utiliser

  2. Qu'est-ce que Podman et comment installer Podman sous Linux

  3. Comment utiliser sched_getaffinity et sched_setaffinity sous Linux à partir de C ?

  4. Qu'est-ce que le double point (..) et le point unique (.) sous Linux ?

  5. Qu'est-ce que hd0 et sda/sdb sous Linux ?

Commande Linux Tail :qu'est-ce que c'est et comment l'utiliser

Quelle est la différence entre Linux et Unix ?

Qu'est-ce que Git et comment installer Git sous Linux

Quelle est la différence entre Rsync et BTRFS sous Linux ?

Qu'est-ce que les appels système Linux et les fonctions de bibliothèque ?

Qu'est-ce que sudo rm -rf sous Linux et est-ce dangereux ?