web-dev-qa-db-fra.com

De combien de disques ai-je besoin pour ZFS RAID-Z2?

De combien de stockage aurais-je besoin si je voulais utiliser RAID-Z2? Je construis un serveur domestique qui exécutera FreeNAS avec un système de fichiers ZFS et envisage actuellement d’installer 3 disques durs de 3 To.

  • Est-ce que RAID-Z2 fonctionne sur ceci?
  • Aurais-je besoin de passer à RAID-Z1?
  • Combien de disques sont nécessaires pour RAID-Z2?
6
user424484

RAID-Z2 fonctionne en prenant les disques donnés à vdev, et en utilisant deux de ceux-ci pour stocker des données redondantes à des fins de récupération en cas de problème.

Par conséquent, le nombre minimum absolu de disques dans un RAID-Z2 vdev correspond aux deux disques redondants plus un, ce qui donne trois disques.

Cependant, en procédant ainsi, vous:

  • obtiennent la capacité de stockage effective d'un seul des lecteurs
  • peut perdre deux des trois lecteurs impliqués sans perte de données (dans le cas général, vous pouvez survivre à la perte de deux lecteurs dans un lecteur N RAID-Z2 vdev)
  • obligent le système à calculer les données de parité pour RAID-Z2

Si vous voulez un disque virtuel constitué de trois disques, ou si vous en avez trois et que vous voulez une redondance de deux disques, il vaut probablement mieux les configurer en tant que miroir. De cette façon, vous:

  • obtiennent la capacité de stockage effective d'un seul des lecteurs (quel que soit le nombre de périphériques miroirs)
  • peut survivre à la perte de deux des trois lecteurs impliqués sans perte de données (dans le cas général, vous pouvez survivre à la perte de tout lecteur N-1 dans un miroir de lecteur N vdev)
  • évitent les calculs de données de parité, car les miroirs sont des copies identiques les unes des autres; écrire les mêmes données sur plusieurs disques revient beaucoup moins cher que de calculer des données de parité séparées et de les écrire sur disque

Le nombre minimal de disques pour lequel RAID-Z2 est logique est de quatre, ce qui vous donne la capacité de stockage effective de deux des lecteurs et permet de perdre tout type de disque deux des lecteurs. Ceci est avantageux par rapport à l'utilisation des mêmes quatre disques dans une configuration de miroir 2x2, car si vous avez deux disques vdev en miroir sur deux disques et que vous perdez certaines combinaisons de deux disques, celui-ci est mort et entraîne le pool dans son effacement. Dans un pool vdev miroir 2x2, au moins un des lecteurs de chaque paire de miroirs doit rester fonctionnel pour que le pool reste disponible. Cependant, le miroir peut très bien avoir de meilleures performances. Comme toujours, il s’agit d’un compromis entre différents choix. L’un des éléments de la description de travail de l’administrateur système consiste à effectuer ces compromis de manière appropriée pour chaque situation spécifique.

Ainsi, bien que RAID-Z2 puisse techniquement fonctionner avec la configuration que vous décrivez, il n’offre aucun avantage et présente même quelques inconvénients par rapport à une configuration en miroir à trois voies.

Ce serait différent si ZFS nous permettait de modifier de manière dynamique le niveau de redondance de ou d'augmenter le nombre de périphériques dans un RAID-Zn vdev , mais ce n'est pas le cas. La seule façon de développer un pool consiste à ajouter davantage de vdev ou à augmenter la taille des périphériques existants, et non à ajouter des périphériques à un vdev existant. (Vous pouvez ajouter et supprimer des périphériques dans une vdev en miroir, mais cela ne change que la quantité de redondance, pas la capacité de stockage utilisable.)

Vous pouvez également configurer les trois disques en tant que vdev RAID-Z (1), ce qui vous permettra de survivre à la perte de tout disque avant que vos données ne soient en danger. en cas de problème, réduisez la charge de travail du processeur par rapport à RAID-Z2 (car les calculs de parité RAID-Z1 nécessitent moins de calcul) et vous donnent la capacité de stockage effective de deux des disques combinés.

