Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A...

38
1 Sistemas de Archivos Distribuidos Prof. Mariela Curiel A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale Introducción 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 organización, almacenamiento, recuperación, nominación, compartimiento y protección de los archivos. Proporcionan una interfaz de programación que oculta a los programadores los detalles de localización y asignación del almacenamiento

Transcript of Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A...

Page 1: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

1

Sistemas de Archivos Distribuidos

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

Introducción

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 organización, almacenamiento, recuperación, nominación, compartimiento y protección de los archivos.

Proporcionan una interfaz de programación que oculta a los programadores los detalles de localización y asignación del almacenamiento

Page 2: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

2

Ventajas

Un usuario puede acceder a sus mismos archivos desde diferentes máquinasUsuarios diferentes desde diferentes máquinas pueden acceder a los mismos archivos. Más fácil de administrar: sólo un servidor o grupo de servidores. Se mejora la confiabilidad: agregando, por ejem. Un disco RAID al servidos.

Definiciones

Archivo En la mayoría de los sistemas de operación,

los datos y programas ejecutables están organizados en archivos para garantizar un almacenamiento permanente. El sistema de archivos de UNIX es una estructura tipo árbol de directorios y archivos

Page 3: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

3

Definiciones

Sistema de Archivos

Page 4: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

4

Definiciones

Operaciones Básicasfd = 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) ….

Page 5: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

5

Definiciones

Servicios de ArchivosEspecificación de los servicios o interfaz que el servidor de archivos (SA) ofrece a sus clientes

Page 6: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

6

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.

Page 7: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

7

DefinicionesServidor de archivos:• Proceso que se ejecuta en alguna máquina 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 más SAs, pero debe ser transparente a los clientes.

DesafíosTransparencia:

• De acceso: no hay preocupación de la distribución de los archivos. Programas acceden de igual forma archivos locales y remotos.

• De localización: Los archivos deben poder cambiarsesin que cambie el nombre.

• De concurrencia: cambios realizados a un archivo porun cliente no deben interferir con operaciones de otrosclientes.

• De prestaciones: continúa funcionando mientras la carga del servicio varíe en un rango dado.

Page 8: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

8

Desafíos

Escalabilidad: El servicio se debe poder extender incrementalmente para lidiar con un amplio rango de cargas y tamaños de red. Tolerancia a fallas: Clientes y servidores deben operarcorrectamente ante fallas.Consistencia: Diferentes clientes deben ver el mismodirectorio y contenido de los archivos si lo acceden al mismo tiempo. Seguridad: mecanismos de control de acceso y autenticación Eficiencia: el desempeño debe ser similar a sistemas de archivos locales.

Arquitecturas: cómo se organizan

Arquitecturas Cliente-ServidorSistemas de Archivo Distribuidos basados en Cluster

Page 9: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

9

Arquitectura Cliente-Servidor

Uno de los ejemplos más importantes es NFS.La idea básica de NFS es que cada servidor de archivos proporcione una visión estandarizada de su sistema de archivos local, independientemente de la implementación de este último.

Arquitectura C/S

El NFS cuenta con un protocolo de comunicación que permite a los clientes acceder a los archivos guardados en el servidor. Luego, es posible que un conjunto heterogéneo de procesos (quizás ejecutándose en máquinas diferentes con SO diferentes) compartan archivos.

Page 10: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

10

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 ubicación de los archivosDisponen 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

Archivo permanece en el servidor

Cliente Servidor

Solicitudes del cliente para acceder A un archivo remoto.

Page 11: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

11

Modelo Carga y Descarga.

ServidorClienteArchivo viejo

Archivo nuevo

Los accesos se realizanLocalmente en el cliente.

Archivo trasladado al cliente

Implementación 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 estándar para comunicarse con FS diferentes. Éste transfiere las operaciones a un sistema de archivos local o a un servidor remoto.

Page 12: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

12

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.

Page 13: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

13

Sistemas de Archivos basados en Cluster

Técnicas de Distribución de Archivos: indican cómo se puede distribuir un archivo a través de múltiples servidores. Distribuyendo un archivo grande entre varios servidores es posible buscar sus diferentes partes en paralelo.

Sistemas de Archivos basados en Cluster

Esta organización sólo 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, logsde un servidor WEB). Si se trata de archivos con tipos irregulares de datos o muchos tipos de estructuras de datos la distribución de archivos puede no ser una herramienta efectiva. En este caso lo mejor es guardar archivos del mismo FS en diferentes servidores.

Page 14: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

14

Cluster-Based Distributed File Systems (1)

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

Procesos

ClientesServidores: Con Estado- Sin Estado.Comunicación: Muchos de estos sistemas están basados en llamadas a procedimientos remotos (RPC). La razón principal es que el sistema sea independiente de los sistemas operativos subyacentes, redes y protocolos de transporte.

Page 15: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

15

Procesos

Clientes:

Se ejecutan en cada máquina cliente, a nivel de usuario.

Mantienen información sobre las ubicaciones de los servidores de archivos.

Manejan caching en el cliente

Procesos

