Tant que les SSD n’ont pas colonisé le marché du stockage jusqu’aux plus grosses capacités, nous continuerons à utiliser les disques durs et à souffrir de leurs inconvénients en termes de fiabilité. En effet ces pièces mécaniques de précision, et dignes des usinages d’horlogerie, ont la fâcheuse tendance à tomber en panne et à enfermer avec elles toutes nos données pour toujours. La question n’est pas de savoir si un disque dur va tomber en panne mais plutôt d’estimer sa date limite de remplacement avant de rentrer dans la « zone rouge », celle où il peut nous péter entre les mains et nous mettre dans de beaux draps.

Sommaire

Les méthodes de prise d’information

Pour introduire cet article, je vais tenter de dresser un bref horizon des techniques de prise d’information sur l’état de santé d’un disque dur.

Le contrôle visuel et auditif

Il faut bien commencer par le début. N’espérez rien de ce type de tests si ce n’est dénicher un morceau de post-il au font d’un rack SAS provoquant des erreurs aléatoires (déjà vu) ou entendre un disque dur gratter si atrocement que vous le remplacerez par pitié autant que par conscience professionnelle (déjà vu aussi).

En clair c’est pas mal de vérifier le bon état de ses composants matériels, comme les connecteurs SATA/SAS qui sont fragiles.

Le paramètre SMART du BIOS

Certains d’entre vous ont peut-être remarqué que les BIOS de serveurs et desktops proposent souvent un réglage minimaliste nommé « SMART » qui est censé prévenir lorsque l’état de santé d’un disque dur justifie son remplacement.

La plupart du temps, l’avertissement s’affichera alors qu’il est déjà trop tard et que vos données sont irrécupérables. Le cas échéant, cette option va simplement empêcher le boot de l’ordinateur en affichant à l’écran un message d’erreur qui impose au mieux d’appuyer sur une touche de clavier, et au pire d’éteindre la machine pour remplacer le disque dur.

De plus, en prenant l’exemple d’un serveur racké en datacenter, doté ni d’écran ni de clavier, cette option est non seulement inutile, mais en plus elle vous fera perdre du temps. Vous l’aurez compris, il vaut mieux la laisser inactive et passer à autre chose.

SMART, cette technologie à mauvaise réputation

SMART, pour Self-Monitoring, Analysis and Reporting Technology est une technologie qui permet d’interroger un disque dur sur son propre état de santé, et d’avoir accès à des données brutes sur l’utilisation du disque dur directement issues de la carte contrôleur de ce dernier. Cette technologie est apparue dans les années 1990, et pour ma part j’ai découvert ce qu’on pouvait en faire dans un Linux Journal de 2004.

Indicateur de disque dur

Cette technologie a mauvaise réputation chez les administrateurs systèmes, qui sont nombreux à penser que les attributs SMART n’apportent aucune information fiable qui permette de prédire avec certitude la panne d’un disque dur.

J’ignore ce qui a largement diffusé ces réticences. C’est peut-être la mauvaise publicité faite par le réglage « SMART » du BIOS, l’utilisation d’un mauvais logiciel de monitoring, ou encore la méconnaissance des indicateurs SMART. Pour faire court, je pense d’une manière générale que SMART ne peut pas être fiable à 100%, ne serait-ce que parce qu’il existe des pannes brusques et imprévisibles qui peuvent intervenir lorsqu’un composant électrique tombe en panne, ou qu’un problème mécanique engendre des dégâts irréversibles sur le plateau mécanique, comme l’explique très bien la page wikipédia. Néanmoins, limiter sa compréhension de SMART à ce constat évident est à mon sens une erreur, et je suis absolument convaincu qu’un usage sérieux et raisonné de cette technologie peut rendre de fiers services et même faciliter la maintenance.

A tous les sceptiques : si vous vous êtes égaré sur cette page et que sa lecture vous apporte quelque chose, n’hésitez pas à m’en faire part en commentaire.

smartmontools, la suite de monitoring à connaître

Présentation

A mon sens il n’existe qu’un seul logiciel digne d’intérêt pour du monitoring smart, c’est smartmontools. On trouve probablement plus joli ou plus ergonomique, mais quand il s’agit d’interroger les attributs SMART et de les suivre dans le temps, c’est la référence du monde GNU/Linux. Et pas seulement puisqu’on trouve un installateur Windows pour une utilisation dans DOS ou Powershell.

