110 votes

Comment un seul disque d'une matrice RAID-10 SATA matérielle peut-il provoquer un arrêt brutal de toute la matrice ?

Prélude :

Je suis un génie du code qui assume de plus en plus les fonctions de SysAdmin pour ma petite entreprise. Mon code est notre produit, et nous fournissons de plus en plus la même application en tant que SaaS.

Il y a environ 18 mois, j'ai transféré nos serveurs d'un fournisseur centré sur l'hébergement haut de gamme vers un rack de base dans un centre de données de niveau IV. (Littéralement de l'autre côté de la rue.) Cela signifie que nous faisons beaucoup plus nous-mêmes - des choses comme la mise en réseau, le stockage et la surveillance.

Dans le cadre du grand déménagement, pour remplacer notre système de stockage direct loué auprès de la société d'hébergement, j'ai construit un NAS de 9 To à deux nœuds basé sur des châssis SuperMicro, des cartes RAID 3ware, Ubuntu 10.04, deux douzaines de disques SATA, DRBD et Tout est documenté avec amour dans trois articles de blog : Construction et test d'un nouveau NAS 9TB SATA RAID10 NFSv4 : Partie I , Partie II y Partie III .

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

Je n'aurais pas pu faire tout cela sans le génial boffins à l'adresse ServerFault . Ce fut une expérience amusante et éducative. Mon patron est heureux (nous avons économisé des tas de $$$) nos clients sont heureux (les coûts de stockage sont en baisse) Je suis heureux. (fun, fun, fun) .

Jusqu'à hier.

Coupure et récupération :

Peu après le déjeuner, nous avons commencé à recevoir des rapports faisant état de performances médiocres de notre application, un CMS de médias en streaming à la demande. À peu près au même moment, notre système de surveillance Cacti a envoyé une avalanche d'e-mails. L'une des alertes les plus révélatrices était un graphique d'iostat en attente.

enter image description here

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

Après m'être connecté aux serveurs d'application, aux clients NFS du NAS, j'ai confirmé qu'à peu près tout subissait des temps d'attente d'E/S très intermittents et incroyablement longs. Et une fois que j'ai sauté sur le nœud NAS primaire lui-même, les mêmes retards étaient évidents lorsque j'essayais de naviguer dans le système de fichiers de la matrice problématique.

Il est temps de passer à autre chose, ça s'est bien passé. En 20 minutes, tout a été confirmé comme étant de retour et fonctionnant parfaitement.

Post-mortem :

Après toute défaillance du système, j'effectue une autopsie pour déterminer la cause de la défaillance. La première chose que j'ai faite a été de me connecter à nouveau à la boîte et de commencer à examiner les journaux. Il était hors ligne, complètement. Il était temps d'aller au centre de données. Réinitialisation du matériel, sauvegarde et fonctionnement.

Sur /var/syslog J'ai trouvé cette entrée qui semble effrayante :

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]:

Je suis donc allé vérifier les graphiques Cacti pour les disques de la matrice. Ici, nous voyons que, oui, le disque 7 s'éloigne comme le dit le syslog. Mais nous voyons aussi que les SMART Read Erros du disque 8 fluctuent.

enter image description here

Il n'y a pas de messages sur le disque 8 dans le syslog. Ce qui est plus intéressant, c'est que les valeurs fluctuantes pour le disque 8 sont en corrélation directe avec les temps d'attente élevés des IO ! Mon interprétation est la suivante :

  • Le disque 8 présente un défaut matériel étrange qui entraîne des temps de fonctionnement longs et intermittents.
  • D'une manière ou d'une autre, ce problème sur le disque bloque la matrice entière.

Il existe peut-être une description plus précise ou plus correcte, mais le résultat net est que ce disque a un impact sur les performances de l'ensemble de la matrice.

La ou les questions

  • Comment un seul disque d'une matrice RAID-10 SATA matérielle peut-il provoquer un arrêt brutal de toute la matrice ?
  • Suis-je naïf de penser que la carte RAID aurait dû s'en occuper ?
  • Comment puis-je éviter qu'un seul disque défaillant ait un impact sur l'ensemble de la matrice ?
  • Est-ce que j'ai manqué quelque chose ?

