¿Cómo fallan los SSD cerca del final de la vida?

9

Digamos que un SSD MLC ha durado mucho tiempo y la primera celda ha alcanzado su último ciclo de borrado y se niega a borrar.

¿Qué pasa después de eso? ¿El controlador detecta eso como un bloque defectuoso y pasa al siguiente e intenta borrarlo? ¿La capacidad total de la unidad disminuirá lentamente con el tiempo?

EDITAR

Y, por supuesto, podemos olvidarnos de la nivelación del desgaste. Sí, extiende la vida útil de un disco, pero no estoy hablando de eso. Finalmente, una celda alcanzará su último ciclo de borrado.

Pirolista
fuente

Respuestas:

8

Los chips flash NAND tienen algunos mecanismos integrados para detectar fallas en operaciones de escritura y borrado, y alertarán al controlador si falla uno. En este caso, el controlador puede volver a intentarlo o tratar ese bloque como malo y sacarlo de su algoritmo de nivelación de desgaste. Cada página en el dispositivo NAND también tiene un área de reserva junto al área de datos principal, que está destinada a metadatos como ECC y otras formas de detección y tolerancia a fallas. El controlador puede decidir sobre su propio esquema de tolerancia a fallas utilizando el área de reserva. Los códigos de Hamming son un esquema común, aunque hay varios, incluidos bits de paridad simples y códigos Reed-Solomon. Si las cosas no coinciden en una operación de lectura, nuevamente, el controlador es libre de hacer lo que quiera. Idealmente, también mapearía estos bloques del algoritmo de nivelación de desgaste, y simplemente perdería capacidad poco a poco hasta que "demasiados" bloques fallen, donde "demasiados" depende de los algoritmos y tamaños de estructura de hardware dentro del controlador. Muchos diseños de controladores de primer corte simplemente declaran un error al sistema operativo.

Tenga en cuenta que este no es un problema específico de MLC; aunque las celdas MLC pueden ser más propensas a un error de lectura, ya que necesariamente hay un margen de error menor, las celdas SLC fallan con la mayoría de los mismos mecanismos, y el controlador puede tratarlas de la misma manera.

Matt J
fuente
2

Al igual que con los discos duros, depende de la implementación en el sistema operativo. El controlador simplemente informaría que la escritura (borrar es en realidad una operación de escritura) falló y depende del controlador divisor en el núcleo del sistema operativo decidir qué hacer. Por lo que he visto hasta ahora, las implementaciones de Microsoft y Linux simplemente devuelven el código de error a la aplicación de llamada, por lo que produce un error de E / S.

En resumen: simplemente obtienes un dispositivo "roto" en algún momento.

Milan Babuškov
fuente
Bueno, eso apesta. No es una muy buena abstracción entonces ...
Pyrolistical
1
Y mal. Principalmente, esto se maneja en el SSD en sí, no en el controlador del dispositivo. Porque esto es operaciones normales. La nivelación de desgaste registrará el sector como fallido y reasignará el sector.
TomTom
1

Los SSD usan algo llamado "nivelación de desgaste", donde la unidad mantiene una estadística sobre el uso del sector y, en algún momento o cuando detecta problemas, moverá el sector a uno de reserva, al igual que sucede con los discos duros normales.

Sven
fuente
Sí, pero veo que el HD mecánico falla mecánicamente antes de que se agoten los sectores reservados. SSD sin embargo, puede que no. ¿Qué sucede cuando una unidad se queda sin sectores reservados?
Pyrolistic
Escribir errores ¿Qué más esperas?
TomTom