Il existe des logiciels multifonction capables de lire les informations SMART comme par exemple hdtune sous Windows. Pour prendre cet exemple, ce logiciel n’est pas abouti pour l’usage que je développe dans cet article.

Interface compatible

Pour avoir accès aux données SMART du disque dur, ce dernier doit être branché sur un contrôleur de disques durs qui peut être soit inclus dans la carte mère, soit en carte fille.

Les contrôleurs de disques prenant en charge le RAID matériel « dupent » le système d’exploitation en ne lui présentant qu’un volume constitué de plusieurs disques durs. On ne peut donc pas interroger les disques un par un. Certaines cartes RAID sont fournies avec un utilitaire propriétaire qui permet d’accéder à des informations détaillées sur les disques durs.

Les convertisseurs SATA-USB empêchent souvent la lecture des attributs SMART, quoi que les modèles les plus récents le permettent parfois.

Activation de SMART sur le disque dur

Plutôt logique, pour utiliser SMART il faut que la fonctionnalité soit activée sur le disque dur. Il arrive parfois que la lecture des attributs SMART soit impossible sur un disque dur même récent, pour cette raison. Pour le savoir, voici la commande qui affiche des informations basiques sur le disque dur (smartmontools doit être installé).

Les lignes SMART support is: vous indiquent si le disque dur est compatible, et si elle est activée.

Une petite parenthèse : le numéro de série du disque dur est également donné par cette commande. C’est pratique en cas de remplacement, puisque le numéro de série est également imprimé sur l’étiquette. Vous pouvez ainsi vous assurer que vous remplacez le bon disque, ce qui n’est pas toujours évidant dans une baie de 12 unités 3,5″.

Dans le cas de figure où SMART n’est pas activé sur le disque dur que vous souhaitez monitorer, voici comment l’activer.

Lecture des attributs

Plus verbeux que la commande précédente, voici comment faire cracher au disque dur tout ce qu’il sait. On y retrouve la même en-tête avec le numéro de série etc.

La sortie texte ressemble à cela :

Cette sortie est découpée en différents paragraphes que voici :

  • START OF INFORMATION SECTION : ce sont des informations statiques qui pourraient presque être toutes écrites sur l’étiquette du disque dur.
  • START OF READ SMART DATA SECTION : on rentre dans les informations qui évoluent avec l’utilisation et l’usure du disque dur.
    • General SMART Values : spécificités du disque dur avec sa gestion de SMART, durée des tests, code de retour du précédent test
    • Vendor Specific SMART Attributes with Thresholds : c’est la partie la plus intéressante du fichier avec une liste d’attributs barbares du style Reallocated_Sector_Ct et de valeurs tout aussi indéchiffrables au premier abord. Ces valeurs peuvent changer à chaque interrogation du disque dur et ne nécessitent pas d’autre scan pour être actualisées.
    • ATA Error Count (ou No Errors Logged): liste non exhaustive des dernières erreurs rencontrées sur le bus ATA. Un scan complet permet parfois d’en détecter.
    • SMART Self-test log structure : liste des scans SMART effectués ainsi que leur type (long ou court). En cas d’erreur de secteur (illisible ou impossible à écrire), son adresse LBA est donnée, ce qui permet éventuellement de forcer la ré allocation du secteur avec une commande hdparm bien placée.
    • SMART Selective self-test log data : je ne me suis jamais intéressé à cette partie.

Cette commande affiche donc des informations qui ne varient jamais ou presque (START OF INFORMATION SECTION), des informations mises à jour automatiquement et qu’il suffit d’interroger (Vendor Specific SMART Attributes with Thresholds), et des erreurs détectées sur des secteurs défectueux après un scan (ATA Error Count).

L’interprétation des informations

Les informations statiques du disque dur

