Articulo de referencia

OrangeFS

Linux kernel 5.13 +"},"latest preview version":{"wt":""},"latest preview date":{"wt":""},"programming language":{"wt":"[[C (programming language)|C]]"},"operating system":{"wt":...

OrangeFS es un sistema de archivos paralelo de código abierto , la próxima generación del Sistema de Archivos Virtuales Paralelos (PVFS). Un sistema de archivos paralelo es un tipo de sistema de archivos distribuido que distribuye datos de archivos entre múltiples servidores y permite el acceso concurrente de múltiples tareas de una aplicación paralela. OrangeFS fue diseñado para su uso en computación en clúster a gran escala y es utilizado por empresas, universidades, laboratorios nacionales y sitios similares en todo el mundo. [ 1 ] [ 2 ] [ 3 ] [ 4 ]

Versiones y características

2.8.5

  • Infraestructura de comunicación de servidor a servidor
  • Opción SSD para el almacenamiento de metadatos distribuidos
  • Compatibilidad total con clientes Windows nativos
  • Replicación para archivos inmutables

2.8.6

  • Interfaz directa para aplicaciones
  • Almacenamiento en caché del cliente para la interfaz directa con coherencia de sistema único multiproceso.
  • Versión inicial de webpack compatible con WebDAV y S3 a través de módulos Apache [ 5 ]

2.8.7

  • Actualizaciones, correcciones y mejoras de rendimiento

2.8.8

2.9

  • Metadatos distribuidos para entradas de directorio [ 6 ]
  • Seguridad basada en capacidades en 3 modos
    • Seguridad estándar
    • Seguridad basada en claves
    • Seguridad basada en certificados con soporte para interfaz LDAP
  • Documentación ampliada

2.10

  • Corrección de errores y cambios en la compilación para dar soporte a las distribuciones más recientes.
  • El cliente del kernel principal de Linux es el método de acceso principal para Linux; el módulo del kernel externo está obsoleto.
  • El cliente OrangeFS para Windows se ha actualizado.

Historia

OrangeFS surgió como una rama de desarrollo de PVFS2, por lo que comparte gran parte de su historia con la de PVFS. La extensa historia de OrangeFS, que abarca veinte años, se resume en la siguiente cronología.

Una rama de desarrollo es una nueva dirección en el desarrollo. La rama OrangeFS se inició en 2007, cuando los líderes de la comunidad de usuarios de PVFS2 determinaron que:

  • Muchos estaban satisfechos con los objetivos de diseño de PVFS2 y necesitaban que permaneciera relativamente sin cambios para garantizar la estabilidad futura.
  • Otros concibieron el PVFS2 como una base sobre la cual construir un conjunto completamente nuevo de objetivos de diseño para aplicaciones más avanzadas del futuro.

Por eso, OrangeFS suele describirse como la próxima generación de PVFS2.

