Articulo de referencia

Sistema de archivos Andrew

El sistema de archivos Andrew ( AFS ) es un sistema de archivos distribuido que utiliza un conjunto de servidores de confianza para presentar un espacio de nombres de archivo ho...

El sistema de archivos Andrew ( AFS ) es un sistema de archivos distribuido que utiliza un conjunto de servidores de confianza para presentar un espacio de nombres de archivo homogéneo y transparente en cuanto a la ubicación a todas las estaciones de trabajo cliente. Fue desarrollado por la Universidad Carnegie Mellon como parte del Proyecto Andrew . [ 1 ] Originalmente llamado "Vice", [ 2 ] "Andrew" hace referencia a Andrew Carnegie y Andrew Mellon . Su uso principal es en computación distribuida . Continúa principalmente como OpenAFS .

Características

AFS [ 3 ] ofrece varias ventajas sobre los sistemas de archivos en red tradicionales , especialmente en lo que respecta a seguridad y escalabilidad. AFS utiliza Kerberos para la autenticación e implementa listas de control de acceso en directorios para usuarios y grupos. Cada cliente almacena en caché los archivos en el sistema de archivos local para aumentar la velocidad en las solicitudes posteriores del mismo archivo. Esto también permite un acceso limitado al sistema de archivos en caso de fallo del servidor o interrupción de la red .

AFS utiliza el modelo de consistencia débil . [ 4 ] Las operaciones de lectura y escritura en un archivo abierto se dirigen únicamente a la copia almacenada en caché localmente. Cuando se cierra un archivo modificado, las partes modificadas se copian de nuevo al servidor de archivos. La consistencia de la caché se mantiene mediante un mecanismo de devolución de llamada . Cuando un archivo se almacena en caché, el servidor lo registra y se compromete a informar al cliente si otro usuario actualiza el archivo. Las devoluciones de llamada se descartan y deben restablecerse tras cualquier fallo del cliente, del servidor o de la red, incluido un tiempo de espera. Restablecer una devolución de llamada implica una comprobación de estado y no requiere volver a leer el archivo.

Una consecuencia de la estrategia de bloqueo de archivos es que AFS no admite bases de datos compartidas de gran tamaño ni la actualización de registros en archivos compartidos entre sistemas cliente. Esta fue una decisión de diseño deliberada basada en las necesidades percibidas del entorno informático universitario. Por ejemplo, en el sistema de correo electrónico original del Proyecto Andrew, el Sistema de Mensajería Andrew, se utiliza un único archivo por mensaje, como en maildir , en lugar de un único archivo por buzón, como en mbox . Consulte AFS y los problemas de E/S con búfer para obtener información sobre el manejo de bases de datos compartidas.

Una característica importante de AFS es el volumen , una estructura de archivos, subdirectorios y puntos de montaje AFS (enlaces a otros volúmenes AFS). Los administradores crean los volúmenes y los enlazan mediante una ruta específica en una celda AFS. Una vez creados, los usuarios del sistema de archivos pueden crear directorios y archivos con normalidad, sin preocuparse por la ubicación física del volumen. Se puede asignar una cuota a un volumen para limitar el espacio que ocupa. Si es necesario, los administradores de AFS pueden mover ese volumen a otro servidor y ubicación de disco sin necesidad de notificar a los usuarios; incluso puede realizarse mientras se utilizan archivos en ese volumen.

Los volúmenes AFS se pueden replicar en copias clonadas de solo lectura. Al acceder a archivos en un volumen de solo lectura, un sistema cliente recupera los datos de una copia específica. Si en algún momento esa copia deja de estar disponible, los clientes buscarán en cualquiera de las copias restantes. Los usuarios desconocen la ubicación de la copia de solo lectura; los administradores pueden crear y reubicar dichas copias según sea necesario. El conjunto de comandos AFS garantiza que todos los volúmenes de solo lectura contengan copias exactas del volumen original de lectura y escritura en el momento de su creación.

