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.
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/syslog
J'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.
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?
la source
Réponses:
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.
la source
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.
la source
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.
la source
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
la source
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).
la source
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.
la source
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 :-)
la source
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.
la source