Cette zone mérite son lot d’explications car on peut ne pas comprendre tout de suite en quoi obtenir le numéro de série ou d’autres codes bizarres sur le disque dur est utile au quotidien.

  • Model Family et Device Model : vous identifiez le modèle précis du disque dur. Cela vous permet d’en racheter d’autres de la même référence, ce qui est sympathique si vous arrivez à cours de spares sur votre joli RAID vieux de quelques années. En outre, cette référence est également présente sur harddrivebenchmark.net et vous pouvez donc comparer les performances théoriques de votre matériel par rapport à d’autres modèles du commerces. Si vous voulez gagner en IOPS sur votre application, cela peut donner une idée du gain possible.
  • Serial Number : ce code unique affecté au disque dur est pratique pour vérifier que vous avez bien remplacé le bon disque dur si vous avez un doute. Je l’utilise même pour effectuer mes requêtes de SAV auprès des constructeurs de disques durs alors même que le disque dur est encore en activité.
  • Firmware version : le numéro de firmware est imprimé sur l’étiquette du disque dur mais si vous le mettez à jour, alors vous aurez besoin de l’interroger par un logiciel. Certaines versions particulières de firmwares sont buggées et à éviter. Pour constituer un RAID il est conseille d’utiliser la même version pour tous les membres de la grappe.
  • Sector Size : votre disque dur utilise le format avancé (AF) avec des secteurs de 4 Ko ? C’est ici que vous pouvez le voir.
  • SATA Version : lorsque plusieurs générations de disques durs sont utilisés en production, on peut ne plus savoir quel version SATA est utilisée par le disque dur. Là vous avez l’info.
  • SMART support : pour contrôler que la technologie SMART est bien disponible et activée pour le disque dur.

Les informations SMART générales

Je n’utilise personnellement pas beaucoup cette partie donc je vais être bref. On a quelques paramètres utiles pour savoir comment le disque dur réagit face aux commandes SMART, et notamment la durée théorique d’un scan long et d’un scan court. De  plus peut voir les capacités SMART permises par le disque dur.

Les attributs SMART

On rentre dans la partie « Vendor Specific SMART Attributes with Thresholds », c’est là que les choses deviennent intéressantes. Comme cela est indiqué dans la langue de Shakespeare, les attributs SMART sont dépendants du constructeur. Cela signifie qu’ils peuvent avoir des noms différents mais également des significations différentes selon les valeurs qu’ils prennent. De quoi décourager de prime abord.

Voici des précisions sur ces indicateurs et leur interprétation. Je vais les traiter par ordre d’intérêt personnel.

Power_On_Hours

Plutôt simple, c’est le nombre d’heures que le disque dur a au compteur. Dans d’autres domaines techniques comme l’aviation, la moto cross ou la mécanique agricole, tout le monde adapte son plan de maintenance en fonction du nombre d’heures de fonctionnement. En informatique il faut croire que les habitudes sont différentes puisque nombreux sont ceux qui ne tiennent même pas compte de cette valeur.

Pour moi c’est le paramètre par excellence à surveiller, c’est une valeur factuelle, votre disque dur est âgé ou il ne l’est pas, fin de l’interprétation. Vous saurez ainsi où en est le disque dur dans sa vie, par exemple un disque dur âgé va être plus enclin à baisser en performances ou à générer des pannes de secteurs défectueux ou d’erreurs de ré allocation. Néanmoins le ce chiffre est à resituer dans votre propre contexte d’utilisation du disque dur, car une forte sollicitation est de nature à précipiter les pannes. A l’inverse on verra plus souvent des disques durs âgés s’ils sont restés allumés sans endurer de fortes charges, comme c’est le cas par exemple sur des routeurs à base PC.

Par conséquent les trois paragraphes qui suivent sont calqués sur mon utilisation professionnelle des disques durs, que je peux tenter de résumer ainsi : une écriture annuelle de moins de 5 To par To de système de fichier, accompagnée de nombreuses lectures et calculs de tailles de répertoires. Mes chiffres ne peuvent pas être transposés tels quels pour votre cas de figure puisque vous avez à priori une utilisation différente.

Je constate que les disques durs peu fiables cassent autour de 10 000 heures (ou un peu plus d’un an). C’est le cas par exemple du Seagate Momentus 7200.4 250 Go (pour ordinateurs portables à l’origine) ou du WD Caviar Green 3 To qui ne supporte pas une utilisation non-stop. Si votre disque dur rend l’âme avant cette durée d’utilisation, c’est pas de bol, vous êtes tombé sur un mauvais lot ou un mauvais produit.

