Comment un seul disque dans une baie matérielle SATA RAID-10 peut-il tout arrêter complètement?

103

Prélude:

Je suis un code-singe de plus en plus pris en charge par SysAdmin pour ma petite entreprise. Mon code est notre produit et, de plus en plus, nous fournissons la même application que SaaS.

Il y a environ 18 mois, j'ai transféré nos serveurs d'un fournisseur d'hébergement haut de gamme vers un pousseur rackable barebones dans un centre de données de niveau IV. (Littéralement de l’autre côté de la rue.) C’est beaucoup plus nous-mêmes - mise en réseau, stockage et surveillance.

Dans le cadre du déménagement, pour remplacer notre système de stockage attaché direct loué auprès de la société d’hébergement, j’ai construit un NAS à deux nœuds basé sur des châssis SuperMicro, des cartes RAID 3wares, Ubuntu 10.04, deux douzaines de disques SATA, DRBD et. Tout est documenté avec amour dans trois articles de blog: Mise en place et test d'un nouveau NAS 10T SATA RAID10 NATA SATA: parties I , parties II et partie III .

Nous avons également mis en place un système de surveillance Cacit. Récemment, nous avons ajouté de plus en plus de points de données, tels que les valeurs SMART.

Je n'aurais pas pu faire tout cela sans les géniaux boffins de ServerFault . Ce fut une expérience amusante et éducative. Mon patron est heureux (nous avons économisé des tonnes de $$$) , nos clients sont satisfaits (les coûts de stockage sont en baisse) , je suis heureux (plaisir, plaisir, plaisir) .

Jusqu'à hier.

Panne & Récupération:

Quelque temps après le déjeuner, nous avons commencé à recevoir des informations sur les performances médiocres de notre application, un système de gestion de contenu multimédia en continu à la demande. À peu près au même moment, notre système de surveillance Cacti a envoyé une tempête de neige d’emails. L'une des alertes les plus éloquentes était un graphique de iostat en attente.

entrez la description de l'image ici

Les performances se sont tellement dégradées que Pingdom a commencé à envoyer des notifications "serveur en panne". La charge globale était modérée, il n'y avait pas de pointe de trafic.

Après avoir ouvert une session sur les serveurs d'applications, les clients NFS du NAS, j'ai confirmé que presque tout connaissait des temps d'attente IO extrêmement intermittents et extrêmement longs. Et une fois que j’ai sauté sur le nœud NAS principal lui-même, les mêmes retards étaient évidents lorsqu’on essayait de naviguer dans le système de fichiers de la matrice à problèmes.

Il est temps d’échouer, cela s’est bien passé. En 20 minutes, tout a été confirmé comme étant parfaitement opérationnel.

Autopsie:

Après toute défaillance du système, j'effectue un post-mortem pour déterminer la cause de la défaillance. La première chose que j'ai faite a été de rentrer dans la boîte et de commencer à examiner les journaux. C'était hors ligne, complètement. Temps pour un voyage au centre de données. Réinitialisation du matériel, sauvegarde et exécution.

Dans /var/syslogJ'ai trouvé cette entrée à la recherche effrayant:

Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_00], 6 Currently unreadable (pending) sectors
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_07], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 171 to 170
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 16 Currently unreadable (pending) sectors
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 4 Offline uncorrectable sectors
Nov 15 06:49:45 umbilo smartd[2827]: Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
Nov 15 06:49:45 umbilo smartd[2827]: # 1  Short offline       Completed: read failure       90%      6576         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 2  Short offline       Completed: read failure       90%      6087         3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 3  Short offline       Completed: read failure       10%      5901         656821791
Nov 15 06:49:45 umbilo smartd[2827]: # 4  Short offline       Completed: read failure       90%      5818         651637856
Nov 15 06:49:45 umbilo smartd[2827]:

Alors je suis allé vérifier les graphiques Cacti pour les disques dans le tableau. Nous voyons ici que, oui, le disque 7 est en train de s’écrouler comme le dit syslog. Mais nous constatons également que les erreurs de lecture SMART du disque 8 fluctuent.

entrez la description de l'image ici

Il n'y a pas de message concernant le disque 8 dans syslog. Plus intéressant, les valeurs fluctuantes du disque 8 sont directement corrélées aux temps d'attente IO élevés! Mon interprétation est la suivante:

  • Le disque 8 rencontre un problème matériel étrange qui entraîne des durées de fonctionnement intermittentes longues.
  • D'une manière ou d'une autre, cette condition d'erreur sur le disque bloque toute la matrice

Peut-être existe-t-il une description plus précise ou correcte, mais le résultat final est que ce disque a un impact sur les performances de l'ensemble du tableau.

Questions)

  • Comment un seul disque dans une baie matérielle SATA RAID-10 peut-il tout arrêter complètement?
  • Suis-je naïf de penser que la carte RAID aurait dû gérer cela?
  • Comment puis-je empêcher un disque défectueux d'avoir un impact sur l'ensemble de la matrice?
  • Est-ce que je manque quelque chose?
Stu Thompson
la source
11
Une autre question bien écrite de votre part, +1. Toujours un plaisir de lire (mais malheureusement au-dessus de mon tableau d’avoir même une idée).
tombull89
1
@daff: Nous avons économisé 66% sur un budget comparable avec cette configuration de HP. Nous mettons une durée de vie de trois ans sur cette boîte, elle n’a pas besoin de durer plus longtemps. Rappelez-vous qu’il s’agit d’une boîte de rangement qui coûte du plumet d’une année sur l’autre.
Stu Thompson
2
3Ware n'est pas mauvais en soi. J'ai eu un comportement insignifiant d'une carte PERC sur un système Dell, qui est supposé être un matériel serveur décent. La carte 3Ware devrait avoir une batterie embarquée, etc., donc je ne me sentirais pas trop mal à propos de cette décision. D'accord, vous pourriez être critiqué pour la décision SAS vs. SATA, mais vous ne perdez pas de données et votre question donne l'impression que vous avez des sauvegardes et une surveillance en place, alors vous vous en sortez plutôt bien :-)
Bart Silverstrim
1
@StuThompson: bien sûr, il est moins coûteux d'utiliser un matériel grand public et le plus souvent, tout se passera bien, en particulier lorsque, comme dans votre cas, il existe un bon concept de haute disponibilité. Cependant, comme vous l'avez montré, il existe des cas où le matériel grand public n'est pas à la hauteur lorsque de mauvaises choses se produisent. Je peux pratiquement vous garantir qu'un seul disque SAS défectueux sur un bon contrôleur PERC (Dell) ou SmartArray (HP) ne vous aurait pas causé d'autre problème qu'un appel de support technique pour obtenir un disque de remplacement. Nous avons eu beaucoup de disques SAS morts au fil des années en production, mais ils ne les ont jamais détruits.
Daff
5
La plupart des disques SATA ne prennent pas en charge TLER (récupération d'erreur limitée dans le temps). Lorsqu'un disque SATA typique rencontre un problème physique, il envoie un message "suspendu pendant que je travaille dessus" au sous-système de disque (ce qui se passe normalement comme il est dit). Le disque continuera ensuite à passer 10 à 30 secondes (généralement) à chaque erreur détectée jusqu'à ce qu'il atteigne le seuil "Je suis mort". Les disques SAS et les disques SATA prenant en charge TLER sont configurés par leur HBA pour indiquer au sous-système de disque "J'ai un problème, que dois-je faire?" de sorte que le HBA peut décider de l'action appropriée essentiellement immédiatement. (Simplicité simplifiée)
Chris S

Réponses:

48

Je déteste dire «n'utilisez pas de SATA» dans des environnements de production critiques, mais j'ai souvent été confronté à cette situation. Les disques SATA ne sont généralement pas conçus pour le cycle de travail que vous décrivez, bien que vous ayez utilisé des disques spécifiques spécialement conçus pour un fonctionnement 24x7 dans votre configuration. D'après mon expérience, les disques SATA peuvent échouer de manière imprévisible, affectant souvent l'ensemble de la matrice de stockage, même lorsque vous utilisez RAID 1 + 0, comme vous l'avez fait auparavant. Parfois, les disques tombent en panne de manière à bloquer l’ensemble du bus. Une chose à noter est de savoir si vous utilisez des extensions SAS dans votre configuration. Cela peut faire une différence dans la manière dont les disques restants sont impactés par une panne de lecteur.

Mais il aurait peut-être été plus judicieux d’utiliser des disques SAS midline / nearline (7200 tr / min) plutôt que SATA. Le prix est légèrement supérieur à celui du SATA, mais les disques fonctionneront / échoueront de manière plus prévisible. La correction d'erreur et la génération de rapports dans l'interface / protocole SAS sont plus robustes que dans l'ensemble SATA. Ainsi, même avec des disques dont les mécanismes sont identiques , la différence de protocole SAS peut avoir évité la douleur ressentie lors de la panne de votre disque.

ewwhite
la source
En écrivant la question, je savais que mon choix de SAS allait être proposé. : / IOPS et le débit sont bien dans les capacités de ma configuration. Mais je n’ai pas pleinement évoqué certaines des différences les plus subtiles. Nous avons mis une durée de vie de 3 ans sur cette boîte. Sera sûr d'utiliser SAS la prochaine fois.
Stu Thompson
1
Oui, c'est quelque chose à considérer la prochaine fois. Les disques SAS proches que j'ai mentionnés ne fonctionnent pas nécessairement mieux que les disques SATA, mais il s’agit de choses comme la récupération d’erreur et les pannes de disque lorsque le système SAS est plus facile à gérer. J'ai un système de stockage SATA à 48 disques Sun Fire x4540 avec 6 contrôleurs, et les pannes de disque individuelles tendaient à verrouiller le serveur. Dure leçon.
ewwhite
10
Un bon ami à moi est dans le monde du stockage d'entreprise. Il a lu tout cela et a déclaré: "Ce gars a raison. Ce qui se passe, c'est que SATA est conçu pour dénoter un échec complet et qu'un incident intermittent va requery le bus sans activer le basculement. En général, cela ne se voit jamais car la plupart des configurations SATA sont un lecteur. "
Stu Thompson
@StuThompson Avez-vous depuis construit une nouvelle boîte avec SAS proche de la ligne? J'aimerais lire sur vos expériences. Votre question m'a déjà beaucoup aidé, je vais probablement construire une boîte similaire dans un proche avenir.
chrishiestand
1
@chrishiestand Non, je n'ai pas. J'ai quitté la compagnie en janvier 13; si j'étais resté, nous aurions construit la boîte de remplacement avec une ligne proche. Hélas, l’existence du NAS était trop étroitement liée au mien et les données ont été transférées vers le SAN d’un fournisseur de services.
Stu Thompson
17

Comment un seul disque peut-il faire tomber la matrice? La réponse est que cela ne devrait pas, mais cela dépend en quelque sorte de la cause de la panne. Si le disque devait mourir d'une manière qui se comporte, il ne devrait pas l'enlever. Mais il est possible que cela échoue de manière "périphérique" que le contrôleur ne peut pas gérer.

Êtes-vous naïf de penser que cela ne devrait pas arriver? Non je ne pense pas. Une telle carte RAID matérielle aurait dû traiter la plupart des problèmes.

Comment l'empêcher? Vous ne pouvez pas anticiper des cas étranges comme celui-ci. Cela fait partie du rôle d'administrateur système ... mais vous pouvez travailler sur des procédures de récupération pour l'empêcher d'avoir un impact sur votre entreprise. Le seul moyen d'essayer de résoudre ce problème maintenant est d'essayer une autre carte matérielle (probablement pas ce que vous voudriez faire) ou de remplacer vos disques par des disques SAS au lieu de disques SATA pour voir si le système SAS est plus robuste. Vous pouvez également contacter votre fournisseur de la carte RAID pour lui dire ce qui s'est passé et voir ce qu'il dit. ils sont, après tout, une entreprise censée être spécialisée dans la connaissance des tenants et aboutissants de l’électronique d’entraînement wonky. Ils auront peut-être davantage de conseils techniques sur le fonctionnement des disques, ainsi que sur leur fiabilité ... si vous pouvez vous adresser aux personnes appropriées.

Avez-vous manqué quelque chose? Si vous souhaitez vérifier que le lecteur présente une défaillance de boîtier périphérique, extrayez-le de la matrice. Le tableau sera dégradé mais vous ne devriez pas avoir plus de ralentissements et d’erreurs étranges (en dehors du statut de tableau dégradé). Vous dites qu’à l’heure actuelle, cela semble fonctionner correctement, mais si le lecteur a des erreurs de lecture, vous devez remplacer le lecteur tant que vous le pouvez. Les lecteurs de grande capacité peuvent parfois comporter des erreurs URE (meilleure raison de ne pas exécuter RAID 5, remarque latérale) qui n'apparaissent pas tant qu'un autre lecteur n'est pas en panne. Et si vous rencontrez un problème de casse provenant de ce lecteur, vous ne souhaitez pas que les données corrompues soient migrées vers les autres lecteurs de la matrice.

Bart Silverstrim
la source
1
Ouais ... nous avons déjà mis en place une nouvelle politique de remplacement du type "si les erreurs de lecture fluctuent, arrêtez-la" . Maintenant que j'y pense, nous avons eu un taux d'échec assez élevé sur ces disques. 4 sur 22 en 18 mois. Hmmm ....
Stu Thompson
2
4 disques en 18 mois? c’est tout à fait un taux… même si les disques ne sont pas conformes aux spécifications, il pourrait aussi y avoir un problème de refroidissement / circulation d’air à examiner. Ou peut-être quelque chose d'étrange avec le contrôleur. Quelques réflexions ... gardez un œil sur les bûches. Si vous parvenez à contacter n'importe qui dans 3Ware avec du travail réel sur les cartes et pas seulement avec un script, vous voudrez peut-être l'exécuter et voir ce qu'ils disent.
Bart Silverstrim
1
En fonction de l’ensemble où vous voyez les erreurs, vous pouvez également vérifier qu’il n’ya pas non plus de malus ou de marginaux avec les câbles. Si les erreurs semblent être concentrées sur le même port, il est possible que le nombre d'échecs ne soit pas un hasard.
Bart Silverstrim
4
Je viens de voir que les valeurs SMART de ce lecteur Bum fonctionnaient à environ 31 ° C, soit 4 ° C de plus que tous les autres lecteurs. Choses qui vous font aller hmmmm ....
Stu Thompson Le
2
@DanNeely: Sur 14 disques (11 données, 3 systèmes), il s'agissait du seul avec une température plus élevée. Je suis presque certain que le débit d'air était bon, mais je vérifierai explicitement demain.
Stu Thompson
10

Je ne suis pas un expert, mais je vais me lancer à l'aventure en raison de mon expérience des contrôleurs RAID et des matrices de stockage.

Les disques échouent de différentes manières. Malheureusement, les disques peuvent échouer ou être défectueux de manière à affecter gravement leurs performances mais le contrôleur RAID ne le considère pas comme une panne.

Si un disque tombe en panne de manière évidente, tout logiciel de contrôleur RAID devrait être assez efficace pour détecter le manque de réponse du disque, le supprimer du pool et déclencher les notifications. Cependant, je suppose que ce qui se passe ici est que le disque subit une défaillance inhabituelle qui, pour une raison quelconque, ne provoque pas de défaillance du côté du contrôleur. Par conséquent, lorsque le contrôleur effectue un vidage d'écriture ou une lecture à partir du disque affecté, le retour prend beaucoup de temps et, à son tour, suspend l'ensemble de l'opération IO et donc de la matrice. Pour une raison quelconque, cela ne suffit pas pour que le contrôleur RAID affiche "ah, le disque défaillant", probablement parce que les données finissent par revenir.

Mon conseil serait de remplacer immédiatement le disque en panne. Après cela, je jetterais un coup d’œil à la configuration de votre carte RAID (3ware, j’ai pensé qu’elles étaient plutôt bonnes) et je découvrirais ce qu’elle considère comme un disque en panne.

PS belle idée d'importer SMART dans les cactus.

croître
la source
Une fois que j'ai connecté les points, la première chose à faire était de retirer le disque de la matrice; le disque de rechange rempli. C'était la nuit dernière. Aujourd'hui, j'ai tiré le disque et RMA. Le disque offensant: geekomatic.ch/images/wd-re4-flux-read-error.jpg
Stu Thompson
L'une des raisons pour lesquelles je pense que chaque système essentiel à une mission a besoin d'une carte pour le nettoyage des données. Je l'ai vu trop souvent pour que cela compte, en particulier sur les baies SATA. Cependant, il est connu que même des disques SAS d'extrémité supérieure échouent sans déclencher le contrôleur.
Jens Ehrich
7

Vous avez besoin des fonctionnalités des périphériques de stockage de classe entreprise. Plus précisément, les disques d'entreprise WD RE 4 ont deux fonctionnalités nécessaires pour empêcher ce problème dans les matrices RAID. La première technologie énumérée ci-dessous empêche les vibrations harmoniques en rotation de provoquer une usure inutile des composants mécaniques du disque dur. La deuxième technologie est la cause de votre problème, le protocole SATA n’a pas cette fonctionnalité. Pour obtenir ces fonctionnalités, vous avez besoin de SAS et si vous insistez sur les disques SATA, vous pouvez acheter des cartes SAS vers SATA Interposer telles que le LSISS9252.

Technologie RAFF améliorée Le système électronique sophistiqué surveille le variateur et corrige les vibrations linéaires et rotationnelles en temps réel. Il en résulte une amélioration significative des performances dans les environnements soumis à de fortes vibrations par rapport à la génération précédente de disques.

Récupération sur erreur limitée dans le temps (TLER) spécifique au RAID Empêche les défaillances de lecteur causées par les processus étendus de récupération sur erreur de disque dur communs aux lecteurs de bureau.

http://en.wikipedia.org/wiki/Error_recovery_control#Overview

Aussi s'il vous plaît voir le lien ci-dessous:

http://en.wikipedia.org/wiki/Error_recovery_control#Raid_Controllers

Voir aussi: Western Digital TLER Document expliquant en détail le processus de récupération d'erreur. Prévention des erreurs de récupération des erreurs sur les disques durs Serial ATA WD Caviar RAID Edition:

http://www.3dfxzone.it/public/files/2579-001098.pdf

Lâche canon
la source
6

Juste une supposition: les disques durs sont configurés pour réessayer les erreurs de lecture plutôt que de signaler une erreur. Bien que ce comportement soit souhaitable dans un environnement de bureau, il est contre-productif dans un RAID (le contrôleur doit réécrire tout secteur dans lequel la lecture des autres disques échoue, de sorte que le lecteur puisse le remapper).

Simon Richter
la source
Très possible. Si tel est le cas, il ne fait aucun doute que ce n’est pas cool, car ils sont spécifiés en tant qu’unités «édition RAID». : |
Stu Thompson
Absolument pas cool, car ce paramètre est la définition même de "édition RAID" :)
Simon Richter
6

