ReiserFS

Compartir Imprimir Citar

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 y 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ó cambiar a ext3 el 12 de octubre de 2006 para versiones futuras.

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 ocasionalmente denominado 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. 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. Los reiserfsprogs 3.6.27 se lanzaron el 25 de julio de 2017.

ReiserFS actualmente es compatible con Linux sin compatibilidad con cuotas. Se ha discutido su eliminación del kernel de Linux desde principios de 2022 debido a la falta de mantenimiento aguas arriba y problemas técnicos inherentes al sistema de archivos, como el hecho de que sufre el problema del año 2038; quedó en desuso en Linux 5.18, y su eliminación está prevista para 2025.

Características

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.

Diseño

ReiserFS almacena metadatos de archivos ("elementos estadísticos"), entradas de directorio ("elementos de directorio"), listas de bloqueo de inodos ("elementos indirectos") y colas de archivos ("elementos directos") en un único árbol B+ combinado con clave de un ID 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 con formato". Todos los demás bloques son "bloques sin formato" que contiene el contenido del archivo. 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. 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.

Rendimiento

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.

Antes de Linux 2.6.33, ReiserFS usaba mucho el bloqueo de kernel grande (BKL), un bloqueo global en todo el kernel, que no escala bien para sistemas con múltiples núcleos, ya que las partes críticas del código solo las ejecuta un núcleo. a la vez

Uso

ReiserFS era el sistema de archivos predeterminado en SuSE Linux desde la versión 6.4 (lanzada en 2000), hasta que se cambió a ext3 en SUSE Linux Enterprise 10.2 y openSUSE 11, anunciado en 2006.

Jeff Mahoney de SUSE escribió una publicación el 14 de septiembre de 2006 proponiendo pasar de ReiserFS a ext3 para el sistema de archivos de instalación predeterminado. Algunas de las razones que mencionó fueron escalabilidad, "problemas de rendimiento con atributos extendidos y ACL", "una comunidad de desarrollo pequeña y cada vez más pequeña" y que "Reiser4 no es una actualización incremental y requiere un reformateo, que no es razonable para la mayoría de las personas." El 4 de octubre escribió un comentario de respuesta en un blog para aclarar algunas cuestiones. Escribió que su propuesta para el cambio no estaba relacionada con el juicio por asesinato de Hans Reiser. Mahoney escribió que "le preocupaba que la gente estableciera una conexión donde no existía". y que "el momento es completamente coincidente y la motivación no está relacionada".

Crítica

Algunas operaciones de directorio (incluyendo unlink(2)) no son síncronas en ReiserFS, lo que puede resultar en la corrupción de datos con aplicaciones que dependen en gran medida de bloqueos basados en archivos (como correo agentes de transferencia qmail y Postfix) si la máquina se detiene antes de sincronizar el disco.

No existen programas para desfragmentar específicamente un sistema de archivos ReiserFS, aunque se han escrito herramientas para copiar automáticamente el contenido de los archivos fragmentados con la esperanza de que se puedan encontrar más bloques contiguos de espacio libre. Sin embargo, un "reempacador" La herramienta se planeó para el próximo sistema de archivos Reiser4 para lidiar con la fragmentación de archivos. Con el auge de los SSD, este problema se volvió irrelevante.

Fsck

El proceso de reconstrucción del árbol de fsck de ReiserFS ha atraído muchas críticas por parte de la comunidad *nix: si el sistema de archivos se corrompe tanto que su árbol interno no se puede utilizar, realizar una operación de reconstrucción del árbol puede dañar aún más los archivos existentes o introducir nuevas entradas con contenidos inesperados, pero esta acción no forma parte del funcionamiento normal ni de una comprobación normal del sistema de archivos y debe ser iniciada y confirmada explícitamente por el administrador.

Las imágenes de ReiserFS v3 no deben almacenarse en una partición de ReiserFS v3 (por ejemplo, copias de seguridad o imágenes de disco para emuladores) sin transformarlas (por ejemplo, comprimiéndolas o encriptandolas) para evitar confundir la reconstrucción. Reformatear una partición ReiserFS v3 existente también puede dejar datos que podrían confundir la operación de reconstrucción y hacer que los archivos del sistema anterior vuelvan a aparecer. Esto también permite que los usuarios malintencionados almacenen archivos de forma intencionada que confundirán al reconstructor. Como los metadatos siempre están en un estado coherente después de una verificación del sistema de archivos, corrupción aquí significa que el contenido de los archivos se fusiona de forma inesperada con los metadatos del sistema de archivos contenido. El sucesor de ReiserFS, Reiser4, soluciona este problema.

Números anteriores

Namesys consideró que ReiserFS en versiones del kernel de Linux anteriores a la 2.4.16 era inestable y no se recomendaba para uso en producción, especialmente en combinación con NFS.

Las primeras implementaciones de ReiserFS (antes de Linux 2.6.2) también eran susceptibles a los peligros de escritura desordenada. Pero la implementación de registro en diario actual en ReiserFS ahora está a la par con la de ext3's "ordered" nivel de diario.