Le chiffre de 30 000 heures (trois ans et demi) est une valeur tournant dans mon esprit. Les disques durs de qualité normale auront cassé avant cette valeur, que ce soit dans les gammes grand public ou entreprise. Honnêtement, si vous êtes arrivé jusque là sans remplacer votre disque, je pousserai volontiers à 40 000 heures puisque votre modèle a déjà prouvé son endurance. J’ai déjà poussé aussi loin les modèles suivants : Hitachi Deskstar 3 To 5400rpm, Hitachi Deskstar 4 To 7200rpm, Seagate Barracuda XT 2 To 7200rpm, Hitachi Ultrastar 2 To, Western Digital Caviar 80 Go IDE, et quelques autres.

Le chiffre de 70 000 heures, c’est la valeur la plus élevée que j’ai jamais obtenue. On parle là de 8 ans d’utilisation 24h/24, c’est du délire. Bon nombre d’entre vous considérerons que je suis inconscient d’aller aussi loin, mais rassurez vous je « finis » des disques durs déjà âgés dans des applications non critiques ou personnelles. J’ai déjà vu des disques durs « Rambo » dans les gammes suivantes : SCSI 36 Go gamme inconnue (compteur bloqué à 65535 heures), Seagate Barracuda ES et Hitachi Ultrastar 1 To. Si vous arrivez aussi loin on peut dire que vous êtes fidèle au matériel qui est devenu, accessoirement, obsolète !

Ces quelques anecdotes vous aideront peut-être à définir une politique de remplacement, selon votre usage et le risque que vous souhaitez encourir. Pour du sans soucis ou presque, il faudrait remplacer ses disques avant 15 000 heures, dans des gammes réputées pour leur fiabilité. Ensuite plus on va monter, plus on va faire croître le taux de panne. Mais cela n’est peut-être pas gênant si vous avez opté pour un système de redondance de pannes comme le RAID5, RAID6, RAIDZ, unRaid etc.

Start_Stop_Count

Nombre de fois que le disque dur a été allumé lors de la mise en marche de l’ordinateur. A chaque allumage, le disque dur met ses plateaux en rotation, s’initialise, monte en température etc. Les phases d’extinction-allumages sont plutôt stressantes pour un disque dur donc il vaut mieux les éviter quand on peut. En datacenter, je finis mes disques durs alors qu’ils ont moins d’une cinquantaine d’allumages au compteur. Il faut dire qu’avec des uptimes de plus de 800 jours ça va assez vite. En usage personnel, cette valeur croit beaucoup plus, autour d’une fois par jour ou plus.

Reallocated_Sector_Ct

On attaque dans les signes précurseurs de risques de pannes. Il s’agit du nombre de secteurs ré alloués automatiquement par votre disque dur car un ou plusieurs de ses secteurs étaient HS. C’est un fonctionnement totalement normal du disque dur et prévu par les constructeurs pour augmenter la durée de vie. Vous pouvez commencer à vous inquiéter si cette valeur atteint plusieurs centaines de secteurs réalloués, ou si cette valeur augmente dans le temps. Dans ce cas de figure, vous risquez fort d’arriver à court de secteurs de rechange et les pannes vont commencer à apparaître.

Mon expérience la plus intéressante concernant ce paramètre concerne le disque système d’un serveur web qui atteignait environ 300 secteurs ré alloués, et la valeur augmentait tout doucement. Je l’ai donc changé tout en laissant le disque dur connecté dans le serveur, mais non utilisé. Six mois plus tard et après 700 secteurs ré alloués, le disque dur a définitivement cassé. J’ai donc pu anticiper une opération de maintenance sur 6 mois. C’est plus confortable que de changer du matériel dans la hâte, la nuit ou en période de vacances.

Current_Pending_Sector

Là c’est pas bon du tout, votre disque dur a un secteur sur lequel il est impossible d’écrire, et il est en attente de ré allocation, probablement au cours du prochain essai d’écriture par le système d’exploitation. Lorsque cela arrive, le système d’exploitation peut commencer à râler avec des messages barbares sur l’interface SATA/SAS ou des erreurs de lecture-écriture de fichiers.