1993
El Sistema de Archivos Virtuales Paralelos (PVFS) fue desarrollado por Walt Ligon y Eric Blumer con una subvención de la NASA para estudiar los patrones de entrada/salida de los programas paralelos. La versión 0 de PVFS se basó en el sistema de archivos paralelos Vesta, desarrollado en el Centro de Investigación Thomas J. Watson de IBM , y su nombre deriva de su desarrollo para funcionar con la Máquina Virtual Paralela (PVM).
1994
Rob Ross reescribió PVFS para usar TCP/IP, diferenciándose significativamente del diseño original de Vesta. La versión 1 de PVFS estaba dirigida a un clúster de estaciones de trabajo DEC Alpha en FDDI, un predecesor de la red Fast Ethernet. PVFS logró mejoras significativas con respecto a Vesta en la planificación de operaciones de entrada/salida de disco cuando varios clientes acceden a un archivo común.
Finales de 1994
El Centro de Vuelos Espaciales Goddard eligió PVFS como sistema de archivos para el primer Beowulf (las primeras implementaciones de computadoras comerciales basadas en Linux que funcionaban en paralelo). Ligon y Ross trabajaron con desarrolladores clave del GSFC, incluidos Thomas Sterling, Donald Becker, Dan Ridge y Eric Hendricks, durante los años siguientes.
1997
PVFS se lanzó como un paquete de código abierto.
1999
Ligon propuso el desarrollo de una nueva versión de PVFS. Desarrollado inicialmente en la Universidad de Clemson, el diseño se completó gracias a un esfuerzo conjunto entre colaboradores de Clemson, el Laboratorio Nacional Argonne y el Centro de Supercomputación de Ohio , incluyendo importantes contribuciones de Phil Carns, un estudiante de doctorado de Clemson.
2003
Se ha lanzado PVFS2, que incluye servidores de objetos, metadatos distribuidos, compatibilidad con múltiples servidores de metadatos, vistas de archivos basadas en MPI (Message Passing Interface, un protocolo optimizado para la computación de alto rendimiento) para diversos tipos de red, y una arquitectura flexible para facilitar la experimentación y la extensibilidad. PVFS2 se convierte en un proyecto de "Comunidad Abierta", con contribuciones de numerosas universidades y empresas de todo el mundo.
2005
La versión 1 de PVFS fue retirada. PVFS2 aún cuenta con el soporte de Clemson y Argonne. En los últimos años, diversos colaboradores (muchos de ellos diseñadores y desarrolladores de programas de formación) han seguido mejorando el rendimiento de PVFS.
2007
Los Laboratorios Nacionales Argonne eligieron PVFS2 para su supercomputadora IBM Blue Gene/P, patrocinada por el Departamento de Energía de Estados Unidos.
2008
Ligon y otros en Clemson comenzaron a explorar las posibilidades para la próxima generación de PVFS en una hoja de ruta que incluía las crecientes necesidades de la computación en clúster en el sector empresarial. A medida que desarrollaban extensiones para admitir grandes directorios de archivos pequeños, mejoras de seguridad y capacidades de redundancia, muchos de estos objetivos entraron en conflicto con el desarrollo de Blue Gene. Con prioridades divergentes, el código fuente de PVFS se dividió en dos ramas. La rama para la nueva hoja de ruta se denominó "Orange" en honor a los colores de la Universidad de Clemson, y la rama para sistemas heredados se denominó "Blue" por su instalación pionera en Argonne. OrangeFS se convirtió en la nueva marca de sistemas abiertos para representar este sistema de archivos virtual de próxima generación, con énfasis en la seguridad, la redundancia y una gama más amplia de aplicaciones.
Otoño de 2010
OrangeFS se convirtió en la rama principal de PVFS, y Omnibond comenzó a ofrecer soporte comercial para OrangeFS/PVFS, otorgando la máxima prioridad de desarrollo a las solicitudes de nuevas funciones de los clientes con soporte de pago. Se presentó la primera versión de producción de OrangeFS.
Primavera de 2011
OrangeFS 2.8.4 lanzado
Septiembre de 2011
OrangeFS añade un cliente para Windows.
Febrero de 2012
OrangeFS 2.8.5 lanzado
Junio ​​de 2012
Se ha lanzado OrangeFS 2.8.6, que ofrece un rendimiento mejorado, clientes web y bibliotecas de interfaz directa. El nuevo paquete web de OrangeFS proporciona soporte integrado para WebDAV y S3.
Enero de 2013
OrangeFS 2.8.7 lanzado
Mayo de 2013
OrangeFS está disponible en el mercado de Amazon Web Services . La versión beta 2.9 de OrangeFS ya está disponible e incorpora dos nuevos modos de seguridad, además de permitir la distribución de entradas de directorio entre varios servidores de datos.
Abril de 2014
OrangeFS 2.8.8 lanzado, añadiendo soporte para mmap compartido y soporte JNI para aplicaciones del ecosistema Hadoop, lo que permite el reemplazo directo de HDFS.
Noviembre de 2014
OrangeFS 2.9.0 se ha lanzado añadiendo soporte para metadatos distribuidos para entradas de directorio mediante un algoritmo de hash extensible basado en giga+, una seguridad basada en capacidades retrocompatibles con POSIX que admite múltiples modos.
Enero de 2015
OrangeFS 2.9.1 lanzado
Marzo de 2015
OrangeFS 2.9.2 lanzado
Junio ​​de 2015
OrangeFS 2.9.3 lanzado
Noviembre de 2015
OrangeFS está incluido en la versión 1.0 de CloudyCluster en AWS.
Mayo de 2016
OrangeFS es compatible con el kernel de Linux 4.6 [ 7 ] [ 8 ] [ 9 ] [ 10 ]
Octubre de 2017
Versión 2.9.6 publicada
Enero de 2018
2.9.7 Publicado, el paquete rpm de OrangeFS ahora se incluirá en la distribución Fedora [ 11 ]
Febrero de 2019
CloudyCluster v2 se ha lanzado en el mercado de AWS e incluye OrangeFS.
Junio ​​de 2019
CloudyCluster v2 se ha lanzado en GCP con OrangeFS.
Julio de 2019
OrengeFS está integrado con la caché de páginas de Linux en el kernel de Linux 5.2 [ 12 ]
Enero de 2020
Solución provisional de OrangeFS para problemas de escritura después de la apertura, integrada en el kernel de Linux 5.5.
Agosto de 2020
Parche del kernel para volver a la versión 5.4lts que corrige problemas con tamaños de bloque no estándar.
Septiembre de 2020
Versión 2.9.8 publicada
Junio ​​de 2021
Núcleo de Linux 5.13: La función readahead de OrangeFS en el núcleo de Linux se ha rediseñado para aprovechar la nueva lógica de xarray y readahead_expand. Esto mejoró significativamente el rendimiento de lectura. [ 13 ]
Julio de 2021
Error en los resultados de df: df en OrangeFS informaba un valor demasiado pequeño en comparación con la realidad, lo que causaba problemas con el instalador preconfigurado (y confusión en los usuarios). [ 14 ] Esto se ha incorporado a varios kernels anteriores, además de estar incluido en la versión más reciente. [ 15 ]
Octubre de 2022
(Núcleo) cambia .iterate por .iterate_shared en orangefs_dir_operations. Dado que iterate es una llamada obsoleta.
Noviembre de 2022
(Núcleo) Las ACL se reelaboraron en el núcleo del núcleo y se actualizó el manejo del modo OrangeFS para reflejar el cambio.
Diciembre de 2022
(Núcleo) Se corrigió una fuga de memoria al salir en el código de OrangeFS sysfs y debufs.

