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.
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:
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:
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
#