Documente Academic
Documente Profesional
Documente Cultură
ndice
Sistemas de
ficheros
distribuidos
Introduccin
Estructura de un SFD
Resolucin de nombres
Acceso a los datos
Gestin de cache
Gestin de cerrojos
Estudio de ejemplos: NFS, AFS y Coda
Sistemas de ficheros paralelos
General Parallel File System (GPFS)
Google File System (GFS)
Conceptos bsicos
Especficamente:
SF convencional en servidor
Exporta servicios locales para abrir, cerrar, leer, escribir, cerrojos,...
Arquitectura alternativa
Gestin de cerrojos:
Qu hacer si se cae un cliente en posesin de un cerrojo?
se estudiar ms adelante
Sistemas Operativos Distribuidos
5
Gestin de nombres
Similar a SF convencionales:
Gestin de nombres
Acceso a datos
Uso de cache
Nombres de usuario
Nombres internos
Resolucin de nombres
Similar a SF convencionales:
Espacio de nombres dividido en volmenes (o particiones, o ...)
Cada volumen gestionado por un servidor
Alternativas en la composicin:
Necesidad de coherencia
Resolucin iterativa
Resolucin transitiva
SD1
SD1
1/2
3/4
5/6
SD3
SD3
SD2
SD2
Localizacin de ficheros
Resolucin obtiene nombre interno (UFID)
Uso de UFID con dir. mquina donde fichero est localizado
No proporciona, en principio, independencia de la posicin
Nombre de fichero cambia cuando ste migra
SD1
1/6
2
SD2
C
3
SD3
Modelo carga/descarga
Modelo carga/descarga
se realiza traduccin
servidor habilita zona de memoria para info. de la sesin
retorna id. especfico para esa sesin
se realiza traduccin
servidor no habilita zona de memoria para info. de sesin (cliente s)
retorna id. interno del fichero UFID
mensaje autocontenido
mensaje incluye UFID, tamao y posicin
Poltica de actualizacin
Coherencia de cache
Buena fiabilidad
Las escrituras son ms lentas
Mayor fragmentacin en la informacin transferida por la red
Escrituras ms rpidas
Se reduce el trfico en la red
Los datos pueden borrarse antes de ser enviados al servidor
Menor fiabilidad
Cundo volcar los datos?
Volcado peridico
Volcado al cerrar (Write-on-close)
Cache de nombres
Cache de metadatos del sistema de ficheros
Necesita renovarse
Aplicable a otros servicios adems de la coherencia
Gestin de cerrojos
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
mquinaA:/usr
/usr
Cliente A
Mquina
A
usr
/
bin
bin
usr
home
bin
...
local
bin
usr
vmunix usr
local
include lib
lib
lib . . .
Protocolo NFS
Implementacin Sun/NFS
(root)
(root)
Mquina
B
/
usr
Cliente B
Servidor
(root)
SERVIDOR
CAPA DE LLAMADA
AL SISTEMA
CAPA DEL SISTEMA
DE FICHEROS VIRT.
S.O.
LOCAL
CLIENTE
NFS
S.O.
LOCAL
SERVIDOR
NFS
DISCO
LOCAL
RPC/XDR
DISCO
LOCAL
RPC/XDR
RED
Sistemas Operativos Distribuidos
37
Empaquetamiento de operaciones:
Una llamada RPC (COMPOUND) con mltiples operaciones
10
Estructura de AFS
Vice:
ejecuta en los servidores
procesa solicitudes remotas de clientes
Estructura de AFS
Estaciones de trabajo
Venus
Programa
de usuario
Vice
Kernel UNIX
Kernel UNIX
Venus
Programa
de usuario
RED
Kernel UNIX
Vice
Venus
Programa
de usuario
Kernel UNIX
Kernel UNIX
11
Modelo de carga/descarga
Semntica de sesin
Validacin iniciada por servidor basada en callbacks
Cuando cliente abre fichero del que no tiene copia local (o no
es vlida), contacta con el servidor
el servidor anota que el fichero tiene un callback para ese cliente
Coda
Descendiente de AFS orientado a proporcionar alta
disponibilidad mediante replicacin de volmenes
Lectura de cualquier copia Escritura en todas
Si red partida: cliente slo actualiza copias accesibles
12
Sistemas de
ficheros paralelos
13
Red
Red
SAN
14
aplicacin
servidor SF
cliente SF
serv. disco
S1
S2
S3
S4
Uso de stripping:
NES1
NES2
NES3
NES4
f
g
h
j
f1
f2
f3
f4
g1
g2
g3
g4
h1
h2
h3
h4
j1
j2
j3
j4
15
SFP
http://www.ncsa.illinois.edu/UserInfo/Data/filesystems/
Sistemas Operativos Distribuidos
61
Redundancia de datos
Stripping aumenta probabilidad de fallo al acceder a fichero
Necesidad de redundancia para mejorar disponibilidad
2 alternativas:
Replicacin ( RAID 1)
Cdigos correctores ( RAID 5)
Comparativa:
16
NES1
f1
NES2
f2
NES3
NES4
f3
f4
f2
NES1
NES2
NES3
NES4
f1
f2
f3
CC
f5
f6
CC
f4
f3
f4
f1
Cach de datos
Permite nodos clientes soliciten/vuelquen mltiples bloques
Uso de prefetching en lecturas
Se piden por anticipado ms bloques de los solicitados por lectura
SF detecta patrn de acceso de la aplicacin:
P. ej. secuencial directo e inverso, con saltos regulares, ...
Diversas tcnicas
17
Accesos no contiguos
mem
fich
mem
fich
mem
fich
mem fich
Fernando Prez Costoya
dir1
read/write y pread/pwrite
pos1
tam1
tam1
readv/writev y preadv/pwritev
write(f,dir1,tam1,pos1,dir2,
tam2,pos2,dir3,tam3,pos3)
dir2
tam2
dir3
tam3
read(f,dir1,tam1,pos1,dir2,
tam2,pos2,dir3,tam3,pos3)
buffers
Sistemas Operativos Distribuidos
71
lio_listio
Especificadas en la extensin de tiempo real de POSIX
Pueden ser sncronas o asncronas
fichero
Fernando Prez Costoya
18
MPI-IO
int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
int MPI_File_write(MPI_File fh, void *buf, int count, MPI_Datatype datatype, MPI_Status *status)
Fernando Prez Costoya
Operaciones colectivas
MPI_INT
MPI_INT
hueco
hueco
hueco
hueco
19
Ejemplo de vista
No contigidad en buffer:
En op. lectura/escritura uso de un tipo de datos MPI que la refleje
Igual que con envo y recepcin
etype = MPI_INT
No contigidad en fichero:
displacement
FILE
filetype
filetype
and so on...
vista proceso1
vista proceso2
vista proceso3
...
fichero
20
buffers usuario
copia
parcial
lectura
completa
(+ eficiente)
fichero
2 estrategias tpicas: server- dri ected I/O vs. two- phase I/O
Server- directed I/O (SDIO) [Disk- directed I/O]
buffer temporal
Sistemas Operativos Distribuidos
81
SDIO (lectura)
C1
C2
C3
TPIO (lectura)
NES1
NES2
NES3
Fernando Prez Costoya
C1
C2
C3
NES1
NES2
NES3
Fernando Prez Costoya
21
Soporte para SAN y nodos con discos: Shared disk file system
Sistemas heterogneos (versiones para AIX, Linux, Windows)
Semntica POSIX (excepto atime)
Escrituras atmicas incluso aunque POSIX actual no lo requiera
http://www.ncsa.illinois.edu/UserInfo/Data/filesystems/
Sistemas Operativos Distribuidos
87
http://www.ncsa.illinois.edu/UserInfo/Data/filesystems/
Sistemas Operativos Distribuidos
88
22
Resolucin de solicitud:
23
Y as sucesivamente.
Por tanto, cada proceso slo pide un token
Directas (chmod)
Indirectas: write fecha modificacin, tamao y punteros a bloques
Cada nodo modifica su copia del inodo (fecha mod., tamao y punteros)
Data shipping
Metanodo de un fichero
NC elegido como metanodo (MN) de un fichero
Es el nico que lee/escribe su inodo al disco
24
Desfragmentacin de discos
Comprobacin/reparacin del SF
25
O slo de metadatos
Prdida de algunos datos de ficheros pero no ficheros inaccesibles
26
Striping
Trozos fichero repartidos entre nodos de almacenamiento (NA)
Tamao de trozo/chunk/stripe: 64MB!
Respaldado por patrn tpico de aplicaciones:
Ventajas:
Desventajas:
El nodo maestro
Lectura
SF en memoria
27
Escritura
3.
4.
5.
6.
7.
Operacin de escritura
Record append
28
En arranque interroga a NA
http://queue.acm.org/detail.cfm?id=1594206
Almacenamiento de centenares TB a decenas de PB
Aumento proporcional de nmero de clientes
Nuevas aplicaciones que manejan ficheros pequeos
Nuevas aplicaciones donde latencia es importante
GFS II/Colossus
GFS entra en la era de los mltiples maestros
Sharding de metadatos entre maestros
29