Sistemas de Archivos Distribuidos

Anuncio
Sistemas de Operación II
Sistemas de Archivos Distribuidos
Prof. Carlos Figueira
Basado en material de
Yudith Cardinale (USB)
Andrew Tanembaum y Marteen van Steen
Contenido
●
Introducción
●
Requisitos
●
Aspectos de Diseño
●
●
Servicios de archivos
●
Servicios de directorios
●
Módulo cliente
●
Semántica de archivos compartidos
Aspectos de Implementación
●
Uso de Archivos
●
Estructura del Sistema
●
Caching
●
Réplicas
Carlos Figueira/USB
2
Introducción
●
●
●
●
Un sistema de archivos distribuidos (SAD) permite
a los procesos el acceso transparente y eficiente a
archivos en servidores remotos.
Útiles en Intranets, redes locales y sistemas
distribuidos
Responsables de organización, almacenamiento,
recuperación, denominación, acceso compartido y
protección de los archivos.
Proporcionan interfaz de programación que
abstrae a los programadores de los detalles de
localización y asignación del almacenamiento
Carlos Figueira/USB
3
Introducción
●
Servicios de Archivos
●
●
Especificación de servicios que servidor de archivos (SA) ofrece a
sus clientes
●
Especificación de la interfaz del SA con los clientes
●
Describe las primitivas disponibles con sus parámetros y acciones
Servidor de archivos
●
●
●
Proceso que se ejecuta en alguna máquina y ayuda a implantar el
servicio de archivos.
Se ejecuta en espacio de usuario; el sistema puede contener
varios SA con servicios de archivos diferentes.
Puede haber 1 o más SA; debe ser transparente a los clientes.
Carlos Figueira/USB
4
Requisitos
●
Transparencia
●
De acceso (distribución de los archivos)
●
De localización
●
De movilidad
●
●
●
De prestaciones: continúa funcionando mientras la
carga del servicio varíe (en un rango)
De escalabilidad
Actualizaciones concurrentes
●
soporta varios clientes modificando los mismos datos
de manera concurrente
Carlos Figueira/USB
5
Requisitos
●
●
●
●
●
●
Replicación de archivos: implementada por redundancia
o desempeño (caching)
Soporte de heterogeneidad de hardware y sistema de
operación
Tolerancia a fallas
Consistencia: define la semántica de actualización de
una copia
Seguridad: mecanismos de control de acceso y
autenticación
Eficiencia: desempeño debe ser similar a sistemas de
archivos locales.
Carlos Figueira/USB
6
Arquitectura de NFS
Carlos Figueira/USB
7
Servicio de Archivos
●
●
●
Tres componentes: servicio de archivos planos,
servicio de directorios y módulo cliente
Servicio de archivos planos: operaciones sobre
archivos individuales. p.e., leer, escribir, agregar, etc.
Aspectos importantes:
●
●
●
Administración de atributos de archivos
Protección contra accesos no permitidos a través de
capacidades o listas de control de acceso.
Responsable del modelo de acceso: por carga/descarga o
por acceso remoto.
Carlos Figueira/USB
8
Carga/Descarga vs Acceso Remoto
Sistemas de Archivos Distribuidos: (a) el archivo
puede quedarse en servidor o (b) copiarse al cliente
Carlos Figueira/USB
9
Servicio de Directorios
●
●
●
●
Ofrece operaciones sobre directorios: crear y
borrar directorios, copiar y mover archivos entre
directorios.
Responsable de interpretar nombre de archivos.
●
transparencia de nombres respecto a localización.
●
dos niveles de nombres: simbólicos y binarios
Administra organización de los archivos, p.e.,
sistema jerárquico de archivos.
Maneja enlaces lógicos y físicos
Carlos Figueira/USB
10
Aspectos de Diseño: Módulo cliente
●
●
●
●
Integra y extiende operaciones de servicios de
archivos y directorios a través de interfaz
sencilla
Se ejecuta a nivel de usuario
Mantiene información sobre las ubicaciones de
los servidores de archivos y de directorios.
Maneja el caching (copias temporales) y
buffering (copias de pedazos de archivos) en el
cliente
Carlos Figueira/USB
11
Semántica de archivos compartidos
●
●
Se refiere a cómo secuencializar las
lecturas/escrituras de archivos compartidos, para
no leer valores obsoletos o perder actualizaciones.
Semántica Unix (POSIX):
●
●
●
Impone orden absoluto en todas las operaciones en
función del tiempo; en lectura retorna valor más
reciente del dato.
Cada operación en un archivo es visible a todos los
procesos en forma instantánea.
El desempeño de este método es pobre.
Carlos Figueira/USB
12
Semántica de archivos compartidos
(POSIX)
●
●
Se logra fácilmente si sólo existe un servidor de
archivos y los clientes no hacen copias locales
(caching) de sus archivos.
Todas las operaciones “read” y “write” pasan
directamente por el servidor de archivos, el
cual las procesa en forma secuencial.
Carlos Figueira/USB
13
Semántica de archivos compartidos
(POSIX)
●
Para mejorar el desempeño se puede permitir a
los clientes tener copias locales de los archivos
de uso frecuente en sus caches
●
●
Problema: lecturas obsoletas.
Para evitar problema de lecturas obsoletas
●
●
Propagar inmediatamente las modificaciones al
servidor
Relajar la semántica de compartir
Carlos Figueira/USB
14
Semántica de archivos compartidos
●
●
●
Semántica de sesión: Ningún cambio es
visible a otros procesos hasta que el archivo se
cierre.
No todas las lecturas retornan el valor más
reciente del dato.
Si dos procesos tienen copias locales del
mismo archivo y lo modifican al mismo tiempo,
el resultado final depende de quién lo cierre
más rápido (¿o más tarde?)
Carlos Figueira/USB
15
Semántica de archivos compartidos
●
Archivos inmutables:
●
●
●
●
●
No existen actualizaciones, es más fácil compartir y
replicar. Las únicas operaciones permitidas son “create” y
“read”.
Se pueden actualizar los directorios y reemplazar los
archivos en forma atómica.
¿Qué sucede si dos procesos intentan reemplazar el
mismo archivo a la vez?
¿Qué sucede si un proceso reemplaza un archivo
mientras otro lo está leyendo?
Transacciones atómicas
Carlos Figueira/USB
16
Aspectos de Implementación: Uso
de archivos
●
●
Satyanarayanan
(1981)
realizó
algunas
mediciones para estudiar los patrones de uso
de los archivos:
Mediciones estáticas: foto instantánea del
sistema en ciertos momentos pueden revelar:
●
Distribución de tamaños de archivos
●
Distribución de tipos de archivos
●
Cantidad de espacio que ocupan los archivos
Carlos Figueira/USB
17
Uso de archivos
●
●
●
Mediciones dinámicas: El mismo servidor de archivos registra
en una bitácora (“log”) todas las operaciones que realiza, para
ser analizadas posteriormente. Esto revela:
●
Frecuencia de las operaciones
●
Número de archivos abiertos
●
Cantidad de archivos compartidos.
Las mediciones fueron llevadas a cabo en una universidad.
¿Es la misma situación en un laboratorio de investigación,
oficinas, sistemas bancarios?
Las mediciones fueron realizadas en sistemas Unix
tradicionales. ¿Se pueden extrapolar a sistemas distribuidos?
Carlos Figueira/USB
18
Uso de archivos
●
Resultados:
●
●
●
La mayoría de los archivos está por debajo de 10K.
Esto hace suponer que es mejor transferir entre clienteservidor archivos completos en lugar de bloques de
disco.
La mayoría de los archivos tienen vida corta. Esto
supone que es mejor crear el archivo en el cliente y
mantenerlo ahí hasta su eliminación, disminuyendo
tráfico entre cliente-servidor.
Es poco usual compartir archivos. Es mejor usar
semántica de sesión y hacer “caching” de los archivos
en el cliente.
Carlos Figueira/USB
19
Uso de archivos
●
Resultados (cont.):
●
●
●
Existen distintas clases de archivos con
propiedades diferentes. Esto hace suponer que
deben existir diferentes mecanismos para manejar
diferentes clases de archivos:
La lectura es más común que la escritura. Favorece
la semántica de sesión.
La lectura y escritura son secuenciales, no es
común el acceso aleatorio.
Carlos Figueira/USB
20
Aspectos de Implementación:
Estructura del sistema
●
¿Cómo estructurar el servicio de archivos y
directorios?
●
●
Combinados en un mismo servidor: Las
operaciones son directas.
Separarlos:
–
–
Abrir un archivo implica ir al Servidor de directorios,
localizar el archivo y luego ir al Servidor de Archivos para
llevar a cabo la lectura o escritura.
Requiere mayor comunicación. Pero es más flexible y el
software es más sencillo.
Carlos Figueira/USB
21
Servidores de directorios y archivos
separados
Servidor de directorio
Nombre simbólico
Cliente
Nombre binario
Servidor de archivos
Carlos Figueira/USB
22
Servidores de directorios y archivos
separados: búsqueda interactiva
Cliente sabe a quien preguntar. Requiere más
mensajes,
Carlos Figueira/USB
23
Servidores de directorios y archivos
separados: búsqueda recursiva
Más eficiente y transparente.
No se puede administrar con RPC normal.
Carlos Figueira/USB
24
Servidores con y sin estado
●
Sin estado
●
●
●
●
Cuando cliente envía una solicitud, el servidor la lleva a
cabo, envía respuesta y elimina de sus tablas internas
toda la info. sobre solicitud
No guarda info del cliente entre sus solicitudes
Cada solicitud es auto-contenida. P.e.: nombre archivo
y desplazamiento
Con estado
●
Servidores guardan info del estado de clientes entre
solicitudes en tabla de descriptores de archivo
Carlos Figueira/USB
25
Comparación
Ventajas servidores SIN
estado
Tolerante a fallas
Desventajas servidores
CON estado
Recuperación a cargo del
cliente
Ahorro espacio en servidor
Se pueden desbordar tablas
(no se pueden abrir
archivos)
No hay límite para num. de Si cliente falla después de
archivos abiertos
abrir archivo, debe eliminar
info de archivos inactivos
No hay problema si falla
cliente
Carlos Figueira/USB
26
Comparación
Ventajas servidores CON
estado
Mensajes más cortos
Desventajas servidores
SIN estado
Mensajes más largos
Mejor desempeño (tablas en Desempeño pobre
memoria o en cache)
Es posible realizar lecturas
adelantadas
No son posibles lecturas
adelantadas
Fácil reconocer operaciones Difícil reconocer
idempotentes
operaciones idempotentes
Puede manejar bloqueo de Requiere servidor de
archivos
bloqueos especial
Carlos Figueira/USB
27
Copias de trabajo (caching)
●
Cache en disco del servidor
●
●
●
Beneficios: Capacidad, una sola copia por archivo,
accesibles a todos los clientes, no hay problemas
de consistencia
Problemas: Bajo desempeño
Cache en memoria principal del servidor
●
●
Beneficios: las anteriores pero mejor desempeño
Problemas: determinar tamaño de unidad de
cache (bloque o archivo)
Carlos Figueira/USB
28
Copias de trabajo (caching)
●
Cache en disco del cliente
●
●
Disco suele ser más lento, favorable cuando son muchos datos
Cache en memoria principal del cliente
●
●
●
En espacio de usuario: librerías con llamadas al sistema.
Cuando el proceso termina, los archivos modificados se
actualizan en servidor.
En el núcleo. La ventaja es que el cache sobrevive al proceso.
La desventaja es que siempre hay que llamar al núcleo.
En administrador de cache en espacio de usuario. Libera al
núcleo del sistema, fácil de programar, más flexible.
Carlos Figueira/USB
29
Consistencia de cache
●
●
Escritura al cierre: semántica de sesión
Algoritmo de escritura a través del cache (writethrough cache)
●
●
●
Administrador de caches debe verificar en servidor
antes de dar copia de archivo a cliente
Se puede hacer a través de comparación de fechas
de última actualización, versión o suma de
verificación
Genera alto tráfico en la red
Carlos Figueira/USB
30
Consistencia de cache: writethrough
P2
P1
2
P3
4
f
f
1 P1 lee f
3 P3 actualiza f
Archivo f será obsoleto para P2
f
f
Servidor
Carlos Figueira/USB
31
Consistencia del cache
●
●
Escrituras retardadas
●
Enviar actualizaciones cada cierto tiempo
●
Mejora desempeño, semántica puede ser ambigua
Control centralizado
●
●
Servidor de archivos da permisos de acceso a
archivos dependiendo de si está abierto por otros
procesos para lectura y escritura
Soporta semántica Unix, pero no es robusto, es
poco escalable
Carlos Figueira/USB
32
Consistencia de cache
●
●
Las copias de trabajo en servidor no tienen
efecto en semántica del sistema de archivos
Las copias de trabajo en cliente ofrecen mejor
desempeño a costa de mayor complejidad y
posible semántica difusa
Carlos Figueira/USB
33
Réplicas
●
●
●
Aumentan confiabilidad al disponer
respaldos independientes de cada archivo.
de
Mejoran disponibilidad: permiten accesos
aunque falle uno de los servidores.
Mejoran desempeño: la carga se reparte entre
servidores.
Carlos Figueira/USB
34
Creación de réplicas explícita
●
●
●
Cliente controla el proceso.
Cuando se crea un archivo, lo hace en un
servidor específico y adicionalmente puede
crear copias en otros servidores.
Se registran en el cliente las copias. Para abrir
de nuevo un archivo, busca primera disponible.
S1
C
Carlos Figueira/USB
S2
S3
35
Réplicas retrasadas
●
●
●
●
El cliente crea el archivo en
un servidor
Luego en forma automática el
servidor crea las copias sin
conocimiento del cliente.
S1
C
S3
El sistema es el encargado de
la recuperación.
Otra forma: comunicación en
grupo
S2
S1
C
S2
S3
Carlos Figueira/USB
36
Protocolos de actualización:
replicación con copia primaria
●
Un servidor es primario, el resto son secundarios.
●
La actualización llega al servidor primario,
●
●
●
●
éste realiza los cambios en forma local y después envía órdenes
a los servidores secundarios para que realicen las mismas
modificaciones.
Las lecturas se ejecutan desde cualquier servidor.
¿Qué sucede si falla el primario antes de la actualización
de los secundarios?
Si falla el primario, ¿quién hace las actualizaciones?
Carlos Figueira/USB
37
Descargar