¿Los instaladores de distribución están dañando los SSD?

¿Los instaladores de distribución están dañando los SSD?

Según Intel, es importante que no se descarten bloques al crear un sistema de archivos Linux en una unidad de estado sólido. El documento afirma que el comportamiento predeterminado (de mke2fs, en marzo de 2015) es no descartar bloques. Sin embargo, la página de manual actual mke2fsestablece que:

desechar:Intente descartar bloques en el momento mkfs (descartar bloques inicialmente es útil en dispositivos de estado sólido y almacenamiento disperso/con aprovisionamiento ligero). Cuando el dispositivo anuncia que el descarte también pone a cero los datos (cualquier lectura posterior después del descarte y antes de la escritura devuelve cero), marque todas las tablas de inodos que aún no se han puesto a cero como puestas a cero. Esto acelera significativamente la inicialización del sistema de archivos.Esto está configurado como predeterminado.

Cuando formateo un SSD manualmente, puedo evitar el descarte de bloques durante el formateo agregándolo -E nodiscarda la mke2fslínea de comando, pero como los instaladores de distribución son automáticos, no es posible hacer esto. ¿Es esto algo de qué preocuparse?

Respuesta1

El documento vinculado parece tener un propósito específico (desarrollo y evaluación comparativa del controlador NVME del kernel de Linux) y no representa un consejo genérico para los usuarios finales.

Afirma que ext4 no se descarta en el momento mkfs...

Sistemas de archivos principales:

  • ext4: la opción extendida predeterminada es no descartar bloques en el momento de crear el sistema de archivos, conservar esto y no agregar la opción extendida "descartar" como alguna información le indicará que haga.
  • xfs: con mkfs.xfs, agregue la opción –K para no descartar bloques.

...y aún así lo hace. Es lo primero que hace.

# mkfs.ext4 /dev/loop0
mke2fs 1.46.4 (18-Aug-2021)
Discarding device blocks: done
Creating filesystem [...]

Entonces, si no desea descartar todos los datos, debe evitarlo activamente, para xfs usando mkfs.xfs -Kcomo se sugiere, para ext4 con mkfs.ext4 -E nodiscard.

# mkfs.ext4 -E nodiscard /dev/loop0
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem [...]

No sé si el comportamiento predeterminado cambió alguna vez. Por lo que puedo decir, siempre ha sido el valor predeterminado. Antes de -E descartar, aparecían las opciones de no descartar, también estaba -K para conservar los datos (deshabilitar el descarte predeterminado) sin ninguna opción de contraparte para habilitar el descarte si estuviera deshabilitado de forma predeterminada.

La página de manual afirmó una vez que nodiscard era el valor predeterminado, pero no lo veo reflejado en el código en ninguna parte del historial de confirmaciones, por lo que tal vez se deba a un error de documentación.

mke2fs: Desaprobar la opción -K, introducir descartar/nodiscartar

(En realidad, en esta confirmación, afirmó simultáneamente que tanto el descarte como el no descarte eran los valores predeterminados).

Sería fantástico si nodiscard fuera el valor predeterminado y fstrim no fuera posible hasta una semana después. Linux se apresura un poco a deshacerse de sus datos. Formatee el dispositivo incorrecto e incluso si nota su error inmediatamente, ya es demasiado tarde para realizar cualquier tipo de recuperación de datos.

Respuesta2

Por adelantado: realmente no lo compro.

Este documento es más antiguo y es posible que ya no sea exacto.

Además, podría estar claramente equivocado; Históricamente ha habido muchos problemas de comunicación al respecto, y las personas que escriben guías no son necesariamente las mismas que las que contribuyen al kernel de Linux de la misma empresa. La situación es realmente compleja: la optimización de un SSD podría ser lo peor que se puede hacer para otro diferente, y los fabricantes de chipsets no han encontrado una manera de comunicar las preferencias de sus controladores.
Sin embargo, la funcionalidad de descarte de NVMe se ha estandarizado desde hace mucho tiempo (Intel ha estado involucrada, de hecho, dominante, en eso), y este es su uso previsto, por lo que me sorprendería bastante si no fuera "bueno".

Con todo, el uso de descarte le da al SSD más información; lo que haga con eso depende del SSD. Por lo tanto, trabajar peor con más información que también podría ignorar: en realidad es un problema de firmware del controlador SSD, no un problema de controlador. Apuesto a que Intel, al estar muy interesada en contar con un buen soporte en los centros de datos de Linux, ha solucionado ese problema hace mucho tiempo.

información relacionada