ReiserFS
De Wikipedia, la enciclopedia libre
ReiserFS | |
---|---|
Desarrollador | Namesys |
Nombre Completo | ReiserFS |
Introducido | 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] |
Bloques Malos | |
Límites | |
Máxima Dimencion de archivo | 8 TiB [2] |
Máximo numero de archivos | 232 (~4 billion) [3] |
Tamaño máximo del nombre de archivo | |
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 |
Atributos | |
Permisos de acceso a archivos | Unix permissions, ACLs and arbitrary security attributes |
Compresión transparente | No |
Encriptación transparente | {{{encryption}}} |
Sistemas operativos Soportados | Linux |
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 bajo windows (de forma no oficial), pero es aún inestable y rudimentario (ReiserFS bajo windows). A partir de la versión 2.4.1 del núcleo 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 que su 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.
Tabla de contenidos |
[editar] 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 nos 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.
[editar] 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.
[editar] Desventajas
- Los usuarios que usen como sistema de ficheros ext2, deben formatear sus discos, aunque no así los que usen ext3.
- ReiserFS v3 puede llegar a corromper el sistema de archivos cuando el árbol es reconstruido al realizar un chequeo. La reconstrucción del árbol es necesaria únicamente si el sistema de archivos se encuentra seriamente dañado (por ejemplo cuando se encuentra redimensionando y a causa de un corte de suministro eléctrico, el ordenador se apaga), lo que es algo nada habitual. Además, tampoco es recomendable almacenar imágenes en formato ReiserFS v3 (p.e. copias de seguridad, imágenes de disco para emuladores)en una partición también ReiserFS v3 sin haberlas antes convertido a un sistema que no confunda al programa encargado de realizar el chequeo de disco. Esto puede realizarse mediante la compresión o el cifrado de la imagen. Reformatear una partición existente de ReiserFS v3 puede dejar datos que también confundan al programa que realiza el chequeo, resultando en, por ejemplo, archivos del sistema anterior que aparecen en la reconstrucción actual del árbol.
- 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.
[editar] 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 el directorios con muchos contenidos. El árbol B+ en ReiserFS evita estos problemas.
[editar] Versiones
Existen principalmente dos versiones de este sistema de ficheros: la 3.5 y la 3.6. 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 |