stringtranslate.com

JFS (sistema de archivos)

Journaled File System ( JFS ) es un sistema de archivos de diario de 64 bits creado por IBM . Existen versiones para los sistemas operativos AIX , OS/2 , eComStation , ArcaOS y Linux . Este último está disponible como software gratuito según los términos de la Licencia Pública General GNU (GPL). HP-UX tiene otro sistema de archivos diferente llamado JFS que en realidad es una versión OEM de VxFS de Veritas Software .

En el sistema operativo AIX existen dos generaciones de JFS, que se denominan JFS ( JFS1 ) y JFS2 respectivamente. [1]

JFS de IBM fue diseñado originalmente para sistemas de 32 bits . JFS2 fue diseñado para sistemas de 64 bits . [2]

En otros sistemas operativos, como OS/2 y Linux, sólo existe la segunda generación y se llama simplemente JFS . [3] Esto no debe confundirse con JFS en AIX que en realidad hace referencia a JFS1.

Historia

IBM introdujo JFS con el lanzamiento inicial de AIX versión 3.1 en febrero de 1990. Este sistema de archivos, ahora llamado JFS1 en AIX , fue el principal sistema de archivos para AIX durante la década siguiente y se instaló en miles o millones de sistemas AIX de clientes. Históricamente, el sistema de archivos JFS1 está muy vinculado al administrador de memoria de AIX, [1] que es un diseño típico para un sistema de archivos que admite un solo sistema operativo. JFS fue uno de los primeros sistemas de archivos que admitió el registro con diario .

En 1995, se empezó a trabajar para mejorar el sistema de archivos para que fuera más escalable y admitiera máquinas que tuvieran más de un procesador. Otro objetivo era tener un sistema de archivos más portátil, capaz de ejecutarse en múltiples sistemas operativos. Después de varios años de diseño, codificación y pruebas, el nuevo JFS se envió por primera vez en OS/2 Warp Server para eBusiness en abril de 1999, y luego en OS/2 Warp Client en octubre de 2000. En diciembre de 1999, se publicó una instantánea del original. Se otorgó el código fuente OS/2 JFS a la comunidad de código abierto y se comenzó a trabajar para portar JFS a Linux . La primera versión estable de JFS para Linux apareció en junio de 2001. [3] El proyecto JFS para Linux es mantenido por un pequeño grupo de contribuyentes conocido como JFS Core Team . [4] Esta publicación de fuentes también sirvió para formar la base de un informe a OS/2 del JFS de código abierto.

Paralelamente a este esfuerzo, parte del equipo de desarrollo de JFS regresó al Grupo de Desarrollo del Sistema Operativo AIX en 1997 y comenzó a trasladar esta nueva base fuente JFS al sistema operativo AIX. En mayo de 2001, se puso a disposición para AIX 5L un segundo sistema de archivos con registro por diario, Enhanced Journaled File System (JFS2) . [1] [3]

A principios de 2008 se especuló que IBM ya no estaba interesado en mantener JFS y, por tanto, no debería utilizarse en entornos de producción. [5] Sin embargo, Dave Kleikamp, ​​miembro del IBM Linux Technology Center y JFS Core Team, [4] explicó que todavía siguen los cambios en el kernel de Linux e intentan corregir posibles errores de software . Continuó añadiendo que ciertas distribuciones esperan un mayor compromiso de recursos de su parte y optan por no soportar el sistema de archivos. [6]

En 2012, se agregó a JFS la compatibilidad con el comando TRIM para unidades de estado sólido . [7]

Características

JFS admite las siguientes características. [8] [9]

Diario

JFS es un sistema de archivos con registro en diario . En lugar de agregar el registro en diario como una característica adicional como en el sistema de archivos ext3 , se implementó desde el principio. El diario puede tener hasta 128 MB. JFS solo registra metadatos, lo que significa que los metadatos seguirán siendo consistentes, pero los archivos del usuario pueden dañarse después de una falla o un corte de energía. El registro en diario de JFS es similar al de XFS en el sentido de que solo registra partes del inodo . [10]

árbol B+

JFS utiliza un árbol B+ para acelerar las búsquedas en directorios. JFS puede almacenar 8 entradas de un directorio en el inodo del directorio antes de mover las entradas a un árbol B+. JFS también indexa extensiones en un árbol B+.

Asignación dinámica de inodos

JFS asigna dinámicamente espacio para inodos de disco según sea necesario. Cada inodo tiene 512 bytes. Se asignan 32 inodos en una extensión de 16 kB.

Extensiones

JFS asigna archivos como una extensión . Una extensión es una secuencia de longitud variable de bloques Agregados. Una extensión puede estar ubicada en varios grupos de asignación . Para resolver esto, las extensiones se indexan en un árbol B+ para un mejor rendimiento al ubicar las ubicaciones de las extensiones.