Primer trimestre de 2023 (enero-marzo)

  • Cambios :
    • Propuesta de conversión de la función de lectura anticipada de OrangeFS para que utilice folios, sustituyendo el manejo tradicional basado en páginas, con el fin de mejorar el rendimiento de lectura y alinearse con las tendencias modernas de la caché de páginas del kernel.
    • Discusiones iniciales y parches para simplificar el paso de argumentos en las funciones readdir de OrangeFS, mejorando la claridad del código.

Segundo trimestre de 2023 (abril-junio)

  • Cambios :
    • Se integró la lectura anticipada basada en folios para OrangeFS en la rama mm-unstable, lo que mejoró la eficiencia de lectura.
    • Se corrigió un código de error incorrecto en orangefs_sysfs_init(), lo que mejora la fiabilidad de la inicialización de sysfs.
    • Se ha introducido un módulo de lectura de empalme para OrangeFS, lo que permite operaciones de E/S más eficientes mediante el empalme.
    • Se ha convertido OrangeFS a nuevas funciones de acceso a ctime, en consonancia con las mejoras en el manejo de marcas de tiempo de VFS.

Tercer trimestre de 2023 (julio-septiembre)

  • Cambios :
    • Continúa el perfeccionamiento de la compatibilidad con marcas de tiempo multigrano, y OrangeFS adopta nuevos accesores atime/mtime.
    • Se ha movido orangefs_xattr_handlers a .rodata, mejorando la seguridad y la eficiencia al convertirlo en un archivo de solo lectura.
    • Se propone reemplazar strncpy() por strscpy() en OrangeFS para solucionar los riesgos de truncamiento de cadenas (parche inicial).

