Title: SISTEMAS DE ARCHIVOS DISTRIBUIDOS
1SISTEMAS DE ARCHIVOS DISTRIBUIDOS
- Tema VII
- Sistemas de operación II
- Sep-Dic 2006
- Yudith Cardinale
2INDICE
- Introducción
- Requisitos
- Aspectos de Diseño
- Servicios de archivos
- Servicios de directorios
- Módulo cliente
- Semántica de arcchivos compartidos
- Aspectos de Implementación
- Uso de Archivos
- Estructura del Sistema
- Caching
- Réplicas
3Introducción
- Un sistema de archivos distribuidos permite a
los procesos el acceso transparente y eficiente
de archivos que permanecen en servidores remotos. - Son útiles en Intranets, redes locales y
sistemas distribuidos - Son responsables de la organización,
almacenamiento, recuperación, nominaación,
compartimiento y protección de los archivos. - Proporcionan una interfaz de programación que
abstrae a los programadores de los detalles de
localización y asignación del almacenamiento
4Introducción
- Servicios de Archivos
- Especificación de los servicios que el 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. - Corre en el espacio de usuario, por lo que el
sistema puede contener varios SA con servicios de
archivos diferentes. - Puede haber 1 o más SA, pero debe ser
transparente a los clientes.
5Requisitos
- Transparencia
- De acceso no hay preocupación de la 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
6Requisitos
- Replicación de archivos puede ser implementada
por redundancia o caching - Heterogeneidad del hardware y sistema de
operación - Tolerancia a fallas
- Consistencia define la semántica de
actualuzación de una copia - Seguridad mecanismos de control de acceso y
autenticación - Eficiencia el desempeño debe ser similar a
sistemas de archivos locales.
7Aspectos de Diseño
- Un servidor de archivos generalmente tiene tres
componentes importantes servicio de archivos,
servicio de directorios y módulo cliente - a. Servicio de archivos Ofrece operaciones sobre
archivos individuales leer, escribir, agregar. - Aspectos importantes
- Administración de los atributos (información que
no es parte de el archivo en si mismo) - Responsable de la protección contra accesos no
permitidos, a través de capacidades o listas de
control de acceso.
8Aspectos de Diseño
- Aspectos importantes (cont.)
- Responsable del modelo de acceso por
carga/descarga o por acceso remoto.
Carga/descarga Acceso
remoto cliente servidor
cliente servidor
9Aspectos de Diseño
- b. Servicio de directorios Ofrece operaciones
sobre directorios crear y borrar directorios,
copiar y mover archivos entre directorios. - Aspectos importantes
- Responsable de resolver el nombre de los
archivos. - Debe proveer transparencia de los nombres con
respecto a la localización. - Ofrecer nombres de dos niveles nombres
simbólicos y nombres binarios - Administra la organización de los archivos
sistema jerárquico de archivos. - Maneja los enlaces lógicos y fÃsicos
10Aspectos de Diseño
- c. Módulo cliente se ejecuta en cada máquina
cliente - Aspectos importantes
- Integra y extiende las operaciones de los
servicos de archivos y de directorios a través de
una 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 y buffering en el cliente
11Aspectos de Diseño
- d. Semántica de archivos compartidos Se refiere
a cómo secuencializar los reads y writes
sobre archivos compartidos de manera tal que no
se lean valores obsoletos o se pierdan
actualizaciones. - Semántica unix
- Impone en todas las operaciones un orden
absoluto en función del tiempo y ante el read
retorna el 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.
12Aspectos de Diseño
- Semántica unix (cont.)
- Se logra fácilmente si sólo existe un servidor
de archivos y los clientes no hacen caching de
sus archivos. En este caso todas las operaciones
read y write pasan directamente por el
servidor de archivos y las procesa en forma
secuencial. - Para mejorar el desempeño se puede permitir a
los clientes tener copias locales de los archivos
de uso frecuente en sus caches. Pero hay
problemas de lecturas obsoletas. - Para evitar el problema de lecturas obsoletas se
puede - Propagar inmediatamente las modificaciones al
servidor - Relajar la semántica de compartimiento.
13Aspectos de Diseño
- d. Semántica de archivos compartidos (cont.)
-
- Semántica de sesión
- Ningún cambio es visible a otros procesos hasta
que el archivo se cierre. - No todos los reads 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.
14Aspectos de Diseño
- d. Semántica de archivos compartidos (cont.)
- 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
15Aspectos de Implementación
- a. 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
16Aspectos de Implementación
- a. Uso de archivos (cont.)
- 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?
17Aspectos de Implementación
- a. Uso de archivos (cont.)
- Conclusiones más importantes
- La mayorÃa de los archivos está por debajo de
10K. Esto hace suponer que es mejor transferir
entre cliente-servidor 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.
18Aspectos de Implementación
- a. Uso de archivos (cont.)
- Conclusiones más importantes (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 a la semántica de sesión. - La lectura y escritura son secuenciales, no es
común el acceso aleatorio.
19Aspectos de Implementación
- b. Estructura del sistema Se refiere a la
organización interna de archivos y directorios. - 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.
20Aspectos de Implementación
Servidor de directorio
Nombre simbólico
Cliente
Nombre binario
Servidor de archivos
- Acceso a archivos con servidores de directorios y
archivos separados - Búsqueda de archivos cuando los servicios de
archivos y directorios están separados puede ser
iterativa o automática
21Aspectos de Implementación
- Búsqueda iterativa
- El cliente está consciente de cuál servidor
contiene cuál directorio. - Requiere más mensajes
22Aspectos de Implementación
- Búsqueda automática o recursiva
- Más eficiente y transparente.
- No se puede administrar con RPC normal.
23Aspectos de Implementación
- Considerar si los servidores de archivos y
directorios deben contener la información de
estado de los clientes. - Servidores sin estado (stateless)
- Cuando un cliente envÃa una solicitud a un
servidor, éste la lleva a cabo, envÃa la
respuesta y elimina de sus tablas internas toda
la información relativa a dicha solicitud. - No guarda información del cliente entre
solicitudes. - Cada solicitud debe ser autocontenida.
24Aspectos de Implementación
- Servidores con estado
- Los servidores guardan información del estado de
los clientes entre solicitudes tabla que asocia
los descriptores de archivos con los archivos
propiamente dichos.
25Aspectos de Implementación
- Ventajas de los
Desventaja de los - servidores sin estado
servidores con estado - Tolerantes a fallas
La recuperación quedará a cargo del -
cliente. - No se desperdicia espacio Se
pueden desbordar las tablas y no se - en el servidor.
podrán abrir más archivos - No existe lÃmite para el número
- de archivos abiertos.
- No hay problema si un cliente Si un
cliente falla después de abrir un - falla.
archivo, el servidor está ante un
-
dilema -
- Sus tablas se llenan de basura. -
- Eliminar archivos inactivos
26Aspectos de Implementación
Ventajas de los
Desventaja de los servidores con
estado servidores sin
estado Mensajes más cortos.
Mensajes autocontenidos más largos. Mejor
desempeño porque las Desempeño
pobre. tablas pueden estar en memoria principal o
en caché. Es posible realizar lecturas
No son posibles lecturas adelantadas adelantadas.
Es fácil
reconocer operaciones Es difÃcil
reconocer operaciones idempotentes.
idempotentes. Puede
manejar el bloqueo de Se requiere un
servidor de archivos. de locks
especial.
27Aspectos de Implementación
c. Caching Dónde mantener los archivos o parte
de ellos. c.1. Guardarlo en el disco del
servidor Ventajas Hay espacio, se requiere sólo
una copia de cada archivo, archivos accesibles a
todos los clientes, no hay problemas de
consistencia. Problema Bajo desempeño en la
transferencia del archivo disco del
servidor memoria del servidor red
memoria del cliente
Memoria del servidor
disco del servidor
disco del cliente (opcional)
Memoria del cliente
1
2
3
4
red
28Aspectos de Implementación
c. Caching (cont.) c.2. Caching en memoria
principal del servidor Ventajas Mantiene las
ventajas anteriores y mejora el
desempeño. Problemas Requiere determinar el
tamaño de la unidad que administra el caché todo
el archivo o por bloques. Se necesita un
algoritmo de reemplazo cuando el caché esté lleno
(LRU) c.3. Caching en el cliente En disco es
lento, en general más lento que el anterior. Es
bueno cuando son muchos datos.
29Aspectos de Implementación
c. Caching (cont.) c.3. Caching en el cliente
(cont.) En memoria principal - En el espacio
de direcciones del cliente, administrado por
librerÃas con llamadas al sistema. Cuando el
proceso termina, los archivos modificados se
actualizan en el servidor. - En el kernel. La
ventaja es que el caché sobrevive al proceso. La
desventaja es que siempre hay que llamar al
kernel. - En un administrador de caché en espacio
de usuario. Libera al kernel del sistema, fácil
de programar, más flexible.
30Aspectos de Implementación
c.3. Caching en el cliente (cont.) En
memoria principal
kernel
kernel
31Aspectos de Implementación
Consistencia del caché 1. Escritura al cierre -
Semántica de sesión 2. Algoritmo de escritura a
través del caché (write-through cache) Para
mantener la consistencia en las otras caches, el
administrador de caches debe verificar en el
servidor antes de dar un archivo que está en
caché a un nuevo cliente. Puede hacerlo mediante
la comparación de fechas de última actualización,
número de versión o sumas de verificación.
32Aspectos de Implementación
Consistencia del caché 2. Algoritmo de escritura
a través del caché (cont.) máquina A
máquina B P1 lee
f Servidor P3 actualiza
f
El archivo f será obsoleto para P2 Problema
tráfico de red con los writes
P1
P2
P3
2
4
f
f
1
3
f
f
33Aspectos de Implementación
Consistencia del caché 3. Escrituras
retardadas. - Enviar las actualizaciones cada
cierto tiempo. - Mejor desempeño, pero la
semántica puede ser ambigua. 4. Control
centralizado El servidor de archivos da permisos
de accesos a los archivos dependiendo de si está
abierto por otros procesos para lectura y/o
escritura. Soporta la semántica unix, pero no es
robusto y es poco escalable.
34Aspectos de Implementación
El caching en el servidor no tiene efectos en
la semántica del sistema de archivos. El
caching en el cliente ofrece mejor desempeño a
costa de mayor complejidad y posible semántica
más difusa.
35Aspectos de Implementación
- d. Réplicas
- Razones para el servicio de réplicas
- Aumento de confiabilidad al disponer de respaldos
independientes de cada archivo. - Disponibilidad permitir accesos aunque falle uno
de los servidores. - Desempeño repartir carga de trabajo entre
servidores.
36Aspectos de Implementación
- Formas de creación de réplicas
- 1. Réplica explÃcita el cliente controla el
proceso. Cuando 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. Si quiere
abrir de nuevo un archivo, busca la primera
disponible.
S1
archivo 1.14 2.16 3.19 prog.c
1.21 2.43 3.41
C
S2
S3
37Aspectos de Implementación
2. Réplica retrasada el cliente crea el archivo
en un servidor, luego en forma automática el
servidor crea las copias sin conocimiento del
cliente. El sistema es el encargado de la
recuperación. 3. Uso de comunicación en grupo
S1
C
S2
S1
S3
C
S2
S3
38Aspectos de Implementación
- Protocolos de actualización
- 1. Réplicació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?
39Aspectos de Implementación
- Protocolos de actualización
- 1. Réplicació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?
40Aspectos de Implementación
2. Método del voto - Los clientes solicita y
requieren permiso de varios servidores antes de
leer o escribir en un archivo replicado. - Para
leer de un archivo de N réplicas, un cliente
necesita un quórum de lectura Nr servidores o
más. - Para modificar se requiere un quórum de
escritura Nw y se debe cumplir que Nr Nw gt
N. - El voto consiste del número de la versión
asociado al archivo.
41Aspectos de Implementación
2. Método del voto Nr3, Nw 10
Nr7, Nw 9 Nr1, Nw 12
A B C D A B C D A
B C D E F G H E F G H
E F G H I J K L
I J K L I J K L
quorum de
quorum de
escritura
lectura Qué sucede si fallan muchos
servidores y quedan menos de Nw? No se puede
llegar a un acuerdo.
42Aspectos de Implementación
- 3. Voto con fantasmas
- - Pretende aliviar el problema anterior.
- - La idea es crear un servidor fantasma sin
espacio de almacenamiento para cada servidor real
que falle. - - En las lecturas no se permiten fantasmas.
- - Las escrituras sólo tienen éxito si al menos
uno de los servidores es real. - - Cuando se levante un servidor, obtiene un
quórum de lectura para localizar la versión más
reciente.