En una estación de trabajo Andrew, el espacio de nombres de archivos se divide en un espacio de nombres compartido y uno local . El espacio de nombres compartido (generalmente montado como /afs en el sistema de archivos Unix) es idéntico en todas las estaciones de trabajo. El espacio de nombres local es único para cada estación de trabajo y solo contiene archivos temporales necesarios para la inicialización de la estación y enlaces simbólicos a archivos en el espacio de nombres compartido.

El sistema de archivos Andrew influyó notablemente en la versión 4 del popular sistema de archivos de red (NFS) de Sun Microsystems . Además, una variante de AFS, el sistema de archivos distribuido DCE (DFS), fue adoptada por la Open Software Foundation en 1989 como parte de su entorno de computación distribuida . Finalmente, AFS (versión dos) fue el predecesor del sistema de archivos Coda .

Implementaciones

Además de la original, se desarrollaron otras implementaciones. OpenAFS se basó en el código fuente publicado por Transarc ( IBM ) en 2000. [ 5 ] El software de Transarc quedó obsoleto y perdió soporte. Arla fue una implementación independiente de AFS desarrollada en el Real Instituto de Tecnología de Estocolmo a finales de la década de 1990 y principios de la de 2000. [ 6 ] [ 7 ]

Existe una cuarta implementación de un cliente AFS en el código fuente del kernel de Linux desde al menos la versión 2.6.10. [ 8 ] Esta implementación, realizada por Red Hat , es bastante simple y aún está incompleta a fecha de enero de 2024. . [ 9 ]

Permisos disponibles

Se pueden otorgar los siguientes permisos de Lista de Control de Acceso (ACL):

Búsqueda (l)
Permite al usuario listar el contenido del directorio AFS, examinar la lista de control de acceso (ACL) asociada al directorio y acceder a los subdirectorios.
Insertar (i)
Permite al usuario añadir nuevos archivos o subdirectorios al directorio.
Eliminar (d)
Permite al usuario eliminar archivos y subdirectorios del directorio.
Administrar (a)
Permite a un usuario modificar la lista de control de acceso (ACL) del directorio. Los usuarios siempre conservan este derecho en su directorio personal, incluso si se eliminan accidentalmente de la ACL.

Los permisos que afectan a los archivos y subdirectorios incluyen:

Leer (r)
Permite al usuario ver el contenido de los archivos en un directorio y listar los archivos en los subdirectorios. Los archivos a los que se les concederá acceso de lectura a cualquier usuario, incluido el propietario, deben tener el permiso estándar de UNIX "lectura del propietario".
Escribir (w)
permite a un usuario modificar archivos en un directorio. Los archivos a los que se les va a otorgar acceso de escritura a cualquier usuario, incluido el propietario, deben tener establecido el permiso estándar de UNIX "escritura del propietario" .
Bloqueo (k)
Permite que el procesador ejecute programas que necesitan bloquear archivos en el directorio.

Además, AFS incluye ACL de aplicación (A)-(H) que no tienen ningún efecto en el acceso a los archivos.

OpenAFS

OpenAFS es una implementación de código abierto de AFS. En LinuxWorld el 15 de agosto de 2000, IBM anunció [ 10 ] sus planes para lanzar una versión de su producto comercial AFS bajo la Licencia Pública de IBM . Esto se convirtió en OpenAFS. Hoy en día, OpenAFS se desarrolla activamente para una amplia gama de familias de sistemas operativos, incluyendo: AIX , MacOS , Darwin , HP-UX , Irix , Solaris , Linux , Microsoft Windows , FreeBSD , NetBSD .

Licencias

Los derechos de autor de muchos archivos fuente originales se atribuyen a IBM y otros colaboradores. La mayor parte del código fuente está cubierta por la Licencia Pública de IBM , [ 11 ] sin embargo, varios archivos en el árbol están cubiertos por licencias de vanidad universitarias .

El 5 de febrero de 2026, Brad Topol (IBM) anunció [ 12 ] [ 13 ] que IBM aprobó cambios de licencia de IBM Developerworks OpenAFS 1.0 de la Licencia Pública de IBM a GPLv2.

Fundación OpenAFS

