Sistema de Ficheros Distribuidos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 50

Sistemas Operativos Distribuidos

Sistemas de ficheros distribuidos

Contenidos del Tema


Introduccin Estructura de un SFD Servicio de directorio Servicio de ficheros Caching Servidor con estado o sin estado Estudio de ejemplos:
NFS AFS Caching en Sprite Caching en DFS

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

Estructura del SFD


Generalmente arquitectura cliente-servidor. Dos componentes:
Servicio de directorio (SD)
Traduce nombres de fichero a identificador interno

Servicio de ficheros (SF)


Proporciona acceso a ficheros a partir de su identificador Gestiona un sistema de ficheros plano

Dos alternativas:
nico mdulo que ofrece ambos servicios (a lo UNIX)
servidor de ficheros incluye ambas funciones
directorio es slo un fichero especial

Mdulos independientes (p. ej. Amoeba)


Servidor de directorios y servidor de ficheros

Estructura del SFD


Client computer Application Application program program Server computer Directory service

Flat file service

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

Dos niveles de traduccin posibles:


De nombre de usuario a interno Servicio de directorio De nombre interno a localizacin del fichero

SD puede estar integrado en servicio de nombres genrico


No slo ficheros sino todos los objetos del sistema Se corresponde con el siguiente tema de la asignatura

Nombres de usuario
Generalmente el espacio de nombres es jerrquico
Nombres son pathnames

Debe proporcionar transparencia de la posicin


Nombre de fichero no permite saber donde est almacenado Nombre no debe incluir identificacin del nodo donde est
Mquina:fichero

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

Generalmente nombres estructurados


Facilita la generacin y resolucin de nombres internos

Espacio de nombres dividido en dominios


UFID = [ UID Dominio + UID dentro del dominio ]

Dominios de nombres

Cada dominio gestionado por un servidor de directorios


Generacin y resolucin de nombres distribuida

Cmo generar IDs de dominio nicos?


Ejemplo: UID de Dominio = [ Dir. IP nodo creador + fecha ] Dir. IP slo para asegurar nombre nico (el dominio puede migrar)

Composicin de dominios (montaje). Alternativas:


Montar sistema de ficheros remoto sobre la jerarqua local (NFS)
Espacio de nombres diferente en cada mquina Montaje en el cliente

nico espacio de nombres en todas las mquinas (AFS)


Montaje en el servidor

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

Alternativas aplicables a servicio de nombres genrico

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

Uso de cache en la resolucin


Mantiene ltimas traducciones realizadas en el nodo Reduce la necesidad de contactar con SD Mejora eficiencia y capacidad de crecimiento del sistema La informacin en la cache se trata como una pista
mecanismo para detectar que traduccin en cache no es vlida

Resolucin iterativa favorece el uso de la cache

Localizacin de ficheros
Cmo localizar un fichero a partir de su UFID?
De ID de dominio a nodo donde est almacenado

Slo necesario si ID de dominio no contiene dir. de nodo Posibles esquemas de localizacin:


Tablas que mantengan la relacin dominio-nodo Uso de broadcast para localizar nodo que contiene dominio

Uso de cache de localizaciones en clientes:


La informacin en la cache se trata como una pista
mecanismo para detectar que informacin en cache no es vlida

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

Semnticas de uso concurrente (1/3)


Sesin: serie de accesos que realiza cliente entre open y close La semntica especifica el efecto de varios procesos accediendo de forma simultnea al mismo fichero Semntica UNIX (Sprite y DFS)
Una lectura ve los efectos de todas las escrituras previas El efecto de dos escrituras sucesivas es el de la ltima Difcil de implementar en sistemas distribuidos

Semnticas de uso concurrente (2/3)


Semntica de sesin (AFS)
Cambios a un fichero abierto son visibles nicamente en el proceso (nodo) que modific el fichero Una vez cerrado el fichero, los cambios son visibles slo en sesiones posteriores Mltiples imgenes simultneas del fichero Dos sesiones sobre mismo fichero que terminan concurrentemente:
La ltima deja el resultado final

No adecuada para procesos con acceso concurrente a un fichero

Semnticas de uso concurrente (3/3)


Semntica de ficheros inmutables (Amoeba)
El contenido de un fichero no puede modificarse El nombre del fichero no puede reutilizarse Slo se puede compartir un fichero para slo lectura

Semntica de transacciones
Conjunto de operaciones sobre fichero se encapsulan en transaccin Transacciones se estudian en captulo posterior

Sin una semntica definida (NFS)

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