C’est un problème qui m’arrive très fréquemment par exemple sur des WD Caviar Green 3 To, quoi que cela semble s’améliorer un peu depuis que j’ai désactivé le parcage des têtes (description ci-après).

Lorsque cela m’arrive, je tente dans un premier temps une ré allocation forcée du secteur défectueux en détectant l’adresse LBA du premier secteur problématique grâce à un scan SMART long. Ensuite j’utilise hdparm pour forcer la réallocation. C’est une commande à ne pas mettre entre toutes les mains, ne l’essayez pas si vous n’êtes pas sur de vous, et si vous l’essayez prenez vos responsabilités.

C’est une opération super barbare et plutôt risquée qui court-circuite le système de fichiers pour venir écrire dans le disque dur. A l’issue de l’opération le système de fichiers sera forcément corrompu puisqu’un secteur aura été écrasé. Un fsck n’est pas du luxe.

Dans un second temps, je change le disque dur car tous mes essais de ré allocations ne durent jamais bien longtemps et je sais comment ça finis.

Temperature_Celsius

Il s’agit de la température du disque dur, une autre valeur factuelle. Utile pour tester le flux d’air d’un châssis et vérifier que les disques durs sont à bonne température (entre 30°C et 40°C). Selon un rapport Google, ce n’est pas tant la température élevée qui provoque les pannes, plutôt que les différences de températures. En clair : peu importe la température pourvu qu’elle soit stable, et pas « anormalement » basse ou élevée (inférieure à 15°C ou supérieure à 50°C).

La vitesse de rotation du disque dur influe sensiblement sur son dégagement de chaleur. C’est pour cette raison notamment que les WD Velociraptor 10 000rpm sont vendus à l’intérieur d’un radiateur IcePack en 3,5″. On gagne en inertie donc on stabilise la température, pour finalement gagner en fiabilité. Le démontage de l’IcePack met un terme à la garantie.

Load_Cycle_Count

Cet indicateur est moins évident à interpréter que les précédents. Il s’agit du nombre de fois où la tête de lecture du disque dur est parkée. Un disque dur de serveur n’est jamais censé parquer ses têtes de lectures afin de faire face aux IO avec un minimum de latence. Mais dans le cas de disques durs de faible consommation pour ordinateurs portables ou postes de travail, les firmwares sont prévus pour parquer les têtes dès qu’ils le peuvent, et éventuellement de réduire la vitesse de rotation, afin de limiter la consommation électrique. Chaque disque dur possède un capital de parcage de têtes variable, et quand on atteint la dizaine de milliers de parcages, ce n’est pas bon signe pour la longévité.

Certains disques durs de chez Western Digital sont connus pour faire monter ce paramètre en flèche, et c’est pourquoi ils ont créé un outil DOS wdidle3.exe dont on trouve un équivalent open-source idle3-tools. Le réglage du paramètre de firmware TLER permet de corriger le problème. Pour ma part, je désactive le parcage dès que je le peux.

G-Sense_Error_Rate

On rentre là dans le folklore des paramètres SMART, cet attribut est lié à la technologie G Force de chez Seagate qui détecte les chutes, et doit normalement parquer les têtes pour éviter une collision avec les plateaux. Lorsque un choc est détecté, une trace est laissée dans cet attribut. On trouve G Force principalement dans les disques durs durs 2,5″ pour portables, mais aussi dans certains modèles 3,5″ haut de gamme.

Lorsque le disque dur est neuf, la valeur doit être de zéro. Une valeur non nulle n’indique pas forcément que le disque dur est en mauvais état, mais simplement que le dispositif G Force s’est activé. Une valeur qui augmenterait serait théoriquement signe de chocs sur l’ordinateur ou de vibrations néfastes.

High_Fly_Writes

Ce paramètre indique si les têtes de lecture du disque dur ont été détectées anormalement hautes par rapport à la surface magnétique. Théoriquement le processus d’écriture doit alors s’interrompre pour reprendre avec une position normale des têtes. Ce paramètre va augmenter au cours de situations à risques : lors de chocs ou de vibrations. Il n’indique pas si le disque dur a souffert ou non, mais simplement qu’il a été soumis à des conditions non optimales.

Autres attributs

