Sistemas Distribuidos - Facultad de Ingeniería
Transcripción
Sistemas Distribuidos - Facultad de Ingeniería
Sistemas Distribuidos Módulo 6 Sistemas de Archivos en Sistemas Distribuidos y Nombres Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia “San Juan Bosco” Sistema de Archivos en Sistemas Distribuidos Propósitos para el uso de archivos: Almacenaje de Información permanente Información compartida También soporta: ⇒ Compartir información remota ⇒ Usuarios móviles ⇒ Disponibilidad (réplicas) ⇒ Estaciones de trabajo sin disco JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Servicios provistos por el sistema de archivos: Servicio de almacenaje. Servicio de nombres Servicio de archivos Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Sistema de Archivos en Sistemas Distribuidos Servicio de almacenaje. alocación y manejo del espacio servicio de disco servicio de “bloqueo” Servicio de nombres JRA © 2009 mapeo entre nombres externos e internos Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Servicio de archivos: acceso semántica de archivos compartidos caching replicación control de concurrencia Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Sistema de Archivos en Sistemas Distribuidos Características Deseables de los SAD Transparencia JRA © 2009 de estructura: no se conoce el número de servidores ni sus lugares de acceso de nombres de replicación Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Movilidad de usuario: el usuario no está obligado a trabajar en un nodo único. Rendimiento: se mide como la cantidad de tiempo que demora en satisfacer el requerimiento de un cliente. Simplicidad y facilidad de uso: semántica fácil de entender. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Escalabilidad: se debe adaptar al crecimiento de nodos y usuarios en el sistema. Alta disponibilidad: atento a fallas. Alta confiabilidad: almacenamiento estable. Integridad de datos: control de concurrencia (transacciones atómicas) JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Seguridad: debe ser lo suficientemente seguro como para que los usuarios puedan confiar en la privacidad de sus datos. Heterogeneidad: se torna inevitable como conse-cuencia de la gran variedad de equipamiento y software. Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Sistema de Archivos en Sistemas Distribuidos Modelos de Archivos Los archivos pueden ser: JRA © 2009 estructurados: son raros hoy, son una secuencia de registros (indexados o no indexados) no estructurados: UNIX. mutables inmutables Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Atributos: nombre valor dueño tamaño permisos de acceso fecha de creación fecha de última modificación fecha de último acceso Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Sistema de Archivos en Sistemas Distribuidos Modelos de Acceso a Archivos JRA © 2009 Modelo de servicio remoto. Modelo de captura de datos (caching): trae consigo problemas de consistencia. Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Unidades de transferencia de datos: Modelo de transferencia a nivel de archivos. Modelo de transferencia bloques. Modelo de transferencia bytes. Modelo de transferencia por registros. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Semántica de Archivos Compartidos JRA © 2009 Semántica de sesión Semántica de archivos inmutables Semántica de transacciones Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Esquemas de caché En centralizados: granularidad tamaño políticas de reemplazo En distribuidos se agrega: locación propagación de la modificación validación Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Sistema de Archivos en Sistemas Distribuidos Locación del caché JRA © 2009 en memoria del servidor en disco del cliente en memoria del cliente Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Locación caché Costo de acceso con éxito en el caché. Ventajas Fácil de implementar Memoria del servidor Un acceso por la red Totalmente transparente a los clientes consistente el archivo original y los datos en el caché Fácil para soportar semántica UNIX Fácil de mantener Confiabilidad Disco del cliente Un acceso a disco _ Memoria del cliente JRA © 2009 en caso de “crash” capacidad de almacenaje Adecuado para soportar operación sin conexión Contribuye a la escalabilidad y confiabilidad Gran Máxima ganancia de rendimiento estaciones de trabajo sin disco Contribuye a la escalabilidad y confiabilidad Permite Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Límite del nodo 4 memoria cliente 3 disco cliente 1. Sin caché 2. Caché localizado en la memoria del servidor 3. Caché localizado en el disco del cliente 4. Caché localizado en la memoria del cliente JRA © 2009 memoria servidor 2 disco servidor 1 locación original del archivo Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Propagación de la Modificación write through delayed write JRA © 2009 ⇒ escritura cuando se “echa” la información del caché ⇒ escritura periódica ⇒ escritura cuando se cierra Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Validación de cachés iniciado por el cliente verificación antes de cada acceso. verificación periódica. Verificación sólo cuando el archivo es abierto para el uso. iniciado por el servidor JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Replicación Ventajas: reduce el tráfico en la red mejora el procesamiento total buena escalabilidad operación autónoma JRA © 2009 se incrementa la disponibilidad se incrementa la confiabilidad mejora el tiempo de respuesta Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Transparencia de replicación Replicación explícita Replicación implícita/relajada Problema de actualización de múltiples copias Está relacionado con mantener consistentes las copias JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Replicación read-only: generalmente código Protocolo read-any/write-all: no puede manejar las redes partidas Protocolo de copias disponibles Protocolo de copias primarias JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Protocolos basados en quorum: de un total de n copias del archivo F, un número de r deben ser leídas (quorum de lecturas), de la misma forma w copias para escritura (quorum de escritura) tal que: (r+w)>n JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Protocolos derivados: leer alguno y escribir todos r=1 w=n leer todos y escribir alguno r=n w=1 consenso de mayoría Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Sistema de Archivos en Sistemas Distribuidos Tolerancia a las Fallas Hay propiedades que influencian directamente en un SAD para que sea tolerante a las fallas: Disponibilidad ⇒ replicación Robustez Almacenamiento estable: volátil discos estable JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Efecto del paradigma de servicio en la tolerancia a las fallas JRA © 2009 Servidores con estado Servidores sin estado Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Proceso Cliente Proceso Servidor Open(fileneme,mode) Return(fid) Tabla de archivos Read(fid,100,buf) Return(bytes 0 a 99) Read(fid,100,buf) Return(bytes 100 a 200) Dos subsecuentes lecturas de 100 bytes (200 bytes en total) JRA © 2009 fid Modo Puntero R/W Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Proceso Cliente Proceso Servidor Información de estado de archivos Read(filename,0,100,buf) Return(bytes 0 a 99) Read(filename,100,100,buf) Return(bytes 100 a 199) Nombre de archivo JRA © 2009 Modo Puntero R/W Dos subsecuentes lecturas de 100 bytes (200 bytes en total) Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Diferencias entre Servicios con estado y sin estados Recuperación de Fallas Un servidor con estados pierde, en un crash, todo su estado volátil. Restaure el estado por un protocolo basado en un diálogo con clientes o aborte las operaciones que se estaban llevando a cabo cuando el crash ocurrió. El servidor necesita estar al tanto de las fallas en los clientes para reclamar el espacio reservado para registrar el estado de los procesos de los clientes caídos JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Con un servidor sin estados, los efectos de fallas y recuperación en el servidor no son notables. Un nuevo servidor encarnado puede responder sin dificultad a un requerimiento autocontenido. Penalización por usar un servicio robusto sin estados: Mensajes de requerimiento mas grandes Menor procesamiento de requerimientos Restricciones adicionales al diseño de un SAD JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Sistema de Archivos en Sistemas Distribuidos Algunos ambientes requieren servicio con estado Un servidor que emplea validación de caché iniciada por el servidor, dado que mantiene un registro de todos los archivos que están cached por varios clientes. El uso de descriptores de archivos en UNIX y los offset implícitos es inherente con estado, los servidores deben mantener las tablas para mapear los descriptores de archivos a los nodos y almacenar los offsets corrientes en un archivo. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Nombres en Sistemas Distribuidos Definiciones Nombre: cadena de bits o caracteres que se usan para referirse a una entidad. Entidad: casi cualquier cosa en un sistema distribuido. Para operar con una entidad se necesita un punto de acceso a la misma. Este punto de acceso es otra clase especial de entidad. Dirección: es el nombre que recibe el punto de acceso a una entidad Se pueden generar nombres que son independientes de la locación. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Definiciones Otro tratamiento especial merecen los identificadores. Un verdadero identificador es un nombre que tiene las siguientes propiedades: 1. Un identificador se refiere a lo sumo a una entidad. 2. Cada entidad es referida a lo sumo por un identificador. 3. Un identificador siempre se refiere a una única entidad (nunca es reusado) JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Definiciones Los nombres “amigables” (desde el punto de vista humano) es el que está representado por caracteres. Los nombres en un sistema distribuido están organizados en lo que se llama espacio de nombres. Nombre global: es un nombre que denota una entidad no importa donde es usado el mismo en el sistema. Nombre local: está asociado a un nombre relativo. Resolución de nombres: proceso de buscar un nombre. Siempre es posible si se sabe por donde comenzar (mecanismo de clausura). Alias: otro nombre para la misma entidad. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Espacio de Nombres (1) Un grafo general de nombres con un simple nodo raíz. Dato almacenado en n1 Nodo hoja Nodo directorio JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Enlace y Montaje Montaje de un espacio de nombres remoto por medio de un protocolo específico. Servidor de nombres Máquina A Servidor de nombres para espacio de nombres externo Máquina B SO Referencias a un espacio de nombres externo JRA © 2009 SO RED Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Distribución de Espacio de Nombres (1) Capa Global Capa Administrativa Capa de manejo Un ejemplo de particionamiento del espacio de DNS, incluyendo los archivos accesibles por Internet, en tres capas. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Distribución de Espacio de Nombres (2) Item Global Administrativo Manejo Escala geográfica de la Red Mundial Organización Departmento Número total de nodos Pocos Muchos Número grande Respuesta de búsquedas Segundos Milisegundos Inmediato Propagación de actualizaciones Relajada Inmediato Inmediato Número de réplicas Muchas Ninguna o pocas Ninguno Se aplica caché del lado del cliente? Si Si Algunas veces Una comparación entre servidores de nombres para implementar nodos de un espacio de nombres en una capa global, como una capa administrativa y una capa de manejo. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Implementación Resolución de Nombres El principio de resolución iterativa de nombres. Servidor de nombres raíz Servidor de nombres nl Resol. Nombres Cliente Servidor de nombres vu Servidor de nombres cs Los nombres son administrados por el mismo servidor JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Implementación Resolución de Nombres El principio de resolución recursiva de nombres. Servidor de nombres raíz Servidor de nombres nl Resol. Nombres Cliente Servidor de nombres vu Servidor de nombres cs JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Implementación Resolución de Nombres Resolución de nombre recursiva Servidor nodo nl Servidor nodo vu Cliente Servidor nodo cs Resolución de nombre iterativa Comunicación remota Comparación entre resolución de nombres recursiva e iterativa con respecto al costo de comunicación. Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Nombres versus Locación de Entidades Nombre Nombre Nombre Nombre Nombre Nombre Nombre Nombre Servicio Nombres Id Entidad Servicio Locación Direcc a) b) Direcc Direcc Direcc Direcc Direcc Directo, nivel simple de mapeo entre nombres y direcciones. Nivel-T mapeo usando entidades. Hay un mapa de nombres amigables a las direcciones. Cada vez que hay un cambio es necesario cambiar las tablas de mapeo. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Entidades Móviles: Broadcasting y Multicasting Este principio es usado por ARP (Address Resolution Protocol) en Internet. Consiste en hacer un broadcast o multicast y esperar la respuesta de quien resuelva el nombre. Nada impide la utilización de cachés. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Entidades Móviles: Reenvío de Punteros (1) El principio de reenvío de punteros usando pares (proxy, skeleton). Proceso P2 Proxy p’ refiere al mismo esqueleto que proxy p Proceso P3 Proxy Idéntico Proceso P1 Esqueleto Proceso P4 Objeto Invocación local Comunicación interprocesos JRA © 2009 Esqueleto idéntico Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Entidades Móviles: Reenvío de Punteros El proxy es equivalente a un stub del lado del cliente. El skeleton (esqueleto) es equivalente a un stub del lado del servidor, contiene una referencia local al objeto actual o una referencia local al proxy del objeto. Los esqueletos funcionan como items de entrada para referencias remotas. Los proxy funcionan como items de salida. Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Entidades Móviles: Reenvío de Punteros El esqueleto no es mas referenciado por algún proxy El requerimiento de invocación es enviado al objeto El esqueleto del proceso corriente del objeto retorna la locación corriente El proxy del cliente establece un atajo Redireccionando un reenvío de puntero, almacenando un atajo en un proxy. Desventajas: Las cadenas pueden ser muy largas. Se tiene que mantener todos los puntos intermedios. Es vulnerable a enlaces abiertos. JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Conteo de Referencia El problema de mantener un conteo de referencia propio en presencia de una comunicación no confiable. Esqueleto (mantiene el contador de referencia) Objeto O Proceso P ACK perdido Proxy p Proxy p es ahora contado dos veces Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Conteo de Referencia P1 envía referencia a P2 P1 borra su referencia a O P1 le dice a O que pasará una referencia a P2 P1 borra su referencia a O O ha sido removido Tiempo P2 informa a O que tiene una referencia a) b) JRA © 2009 Tiempo P1 envía referencia a P2 O sabe acerca de la referencia de P2 Copiando una referencia a otro proceso e incrementando el contador demasiado tarde Una solución. Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Localización de Nombres Mecanismos de Localización de Objetos Broadcast Locación del objeto 1 mensaje broadcast de requerimiento 1 1 2 respuesta del nodo en el que se encuentra el objeto 2 1 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Localización de Nombres (2) Broadcast en expansión de anillos 1 búsqueda en nodos a hop=1 i 2 2 1 1 i i JRA © 2009 i 2 2 búsqueda en nodos a hop=2 si la búsqueda a hop=1 falla i búsqueda en nodos a hop=i si la búsqueda a hop=i-1 falla Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Localización de Nombres (3) Codificar la locación en el UID Esconde información del nodo No se puede mover 1. locación del objeto nodo cliente extrae la locación del objeto de su UID. No se requiere intercambio de mensajes con ningún otro nodo 1 JRA © 2009 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Localización de Nombres (4) Buscar el nodo creador primero y luego broadcast Limita la escalabilidad pero es mas flexible que el anterior Nodo Creador 1. 1 2. 3. Locación del objeto 3 2 Nodo Cliente 4. 4 3 JRA © 2009 búsqueda del nodo creador respuesta negativa broadcast de requerimiento respuesta del nodo donde el objeto está ubicado Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Localización de Nombres (5) Uso de punteros de seguimiento El costo es directamente proporcional al largo de la cadena. Es difícil recuperar un id si se cayó un nodo intermedio. La confiabilidad es pobre. Hay sobrecarga extra. nodo creador locación del objeto 1 nodo cliente 2 4 1,2 y 3 camino del mensaje 4 respuesta del nodo en donde está localizado el objeto 3 Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres JRA © 2009 Localización de Nombres (6) Uso de caché y broadcast. 1. locación del objeto 2 nodo cliente 2 3. 3 2 JRA © 2009 2. búsqueda en el caché local broadcast de requerimiento respuesta del nodo en donde está localizado el objeto Sistemas Distribuidos: Sistemas de Archivos en Sistemas Distribuidos y Nombres Fin Módulo 6 Sistemas de Archivos en Sistemas Distribuidos y Nombres Facultad de Ingeniería Departamento de Informática Universidad Nacional de la Patagonia “San Juan Bosco”