16 votes

Combien de disques ai-je besoin pour ZFS RAID-Z2?

De quelle capacité de stockage aurais-je besoin si je voulais utiliser RAID-Z2? Je suis en train de construire un serveur domestique qui exécutera FreeNAS avec un système de fichiers ZFS, et j'ai actuellement l'intention d'installer 3 disques durs de 3 To.

  • Est-ce que le RAID-Z2 fonctionne avec cela?
  • Serais-je obligé de rétrograder vers le RAID-Z1?
  • Combien de disques sont nécessaires pour le RAID-Z2?

25voto

user Points 28521

RAID-Z2 fonctionne en prenant les lecteurs donnés au vdev, et en utilisant deux d'entre eux pour stocker des données redondantes à des fins de récupération en cas de problème.

Ainsi, le nombre minimum absolu de lecteurs dans un vdev RAID-Z2 est les deux redondants plus un, ce qui revient à trois lecteurs.

Cependant, en procédant de cette manière, vous :

  • obtenez la capacité de stockage effective d'un seul des lecteurs
  • pouvez perdre n'importe lesquels des trois lecteurs sans perte de données (dans le cas général, vous pouvez survivre à la perte de n'importe 2 lecteurs dans un vdev RAID-Z2 de N lecteurs)
  • forcez le système à calculer les données de parité pour RAID-Z2

Si vous voulez un vdev constitué de trois lecteurs, ou si vous en avez trois et que vous voulez la redondance de deux lecteurs, il est probablement préférable de les configurer comme un miroir. De cette manière, vous :

  • obtenez la capacité de stockage effective d'un seul des lecteurs (peu importe le nombre de dispositifs de miroir)
  • pouvez survivre à la perte de n'importe lesquels des trois lecteurs sans perte de données (dans le cas général, vous pouvez survivre à la perte de tout N-1 lecteurs dans un vdev miroir de N lecteurs)
  • évitez les calculs de données de parité, car les miroirs sont des copies identiques bit à bit les unes des autres ; écrire les mêmes données sur plusieurs disques est beaucoup moins cher que de calculer des données de parité séparées et de les écrire sur le disque

Le nombre minimum de lecteurs où RAID-Z2 a un intérêt est quatre, ce qui vous donne la capacité de stockage effective de deux des lecteurs et vous permet de perdre n'importe lesquels des deux lecteurs. Cela est avantageux par rapport à l'utilisation des mêmes quatre lecteurs dans une configuration 2x2 de miroirs, car si vous avez deux vdev de miroirs de deux lecteurs chacun et que vous perdez certaines combinaisons de deux lecteurs, ce vdev est mort et emporte le pool avec lui dans sa fin enflammée. Dans un pool de vdev miroir 2x2, au moins l'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, et une partie de la description de poste de l'administrateur système est de faire 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 simple configuration en miroir à trois voies.

Cela serait différent si ZFS nous permettait de changer dynamiquement le niveau de redondance ou d'augmenter le nombre de dispositifs dans un vdev RAID-Zn, mais cela n'est pas possible. La seule façon de réellement agrandir un pool est d'ajouter davantage de vdevs ou d'augmenter la taille des dispositifs existants, et non pas d'ajouter des dispositifs à un vdev existant. (Vous pouvez ajouter et supprimer des dispositifs dans un vdev miroir, mais cela ne modifie que le niveau de redondance, pas la capacité de stockage utilisable.)

Vous pourriez également configurer les trois lecteurs comme un vdev RAID-Z(1), ce qui vous donnera la capacité de survivre à la perte de n'importe lequel des lecteurs avant que vos données ne soient en danger si quelque chose d'autre se passe, réduira la charge CPU par rapport à RAID-Z2 (car les calculs de parité RAID-Z1 sont moins intensifs en termes de calcul) et vous donnera la capacité de stockage effective de deux des lecteurs combinés.

N'oubliez pas toujours que si quelque chose ne va pas, une réparation complète de ZFS est un processus ardu pour les disques restants, et il n'est pas rare qu'un autre disque développe des problèmes ou même tombe en panne sous stress. Pour cette raison, surtout avec les disques rotatifs de taille commune aujourd'hui, la double redondance devrait être le choix par défaut avec la triple redondance comme option si vous êtes vraiment paranoïaque. La simple redondance devrait être considérée uniquement pour les données moins importantes où les temps d'arrêt peuvent être tolérés. La simple redondance peut être acceptable avec un pool basé sur SSD, cependant.

Ainsi, ma recommandation : Si vous voulez un ZFS à trois lecteurs, et que vous voulez de la redondance, configurez-les comme un vdev miroir à trois voies. Si vous voulez du RAID-Z2, utilisez un minimum de quatre lecteurs, mais gardez à l'esprit que vous verrouillez le nombre de lecteurs dans le vdev au moment de la création du vdev. Actuellement, la seule façon de faire croître un pool ZFS est d'ajouter des vdevs supplémentaires, ou d'augmenter la taille des dispositifs constituant un vdev, ou de créer un nouveau pool et de transférer les données. Vous ne pouvez pas augmenter la capacité de stockage du pool en ajoutant des dispositifs à un vdev existant.

Vous devez également vous assurer de faire des sauvegardes. Cela est doublement important avec ZFS, car la récupération de ZFS après une panne réelle qui ramène le pool en dessous de son seuil de redondance est très difficile. ZFS a un format très complexe sur disque que je ne connais aucun logiciel de récupération de données standard qui le comprenne, donc même si vous pouvez lire la plupart des données sur les disques, si ZFS ne peut pas les comprendre alors vous pourriez bien être hors de la chance à moins d'être prêt à dépenser des dizaines de milliers de dollars sur le problème. Les sauvegardes sont moins chères.

En alternative au miroir à trois voies, vous pourriez également exécuter un miroir à deux voies avec une pièce de rechange, mais la plupart du temps, et certainement dans la situation que vous décrivez, il n'y a aucun avantage et certains inconvénients à cela.

En relation avec la question de la récupération, vous devriez sérieusement envisager d'utiliser de la RAM ECC dans tout système qui exécute un système de fichiers auto-réparateur par vérification des sommes, y compris ZFS. D'autres le confirment.

Montrant que RAID-Z2 avec trois dispositifs est possible (il s'agit de ZFS On Linux 0.6.4). Notez qu'après avoir supprimé physiquement deux des trois fichiers de support, "Des répliques suffisantes existent pour que le pool continue de fonctionner dans un état dégradé." et le 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
#

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X