¿Es "mejor" que el almacenamiento flash se llene con 1 en lugar de 0?

¿Es "mejor" que el almacenamiento flash se llene con 1 en lugar de 0?

Cuando hago una copia de seguridad de una unidad, me gusta comprimir la imagen, así que primero la lleno con el mismo valor para que el espacio libre se reduzca a casi nada:

cat /dev/zero > ~/zeros
sync
rm ~/zeros

Para una unidad mecánica/magnética, esto simplemente escribe 0 en todo el espacio libre en una operación por bit, pero para un dispositivo de estado sólido/flash como una tarjeta SD o SSD, escribir 0 en realidad requiere dos operaciones por bit:

  • Un borrado masivo, que establece un bloque completo en todos los 1 a la vez.
  • Una escritura individual, que devuelve los bits seleccionados a 0

Entonces, al llenar un dispositivo de estado sólido/flash con 1 en lugar de 0Me gusta esta respuesta describe cómo hacer, ¿aceleraría el proceso o extendería la vida útil del dispositivo evitando el segundo paso del proceso de escritura?

Respuesta1

Esto parece un problema XY: la respuesta correcta esprobablemente no importe en absoluto, pero tiene sentido hacerlo más tarde.

La mayoría de los SSD cifran o codifican datos con fines de nivelación de desgaste, por lo que lo único que probablemente estás haciendo es desgastar el disco un poco más rápido, sospecho. Tarjetas SD, no estoy seguro. Es bastante poco común usarlos como unidades de arranque fuera de escenarios con muy pocas escrituras.

Si se trata de una copia de seguridad relativamente pequeña, en realidad sospecho que la forma "inteligente" es crear una imagen, luego montarla y poner a cero el espacio escaso en la imagen.entoncescomprimir parece inteligente. Trabaja en un almacenamiento relativamente rápido, minimiza las reescrituras en el almacenamiento flash y, de todos modos, lee todo el disco y comienza con una imagen sin comprimir. Imágenes primeroentoncespuesta a ceroentoncesLa compresión ahorra desgaste.

También vale la pena considerarlo, si no recuerdo mal, noobs funciona con imágenes de disco en una unidad fat32 de todos modos, y si es así, puedes simplemente montar el SSD, copiarlo sobre elimagen de disco en el interiory realizar esas operaciones allí. Luego reemplace las imágenes del disco según sea necesario. O simplemente copiar el contenido del disco y comprimirlo "según sea necesario" y reemplazar el contenido del disco antiguo por el nuevo.

Respuesta2

@AarónD

¿Estás tratando de preguntar si es mejor limpiar el espacio libre con el patrón de 0 o 1
porque se usarán y rellenarán menos bloques?

Pensar en 0 para el uso de 1 vacío, y según esa lógica ayudará a aumentar o disminuir la vida útil de una unidad SSD. Tener la segunda lógica es que colapsará los bloques para que no se usen, en lugar de tener espacio libre con elementos eliminados o eliminados, los datos siguen usando espacio y más bloques, teniendo más escrituras, lo que hace que la degradación sea más rápida.

No entiendes por qué Ramhound no entiende tu pregunta.

Es con tu lógica, limpiando el espacio libre y creándolo y canalizándolo con

gato > ~/ceros

Crear una escritura eliminando bloques usados ​​sigue siendo una escritura en esa unidad, lo que significa una mala idea, pero es bueno tener una mala lógica, independientemente de si ayuda a tener una imagen de respaldo más pequeña o no. Este proceso ayudará a crear una imagen de copia de seguridad comprimida más pequeña, pero matará el disco en el proceso.

Al canalizar el archivo de salida en la misma unidad y limpiar el espacio libre, está creando un archivo grande con > en la misma unidad b/c que todavía está escribiendo la unidad con datos a pesar de que hay espacio libre. Una escritura en el disco es una escritura, y además una escritura masiva.

Creo que estás haciendo una pregunta capciosa, lo que significa que la lógica que haces tiene sentido, pero es incorrecta y 100% contraproducente, y es posible que gastes tu disco 10 veces más rápido.

Tener la unidad libre de espacio pero crear escrituras usando un archivo que tendrá un tamaño de archivo grande, una escritura es una escritura, por lo tanto, toda la lógica, aunque la entiendo, sigue siendo útil pensar en tener la imagen de respaldo más pequeña, lo cual Es cierto, borrar el espacio libre está creando muchas más escrituras que las que se crearían incluso con espacio libre en la imagen de respaldo, incluso con el proceso de hacerlo una y otra vez, escribiendo espacio libre que es una cantidad mínima y luego creando una escritura de archivo de Todo el espacio libre de la unidad aún crea una escritura masiva, donde el espacio libre solo usaría una pequeña cantidad de espacio. La unidad será peor porque está escribiendo un archivo. borrar borra el archivo, estás escribiendo un archivo.

información relacionada