Tout récemment, ils ont publié la dernière version stable de ZFSonLinux, un projet qui est maintenant au cœur du monde du développement OpenZFS. Au revoir OpenSolaris, bonjour le monde incompatible avec la GPL-CDDL de Linux.
Sous la coupe est un aperçu des choses les plus intéressantes (encore,
2200 commits!), Et pour le dessert - un peu d'intrigue.
De nouvelles puces
Bien sûr, le plus attendu est
le cryptage natif . Maintenant, vous pouvez chiffrer uniquement les jeux de données nécessaires avec le chiffrement intégré dans ZFS, et (à mon avis, l'essentiel) - vous pouvez envoyer des données chiffrées via
zfs send et SANS déchiffrement pour vérifier l'intégrité des données à l'aide des outils intégrés, toutes les options pour maintenir l'intégrité des données ZFS seront avec vous!
Plus important encore est le
TRIM tant attendu. Oui, il a mis très longtemps à la production. En partie parce que le problème de l'usure des disques SSD n'est pas si critique pour les systèmes de fichiers CoW. Mais maintenant, nous sommes tous calmes -
zpool trim sauvera nos tendres lecteurs flash.
Vous pouvez maintenant
supprimer des tableaux vdev ajoutés aléatoirement du pool (mais seulement s'il est clairsemé ou miroir). Bagatelle utile.
Plus loin dans nos tableaux -
points de contrôle de la piscine . En bref - des instantanés pour l'ensemble de l'état du pool, MAIS qui permettent d'annuler les modifications non seulement des données, mais également des fonctionnalités et des modifications de la structure incluse dans le pool. Une autre occasion d'être en sécurité.
Initialisation du pool - remplissage du stockage sous-jacent avec des zéros. Utile pour travailler dans des environnements de disque à allocation dynamique afin d'allouer explicitement de l'espace et d'éliminer les problèmes de performances inattendus ultérieurement.
Comptabilité des projets et quota - dans le mécanisme de quota existant, il est désormais possible d'utiliser la séparation en projets.
Programmes de canal - la possibilité d'effectuer des tâches administratives de manière atomique à l'aide de scripts Lua. Il y a des limites à l'exécution et à la mémoire. Si vous faites de l'automatisation, c'est pour vous.
Direct IO - pour plus de simplicité, ils ont transformé le travail de Direct IO, rien n'a changé à l'intérieur (seuls les appels vont jusqu'au cache), mais maintenant le logiciel qui veut travailler dans ce mode ne pleurera pas.
Le projet
Pyzfs est versé dans le référentiel principal et repris sous l'aile du projet ZFSonLinux. Maintenant, il y a plus d'outils pour gérer à partir de python (enfin, ce sera plus calme pour supporter le module). De nombreux scripts python sont également adaptés pour python3.
Et maintenant délicieux - performances
Désormais, avec les opérations de nettoyage et de resilver, les métadonnées sont d'abord lues, puis seulement, sous la forme la plus
séquentielle , les données. Ainsi, la récupération de la baie et la vérification de l'intégrité sont effectuées à la vitesse maximale.
Classes d'allocation - les baies vdev ont un type de support, vous pouvez maintenant transférer le stockage de métadonnées / tables de déduplication (DDT) / blocs de données de moins de X Ko vers une baie vdev distincte à partir de disques plus efficaces.
Plus de vitesse au dieu de la vitesse! (et dans le cas, cette fonctionnalité est très utile dans le prochain
DRAID ).
De nombreuses commandes d'administration fonctionnent désormais plus rapidement en raison de la mise en cache basée sur des points 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 (métaslab) plusieurs allocateurs sont créés. Avec NVME, bien sûr, tout ne sera pas évincé, mais ça ira mieux.
Une restauration retardée de l'intégrité de la baie permettra de ne pas charger la baie 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 remontage.
Lors de l'importation de pools
avec un grand nombre de volumes, la vitesse de leur enregistrement dans le système est augmentée.
De plus,
QAT vous permet désormais d'y télécharger le calcul du chiffrement et des sommes de contrôle.
Plus un tas de changements mineurs (tout de même, 2000+ commits dans la version!).Eh bien, pour le dessert - intrigue
Bien que ZFSonLinux ajoute rapidement la prise en charge de nouveaux noyaux Linux (les versions 2.6.32 - 5.1 * sont désormais prises en charge), les responsables du noyau sont clairement désintéressés d'aider les modules tiers ("
... nous ne nous soucions pas du tout de
modules du noyau externe ... - greg kh "). Ainsi, les appels au noyau requis pour un fonctionnement efficace dans la branche 5.0
ont été modifiés en GPL uniquement . Dans les noyaux avec ce correctif, les performances ZFS seront bien pires. Cela évite que cette fonctionnalité puisse être implémentée sur le côté du module, ce qui est susceptible d'être fait. En attendant, vous pouvez prendre un exemple de NixOS - ils ont
juste annulé
le patch dans le noyau :)
Le projet est également apparu Code de conduite, qui a généré une vague d'holivarov. Mais nous avons résisté :)
Toutes les sauvegardes et versions stables!
Liens utiles:
-
sortie sur github-
mon introduction à ZFS