====================== Présentation d'OpenZFS ====================== :term:`OpenZFS` est une plate-forme de stockage opensource. Cela inclut les fonctionnalités de :term:`RAID` logiciel, de gestionnaire de volume et de système de fichier dans un tout cohérent. :term:`OpenZFS` prends tout son sens dès qu'on veut adresser des volumétries importantes (jusqu'à plusieurs centaines de TiB par volume) ou un grand nombre de disques (120 ou plus, c'est le matériel qui devient limitant). Il utilise seulement deux commandes : * La commande ``zpool`` gère les agrégats (pools en anglais), qui sont construits à partir de disques, ou de partitions, et configurés en fonction des besoins en redondance et en performance. * La commande ``zfs`` gère les volumes et les systèmes de fichiers (datasets en anglais). .. figure:: _static/illustration_serveur_HBA_zpool.png :alt: Positionnement OpenZFS :height: 600 :align: center Positionnement d'OpenZFS Un dessin vaut mieux qu'un long discours : Voici comment OpenZFS se positionne dans les systèmes de stockage. .. note:: Dans la mécanique interne à OpenZFS, celui-ci utilise la notion de *vdev* pour manipuler disques, partitions et agrégats, c’est pourquoi vous retrouverez régulièrement cette terminologie. De plus, :term:`OpenZFS` intègre plusieurs *outils* qui facilitent grandement la vie des Administrateurs Systèmes et Réseaux. Si on ne devait en retenir que 3 on pourrait citer : * *zpool scrub* : un réparateur intégré au système de fichiers. Il a pour but de détecter les données corrompues et de reconstruire si possible les données perdues. Avec lui, ZFS corrige automatiquement les potentielles erreurs lors de chaque lecture/écriture sur le disque, en nous assurant une grande confiance dans sa capacité à conserver l'intégrité des données malgré les aléas du matériel. Cependant, en complément des automatismes, il peut être important de garder la main et d’exécuter volontairement un scrub afin de vérifier ou remettre en cohérence un pool ZFS. * *zfs snapshot* : :term:`OpenZFS` utilise la technologie copy-on-write (:term:`COW`) et permet les instantanés. Vous pourrez facilement créer des images de votre dataset à différents moments de la journée. Avec ceux-ci, il devient aisé de créer des sauvegardes, voire même des *versioning* des homes de vos utilisateurs ou de vos machines virtuelles. * *zfs send* & *zfs recv* : c’est le complément ultime de la commande précédente. Ces instructions permettent l’envoi et la réception des snapshots sous la forme de flux, en local ou à distance (via ssh ou nc), ou vers tout de type média intermédiaire avec un accès séquentiel comme un fichier ou une librairie de bande magnétique. Fonctionnalités =============== * Stockage de grandes volumétries : * Taille maximum de volume : 256 yobibytes (:math:`2^{128}` bytes), * Taille maximum de fichier : 16 exbibytes (:math:`2^{64}` bytes), * Nombre maximum de fichiers : un peu plus de 281 milliers de milliards, par volume (:math:`2^{48}`), * Contrôle de l'intégrité en continu, * Protections contre la corruption de données silencieuse, * Attributs de système de fichiers : POSIX, * Permissions de système de fichiers : POSIX, NFSv4 ACLs, * Quotas, * Copie à l'écriture (:term:`COW`), * Snapshots, clones et réplicas, * Compression transparente, * Déduplication transparente, * Chiffrement transparent, * OpenSource et **Libre** (:term:`CDDL`), * Disponible nativement dans FreeBSD, en module noyau pour Linux (Debian, Ubuntu, ...).