SISTEMAS DE ARCHIVOS DISTRIBUIDOS - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

Description:

Un sistema de archivos distribuidos permite a los procesos ... Propagar inmediatamente las modificaciones al servidor. Relajar la sem ntica de compartimiento. ... – PowerPoint PPT presentation

Number of Views:314
Avg rating:5.0/5.0
Slides: 43
Provided by: joaquin47
Category:

less

Transcript and Presenter's Notes

Title: SISTEMAS DE ARCHIVOS DISTRIBUIDOS


1
SISTEMAS DE ARCHIVOS DISTRIBUIDOS
  • Tema VII
  • Sistemas de operación II
  • Sep-Dic 2006
  • Yudith Cardinale

2
INDICE
  • 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

3
Introducció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

4
Introducció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.

5
Requisitos
  • 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

6
Requisitos
  • 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.
  • i

7
Aspectos 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.

8
Aspectos 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
9
Aspectos 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

10
Aspectos 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

11
Aspectos 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.

12
Aspectos 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.

13
Aspectos 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.

14
Aspectos 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

15
Aspectos 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

16
Aspectos 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?

17
Aspectos 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.

18
Aspectos 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.

19
Aspectos 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.

20
Aspectos 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

21
Aspectos de Implementación
  • Búsqueda iterativa
  • El cliente está consciente de cuál servidor
    contiene cuál directorio.
  • Requiere más mensajes

22
Aspectos de Implementación
  • Búsqueda automática o recursiva
  • Más eficiente y transparente.
  • No se puede administrar con RPC normal.

23
Aspectos 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.

24
Aspectos 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.

25
Aspectos 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

26
Aspectos 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.
27
Aspectos 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
28
Aspectos 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.
29
Aspectos 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.
30
Aspectos de Implementación
c.3. Caching en el cliente (cont.) En
memoria principal
kernel
kernel
31
Aspectos 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.
32
Aspectos 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
33
Aspectos 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.
34
Aspectos 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.
35
Aspectos 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.

36
Aspectos 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
37
Aspectos 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
38
Aspectos 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?

39
Aspectos 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?

40
Aspectos 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.
41
Aspectos 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.
42
Aspectos 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.
Write a Comment
User Comments (0)
About PowerShow.com