La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas de Operación II Sistemas de Archivos Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen.

Presentaciones similares


Presentación del tema: "Sistemas de Operación II Sistemas de Archivos Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen."— Transcripción de la presentación:

1 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

2 Carlos Figueira/USB2 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

3 Carlos Figueira/USB3 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

4 Carlos Figueira/USB4 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.

5 Carlos Figueira/USB5 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

6 Carlos Figueira/USB6 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.

7 Carlos Figueira/USB7 Arquitectura de NFS

8 Carlos Figueira/USB8 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.

9 Carlos Figueira/USB9 Carga/Descarga vs Acceso Remoto Sistemas de Archivos Distribuidos: (a) el archivo puede quedarse en servidor o (b) copiarse al cliente

10 Carlos Figueira/USB10 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

11 Carlos Figueira/USB11 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

12 Carlos Figueira/USB12 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.

13 Carlos Figueira/USB13 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.

14 Carlos Figueira/USB14 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

15 Carlos Figueira/USB15 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?)

16 Carlos Figueira/USB16 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

17 Carlos Figueira/USB17 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

18 Carlos Figueira/USB18 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?

19 Carlos Figueira/USB19 Uso de archivos ● Resultados: ● 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.

20 Carlos Figueira/USB20 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.

21 Carlos Figueira/USB21 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.

22 Carlos Figueira/USB22 Servidores de directorios y archivos separados Nombre simbólico Client e Servidor de directorio Nombre binario Servidor de archivos

23 Carlos Figueira/USB23 Servidores de directorios y archivos separados: búsqueda interactiva Cliente sabe a quien preguntar. Requiere más mensajes,

24 Carlos Figueira/USB24 Servidores de directorios y archivos separados: búsqueda recursiva Más eficiente y transparente. No se puede administrar con RPC normal.

25 Carlos Figueira/USB25 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

26 Carlos Figueira/USB26 Comparación

27 Carlos Figueira/USB27 Comparación

28 Carlos Figueira/USB28 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)

29 Carlos Figueira/USB29 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.

30 Carlos Figueira/USB30 Consistencia de cache ● Escritura al cierre: semántica de sesión ● Algoritmo de escritura a través del cache (write- through 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

31 Carlos Figueira/USB31 Consistencia de cache: write- through f f P1P1 P2P2 1 P1 lee f 2 f P3P3 f 4 Servido r 3 P3 actualiza f Archivo f será obsoleto para P2

32 Carlos Figueira/USB32 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

33 Carlos Figueira/USB33 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

34 Carlos Figueira/USB34 Réplicas ● Aumentan confiabilidad al disponer de respaldos independientes de cada archivo. ● Mejoran disponibilidad: permiten accesos aunque falle uno de los servidores. ● Mejoran desempeño: la carga se reparte entre servidores.

35 Carlos Figueira/USB35 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. C S3S3 S2S2 S1S1

36 Carlos Figueira/USB36 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. ● El sistema es el encargado de la recuperación. ● Otra forma: comunicación en grupo C S3S3 S2S2 S1S1 C S3S3 S2S2 S1S1

37 Carlos Figueira/USB37 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?


Descargar ppt "Sistemas de Operación II Sistemas de Archivos Distribuidos Prof. Carlos Figueira Basado en material de Yudith Cardinale (USB) Andrew Tanembaum y Marteen."

Presentaciones similares


Anuncios Google