¿Cómo verificar la vida restante en SSD o el nivel de desgaste del medio?

31

Todos sabemos que los SSD tienen una vida útil predeterminada limitada. ¿Cómo verifico en Linux cuál es el estado actual de un SSD?

La mayoría de los resultados de búsqueda de Google le pedirían que busque información SMART para un campo de porcentaje llamado Media_Wearout_Indicator u otros indicadores de jerga como Longterm Data Endurance, que no existen. Sí, verifiqué dos SSD, ambos carecen de estos campos. Podría continuar para encontrar un tercer SSD, pero siento que los campos no están estandarizados.

Para demostrar el problema aquí están los dos ejemplos.


Con el primer SSD, no está claro qué campo indica el nivel de desgaste. Sin embargo, solo hay un atributo Unknown_Attribute cuyo valor RAW está entre 1 y 100, por lo que solo puedo suponer que eso es lo que estamos buscando:

    $ sudo smartctl -A /dev/sda                                             
    smartctl 6.2 2013-04-20 r3812 [x86_64-linux-3.11.0-14-generic] (local build)
    Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

    === START OF READ SMART DATA SECTION ===                                 
    SMART Attributes Data Structure revision number: 1                       
    Vendor Specific SMART Attributes with Thresholds:                        
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
      5 Reallocated_Sector_Ct   0x0002   100   100   000    Old_age   Always       -       0
      9 Power_On_Hours          0x0002   100   100   000    Old_age   Always       -       6568
     12 Power_Cycle_Count       0x0002   100   100   000    Old_age   Always       -       1555
    171 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       0
    172 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       0
    173 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       57
    174 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       296
    187 Reported_Uncorrect      0x0002   100   100   000    Old_age   Always       -       0
    230 Unknown_SSD_Attribute   0x0002   100   100   000    Old_age   Always       -       190
    232 Available_Reservd_Space 0x0003   100   100   005    Pre-fail  Always       -       0
    234 Unknown_Attribute       0x0002   100   100   000    Old_age   Always       -       350
    241 Total_LBAs_Written      0x0002   100   100   000    Old_age   Always       -       742687258
    242 Total_LBAs_Read         0x0002   100   100   000    Old_age   Always       -       1240775277

Entonces, este SSD ha utilizado el 57% de su vida útil de reescritura, ¿es correcto?


Con el otro disco, el SSD_Life_Left ATTRIBUTE se destaca, pero su valor bruto de 0, que indica que queda un 0% de vida, es poco probable para un SSD aparentemente sano a menos que esté en peligro (lo veremos en unos días), y si dice "0% de vida útil", también imposible para un disco duro desgastado (desgastado = usado durante más de un año).

    > sudo /usr/sbin/smartctl -A /dev/sda
    smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.11.6-4-desktop] (SUSE RPM)
    Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

    === 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
      1 Raw_Read_Error_Rate     0x000f   104   100   050    Pre-fail  Always       -       0/8415644
      5 Retired_Block_Count     0x0033   100   100   003    Pre-fail  Always       -       0
      9 Power_On_Hours_and_Msec 0x0032   100   100   000    Old_age   Always       -       4757h+02m+17.130s
     12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       1371
    171 Program_Fail_Count      0x0032   000   000   000    Old_age   Always       -       0
    172 Erase_Fail_Count        0x0032   000   000   000    Old_age   Always       -       0
    174 Unexpect_Power_Loss_Ct  0x0030   000   000   000    Old_age   Offline      -       52
    177 Wear_Range_Delta        0x0000   000   000   000    Old_age   Offline      -       2
    181 Program_Fail_Count      0x0032   000   000   000    Old_age   Always       -       0
    182 Erase_Fail_Count        0x0032   000   000   000    Old_age   Always       -       0
    187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
    194 Temperature_Celsius     0x0022   030   030   000    Old_age   Always       -       30 (Min/Max 30/30)
    195 ECC_Uncorr_Error_Count  0x001c   104   100   000    Old_age   Offline      -       0/8415644
    196 Reallocated_Event_Count 0x0033   100   100   000    Pre-fail  Always       -       0
    231 SSD_Life_Left           0x0013   100   100   010    Pre-fail  Always       -       0
    233 SandForce_Internal      0x0000   000   000   000    Old_age   Offline      -       3712
    234 SandForce_Internal      0x0032   000   000   000    Old_age   Always       -       1152
    241 Lifetime_Writes_GiB     0x0032   000   000   000    Old_age   Always       -       1152
    242 Lifetime_Reads_GiB      0x0032   000   000   000    Old_age   Always       -       3072