11 votes

Une autre question bien écrite de votre part, +1. C'est toujours un plaisir de lire (mais malheureusement au-dessus de mon niveau pour en avoir une idée).

0 votes

J'ai vu des choses bizarres comme ça. J'ai eu au moins deux cas où un disque dur SATA défectueux empêchait le système de terminer l'étape POST au démarrage, le faisant simplement se bloquer. Je ne trouve donc pas inconcevable qu'un seul disque SATA (sur un contrôleur RAID 3ware) puisse causer toutes sortes de problèmes. Une réponse serait évidemment d'investir dans du "vrai" matériel de serveur, si possible : Des disques SAS et un contrôleur RAID digne de ce nom. Le plus souvent, le matériel serveur a une raison d'être. L'autre jour, nous avons mis à la retraite trois serveurs Dell sur le site d'un client, qui ont fonctionné 24 heures sur 24 et 7 jours sur 7 pendant 9 ans sans le moindre problème.

1 votes

@daff : Le budget d'achat sur cette installation, nous avons économisé un solide 66% d'un comparable de HP. Nous avons mis une durée de vie de un an sur cette boîte, il n'a pas besoin de durer plus longtemps. N'oubliez pas qu'il s'agit d'une boîte de stockage, les coûts s'effondrent d'année en année.

51voto

ewwhite Points 193555

Je déteste dire "n'utilisez pas de SATA" dans des environnements de production critiques, mais j'ai vu cette situation assez souvent. Les disques SATA ne sont généralement pas conçus pour le cycle de travail que vous décrivez, bien que vous ayez spécifié des lecteurs spécialement conçus pour un fonctionnement 24 heures sur 24, 7 jours sur 7 dans votre installation. D'après mon expérience, les disques SATA peuvent tomber en panne de manière imprévisible, affectant souvent l'ensemble de la matrice de stockage, même en utilisant le RAID 1+0, comme vous l'avez fait. Parfois, les disques tombent en panne d'une manière qui peut bloquer l'ensemble du bus. Une chose à noter est l'utilisation ou non d'expandeurs SAS dans votre configuration. Cela peut faire une différence dans la façon dont les disques restants sont affectés par une panne de disque.

Mais il aurait été plus judicieux d'y aller avec disques SAS midline/nearline (7200 RPM) par rapport à SATA. Il y a un petit supplément de prix par rapport à SATA, mais les disques fonctionneront/se briseront de manière plus prévisible. La correction et le signalement des erreurs dans l'interface/protocole SAS sont plus robustes que ceux de SATA. Ainsi, même avec des disques dont la mécanique est la même La différence de protocole SAS peut avoir empêché la douleur que vous avez ressentie lors de la panne de votre disque.

0 votes

En écrivant la question, j'ai juste connaissait mon choix de SAS allait se poser :/ Les IOPS et le débit sont bien dans les capacités de ma configuration. Mais je n'ai pas bien compris certaines des différences les plus subtiles. Nous avons donné une durée de vie de 3 ans à cette boîte. Je m'assurerai d'utiliser SAS la prochaine fois.

1 votes

Oui, c'est quelque chose à considérer la prochaine fois. Les disques SAS nearline que j'ai mentionnés ne sont pas nécessairement plus performants que les disques SATA, mais ce sont des choses comme la récupération des erreurs et les pannes de disque où le SAS est plus facile à gérer. J'ai un système de stockage SATA Sun Fire x4540 à 48 disques avec 6 contrôleurs, et les défaillances de disques individuels avaient tendance à bloquer le serveur. Une leçon difficile.

11 votes

Un de mes bons amis travaille dans le domaine du stockage d'entreprise. Il a lu tout cela et dit "ce type a raison. ce qui se passe, c'est que le SATA est conçu pour indiquer une défaillance complète et une défaillance intermittente requalifiera le bus sans mettre en œuvre le basculement. typiquement, cela n'est jamais vu puisque la plupart des configurations SATA ne comportent qu'un seul disque".

16voto

Bart Silverstrim Points 31022

