Récemment, nous avons publié la dernière version stable de ZFSonLinux, un projet qui est maintenant central dans le développement d'OpenZFS. Adieu OpenSolaris, bonjour au monde féroce et incompatible GPL-CDDL de Linux.

Sous ce post, un aperçu des choses les plus intéressantes (bien sûr, 2200 commits !), et en dessert — quelques intrigues.
Nouveautés
Bien sûr, la plus attendue est le chiffrement natif. Maintenant, il est possible de chiffrer uniquement les ensembles de données nécessaires avec le chiffrement intégré de ZFS, et (à mon avis — c'est le principal) — vous pouvez envoyer des données chiffrées via zfs send et vérifier l'intégrité des données SANS déchiffrement avec les outils intégrés, toutes les capacités de préservation de l'intégrité des données ZFS seront à votre disposition !
Ensuite, en importance, il convient de mentionner le très attendu TRIM. Oui, il a mis beaucoup de temps à atteindre la production. En partie parce que le problème d'usure des SSD n'est pas aussi crucial pour les systèmes de fichiers CoW. Mais maintenant, nous sommes tous rassurés — zpool trim sauvera nos délicates clés USB.
directement modifiées supprimer les vdevs ajoutés par accident du pool (mais seulement s'il s'agit de sparse ou de mirror). Une petite fonctionnalité utile.
Ensuite dans notre classement — les checkpoints de pool. En bref — des instantanés pour tout l'état du pool, MAIS permettant de revenir en arrière sur les changements non seulement des données, mais aussi des fonctionnalités activées sur le pool et des modifications de structure. Encore une autre façon de se protéger.
Initialisation du pool — remplissage du stockage sous-jacent avec des zéros. Utile pour le travail dans des environnements avec des disques thin provisioned pour une allocation explicite de l'espace et pour éviter des baisses de performance inattendues par la suite.
Comptabilité de projet et quota — dans le mécanisme de quotas existant, il est maintenant possible d'utiliser la séparation en projets.
Programmes de canaux — possibilité d'effectuer des tâches administratives de manière atomique à l'aide de scripts Lua. Il y a des limites sur le temps d'exécution et la mémoire. Si vous vous occupez d'automatisation — c'est pour vous.
Direct IO — pour des raisons de simplicité, nous avons intégré le travail Direct IO, à l'intérieur rien n'a changé (les appels vont simplement au maximum à l'écart du cache), mais maintenant, les logiciels souhaitant fonctionner en mode Direct IO ne souffriront pas.
Projet Pyzfs intégré dans le référentiel principal et pris sous l'aile du projet ZFSonLinux. Maintenant, il y a plus d'outils pour gérer depuis Python (et il sera plus sécurisé pour le support du module). De plus, de nombreux scripts Python ont été adaptés à Python 3.
Et maintenant, le meilleur — la performance
Désormais, lors des opérations de scrub et de resilver, les métadonnées sont d'abord lues, puis les données au maximum. consécutif Ainsi, la restauration du tableau et la vérification de l'intégrité se font à la vitesse maximale.
Classes d'allocation — les tableaux vdev ont désormais un type de stockage, permettant d'extraire le stockage des métadonnées/tables de déduplication (DDT)/blocs de données de moins de X Ko sur un tableau vdev distinct à partir de disques plus performants. Plus de vitesse, pour le dieu de la vitesse ! (et en vérité — cette fonctionnalité sera très utile dans les temps à venir. ).
De nombreuses commandes administratives fonctionnent désormais plus rapidement grâce au cache ciblé des métadonnées (par exemple, zfs list, zfs get).
Le processus d'allocation des données est parallélisé, maintenant, pour chaque section d'espace libre (metaslab), plusieurs allocateurs sont créés. Avec NVME, tout ne sera pas extrait, mais cela s'améliorera.
La récupération de l'intégrité du tableau permettra de ne pas surcharger le tableau avec le réassemblage simultané de plusieurs disques, mais le fera séquentiellement. Cela réduira à la fois l'impact sur les performances et le temps de réassemblage.
Lors de l'importation de pools avec un grand nombre de volumes la vitesse de leur enregistrement dans le système a été augmentée.
Aussi QAT permet désormais de décharger le calcul du chiffrement et des sommes de contrôle.
Et pour finir — des intrigues
Bien que ZFSonLinux ajoute rapidement le support des nouveaux noyaux Linux (actuellement, les versions 2.6.32 — 5.1* sont prises en charge), les mainteneurs du noyau montrent un désintérêt flagrant pour l'aide aux modules tiers (« — greg k-h »). Ainsi, les appels nécessaires au bon fonctionnement dans la branche 5.0 . Dans les noyaux avec ce patch, les performances de ZFS seront nettement moins bonnes. Heureusement, cette fonctionnalité peut être réalisée du côté du module, ce qui sera probablement fait. En attendant, vous pouvez vous inspirer de NixOS — ils 🙂
Le projet a également eu son Code de conduite, ce qui a engendré une vague de polémiques. Mais nous avons tenu bon 🙂
À tous, des sauvegardes fonctionnelles et des versions stables !
Liens utiles :
—
—
Source : habr.com
