Está en la página 1de 38

Sistemas de Archivos Distribuidos

Prof. Mariela Curiel


A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

Introduccin
Un sistema de archivos distribuidos permite a los procesos el acceso transparente y eficiente de archivos que permanecen en servidores remotos. Se encargan de la organizacin, almacenamiento, recuperacin, nominacin, compartimiento y proteccin de los archivos. Proporcionan una interfaz de programacin que oculta a los programadores los detalles de localizacin y asignacin del almacenamiento

Ventajas
Un usuario puede acceder a sus mismos archivos desde diferentes mquinas Usuarios diferentes desde diferentes mquinas pueden acceder a los mismos archivos. Ms fcil de administrar: slo un servidor o grupo de servidores. Se mejora la confiabilidad: agregando, por ejem. Un disco RAID al servidos.

Definiciones
Archivo En la mayora de los sistemas de operacin, los datos y programas ejecutables estn organizados en archivos para garantizar un almacenamiento permanente. El sistema de archivos de UNIX es una estructura tipo rbol de directorios y archivos

Definiciones
Sistema de Archivos

Definiciones
Operaciones Bsicas
fd = open(nombre_de_archivo, .....); read(fd, .....); /* Una vez que se conoce el descriptor se pueden realizar operaciones sobre el archivo */ int write(fd, ....); close(fd); int stat(const char *path, struct stat *buf); int chmod(char *filename, int mode) int fchmod(int fd, int mode) long lseek(int fd, long offset, int mode) .

Definiciones
Servicios de Archivos
Especificacin de los servicios o interfaz que el servidor de archivos (SA) ofrece a sus clientes

File System Model (1)


Figure 11-3. An incomplete list of file system operations supported by NFS.

File System Model (2)


Figure 11-3. An incomplete list of file system operations supported by NFS.

Definiciones
Servidor de archivos:

Proceso que se ejecuta en alguna mquina y ayuda a implantar el servicio de archivos. Se ejecuta en el espacio de usuario, por lo que el sistema puede contener varios Servidores de Archivos con servicios de archivos diferentes. Puede haber 1 o ms SAs, pero debe ser transparente a los clientes.

Desafos
Transparencia: De acceso: no hay preocupacin de la distribucin de los archivos. Programas acceden de igual forma archivos locales y remotos.

De localizacin: Los archivos deben poder cambiarse sin que cambie el nombre. De concurrencia: cambios realizados a un archivo por un cliente no deben interferir con operaciones de otros clientes. De prestaciones: contina funcionando mientras la carga del servicio vare en un rango dado.

Desafos
Escalabilidad: El servicio se debe poder extender incrementalmente para lidiar con un amplio rango de cargas y tamaos de red. Tolerancia a fallas: Clientes y servidores deben operar correctamente ante fallas. Consistencia: Diferentes clientes deben ver el mismo directorio y contenido de los archivos si lo acceden al mismo tiempo. Seguridad: mecanismos de control de acceso y autenticacin Eficiencia: el desempeo debe ser similar a sistemas de archivos locales.

Arquitecturas: cmo se organizan


Arquitecturas Cliente-Servidor Sistemas de Archivo Distribuidos basados en Cluster

Arquitectura Cliente-Servidor
Uno de los ejemplos ms importantes es NFS. La idea bsica de NFS es que cada servidor de archivos proporcione una visin estandarizada de su sistema de archivos local, independientemente de la implementacin de este ltimo.

Arquitectura C/S
El NFS cuenta con un protocolo de comunicacin que permite a los clientes acceder a los archivos guardados en el servidor. Luego, es posible que un conjunto heterogneo de procesos (quizs ejecutndose en mquinas diferentes con SO diferentes) compartan archivos.

Arquitectura C/S
El modelo que se utiliza NFS es del de servicio de archivos remoto. Este modelo ofrece a los clientes un acceso transparente a un sistema de archivos gestionado por un servidor remoto. Los clientes desconocen la ubicacin de los archivos Disponen de una interfaz, similar a la interfaz del sistema de archivos local. El servidor remoto es el responsable de implementar estas operaciones.

Modelo de Acceso Remoto


