Sur cette question , Michael Kjörling et utilisateur121391 semblent faire valoir que RAIDZ1 (l’équivalent ZFS de RAID5) n’est pas fiable et que je devrais utiliser RAIDZ2 (l’équivalent ZFS de RAID6). user121391 commente:
Lors de la reconstruction d’un lecteur défaillant, toutes les données de tous les lecteurs doivent être lis. Cela augmente le stress sur les disques (surtout s’ils sont principalement inactif normalement) et donc la chance d'un autre lecteur échouer. De plus, lors de la lecture de toutes les données, vous pouvez obtenir une URE. l'un des disques sans deuxième disque à compenser, ce qui signifie des fichiers peut être endommagé / perdu. Troisièmement, plus vos disques sont gros, plus votre fenêtre de vulnérabilité devient, non seulement pour ces problèmes, mais tout problèmes pouvant survenir sur les disques ou le système (coupure de courant, etc.).
Pour mon cas d'utilisation spécifique (un serveur multimédia domestique), je cherche à obtenir certains tolérance aux pannes avec des dépenses minimes en termes de stockage redondant. Toutes les données irrécupérables seront sauvegardées, mais ce sera très gênant si un lecteur tombe en panne, car je devrais extraire un grand nombre de DVD et de livres, télécharger de grandes quantités de musique à partir de divers services pour reconstruire le serveur multimédia.
Ma question est la suivante: un RAIDZ1 constitue-t-il une amélioration progressive de la tolérance aux pannes, étant donné que je ne suis pas disposé à sacrifier plus de 25 à 33% de la taille totale du pool au service de la tolérance aux pannes, ou augmentera-t-il considérablement les chances que, Si un disque tombe en panne, le pool entier échouera complètement, entraînant une perte totale des données.
Si cela peut aider, la plupart de ces données ne changeront pas (ce sont des fichiers multimédias), et tout ce qui n’est théoriquement pas récupérable sera sauvegardé.
Réponses:
Je pense que c'était un malentendu dans le vieux fil. Je comparais le risque d'échec de deux disques d'affilée lorsque j'utilisais le raid de parité Z1 ou l'absence de RAID (comme vous l'avez indiqué dans les commentaires de l'autre fil). À mes yeux, il n’a jamais été question de Z1 par rapport à un pool de vdevs de base, car ce jeu est essentiellement terminé après le premier défaut de toute façon, donc Z1 est bien sûr meilleur.
Mais si vous comparez simplement plusieurs pools indépendants à un seul pool avec un seul Z1 vdev, le problème de l'augmentation de la charge tout en recalculant les informations de parité persiste.
Sur la comparaison de Z1 vs Z2, à laquelle la réponse de Michael portait principalement, les deux autres points s'appliquent. J'aurais dû être plus clair dans les commentaires, mais ils sont malheureusement limités dans l'espace. J'espère que cette réponse efface une partie de ceci.
Si nous simplifions le tout, vous avez votre disque avec sa puce de contrôleur en bas et votre matériel (contrôleur RAID) ou un logiciel (par exemple, ZFS) en haut.
Si une erreur survient dans le matériel et qu’un secteur ne peut pas être lu, la puce essaie d’abord de le corriger par lui-même, si possible (par exemple, en lisant le secteur posant problème plusieurs fois). S'il ne parvient toujours pas à en tirer parti, il abandonne (sur des disques normaux, cela peut prendre quelques minutes et bloque le système complet qui attend le message "réussi" ou "échec" concernant l'opération IO en attente.
Certains disques ont une fonctionnalité appelée TLER (récupération d’erreurs limitée dans le temps), qui est un délai très long qui limite ce temps de correction des erreurs à 6-9 secondes, car, traditionnellement, la plupart des contrôleurs RAID matériels abandonnaient l’ensemble du disque après 9 secondes. sector ne devrait pas rendre le disque entier indisponible, mais être corrigé par un "bon" secteur sur les autres disques (une fonctionnalité sur laquelle un seul disque sur un système de bureau ne pourrait pas compter, un délai d’expiration long serait préférable).
Maintenant, regardons le côté logiciel: si vous configurez votre système de fichiers contrôleur ZID ou redondant avec redondance, par exemple en utilisant des disques en miroir ou un vdev miroir comme base de votre pool, votre URE peut être corrigée. Si vous n'utilisez pas la redondance, les données de ce secteur disparaîtront, qu'il s'agisse de données qui vous intéressent ou simplement de vieilles données temporaires aléatoires ou de rien, selon votre chance. Il en va de même pour les retournements de bits, bien que la probabilité qu'ils se produisent semble dépendre davantage d'effets extérieurs (comme le rayonnement cosmique).
Je n'ai pas accepté cette réponse parce que je ne pense pas qu'elle explique correctement les points pertinents, mais je prévoyais de créer ma propre réponse une fois que je comprendrais pourquoi les URE détruisent tout le groupe, si personne d'autre ne le traite en premier.
Je vous suggère de lire une explication de base de la structure de la piscine ZFS. Pour résumer les bits les plus importants:
Par conséquent, vous pouvez raisonner ce qui suit:
Dans tous les cas ci-dessus, vous devez avoir une sauvegarde. Si vous ne pouvez pas ou ne voulez pas vous permettre une sauvegarde, il s'agit de ce que vous êtes plus à l'aise de perdre - certaines parties du pool avec une probabilité plus élevée ou tout avec une probabilité plus faible. Personnellement, je choisirais la première option, mais vous pouvez en décider autrement.
la source
La réponse que vous avez citée sous-entend que, si vous augmentez la capacité de stockage, le risque d'échec augmente en conséquence, non seulement pour les opérations de reconstruction, mais également pour les activités normales. Ainsi, statistiquement, RAIDZ1 n’est pas plus tolérant aux pannes que le Raid 0 lorsqu’il est question de disques 4 To modernes, même si la preuve est faite à première vue.
Certains soutiennent donc que RAIDZ1 ne représente en réalité pas une protection accrue contre la perte de données pour les disques durs de grande capacité. Cela est moins lié à une défaillance mécanique du ou des lecteurs, ou du moins pas à une défaillance critique. URE est, pour le dire simplement (et très simpliste), un manque de lecture. Que ce soit en raison d'une lecture prolongée sur un secteur défectueux du lecteur, d'un disque qui manque de secteurs de réserve - ou pour toute autre cause - ce n'est pas vraiment un problème. Ça va arriver, qu'on le veuille ou non. Prenons ensuite l'exemple du secteur défectueux. Normalement, cela est géré par le lecteur en interne, mais s'il y en a suffisamment ou que le lecteur le prendra facilement, le contrôleur RAIDZ pourrait interpréter le retard comme une panne de lecteur et l'éjecter. Imaginons que ce soit le deuxième disque dur de la piscine et que cela se soit produit lors de la reconstruction ... La seule solution viable consiste à nettoyer le tableau pour détecter ces erreurs. Si l'erreur est détectée tôt, l'erreur sera simplement une rafale. Le pool récupérera facilement les données. Mais cela implique une charge assez importante sur les disques, ce qui augmente considérablement les chances statistiques d’UR (statistique: rappelez-vous: l’âge, les écritures, le volume de données l’augmentent déjà beaucoup, sans augmenter les lectures par ordre de pour chaque lecteur séparément).
Ainsi, la réponse à votre question (
is a RAIDZ1 an incremental improvement on no fault tolerance
) est: pas vraiment. Si nous utilisons la logique de la citation, vous aurez 50% de chances (je pense) de connaître un nombre de pannes de disque suffisant pour que les données soient irrécupérables au cours des deux premières années suivant l’utilisation des disques.C'est pourquoi, lorsque dans notre entreprise, nous avons été confrontés au dilemme de la disponibilité du serveur ou de la capacité de stockage, nous avons décidé de lancer RAID6 sur SSD. Devrait être suffisant pour quelques années et ensuite probablement mettre à niveau, si nécessaire.
la source