Servidores: el aspecto más importante con respecto a los procesos servidores es si deben o no guardar el estado

Page 16: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

16

• Servidores sin estado (“stateless”)

• Cuando un cliente envía una solicitud a un servidor, éste la lleva a cabo, envía la respuesta y elimina de sus tablas internas toda la información relativa a dicha solicitud. Por ejemplo, no registra siun archivo ha sido abierto previamente. •No guarda información del cliente entre solicitudes. No mantiene un registro de las operaciones quevan dejando los clientes

• Cada solicitud debe ser autocontenida. Operaciones idempotentes

Procesos

Procesos

Consecuencias:Servidores y clientes son completamente independientes. Se reducen los estados inconsistentes debido a caídas de clientes y/o servidoresPosible pérdida de performance, ej. Un servidor no se puede anticipar al comportamiento del cliente. “El estado” del servidor no crece con más clientes

Page 17: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

17

Servidores con estado• Los servidores guardan información del estado de los clientes entre solicitudes: tabla que asocia los descriptores de archivos con los archivos propiamente dichos.•Pueden saber qué datos están en el cache del cliente (permiten al cliente mantener copias locales de datos compartidos).

Procesos

Proceso

Consecuencias:Mejor performance: mantener caches, lecturas adelantadas, mensajes mas cortos.Puede manejar más fácilmente el bloqueo de archivosEl número de archivos abiertos tiene un límite.Si un cliente falla después de abrir un archivo, el servidor está ante un dilema: mantener tablas llenas de “basura”, eliminar archivos inactivos

Page 18: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

18

Asignación de Nombres

Los nombres están organizados en un espacio de nombres jerárquico. Asignación 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.

Asignación 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 disposición de sus clientes.

Page 19: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

19

Naming in NFS (1)

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

Asignación de Nombres

Un nombre de archivos depende de cómo organizan los clientes su propio espacio de nombres local y donde monten los directorios exportados. Desventajas: compartir archivos puede ser difícil. Una solución: 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.

Page 20: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

20

Asignación 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.

Sincronización (SAC)

Semántica de Archivos Compartidos (SAC): Se refiere a cómo secuencializarlas operaciones conflictivas sobre archivosde manera tal que no se lean valoresobsoletos o se pierdan actualizaciones

Page 21: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

21

Sincronización (SAC)

Semántica de Unix

Impone en todas las operaciones un orden absolutoen función del tiempo. Un “read” retorna el valor másreciente del dato.Cada operación en un archivo es visible a todos los

procesos en forma instantánea.En un sistema distribuido el desempeño de este

método 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.

Page 22: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

22

Sincronización (SAC)

En un sistema distribuido la semántica de UNIX es fácil 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).

Sincronización (SAC)

Para mejorar el desempeño se puede permitira los clientes tener copias locales de losarchivos de uso frecuente en sus caches. Pero hay problemas de lecturas obsoletas.

Page 23: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

23

Semantics of File Sharing (2)

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

Sincronización (SAC)

Para evitar el problema de lecturas obsoletas se puede:

Propagar inmediatamente las modificaciones al servidor: es un método conceptualmente simple peroineficiente. Relajar la semántica de compartimiento: semántica

de sesión: los cambios a un archivo abierto son visibles sólo para el proceso o máquina que lo modificó. Unicamente cuando se cierre el archivo, loscambios serán visible al resto de los procesos o máquinas.

Page 24: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

24

Semántica de sesión:

Ningún cambio es visible a otros procesos hasta que el archivo se cierre.No todos los “reads” 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 primero.

Sincronización: Semántica de Archivos Compartidos

Sincronización (SAC)

La mayoría de los sistemas distribuidos implementan semántica de sesión. Esto significa que aunque en teoría siguen el modelo de acceso remoto, la mayoría de las implementaciones usan caches locales, que efectivamente implementan el modelo de carga y descarga.

Page 25: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

25

Sincronización (SAC)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 ingresando nuevos

archivos. Se puede ingresar un archivo con el nombre de un archivo nuevo existente, que entonces se vuelveinaccesible, al menos con ese nombre. ¿Qué sucede si dos procesos intentan reemplazar el mismo archivo a la vez?.El resultado dependerá de la política empleada.¿Qué sucede si un proceso reemplaza un archivomientras otro lo está leyendo? Una solucion es detectarque el archivo ha cambiado y que los intentos siguientesde leerlos fallen.

Sincronización (SAC)

Transacciones Atómicas:Para acceder a un archivo o un grupo de

archivos, el proceso ejecuta algún tipo de operación 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.

Page 26: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

26

Sincronización (SAC)

Transacciones Atómicas:La propiedad fundamental de este método es que el

sistema garantiza que todas las llamadas contenidas dentro de la transacción serán 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 algún orden secuencial no definido.

Semantics of File Sharing (3)

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

Page 27: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

27

Sincronización: 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.

Page 28: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

28

Sincronización (Bloqueos)

En NFSv4 distingue los bloqueos de lectura y de escritura. La operación lock se utiliza para solicitar un bloqueo de lectura o escritura a lo largo de un intervalo consecutivo de bytes en un archivo. La operación 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.

