RAIDZ1 est-il pire qu’aucune tolérance de panne pour un ensemble de disques de 4 To?

1

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é.

Paul
la source
1
Pour des raisons de complétude, pour ceux qui ne sont pas familiarisés avec ZFS en particulier: RAIDZ1 est à peu près équivalent à RAID 5 (segmenté avec une parité simple).
a CVn
La logique dans votre réponse citée échoue. Comment RAIDZ1 peut-il être Moins fiable que pas de tolérance aux pannes? Sans tolérance de panne, toute défaillance de lecteur rend un pool inutilisable. Avec RAIDZ1, bien que le temps de reconstruction puisse être long après le remplacement du disque et que la reconstruction du pool insiste sur les disques existants, encore prend deux échecs entraînant la défaillance du pool. Quoi qu'il en soit, le pool RAIDZ1 pouvez survivre à une panne d'un seul disque. Un pool non tolérant aux pannes simplement ne peut pas .
Andrew Henle
@AndrewHenle Veuillez consulter le fil de discussion lié pour plus de contexte. La question était: "Est-il plus probable que je développerai deux pannes de disque simultanées si j'utilise RAIDZ1 que si je n'utilise aucun RAID?". La réponse portait donc sur les chances d’exactement deux disques en panne, sans tenir compte du premier défaut. Dans ce cas, il peut être préférable de laisser tous les disques s'exécuter en tant que vdevs de base (pools distincts, pas de bandes) plutôt que de créer un seul pool Z1 (alors que votre réponse est vraie pour Z1 par rapport aux vdevs de base sur un seul pool pour le premier incident de disque ).
user121391

Réponses:

1

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.

Je pensais la même chose, mais je ne savais pas que l’URE n’était pas un simple retournement, mais gâchait toute la piscine.

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).

Étant donné que RAID0 n'est pas soumis aux URE, la question est la suivante: "Qu'est-ce qui est le plus probable, une URE dans RAIDZ ou une défaillance de disque dans RAID0?"

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:

  • Vous pouvez créer des périphériques virtuels (vdevs) à partir de disques, partitions ou fichiers. Chaque vdev peut être créé avec une redondance différente: basique (pas de redondance), en miroir (1 à N disques peuvent échouer), le raid de parité Z1 / Z2 / Z3 (les disques 1/2/3 peuvent échouer). Toute redondance fonctionne au niveau vdev.
  • Vous créez des pools de stockage à partir d'un ou plusieurs vdevs. Ils sont toujours rayés, donc la perte d'un seul vdev signifie la perte de la totalité du pool.
  • Vous pouvez avoir n'importe quel nombre de pools, qui sont indépendants. Si un pool est perdu, les autres pools continuent de fonctionner.

Par conséquent, vous pouvez raisonner ce qui suit:

  • Si possible, préférez Z2 à Z1 en raison de la charge accrue et de la grande fenêtre d'opportunités (négatives) lors de la reconstruction de disques de grande taille (une taille supérieure à 1 To environ).
  • Si vous devez choisir entre Z1 et plusieurs vdevs de base, préférez Z1 en raison d’une correction d’erreur sur les bits qui n’est pas possible avec vdevs de base
  • Si vous pouvez accepter la perte partielle de pool, segmentez votre pool en plusieurs pools plus petits soutenus par un seul vdev, afin d'obtenir des informations de somme de contrôle et des délais de reconstruction plus rapides pour les erreurs fatales.

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.

user121391
la source
1

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.

AcePL
la source
Je ne comprends pas vraiment ça. Comment est-il moins tolérant aux pannes que RAID0? Selon le nombre "un défaut sur 10e14", il y a une chance sur 10000 de défaillance simultanée des lecteurs, par lecture de TB. Cela entraînera un bit retourner dans la piscine. Même avec une seule panne de disque, ne vous attendez-vous pas à une probabilité d'environ 1% par téraoctet qu'un bit retourne pendant la correction d'erreur? Il semble que je récupère la grande majorité du disque, une nette amélioration par rapport à "tout le pool est perdu"
Paul
@Paul - Désolé si je vais paraître ironique ou pire, mais voilà: depuis quand "pas plus tolérant aux fautes que" égal "moins tolérant aux fautes que"? En ce qui concerne le repos: sur le plan statistique, vous pouvez vous attendre à ce que 2 lecteurs de grande capacité utilisés n'échouent pas dans les 2 ans (pas nécessairement catastophique - seulement l'URU suffit). Calculez par vous-même comment RAIDZ1 vous protégera de cette situation (selon 25 à 33% de sacrifice d’espace de stockage que vous avez spécifié)? Sans parler du fait que les pannes matérielles ne sont pas vraiment le type de pannes dont vous devriez vous inquiéter, même avec des baies aussi petites que ...
AcePL
RAIDZ1 n'est pas plus tolérant aux pannes que le Raid 0 lorsqu'il est question de disques 4 To modernes Cela ne peut tout simplement pas être vrai. Parce que vous déclarez qu’une fois qu’un lecteur tombe en panne dans une baie RAIDZ1 composée de 4 To, un second VOLONTÉ échouer avant la reconstruction est terminée.
Andrew Henle
1
Non, j’affirme qu’il existe une probabilité statistiquement élevée de TOUT type de défaillance (dont le moindre souci est mécanique), ce qui est plus élevé avec la capacité du lecteur, l’âge, le nombre de lectures, etc., ce qui peut ne pas être corrigible du lecteur a déjà échoué. Le problème avec URE est que, à moins de surveiller activement les baies, ils ont la fâcheuse habitude de sortir lors de la reconstruction.
AcePL
@AndrewHenle Je pensais la même chose, mais je n'avais pas réalisé qu'une URE n'était pas un simple retournement, mais gâchait toute la piscine. Étant donné que RAID0 n'est pas soumis aux URE, la question est la suivante: "Qu'est-ce qui est le plus probable, une URE dans RAIDZ ou une défaillance de disque dans RAID0?" 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.
Paul