Compresión

La compresión sólo se admite en JFS1 en AIX y utiliza una variación del algoritmo LZ . Debido al alto uso de la CPU y al aumento de la fragmentación del espacio libre , no se recomienda el uso de la compresión excepto en una estación de trabajo de un solo usuario o en áreas de respaldo fuera de línea .

Entrada/salida concurrente (CIO)

JFS normalmente aplica bloqueo de lectura compartida y escritura exclusiva a los archivos, lo que evita inconsistencias de datos pero impone la serialización de escritura a nivel de archivo. La opción CIO desactiva este bloqueo. Las aplicaciones como las bases de datos relacionales que mantienen la coherencia de los datos por sí mismas pueden utilizar esta opción para eliminar en gran medida los gastos generales del sistema de archivos. [11]

Grupos de asignación

JFS utiliza grupos de asignación. Los grupos de asignación dividen el espacio agregado en porciones. Esto permite a JFS utilizar políticas de asignación de recursos para lograr un excelente rendimiento de E/S. La primera política es intentar agrupar bloques de disco e inodos de disco para datos relacionados en el mismo AG para lograr una buena localidad para el disco. La segunda política es distribuir datos no relacionados por todo el sistema de archivos en un intento de minimizar la fragmentación del espacio libre. Cuando hay un archivo abierto, JFS bloqueará el AG en el que reside el archivo y solo permitirá que el archivo abierto crezca. Esto reduce la fragmentación ya que solo el archivo abierto puede escribir en el AG.

Supermanzanas

El superbloque mantiene información sobre todo el sistema de archivos e incluye los siguientes campos:

En Linux

En el sistema operativo Linux, JFS es compatible con el módulo del kernel (desde la versión del kernel 2.4.18pre9-ac4 ) y las utilidades complementarias del espacio de usuario empaquetadas bajo el nombre JFSutils . La mayoría de las distribuciones de Linux admiten JFS a menos que se elimine específicamente debido a restricciones de espacio, como en los Live CD . [ cita necesaria ]

Según los puntos de referencia de los sistemas de archivos disponibles para Linux, JFS es rápido y confiable, con un rendimiento consistentemente bueno bajo diferentes tipos de carga. [12]

El uso real de JFS en Linux es poco común, ya que ext4 normalmente ofrece un mejor rendimiento [ cita necesaria ] . JFS tiene un papel específico en Linux: ofrece una opción de montaje que no distingue entre mayúsculas y minúsculas, a diferencia de la mayoría de los otros sistemas de archivos de Linux. [13]

También existen problemas potenciales con JFS, como su implementación de redacción de diarios. Se pueden posponer hasta que haya otro desencadenante, potencialmente de forma indefinida, lo que puede provocar la pérdida de datos durante un período de tiempo teóricamente infinito. [14]

Ver también

Referencias

  1. ^ abc "Unas minipreguntas frecuentes sobre JFS". Proyecto JFS para Linux.
  2. ^ "IBM JFS y JFS2". IBM.
  3. ^ abc "Entrevista con las personas detrás de JFS, ReiserFS y XFS".
  4. ^ ab "JFS para Linux". JFS.SourceForge.net . Consultado el 26 de agosto de 2020 .
  5. ^ "Re: ¿cuál usar: ext3, JFS, XFS, ReiserFS?". Archivado desde el original el 3 de marzo de 2016 . Consultado el 31 de marzo de 2008 .
  6. ^ SourceForge.net: debate sobre jfs
  7. ^ "Soporte TRIM para el sistema de archivos JFS".
  8. ^ "Descripción general de JFS". Steve Best, IBM. Archivado desde el original el 29 de enero de 2008 . Consultado el 9 de enero de 2008 .
  9. ^ "Diseño JFS" (PDF) . Steve Best, IBM . Consultado el 1 de mayo de 2008 .
  10. ^ David Kleikamp. "Revista JFS". OSDIR. Archivado desde el original el 3 de marzo de 2016 . Consultado el 7 de julio de 2008 .
  11. ^ "Mejora del rendimiento de la base de datos con E/S simultáneas de AIX: documento técnico" (PDF) . IBM.com . IBM .
  12. ^ "Comparación de sistemas de archivos de 9 vías con un SSD en el kernel de Linux 3.17". Phoronix.com . Consultado el 7 de julio de 2020 .
  13. ^ "jfs_mkfs: cree una partición formateada JFS - Páginas man de Linux (8)". SysTutorials.com . Consultado el 7 de julio de 2020 .
  14. ^ Análisis y evolución de los sistemas de archivos de diario - V. Prabhakaran y otros 2013-06

enlaces externos