Sistema de archivos distribuido: AFS
Hoy me apetece hablar de un sistema de archivos al que le tengo ganas: AFS
. No es nada nuevo o revolucionario, ni siquiera sé si está de moda. Pero bueno, esta bitácora trata también estos temas: la tecnología de ayer, hoy y siempre (got UNIX? ;)).
Se trata de un sistema de ficheros distribuido que permite a distintas estaciones que cooperan, compartir ficheros en red.
Ya trabajé un poco con NFS, y los resultados fueron satisfactorios. Pero la clave aquí no es que se trate de un sistema de archivos en red, sino en que es distribuido, y en que ha sido diseñado para trabajar en redes de área extensa.
Antes de entrar en más detalle veamos un poco de historia.
AFS
viene de Andrew File System, ya que el proyecto del ITC en la universidad de Carnegie-Mellon se tenía el nombre en clave 'Andrew' en honor a los fundadores de la universidad. Una vez que sistema demostró su viabilidad y se convirtió en un producto de Transarc Corp. (ahora parte de IBM), el nombre AFS
prevaleció (dicen que porque la raíz se montaba en /afs
, con lo que resultaba muy costoso cambiar el nombre y modificar todos los sistemas ya existentes ;)).
Para entender el funcionamiento de AFS
primero hay que enfrentarse al concepto de célula: se trata de una colección de servidores que se presentan como un único sistema de ficheros.
Las claves de AFS
son:
- Caché: Los clientes ejecutan un proceso de caché que se encarga de procesar las peticiones, guardando copia en el disco local de los ficheros accedidos. Esto acelera en muchos casos el trabajo. Además los ficheros en
AFS
se guardan en estructuras llamadas volúmenes que, en caso de accesos frecuentes, se replicarán en los servidores de la misma célula, lo cual tiene en cuenta el caché para pedir los datos a la réplica más adecuada (viendo congestión, proximidad, disponibilidad, etc.). Además puede trabajar con la copia local en caso de caída de los servidores (en modo solo lectura). - Seguridad: El sistema emplea Kerberos y dispone de listas de control de acceso (ACL). Me ha llamado la atención que implemente autentificación mutua: tanto los servidores como los clientes se identifican. Además las autentificaciones son por célula, con lo que no tenemos que tener ni cuenta en el cliente, solo en la célula a la que accedemos :o.
- Simplicidad de uso: Gracias a la agrupación en células resulta muy sencillo acceder a los ficheros remotos. No es necesario conocer cada uno de los servidores, solo identificando la célula es suficiente. La documentación se refiere a esto como 'independencia de la localización'. Además es fácil mover ficheros de una célula a otra gracias al caché (no es necesario hacer copia local).
- Escalabilidad: Gracias al punto anterior es fácil escalar el servicio. Basta con añadir más servidores a la célula, sin que los clientes tengan que estar al tanto de ello.
El sistema de archivos tiene algunas particularidades que nos pueden llamar la atención al trabajar con él.
La primera es que probablemente nos tenemos que autentificar con Kerberos antes de acceder los ficheros, o sino solo podremos acceder a los que estén disponibles para invitados.
Los permisos tampoco funcionarán exáctamente igual a como estamos acostumbrados. Lo más destacable es que los permisos para grupo y 'otros' se ignoran, y se enfatiza en emplear las ACL de AFS
(que se centran en directorios y no en ficheros).
Hay otras cuestiones menores, aunque quizás sea importante destacar que los cambios permanecen en el caché local hasta que se cierra el fichero o se sincroniza el sistema de archivos (no se basa en operaciones atómicas como NFS
). La mayoría de las aplicaciones hacen esto, con lo que no tendremos que preocuparnos.
Y hasta aquí veo conveniente enrollarme. Solo comentar que esto no es lo último, como decía al principio. La verdad es que lo más es Coda, un fork de la idea de AFS
que permite otras características casi mágicas como el trabajo desconectado (con posterior sincronización). Me lo apunto para el TODO ;).
OpenBSD trae una implementación Libre de AFS
que se llama Arla, así que me está picando mucho el gusanillo para probar el tema esta Semana Santa (¡si tengo tiempo!). A ver si montamos el acceso a elxwifi
de Pedro y tengo alguien con quien jugar :D.
Hay 2 comentarios
AFS es un sistema de ficheros que me picó el gusanillo, otro que también es "divertido" es UnionFS ( http://www.fsl.cs.sunysb.edu/project-unionfs.html ). Hay un artículo en Linux Journal ( http://www.linuxjournal.com/article/7714 ) que muestra su funcionamiento de una forma bastante clara.
El sistema de ficheros lo conocí porque Knoppix va a comenzar a usarlo para poder guardar configuraciones y poder modificar los ficheros (guardando las modificaciones en disco duro, claro). Puede ser bastante atractivo...
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por Felipe, en 2005-03-09 20:54:25 ∞