Toujours , gardez à l'esprit que, si quelque chose ne va pas, un serveur de résilience ZFS complet est un processus ardu pour les disques restants, et il n'est pas rare qu'un autre disque présente des problèmes ou même mourir sous le stress. Pour cette raison, en particulier avec les disques de rotation de tailles courantes, la double redondance devrait être le choix par défaut avec une triple redondance une option si vous êtes vraiment paranoïaque. La redondance simple doit être envisagée uniquement pour les données moins importantes pour lesquelles des temps d'arrêt peuvent être tolérés . La redondance simple peut cependant être acceptable avec un pool basé sur SSD.

D'où ma recommandation: Si vous voulez trois disques ZFS et souhaitez une redondance, configurez-les comme un miroir tridirectionnel vdev. Si vous voulez RAID-Z2, utilisez un minimum de quatre lecteurs, mais gardez à l'esprit que vous verrouillez le nombre de lecteurs dans vdev au moment de la création de vdev. Actuellement, le seul moyen de développer un pool ZFS consiste à ajouter des vdev supplémentaires, ou en augmentant la taille des périphériques composant un vdev, ou en créant un nouveau pool et en transférant les données. Vous ne pouvez pas augmenter la capacité de stockage du pool en ajoutant des périphériques à un vdev existant.

Vous devez également vous assurer de conserver les sauvegardes . Ceci est d'autant plus important avec ZFS, car la récupération ZFS après une défaillance réelle qui ramène le pool en dessous de son seuil de redondance est très difficile . Le format sur disque de ZFS est très complexe et, à ce que je sache, aucun logiciel de récupération de données standard n'est compris. Par conséquent, même si vous pouvez lire la plupart des données sur les disques, si ZFS ne peut pas le comprendre, alors vous risquez fort de ne pas avoir de chance, sauf si vous êtes prêt à dépenser des dizaines de milliers de dollars sur le problème. Les sauvegardes sont moins chères.

Au lieu du miroir à trois voies, vous pouvez également utiliser un miroir à double sens avec un disque de secours, mais la plupart du temps, et certainement dans la situation que vous décrivez, , il n'y a pas d'avantage et quelques inconvénients à cela .

En passant, lié à la question de la récupération, , vous devriez envisager très fortement d’utiliser ECC RAM dans tout système exécutant un checksum. système de fichiers à réparation automatique, y compris ZFS. Les autres sont d'accord.

Montrer qu'il est possible d'utiliser RAID-Z2 avec trois périphériques (il s'agit de ZFS sur Linux 0.6.4). Notez qu'après avoir retiré de manière stricte deux des trois fichiers de sauvegarde, "il existe suffisamment de répliques pour que le pool continue de fonctionner dans un état dégradé". et vdev est DEGRADED, pas FAULTED.

# truncate -s 1G /root/d1 /root/d2 /root/d3
# zpool create tank raidz2 /root/d1 /root/d2 /root/d3
# zpool status tank
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        tank          ONLINE       0     0     0
          raidz2-0    ONLINE       0     0     0
            /root/d1  ONLINE       0     0     0
            /root/d2  ONLINE       0     0     0
            /root/d3  ONLINE       0     0     0

errors: No known data errors
# zpool export tank
# rm /root/d1 /root/d2
# zpool import tank -d /root
# zpool scrub tank
# zpool status tank
  pool: tank
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://zfsonlinux.org/msg/ZFS-8000-2Q
  scan: scrub repaired 0 in 0h0m with 0 errors on Tue Mar 29 11:00:23 2016
config:

        NAME                      STATE     READ WRITE CKSUM
        tank                      DEGRADED     0     0     0
          raidz2-0                DEGRADED     0     0     0
            18130982121682915530  UNAVAIL      0     0     0  was /root/d1
            18289483070703159278  UNAVAIL      0     0     0  was /root/d2
            /root/d3              ONLINE       0     0     0

errors: No known data errors
# 
10
a CVn