Concepts et tutoriels ZFS

Concepts et tutoriels ZFS

ZFS: concepts et tutoriel

Dans votre quête d'intégrité des données, l'utilisation d'OpenZFS est inévitable. En fait, il serait assez regrettable que vous utilisiez autre chose que ZFS pour stocker vos précieuses données. Cependant, beaucoup de gens hésitent à l'essayer. Raison étant qu'un système de fichiers de qualité entreprise avec un large éventail de fonctionnalités qui y sont intégrés, ZFS doit être difficile à utiliser et à administrer. Rien ne peut être plus éloigné de la vérité. L'utilisation de ZFS est aussi simple que possible. Avec une poignée de terminologies, et encore moins de commandes, vous êtes prêt à utiliser ZFS n'importe où - de l'entreprise à votre maison / bureau NAS.

Dans les mots des créateurs de ZFS: «Nous voulons rendre l'ajout de stockage à votre système aussi simple que l'ajout de nouveaux bâtons de bélier."

Nous verrons plus tard comment cela se fait. J'utiliserai FreeBsd 11.1 Pour effectuer les tests ci-dessous, les commandes et l'architecture sous-jacente sont similaires pour toutes les distributions Linux qui prennent en charge OpenZFS.

L'ensemble de la pile ZFS peut être disposée dans les couches suivantes:

  • Fournisseurs de stockage - disques ou SSD de rotation
  • VDEVS - groupement de fournisseurs de stockage dans diverses configurations de raid
  • Zpools - Aggrégation de VDEV dans un seul pool de stockage
  • Z-FileSystems - ensembles de données avec des fonctionnalités sympas comme la compression et la réservation.

Zpool Créer

Pour commencer, commençons par une configuration de l'endroit où nous avons six disques de 20 Go Ada [1-6]

$ ls -al / dev / ada?

Le ada0 est là que le système d'exploitation est installé. Le reste sera utilisé pour cette démonstration.

Les noms de vos disques peuvent différer en fonction du type d'interface utilisé. Les exemples typiques comprennent: DA0, ADA0, ACD0 et CD. En regardant à l'intérieur/ devvous donnera une idée de ce qui est disponible.

UN zpool est créé par Zpool Créer commande:

$ zpool Créer OurFirstzpool ADA1 ADA2 ADA3
# Puis exécutez la commande suivante:
$ zpool statut

Nous verrons une sortie soignée nous donnant des informations détaillées sur la piscine:

C'est le zpool le plus simple sans redondance ni tolérance aux défauts… chaque disque est son propre VDEV.

Cependant, vous obtiendrez toujours toute la bonté ZFS comme des sommes de contrôle pour chaque bloc de données stocké afin que vous puissiez au moins détecter si les données que vous avez stockées sont corrompues.

Systèmes de fichiers, un.k.Un ensemble de données peut désormais être créé au-dessus de ce pool de la manière suivante:

$ ZFS Créer OurFirstZpool / DataSet1

Maintenant, utilisez votre familier df -h commande ou exécuter:

$ ZFS Liste

Pour voir les propriétés de votre système de fichiers nouvellement créé:

Remarquez comment l'espace entier offert par les trois disques (VDEV) est disponible pour le système de fichiers. Ce sera vrai pour tous les systèmes de fichiers que vous créez dans le pool, sauf si nous spécifions le contraire.

Si vous souhaitez ajouter un nouveau disque (VDEV), ada4, Vous pouvez le faire en courant:

$ zpool Ajouter OurFirstzpool Ada4

Maintenant, si vous voyez l'état de votre système de fichiers

La taille disponible a désormais augmenté sans aucun tracas supplémentaire de développer la partition ou de sauvegarder et de restaurer les données sur le système de fichiers.


Appareils virtuels - VDEVS

Les VDEV sont les éléments constitutifs d'un zpool, la majeure partie de la redondance et des performances dépend de la façon dont vos disques sont regroupés dans ces Vdevs, soi-disant, . Regardons certains des types les plus importants de VDEV:

1. Raid 0 ou rayures

Chaque disque agit comme son propre VDEV. Aucune redondance de données, et les données se sont répandues sur tous les disques. Également connu sous le nom de rayures. Une seule échec d'un disque signifierait que l'ensemble du zpool est rendu inutilisable. Le stockage utilisable est égal à la somme de tous les périphériques de stockage disponibles.

Le premier zpool que nous avons créé dans la section précédente est un raid 0 ou un réseau de stockage rayé.