Modelo de servicio remoto


Servidor debe proporcionar todas las operaciones sobre el fichero Acceso por bloques Modelo cliente/servidor

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

Otros tipos de cache


Cache de nombres Cache de metadatos del sistema de ficheros

Posicin de la cache en un SFD


Cache en los servidores
Reducen los accesos a disco

Cache en los clientes


Reduce el trfico por la red Reduce la carga en los servidores Mejora la capacidad de crecimiento Introduce problemas de coherencia Dos posibilidades no excluyentes
En discos locales (no permite nodos sin disco)
Ms capacidad pero ms lento No voltil, facilita la recuperacin

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

Escritura diferida (delayed-write)


Escrituras ms rpidas. Se reduce el trfico en la red Los datos pueden borrarse antes de ser enviados al servidor Menor fiabilidad Alternativas sobre el volcado de los datos:
Volcado peridico (a lo UNIX) Write-on-close

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?

Estrategia de validacin iniciada por el cliente


cliente contacta con servidor para determinar validez
en cada acceso, al abrir el fichero o peridicamente

Estrategia de validacin iniciada por el servidor


servidor avisa a cliente al detectar que su copia es invlida
generalmente se usa write-invalidate (no write-update)

servidor almacena por cada cliente qu ficheros guarda


granularidad de la informacin:
a nivel de fichero a nivel de bloque

Servidores con estado y sin estado


Alternativa de diseo Aplicable a cualquier servicio Influye en tolerancia a fallos Servidores con estado
Se mantiene informacin sobre los clientes Cuando se abre un fichero, el servidor almacena informacin y da al cliente un identificador nico a utilizar en las posteriores llamadas

Servidores sin estado


No se mantiene informacin sobre los clientes Cada peticin es autocontenida (fichero y posicin)

Servicio con estado vs. sin estado


Ventajas de los servidores con estado
Mensajes de peticin ms cortos Mejor rendimiento (se mantiene informacin en memoria) Facilita la lectura adelantada. El servidor puede analizar el patrn de accesos que realiza cada cliente Es necesario en validacin iniciada por el servidor
Uso de leases para paliar el problema (DFS)
Permisos con plazo de expiracin

Ventajas de los servidores sin estado


Ms tolerantes a fallos No son necesarios open y close. Se reduce el n de mensajes No se gasta memoria en el servidor para almacenar el estado

Network File System (NFS) de Sun


Especificacin de un protocolo para acceso a ficheros remotos Estndar de facto diseado para trabajar en entornos heterogneos Independencia gracias al uso de RPC/XDR Seguridad basada en RPC (autenticacin basada en claves) Comparticin: mquina monta directorio remoto en SF local
Espacio de nombres es diferente en cada mquina Montado no transparente (nombre de mquina remota) Una vez montado, acceso transparente a ficheros

No es un verdadero sistema de ficheros distribuido Comprende dos protocolos:


Protocolo de montaje Protocolo de acceso a ficheros (protocolo NFS)

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

Peticin de montaje incluye mquina y directorio remotos


Se convierte en RPC al servidor de montaje remoto Si permiso en lista, devuelve un identificador opaco (handle)
En UNIX identificador del SF y nodo-i del directorio montado

La operacin de montaje slo afecta al cliente no al servidor


se permiten montajes NFS anidados no se permiten montajes NFS transitivos

Aspectos proporcionados por algunas implementaciones:


montajes hard o soft, automontaje

Ejemplo de montado en NFS


La mquina A exporta /usr y /bin En la mquina B:
mount mquinaA:/usr /usr

Mquina A

Mquina B

/ usr include lib bin bin

/ usr home

Ejemplo de montado en NFS


Imagen diferente del sistema de ficheros
Cliente A
(root)

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

Servidores NFS no almacenan estado


Operaciones autocontenidas

OPEN/CLOSE reemplazados por LOOKUP


traduccin iterativa componente a componente
LOOKUP(handle de directorio, fichero) handle de fichero

El protocolo no ofrece mecanismos de control de concurrencia

Implementacin Sun de NFS


Arquitectura formada por tres niveles:
Interfaz de llamadas al sistema de ficheros UNIX Sistema de ficheros virtual (VFS)
almacena una entrada por cada archivo abierto (vnode) cada vnode apunta a un nodo-i local o a uno remoto (rnode) redirige peticin a la capa inferior correspondiente

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

CAPA DEL SISTEMA DE FICHEROS VIRT. S.O. LOCAL SERVIDOR NFS

