Documente Academic
Documente Profesional
Documente Cultură
Distribuidos
Prof. Mariela Curiel
Bibliografa:
Sistemas Distribuidos (Tanembaum),
Introduccin
Un sistema de archivos distribuidos permite a los
procesos el acceso transparente y eficiente de archivos
que permanecen en servidores remotos.
Se encargan de la organizacin, almacenamiento,
recuperacin,
nominacin,
compartimiento
y
proteccin de los archivos.
Proporcionan una interfaz de programacin que
oculta a los programadores los detalles de localizacin
y asignacin del almacenamiento
Ventajas
Definiciones
Archivo
En la mayora de los sistemas de operacin, los
datos y programas ejecutables estn
organizados en archivos para garantizar un
almacenamiento permanente.
En UNIX un archivo es una secuencia de bytes.
Estn jerarquicamente organizados en un grafo
de nombres donde los nodos representan
directorios y archivos.
knlknlknk}+
ll{k{
1
ll,-.,-,,,,
,,,,,,,,,
2
Definiciones
Inodo
Vector # 1
knlknlknk}+
ll{k{
ll,-.,-,,,,
Vector # 2
0
,,,,,,,
,,
1
2
Inodo
Definiciones
Servidor de archivos:
Definiciones
Servicios de Archivos
Especificacin de los servicios o interfaz que el servidor de
archivos (SA) ofrece a sus clientes
Desafos de un Servidor de
Archivos
Transparencia:
Desafos
Escalabilidad: El servicio se debe poder extender
incrementalmente para atender a un amplio rango de
cargas.
Tolerancia a fallas: Clientes y servidores deben operar
correctamente ante fallas.
Consistencia: ante el acceso concurrente de diferentes
usuarios.
Seguridad: mecanismos de control de acceso y
autenticacin
Eficiencia: el desempeo debe ser similar a sistemas de
archivos locales.
Desafos
Heterogeneidad de Hardware y de
Sistemas de Operacin.
Arquitecturas Cliente-Servidor
Sistemas de Archivo Distribuidos basados
en Cluster
Servidor
Cliente
Archivo permanece
en el servidor
Cliente
Servidor
Archivo viejo
Archivo nuevo
Los accesos se realizan
Localmente en el cliente.
Arquitectura Cliente-Servidor
Arquitectura C/S
Arquitectura C/S
Implementacin de NFS
10
GFS
11
GFS
Maestro
cliente:GFS
Estado del
servidor
Fragmentado
direccin de contacto
Servidor
Fragmentado
Servidor
Fragmentado
Servidor
Fragmentado
Sistema de
Archivos
Linux
Sistema de
Archivos
Linux
Sistema de
Archivos
Linux
id del
fragmento,
rango de bytes
datos
GFS
12
GFS
Procesos
Clientes
Servidores: Con Estado- Sin Estado.
Comunicacin: Muchos de estos sistemas estn
basados en llamadas a procedimientos remotos
(RPC). La razn principal es que el sistema sea
independiente de los sistemas operativos
subyacentes, redes y protocolos de transporte.
13
Procesos
Clientes:
Se ejecutan en cada mquina cliente, a nivel de
usuario.
Procesos
Ejemplo
123
int s;
fd = open(/home/mcuriel/data.txt, R);
read(fd, &s, sizeof(int)); // lee 1
read(fd, &s, sizeof(int));// lee 2
14
Tabla de
Descriptores de
Archivo
Descriptor
de Archivo
Ejemplo
abc
int s;
open(/home/mcuriel/data.txt, R);
read(/home/mcuriel/data.txt, &s, sizeof(int), 1);
read(/home/mcuriel/data.txt, &s, sizeof(int), 2);
-En este caso el servidor no guarda informacin sobre qu proceso tiene abierto
el archivo (puede ser que ni siquiera haya una operacin de apertura).
-En cada operacin el proceso cliente debe indicar sobre que archivo la va a hacer y
el byte (o registro) a partir del cual comienza la lectura.
-En este caso las operaciones s son idempotentes, siempre darn el mismo resultado
no importa cuntas veces se ejecuten.
Procesos
Servidores sin estado (stateless)
Cuando un cliente enva una solicitud a un
servidor, ste la lleva a cabo, enva la respuesta y
elimina de sus tablas internas toda la informacin
relativa a dicha solicitud. Por ejemplo, no registra si
un archivo ha sido abierto previamente.
No guarda informacin del cliente entre
solicitudes. No mantiene un registro de las operaciones que
van dejando los clientes
ser
autocontenida.
15
Procesos
Consecuencias:
Servidores
Procesos
Servidores con estado
Los servidores guardan informacin del estado de
los clientes entre solicitudes: ejm. tabla que asocia
los descriptores de archivos con los archivos
propiamente dichos.
Pueden conocer qu datos estn en el cache del
cliente (permiten al cliente mantener copias locales
de datos compartidos).
Proceso
Consecuencias:
Mejor
16
Comunicacin
Comunicacin
17
Comunicacin
Este mtodo requiere dos RPCs seguidas.
Cuando se considera el NFS en un
sistema de rea mplia el uso de muchos
RPCs puede degradar el desempeo.
NFSv4 soporta procedimientos
compuestos, en los cuales varios RPCs
pueden agruparse en una sola solicitud.
Comunicacin
18
Subsistema RPC2
Subsistema RPC2
Si el servidor deja de funcionar, tarde o
temparno el hilo lo advierte y reportar la
falla a la aplicacin.
RPC2 da soporte a efectos colaterales. Un
efecto colateral es un mecanismo
mediante el cual un cliente y un servidor
pueden comunicarse usando un protocolo
especfico de una aplicacin.
Subsistema RPC2
19
Subsistema RPC2
Subsistema RPC2
20
El subsistema RPC2
El subsistema RPC2
Implementacin:
Multiples
21
Asignacin de Nombres
Los nombres estn organizados en un
espacio de nombres jerrquico.
Asignacin de Nombres en NFS
La
Asignacin de Nombres
Esto se logra permitiendo que el cliente
sea capaz de montar un sistema de
archivo remoto en su propio sistema de
archivos local
Un servidor exporta un directorio cuando
coloca a ste y a sus entradas a
disposicin de sus clientes.
22
Mount
Mount
$mount /dev/disk /usr
(Antes del mount)
/2
usr(4)
bin(3)
ls(5)
cp(7)
test.c(6)
tmp1
tmp2
/2
usr(4)
bin(3)
ls(5)
cp(7)
tmp1
tmp2
/remote/vu/mbox
/work/me/mbox
23
Asignacin de Nombres
24
Asignacin de Nombres
Asignacin de Nombres
Automontaje
Solucin para los nombres de archivos
diferentes: montar los sistemas de
archivos remoto en el mismo o los mismos
directorios para cada usuario.
Problema: Decidir cuando deber ser
montado un sistema de archivos remoto
(no lo debe hacer el usuario
explicitamente).
25
Automontaje
Ejem: los directorios home de los usuarios
estn en un sistema de archivos remoto.
/home/alicia.
Sol: montarlo cuando Alicia inicie una
sesin en su estacin de trabajo.
Problema: si Alicia tiene acceso a
/home/Bob. Este directorio debe montarse
tambin cuando se inicie la sesin??
Automontaje
Automounting (1)
26
Sincronizacin (SAC)
Sincronizacin (SAC)
Semntica de Unix:
Se
Sincronizacin (SAC)
Semntica de Unix:
El
27
Sincronizacin (SAC)
Sincronizacin (SAC)
z
28
Semantics of
File Sharing (2)
Sincronizacin (SAC)
Sincronizacin: Semntica de
Archivos Compartidos
Semntica de sesin:
Ningn cambio es visible a otros procesos hasta que el
archivo se cierre.
No todos los reads retornan el valor ms reciente del
dato.
Si dos procesos tienen copias locales del mismo
archivo y lo modifican al mismo tiempo, el resultado
final depende de quin lo cierre primero.
29
Sincronizacin (SAC)
Sincronizacin: Archivos
Inmutables
No
Sincronizacin: Archivos
Inmutables
Se
30
Sincronizacin: Archivos
Inmutables
Es
Sincronizacin: Transacciones
Transacciones Atmicas:
Para acceder a un archivo o un grupo de
archivos, el proceso ejecuta algn tipo de
operacin del estilo BeginTransaction, que
indica al SD que las operaciones que siguen
se tienen que ejecutar indivisiblemente.
Cuando termina el trabajo, el proceso hace
EndTransaction.
Sincronizacin (SAC)
Transacciones Atmicas:
La propiedad fundamental de este mtodo es que el
sistema garantiza que todas las llamadas contenidas
dentro de la transaccin sern realizadas en orden,
sin ninguna interferencia de otras transacciones
concurrentes.
Si dos o mas transacciones se inician al mismo
tiempo, el sistema garantiza que el resultado final
ser el mismo como si se estuvieran ejecutando en
algn orden secuencial no definido.
31
Sincronizacin: Bloqueos
Los bloqueos permiten sincronizar el
acceso a archivos compartidos.
Existen diferentes tipos de bloqueos.
Pueden existir diferencias en cuanto a la
granularidad.
32
Sincronizacin (Bloqueos)
Sincronizacin (Bloqueos)
Sincronizacin (Bloqueos)
La operacin lockt se utiliza para
comprobar si existe un bloqueo conflictivo
(antes de solicitarlo). Si existe un conflicto
se le informa al cliente solicitante quien lo
est provocando y sobre qu rango de
bytes.
locku se usa para eliminar un bloqueo a
un archivo.
33
Sincronizacin (Bloqueos)
Sincronizacin (Bloqueos)
34
Consistencia y Replicacin
Almacenamiento en la memoria cache del
cliente.
Replicacin del lado del servidor
Replicacin en sistemas de archivos punto
a punto (peer-to-peer).
35
NFS4
Una
36
37
Almacenamiento en la memoria
cache del cliente
NFS4
Tambin
Almacenamiento en la memoria
cache del cliente
Coda: para lograr escalabilidad y tolerancia a
fallos, los clientes siempre guardan en su
cache los archivos completos. Cuando se
abre un archivo para R/W se transfiere una
copia completa del archivo a la memoria
cache del cliente.
La consistencia se mantiene mediante
devoluciones de llamada por parte del
servidor.
Almacenamiento en la memoria
cache del cliente
38
transferencias
Replicacin
de confiabilidad, al disponer de
respaldos independientes de cada archivo.
Disponibilidad: permitir accesos aunque falle
uno de los servidores.
Desempeo: repartir carga de trabajo entre
varios servidores.
Replicacin
En Sistemas de Archivos es ms comn el
uso de caches en el cliente porque la
prctica muestra que el compartimiento de
archivos es poco usual.
Cuando tiene lugar es slo para lectura de
datos, por lo que el uso de memorias
cache en el cliente es lo ms adecuado.
39
Servidor
Proxy
Aplicacin
Servidor
Proxy
Aplicacin
Cdigo de
Coord.
Cdigo de
Coord.
Servidor
Proxy
Aplicacin
Cdigo de
Coord.
Caractersticas
Redes Peer-to-Peer
40
41
Replicacin en Sistemas de
Archivos Peer to Peer
La replicacin desempea un rol
importante para acelerar las bsquedas y
para equilibrar la carga de nodos.
Una propiedad importante de estos
sistemas es que todos los archivos son de
lectura.
Las actualizaciones consisten slo en
agregar archivos al sistema.
Replicacin en Sistemas de
Archivos Peer to Peer
En sistemas no estructurados si se
necesita un dato se busca en la red. Un
nodo transmite la solicitud de bsqueda a
sus vecinos, quienes a su vez
retransmiten si es necesario.
Una estrategia de rplica: en todos los
nodos (imposible!! los nodos tienen
capacidad limitada)
Replicacin en Sistemas de
Archivos Peer to Peer
Enfoques:
Distribuir
42
El parmetro
es la pendiente
de la recta en
escala logartmica
Replicacin en Sistemas de
Archivos Peer to Peer
Replicacin en Sistemas de
Archivos Peer to Peer
43
Structured Peer-to-Peer
Systems
Preguntas
44
45