Sistema de Ficheros Distribuidos
Sistema de Ficheros Distribuidos
Sistema de Ficheros Distribuidos
Conceptos bsicos
Sistema de ficheros distribuido (SFD)
Sistema de ficheros para sistema distribuido Gestiona distintos dispositivos en diferentes nodos ofreciendo a usuarios la misma visin que un SF centralizado Permite que usuarios compartan informacin de forma transparente Misma visin desde cualquier mquina (espacio de nombres nico)
Numerosos aspectos similares a SF centralizados Algunos aspectos especficos como por ejemplo:
Traduccin de nombres afecta a varios nodos Caching afecta a mltiples nodos Aspectos de tolerancia a fallos
Dos alternativas:
nico mdulo que ofrece ambos servicios (a lo UNIX)
servidor de ficheros incluye ambas funciones
directorio es slo un fichero especial
Client module
Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000
Servicio de directorio
Esquema de nombres generalmente con dos niveles:
Nombres de usuario y Nombres internos
Directorio:
Relaciona nombres de usuario con nombres internos
Nombres de usuario
Generalmente el espacio de nombres es jerrquico
Nombres son pathnames
Nombres internos
Identificador nico de fichero (UFID) utilizado por el sistema Conveniente independencia de la posicin
Nombre de fichero no cambia cuando ste migra Nombre interno sin informacin de mquina que lo almacena Requiere esquema de localizacin
Dominios de nombres
Resolucin de nombres
De nombre de usuario a interno (servicio de directorio)
Traduccin de un pathname Puede implicar a varios servidores de directorio
Alternativas en la resolucin:
Resolucin iterativa
Cliente contacta con sucesivos SDs
Resolucin transitiva
Cliente contacta con primer SD, ste con 2, ltimo SD responde Rompe el modelo cliente/servidor (no adecuado para RPC)
Resolucin recursiva
Cliente contacta con primer SD, ste con 2, etc. Primer SD responde al cliente
Resolucin iterativa
SD1
1/2 3/4
SD2
5/6 SD3
Resolucin transitiva
SD1
1 C 4 SD3 SD2 3 2
Resolucin recursiva
SD1
1/6 2 C 3 SD3 SD2 4
Localizacin de ficheros
Cmo localizar un fichero a partir de su UFID?
De ID de dominio a nodo donde est almacenado
Servicio de ficheros
Se encarga de la gestin de ficheros y del acceso a los datos Se analizan los siguientes aspectos:
Uso de los ficheros Semntica de utilizacin concurrente Modelo de acceso Caching Servidor con o sin estado
Uso de ficheros
La forma de usar los ficheros influye en el diseo de los SFD Estadticas de uso en entornos UNIX de propsito general:
Mayora de los ficheros pequeos (<10K) Mayor frecuencia de lecturas Generalmente acceso secuencial Bastantes ficheros tienen una vida corta Comparticin poco frecuente
Semntica de transacciones
Conjunto de operaciones sobre fichero se encapsulan en transaccin Transacciones se estudian en captulo posterior
Modelo de acceso
Modelo carga/descarga
Transferencias completas del fichero Localmente se almacena en memoria o discos locales Normalmente utiliza semntica de sesin Eficiencia en las transferencias Llamada open con mucha latencia
Caching
El empleo de cache permite mejorar el rendimiento
Explota el principio de proximidad de referencias
Proximidad temporal Proximidad espacial
Lecturas adelantadas
Mejora el rendimiento de las operaciones de lectura, sobre todo si son secuenciales
Escrituras diferidas
Mejora el rendimiento de las escrituras
En memoria principal
Menor capacidad pero ms rpido Memoria voltil
Poltica de actualizacin
Escritura inmediata (write-through)
Buena fiabilidad En escrituras se obtiene el mismo rendimiento que en el modelo de accesos remotos Las escrituras son ms lentas
Coherencia de cache
El uso de cache en clientes produce problema de coherencia
es coherente una copia en cache con el dato en el servidor?
Protocolo de montaje
Establece una conexin lgica entre el servidor y el cliente Cada mquina incluye una lista de exportacin
qu rboles exporta y quin puede montarlos
Mquina A
Mquina B
/ usr home
Servidor
(root)
Cliente B
(root)
usr
...
vmunix usr
usr
bin
local bin
local
lib
lib . . .
Protocolo NFS
Ofrece RPCs para realizar operaciones sobre ficheros remotos
Bsqueda de un fichero en un directorio (LOOKUP) Lectura de entradas de directorio Manipulacin de enlaces y directorios Acceso a los atributos de un fichero Lectura y escritura de ficheros
Servicio NFS
implementa el protocolo NFS cada rnode contiene handle del fichero remoto correspondiente
Arquitectura de SUN/NFS
CLIENTE
CAPA DE LLAMADA AL SISTEMA CAPA DEL SISTEMA DE FICHEROS VIRT. S.O. LOCAL CLIENTE NFS
SERVIDOR
DISCO LOCAL
RPC/XDR
DISCO LOCAL
RPC/XDR
RED
Coherencia de cache
No asegura ninguna semntica Validacin dirigida por el cliente:
Toda operacin sobre un fichero devuelve sus atributos Si los atributos indican que el fichero se ha modificado
se invalidan los datos del fichero en cache de bloques
Entradas de cache de bloques y atributos tienen un tiempo de vida Si no se acceden es ese periodo se descartan Valores tpicos:
3 segundos para ficheros 30 para directorios
Servidores gestionan el espacio compartido Visin nica en todos los clientes del espacio compartido
Estructura de AFS
AFS utiliza dos componentes que ejecutan como procesos de usuario comunicndose mediante el protocolo Virtue
Por debajo UNIX ligeramente modificado
Venus:
ejecuta en los clientes SO le redirecciona peticiones sobre ficheros compartidos realiza las traducciones de nombres de fichero
resolucin dirigida por el cliente
Vice:
ejecuta en los servidores procesa solicitudes remotas de clientes
Estructura de AFS
Estaciones de trabajo
Venus
Programa de usuario
Servidores
Kernel UNIX
Vice
Kernel UNIX
Venus
Programa de usuario
RED
Kernel UNIX
Kernel UNIX
Estrategia de localizacin
dominio servidor que lo gestiona tabla replicada en cada servidor cliente mantiene una cache de localizacin
si falla repite proceso de localizacin
Acceso a ficheros
Modelo de carga/descarga
En open servidor transfiere fichero completo al cliente Versin actual: fragmentos de 64Kbytes
Lecturas/escrituras localmente en clientes sin intervenir Venus Cuando un proceso cierra un fichero (close)
Si se ha modificado se enva al servidor (write-on-close) Se mantiene en cache local para futuras sesiones
Caching en AFS
Venus gestiona dos caches independientes:
Cache de atributos Cache de datos
Se utiliza LRU para cada una de ellas. La cache de atributos se almacena en memoria
almacena los atributos de los ficheros
La cache de bloques del SF de UNIX tambin opera aunque de manera transparente a AFS
Siguientes aperturas del fichero no contactan con servidor Cuando cliente cierra un fichero que ha modificado:
Lo notifica y lo vuelca al servidor El servidor avisa a todos los nodos con una copia local para que la invaliden (revoca el callback)
Los clientes de AFS asumen que los datos en su cache son vlidos mientras no se notifique lo contrario El servidor almacena por cada fichero una lista de clientes que tienen copia del fichero en su cache:
la lista incluye a todos los clientes que tienen copia y no slo a los que tienen abierto el fichero
Caching en Sprite
Sprite: SOD experimental desarrollado en Berkeley en los 80
Arquitectura monoltica
SFD con semntica UNIX siguiendo modelo de servicio remoto Caches en la memoria de clientes y servidores (bloques de 4KB) No usa lectura anticipada Usa delayed-write con volcado peridico (no write-on-close) Estrategia de validacin iniciada por el servidor
granularidad a nivel de fichero hay un nmero de versin asociado a cada fichero servidor guarda informacin de qu clientes tienen abierto un fichero y de qu cliente fue ltimo escritor ya que datos ms recientes pueden estar en su cache
Se le manda en la respuesta al cliente una peticin de invalidar y desactivar la cache para ese fichero
DFS
Sistema de ficheros distribuido de DCE (Open Group) Derivado de AFS pero con bastantes diferencias:
Un nodo puede ser cliente y servidor No exige discos locales No usa semntica de sesin No hay transferencia completas de ficheros (bloques de 64K)
Caractersticas:
Semntica UNIX Independiente de la posicin
Ficheros pueden migrar transparentemente
Permite replicacin
Modelo de copia primaria Actualizacin slo en el primario
Para realizar operacin se requiere token correspondiente Token (de lectura o escritura) asociado a un rango de bytes Si cliente solicita operacin y no est presente token requerido en su nodo, se solicita al servidor de ficheros Para una zona de un fichero, el servidor puede generar mltiples tokens de lectura pero slo uno de escritura
Si hay un token de escritura y llega solicitud de lectura o escritura, servidor reclama el token:
Cliente vuelca e invalida bloques de cache afectados