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

Slides:



Advertisements
Presentaciones similares
SISTEMAS DE ARCHIVOS DISTRIBUIDOS Sistemas Distribuidos Abr-Jun 2007 Yudith Cardinale.
Advertisements

Arquitectura NFS El servidor NFS exporta uno o más directorios
 Modelo de Datos MD  Conjunto de conceptos que permiten describir, a distintos niveles de abstracción, la estructura de una B.D. Que llamaremos ESQUEMA.
Arquitectura y Sistemas Operativos Gestión de Memoria Parte 1 1 Gestión de Memoria – Parte 1 Agenda Parte 1 –RequisitosRequisitos –EvoluciónEvolución –Carga.
DCE: Entorno de Computación Distribuida Profesor: Daniel Acuña Expositores: Francisco Almarza Gustavo Espinoza.
Conceptos de sistemas de información 4 Sistema de información formal –Es un medio informativo organizacionalmente eficaz, que es diseñado con la finalidad.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
Sistema de control de versiones CVS y Subvesion. Definición: Control de versiones Un sistema de control de versiones es un sistema de gestión de múltiples.
Trabajo De Informática Presentado Por : Juan Pablo Caviedes Javier Carvajal Shirley Cortes Grado J.T.
Teoría de Sistemas Operativos Archivos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
PARTICIONES EN UN DISCO DURO Diagnóstico y Mantenimiento INTE 3020 Elena López 15/11/2013.
Un servidor FTP es un programa especial que se ejecuta en un servidor conectado normalmente en Internet (aunque puede estar conectado en otros tipos de.
ORGANIZACIÓN DEL SISTEMA DE MANDO EN UNA EMERGENCIA
Portales colaborativos
Conceptos a Base de Datos
Teoría de Sistemas Operativos Archivos
Programación Avanzada
U.T. 11: Introducción A Las Bases De Datos
Universidad Autónoma del Estado de México
CIENCIA TECNOLOGÍA Y SOCIEDADES
Introducción a los protocolos de enrutamiento dinámico
INTRODUCCIÓN Elmasri: Pág
SISTEMAS OPERATIVOS: PROPIETARIOs Y LIBREs.
Sistema Distribuido para entidad bancaria
Software de aplicación de escritorio y web
Otros temas sobre cachés
Desarrollo Actividad Número 3
Definición de redes de computadoras
Análisis y Diseño de Sistemas de Información
TEMA: EVOLUCIÓN DE LA WEB
Presentamos.
Computación Curso 2017.
Modelo de 3 capas. Qué es la arquitectura de una aplicación? La arquitectura se refiere a la forma en la que es diseñada tanto física como lógicamente.
Nombre: Adrián de la Torre López
CIENCIA TECNOLOGÍA Y SOCIEDADES
CONOCIMIENTOS PREVIOS TELEMÁTICA
MEMORIAS. Alba Lus, Esther Escobar, Laura Hierro, Raquel Fdez.
Vivir en un mundo basado en redes
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
*Seguridad de los documentos Electrónicos*
Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de.
Almacenamiento SAM(Storage Area Network)
Colegio de Bachilleres plantel 4 Alumno: Luis Josue Esteban Trinidad G:202 E:5 Reporte sobre MI BLOG.
Noviembre18, 2017 Concepción, Chile #sqlsatconce.
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
Sistema de Archivos UNIX Windows
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Servicios de Seguridad Informática
Instituto Tecnológico Superior de la Región Sierra
Dispositivos de almacenamiento
Sistemas peer-to-peer
MIDDLEWARE Y PROGRAMACION WEB DISTRIBUIDA. ¿ QUE ES MIDDLEWARE?
INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN
Almacenamiento Cloud Arquitectura del Computador Santiago Vanegas
Generaciones de Bases de Datos
Sistema Gestor de Bases de Datos (SGDB)
Auditoria de las instalaciones y operaciones
Agentes: Introducción
Reanudación de Ejecución de Procesos en Metasistemas
Instituto Tecnológico de Zacatecas
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
Arquitectura de una aplicación
Introducción a los sistemas operativos en red
Memoria Cachés.
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
MEDIOS DE ALMACENAMIENTO
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

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

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

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

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.

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

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.

Carlos Figueira/USB7 Arquitectura de NFS

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.

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

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

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

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.

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.

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

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?)

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

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

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?

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.

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.

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.

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

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

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

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

Carlos Figueira/USB26 Comparación

Carlos Figueira/USB27 Comparación

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)

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.

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

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

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

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

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.

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

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

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?