La Fundación OpenAFS [ 14 ] se estableció el 20 de mayo de 2013 [ 15 ] como una organización sin fines de lucro dedicada a fomentar la estabilidad y el crecimiento de OpenAFS. Lo hace atrayendo y aumentando la comunidad de usuarios de OpenAFS, fomentando la comunidad de expertos de OpenAFS y promoviendo la evolución de OpenAFS. [ 16 ] [ 17 ]

Comunicados

Las versiones de OpenAFS se anuncian en la lista de correo de anuncios de OpenAFS. [ 18 ] La versión actual es OpenAFS 1.8.

Historia

AFS se originó en la Universidad Carnegie Mellon como parte del Proyecto Andrew , [ 36 ] llamado así por Andrew Carnegie y Andrew Mellon. El desarrollo comenzó alrededor de 1983 (con algunas fuentes citando mediados de la década de 1980), inicialmente bajo el nombre de "Vice" [ 2 ]. El proyecto tenía como objetivo crear un sistema de archivos distribuido escalable y transparente a la ubicación para un entorno informático de todo el campus, haciendo hincapié en características como el almacenamiento en caché del cliente, la escalabilidad a muchos clientes por servidor y la autenticación basada en Kerberos.

Los primeros trabajos implicaron la colaboración con IBM. A la versión 1 de AFS (a veces llamada sistema de archivos distribuidos ITC) le siguió una versión rediseñada de AFS 2 (o simplemente AFS) a finales de la década de 1980, que mejoró la escalabilidad y la consistencia de la caché. [ 37 ]

Comercialización por parte de Transarc (finales de la década de 1980-1990)

En 1988 o 1989, empleados de la Universidad Carnegie Mellon fundaron Transarc Corporation para comercializar AFS. Transarc desarrolló y brindó soporte para el código del servidor y del cliente para múltiples sistemas operativos, convirtiendo el proyecto de investigación en un producto comercial.

Transarc fue adquirida por IBM en 1994 [ 38 ] y posteriormente pasó a formar parte de IBM Pittsburgh Labs (alrededor de 1999). Bajo IBM/Transarc, AFS continuó como una oferta comercial con desarrollo continuo.

El código abierto y el nacimiento de OpenAFS (2000)

El 15 de agosto de 2000, en LinuxWorld, IBM anunció sus planes para liberar el código fuente de su producto comercial AFS bajo la Licencia Pública de IBM (IPL 1.0, una licencia de código abierto aprobada por la OSI). El código se publicó en noviembre de 2000 (aunque el lanzamiento como código abierto suele fecharse el 1 de noviembre de 2000), y el proyecto se denominó OpenAFS . Esto puso el código fuente a disposición de la comunidad para su desarrollo y mantenimiento. OpenAFS 1.0 se lanzó poco después, el 4 de noviembre de 2000. Un grupo de voluntarios y entusiastas de AFS, incluidos algunos de la Universidad Carnegie Mellon (CMU), se encargaron del mantenimiento y el desarrollo posterior.

Desarrollo posterior al año 2000 y gobernanza comunitaria

OpenAFS se ha desarrollado como un proyecto comunitario desde su publicación como código abierto, con contribuciones de voluntarios, empresas e instituciones. Es compatible con una amplia gama de plataformas, incluyendo diversas variantes de UNIX/Linux, macOS, Windows y otras. El desarrollo se ha centrado en la corrección de errores, mejoras de seguridad, compatibilidad con el kernel (especialmente Linux), optimización del rendimiento y la incorporación de nuevas funcionalidades, manteniendo la compatibilidad con el protocolo AFS.

Las versiones se clasifican en series como 1.0 (inicial), 1.2, 1.4, 1.6 y la actual serie 1.8 (con versiones de mantenimiento que continuarán hasta 2026, por ejemplo, 1.8.16 en mayo de 2026).

Estado actual

OpenAFS se mantiene activamente como la implementación de referencia de código abierto de AFS, con actualizaciones de seguridad y compatibilidad. Continúa utilizándose en entornos académicos, de investigación y empresariales que requieren un sistema de archivos distribuido maduro.

Véase también