mon coup dans le noir:

  • le lecteur 7 échoue. il a des fenêtres d'échec où il n'est pas disponible.

  • le lecteur 8 contient également des erreurs plus "légères"; corrigé en réessayant.

  • RAID10 est généralement "un RAID0 de plusieurs paires RAID1", les lecteurs 7 et 8 sont-ils membres de la même paire?

Si tel est le cas, il semble que vous rencontriez le cas "ne devrait pas arriver" de défaillance de deux disques sur la même paire. presque la seule chose qui peut tuer un RAID10. Malheureusement, cela peut arriver si tous vos lecteurs proviennent du même lot d'expédition, ce qui les rend légèrement plus susceptibles de mourir simultanément.

J'imagine qu'en cas de panne du lecteur 7, le contrôleur a redirigé toutes les lectures sur le lecteur 8; toute tentative de nouvelle erreur entraînait de gros retards, provoquant une avalanche de tâches bloquées, ce qui réduisait considérablement les performances.

vous avez de la chance que le lecteur 8 ne semble pas encore mort, vous devriez donc pouvoir réparer sans dataloss.

Je commencerais par changer les deux lecteurs sans oublier de vérifier le câblage. Ceci pourrait être causé par une connexion lâche. Si vous ne le faites pas correctement, cela risque davantage de se produire dans les lecteurs adjacents. De plus, certaines cartes multiport ont plusieurs connecteurs à deux ports. Si les lecteurs 7 et 8 se trouvent sur le même, cela pourrait être la source de votre problème.

