¿Existe una buena herramienta de prueba de tortura de manejo?

17

Últimamente he tenido una corrupción extraña y rara del sistema de archivos que sospecho que es culpa de mi SSD. Estoy buscando una buena herramienta de prueba de tortura. Algo que puede escribir en todo el disco, luego volver y leerlo buscando escrituras voladoras, bloques corruptos, bloques revertidos a revisiones anteriores y otros errores. Esto sería mucho más de lo que badblockshace. ¿Existe tal herramienta?

Tenga en cuenta que no estoy buscando un punto de referencia de rendimiento y ya verifiqué el estado SMART; dice saludable y no se informan bloques malos.

psusi
fuente
1
¿Has probado? iozone.org
positron
1
Por cierto, no indicó qué sistema operativo / hardware del sistema está utilizando. Se ha informado que los SSD experimentan la corrupción de la que está hablando en algunos boxen de Mac OS X cuando se configuran para apagar el disco duro a menudo para ahorrar energía. Esto causará corrupción. Me imagino que lo mismo es probable en otros combos de SO / Hardware, si la unidad se ve obligada a dormir a través de un apagado del disco duro emitido a un SSD. Verificaría la configuración de su sistema antes de grabar su SSD con la prueba de manejo.
Wing Tang Wong
1
@WingTangWong, wow. Estoy listo para que muchos SSD se arruinen cuando pierden energía, pero ¿cuándo se les pide que se vayan a dormir? Ese es un buggy drive. Estaré atento a esto. Estoy usando Linux y no tienen que dormir, excepto tal vez cuando suspendo el sistema ...
psusi

Respuestas:

10

Puede ser exagerado, pero hay Phoronix Test Suite . También hay bonnie++, así como hdparm.

Usualmente uso hdparm, por ejemplo:

% hdparm -Tt /dev/hdb
/dev/hdb:
 Timing buffer-cache reads:   128 MB in  1.25 seconds =102.40 MB/sec
 Timing buffered disk reads:  64 MB in 16.70 seconds =  3.83 MB/sec

No llamaría hdparmuna prueba de tortura, pero le da una idea aproximada del rendimiento general de las unidades.

Determinar un estado de las unidades

Después de haber torturado la unidad, puede usar este comando para verificar el estado general de la unidad:

% sudo udisks --dump | grep -A 24 Updates
 Attribute       Current|Worst|Threshold  Status   Value       Type     Updates
===============================================================================
 raw-read-error-rate         103| 99| 34   good    5854752     Pre-fail Online 
 spin-up-time                100| 99|  0    n/a    0           Pre-fail Online 
 start-stop-count             98| 98| 20   good    2785        Old-age  Online 
 reallocated-sector-count    100|100| 36   good    0 sectors   Pre-fail Online 
 seek-error-rate              72| 60| 30   good    25872884688 Pre-fail Online 
 power-on-hours               89| 89|  0    n/a    424.4 days  Old-age  Online 
 spin-retry-count            100|100| 97   good    0           Pre-fail Online 
 power-cycle-count            98| 98| 20   good    2753        Old-age  Online 
 attribute-184               100|100| 99   good    0           Old-age  Online 
 reported-uncorrect          100|100|  0    n/a    0 sectors   Old-age  Online 
 attribute-188               100| 96|  0    n/a    0           Old-age  Online 
 high-fly-writes             100|100|  0    n/a    0           Old-age  Online 
 airflow-temperature-celsius  58| 42| 45 FAIL_PAST 42C / 108F  Old-age  Online 
 g-sense-error-rate          100|100|  0    n/a    124         Old-age  Online 
 power-off-retract-count     100|100|  0    n/a    15          Old-age  Online 
 load-cycle-count              1|  1|  0    n/a    248327      Old-age  Online 
 temperature-celsius-2        42| 58|  0    n/a    42C / 108F  Old-age  Online 
 hardware-ecc-recovered       45| 38|  0    n/a    5854752     Old-age  Online 
 reallocated-event-count      89| 89| 30   good    14877766723263 Pre-fail Online 
 current-pending-sector      100|100|  0    n/a    0 sectors   Old-age  Online 
 offline-uncorrectable       100|100|  0    n/a    0 sectors   Old-age  Offline
 udma-crc-error-count        200|200|  0    n/a    0           Old-age  Online 
 attribute-254               100|100|  0    n/a    0           Old-age  Online 

Herramientas de mantenimiento / mantenimiento del disco

Hemos tenido buen éxito usando las siguientes 2 herramientas donde trabajo. HDAT2 y Spinrite . La última es una herramienta comercial, pero la primera, HDAT2, es un proyecto de código abierto.