Referencias

  1. ¿Qué es Andrew? Archivado el 9 de septiembre de 2011 en Wayback Machine , parte del sitio oficial de CMU que narra la historia del Proyecto Andrew .
  2. 1 2 Garfinkel, Simson L. (mayo-junio de 1989). "Ondas en el mercado académico" (PDF) . Technology Review . págs. 9-13 . Archivado (PDF) del original el 9 de octubre de 2022. Recuperado el 25 de enero de 2016 . 
  3. Howard, JH; Kazar, ML; Nichols, SG; Nichols, DA; Satyanarayanan, M.; Sidebotham, RN y West, MJ (febrero de 1988). "Escalabilidad y rendimiento en un sistema de archivos distribuido". ACM Transactions on Computer Systems . 6 (1): 51– 81. CiteSeerX 10.1.1.71.5072 . doi : 10.1145/35037.35059 . S2CID 52848606 .  
  4. Yaniv Pessach (2013), Almacenamiento distribuido (Almacenamiento distribuido: conceptos, algoritmos e implementaciones , ed.), Amazon, OL 25423189M  
  5. Apertura de AFS
  6. Assar Westerlund y Johan Danielsson (1998). "Arla: un cliente AFS gratuito". Actas de USENIX 1998, Freenix Track . CiteSeerX 10.1.1.16.1360 . 
  7. Magnus Ahltorp, Love Hörnquist-Åstrand y Assar Westerlund (2000). "Adaptación del sistema de archivos Arla a Windows NT". Taller sobre gestión y administración de entornos distribuidos . CiteSeerX 10.1.1.512.9570 . 
  8. Documentación del kernel de Linux AFS para la versión 2.6.10
  9. "Documentación del kernel de Linux AFS para la versión 6.7.1" . linux.no . 7 de enero de 2024. Consultado el 11 de mayo de 2024 .
  10. os-afs archivado
  11. Licencia pública de IBM 1.0
  12. Anuncio de cambios en la licencia de IBM Developerworks OpenAFS 1.0
  13. Anuncio de cambios en la licencia de IBM Developerworks OpenAFS 1.0 - PDF Texto completo
  14. Sitio web de la Fundación OpenAFS
  15. Estatutos de la Fundación OpenAFS, Inc. - PDF Texto completo
  16. Acerca de la Fundación OpenAFS
  17. Presentación de la Fundación OpenAFS - Conferencia EuroAFS
  18. Lista de correo de anuncios de OpenAFS
  19. Versión - OpenAFS 1.0
  20. Versión - OpenAFS 1.0.4a
  21. Versión - OpenAFS 1.1.0
  22. Versión - OpenAFS 1.1.1a
  23. Versión - OpenAFS 1.2.0
  24. Versión - OpenAFS 1.2.13
  25. Versión - OpenAFS 1.3.50
  26. Versión - OpenAFS 1.3.87
  27. Versión - OpenAFS 1.4.0
  28. Versión - OpenAFS 1.4.15
  29. Versión - OpenAFS 1.6.0
  30. Versión - OpenAFS 1.6.25
  31. Versión - OpenAFS 1.7.1
  32. Versión - OpenAFS 1.7.31
  33. Versión - OpenAFS 1.8.0
  34. Versión - OpenAFS 1.8.16
  35. Versión - OpenAFS 1.9.0
  36. ¿Qué es Andrew? Archivado el 9 de septiembre de 2011 en Wayback Machine , parte del sitio oficial de CMU que narra la historia del Proyecto Andrew .
  37. Sistema de archivos Andrew, Sistemas operativos: Tres piezas sencillas
  38. Adquisición para reforzar la red de IBM

Bibliografía

  • Campbell, Richard (1 de febrero de 1998). Managing AFS (1.ª  ed.). Prentice Hall . pág.  479. ISBN 978-0-13-802729-2.
  • Milicchio, Franco; Gehrke, Wolfgang (7 de junio de 2007). Servicios distribuidos con OpenAFS (1.ª  ed.). Springer Science+Business Media . pág.  395. ISBN 978-3-540-36634-8.
  • OpenAFS
  • Wiki de AFS
  • Arla

Lecturas adicionales

  • El sistema de archivos Andrew (2014), Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C.; Libros de Arpaci-Dusseau