Solicitudes del cliente para acceder A un archivo remoto.

Cliente

Servidor

Archivo permanece en el servidor

10

Modelo Carga y Descarga.


Archivo trasladado al cliente Servidor Archivo viejo

Cliente

Archivo nuevo Los accesos se realizan Localmente en el cliente.

Implementacin de NFS
Un cliente accede al FS usando la interfaz local. La interfaz de Unix es reemplazada por VFS, el cual por ahora es un estndar para comunicarse con FS diferentes. ste transfiere las operaciones a un sistema de archivos local o a un servidor remoto.

11

Client-Server Architectures (2)


Figure 11-2. The basic NFS architecture for UNIX systems.

Sistemas de Archivos Basados en Cluster


Una arquitectura a menudo se mejora agrupando servidores que presentan ciertas semejanzas. Si estos grupos de servidores los utilizan aplicaciones en paralelo, los sistemas de archivos correspondientes deben ajustarse para trabajar ante estos requerimientos.

12

Sistemas de Archivos basados en Cluster


Tcnicas de Distribucin de Archivos: indican cmo se puede distribuir un archivo a travs de mltiples servidores. Distribuyendo un archivo grande entre varios servidores es posible buscar sus diferentes partes en paralelo.

Sistemas de Archivos basados en Cluster


Esta organizacin slo funciona bien si el acceso a los datos es en paralelo. Se requiere que los datos tengan una estructura muy regular (e.j. una matriz densa, logs de un servidor WEB). Si se trata de archivos con tipos irregulares de datos o muchos tipos de estructuras de datos la distribucin de archivos puede no ser una herramienta efectiva. En este caso lo mejor es guardar archivos del mismo FS en diferentes servidores.

13

Cluster-Based Distributed File Systems (1)

The difference between (a) distributing whole files across several servers and (b) striping files for parallel access.

Procesos
Clientes Servidores: Con Estado- Sin Estado. Comunicacin: Muchos de estos sistemas estn basados en llamadas a procedimientos remotos (RPC). La razn principal es que el sistema sea independiente de los sistemas operativos subyacentes, redes y protocolos de transporte.

14

Procesos
Clientes: Se ejecutan en cada mquina cliente, a nivel de usuario. Mantienen informacin sobre las ubicaciones de los servidores de archivos. Manejan caching en el cliente

Procesos
Servidores: el aspecto ms importante con respecto a los procesos servidores es si deben o no guardar el estado

15

Procesos
Servidores sin estado (stateless) Cuando un cliente enva una solicitud a un servidor, ste la lleva a cabo, enva la respuesta y elimina de sus tablas internas toda la informacin relativa a dicha solicitud. Por ejemplo, no registra si un archivo ha sido abierto previamente. No guarda informacin del cliente entre solicitudes. No mantiene un registro de las operaciones que
van dejando los clientes

Cada solicitud debe Operaciones idempotentes

ser

autocontenida.

Procesos
Consecuencias:
Servidores y clientes son completamente independientes. Se reducen los estados inconsistentes debido a cadas de clientes y/o servidores Posible prdida de performance, ej. Un servidor no se puede anticipar al comportamiento del cliente. El estado del servidor no crece con ms clientes

16

Procesos
Servidores con estado Los servidores guardan informacin del estado de los clientes entre solicitudes: tabla que asocia los descriptores de archivos con los archivos propiamente dichos. Pueden saber qu datos estn en el cache del cliente (permiten al cliente mantener copias locales de datos compartidos).

Proceso
Consecuencias:
Mejor performance: mantener caches, lecturas adelantadas, mensajes mas cortos. Puede manejar ms fcilmente el bloqueo de archivos El nmero de archivos abiertos tiene un lmite. Si un cliente falla despus de abrir un archivo, el servidor est ante un dilema: mantener tablas llenas de basura, eliminar archivos inactivos

17

Asignacin de Nombres
Los nombres estn organizados en un espacio de nombres jerrquico. Asignacin de Nombres en NFS
La idea fundamental es proporcionar a los clientes un acceso completamente transparente a un sistema de archivos remoto que mantiene un servidor.