Aquí hay un par de capturas de pantalla de HDAT2:

ss # 1 HDAT2

ss # 2 HDAT2

Debe reiniciar su sistema en ambos para que esté fuera de línea mientras realiza estas operaciones, pero ambos recuperaron unidades que habían fallado o estaban comenzando a exhibir fallas. La interfaz de usuario en HDAT2 es un poco difícil de navegar, generalmente utilizamos las opciones predeterminadas en su mayor parte y tratamos de no alejarnos demasiado de allí.

slm
fuente
Los primeros tres que menciona son puntos de referencia de rendimiento. Ya verifiqué el estado SMART y es bueno sin sectores defectuosos, por lo que parece que HDAT2 tampoco es lo que estoy buscando.
psusi
No descartaría HDAT2, estábamos ejecutando chkdsks y también estaban limpios, sin embargo, el disco todavía no era de arranque, la ejecución de HDAT2 fue capaz de encontrar problemas de superficie con el disco que fue capaz de reparar lo suficiente como para que la unidad se pueda arrancar.
slm
Un comentario tardío, pero estoy tratando de encontrar el código fuente de HDAT2, sin éxito. ¿Ha habido un cambio de licencia reciente?
i336_
4

bonnie ++ viene a la mente:

Entonces, dependiendo de la configuración de hardware de su caja:

bonnie++ -d /path/to/mounted/ssd -r your-system-ram-size-in-MB

Ejemplo:

# For a 32GB system with the SSD formatted and mounted at /mnt/mounted-ssd-001
bonnie++ -d /mnt/mounted-ssd-001 -r 32000

Debería darle a su dispositivo una buena prueba de esfuerzo. También puedes personalizarlo.

Tenga en cuenta que, con un SSD, cuando ocurre un bloqueo defectuoso, el hardware de la unidad puede reasignarlo automáticamente, dependiendo de la unidad con la que esté trabajando. Además, una prueba de tortura corroe la vida útil de escritura de su SSD. Por lo tanto, úselo a su propio criterio.

EDITAR:

Agregar una nota sobre fallas de SSD, ya que se ha señalado que Bonnie ++ prueba de estrés, pero no rastrea los errores. La forma en que los SSD "reasignan bloques defectuosos" es diferente de la forma en que los discos duros reasignan. Su funcionamiento depende completamente de la marca / marca / modelo de SSD que tenga:

  • Los SSD baratos simplemente fallan, porque no tienen capacidad libre para reasignar, o porque no tienen medios para segregar los bloques flash fallidos. Simplemente se colgarán o se desconectarán y no volverán a estar en línea.
  • Los SSD de rango medio sin capacidad de reserva pueden generar alertas Smartd o incluso generar errores en el dispositivo de bloqueo del nivel del sistema operativo cuando se detecta un bloqueo fallido. Sin embargo, cuando ocurre la falla, el tamaño registrado del SSD cambiará. Esto puede provocar un error y que el sistema operativo desconecte el dispositivo o puede hacer que el dispositivo se cuelgue y necesite extraerse y volver a insertarse para que se reconozca nuevamente. Al volver a registrarse, el tamaño de bloque disponible del dispositivo disminuirá.
  • Los SSD de gama alta con capacidad adicional reasignarán los bloques defectuosos detrás de escena y pueden generar alertas / advertencias a nivel del sistema operativo. Cuando se agote la capacidad de reserva, el dispositivo probablemente fallará a lo largo de las líneas de los SSD de rango medio.

Cuando el SSD cambia de tamaño debido a que los bloques defectuosos están aislados, es posible que deba hacer lo siguiente para revivir la unidad, si el firmware de la unidad no realiza automáticamente las actualizaciones adecuadas automáticamente:

http://communities.intel.com/message/145676

A menos que la herramienta de prueba de estrés y registro de errores esté diseñada específicamente con SSD (s), solo está utilizando la vida útil del dispositivo.

EDITAR:

Según la información de las respuestas anteriores, sugiera reemplazar el cable por uno mejor o reemplazar la unidad (reemplazo de RMA / garantía), ya que ese tipo de error de nivel del sistema de archivos del sistema operativo no es normal.

Además, si su unidad lo admite, puede aumentar la cantidad de espacio reservado para manejar errores:

http://www.thomas-krenn.com/en/wiki/SSD_Over-provisioning_using_hdparm

