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.
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.
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.
2 votes
3Ware n'est pas mauvais, en soi. J'ai déjà eu des problèmes de comportement avec une carte PERC sur un système Dell, qui est censé être un matériel de serveur décent. La carte 3Ware devrait avoir une batterie intégrée et d'autres éléments, donc je ne me sentirais pas trop mal à propos de cette décision. D'accord, vous pourriez être critiqué pour la décision SAS contre SATA, mais vous ne perdez pas de données et d'après votre question, vous semblez avoir des sauvegardes et une surveillance en place, donc vous vous en sortez plutôt bien :-)
1 votes
@StuThompson : bien sûr, il est moins cher de faire un budget et d'utiliser du matériel grand public, et le plus souvent, il fonctionnera bien, surtout lorsque, comme dans votre cas, il y a un bon concept d'AP derrière. Mais il y a des cas, comme vous l'avez montré, où le matériel grand public ne suffit pas lorsque de mauvaises choses se produisent. Je peux vous garantir qu'un seul disque SAS défectueux sur un bon contrôleur PERC (Dell) ou SmartArray (HP) ne vous aurait causé aucun problème autre qu'un appel au support pour obtenir un disque de remplacement. Nous avons eu beaucoup de disques SAS morts au fil des ans en production, mais jamais ils n'ont mis un serveur hors service.
6 votes
La plupart des disques SATA ne prennent pas en charge la fonction TLER (Time Limited Error Recovery). Lorsqu'un disque SATA typique rencontre un problème physique, il envoie un message au sous-système du disque (qui fait généralement ce qu'on lui demande) : "Attendez pendant que je travaille sur ce problème". Le disque passe alors 10 à 30 secondes (en général) sur chaque erreur qu'il trouve, jusqu'à ce qu'il atteigne un seuil "Je suis mort". Les disques SAS et SATA qui prennent en charge TLER sont configurés par leur HBA pour indiquer au sous-système du disque "J'ai un problème, que dois-je faire ?" afin que le HBA puisse décider de l'action appropriée presque immédiatement. (Simplifié par souci de concision)
1 votes
@ChrisS : Les disques que j'ai sélectionnés pour la configuration RAID, WD RE4 (WD2003FYYS), prennent en charge TLER.
1 votes
Curieux : vous mentionnez DRBD. Les services étaient-ils connectés à deux unités NAS différentes ? Est-ce qu'un détachement/déconnexion DRBD aurait réussi ? Peut-être qu'un moyen de connecter le contrôle des performances à la gestion de DRBD serait bien.
0 votes
@korkman ...C'est ce qui s'est effectivement passé manuellement. L'automatisation d'un tel comportement ouvre une toute nouvelle boîte de Pandore. Les coûts en temps et en effort commenceraient à l'emporter sur l'obtention d'un matériel plus "correct", comme SAS.