Cuarto trimestre de 2023 (octubre-diciembre)

  • Cambios :
    • Se ha finalizado la conversión a nuevos accesores de marca de tiempo para atime, mtime y ctime, lo que garantiza la compatibilidad con VFS.
    • Se ha simplificado el paso de argumentos de readdir, lo que mejora la eficiencia de las operaciones con directorios.
    • Se eliminaron las banderas ORANGEFS_CACHE_CREATE_FLAGS no utilizadas, lo que optimiza el código.

Primer trimestre de 2024 (enero-marzo)

  • Cambios :
    • Se corrigió una desreferenciación NULL en orangefs_mount, reportada por Julia Lawall y el robot de pruebas del kernel, lo que evita fallos en el montaje.
    • Se solucionó una fuga en el conteo de referencias del superbloque, mejorando la gestión de recursos.
    • Se ha movido el código de depuración a orangefs-debugfs.c, mejorando así la organización del código.
    • Se ha sustituido strncpy() por strscpy() en todo OrangeFS, lo que resuelve las advertencias de truncamiento y mejora la seguridad de las cadenas.
    • Se han enviado actualizaciones para Linux 6.9, que incluyen mejoras en el manejo de cadenas y en el código de depuración.

Segundo trimestre de 2024 (abril-junio)

  • Cambios :
    • Se eliminó el uso del indicador PG_error en OrangeFS, simplificando el manejo de errores como parte de una limpieza general del kernel.
    • Se han convertido las operaciones de lectura/escritura para que utilicen iteradores, reemplazando los métodos obsoletos ->read()/->write().
    • Se ha finalizado la corrección del acceso a fsid fuera de los límites (CVE-2024-42143), y se ha aplicado a varios kernels estables.

Tercer trimestre de 2024 (julio-septiembre)

  • Cambios :
    • Se modificaron las funciones orangefs_write_begin y orangefs_write_end para que utilicen folios, lo que mejora el rendimiento de escritura.
    • Se rechazó un problema de acceso a fsid duplicado (CVE-2024-42143), lo que confirma la suficiencia de la corrección anterior.
    • Se han enviado cambios para OrangeFS en Linux 6.12, que probablemente incluyan correcciones para Folio y mejoras de estabilidad.

Cuarto trimestre de 2024 (octubre-diciembre)

  • Cambios :
    • Se informó y corrigió una vulnerabilidad de lectura fuera de límites en orangefs_debug_write (CVE-2025-21782), provocada por syzbot, lo que evitó fallos o corrupción de datos.
    • Se reemplazó strcpy por strscpy en orangefs_inode_getxattr(), mejorando aún más la seguridad de las cadenas.
    • Se revisaron las mejoras en la gestión de memoria de folio, que permiten la integración de OrangeFS con folio.

Primer trimestre de 2025 (enero-marzo)

  • Cambios :
    • Se solucionó el problema de escritura de depuración fuera de límites (CVE-2025-21782), con retrocompatibilidad a las versiones 4.19–6.13, mediante múltiples solicitudes de extracción.
    • Se ha mejorado la función orangefs_d_revalidate() con un manejo estable del inodo padre y el nombre del sistema de archivos virtual (VFS), y se ha garantizado la seguridad de debugfs.
    • Se ha enviado una serie de 9 parches para Linux 6.15, que incluyen una corrección del truncamiento del tamaño de los archivos, mejoras en la escritura diferida de folio y simplificaciones del código.
    • Se corrigió un error de truncamiento del tamaño de los archivos, que se incorporó a las versiones 5.4–6.14, evitando así la pérdida de datos.
    • Se solucionó una regresión de escritura diferida en la versión 6.14 (commit 665575cf), mejorando el rendimiento.
    • Se corrigieron errores en el código de conteo y se resolvieron problemas de integración con VFS.

Segundo trimestre de 2025 (abril-junio)

  • Cambios :
    • Se continuó abordando la regresión de escritura diferida de la versión 6.14, garantizando la integridad de los datos.
    • He enviado solicitudes de incorporación de cambios a OrangeFS para Linux 6.16, incluyendo correcciones y mejoras en curso.
    • Se han solucionado los problemas de parches duplicados en linux-next, mejorando la integración.