Comment un seul disque peut faire tomber la matrice ? La réponse est que cela ne devrait pas, mais cela dépend en quelque sorte de ce qui cause la panne. Si le disque devait mourir d'une manière qui se comporte bien, cela ne devrait pas l'arrêter. Mais il est possible qu'il tombe en panne d'une manière "marginale" que le contrôleur ne peut pas gérer.

Es-tu naïf pour penser que ça ne devrait pas arriver ? Non, je ne le pense pas. Une carte RAID matérielle comme celle-ci aurait dû régler la plupart des problèmes.

Comment l'éviter ? Vous ne pouvez pas anticiper les cas limites bizarres comme celui-ci. Cela fait partie du métier d'administrateur système... mais vous pouvez travailler sur des procédures de récupération pour éviter que cela n'ait un impact sur votre activité. La seule façon d'essayer de résoudre ce problème pour le moment est d'essayer une autre carte matérielle (ce qui n'est probablement pas ce que vous voulez faire) ou de remplacer vos disques par des disques SAS au lieu de SATA pour voir si SAS est plus robuste. Vous pouvez également contacter le fournisseur de la carte RAID, lui expliquer ce qui s'est passé et voir ce qu'il en dit. Après tout, c'est une société qui est censée être spécialisée dans la connaissance des tenants et aboutissants de l'électronique des disques durs. Il est possible qu'ils aient des conseils plus techniques sur le fonctionnement des disques et sur leur fiabilité... si vous parvenez à trouver les bonnes personnes à qui parler.

Vous avez raté quelque chose ? Si vous voulez vérifier que le disque a une défaillance de cas limite, retirez-le de la matrice. La matrice sera dégradée mais vous ne devriez plus avoir de ralentissements et d'erreurs bizarres (en dehors de l'état dégradé de la matrice). Vous dites que pour l'instant il semble fonctionner correctement, mais s'il a des erreurs de lecture de disque, vous devriez remplacer le disque tant que vous le pouvez. Les disques de grande capacité peuvent parfois présenter des erreurs URE (la meilleure raison de ne pas utiliser le RAID 5, note complémentaire) qui n'apparaissent que lorsqu'un autre disque est en panne. Et si vous rencontrez des problèmes avec ce disque, vous ne voulez pas que les données corrompues migrent vers les autres disques de la matrice.

1 votes

Oui...nous avons déjà mis en place une nouvelle politique de remplacement comme "si les erreurs de lecture fluctuent, il faut le retirer". . Maintenant que j'y pense, nous avons eu un taux de panne assez élevé sur ces disques. 4 sur 22 en 18 mois. Hmmm....

2 votes

4 disques en 18 mois ? c'est un sacré rythme... Bien que cela puisse être dû au fait que les disques ne sont pas conformes aux spécifications, il pourrait y avoir un problème de refroidissement/de flux d'air à examiner. Ou peut-être quelque chose d'étrange avec le contrôleur. Juste quelques idées... gardez un œil sur les journaux. Si vous êtes en mesure de contacter quelqu'un dans 3Ware avec un travail réel sur les cartes et pas seulement un script, vous pourriez vouloir l'exécuter par eux et voir ce qu'ils disent.

1 votes

En fonction de l'endroit où vous rencontrez les erreurs, vous pouvez également vérifier que les câbles n'ont pas quelque chose d'anormal ou de marginal. Si les erreurs semblent être concentrées sur le même port, il se peut que les pannes ne soient pas dues à une coïncidence.

10voto

growse Points 7740

Je ne suis pas un expert, mais je vais tenter de me faire une idée en me basant sur mon expérience des contrôleurs RAID et des matrices de stockage.

Les disques tombent en panne de différentes manières. Malheureusement, les disques peuvent tomber en panne, ou être défectueux, d'une manière qui affecte sérieusement leurs performances mais que le contrôleur RAID ne considère pas comme une panne.