Javier
la source
3
Le lecteur 8 est la cause de l'interruption du service, je l'ai déjà tiré. Le lecteur 7, alors qu’il a perdu certains sektors, est dans cet état depuis un certain temps et fonctionne toujours bien. Non, ils sont dans des paires différentes. (C’était quelque chose que j’avais envisagé, ainsi qu’un désalignement possible de mes requêtes Cacti / SNMP.) La carte dispose de 16 ports, 4 câbles, 4 ports par câble dans un volet arrière. Si le problème concerne la carte, le câble ou le fond de panier, je le saurai assez tôt lors de l'insertion du lecteur de remplacement 8.
Stu Thompson
3

Les cartes intercalaires SATA sont une autre solution.

J'ai récemment connu exactement le même sort et j'ai trouvé ce fil. Le principe général est que le protocole SAS est mieux adapté au RAID que le SATA, car SATA manque de fonctionnalités. C'est pourquoi les mêmes disques physiques sont équipés de contrôleurs SAS, puis vendus sous le nom de Nearline SAS.

En cherchant plus loin, j'ai trouvé:

http://www.lsi.com/products/storagecomponents/Pages/LSISS9252.aspx

J'enquête sur la mise à niveau de l'un de mes stockages avec un lot de ceux-ci. Actuellement, la différence de prix entre 3 To SATA et SAS est de 400% (prix de la vanille, même marque, caractéristiques et magasin, Allemagne). Je ne peux évidemment pas dire si cette stratégie fonctionne bien, mais cela vaut la peine d'essayer.

Commentaires très bienvenus :-)

Korkman
la source
1
Eh bien belle théorie. Après avoir rassemblé certaines informations, seuls les fabricants de bacs de stockage peuvent intégrer ces cartes et leur ajout ne signifie pas nécessairement une meilleure gestion des erreurs.
korkman
2

J'ai vu un disque SATA avec des composants électroniques défectueux verrouiller solidement le démarrage du firmware d'un ordinateur Areca 12; il n'y avait aucun moyen d'accéder au BIOS, encore moins de démarrer la machine à partir de n'importe quel support jusqu'à ce que le disque dur incriminé soit détecté en extrayant des disques dans un fichier binaire. mode de recherche.

rackandboneman
la source