Sincronización (Bloqueos)

Alternativamente (con diferentes parámetros??) 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 próximo de la lista, siempre que el cliente haya sondeado al servidor antes que expire cierto tiempo.

Page 29: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

29

Sincronización (Bloqueos)

La operación 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 específico 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 Replicación

Almacenamiento en la memoria cache del cliente.Replicación del lado del servidorReplicación en sistemas de archivos peer-to-peer.

Page 30: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

30

c. Caching:

c.1. Guardarlo en el disco del servidor:Ventajas: Hay espacio, se requiere sólo una copia de cada archivo, archivos accesibles a todos los clientes, no hay problemas de consistencia.

Problema: Bajo desempeño en la transferencia del archivo:

disco del servidor memoria del servidor red memoria del cliente

Consistencia y Replicación

disco del servidor

disco del cliente(opcional)

Memoria del cliente

Memoria del servidor

1 2 3 4

red

Caching (cont.):

“Caching” en memoria principal del servidor:

Ventajas: Mantiene las ventajas anteriores y mejora el desempeño.

Problemas:

* Requiere determinar el tamaño 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 más lento que el anterior. Es mejorcuando se trata de muchos datos.

Consistencia y Replicación

Page 31: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

31

Caching (cont.):

“Caching” en el cliente (cont.):

En memoria principal:

- En el espacio de direcciones del cliente, administrado por librerías 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, fácil de programar, más flexible.

Consistencia y Replicación

Consistencia y Replicación

Desde una perspectiva de desempeño es más sensato colocar los caches para permitir el acceso local a archivos o partes de él desde el cliente. La práctica muestra que no es muy frecuente el “compartimiento de archivos”.

Page 32: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

32

Consistencia y Replicación

NFS4Un 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 (semántica de sesión)

Consistencia y ReplicaciónNFS4

Una vez que parte de un archivo se encuentra almacenado en la memoria cache, sus datos pueden permanecer ahí, incluso después de cerrado el archivo, para ser usado por otros clientesSi 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 invalidación se pregunta al servidor por la fecha de la última modificación del archivo, y si es necesario se invalida la copia local.

Page 33: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

33

Consistencia y Replicación

NFS4También 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. Después de transcurrido cierto tiempo las entradas se invalidan.

Replicación

Razones para el servicio de réplicas:Aumento de confiabilidad, al disponer de respaldos independientes de cada archivo.Disponibilidad: permitir accesos aunque falleuno de los servidores.Desempeño: repartir carga de trabajo entrevarios servidores.

Page 34: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

34

Formas de creación de réplicas:

1. Réplica explícita: el cliente controla el proceso. Cuando 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. Si quiere abrir de nuevo un archivo, busca la primera disponible.

Replicación

C

S3

S2

S1

2. Réplica retrasada: 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.

Replicación

C

S3

S2

S1

Page 35: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

35

Protocolos de actualización:

1. Réplicació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.

Replicación

Réplicas en sistemas Peer-to-PeerTodos los procesos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una actividad distribuida o cómputo sin distinción entre clientes y servidores

Servidor ProxyAplicación

Código de Coord.

Servidor ProxyAplicación

Código de Coord.

Servidor ProxyAplicación

Código de Coord.

Page 36: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

36

CaracterísticasTodos los nodos tienen conocimiento de los otros nodos.Cada nodo puede actuar como cliente y como servidor. Los “peers” son PCs usados para correo electrónico, navegar por el WEB, procesamiento de palabras, etc. Muchos de estos PCs se conectan a Internet desde casa. No tienen una dirección IP fija, estable. No están todo el tiempo conectados. Los usuarios no son normalmente entusiastas computistas. No saben de direcciones IP, protocolos, etc.

Características

La información se distribuye sin control y no se sabe dónde se encuentra. Cada Peer puede controlar el uso y el acceso a sus recursos. Se comparten:

Archivos o datos : Música, video, u otros tipos de datos.Capacidad de almacenamiento.Servicios

Page 37: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

37

Replicación en Sistemas de Archivos Peer to Peer

La replicación desempeña un rol importante para acelerar las búsquedas y para equilibrar la carga de nodos. Una propiedad importante de estos sistemas es que todos los archivos son de lectura. Las actualizaciones consisten sólo en agregar archivos al sistema.

Replicación 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 búsqueda a sus vecinos, quienes a su vez retransmiten si es necesario. Una estrategia de réplica: en todos los nodos (imposible!!)

Page 38: Sistemas de Archivos Distribuidos - ldc.usb.veyudith/docencia/Telematica/TemasSistDist... · A partir del libro: Sistemas Distribuidos (Tanembaum), Clases de la Prof. Y. Cardinale

38

Replicación en Sistemas de Archivos Peer to Peer

Enfoques:Distribuir uniformemente n copias de cada archivo a través 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 replicación en sistemas peer-to –peer sucede naturalmente cuando los usuarios descargan archivos a partir de otros usuarios y luego los ponen a disposición de la comunidad.