Reasignación de bloques

La reasignación de bloques  es la capacidad de algunos sistemas de archivos informáticos ( ReiserFS , Reiser4 ) para combinar varias unidades pequeñas o distribuidas en un solo bloque, proporcionando así un uso más eficiente del espacio en disco (que de otro modo se perdería), la fragmentación se reduce y las "colas" se previenen » datos. [una]

En los sistemas de archivos que no son propensos a la fragmentación, esta función también se denomina fusión de cola (tail merging) o empaquetado de cola (tail packing), ya que generalmente un bloque de datos se empaqueta en un lugar que estaría ocupado por una "cola", la última bloques vacíos o las colas de varios archivos pequeños, que (archivos) se empaquetan en un bloque.

Justificación

El sistema de archivos tradicionalmente divide el disco en bloques del mismo tamaño para simplificar su diseño y limitar la fragmentación . Los tamaños de bloque suelen ser múltiplos de 512 debido al tamaño de los sectores del disco . Algunos sistemas de archivos tradicionales asignan archivos solo a bloques completos, donde cada bloque se asigna a un solo archivo. Pero dado que los tamaños de los archivos a menudo no son un múltiplo del tamaño del bloque del sistema de archivos, este diseño esencialmente genera colas en los últimos bloques de archivos que ocupan solo una parte del bloque, lo que se denomina fragmentación interna . Este espacio vacío puede ser significativo si el sistema de archivos almacena muchos archivos pequeños, lo que puede volverse crítico cuando se trata de utilizar bloques de gran tamaño para mejorar el rendimiento. UFS y otros derivados de sistemas de archivos similares a UNIX admiten el empaquetado final, lo que reduce en gran medida este efecto.

Esquema de redistribución

La reasignación de direcciones de bloques resuelve el problema del espacio desperdiciado al dividir la parte final de un bloque, lo que permite que se almacenen en él fragmentos de otros archivos.

Algunos esquemas de reasignación pueden realizar asignaciones a nivel de byte . La mayoría de los esquemas dividen el sector en partes más pequeñas. Por ejemplo, si un archivo de 38 KB se almacena en un sistema de archivos que utiliza sectores de 32 KB, el archivo normalmente ocupará dos bloques. En el caso de utilizar sectores de 64 KB para almacenamiento, quedarán 26 KB de espacio no utilizado: la cola. En el caso de un esquema de reasignación de 8 kilobytes (en un sistema de archivos con un tamaño de sector de 64 KB, el archivo ocupará solo 6 KB del segundo bloque, dejando 2 KB (de 8 KB para la cola y 24 KB de espacio libre para otros archivos).

Empaque de relaves

Algunos sistemas de archivos tienen esta función que le permite utilizar el espacio no utilizado anteriormente. Si bien a primera vista esto puede parecer un aumento significativo en la fragmentación del sistema de archivos para muchos, este efecto negativo se puede mitigar con la lectura anticipada  , una nueva característica en los sistemas operativos . Cuando se trabaja con archivos cortos, se pueden ubicar varias colas lo suficientemente cerca una de la otra, en cuyo caso es posible que no se use el portador de información al leerlas. Dichos sistemas de archivos a menudo usan heurística para determinar si vale la pena recurrir al empaquetado final o si vale la pena recurrir a la desfragmentación . Vale la pena señalar que algunos programas pueden utilizar un análisis heurístico más avanzado .

Eficiencia

En algunos casos, cuando la mayoría de los archivos son más pequeños que la mitad del tamaño del bloque, como en una carpeta con muchos archivos pequeños ( código fuente o algunos mapas de bits ), el empaquetado de colas puede aumentar significativamente la eficiencia del almacenamiento (más del doble) en comparación con las colas de archivos. sistemas sin empaque de relaves. [2]

El empaquetado de cola no solo ahorra espacio en disco, sino que también puede mejorar el rendimiento, ya que se necesita leer menos datos debido a la distribución más densa de variables , lo que conduce a un aumento en la eficiencia de la memoria caché . Sin embargo, estas ventajas pueden no ser efectivas debido al aumento de la complejidad de la implementación. [3]

A partir de 2009, los sistemas de archivos más utilizados con soporte de reasignación de bloques son Btrfs , ReiserFS , Reiser4 , FreeBSD UFS2 [4] (donde se conocen mejor como "niveles de fragmento").

Los sistemas de archivos que no usan la función de reasignación de bloques no usan el espacio de manera tan eficiente como los sistemas de archivos que usan esta función - tienen las características de los archivos de archivos : contienen 1 o varios archivos en una pieza de datos, tienen herramientas de detección y corrección de errores ( Btrfs CRC32), sumas de comprobación de datos para comprobar su integridad ( Btrfs CRC32).

Véase también

Notas

  1. Patente estadounidense 6.041.407 (patente fundamental)
  2. Hans Reiser . Uso del disco duro, ReiserFS y Ext2fs (2001). Fecha de acceso: 14 de diciembre de 2006. Archivado desde el original el 29 de septiembre de 2012.  (enlace no disponible)
  3. Hans Reiser . Diseño del sistema de archivos ReiserFS (2001). Fecha de acceso: 14 de diciembre de 2006. Archivado desde el original el 29 de septiembre de 2012.  (enlace no disponible)
  4. Hervey, Allen Introducción a FreeBSD, PacNOG I Workshop, Additional Topics, UFS2 y Soft Updates forman una poderosa combinación . PacNOG I 23 (20 de junio de 2005). Consultado el 22 de julio de 2012. Archivado desde el original el 29 de septiembre de 2012.

Enlaces