Cómo los discos duros mecánicos determinan qué archivos sobrescribir al copiar datos

Cómo los discos duros mecánicos determinan qué archivos sobrescribir al copiar datos

Tamaño del disco duro: 100 GB y contenía un montón de archivos de diferentes tamaños de megabytes que se agregaron en diferentes momentos y se acumularon con el tiempo... todos se eliminaron...

Luego copié 25 GB de datos (archivos pequeños de tamaño MB) en la unidad vacía...

¿Qué archivos eliminados se sobrescriben primero? ¿Los que se agregaron al final o los que se agregaron primero? ¿O la unidad distribuye todos los archivos con un movimiento de dispersión en lugares aleatorios dentro del espacio de 100 GB?

Entonces, ¿son los archivos eliminados aleatoriamente los que se sobrescriben independientemente de la fecha en que se agregaron, o los primeros archivos eliminados agregados se sobrescriben primero?

Respuesta1

Los discos duros, ya sean HDD o SSD, no entienden en absoluto el concepto de archivos. Sólo almacenan una secuencia de bytes y eso es todo lo que les importa. [1]

Los discos duros generalmente están particionados y las particiones se formatean con un sistema de archivos de elección (FS). [2] El sistema de archivos que decide cómo y dónde se almacenan los archivos.

La respuesta a tu pregunta es:Eso depende.

Al sistema de archivos realmente no le importa cuándo se creó o eliminó un archivo. Una vez que se elimina, ya no existe, el sistema de archivos lo tratará simplemente como bytes basura, no como un archivo.

Es más, los archivos no se almacenan continuamente: un único archivo puede dividirse en varios fragmentos y esparcirse por toda la partición. Es trabajo del sistema de archivos volver a ensamblarlo sobre la marcha para que el sistema operativo no se dé cuenta de que fue cortado en primer lugar. Contrariamente a la intuición, en realidad puede mejorar el rendimiento: la fragmentación controlada se puede utilizar para facilitar el hecho de que las partes externas de los discos HDD ofrecen mejores velocidades de lectura/escritura y para evitar situaciones en las que FS se vea obligado a fragmentar un archivo de una manera subóptima porque no puede caber en ninguna parte deseable del disco.

Los patrones de escritura para sistemas de archivos específicos pueden ser predecibles en casos específicos, pero no en general. Los tamaños de archivos específicos y el orden en el que los almacene lo afectarán. Al almacenar un archivo nuevo, el sistema de archivos no considerará si se utilizó o no el espacio que va a utilizar; no preferirá las direcciones utilizadas anteriormente a las "limpias" o al revés. Una vez que se elimina un archivo, FS trata el espacio que ocupaba de manera idéntica como espacio que nunca se usó.


[1] Las unidades modernas tienen una capa adicional de abstracción, por lo que las regiones realmente utilizadas para el almacenamiento de estos bytes pueden no ser secuenciales o contiguas (por ejemplo, debido a una mala reasignación de bloques en HDD y nivelación de desgaste en SSD). Sin embargo, eso no importa para el alcance de la pregunta, digamos que todos los discos duros se exponen a otro hardware y sistema operativo como un dispositivo que puede almacenar una cantidad de bytes secuenciales direccionados de manera confiable.

[2] Las versiones modernas de Windows usan NTFS en particiones del sistema operativo y NTFS o FAT32 en particiones adicionales. Los discos flash suelen utilizar FAT32 o, a veces, exFAT. Linux suele vivir en el sistema de archivos ext4. Apple estaba usando HFS+ y ahora está migrando a APFS. También hay algunos sistemas de archivos para casos de uso especiales, por ejemplo Btrfs y ZFS orientados a la escalabilidad, que fueron diseñados como una solución de almacenamiento de datos todo en uno a prueba de fallos.

Respuesta2

Si bien no es verdaderamente aleatorio en una situación como esta, a todos los efectos prácticos lo es. Sin embargo, tenga en cuenta que incluso si los directorios se han sobrescrito, a veces los archivos pueden ser encontrados por programas que buscan en todo el disco. Si bien he hecho este tipo de cosas a simple vista en la era de los disquetes, estos días solo es factible si el archivo tiene algún tipo de firma.

información relacionada