martes, 11 de enero de 2011

Sistemas de Archivos Distribuidos


ANTECEDENTES:

Teniendo claro algunos términos un sistema distribuido es una colección de maquinas débilmente acopladas conectadas entre si por una red de comunicaciones.

  • Servicio: es una entidad de software que se ejecuta en una o mas maquinas y realiza un tipo de función especifico a favor de clientes que no conoce a priori.

  • Servidor es el software de servicio que se ejecuta en una sola maquina.

  • Cliente: es un proceso que puede invocar un servicio empleando un conjunto de operaciones que contituyen su interfaz de cliente.

  • Interfaz: de bajo nivel para la interaccion real entre maquinas, y la llamamos interfaz entre maquinas.

Un sistema de archivos da servicios a los clientes. Una interfaz de cliente para un servicio de archivos consta de un conjunto de operaciones de archivos primitivas, como crear un archivo, eliminar un archivo, leer de un archivo y escribir en un archivo. El componente de hardware primario que un servidor de archivos controla es un conjunto de dispositivos de almacenamiento secundario locales en los que se almacenan archivos y de los cuales se recuperan cuando el cliente lo solicita.

Un DFS es un sistema de archivos cuyos clientes servidores y dispositivos de almacenamiento están dispersos entre las maquinas de un sistema distribuido. La configuración e implementación concretas de un DFS puede variar. Hay configuraciones en las que los servidores se ejecutan en maquinas dedicadas y otras en las que una maquina puede ser tanto un servidor como un cliente. Un DFS se puede implementar como como parte de un sistema operativo distribuido o bien con una capa de software cuya tarea es gestionar la comunicación entre sistemas operativos y sistemas de archivos convencionales. Las características distintivas de un DFS son multiplicidad y autonomía de los clientes y servidores del sistema.

La medida de desempeño más importante de un DFS es el tiempo que toma satisfacer diversas solicitudes de servicio. En los sistemas convencionales, este tiempo consta de un tiempo de acceso al disco y un tiempo breve de procesamiento en la CPU, en un DFS un acceso remoto tiene el gasto adicional que se atribuye a la estructura distribuida. Este gasto extra incluye el tiempo requerido para presentar la solicitud a un servidor, así como el necesario para devolver la respuesta al cliente a través de la red.

El hecho de que un DFS administra un conjunto de dispositivos de almacenamiento dispersos es su característica distintiva.

Unidad componente denota el conjunto de archivos mas pequeño que se puede almacenar en una sola maquina, con independencia de las demás unidades.

NOMBRES Y TRANSPARENCIA:

Los nombres establecen una correspondencia entre objetos lógicos y físicos. Un DFS transparente se añade una nueva dimensión a la abstracción: la de ocultar en que lugar de la red se encuentra el archivo. En un sistema de archivos convencional, el alcance de la transformación de nombres es una dirección dentro de un disco. En un DFS, este alcance se amplia para incluir la maquina especifica en cuyo disco esta almacenado el archivo. Llevar un paso mas alla el concepto de tratar los archivos como abstracciones conduce a la posibilidad de replicar archivos.

ESTRUCTURAS DE NOMBRES:

  • Transparencia de ubicación: el nombre de un archivo no da indicio alguno de la posición física de almacenamiento del archivo.

  • Independencia de ubicación: no es necesario modificar el nombre de un archivo si la posición física de almacenamiento del archivo cambia.

Un esquema de nombres independiente de la ubicación es una transformación dinámica ya que puede hacer corresponder el mismo nombre de archivos con diferentes ubicaciones en dos momentos distitntos. La independencia de ubicación es una propiedad mas fuerte que la transparencia de ubicación.

En la practica la mayor parte de los DFS actuales ofrece una correspondencia estatica, transparente respecto a la ubicación de los nombres en el nivel de usuario.

Hay unos cuantos aspectos que pueden distinguir aun mas la independencia de la ubicación y la transparencia de la ubicación estatica:

Separar los datos de su ubicación.

La transparencia de ubicación estatica proporciona a los usuarios una forma comoda de compartir archivos.

La independencia de la ubicación separa la jerarquía de nombres de la jerarquía de dispositivos de almacenamiento y de la estructura intercomputadores.


Una vez lograda la separación de nombres y ubicación, varios clientes pueden acceder a archivos que residen en sistemas servidores remotos.

Este protocolo de arranque especial, almacenado en memoria solo de lectura en el cliente. Este protocolo habilita el trabajo con redes y obtiene un solo archivo especial de un ugar fijo. Una vez que el nucleo se ha copiado por la red y se ha cargado su DFS hace accesibles todos los demás archivos del sistema operativo.

La tendencia actual es hacia clientes con discos locales. Las unidades de disco cada vez tienen mayor capacidad y menor costo y aparecen nuevas generaciones casi cada año.

ESQUEMAS DE NOMBRES

Hay tres tipos principales de esquemas de nombres en un DFS. En el enfoque mas sencillo los archivos e nombran con alguna combinación del nombre de su anfitrión y su nombre local, lo que garantiza un nombre único en el nivel del sistema.

Este esquema de nombres no es transparente ni independiente respecto a la ubicación pero permite usar las mismas operaciones de archivos con archivos locales y remotos. La estructura del DFS es una colección de unidades componentes aisladas que son sistemas de archivos convencionales enteros.

El segundo enforque fue popularizado por el network File System de Sun. NFS es el componente de sistema de archivos de ONC un paquete de trabajo con redes que muchos proveedores de UNIX van a poyar NFS cuenta con un mecanismo para ligar directorios remotos a directorios locales y asi dar la apariencia de un árbol de directorios coherentes.

