Cet article fournit des informations sur les erreurs de données, les doubles défaillances et les perforations dans un système RAID. Il fournit en outre des recommandations pour éviter ou atténuer ces problèmes et des conseils sur la résolution de ces problèmes une fois qu’ils se sont produits.
Sommaire
- Erreurs de données et doubles défaillances
- Perforations : qu’est-ce que c’est et quelle en est l’origine ?
- Prévention des problèmes et résolution des perforations
Chapitre 1 : Erreurs de données et doubles défaillances
Les systèmes RAID ne sont pas à l’abri des erreurs de données. Le contrôleur RAID et le micrologiciel du disque dur contiennent des fonctions permettant de détecter et de corriger de nombreux types d’erreurs de données, avant qu’elles ne soient écrites sur un disque ou une matrice. Utiliser un firmware obsolète peut entraîner l’écriture de données incorrectes sur un disque ou une baie, car le firmware ne dispose pas des fonctionnalités de gestion et de correction des erreurs disponibles dans les dernières versions.
Les erreurs de données peuvent également être provoquées par des blocs physiques défectueux. Par exemple, une erreur peut se produire lorsque la tête de lecture/écriture impacte le plateau tournant (cela s’appelle également une « panne de la tête »). Les blocs peuvent également devenir défectueux avec le temps, à cause de la dégradation de la capacité du plateau à stocker magnétiquement des bits dans un emplacement spécifique. Souvent, les blocs devenus défectueux à cause de la dégradation du plateau peuvent être lus correctement. Un bloc ainsi endommagé peut n’être détecté que par intermittence ou en effectuant des diagnostics étendus sur les disques.
Un bloc, également appelé adressage de blocs logiques (LBA), peut également devenir défectueux à cause d’erreurs de données logiques. Cela se produit lorsque les données sont écrites de manière incorrecte sur un disque, même si l’opération d’écriture est signalée comme réussie. En outre, des données exactes stockées sur un disque peuvent être modifiées par inadvertance. Une « inversion de bit » peut par exemple se produire lorsque la tête de lecture/écriture passe sur ou écrit sur un emplacement à proximité et provoque un changement de valeur des données, qui passent de 0 à 1 et vice versa. Dans cette situation, la « cohérence » des données est altérée. La valeur des données sur un bloc spécifique est différente de celle des données d’origine et peut ne pas correspondre à la somme de contrôle des données. Le LBA physique fonctionne et les opérations d’écriture peuvent s’effectuer sans problème, mais il contient des données incorrectes et peut être interprété comme un bloc défectueux.
Les LBA défectueux sont généralement signalés comme
Sense Code 3/11/0. Sense Key 3 (Clé de détection 3) est une
erreur de gravité moyenne. Le code de détection et le qualificateur de détection supplémentaires 11/00 sont définis comme une
erreur de lecture non réparée. Aucune tentative pour corriger le bloc n’est entreprise et rien ne détermine si le bloc défectueux est la conséquence d’un défaut physique sur le plateau du disque ou d’une erreur de données provoquée par d’autres causes. L’existence d’un Sense Code 3/11/00 ne signifie pas automatiquement que le disque physique est tombé en panne ou qu’il doit être remplacé.
Les contrôleurs RAID basés sur du matériel Dell offrent des fonctionnalités telles que Patrol Read et la vérification de la cohérence pour corriger de nombreux scénarios d’erreurs de données. Patrol Read fonctionne par défaut comme une tâche d’arrière-plan automatique qui vérifie l’ensemble de chaque bloc sur un disque dur, afin de garantir que les données peuvent être lues correctement. Patrol Read tente de corriger les blocs défectueux ou d’effectuer un nouvel adressage des blocs non réparables vers des blocs réservés. La vérification de la cohérence est une fonction qui s’active manuellement (elle peut également être planifiée) et compare tous les disques de la matrice aux autres disques pour garantir que les données et la redondance correspondent. Par exemple, trois disques dans un système RAID 5 sont comparés, afin de garantir que les données et la parité utilisent les valeurs correctes. Si une erreur est détectée, le reste des données ou la parité sont utilisées pour réécrire et corriger la valeur incorrecte. De même, dans un système RAID 1, les données sur un disque sont comparées à celles des autres disques pour garantir qu’elles sont mises en miroir correctement.
Toute erreur unique dans un système RAID peut, si elle n’est pas corrigée, provoquer des erreurs plus graves dans la baie, surtout lorsqu’une deuxième erreur se produit. Une ou plusieurs erreurs uniques n’entraîneront pas de perte de données tant que la matrice reste dans un état optimal. Lorsque la baie est dans un état de fonctionnement optimal, le volume de données et la redondance sont suffisants pour que le système fonctionne normalement.
En raison de la capacité du contrôleur à corriger les erreurs pendant le fonctionnement normal, il n’est pas toujours facile de détecter si des problèmes sous-jacents existent dans les données. Lorsqu’une ou plusieurs conditions d’erreurs existent, il y a rarement des erreurs ou des alertes dans le journal du contrôleur, les journaux du matériel ou les journaux d’événements du système d’exploitation. C’est pour cette raison qu’une baie peut fonctionner normalement pendant une très longue période, en dépit de la présence d’erreurs de cohérence ou d’erreurs uniques.
Figure 1 : Plusieurs défaillances uniques dans un système RAID 5 – Baie optimale
Comme indiqué dans la Figure 1, la baie rencontre plusieurs erreurs. Cependant, lorsqu’il n’y a qu’une erreur unique sur une bande, quelle qu’elle soit, le contrôleur peut toujours accéder à toutes les données grâce à la redondance du RAID 5. Si l’erreur se produit sur le segment de parité, les données restent intactes et l’erreur n’a aucun impact sur les opérations de lecture. Si l’erreur se produit sur un segment de données, une comparaison XOR doit être effectuée entre les données et les segments de parité, afin de recalculer le segment de données manquant ou défectueux. Dans les deux cas, lorsqu’il n’y a qu’une erreur unique sur une bande, quelle qu’elle soit, la redondance est suffisante pour accéder à toutes les données avec succès.
Lorsqu’un ou plusieurs disques dans un système RAID contiennent des erreurs de données, et qu’un autre disque dans la baie n’est plus un membre actif de la baie en raison d’une panne de disque, d’une configuration étrangère, du retrait d’un disque ou de toute autre raison, cela crée une situation appelée « double défaillance ». Une condition de double défaillance entraîne une perte immédiate de toutes les informations des bandes affectées.
Figure 2 : Double défaillance avec un disque en panne (les données sur les bandes 1 et 2 sont perdues) – Baie dégradée
Il est possible qu’une double défaillance se produise alors que la baie est dans un état optimal. Cela peut se produire lorsque des LBA identiques sont défectueux sur plusieurs disques durs. Cette situation est extrêmement rare, étant donné le grand nombre de LBA sur les disques durs de grande capacité dont nous disposons aujourd’hui. Il est très peu probable que les mêmes LBA de plusieurs disques durs soient défectueux en même temps.
L’exécution régulière des opérations de vérification de cohérence permet de corriger les défaillances uniques, qu’il s’agisse d’un bloc physique défectueux ou d’une erreur logique de données. La vérification de cohérence permet également de réduire les risques d’une double défaillance en cas d’erreurs supplémentaires. Quand il n’y a pas plus d’une erreur unique sur une bande de données, une vérification de cohérence permet presque toujours d’éliminer l’erreur.
Retour au début
Chapitre 2 : Perforations : qu’est-ce que c’est et quelle en est l’origine ?
Une perforation est une fonction des contrôleurs Dell PERC, conçue pour permettre au contrôleur de restaurer la redondance de la matrice malgré la perte de données due à une double défaillance. Une perforation s’appelle également une « reconstruction avec des erreurs ». Le contrôleur RAID détecte une double défaillance et, la redondance étant insuffisante pour récupérer les données sur la bande impactée, le contrôleur crée une perforation dans cette bande pour permettre à la reconstruction de continuer.
- Tout état entraînant l’inaccessibilité des données sur la même bande, sur plus d’un disque, constitue une double défaillance.
- Les doubles défaillances entraînent la perte de toutes les données sur la bande impactée.
- Toutes les perforations sont des doubles défaillances, mais toutes les doubles défaillances ne sont pas des perforations.
Figure 3 : Bandes perforées (les données des bandes 1 et 2 sont perdues en raison de la double défaillance) – Baie optimale
Sans la fonctionnalité de perforation, la reconstruction de la baie échoue et celle-ci reste dans un état dégradé. Dans certains cas, les défaillances peuvent entraîner une panne des disques et la matrice se met sur un état hors ligne non fonctionnel. La perforation d’une matrice n’a aucun impact sur la possibilité de démarrer à partir des données ou d’accéder aux données de la matrice. Tout dommage ou perte de données en raison d’une double défaillance a déjà eu lieu.
Les perforations peuvent se produire dans l’une des deux situations suivantes :
- Une double défaillance existe déjà (les données sont déjà perdues) ;
- Une erreur de données sur un disque en ligne s’est propagée (copiée) sur un disque de reconstruction ;
- Il n’existe pas de double défaillance (les données sont perdues lorsque la seconde erreur se produit) ;
- Lorsque la matrice est dans un état dégradé, si un bloc devient défectueux sur un disque en ligne, le LBA est perforé.
L’avantage de la perforation d’une matrice est que le système reste disponible pour la production, et la redondance de la matrice est restaurée. Les données de la bande concernée sont perdues, que la défaillance se produise ou non. Le principal inconvénient de la méthode LSI est que lorsque la matrice connaît une perforation, des erreurs irréparables continuent de se produire lorsque l’on accède aux données affectées (le cas échéant).
La perforation peut se produire sur trois emplacements. D’abord, une perforation peut se produire dans l’espace vide ne contenant pas de données. Cette bande est inaccessible, mais comme il n’y a pas de données à cet emplacement, cela n’a aucun impact significatif. Toute tentative d’écriture sur une bande perforée par un système d’exploitation échoue, et les données sont écrites à un emplacement différent.
Une perforation peut également se produire sur une bande contenant des données qui ne sont pas essentielles, comme un fichier LISEZMOI.TXT. Si les données affectées ne sont pas accessibles, aucune erreur n’est générée dans des conditions normales d’E/S. Toute tentative pour effectuer une sauvegarde du système de fichiers échoue à sauvegarder les fichiers concernés par la perforation. L’exécution d’une vérification de cohérence ou d’opérations de Patrol Read génère le Sense code : 3/11/00 pour le LBA ou les bandes concernées.
Enfin, une perforation peut se produire dans l’espace de données sur lequel l’accès est en cours. Dans ce cas, la perte de données peut entraîner diverses erreurs. Les erreurs peuvent être des erreurs mineures qui n’ont pas d’effet négatif sur l’environnement de production. Elles peuvent également être plus graves et empêcher le démarrage du système sur le système d’exploitation ou provoquer des défaillances d’applications.
Une matrice perforée devra être supprimée et recréée pour éliminer la défaillance. Cette procédure entraîne l’effacement de toutes les données. Une fois la perforation éliminée, les données doivent être recréées et restaurées à partir de la sauvegarde. La résolution d’une perforation peut être programmée à l’heure la plus avantageuse pour l’entreprise.
Si on accède aux données d’une bande perforée, des erreurs continuent d’être signalées concernant le LBA affecté, sans possibilité de correction. Au bout d’un moment (quelques minutes, des jours, des semaines, des mois, etc.), le tableau de gestion des blocs défectueux (BBM) se remplit et un ou plusieurs disques sont signalés comme présentant une panne prévisible. Sur la Figure 3, le disque 0 est généralement le disque signalé comme présentant une panne prévisible en raison des erreurs sur les disques 1 et 2, propagées sur celui-ci. Le disque 0 peut en fait fonctionner normalement et, après son remplacement, ce disque 0 sera toujours signalé comme présentant une panne prévisible.
Une vérification de la cohérence effectuée après une perforation ne permet pas de résoudre le problème. C’est pourquoi il est très important d’effectuer une vérification de cohérence régulièrement. Cela est particulièrement important avant de remplacer des disques, lorsque cela est possible. La baie doit être dans un état optimal pour effectuer la vérification de cohérence.
Lorsqu’un système RAID contient une erreur de données unique associée à un événement d’erreur supplémentaire, tel qu’une défaillance du disque dur, cela entraîne une perforation lorsque le disque défectueux ou de remplacement est réintégré dans la baie. Par exemple, un système RAID 5 optimal inclut trois membres : le disque 0, le disque 1 et le disque 2. Si le disque 0 tombe en panne (Figure 2) et est remplacé, les données et la parité restant sur les disques 1 et 2 sont utilisées pour reconstruire les informations manquantes sur le disque de remplacement 0. Cependant, si une erreur de données existe sur le disque 1, lorsque l’opération de reconstruction atteint cette erreur, les informations sur la bande sont insuffisantes pour reconstruire les données manquantes sur cette bande. Il n’y a pas de données sur le disque 0, les données sont incorrectes sur le disque 1 et le disque 2 contient des données exactes, car il est en cours de reconstruction. Il existe plusieurs erreurs sur cette bande. Le disque 0 et le disque 1 ne contiennent pas de données valides, de sorte que les données sur cette bande ne peuvent pas être restaurées et sont par conséquent perdues. En conséquence, comme indiqué dans la Figure 3, des perforations (sur les bandes 1 et 2) sont créées au cours de la reconstruction. Les erreurs sont propagées au disque 0.
Les perforations de la matrice permettent de restaurer la redondance et de remettre la matrice dans un état optimal. Cela permet de protéger la matrice des pertes de données supplémentaires, en cas d’erreurs supplémentaires ou de défaillances de disques.
Retour au début
Chapitre 3 : Prévention des problèmes et résolution des perforations
Il peut être tentant de fonctionner sur le principe du « si ce n’est pas cassé, ne réparez pas ». Même si cela est vrai dans un grand nombre de domaines, afin de mieux protéger et gérer les sous-systèmes de stockage, il est fortement recommandé d’effectuer une maintenance de routine et régulière. La maintenance proactive peut corriger des erreurs existantes et empêcher que certaines erreurs ne se produisent. Il n’est pas possible d’éviter toutes les erreurs, mais la plupart des erreurs graves peuvent être atténuées de manière significative grâce à la maintenance proactive. Pour le stockage et les sous-systèmes RAID, ces étapes sont les suivantes :
- Mettez à jour les pilotes et le micrologiciel des contrôleurs, des disques durs, des fonds de panier et des autres périphériques.
- Effectuez les opérations de vérification de la cohérence habituelles.
- Examinez les journaux pour voir si des problèmes sont indiqués
Il n’est pas nécessaire d’effectuer une révision technique approfondie, vous pouvez simplement survoler les journaux à la recherche de signes évidents de problèmes potentiels.
Contactez le support technique Dell pour toute question.
Une des actions les plus critiques qui doit être effectuée est de vous assurer que le firmware est à jour. Le micrologiciel est l’endroit où réside toute la logique de fonctionnement d’un appareil. Il fournit les fonctionnalités et caractéristiques de l’appareil, ainsi que de nombreuses fonctions de traitement et de correction des erreurs. La mise à jour du micrologiciel peut permettre d’obtenir de meilleures performances et de réduire le nombre d’erreurs. Il est également possible d’ajouter de nouvelles fonctionnalités et améliorations via une mise à jour.
Le firmware peut se trouver à divers emplacements. Les contrôleurs RAID contiennent le micrologiciel ainsi que les différents disques durs installés dans un système ou une matrice. Les fonds de panier et boîtiers externes contiennent également un firmware qui peut avoir un impact sur le fonctionnement des disques et des baies installés dans ceux-ci.
En matière de maintenance proactive, il est également conseillé d’effectuer une « vérification de cohérence ». La vérification de cohérence est une opération manuelle, car elle consomme une partie de la bande passante disponible du contrôleur RAID. Cependant, la vérification de cohérence peut être programmée à une heure où elle aura le moins d’impact sur les performances.
La vérification de la cohérence permet de rechercher des blocs défectueux sur les disques, mais, plus important encore, elle compare les données de la baie pour garantir que toutes les pièces correspondent bien. Lorsque des problèmes sont détectés, cela permet de déterminer comment devraient se présenter les données et de les corriger en vérifiant les données présentes sur d’autres disques de la matrice. La correction des erreurs de données relativement mineures est la meilleure façon de réduire les risques de dommages causés par des erreurs de données associées à une deuxième erreur ou panne. L’existence de doubles défaillances peut entraîner une perte de productivité durant le temps nécessaire pour restaurer le fonctionnement des baies et des données, et même une perte totale des données.
Lors d’une double défaillance ou en cas de perforation, une perte de données survient souvent. Si ces erreurs se trouvent dans l’espace vide ou dans l’espace des données non critiques, l’effet immédiat sur les données d’un environnement de production est relativement faible. Cependant, la présence de ces erreurs peut signifier que des problèmes plus sérieux peuvent exister. Les erreurs de matériel et de firmware obsolète peuvent nécessiter une intervention immédiate.
Si une double défaillance connue ou suspectée, ou une perforation surviennent, procédez comme suit pour réduire le risque de problèmes plus graves :
- Effectuez une vérification de la cohérence (la matrice doit être sur un état optimal)
- Déterminez s’il y a des problèmes matériels
- Vérifiez le journal du contrôleur
- Exécutez un diagnostic du matériel
- Contactez le support technique Dell si besoin.
Si ces étapes ont été effectuées, d’autres problèmes doivent être pris en compte. Les perforations peuvent entraîner un état de défaillance prévisible des disques durs au fil du temps. Les erreurs de données qui se propagent à un disque sont signalées comme des erreurs de support sur le disque, même si aucun problème matériel proprement dit n’existe. Chaque fois qu’une LBA est consultée, une erreur est signalée. Une fois le journal des erreurs saturé, le disque signale lui-même une défaillance prédictive.
Un seul LBA perforé sur un disque peut être signalé plusieurs fois. Selon le nombre de perforations, il est possible que plusieurs disques dans une matrice soient signalés comme présentant une défaillance prévisible. Le remplacement du disque présentant une défaillance prévisible entraîne la propagation des perforations sur le disque de remplacement, ce qui entraîne le signalement d’une défaillance prévisible de ce disque. Dans ce cas, la seule action corrective possible est de résoudre la perforation.
Sur la Figure 3, nous pouvons voir qu’il existe une perforation sur les bandes 1 et 2. Le remplacement des disques ne résoudra pas ce problème, car la redondance des données est insuffisante pour reconstruire les données d’origine. Toutes les données contenues dans les bandes perforées sont perdues (sauf celles conservées dans une sauvegarde précédente). N’oubliez pas qu’une perforation ne provoque pas de perte de données, c’est la double défaillance qui entraîne la perte de données. Une perforation permet de restaurer la redondance d’une matrice présentant une double défaillance.
Remarque : voici la procédure qui permet de résoudre la plupart des défaillances. Il n’est pas forcément nécessaire d’effectuer toutes ces étapes pour résoudre le problème. Si ces étapes ne permettent pas de résoudre un problème, contactez le support technique de Dell pour obtenir plus d’informations.
Avertissement : ces instructions peuvent entraîner la perte de toutes les données de la baie. Veuillez vous assurer que vous disposez d’une sauvegarde ou de tout autre support pour la restauration avant de suivre ces étapes. Soyez prudent afin de pouvoir suivre ces étapes sans affecter d’autres matrices.
- Supprimez le cache préservé (le cas échéant).
- Effacez les configurations étrangères (le cas échéant).
- Supprimez la matrice.
- Décalez la position des disques d’un emplacement (consultez la Figure 1 pour savoir comment déplacer le disque 0 sur l’emplacement 1, le disque 1 sur l’emplacement 2 et le disque 2 sur l’emplacement 0).
- Recréez la matrice comme vous le souhaitez.
- Procédez à une initialisation complète de la matrice (pas une initialisation rapide).
- Effectuez une vérification de la cohérence de la matrice.
Si la vérification de la cohérence s’effectue sans erreur, vous pouvez en toute sécurité supposer que la matrice est maintenant en bon état et que la défaillance a disparu. Les données peuvent maintenant être restaurées sur la baie saine.
Dans les cas plus graves, le problème peut ne pas être résolu et des erreurs peuvent persister après que vous avez suivi ces étapes. Si ces étapes ne permettent pas de résoudre un problème, contactez le support technique Dell pour obtenir plus d’informations.
Il peut être nécessaire d’analyser de façon plus approfondie les perforations, afin de déterminer quels disques sont communs à la perforation. Par exemple, dans la Figure 3, le journal du contrôleur afficherait une perforation entre les disques 0 et 1 et une perforation entre les disques 0 et 2. Le disque 0 est donc le disque commun. Suivez les étapes ci-dessus, mais retirez d’abord complètement les disques communs. À l’aide de l’exemple de la Figure 1, retirez le disque 0, puis suivez les étapes décrites. Créez la matrice en utilisant les disques restants (1 et 2). Une fois que l’opération est terminée et que la vérification de cohérence a déterminé que la baie était en état de fonctionnement, ajoutez le disque 0 et effectuez les étapes à nouveau avec tous les disques ou en utilisant la RLM (migration de niveau RAID) ou l’OCE (extension de capacité en ligne) pour ajouter les disques restants dans la baie.
Les disques signalés comme présentant une défaillance prévisible doivent être supprimés et ne sont pas inclus dans le processus de restauration. À l’aide de l’exemple de la Figure 3, si le disque 0 présentait une défaillance prévisible, retirez ce disque. Effectuez ensuite les étapes décrites ci-dessus. Comme il ne reste que 2 disques, le système RAID créé est un RAID 1 et non un RAID 5. Après avoir installé le disque de remplacement 0 (en raison de la défaillance prévisible), effectuez à nouveau les étapes sur les 3 disques ou ajoutez le disque 0 dans la baie existante en utilisant la RLM, et transformez le système RAID 1 avec 2 disques en système RAID 5 avec 3 disques.
Le processus peut s’avérer fastidieux, surtout compte tenu du risque de perte de données. L’adage « Mieux vaut prévenir que guérir » s’applique parfaitement ici. L’expérience a montré que presque toutes les doubles défaillances et perforations auraient pu être évitées en effectuant une maintenance proactive sur le matériel et les systèmes RAID.
Remarque : surveiller efficacement le système permet de détecter les problèmes et de les corriger rapidement, ce qui réduit également le risque de problèmes plus sérieux.
Article associé
PERC - Comment résoudre une défaillance RAID
Retour en haut de page