ReiserFS


ReiserFS es un sistema de archivos de diario de uso general diseñado e implementado inicialmente por un equipo de Namesys dirigido por Hans Reiser . ReiserFS actualmente es compatible con Linux (sin compatibilidad con cuotas) con licencia GPLv2 . Introducido en la versión 2.4.1 del kernel de Linux , fue el primer sistema de archivos de diario que se incluyó en el kernel estándar. ReiserFS era el sistema de archivos predeterminado en SUSE Linux Enterprise de Novell hasta que Novell decidió cambiarse a ext3 el 12 de octubre de 2006 para versiones futuras. [3]

Namesys consideró la versión 3.6 de ReiserFS, que introdujo un nuevo formato en disco que permitía tamaños de archivo más grandes, ahora denominado ocasionalmente Reiser3, como estable y con funciones completas y, con la excepción de las actualizaciones de seguridad y las correcciones de errores críticos, dejó de desarrollarlo para concentrarse en su sucesor, Reiser4 . Namesys cerró en 2008 después de la condena de Reiser por asesinato. El producto ahora se mantiene como código abierto por voluntarios. [4] Los reiserfsprogs 3.6.27 se lanzaron el 25 de julio de 2017. [5]

En el momento de su presentación, ReiserFS ofrecía características que no estaban disponibles en los sistemas de archivos de Linux existentes. Un ejemplo es el empaquetado de cola , un esquema para reducir la fragmentación interna . El empaque de cola puede tener un impacto significativo en el rendimiento. Reiser4 puede haber mejorado esto empaquetando las colas donde no afecta negativamente el rendimiento. [6]

ReiserFS almacena metadatos de archivos ("elementos estadísticos"), entradas de directorio ("elementos de directorio"), listas de bloques de inodos ("elementos indirectos") y colas de archivos ("elementos directos") en un único árbol B+ combinado con una clave identificador de objeto universal. Los bloques de disco asignados a los nodos del árbol son "bloques internos formateados". Los bloques para nodos de hoja (en los que los elementos se empaquetan de extremo a extremo) son "bloques de hoja formateados". Todos los demás bloques son "bloques sin formato" que contienen contenido de archivos. Los elementos del directorio con demasiadas entradas o elementos indirectos que son demasiado largos para caber en un nodo se desbordan en la hoja vecina derecha. La asignación de bloques se rastrea mediante mapas de bits de espacio libre en ubicaciones fijas.

Por el contrario, ext2 y otros sistemas de archivos similares a Berkeley FFS de esa época simplemente usaban una fórmula fija para calcular las ubicaciones de los inodos, lo que limitaba la cantidad de archivos que podían contener. [7] La mayoría de estos sistemas de archivos también almacenan directorios como simples listas de entradas, lo que hace que las búsquedas y actualizaciones de directorios sean operaciones de tiempo lineal y degrada el rendimiento en directorios muy grandes. El diseño de árbol único B+ en ReiserFS evita ambos problemas debido a mejores propiedades de escalabilidad.

En comparación con ext2 y ext3 en la versión 2.4 del kernel de Linux, cuando se trata de archivos de menos de 4  KiB y con el empaquetado final habilitado, ReiserFS puede ser más rápido. [8]