La version du projet OpenZFS 2.1 a été publiée, développant la mise en œuvre du système de fichiers ZFS pour Linux et FreeBSD. Le projet est devenu connu sous le nom de « ZFS on Linux » et était auparavant limité au développement d'un module pour le noyau Linux, mais après l'ajout de la prise en charge de FreeBSD, il a été reconnu comme la mise en œuvre principale d'OpenZFS et a été débarrassé de la mention de Linux dans son nom.
OpenZFS a été testé avec les noyaux Linux des versions 3.10 à 5.13 et avec toutes les branches de FreeBSD, à partir de 12.2-RELEASE. Le code est distribué sous la licence libre CDDL. OpenZFS est déjà utilisé dans FreeBSD et fait partie des distributions Debian, Ubuntu, Gentoo, Sabayon Linux et ALT Linux. Des paquets avec la nouvelle version seront prochainement préparés pour les principales distributions Linux, y compris Debian, Ubuntu, Fedora, RHEL/CentOS.
OpenZFS fournit une implémentation des composants ZFS, liés tant au fonctionnement du système de fichiers qu'au fonctionnement du gestionnaire de volumes. En particulier, les composants suivants sont implémentés : SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) et ZPL (ZFS POSIX Layer). De plus, le projet permet d'utiliser ZFS comme backend pour le système de fichiers cluster Lustre. Les travaux du projet sont basés sur le code original de ZFS, importé du projet OpenSolaris et étendu par des améliorations et des corrections de la communauté Illumos. Le projet se développe avec la participation des employés du laboratoire national de Livermore sous contrat avec le ministère de l'Énergie des États-Unis.
Le code est distribué sous la licence libre CDDL, qui n'est pas compatible avec la GPLv2, ce qui empêche l'intégration d'OpenZFS dans la branche principale du noyau Linux, car le mélange de code sous les licences GPLv2 et CDDL est inacceptable. Pour contourner cette incompatibilité de licence, il a été décidé de distribuer le produit entièrement sous la licence CDDL sous la forme d'un module téléchargeable séparément, qui est fourni séparément du noyau. La stabilité de la base de code d'OpenZFS est jugée comparable à celle d'autres systèmes de fichiers pour Linux.
Principales modifications :
- La prise en charge de la technologie dRAID (Distributed Spare RAID) a été ajoutée, qui représente une variante de RAIDZ avec un traitement distribué intégré des blocs pour une récupération à chaud (hot spare). Le dRAID a hérité de tous les avantages de RAIDZ, mais a permis d'atteindre une augmentation significative de la vitesse de reconstruction du stockage (resilvering) et de récupération de redondance dans le tableau. Le stockage virtuel dRAID est formé de plusieurs groupes internes RAIDZ, chacun contenant des dispositifs pour le stockage des données et des dispositifs pour le stockage de la parité. Les groupes mentionnés sont répartis sur tous les disques pour une utilisation optimale de la bande passante disponible. Au lieu d'un disque séparé pour la récupération à chaud, le dRAID utilise le concept de distribution logique des blocs pour la récupération à chaud sur tous les disques dans le tableau.

- Une propriété « compatibility » (« zpool create -o compatibility=off|legacy|file[,file…] pool vdev ») a été mise en œuvre, permettant à l'administrateur de choisir le jeu de fonctionnalités à activer dans le pool, afin de créer des pools portables et de maintenir la compatibilité des pools entre différentes versions d'OpenZFS et différentes plates-formes.
- La possibilité de sauvegarder des statistiques de fonctionnement du pool au format de base de données InfluxDB a été fournie, optimisée pour le stockage, l'analyse et la manipulation des données sous forme de séries temporelles (coupes de valeurs de paramètres à intervalles réguliers). Une commande « zpool influxdb » est proposée pour l'exportation au format InfluxDB.
- La prise en charge de l'ajout à chaud de mémoire et de CPU a été ajoutée.
- Nouvelles commandes et options :
- « zpool create -u » — interdiction du montage automatique.
- «zpool history -i» — reflet des opérations dans l'historique de la durée d'exécution de chaque commande.
- «zpool status» — ajout d'un avertissement concernant les disques avec une taille de bloc non optimale.
- «zfs send —skip-missing|-s» — ignore les snapshots manquants lors de l'envoi du flux pour la réplication.
- «zfs rename -u» — renommer le système de fichiers sans le démonter.
- Support des statistiques L2ARC ajouté à arcstat, avec les options «-a» (tous) et «-p» (analysable).
- Optimisations :
- Amélioration des performances des entrées/sorties interactives.
- Accélération du préchargement pour les charges de travail liées à l'accès parallèle aux données.
- Amélioration de l'évolutivité grâce à la réduction des conflits de verrouillage.
- Réduction du temps d'importation du pool.
- Réduction de la fragmentation des blocs ZIL.
- Amélioration des performances des opérations récursives.
- Amélioration de la gestion de la mémoire.
- Accélération du chargement du module du noyau.
Source : opennet.ru