Un criterio importante para evarluar las estructuras de nombres es su complejidad administrativa. La estructura mas compleja y mas difícil de mantener es la de NFS. Dado que cualquier directorio remoto se puede conectar a cualquier punto del árbol de directorio actual, la jerarquía resultante puede carecer casi de estructura.

TECNICAS DE IMPLEMENTACION:

La implementación de una estructura de nombres transparentes requiere un mecanismo para transformar un nombre de archivos en la posición correspondiente. Para que tal transformación sea manejable se necesitan llamadas para reunir conjuntos de archivos en unidades componentes, y realizar la transformación con base en unidades componentes y no por archivos individuales. Esta agrupación también tiene motivos administrativos. Los sistemas tipo UNIX emplean el árbol de directorios jearquico para establecer la correspondencia de nombre posición y para agrupar archivos recursivamente en directorios.

A fin de mejorar la disponibilidad de la información de transformación crucial, podemos usar métodos como la replicación, la colocación en caches locales, o ambas. Como ya señalamos la independencia de la ubicación implica que la transformación cambia con el tiempo por tanto, replicar la transformación hace imposible una actualización sencilla pero consitente de esta información.

ACCESO A ARCHIVOS REMOTOS:

Una forma de efecturar esta transparencia es emplenado un mecanismo de servicio remoto, en el que las solicitudes de acceso se entregan al servidor, la maquina del servidor realiza los accesos y sus resultados se remiten al usuario. Una de las formas mas comunes de implmentar el servicio remoto es el paradigma de llamada a procedimiento remoto. Para asegurar que un mecanismo de servicio remoto tenga un desempeño razonable, podemos usar caches. En los sitemas de archivos convencionales el motivo para usar caches es reducir la E –S de disco, mientras que en los DFS la meta es reducir tanto el trafico de red como la E-S de disco.

ESQUEMAS DE USO DE CACHE BASICO

Si los datos que se necesitan para satisfacer la solicitud de acceso no están ya en un cache se trae una copia de esos datos desde el sistema del servidor hasta el del cliente. Los accesos se efectúan con la copia en cache. La idea es conservar los bloques de disco de acceso reciente en un cache, a fin de poder manejar localmente accesos repetidos a la misma información, sin trafico de red adicional.

La granularidad de los datos en cache puede variar desde bloques de un archivo hasta archivos enteros. Lo común es colocar en cache mas datos de los que se necesitan para satisfacer un solo acceso, a fin de poder atender muchos accesos con los datos en cache.

UBICACIÓN DEL CACHE:

Los caches de disco tienen una ventaja clara respecto a los caches en memoria principal: su confiabilidad. Las modificaciones a los datos en cache se pierden en una ciada del sistema si el cache se mantiene en memoria volátil. Además si los datos en cache se mantienen en disco.

Ventajas de los caches en memoria principal:

  • Las estaciones de trabajo no necesitan tener disco

  • Se puede acceder mas rápidamente a datos de cache en la memoria principal que en disco.

  • La tendencia de la tecnología actual es hacia memorias mas grandes y económicas.

  • Los caches de servidor estarán en la memoria principal sin importar donde estén los caches de usuario. Si usamos caches de memoria principal también en la maquina del usuario podremos contruir un mecanismo de cache único.


POLITICA DE ACTUALIZACION DEL CACHE:

La política que se sigue para escribir los bloques modificados de vuelta en la copia maestra del servidor tiene un efecto crucial sobre el desempeño y la confiabilidad del sistema. La política mas sencilla es escribir los datos en el disco tan protno como se colocan en cualquier cache. La ventaja de esta escritura a través es su confiabilidad, se pierde poca información cuando se cae un sistema cliente. Sin embargo, esta política requiere que cada intento de escritura espere hasta que la información se envie al servidor, y esto hace que el desempeño de la escritura sea deficiente. El uso de caches con escritura a través equivale a usar servicio remoto para los accesos de escritura aprovechando los caches solo para los accesos de lectura.

Hay algunas variaciones de la política de escritura retardada que difieren en cuanto al momento en que los bloques de datos modificados de vacian al servidor. Una alternativa es hacerlo cuando el bloque esta a punto de ser expulsado del cache del cliente. Esta opción puede dar pie a un buen desempeño, pero algunos bloques podrían residir en el cache de un cliente mucho tiempo antes de escribirse de vuelta en el servidor. Un termino medio entre esta alternativa y la política de escritura a través es examinar el cache e intervalos regulares y escribir en el servidor los bloques.

CONSISTENCIA:

Hay dos estrategias para verificar la validez de los datos en cache:

  • Estrategia iniciada por el cliente: el cliente inicia una verificación de validez durante la cual se pone en contacto con el servidor y comprueba si los datos locales son congruentes con la copia maestra.

  • Estrategia iniciada por el servidor: el servidor registra, para cada cliente los archivos que coloca en cache. Si el servidor detecta una posible inconsistencia debe reaccionar.

COMPARACION DEL USO DE CACHES Y EL SERVICIO RWEMOTO

  • Un número sustancial de los accesos remotos se pueden atender desde el cache local cuando se usan caches.

  • El gasto extra total de la red cuando se transmiten volúmenes grandes de datos es menor que cuando se transmite una serie de respuestas a solicitudes especificas.

  • Las rutinas de acceso a disco en el servidor se pueden optimar mejor si se sabe que siempre se solicitaran segmentos grandes y contiguos de datos, en lugar de bloques de disco aleatorios

  • El problema de la consistencia del cache es la principal desventaja del uso de caches.

  • Para que el uso de caches resulte provechoso, la ejecución debe realizarse en maquinas que tengan discos locales o bien memorias principales grandes.

  • Cuando se usan caches, dado que los datos se transfieren en masa entre el servidor y el cliente no como respuesta a las necesidades especificas de una operación con archivos la interfaz intermaquinas inferior es muy diferente de la interfaz de usuario superior.