Publication de ZFS on Linux 0.8.0, l'implémentation de ZFS pour le noyau Linux

Après près de deux ans de développement présenté la sortie ZFS sur Linux 0.8.0, mise en œuvre du système de fichiers ZFS, conçu sous forme de module pour le noyau Linux. Le module a été validé avec les noyaux Linux de 2.6.32 à 5.1. Des paquets d'installation prêts seront disponibles très prochainement pour Android, iOS, macOS et Windows (sous Linux, il est recommandé d'utiliser les paquets du distributeur). pour les principales distributions Linux, y compris Debian, Ubuntu, Fedora, RHEL/CentOS. Le module ZFS sur Linux est déjà inclus dans les distributions Debian, Ubuntu, Gentoo, Sabayon Linux et ALT Linux.

Dans le cadre du projet ZFS sur Linux, une mise en œuvre des composants ZFS a été préparée, liée à la fois au fonctionnement du système de fichiers et à la gestion du gestionnaire de volumes. En particulier, les composants suivants ont été réalisés : SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (Volume Émulé ZFS) et ZPL (Couche POSIX ZFS). De plus, le projet permet l'utilisation de ZFS en tant que backend pour le système de fichiers clusterisé Lustre. Les travaux du projet sont basés sur le code original de ZFS, importé du projet OpenSolaris et enrichi par des améliorations et des corrections de la communauté Illumos. Le projet est développé avec la participation des employés du Laboratoire national de Livermore en vertu d'un 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, empêchant ainsi l'intégration de ZFS sur Linux dans la branche principale du noyau Linux, car le mélange de code sous licences GPLv2 et CDDL est interdit. Pour contourner cette incompatibilité de licence, il a été décidé de distribuer le produit entièrement sous la licence CDDL sous forme de module téléchargeable séparément, livré indépendamment du noyau. La stabilité de la base de code de ZFS sur Linux est jugée comparable à celle d'autres systèmes de fichiers pour Linux.