Un bon nombre d’attributs n’a pas été traité dans cet article. Vous pouvez vous référer à l’article Wikipédia qui en recense pas mal avec des explications succinctes. Si vous pensez qu’un autre attribut mérite sa place ici, manifestez-vous en commentaire et je tenterai de le documenter.

La politique de maintenance

Politique de remplacement

Les informations citées ci-dessus sont le résultat de mon expérience professionnelle, qui comprend notamment la surveillance d’un ensemble de 50 à 100 disques durs selon les périodes. En dehors des réflexes bien utiles pour comprendre l’état de santé d’un disque dur, il est intéressant de tirer des conclusions pour choisir un matériel de remplacement le plus fiable possible.

Le haut de gamme en interface SAS

On n’a jamais blâmé un DSI parce qu’il dote ses serveurs de disques durs « high end » à interface SAS. D’une manière générale je crois qu’on peut dire que c‘est ce qui se fait de mieux en terme de longévité. Ce sont généralement des disques durs au format 2,5″ mais plus épais que le format ordinateur portable, dont la haute vitesse de rotation (10 000 ou 15 000 tr/min) leur confèrent de très bonnes performances à la fois en débits pointe qu’en réactivité. Ils sont parfaitement adaptés aux utilisations intensives et aux grappes RAID. Ce qui vient gâter ce portrait flatteur, c’est le coût d’acquisition très élevé ainsi que les petites capacités de stockage.

A mon humble avis, il existe aujourd’hui un bon plan concernant cette gamme de disques durs, c’est la gamme très particulière « Velociraptor » de Western Digital. Ces disques durs reprennent toutes les caractéristiques des disques durs SAS, sauf qu’ils sont en interface SATA et bien moins chers. Je les utilise pour des stations de travail et des serveurs. Malheureusement ce sont des produits en voie de disparition chez les fournisseurs car le grand public ne sait pas apprécier leurs excellentes performances en lectures-écritures aléatoires, et leurs préfèrent des disques durs à plus grosse densité de stockage et plus grand débit de points.

Les gammes « performances » en interface SATA

To be continued

Politique de maintenance

Nous avons passé en revue un certain nombre d’informations issues de la technologie SMART, en espérant que cela puisse vous servir. Attention néanmoins à l’excès de confiance qui risque de produire si vous interprétez les données au pied de la lettre. Disons que vous pourrez espérer détecter plus de la moitié des pannes se produisant sous votre surveillance, mais pour l’autre moitié il ne faut jamais oublier que votre disque dur peut vous lâcher sans prévenir.

A mon sens, l’esprit humain est difficile à remplacer pour comprendre et interpréter les différents paramètres ensemble afin de dresser des conclusions. J’ai l’impression qu’il n’existe pas encore de réels systèmes automatiques de suivi des attributs SMART qui soit conçu dans ce but, ce serait pourtant utile de le connecter à un outil type Nagios.

La politique de maintenance des disques durs devrait normalement prendre en compte les paramètres suivants :

  • gammes du disques durs (grand public ou entreprise)
  • intensité d’utilisation (lectures-écritures aléatoires ou non)
  • criticité pour l’entreprise (exemples de cas de figure : disque système, disque de sauvegarde, disque redondé ou pas, …)
  • attributs SMART et résultats de scans SMART
  • budget de maintenance

Notamment pour détecter l’intensité d’utilisation, on peut connaître avec ext4 la quantité de données écrite sur une partition depuis sa création grâce à la commande suivante. Dans l’exemple donné, il s’agit d’une partition vieille de 3 ans au cours desquels 27 teraoctets de données ont été écrites. Cela doit mettre la puce à l’oreille : ce disque dur a subi plus que d’autres.

 

L’utilisation des disques durs en RAID-1-5-6 permet certainement de faire face à une panne isolée sereinement, on pourrait éventuellement aller jusqu’à attendre la panne pour remplacer le disque. Mais dans l’idéal il faudrait plutôt chercher à désynchroniser l’ancienneté des disques de la grappe RAID (mélanger des neufs et des vieux) afin de réduire le risque d’avoir plus d’un disque HS à la fois. Rappelons que l’étape de reconstruction RAID est plutôt stressante pour les disques, et une panne durant cette période peut s’avérer dramatique.