En septiembre de 2025, OrangeFS v2.10.1 fue la última versión de la línea OrangeFS e incluyó actualizaciones para ser compatible con las últimas versiones del sistema operativo Linux, correcciones de errores y el cliente para Windows.

Actualizaciones generales

  • Actualizaciones de la documentación.
  • Se eliminó la dependencia de c-shell.
  • Cambiar el enlace de compilación predeterminado de estático a compartido.
  • Cambiar de bdb a lmdb para la base de datos predeterminada
  • Script de configuración actualizado para usrint.
  • Se ha refactorizado parte del código para que cumpla con los estándares de codificación.

tesoro

  • Truncar bstream antes de establecer el atributo de tamaño en caso de que falle el anterior.
  • Bloqueo local para truncar y también ajuste el atributo de tamaño.

correcciones generales

  • Ajustar algunas funciones en las máquinas de estados para que coincidan con sus prototipos.
  • Añade algunos comentarios de chismes y mejora otros.
  • Se ha restaurado la capacidad de invocar "make dist".
  • Se corrigió el procesamiento de cadenas de db_display.
  • Se corrigió el manejo de errores de truncamiento de bstream-resize.

Referencias

  1. Andrew Savchenhk (16 de febrero de 2013). "Introducción a los sistemas de archivos distribuidos, experiencia con OrangeFS" (PDF) .
  2. Jeff Darcy (24 de febrero de 2011). "Analizando a la competencia" . Archivado del original el 30 de septiembre de 2012.
  3. "El sistema de archivos paralelo OrangeFS comienza a ganar popularidad" . HPCwire. 18 de noviembre de 2011.
  4. Erick Slack (29 de junio de 2012). "Alternativa de sistema de archivos de alto rendimiento de código abierto" . Archivado del original el 21 de mayo de 2017. Recuperado el 10 de septiembre de 2013 .
  5. Michael Moore; David Bonnie; Walt Ligon; Nicholas Mills; Shuangyang Yang; Becky Ligon; Mike Marshall; Elaine Quarles; Sam Sampson; Boyd Wilson (2011). OrangeFS: Avances en PVFS (PDF) . FAST 2011.
  6. Shuangyang Yang. Walter B. Ligon III. Elaine C. Quarles Universidad de Clemson (2011), "Implementación de directorio distribuido escalable en Orange File System", SNAPI 2011.
  7. "Archivo del kernel de Linux: Linux 4.6-rc1" .
  8. "Lanzamiento oficial del kernel de Linux 4.6, que introduce OrangeFS y compatibilidad con USB 3.1 SSP" . 15 de mayo de 2016.
  9. Becky Ligon (27 de octubre de 2016). "Anuncio del lanzamiento de OrangeFS 2.9.6" . Archivado del original el 20 de diciembre de 2016. Consultado el 15 de diciembre de 2016 .
  10. Mike Marshall (18 de septiembre de 2016). "OrangeFS Kernel Readme" .
  11. "Anuncio de paquete de Fedora: Actualización de Fedora 27: Orangefs-2.9.7-1.fc27" . Archivado del original el 4 de marzo de 2018. Consultado el 4 de marzo de 2018 .
  12. Mike Marshall (10 de mayo de 2019). "Commit del kernel de OrangeFS 5.2" .
  13. "Kernel/Git/Torvalds/Linux.git - Árbol de código fuente del kernel de Linux" .
  14. " [ PATCH 5.12 153/292 ] orangefs: Corrige la salida de orangefs df. - Greg Kroah-Hartman" .
  15. "El parche "orangefs: Fix OrangeFS df output." se ha añadido al árbol 4.19-stable — Linux Stable Commits" .
  • Sistema de archivos Orange : la próxima generación del sistema de archivos virtuales paralelos.
  • Arquitectura de un sistema de archivos paralelos de próxima generación Archivado el 11/01/2015 en Wayback Machine ( Archivo de vídeo Archivado el 28/03/2016 en Wayback Machine )
  • Implementación de directorio distribuido escalable en el sistema de archivos Orange.
  • Elasticluster con OrangeFS
  • OrangeFS en el mercado de AWS