Asignacin de Nombres
Esto se logra permitiendo que el cliente sea capaz de montar un sistema de archivo remoto en su propio sistema de archivos local Un servidor exporta un directorio cuando coloca a ste y a sus entradas a disposicin de sus clientes.

18

Naming in NFS (1)


Figure 11-11. Mounting (part of) a remote file system in NFS.

Asignacin de Nombres
Un nombre de archivos depende de cmo organizan los clientes su propio espacio de nombres local y donde monten los directorios exportados. Desventajas: compartir archivos puede ser difcil. Una solucin: proporcionar a los clientes un espacio de nombres estandarizado. Por ejemplo, cada cliente puede usar el directorio /usr/bin para mostrar un conjunto de archivos disponibles para todos.

19

Asignacin de Nombres
Manejadores o descriptores de Archivo (file handle):
Es una referencia a un archivo localizado dentro de un sistema de archivos. El servidor que aloja el archivo crea este descriptor nico. NFS4 (128 bytes) Mientras el archivo exista debe tener el mismo manejador. No son reutilizables por el servidor. Clientes puede acceder al mismo archivo independientemente de su nombre.

Sincronizacin (SAC)
Semntica de Archivos Compartidos (SAC): Se refiere a cmo secuencializar las operaciones conflictivas sobre archivos de manera tal que no se lean valores obsoletos o se pierdan actualizaciones

20

Sincronizacin (SAC)
Semntica de Unix
Impone en todas las operaciones un orden absoluto en funcin del tiempo. Un read retorna el valor ms reciente del dato. Cada operacin en un archivo es visible a todos los procesos en forma instantnea. En un sistema distribuido el desempeo de este mtodo puede ser bastante pobre.

Semantics of File Sharing (1)


Figure 11-16. (a) On a single processor, when a read follows a write, the value returned by the read is the value just written.

21

Sincronizacin (SAC)
En un sistema distribuido la semntica de UNIX es fcil de lograr, siempre que existe un solo servidor y los clientes no guarden datos en la memoria cache. Todas las operaciones conflictivas van al servidor el cual las procesa en secuencia (puede haber problemas por demoras en la red).

Sincronizacin (SAC)
Para mejorar el desempeo se puede permitir a los clientes tener copias locales de los archivos de uso frecuente en sus caches. Pero hay problemas de lecturas obsoletas.

22

Semantics of File Sharing (2)


Figure 11-16. (b) In a distributed system with caching, obsolete values may be returned.

Sincronizacin (SAC)
Para evitar el problema de lecturas obsoletas se puede:
Propagar inmediatamente las modificaciones al servidor: es un mtodo conceptualmente simple pero ineficiente. Relajar la semntica de compartimiento: semntica de sesin: los cambios a un archivo abierto son visibles slo para el proceso o mquina que lo modific. Unicamente cuando se cierre el archivo, los cambios sern visible al resto de los procesos o mquinas.

23

Sincronizacin: Semntica de Archivos Compartidos


Semntica de sesin: Ningn cambio es visible a otros procesos hasta que el archivo se cierre. No todos los reads retornan el valor ms reciente del dato. Si dos procesos tienen copias locales del mismo archivo y lo modifican al mismo tiempo, el resultado final depende de quin lo cierre primero.

Sincronizacin (SAC)
La mayora de los sistemas distribuidos implementan semntica de sesin. Esto significa que aunque en teora siguen el modelo de acceso remoto, la mayora de las implementaciones usan caches locales, que efectivamente implementan el modelo de carga y descarga.

24

Sincronizacin (SAC)
Archivos Inmutables

No existen actualizaciones, es ms fcil compartir y replicar. Las nicas operaciones permitidas son create y read. Se pueden actualizar los directorios ingresando nuevos archivos. Se puede ingresar un archivo con el nombre de un archivo nuevo existente, que entonces se vuelve inaccesible, al menos con ese nombre. Qu sucede si dos procesos intentan reemplazar el mismo archivo a la vez?.El resultado depender de la poltica empleada. Qu sucede si un proceso reemplaza un archivo mientras otro lo est leyendo? Una solucion es detectar que el archivo ha cambiado y que los intentos siguientes de leerlos fallen.

