Andrew File System

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

El Andrew File System (Sistema de archivos Andrew), o AFS[1] es un sistema de archivos distribuido a través de la red que fue desarrollado como parte del proyecto Andrew por la Universidad Carnegie Mellon.[2] Su nombre proviene de Andrew Carnegie y Andrew Mellon. Es utilizado fundamentalmente en entornos de computación distribuida.

Características[editar]

AFS[3] tiene varios beneficios sobre los sistemas de archivos en red tradicionales, en particular en áreas de seguridad y escalabilidad. Es frecuente que los despliegues de AFS en empresas lleguen a tener más de 25.000 clientes.[4] AFS usa Kerberos como mecanismo de autenticación, e implementa listas de control de acceso en directorios para usuarios y grupos. Cada cliente mantiene una caché en el sistema de archivos local para aumentar la velocidad de acceso a los archivos. Esto también permite el acceso limitado al sistema de archivos en el caso de caída del servidor o un fallo de red.

AFS utiliza el modelo de baja consistencia.[5] En AFS los archivos son cacheados bajo demanda en las estaciones locales. Las operaciones de lectura y escritura sobre un archivo abierto se realizan únicamente en la copia almacenada en caché. Cuando se cierra un archivo modificado, las porciones que han cambiado son copiadas de vuelta al servidor de archivos. La consistencia de la caché se mantiene a través del mecanismo denominado "callback". Cuando un cliente cachea un archivo el servidor toma nota del hecho y promete informar al cliente si el archivo es actualizado por algún otro cliente. Los "callbacks" son descartados y se deben restablecer tras el fallo del cliente, del servidor o de la red, incluyendo un tiempo de expiración. El restablecimiento de un "callback" involucra una comprobación del estado y no requiere la relectura del archivo completo.

Una consecuencia de la estrategia de bloqueo de todo el archivo es que AFS no soporta grandes bases de datos compartidas o grabar actualizaciones dentro de archivos compartidos entre sistemas cliente. Esto fue una decisión de diseño deliberada basada en las necesidades percibidas del sistema informático en el entorno universitario. Esto hace, por ejemplo, que se usa un único archivo por cada mensaje en el sistema original para el proyecto Andrew, el Andrew Message System, más que un único archivo flexible para cada buzón.

Una característica importante de AFS es el volumen, un árbol de archivos y subdirectorios. Los volúmenes los crean los administradores y los enlazan con una ruta específica en una celda AFS. Una vez ha sido creado, los usuarios del sistema de archivos pueden crear directorios y archivos de manera normal sin tener en cuenta donde se encuentra físicamente el volumen. Un volumen puede tener una cuota asignada para limitar la cantidad de espacio consumido. Según las necesidades, los administradores de AFS pueden mover ese volumen a otro servidor y otra localización en disco sin la necesidad de notificar a los usuarios de dicho cambio; de hecho esta operación puede realizarse mientras se están usando los archivos dentro del volumen.

Los volúmenes pueden ser replicados para copias de respaldo de sólo lectura. Cuando se accede a archivos en un volumen de sólo lectura, un sistema cliente obtendrá datos de una copia de sólo lectura particular. Si en algún punto esa copia deja de estar disponible, el cliente buscará otra de las copias restantes. De nuevo, los usuarios de esos datos se despreocupan sobre la localización física de esta copia; los administradores pueden crear y recolocar tales copias según las necesidades. La suite de comandos AFS garantiza que todos los volúmenes de sólo lectura contienen copias iguales del volumen original de lectura-escritura en el momento que se creó la copia de sólo lectura.

El espacio de nombres de archivos en una estación de trabajo Andrew es particionada en dos espacios: el espacio de nombre compartido y el local. El espacio de nombres compartido es idéntico en todas las estaciones. El espacio local es único para cada estación. Sólo contiene archivos temporales necesarios para la inicialización de la estación y enlaces simbólicos a los archivos que se encuentran en el espacio de nombres compartido.

El sistema de archivos Andrew influyó en gran medida a la versión 4 del popular sistema de archivos en red NFS, de Sun Microsystems. Adicionalmente, una variante de AFS, es el DCE Distributed File System (DCE DFS), sistema de archivos distribuido, desarrollado por la Open Software Foundation (OSF) en 1989 como parte de DCE, un paquete de aplicaciones y sistema de desarrollo de software de computación distribuida.

Implementaciones[editar]

Hay tres grandes implementaciones de AFS: Transarc (IBM), OpenAFS y Arla, aunque Transarc ya no tiene soporte y está desatendido. AFS (versión dos) también es el predecesor del sistema de archivos Coda.

Existe una cuarta implementación en el código fuente de Linux desde la versión 2.6.10.[6] Enviada por Red Hat, es una implementación muy sencilla que todavía se encuentra en las primeras fases de desarrollo y por tanto incompleta a fecha de enero de 2013.[7]

Referencias[editar]

  1. Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Operating Systems: Three Easy Pieces [The Andrew File System (AFS)], Arpaci-Dusseau Books, http://pages.cs.wisc.edu/~remzi/OSTEP/dist-afs.pdf 
  2. What is Andrew - part of CMU's official site chronicling the history of the Andrew Project.
  3. Howard, J.H., Kazar, M.L., Nichols, S.G., Nichols, D.A., Satyanarayanan, M., Sidebotham, R.N., & West, M.J. (febrero de 1988). «Scale and Performance in a Distributed File System». ACM Transactions on Computer Systems 6 (1): 51–81. doi:10.1145/35037.35059. 
  4. http://www-conf.slac.stanford.edu/AFSBestPractices/Slides/MorganStanley.pdf
  5. Yaniv Pessach (2013), Distributed Storage (Distributed Storage: Concepts, Algorithms, and Implementations edición), Amazon, http://openlibrary.org/books/OL25423189M/Distributed_Storage_Concepts_Algorithms_and_Implementations 
  6. Linux kernel AFS documentation for 2.6.10
  7. Linux kernel AFS documentation for the latest kernel version

Enlaces externos[editar]