Wing Tang Wong
fuente
Esa es una referencia de rendimiento. Puede darle al disco un entrenamiento, pero no creo que detecte errores.
psusi
La forma en que funcionan los SSD (s), la detección de errores se presenta en una de varias formas, dependiendo de la marca / modelo del SSD: error de Smartd si se reasigna un bloque y se usa capacidad de reserva (sin fallas), la capacidad del dispositivo es se reduce a medida que falla una sección del almacenamiento flash (puede causar errores de smartd, puede causar errores del sistema de archivos, puede hacer que el dispositivo cuelgue el bus al desconectarse. Al extraer / volver a insertar, la unidad está disponible nuevamente, pero es posible que deba formatearse ), y el SSD puede parecer que se cuelga directamente sin reasignar (el dispositivo deja de responder incluso después de volver a insertarlo). La ruta de falla no es equivalente a HD
Wing Tang Wong
1
la unidad no detecta los errores, de ahí la necesidad de una herramienta de prueba. Se manifiesta por el sistema de archivos que se está volviendo a montar, y e2fsck encuentra y corrige muchos errores en los metadatos. También he dañado algunos de mis archivos del paquete de repositorio de git. Es una corrupción silenciosa que ocurre tal vez una vez al mes o dos. Al principio pensé que podría ser un error relacionado con TRIM, ya que no recuerdo que esto haya sucedido antes de habilitarlo, así que lo apagué y todavía está sucediendo.
psusi
Un par de posibles problemas: cable de unidad defectuoso o unidad defectuosa. Puede probar el cable de la unidad defectuosa reemplazando el cable con otro. He tenido esto en el pasado y el reemplazo con un cable mejor preparado funcionó. En el caso de una unidad defectuosa, RMA o enviar para reparación de garantía.
Wing Tang Wong
1
El problema está demostrando que es una unidad defectuosa (o realmente, un error en el firmware) y no decir, un error en el núcleo. Si fuera un cable defectuoso, se manifestaría como errores sata ecc en lugar de corrupción silenciosa al azar.
psusi
3

Entiendo que esto tiene más de un año, pero para el beneficio de cualquiera que lea el hilo en el futuro, espero que el software que necesita (d) aún no exista fuera de HP Labs:

"Entendiendo la robustez de los SSD bajo falla de energía" https://www.usenix.org/system/files/conference/fast13/fast13-final80.pdf

Reemplazar la inyección de falla de energía con un evento de elección (o nada, en el caso de detectar errores de firmware intermitentes), y parece que este software lo detectaría. Desafortunadamente, no creo que haya una alternativa, de lo contrario, presumiblemente, HP no habría escrito algo internamente.

Es una pena, ya que también he necesitado algo como esto para probar problemas en el entorno virtual; donde sospecho que las escrituras comprometidas no llegaron al disco físico. Sería genial poder hacer una prueba de esfuerzo de la pila de almacenamiento de esta manera, no solo las SSD. Todavía tengo que encontrar algo adecuado.

Chris Murray
fuente
2
(del comentario anónimo) Si bien el lado del hardware de las cosas necesitaría ser replicado, no veo ninguna razón por la cual la parte de verificación de software de ese documento no pueda reproducirse usando fio en modo cliente / servidor con disparadores. Consulte github.com/axboe/fio/blob/master/HOWTO (10.0 Verificación y disparadores) para obtener más detalles. Se puede hacer que fio use E / S sin búfer o sincronizar periódicamente en una variedad de patrones útiles que luego se pueden verificar (incluso es posible guardar un archivo de estado para que la verificación pueda tener lugar después de diferentes invocaciones de fio).
Archemar
1

Use la herramienta de prueba del fabricante, es la mejor manera de probar un HD, ya que puede acceder a las pruebas de bajo nivel, reasignar sectores defectuosos, probar todo el estado de salud inteligente (especialmente para un SSD, hay muchos registros desconocidos para la mayoría de nosotros) pero puede ayudar al fabricante a ver el estado del disco duro)

HirensCD tiene muchas herramientas de prueba, pero creo que no se actualizó a las habilitadas para SSD, así que consulte directamente el sitio web del fabricante. Algunos admiten linux, otros pueden requerir un liveCD de Windows (verifique el HirenCd nuevamente) o el arranque desde un pendrive (Freedos, SO especial, etc.)

La mayoría de las herramientas HD más antiguas no son buenas para probar SSD, ya que un sector nunca está en los mismos lugares, el firmware lo asigna dinámicamente para distribuir las escrituras por todo el disco. Entonces, si hacen pruebas de escritura, solo está grabando ciclos de escritura en lugar de realmente probar el disco.

Las pruebas de lectura no graban el SSD, pero también podrían no probar todos los sectores del SSD, nuevamente porque el firmware oculta el diseño real.

higuita
fuente