Sincronizacin (SAC)
Transacciones Atmicas:
Para acceder a un archivo o un grupo de archivos, el proceso ejecuta algn tipo de operacin del estilo BeginTransaction, que indica al SD que las operaciones que siguen se tienen que ejecutar indivisiblemente. Cuando termina el trabajo, el proceso hace EndTransaction.

25

Sincronizacin (SAC)
Transacciones Atmicas:
La propiedad fundamental de este mtodo es que el sistema garantiza que todas las llamadas contenidas dentro de la transaccin sern realizadas en orden, sin ninguna interferencia de otras transacciones concurrentes. Si dos o mas transacciones se inician al mismo tiempo, el sistema garantiza que el resultado final ser el mismo como si se estuvieran ejecutando en algn orden secuencial no definido.

Semantics of File Sharing (3)

Figure 11-17. Four ways of dealing with the shared files in a distributed system.

26

Sincronizacin: Bloqueos
Los bloqueos permiten sincronizar el acceso a archivos compartidos. Existen diferentes tipos de bloqueos. Pueden existir diferencias en cuanto a la granularidad.

File Locking (1)

Figure 11-18. NFSv4 operations related to file locking.

27

Sincronizacin (Bloqueos)
En NFSv4 distingue los bloqueos de lectura y de escritura. La operacin lock se utiliza para solicitar un bloqueo de lectura o escritura a lo largo de un intervalo consecutivo de bytes en un archivo. La operacin es no bloqueante; si el cliente no puede obtener el lock el sistema le devuelve un mensaje de error y el cliente tiene que sondear al servidor posteriormente.

Sincronizacin (Bloqueos)
Alternativamente (con diferentes parmetros??) el cliente puede solicitar al servidor que lo ponga en una lista de orden FIFO. Cuando el bloqueo se libera, el servidor otorga el siguiente bloqueo al prximo de la lista, siempre que el cliente haya sondeado al servidor antes que expire cierto tiempo.

28

Sincronizacin (Bloqueos)
La operacin lockt se utiliza para probar si existe un bloqueo conflictivo (antes de solicitarlo), se implementa de forma mas eficiente porque no hay necesidad de abrir el archivo. Los bloqueos se otorgan por un tiempo especfico determinado por el servidor. Existe una especie de contrato al otorgar un lock. Si el cliente no libera el contrato, el servidor le retira el bloqueo.

Consistencia y Replicacin
Almacenamiento en la memoria cache del cliente. Replicacin del lado del servidor Replicacin en sistemas de archivos peerto-peer.

29

Consistencia y Replicacin
c. Caching:
disco del servidor 1 Memoria del servidor 2 Memoria del cliente 3 disco del cliente (opcional) 4

red

c.1. Guardarlo en el disco del servidor:


Ventajas: Hay espacio, se requiere slo una copia de cada archivo, archivos accesibles a todos los clientes, no hay problemas de consistencia. Problema: Bajo desempeo en la transferencia del archivo: disco del servidor memoria del servidor red memoria del cliente

Consistencia y Replicacin
Caching (cont.): Caching en memoria principal del servidor: Ventajas: Mantiene las ventajas anteriores y mejora el desempeo. Problemas: * Requiere determinar el tamao de la unidad que administra el cache: todo el archivo o por bloques. * Se necesita un algoritmo de reemplazo cuando el cach est lleno (LRU) Caching en el cliente: En disco es lento, en general ms lento que el anterior. Es mejor cuando se trata de muchos datos.

30

Consistencia y Replicacin
Caching (cont.): Caching en el cliente (cont.): En memoria principal: - En el espacio de direcciones del cliente, administrado por libreras 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, fcil de programar, ms flexible.

Consistencia y Replicacin
Desde una perspectiva de desempeo es ms sensato colocar los caches para permitir el acceso local a archivos o partes de l desde el cliente. La prctica muestra que no es muy frecuente el compartimiento de archivos.

31

Consistencia y Replicacin
NFS4
Un cliente abre un archivo y puede realizar operaciones de lectura y escritura en su cache local. Cuando el cliente cierra el archivo, en caso de haberse realizado modificaciones, stas se deben enviar al servidor (semntica de sesin)

