archivo disperso


En informática , un archivo disperso es un tipo de archivo de computadora que intenta usar el espacio del sistema de archivos de manera más eficiente cuando el archivo en sí está parcialmente vacío. Esto se logra escribiendo información breve ( metadatos ) que representan los bloques vacíos en los medios de almacenamiento de datos en lugar del espacio "vacío" real que constituye el bloque, consumiendo así menos espacio de almacenamiento. El tamaño de bloque completo se escribe en el medio como el tamaño real solo cuando el bloque contiene datos "reales" (no vacíos).

Al leer archivos dispersos, el sistema de archivos convierte de forma transparente los metadatos que representan bloques vacíos en bloques "reales" llenos de bytes nulos en tiempo de ejecución. La aplicación no es consciente de esta conversión.

La mayoría de los sistemas de archivos modernos admiten archivos dispersos, incluidas la mayoría de las variantes de Unix y NTFS . [1] HFS+ de Apple no admite archivos dispersos, pero en OS X, la capa del sistema de archivos virtual permite almacenarlos en cualquier sistema de archivos compatible, incluido HFS+. [ cita requerida ] Apple File System (APFS), anunciado en junio de 2016 en la WWDC, también los admite. [2] Los archivos dispersos se usan comúnmente para imágenes de disco , instantáneas de bases de datos , archivos de registro y en aplicaciones científicas.

La ventaja de los archivos dispersos es que el espacio de almacenamiento solo se asigna cuando realmente se necesita: se conserva la capacidad de almacenamiento y, ocasionalmente, se pueden crear archivos grandes incluso si no hay suficiente espacio libre disponible en el medio de almacenamiento para el archivo original. Esto también reduce el tiempo de la primera escritura ya que el sistema no tiene que asignar bloques para el espacio "omitido". Si la asignación inicial requiere escribir todos ceros en el espacio, también evita que el sistema tenga que escribir sobre el espacio "omitido" dos veces.

Por ejemplo, una imagen de máquina virtual con un tamaño máximo de 100 GB que tiene 2 GB de archivos realmente escritos requeriría los 100 GB completos cuando está respaldada por almacenamiento preasignado, pero solo 2 GB en un archivo disperso. Si el sistema de archivos admite perforaciones y el sistema operativo invitado emite comandos TRIM , la eliminación de archivos en el invitado reducirá el espacio necesario.

Las desventajas son que los archivos dispersos pueden fragmentarse ; los informes de espacio libre del sistema de archivos pueden ser engañosos; llenar sistemas de archivos que contienen archivos dispersos puede tener efectos inesperados (como errores de disco lleno o de cuota excedida cuando simplemente se sobrescribe una parte existente de un archivo que resultó ser disperso); y copiar un archivo disperso con un programa que no los admita explícitamente puede copiar todo el tamaño sin comprimir del archivo, incluidas las secciones cero que no están asignadas en el medio de almacenamiento, perdiendo los beneficios de la propiedad disperso en el archivo. Los archivos dispersos tampoco son totalmente compatibles con todos los programas o aplicaciones de copia de seguridad. Sin embargo, la implementación de VFS elude [ cita requerida ] las dos desventajas anteriores. La carga de ejecutables en Windows de 32 bits (exe o dll) que son escasos lleva mucho más tiempo, ya que el archivo no se puede asignar a la memoria en el espacio de direcciones limitado de 4 GB y no se almacena en caché, ya que no hay una ruta de código para almacenar en caché ejecutables escasos de 32 bits ( Windows en arquitecturas de 64 bits puede asignar ejecutables dispersos). [ cita requerida ] En NTFS, los archivos dispersos (o más bien sus áreas distintas de cero) no se pueden comprimir. NTFS implementa la dispersión como un tipo especial de compresión, por lo que un archivo puede ser disperso o comprimido.


Un archivo disperso: no es necesario guardar los bytes vacíos y, en su lugar, se pueden representar mediante metadatos .