Comment déterminer le nombre de cycles d'écriture ou la durée de vie attendue d'un SSD sous Linux?

10

Nous utilisons un SSD (Intel X25-M) sur un serveur Linux (RHEL 5) depuis un certain temps, mais nous n'avons jamais fait d'effort pour déterminer la charge d'écriture sous laquelle il se trouvait au cours de l'année écoulée. Existe-t-il un outil sous Linux pour nous dire approximativement combien a été écrit sur le disque au fil du temps ou (encore mieux) combien d'usure il a accumulé? Je cherche juste un indice pour voir si c'est près de la mort ou non ...

JZeta
la source

Réponses:

13

Les SSD Intel conservent des statistiques sur le nombre total d'écritures et sur la durée de vie probable.

Ce qui suit provient d'un processeur Intel X25-M G2 160 Go (SSDSA2M160G2GC)

# smartctl -data -A /dev/sda
smartctl 5.40 2010-10-16 r3189 [x86_64-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  3 Spin_Up_Time            0x0020   100   100   000    Old_age   Offline      -       0
  4 Start_Stop_Count        0x0030   100   100   000    Old_age   Offline      -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always       -       1
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       6855
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       68
192 Unsafe_Shutdown_Count   0x0032   100   100   000    Old_age   Always       -       30
225 Host_Writes_32MiB       0x0030   200   200   000    Old_age   Offline      -       148487
226 Workld_Media_Wear_Indic 0x0032   100   100   000    Old_age   Always       -       3168
227 Workld_Host_Reads_Perc  0x0032   100   100   000    Old_age   Always       -       1
228 Workload_Minutes        0x0032   100   100   000    Old_age   Always       -       1950295543
232 Available_Reservd_Space 0x0033   099   099   010    Pre-fail  Always       -       0
233 Media_Wearout_Indicator 0x0032   098   098   000    Old_age   Always       -       0
184 End-to-End_Error        0x0033   100   100   099    Pre-fail  Always       -       0

La valeur brute Host_Writes_32MIB indique le nombre d'unités de données de 32 Mo qui ont été écrites sur ce lecteur.

La valeur Media_Wearout_Indicator vous montre un pourcentage normalisé de la distance de sa durée de vie utile du lecteur. Cela commence à 100 (ou 099, j'oublie lequel), et se poursuit jusqu'à 001, moment auquel Intel considère que le disque a dépassé sa durée de vie utile. Intel utilise également le MWI dans le cadre des réclamations de garantie - une fois que le MWI atteint 001, la garantie est expirée.

Le MWI atteignant 001 ne signifie pas pour autant que le disque tombe en panne immédiatement! Intel aura une tolérance intégrée pour faire face aux variations des flashs. J'ai vu des disques durer bien au-delà de ce point, et je teste activement certains SSD Intel 320 pour voir combien de temps ils durent.

Cependant, comme la garantie expire lorsque le MWI atteint 001, je remplacerais tous les disques à ce stade.

Daniel Lawson
la source
Pour référence future, le Media_Wearout_Indicatordépart à 100 pour mon SSD Intel 520 Series.
pableu
Il convient de noter que même si le disque ne "tombe pas en panne" une fois qu'il a atteint 001, à un certain moment par la suite (peut-être longtemps après), la capacité de certains disques à conserver les données en cas de panne de courant se réduit à des périodes de temps alarmantes. . Je pense qu'il y a eu des tests d'endurance publiés en ligne qui ont mesuré cela.
sa289
6

Les lecteurs Corsair exportent également un indicateur de pourcentage de vie en pourcentage similaire. Dans leur cas, c'est l'attribut 231:

231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0

(Notez que si smartctl affiche cela comme une température, vous devez mettre à jour la base de données de votre appareil. Sur mon système Debian, cela signifie que vous devez exécuter /usr/sbin/update-smart-drivedb)

Un article de blog Corsair semble montrer que la valeur ne descend jamais en dessous de 10%, donc je suppose qu'elle devrait être remplacée à 10%.

J'ai également un lecteur OCZ avec le même contrôleur Sandforce qui exporte également la même valeur SSD_Life_Left.

Graham
la source
3

Le Media_Wearout_Indicator est ce que vous recherchez. Pour 100 signifie que votre ssd a 100% de vie, le nombre inférieur signifie moins de vie.

# smartctl -a /dev/sda | grep Media_Wearout_Indicator

Sortie de mon ordinateur portable

233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0

Si vous souhaitez voir plus de détails et les attributs complets de votre lecteur, vous pouvez exécuter

# smartctl -data -A /dev/sda

et la sortie

# smartctl -data -A /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-49-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0×0032 100 100 000 Old_age Always – 0
9 Power_On_Hours 0×0032 000 000 000 Old_age Always – 232959027031342
12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always – 279
170 Unknown_Attribute 0×0033 100 100 010 Pre-fail Always – 0
171 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
172 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
174 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 278
184 End-to-End_Error 0×0033 100 100 090 Pre-fail Always – 0
187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0
192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always – 278
225 Load_Cycle_Count 0×0032 100 100 000 Old_age Always – 10752
226 Load-in_Time 0×0032 100 100 000 Old_age Always – 65535
227 Torq-amp_Count 0×0032 100 100 000 Old_age Always – 66
228 Power-off_Retract_Count 0×0032 100 100 000 Old_age Always – 65535
232 Available_Reservd_Space 0×0033 100 100 010 Pre-fail Always – 0
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
241 Total_LBAs_Written 0×0032 100 100 000 Old_age Always – 10752
242 Total_LBAs_Read 0×0032 100 100 000 Old_age Always – 21803
249 Unknown_Attribute 0×0013 100 100 000 Pre-fail Always – 357

http://namhuy.net/1024/how-to-check-ssd-life-left.html

Alison Salazar
la source
Il est utile de mentionner que dans ce cas, la valeur normalisée doit être utilisée.
Falcon Momot
1

Pas vraiment. Si le lecteur ne conserve pas de statistiques, vous ne le sauriez pas avec certitude. Même alors, le lecteur résumerait les algorithmes de niveau d'écriture et autres pour essayer d'optimiser les choses sous le capot, loin des appels système et des interfaces. En d'autres termes, le lecteur pourrait facilement vous mentir sur l'endroit où les données sont réellement écrites sur le "support" afin que vous ne sachiez pas quelles cellules obtiennent une activité.

Cela ne garantit toujours pas quand / si vous verrez des échecs ou des erreurs. Drive pourrait échouer demain, pourrait échouer dans trois ans.

Le meilleur pari est de le garder dans une configuration RAID et d'avoir un plan en place pour le remplacer lorsqu'il tombe en panne (avant que l'autre disque tombe en panne) et s'assure que vos sauvegardes sont à jour.

Bart Silverstrim
la source