2. Raid 1 ou miroir

Les données se reflètent entre ndisques. La capacité réelle du VDEV est limitée par la capacité brute du plus petit disque en ce que n-Tableau de disque. Les données se reflètent entre n disques, cela signifie que vous pouvez résister à l'échec de n-1 disques.

Pour créer un tableau en miroir, utilisez le mot-clé miroir:

$ zpool Créer un miroir de réservoir ADA1 ADA2 ADA3

Les données écrites à réservoir Zpool sera reflété parmi ces trois disques et le stockage disponible réel est égal à la taille du plus petit disque, qui dans ce cas est d'environ 20 Go.

À l'avenir, vous voudrez peut-être ajouter plus de disques à cette piscine, et il y a deux choses possibles que vous pouvez faire. Par exemple, Zpool réservoir A trois disques reflétant les données en tant que VDEV Mirror-0: unique:

Vous voudrez peut-être ajouter un disque supplémentaire, disons ada4, Pour refléter de même les données. Cela peut être fait en exécutant la commande:

$ zpool attacher le réservoir ADA1 ADA4

Cela ajouterait un disque supplémentaire au VDEV qui a déjà le disque ADA1 dans celui-ci, mais n'augmentez pas le stockage disponible.

De même, vous pouvez détacher les lecteurs d'un miroir en fonctionnant:

$ Zpool Detach Tank Ada4

D'un autre côté, vous voudrez peut-être ajouter un VDEV supplémentaire pour augmenter la capacité de Zpool. Cela peut être fait à l'aide de la commande zpool add:

$ zpool ajouter le miroir du char Ada4 ada5 ada6


La configuration ci-dessus permettrait aux données d'être rayées sur VDEVS Mirror-0 et Mirror-1. Vous pouvez perdre 2 disques par VDEV, dans ce cas, et vos données seront toujours intactes. L'espace utilisable total augmente à 40 Go.

3. RAID-Z1, RAID-Z2 et RAID-Z3

Si un VDEV est de type RAID-Z1, il doit utiliser au moins 3 disques et le VDEV peut tolérer la disparition d'un seul de ces disques. Les configurations RAID-Z ne permettent pas de fixer des disques directement sur un VDEV. Mais vous pouvez ajouter plus de VDEV, en utilisant zpool ajouter, de sorte que la capacité de la piscine peut continuer à augmenter.

RAID-Z2 nécessiterait au moins 4 disques par VDEV et peut tolérer jusqu'à 2 défaillances de disque et si le troisième disque échoue avant que les 2 disques ne soient remplacés, vos données précieuses sont perdues. Il en va de même pour RAID-Z3, qui nécessite au moins 5 disques par VDEV, avec jusqu'à 3 disques de tolérance de défaillance avant que la récupération ne devienne sans espoir.

Créons une piscine RAID-Z1 et cultivons-la:

$ zpool Créer un réservoir RAIDZ1 ADA1 ADA2 ADA3

La piscine utilise trois disques de 20 Go en mettant 40 Go de celui-ci à la disposition de l'utilisateur.

L'ajout d'un autre VDEV nécessiterait 3 disques supplémentaires:

$ zpool add tank raidz1 ada4 ada5 ada6


Le total des données utilisables est maintenant de 80 Go et vous pouvez perdre jusqu'à 2 disques (un de chaque VDEV) et avoir toujours un espoir de récupération.

Conclusion

Vous en savez maintenant assez sur ZFS pour y importer toutes vos données en toute confiance. À partir de là, vous pouvez rechercher diverses autres fonctionnalités que ZFS fournit comme l'utilisation de NVME à grande vitesse pour lire et écrire des caches, en utilisant une compression intégrée pour vos ensembles de données et au lieu d'être submergé par toutes les options disponibles, recherchez simplement ce dont vous avez besoin pour votre cas d'utilisation particulière.

En attendant, il y a quelques conseils plus utiles concernant le choix du matériel que vous devez suivre:

  1. N'utilisez jamais le contrôleur de raid matériel avec ZFS.
  2. Correction d'erreur RAM (ECC) est recommandée, mais pas obligatoire
  3. La fonction de déduplication de données consomme beaucoup de mémoire, utilisez la compression à la place.
  4. La redondance des données n'est pas une alternative pour la sauvegarde. Avoir plusieurs sauvegardes, stocker ces sauvegardes à l'aide de ZFS!