Consistencia y Replicacin
NFS4
Una vez que parte de un archivo se encuentra almacenado en la memoria cache, sus datos pueden permanecer ah, incluso despus de cerrado el archivo, para ser usado por otros clientes Si otro cliente abre un archivo previamente cerrado que haya sido guardado (en parte) en un cache local, el cliente debe revalidar de inmediato los datos guardados en cache con el servidor. En la invalidacin se pregunta al servidor por la fecha de la ltima modificacin del archivo, y si es necesario se invalida la copia local.

32

Consistencia y Replicacin
NFS4
Tambin se pueden guardar en el cache del cliente, manejadores (descriptores) de archivos y directorios. Para mitigar los efectos de inconsistencias, el NFS utiliza contratos sobre estos atributos. Despus de transcurrido cierto tiempo las entradas se invalidan.

Replicacin
Razones para el servicio de rplicas:
Aumento de confiabilidad, al disponer de respaldos independientes de cada archivo. Disponibilidad: permitir accesos aunque falle uno de los servidores. Desempeo: repartir carga de trabajo entre varios servidores.

33

Replicacin
Formas de creacin de rplicas: 1. Rplica explcita: el cliente controla el proceso. Cuando crea un archivo lo hace en un servidor especfico 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 C S2 S3

Replicacin
2. Rplica retrasada: el cliente crea el archivo en un servidor, luego en forma automtica el servidor crea las copias sin conocimiento del cliente. El sistema es el encargado de la recuperacin.
S1 C S2 S3

34

Replicacin
Protocolos de actualizacin: 1. Rplicacin con copia primaria: Un servidor es primario, el resto son secundarios. La actualizacin llega al servidor primario, ste realiza los cambios en forma local y despus enva rdenes a los servidores secundarios para que realicen las mismas modificaciones. Las lecturas se ejecutan desde cualquier servidor.

Rplicas en sistemas Peer-to-Peer


Servidor Proxy Aplicacin Cdigo de Coord. Servidor Proxy Aplicacin Cdigo de Coord.

Servidor Proxy Aplicacin Cdigo de Coord.

Todos los procesos desempean tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cmputo sin distincin entre clientes y servidores

35

Caractersticas
Todos los nodos tienen conocimiento de los otros nodos. Cada nodo puede actuar como cliente y como servidor. Los peers son PCs usados para correo electrnico, navegar por el WEB, procesamiento de palabras, etc. Muchos de estos PCs se conectan a Internet desde casa. No tienen una direccin IP fija, estable. No estn todo el tiempo conectados. Los usuarios no son normalmente entusiastas computistas. No saben de direcciones IP, protocolos, etc.

Caractersticas
La informacin se distribuye sin control y no se sabe dnde se encuentra. Cada Peer puede controlar el uso y el acceso a sus recursos. Se comparten:
Archivos o datos : Msica, video, u otros tipos de datos. Capacidad de almacenamiento. Servicios

36

Replicacin en Sistemas de Archivos Peer to Peer


La replicacin desempea un rol importante para acelerar las bsquedas y para equilibrar la carga de nodos. Una propiedad importante de estos sistemas es que todos los archivos son de lectura. Las actualizaciones consisten slo en agregar archivos al sistema.

Replicacin en Sistemas de Archivos Peer to Peer


En sistemas no estructurados si se necesita un dato se busca en la red. Un nodo transmite la solicitud de bsqueda a sus vecinos, quienes a su vez retransmiten si es necesario. Una estrategia de rplica: en todos los nodos (imposible!!)

37

Replicacin en Sistemas de Archivos Peer to Peer


Enfoques:
Distribuir uniformemente n copias de cada archivo a travs de toda la red. Ignora la popularidad de los archivos. Replicar archivos de acuerdo a que tan a menudo son buscados. Pudiera resultar muy costoso localizar archivos no populares. La replicacin en sistemas peer-to peer sucede naturalmente cuando los usuarios descargan archivos a partir de otros usuarios y luego los ponen a disposicin de la comunidad.

38