Principales modifications :

  • Un support intégré pour le cryptage des données stockées au niveau du système de fichiers et des partitions a été ajouté. Par défaut, l'algorithme aes-256-ccm est utilisé pour le cryptage. La commande « zfs load-key » est proposée pour charger les clés de cryptage ;
  • La possibilité de transférer des données cryptées lors de l'exécution des commandes « zfs send » et « zfs receive » a été mise en œuvre. En spécifiant l'option « -w », les données déjà cryptées dans le pool sont transférées vers un autre pool telles quelles, sans décryptage intermédiaire. Lors de ce type de copie, les données restent protégées par la clé de l'expéditeur, ce qui permet d'utiliser ce mode pour des sauvegardes sur des systèmes non fiables (en cas de compromission du destinataire, un attaquant sans clé ne pourra pas accéder aux données);
  • Ajout de la prise en charge de la suppression des disques principaux du pool de stockage, connectés individuellement ou en miroir. La suppression se fait via la commande « zpool remove ». Lors de la suppression, les données du disque exclu sont copiées sur les disques principaux restants dans le pool.
  • Ajout de la commande « zpool checkpoint » pour sauvegarder l'état actuel du pool avec la possibilité de revenir à ce moment-là (un instantané de l'ensemble du pool est créé). Cette fonctionnalité peut être utile lors de l'exécution de travaux administratifs complexes potentiellement dangereux, entraînant normalement des modifications irréversibles (comme l'activation de nouvelles fonctionnalités ZFS ou le nettoyage des données).
  • Ajout de la commande « zpool trim », permettant d'informer les disques utilisés dans le pool sur les secteurs qui ne sont plus utilisés. L'application de l'opération TRIM améliore l'efficacité des disques SSD et prévient la dégradation de leurs performances. Pour activer un processus de fond continu de transmission des commandes TRIM, une nouvelle propriété « autotrim » a été introduite.
  • Ajout de la commande « zpool initialize » pour initialiser tout l'espace disque non alloué, ce qui permet de garantir sa disponibilité immédiate sans réduire les performances lors du premier accès (par exemple, lors du placement de stocks virtualisés, comme VMware VMDK).
  • Ajout de la prise en charge du comptage et des quotas au niveau des projets, complétant les quotas précédemment disponibles au niveau des utilisateurs et des groupes. En fait, les projets sont des espaces d'objets distincts liés à un identifiant unique (project ID). L'association est définie via l'opération 'chattr -p' ou par héritage des attributs. Pour gérer les projets, les commandes « zfs project » et « zfs projectspace » sont proposées, permettant de gérer la création de projets et de définir des limites d'espace disque pour ceux-ci.
  • Ajout de la possibilité de créer des scripts Lua pour automatiser diverses tâches avec ZFS. Les scripts sont exécutés dans des environnements isolés spéciaux à l'aide de la commande « zpool program ».
  • Mise en œuvre d'une nouvelle bibliothèque pyzfs, fournissant une API stable pour l'administration de ZFS à partir d'applications en Python. La bibliothèque est un wrapper autour de libzfs_core et offre un ensemble de fonctionnalités identique, mais utilise des types plus adaptés à Python;
  • La compatibilité des utilitaires arcstat, arcsummary et dbufstat avec Python 3 a été assurée. Les utilitaires arcstat.py, arc_summary.py et dbufstat.py ont été renommés en variantes sans l'extension «.py»;
  • Ajout de la prise en charge de l'interface du noyau Linux Direct IO (O_DIRECT), permettant d'accéder aux données sans mise en cache et sans utiliser le cache;
  • Des optimisations de performance ont été présentées :
    • Les performances des commandes «scrub» et «resilver» ont été accélérées grâce à une division en deux phases (une phase distincte pour scanner les métadonnées et déterminer l'emplacement des blocs de données sur le disque, ce qui permet de procéder à une vérification ultérieure en utilisant une lecture séquentielle des données);
    • Ajout de la prise en charge des classes d'allocation de données (Allocation classes),
      permettant d'inclure dans un pool des SSD relativement petits et de les utiliser pour stocker uniquement certains types de blocs souvent utilisés, tels que les métadonnées, les données DDT et les petits blocs de fichiers;
    • Augmentation de la performance des commandes d'administration, telles que
      «zfs list» et «zfs get», grâce à la mise en cache des métadonnées nécessaires à leur fonctionnement;
    • Ajout de la prise en charge du parallélisme des opérations d'allocation de blocs en lançant des processus «allocator» distincts pour chaque groupe de metaslab. Dans les systèmes ordinaires, une augmentation de performance de 5 à 10 % est constatée, mais sur des systèmes plus grands (8 128 Go SSD, 24 cœurs NUMA, 256 Go de RAM), l'augmentation des opérations d'allocation de blocs peut atteindre 25 %;
    • Ajout de la possibilité d'exécuter la commande «resilver» de manière différée (reconstruction de la répartition des données en tenant compte des modifications de la configuration des disques) - si une nouvelle opération est lancée avant la fin de la précédente, le nouveau gestionnaire commencera à s'exécuter seulement après la fin de la précédente;
    • Des optimisations ont été apportées au journal ZIL (ZFS Intent Log), permettant de créer et de traiter des blocs en présence de blocs encore traités par le stockage;
    • Le temps d'enregistrement des partitions (zvol) dans le système a été réduit. Lorsque le pool contient un grand nombre de partitions, elles sont désormais disponibles immédiatement après l'exécution de «zpool import»;
    • Prise en charge de l'accélération matérielle pour le calcul des hachages SHA256 et les opérations de chiffrement AES-GSM via des puces prenant en charge la technologie Intel QAT (Quick Assist Technology). Prise en charge des moyens d'accélération matérielle du chipset Intel C62x et du CPU Atom C3000.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster