ReiserFS

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 15:12 2 nov 2014 por 85.54.144.177 (discusión). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
ReiserFS
Desarrollador Namesys
Nombre completo ReiserFS
Sistemas operativos compatibles Linux
Introducción 2001 (Linux 2.4.1)
Identificador de la partición Apple_UNIX_SVR2 (Apple Partition Map)
0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Estructuras
Contenido del directorio Árbol-B+
Localización de archivo Bitmap [1]
Límites
Máxima dimensión de archivo 8 TiB [2]
Máximo número de archivos 232 (~4 mil millones) [3]
Tamaño máximo del volumen 16 TiB [4]
Caracteres permitidos en nombres de archivo All bytes except NUL and '/'
Características
Fechas registradas modification (mtime), metadata change (ctime), access (atime)
Rango de fecha December 14, 1901 - January 18, 2038
Bifurcaciones Extended attributes
Permisos de acceso a archivos Unix permissions, ACLs and arbitrary security attributes
Compresión transparente No
Cifrado transparente No

ReiserFS es un sistema de archivos de propósito general, diseñado e implementado por un equipo de la empresa Namesys, liderado por Hans Reiser.

Actualmente es soportado por Linux y existen planes de futuro para incluirlo en otros sistemas operativos. También es soportado por Windows (de forma no oficial), aunque por el momento de manera inestable y rudimentaria (ReiserFS bajo windows).

A partir de la versión 2.4.1 de Linux, ReiserFS se convirtió en el primer sistema de ficheros con journal en ser incluido en el núcleo estándar. También es el sistema de archivos por defecto en varias distribuciones, como SuSE (excepto en openSuSE 10.2 cuyo formato por defecto es ext3), Xandros, Yoper, Linspire, Kurumin Linux, FTOSX, Libranet y Knoppix.

Con la excepción de actualizaciones de seguridad y parches críticos, Namesys ha cesado el desarrollo de ReiserFS (también llamado reiser3) para centrarse en Reiser4, el sucesor de este sistema de archivos.

Características

ReiserFS ofrece funcionalidades que pocas veces se han visto en otros sistemas de archivos:

  • Journaling. Esta es la mejora a la que se ha dado más publicidad, ya que previene el riesgo de corrupción del sistema de archivos.
  • Reparticionamiento con el sistema de ficheros montado y desmontado. Podemos aumentar el tamaño del sistema de ficheros mientras lo tenemos montado y desmontado (online y offline). Para disminuirlo, únicamente se permite estando offline (desmontado). Namesys proporciona las herramientas para estas operaciones, e incluso, podemos usarlas bajo un gestor de volúmenes lógicos como LVM o EVMS.
  • Tail packing, un esquema para reducir la fragmentación interna.

Rendimiento

Comparado con ext2 y ext3 en el uso de archivos menores de 4k, ReiserFS es normalmente más rápido en un factor de 10–15. Esto proporciona una elevada ganancia en las news, como por ejemplo Usenet, caches para servicios HTTP, agentes de correo y otras aplicaciones en las que el tiempo de acceso a ficheros pequeños debe ser lo más rápida posible.

Desventajas

  • Los usuarios que usen como sistema de ficheros ext2, deben formatear sus discos, aunque no así los que usen ext3.
  • ReiserFS en versiones del kernel anteriores a la 2.4.10 se considera inestable y no se recomienda su uso, especialmente en conjunción con NFS
  • Algunas operaciones sobre archivos (por ejemplo unlink(2)) no son síncronas bajo ReiserFS, lo que pueden causar comportamientos extraños en aplicaciones fuertemente basadas en locks de archivos.
  • No se conoce una forma de desfragmentar un sistema de archivos ReiserFS, aparte de un volcado completo y su restauración.
  • Tempranas implementaciones de ReiserFS (anteriores a la incluida en el kernel 2.6.2), eran susceptibles de problemas de escrituras fuera de orden, lo que provocaba que archivos siendo escritos durante una caída del sistema, ganaran un pico de bytes extras de basura en el siguiente montado del sistema de archivos. La implementación actual de journaling, es correcta en este aspecto, manteniendo el journaling ordenado, del estilo de ext3.

Diseño

ReiserFS almacena metadatos sobre los ficheros, entradas de directorio y listas de inodos en un único árbol B+ cuya clave principal es un identificador único. Los bloques de disco asignados a los nodos del árbol son los "bloques internos formateados" y los bloques de las hojas son los "bloques de hojas formateados". Todos los bloques restantes son los "bloques sin formatear", que contienen los datos de los ficheros. Los directorios con muchas entradas, ya sean directas o indirectas, que no caben en un sólo nodo, se reparten con el nodo vecino de la derecha. La asignación de bloques se lleva a cabo mediante un bitmap de espacio libre almacenado en localizaciones fijas.

En contraste, ext2 y otros sistemas de ficheros, usan una fórmula fija para calcular localizaciones de inodos, por lo que limitan el número de archivos que pueden almacenar. Otros también almacenan los directorios como una simple lista de entradas, lo que provoca que las búsquedas y modificaciones sean operaciones lineales temporalmente y degradan el rendimiento de directorios con muchos archivos. El árbol B+ en ReiserFS evita éstos problemas.

Versiones

Existen principalmente dos versiones de este sistema de ficheros: la 3 y la 4. Las características son las siguientes:

3.5 3.6
Número máximo de ficheros 2 32 - 3 = 4 Gi - 3 232 - 3 = 4 Gi - 3
Número máximo de ficheros que puede contener un directorio 518701895, pero en la práctica este valor se encuentra limitado por una función de hash. El hash r5 permite entre 1 y 200000 nombres de ficheros sin colisiones. 232 - 4 = 4 Gi - 4, pero en la práctica este valor se encuentra limitado por una función de hash. El hash r5 permite entre 1 y 200000 nombres de ficheros sin colisiones.
Tamaño máximo de un fichero 231 - 1 = 2 Gi - 1 260 - algunos bytes = 1 Ei, pero la cache de páginas lo limita a 8 Ti en arquitecturas de 32 bits.
Número máximo de links a un fichero 216 = 64 Ki 232 = 4 Gi
Tamaño máximo del sistema de ficheros 232 (4K) bloques = 16 Ti 232 (4K) bloques = 16 Ti

Véase también

Enlaces externos