Si un disque tombe en panne de manière évidente, tout logiciel de contrôleur RAID devrait être capable de détecter l'absence de réponse du disque, de le retirer du pool et d'envoyer des notifications. Cependant, je pense que ce qui se passe ici est que le disque souffre d'une défaillance inhabituelle qui, pour une raison quelconque, ne déclenche pas de défaillance du côté du contrôleur. Par conséquent, lorsque le contrôleur effectue une écriture ou une lecture à partir du disque concerné, il met beaucoup de temps à revenir, ce qui a pour effet de suspendre l'ensemble des opérations d'E/S et donc la matrice. Pour une raison quelconque, cela n'est pas suffisant pour que le contrôleur RAID dise "ah, disque défaillant", probablement parce que les données finissent par revenir.

Mon conseil serait de remplacer immédiatement le disque défaillant. Après cela, je jetterais un coup d'œil à la configuration de votre carte RAID (c'est 3ware, je pensais qu'ils étaient plutôt bons) et je trouverais ce qu'elle considère comme un disque défectueux.

P.S. Bonne idée d'importer SMART dans les cactus.

0 votes

Une fois que j'ai fait le lien entre les deux, la première chose que j'ai faite a été de retirer le disque de la matrice ; le disque de secours a été remplacé. C'était la nuit dernière. Aujourd'hui, j'ai retiré le disque et je l'ai fait réparer. Le disque incriminé : geekomatic.ch/images/wd-re4-flux-read-error.jpg

0 votes

C'est l'une des raisons pour lesquelles je pense que chaque système critique doit avoir une carte qui permet de nettoyer les données. J'ai vu cela trop souvent pour pouvoir le compter, surtout sur les matrices SATA, mais même les disques SAS haut de gamme sont connus pour tomber en panne sans que le contrôleur ne se déclenche.

6voto

Simon Richter Points 3161

Juste une supposition : les disques durs sont configurés pour réessayer en cas d'erreur 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 (où le contrôleur doit réécrire tout secteur dont la lecture échoue sur les autres disques, afin que le disque puisse le remapper).

0 votes

C'est très possible. Si c'est le cas, ce n'est pas cool car ces unités sont conçues pour être des "éditions RAID". :|

0 votes

Absolument pas cool, car ce paramètre est la définition même de "l'édition RAID" :)

6voto

SteveCl Points 1655

Mon coup dans le noir :

  • Le disque 7 est en panne. Il a des fenêtres de panne où il n'est pas disponible.

  • Le lecteur 8 présente également quelques erreurs "légères", corrigées 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 c'est le cas, alors il semble que vous ayez atteint le cas " qui ne devrait pas arriver " de défaillance de deux disques sur la même paire. c'est presque la seule chose qui peut tuer un RAID10. malheureusement, cela peut arriver si tous vos disques proviennent du même lot d'expédition, donc ils sont légèrement plus susceptibles de mourir simultanément.

Je suppose que lors d'une panne du lecteur 7, le contrôleur a redirigé toutes les lectures vers le lecteur 8, donc toute erreur-réponse a provoqué de gros retards qui ont provoqué une avalanche de tâches gelées, tuant les performances pendant un moment.

vous avez de la chance que le lecteur 8 ne semble pas encore être mort, donc vous devriez être en mesure de réparer sans perte de données.

Je commencerais par changer les deux lecteurs, et n'oubliez pas de vérifier le câblage. une connexion lâche peut causer ce problème, et si elle n'est pas acheminée fermement, il est plus probable que cela se produise sur des lecteurs adjacents. également, certaines cartes multiport ont plusieurs connecteurs à deux ports, si le lecteur 7 et le lecteur 8 sont sur le même, cela pourrait être la source de votre problème.

3 votes

Le lecteur 8 est la cause de l'interruption de service, je l'ai déjà retiré. Le disque 7, bien qu'il ait perdu quelques sektors, est dans cet état depuis un certain temps et fonctionne toujours bien. Non, les disques sont dans des paires différentes. (C'est quelque chose que j'ai envisagé, ainsi qu'un éventuel désalignement de mes requêtes Cacti/SNMP). La carte a 16 ports, 4 câbles, 4 ports par câble dans un panneau arrière. Si le problème vient de la carte, du câble ou du panneau arrière, je le saurai bien assez tôt lorsque j'insérerai le lecteur 8 de remplacement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X