Sistemas Distribuidos - Facultad de Ingeniería

Transcripción

Sistemas Distribuidos - Facultad de Ingeniería
Sistemas Distribuidos
Módulo 6
Sistemas de Archivos en Sistemas
Distribuidos y Nombres
Facultad de Ingeniería
Departamento de Informática
Universidad Nacional de la Patagonia “San Juan Bosco”
Sistema de Archivos en Sistemas Distribuidos
Propósitos para el uso de archivos:
Almacenaje de Información permanente
Información compartida
También soporta:
⇒ Compartir información remota
⇒ Usuarios móviles
⇒ Disponibilidad (réplicas)
⇒ Estaciones de trabajo sin disco
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Servicios provistos por el sistema de archivos:
Servicio de almacenaje.
Servicio de nombres
Servicio de archivos
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Sistema de Archivos en Sistemas Distribuidos
Servicio de almacenaje.
alocación y manejo del espacio
servicio de disco
servicio de “bloqueo”
Servicio de nombres
JRA © 2009
mapeo entre nombres externos e internos
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Servicio de archivos:
acceso
semántica de archivos compartidos
caching
replicación
control de concurrencia
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Sistema de Archivos en Sistemas Distribuidos
Características Deseables de los SAD
Transparencia
JRA © 2009
de estructura: no se conoce el número de servidores
ni sus lugares
de acceso
de nombres
de replicación
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Movilidad de usuario: el usuario no está obligado a trabajar
en un nodo único.
Rendimiento: se mide como la cantidad de tiempo que
demora en satisfacer el requerimiento de un cliente.
Simplicidad y facilidad de uso: semántica fácil de entender.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Escalabilidad: se debe adaptar al crecimiento de nodos y
usuarios en el sistema.
Alta disponibilidad: atento a fallas.
Alta confiabilidad: almacenamiento estable.
Integridad de datos: control de concurrencia (transacciones
atómicas)
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Seguridad: debe ser lo suficientemente seguro como para
que los usuarios puedan confiar en la privacidad de sus
datos.
Heterogeneidad: se torna inevitable como conse-cuencia
de la gran variedad de equipamiento y software.
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Sistema de Archivos en Sistemas Distribuidos
Modelos de Archivos
Los archivos pueden ser:
JRA © 2009
estructurados: son raros hoy, son una secuencia de
registros (indexados o no indexados)
no estructurados: UNIX.
mutables
inmutables
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Atributos:
nombre
valor
dueño
tamaño
permisos de acceso
fecha de creación
fecha de última modificación
fecha de último acceso
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Sistema de Archivos en Sistemas Distribuidos
Modelos de Acceso a Archivos
JRA © 2009
Modelo de servicio remoto.
Modelo de captura de datos (caching): trae consigo
problemas de consistencia.
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Unidades de transferencia de datos:
Modelo de transferencia a nivel de archivos.
Modelo de transferencia bloques.
Modelo de transferencia bytes.
Modelo de transferencia por registros.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Semántica de Archivos Compartidos
JRA © 2009
Semántica
de sesión
Semántica
de archivos inmutables
Semántica
de transacciones
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Esquemas de caché
En centralizados:
granularidad
tamaño
políticas
de reemplazo
En distribuidos se agrega:
locación
propagación
de la modificación
validación
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Sistema de Archivos en Sistemas Distribuidos
Locación del caché
JRA © 2009
en memoria del servidor
en disco del cliente
en memoria del cliente
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Locación caché
Costo de acceso con
éxito en el caché.
Ventajas
Fácil de implementar
Memoria
del
servidor
Un acceso por la
red
Totalmente transparente
a los clientes
consistente el archivo
original y los datos en el caché
Fácil para soportar semántica UNIX
Fácil de mantener
Confiabilidad
Disco del
cliente
Un acceso a disco
_
Memoria del
cliente
JRA © 2009
en caso de “crash”
capacidad de almacenaje
Adecuado para soportar operación sin
conexión
Contribuye a la escalabilidad y confiabilidad
Gran
Máxima ganancia
de rendimiento
estaciones de trabajo sin disco
Contribuye a la escalabilidad y confiabilidad
Permite
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Límite del nodo
4
memoria
cliente
3
disco
cliente
1. Sin caché
2. Caché localizado en la memoria del servidor
3. Caché localizado en el disco del cliente
4. Caché localizado en la memoria del cliente
JRA © 2009
memoria
servidor
2
disco
servidor
1
locación
original del
archivo
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Propagación de la Modificación
write through
delayed write
JRA © 2009
⇒ escritura
cuando se “echa” la información del caché
⇒ escritura
periódica
⇒ escritura
cuando se cierra
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Validación de cachés
iniciado por el cliente
verificación
antes de cada acceso.
verificación
periódica.
Verificación
sólo cuando el archivo es abierto para
el uso.
iniciado por el servidor
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Replicación
Ventajas:
reduce el tráfico en la red
mejora el procesamiento total
buena escalabilidad
operación autónoma
JRA © 2009
se incrementa la disponibilidad
se incrementa la confiabilidad
mejora el tiempo de respuesta
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Transparencia de replicación
Replicación explícita
Replicación implícita/relajada
Problema de actualización de múltiples copias
Está relacionado con mantener consistentes las copias
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Replicación read-only: generalmente código
Protocolo read-any/write-all: no puede manejar las redes
partidas
Protocolo de copias disponibles
Protocolo de copias primarias
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Protocolos basados en quorum: de un total de n copias del
archivo F, un número de r deben ser leídas (quorum de
lecturas), de la misma forma w copias para escritura
(quorum de escritura) tal que:
(r+w)>n
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Protocolos derivados:
leer alguno y escribir todos
r=1 w=n
leer todos y escribir alguno
r=n w=1
consenso de mayoría
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Sistema de Archivos en Sistemas Distribuidos
Tolerancia a las Fallas
Hay propiedades que influencian directamente en un SAD
para que sea tolerante a las fallas:
Disponibilidad
⇒ replicación
Robustez
Almacenamiento estable:
volátil
discos
estable
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Efecto del paradigma de servicio en la tolerancia a las
fallas
JRA © 2009
Servidores
con estado
Servidores
sin estado
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Proceso Cliente
Proceso Servidor
Open(fileneme,mode)
Return(fid)
Tabla de archivos
Read(fid,100,buf)
Return(bytes 0 a 99)
Read(fid,100,buf)
Return(bytes 100 a 200)
Dos subsecuentes lecturas de 100 bytes (200
bytes en total)
JRA © 2009
fid
Modo Puntero R/W
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Proceso Cliente
Proceso Servidor
Información de
estado de archivos
Read(filename,0,100,buf)
Return(bytes 0 a 99)
Read(filename,100,100,buf)
Return(bytes 100 a 199)
Nombre de
archivo
JRA © 2009
Modo
Puntero R/W
Dos subsecuentes lecturas de 100 bytes (200
bytes en total)
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Diferencias entre Servicios con estado y sin estados
Recuperación de Fallas
Un servidor con estados pierde, en un crash, todo su
estado volátil.
Restaure el estado por un protocolo basado en un
diálogo con clientes o aborte las operaciones que se
estaban llevando a cabo cuando el crash ocurrió.
El servidor necesita estar al tanto de las fallas en los
clientes para reclamar el espacio reservado para
registrar el estado de los procesos de los clientes
caídos
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Con un servidor sin estados, los efectos de fallas y
recuperación en el servidor no son notables. Un nuevo
servidor encarnado puede responder sin dificultad a un
requerimiento autocontenido.
Penalización por usar un servicio robusto sin estados:
Mensajes de requerimiento mas grandes
Menor procesamiento de requerimientos
Restricciones adicionales al diseño de un SAD
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Sistema de Archivos en Sistemas Distribuidos
Algunos ambientes requieren servicio con estado
Un servidor que emplea validación de caché iniciada por
el servidor, dado que mantiene un registro de todos los
archivos que están cached por varios clientes.
El uso de descriptores de archivos en UNIX y los offset
implícitos es inherente con estado, los servidores deben
mantener las tablas para mapear los descriptores de
archivos a los nodos y almacenar los offsets corrientes
en un archivo.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Nombres en Sistemas
Distribuidos
Definiciones
Nombre: cadena de bits o caracteres que se usan para
referirse a una entidad.
Entidad: casi cualquier cosa en un sistema distribuido.
Para operar con una entidad se necesita un punto de
acceso a la misma.
Este punto de acceso es otra clase especial de entidad.
Dirección: es el nombre que recibe el punto de acceso a
una entidad
Se pueden generar nombres que son independientes de
la locación.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Definiciones
Otro tratamiento especial merecen los identificadores.
Un verdadero identificador es un nombre que tiene las
siguientes propiedades:
1. Un identificador se refiere a lo sumo a una entidad.
2. Cada entidad es referida a lo sumo por un
identificador.
3. Un identificador siempre se refiere a una única
entidad (nunca es reusado)
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Definiciones
Los nombres “amigables” (desde el punto de vista
humano) es el que está representado por caracteres.
Los nombres en un sistema distribuido están organizados
en lo que se llama espacio de nombres.
Nombre global: es un nombre que denota una entidad no
importa donde es usado el mismo en el sistema.
Nombre local: está asociado a un nombre relativo.
Resolución de nombres: proceso de buscar un nombre.
Siempre es posible si se sabe por donde comenzar
(mecanismo de clausura).
Alias: otro nombre para la misma entidad.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Espacio de Nombres (1)
Un grafo general de nombres con un simple nodo raíz.
Dato almacenado en n1
Nodo hoja
Nodo directorio
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Enlace y Montaje
Montaje de un espacio de nombres remoto por medio de un
protocolo específico.
Servidor de nombres
Máquina A
Servidor de nombres para espacio de nombres externo
Máquina B
SO
Referencias a un espacio de nombres externo
JRA © 2009
SO
RED
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Distribución de Espacio de Nombres (1)
Capa
Global
Capa
Administrativa
Capa de
manejo
Un ejemplo de particionamiento del espacio de DNS, incluyendo
los archivos accesibles por Internet, en tres capas.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Distribución de Espacio de Nombres (2)
Item
Global
Administrativo
Manejo
Escala geográfica de la Red
Mundial
Organización
Departmento
Número total de nodos
Pocos
Muchos
Número grande
Respuesta de búsquedas
Segundos
Milisegundos
Inmediato
Propagación de actualizaciones
Relajada
Inmediato
Inmediato
Número de réplicas
Muchas
Ninguna o pocas
Ninguno
Se aplica caché del lado del cliente?
Si
Si
Algunas veces
Una comparación entre servidores de nombres para implementar
nodos de un espacio de nombres en una capa global, como una
capa administrativa y una capa de manejo.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Implementación Resolución de Nombres
El principio de resolución iterativa de nombres.
Servidor de
nombres raíz
Servidor de
nombres nl
Resol.
Nombres
Cliente
Servidor de
nombres vu
Servidor de
nombres cs
Los nombres son
administrados por
el mismo servidor
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Implementación Resolución de Nombres
El principio de resolución recursiva de nombres.
Servidor de
nombres raíz
Servidor de
nombres nl
Resol.
Nombres
Cliente
Servidor de
nombres vu
Servidor de
nombres cs
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Implementación Resolución de Nombres
Resolución de nombre recursiva
Servidor
nodo nl
Servidor
nodo vu
Cliente
Servidor
nodo cs
Resolución de nombre iterativa
Comunicación remota
Comparación entre resolución de nombres recursiva e iterativa
con respecto al costo de comunicación.
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Nombres versus Locación de Entidades
Nombre Nombre
Nombre
Nombre
Nombre Nombre
Nombre Nombre
Servicio
Nombres
Id Entidad
Servicio
Locación
Direcc
a)
b)
Direcc
Direcc
Direcc
Direcc
Direcc
Directo, nivel simple de mapeo entre nombres y direcciones.
Nivel-T mapeo usando entidades.
Hay un mapa de nombres amigables a las direcciones.
Cada vez que hay un cambio es necesario cambiar las tablas de
mapeo.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Entidades Móviles: Broadcasting y Multicasting
Este principio es usado por ARP (Address Resolution
Protocol) en Internet.
Consiste en hacer un broadcast o multicast y esperar la
respuesta de quien resuelva el nombre.
Nada impide la utilización de cachés.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Entidades Móviles: Reenvío de Punteros (1)
El principio de reenvío de punteros usando pares (proxy,
skeleton).
Proceso P2
Proxy p’ refiere
al mismo esqueleto
que proxy p
Proceso P3
Proxy Idéntico
Proceso P1
Esqueleto
Proceso P4
Objeto
Invocación
local
Comunicación
interprocesos
JRA © 2009
Esqueleto
idéntico
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Entidades Móviles: Reenvío de Punteros
El proxy es equivalente a un stub del lado del cliente.
El skeleton (esqueleto) es equivalente a un stub del lado
del servidor, contiene una referencia local al objeto
actual o una referencia local al proxy del objeto.
Los esqueletos funcionan como items de entrada para
referencias remotas.
Los proxy funcionan como items de salida.
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Entidades Móviles: Reenvío de Punteros
El esqueleto no es
mas referenciado
por algún proxy
El requerimiento
de invocación es
enviado al objeto
El esqueleto del proceso
corriente del objeto retorna
la locación corriente
El proxy del cliente
establece un atajo
Redireccionando un reenvío de puntero, almacenando un atajo en un
proxy.
Desventajas: Las cadenas pueden ser muy largas.
Se tiene que mantener todos los puntos intermedios.
Es vulnerable a enlaces abiertos.
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Conteo de Referencia
El problema de mantener un conteo de referencia propio en
presencia de una comunicación no confiable.
Esqueleto (mantiene el contador de referencia)
Objeto O
Proceso P
ACK perdido
Proxy p
Proxy p es ahora contado dos veces
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Conteo de Referencia
P1 envía
referencia a P2
P1 borra su
referencia a O
P1 le dice a O que pasará
una referencia a P2
P1 borra su
referencia a O
O ha sido
removido
Tiempo
P2 informa a O que
tiene una referencia
a)
b)
JRA © 2009
Tiempo
P1 envía
referencia a P2
O sabe acerca de
la referencia de P2
Copiando una referencia a otro proceso e incrementando el
contador demasiado tarde
Una solución.
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Localización de Nombres
Mecanismos de Localización de Objetos
Broadcast
Locación del
objeto
1 mensaje broadcast de
requerimiento
1
1
2 respuesta del nodo en
el que se encuentra el
objeto
2
1
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Localización de Nombres (2)
Broadcast en expansión de anillos
1 búsqueda en nodos a
hop=1
i
2
2
1
1
i
i
JRA © 2009
i
2
2 búsqueda en nodos a
hop=2 si la búsqueda a
hop=1 falla
i búsqueda en nodos a
hop=i si la búsqueda a
hop=i-1 falla
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Localización de Nombres (3)
Codificar la locación en el UID
Esconde información del nodo
No se puede mover
1.
locación del
objeto
nodo cliente
extrae la locación del
objeto de su UID. No se
requiere intercambio de
mensajes con ningún
otro nodo
1
JRA © 2009
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Localización de Nombres (4)
Buscar el nodo creador primero y luego broadcast
Limita la escalabilidad pero es mas flexible que el
anterior
Nodo Creador
1.
1
2.
3.
Locación del objeto
3
2
Nodo Cliente
4.
4
3
JRA © 2009
búsqueda del nodo
creador
respuesta negativa
broadcast de
requerimiento
respuesta del nodo
donde el objeto
está ubicado
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Localización de Nombres (5)
Uso de punteros de seguimiento
El costo es directamente proporcional al largo de la cadena.
Es difícil recuperar un id si se cayó un nodo intermedio. La
confiabilidad es pobre.
Hay sobrecarga extra.
nodo creador
locación
del objeto
1
nodo cliente
2
4
1,2 y 3 camino del
mensaje
4 respuesta del nodo en
donde está localizado
el objeto
3
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
JRA © 2009
Localización de Nombres (6)
Uso de caché y broadcast.
1.
locación del
objeto
2
nodo cliente
2
3.
3
2
JRA © 2009
2.
búsqueda en el caché
local
broadcast de
requerimiento
respuesta del nodo en
donde está localizado
el objeto
Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres
Fin
Módulo 6
Sistemas de Archivos en Sistemas
Distribuidos y Nombres
Facultad de Ingeniería
Departamento de Informática
Universidad Nacional de la Patagonia “San Juan Bosco”

Documentos relacionados