Tankman 六四
fuente
Con los atributos SMART, los valores más bajos son peores porque la unidad siempre alerta si un valor es menor (o igual a? No estoy seguro) del valor umbral. Dicho esto, es muy bueno tener un indicador de desgaste, pero espero que no confíes datos valiosos en ningún dispositivo de almacenamiento. Debería ejecutar múltiples dispositivos de almacenamiento en una disposición RAID.
Alexios
¿Cómo sabes que mis datos son 'preciosos'? Es solo una copia fuera de línea de la base de conocimiento de la compañía en mi computadora portátil. Comento para señalar que la gente asume con demasiada frecuencia un escenario de sysop. Gracias por tus comentarios de todos modos.
Tankman 六四
Todos los datos son preciosos. :) Comenzamos con ese principio, luego pasamos a datos que son más valiosos (las fotos digitales de un fotógrafo, por ejemplo) y menos valiosos (el sistema operativo: fácil de reemplazar, pero tiempo de inactividad y pérdida de tiempo / ingresos si es necesario) reemplázalo).
Alexios
Ambas unidades están dentro de los límites de resistencia. La primera unidad tiene solo alrededor de 350 GiB, mientras que la segunda unidad tiene 1.1 TiB. No estoy seguro de lo que está pasando aquí ...
bwDraco

Respuestas:

19

En su primer ejemplo, a lo que creo que se refiere es al "Indicador de desgaste de medios" en las unidades Intel, que es el atributo 233. Sí, tiene un rango de 0-100, siendo 100 una unidad nueva y sin usar, y 0 está completamente desgastado. Según su resultado, este campo no parece existir.

En su segundo ejemplo, lea los documentos oficiales sobre SSD_Life_Left. Por esa página:

El valor RAW de este atributo es siempre 0 y no tiene significado. Verifique el VALOR normalizado en su lugar. Comienza en 100 e indica el porcentaje aproximado de vida restante de SDD. Por lo general, disminuye cuando los bloques Flash se marcan como incorrectos, consulte el valor RAW de Retired_Block_Count

Es realmente importante que comprenda completamente lo que dice smartctl (8) y que no haga suposiciones. Desafortunadamente, las herramientas SMART no siempre están actualizadas con los últimos SSD y sus atributos. Como tal, no siempre hay una manera limpia de saber cuántas veces se han escrito los chips. Lo mejor que puede hacer es mirar el "Power_On_Hours", que en su caso es "6568", determinar el promedio de utilización del disco y promediarlo.

Debería poder buscar las especificaciones de su unidad y determinar el proceso utilizado para hacer los chips. Los chips de proceso de 32 nm tendrán una resistencia de escritura más larga que los chips de proceso de 24 nm. Sin embargo, parece que "en promedio", probablemente podría esperar entre 3,000 y 4,000 escrituras, con un mínimo de 1,000 y un máximo de 6,000. Entonces, si tiene una SSD de 64GB, entonces debería esperar en algún lugar cercano a un total de 192TB a 256TB escrito en la SSD, suponiendo una nivelación de desgaste.

Como ejemplo, si mantiene una utilización de, digamos, 11 KBps en su disco, entonces podría esperar ver unos 40 MB escritos por hora. Con 6568 horas de encendido, ha escrito aproximadamente 260 GB en el disco. Sabiendo que probablemente podría soportar aproximadamente 200 TB de escrituras totales, antes del fallo, tiene unos 600 años antes del fallo debido al desgaste de los chips. Es probable que su disco falle debido a condensadores desgastados o regulación de voltaje.

Aaron Toponce
fuente
99
Muy claro, gracias. Este conocimiento se convierte mejor en una herramienta GUI que utiliza smartctl o su API. ¡Después de todo, calcular con una calculadora usando una computadora como dispositivo de entrada y un humano sentado frente a él como procesador está en contra del espíritu con el que se inventaron las computadoras!
Tankman 六四
Su enlace parece estar muerto
Skeleton Bow
15