DISCO LOCAL

RPC/XDR

DISCO LOCAL

RPC/XDR

RED

Acceso a los ficheros


Las transferencias se realizan en bloques de 8 KB Los bloques se almacenan en la cache de los clientes Los clientes realizan lecturas adelantadas de un bloque Las escrituras se realizan localmente. Los bloques se envan al servidor cuando se llena un bloque de 8 KB o se cierra el fichero 3 tipos de cache en el cliente:
cache de nombres para acelerar las traducciones cache de atributos de ficheros y directorios
informacin del nodo-i (fechas, dueo, ...)

cache de bloques de ficheros y directorios

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

Andrew File System (AFS)


SFD desarrollado en Carnegie-Mellon (desde 1983) El DFS de DCE se basa en AFS Sistemas distribuidos a gran escala (5000 - 10000 nodos) Distingue entre nodos cliente y servidores dedicados Los nodos cliente tienen que tener disco Ofrece a clientes dos espacios de nombres:
local y compartido (directorio /afs) espacio local slo para ficheros temporales o de arranque

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

Usan sistema de ficheros UNIX como almacenamiento de bajo nivel

Estructura de AFS
Estaciones de trabajo
Venus
Programa de usuario

Servidores

Kernel UNIX

Vice

Kernel UNIX
Venus
Programa de usuario

RED

Kernel UNIX Vice


Venus
Programa de usuario

Kernel UNIX

Kernel UNIX

Espacio de nombres compartido


Los ficheros se agrupan en volmenes Cada fichero tiene identificador nico (UFID: 96 bits)
Nmero de volumen Nmero de vnodo (dentro del volumen) Nmero nico: permite reutilizar nmeros de vnodo

Los UFID son transparentes de la posicin


un volumen pueden cambiar de un servidor a otro.

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

Venus almacena el fichero en la cache local de los clientes


Se utiliza el disco local (la cache es no voltil)

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

Modificaciones de directorios y atributos directamente al servidor

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 datos se almacena en el disco local


contiene ficheros, directorios y enlaces simblicos

La cache de bloques del SF de UNIX tambin opera aunque de manera transparente a AFS

Coherencia de cache (1/2)


Semntica de sesin Sigue un esquema de validacin iniciado por el servidor Usa un esquema basado en callbacks Cuando cliente abre un fichero del que no existe una copia local (o no es vlida), contacta con el servidor que anota esta situacin
el fichero tiene un callback

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)

Coherencia de cache (2/2)


Cuando llega una revocacin a un nodo:
procesos con fichero abierto continan accediendo a copia anterior nueva apertura cargar el nuevo contenido desde el servidor

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

Coherencia de cache en Sprite (1/2)


Si acceso concurrente conflictivo (1escritor + otro(s) cliente(s))
se anula cache y se usa acceso remoto en nodos implicados

En open cliente siempre contacta con servidor especificando:


modo de acceso nmero de versin de la copia en cache del fichero (si la hay)

En close no se vuelca el fichero Tratamiento del open en el servidor


Si copia del fichero en el servidor no est actualizada
solicita al ltimo cliente que vuelque datos del fichero

Si no hay conflicto de acceso:


Si versin del cliente es ms antigua, se le indica en mensaje de respuesta que la invalide

Coherencia de cache en Sprite (2/2)


Tratamiento del open en el servidor (continuacin)
Si la peticin produce un conflicto de acceso:
Se le enva a los clientes con el fichero abierto una orden de invalidacin y desactivacin de la cache para ese fichero
Si era un escritor se le pide un volcado previo

Se le manda en la respuesta al cliente una peticin de invalidar y desactivar la cache para ese fichero

Si la peticin se encuentra que ya hay conflicto


Se le manda en la respuesta 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

Coherencia de cache en DFS (1/2)


Uso de tokens con plazo de expiracin (leases)
Servidor con estado pero con buena recuperacin

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

Coherencia de cache en DFS (2/2)


Si existen mltiples tokens de lectura y llega solicitud de escritura, servidor reclama los tokens
Cliente devuelve token e invalida bloques de cache afectados Cuando todos devueltos, servidor manda token 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

Un token tiene un plazo de expiracin (tpico 2 minutos):


Pasado el plazo cliente considera que token ya no es vlido Permite tener servidor con estado pero fcil recuperacin:
Si tiempo de recuperacin de servidor > plazo de expiracin
todos los tokens estn caducados servidor puede atender inmediatamente solicitudes de tokens

También podría gustarte