Para los SSD de Samsung, marque el atributo SMART 177 (Recuento de desgaste).

ID # 177 Cuenta de nivelación de desgaste

Este atributo representa la cantidad de operaciones de borrado y programa de medios (la cantidad de veces que se ha borrado un bloque). Este valor está directamente relacionado con la vida útil de la SSD. El valor bruto de este atributo muestra el recuento total de ciclos P / E.

Fuente: http://www.samsung.com/global/business/semiconductor/minisite/SSD/M2M/download/07_Communicating_With_Your_SSD.pdf

El indicador de nivel de desgaste comienza en 100 y disminuye linealmente a 1 de lo que puedo decir. En 1, el variador habrá excedido todos sus ciclos nominales de p / e, pero en realidad la resistencia total del variador puede exceder significativamente ese valor.

Fuente: http://www.anandtech.com/show/7173/samsung-ssd-840-evo-review-120gb-250gb-500gb-750gb-1tb-models-tested/3

Le sugiero que tome esa última declaración sobre exceder ese valor con un grano de sal.

Diaa Sami
fuente
Link ya está muerto.
Calculus Knight
Creo que tienen el pedido de Wear_Leveling_Count al revés. Tengo 2 SSD de Samsung y el que tiene ~ 4 años tiene un RAW_VALUE de 42 y otro que tiene ~ 1 mes tiene un RAW_VALUE de 0. Parece que comienza en 0 y se incrementa hacia arriba.
John Eikenberry
4

Si no tiene un SSD de la marca Intel: ¡Tenga cuidado! Tengo un SSD de Samsung, y las etiquetas de atributos erróneos de smartmontools / smartctl me engañaron totalmente. Si tiene algo que no sea Intel, puede encontrar útil mi historia de dolor (inane) en https://askubuntu.com/a/460463/65722 .

¡Que su relación entre calidad de información y tiempo de excavación sea mejor que la mía!

Matt S.
fuente
0

Al tener un servidor con una tarjeta RAID LSI , tengo 7 unidades SSD de Samsung instaladas.

Es tal que

  • / dev / sda es mi SSD del sistema operativo, marcado como JBOD por Raid Controller.
  • Los otros 7 SSD se muestran solo como / dev / sdb porque son RAID 0 (o RAID-?).

para obtener información de los discos detrás de un controlador de banda, el truco es

smartctl --scan

{output is}
/dev/sda -d scsi # /dev/sda, SCSI device
/dev/sdb -d scsi # /dev/sdb, SCSI device
/dev/bus/0 -d megaraid,8 # /dev/bus/0 [megaraid_disk_08], SCSI device
/dev/bus/0 -d megaraid,9 # /dev/bus/0 [megaraid_disk_09], SCSI device
/dev/bus/0 -d megaraid,10 # /dev/bus/0 [megaraid_disk_10], SCSI device
/dev/bus/0 -d megaraid,11 # /dev/bus/0 [megaraid_disk_11], SCSI device
/dev/bus/0 -d megaraid,12 # /dev/bus/0 [megaraid_disk_12], SCSI device
/dev/bus/0 -d megaraid,13 # /dev/bus/0 [megaraid_disk_13], SCSI device
/dev/bus/0 -d megaraid,14 # /dev/bus/0 [megaraid_disk_14], SCSI device
/dev/bus/0 -d megaraid,15 # /dev/bus/0 [megaraid_disk_15], SCSI device

luego para obtener la información de smartctl como

  • WEAR_LEVELING_COUNT
  • POWER_ON_HOURS
  • TEMPERATURE_CELCIUS y todas esas otras cosas buenas

para cada disco hacer

smartctl -d megaraid,8 -all /dev/bus/0
smartctl -d megaraid,9 -all /dev/bus/0
smartctl -d megaraid,10 -all /dev/bus/0
{down to}
smartctl -d megaraid,15 -all /dev/bus/0

la sintaxis de smartctl essmartctl [options] <device>

así es como ingresa y pasa por una tarjeta de incursión cuando varios discos no se muestran como múltiples dispositivos como / dev / sdb, / dev / sdc, / dev / sdd, etc.

ron
fuente