Ejercicio del tema sistema de ficheros distribuido

  1. ¿En cuál de las siguientes arquitecturas de un SFD el cliente es más pesado (realiza más funciones)?
    1. Arquitectura alternativa 
    2. Arquitectura tradicional con cliente fat 
    3. Arquitectura tradicional con cliente thin 
    4. El cliente no lleva a cabo ninguna función en un SFD 

Explicación 

En una arquitectura alternativa, el SFD, también denominado Sistema Fichero Paralelo, tiene toda la funcionalidad del sistema de ficheros, siendo el servidor un mero servidor de bloques de datos, que puede ser sustituido por una SAN. Por tanto, se trata de la arquitectura más pesada de todas las opciones planteadas. Las arquitecturas tradicionales implementan la funcionalidad del sistema de ficheros en el servidor.


  1. Indicar cuál de los siguientes pares (SFD, característica) es correcto:
    1. GFSv1, baja latencia 
    2. GPFS, adecuado para acceso concurrente 
    3. NFS, semántica UNIX 
    4. AFS, modelo de servicio remoto 

Explicación 

GPFS es un sistema de ficheros adecuado para acceso concurrente, dado que se trata de una solución basada en un gestor de cerrojos distribuidos. La latencia de GFSv1 es alta. NFS no garantiza ningún tipo de semántica, ni UNIX ni de sesión. AFS sigue un modelo de carga/descarga y no de servicio remoto.

  1. ¿Cuál de estas afirmaciones sobre NFS es incorrecta?
    1. Los mensajes enviados por un cliente a un servidor en NFSv4 son más pequeños que a un servidor NFSv3 
    2. NFSv3 no puede gestionar cerrojos 
    3. El protocolo NFS establece 3 segundos como tiempo de vida de la cache de bloques para ficheros 
    4. La recuperación frente a fallos de un servidor NFSv4 es más compleja que la de un servidor NFSv3 

Explicación 

NFSv3 sigue un modelo de servicio remoto sin estado. Por su parte, NFSv4 sigue un modelo de servicio remoto con estado. Eso hace que los mensajes enviados por un cliente a un servidor en NFSv4 sean más pequeños que los enviados a un servidor en NFSv3. NFSv3 no puede gestionar cerrojos, al no ser un servicio con estado, quedando relegada esta tarea al servicio NLM (Network Lock Manager). La recuperación en un servicio con estado es siempre más compleja que en un servicio sin estado. Por último, el protocolo NFS no establece ningún valor para el tiempo de vida de la cache de bloques para ficheros, siendo una elección de la implementación correspondiente.

  1. ¿En cuál de los siguientes sistemas de ficheros una llamada lseek sobre un fichero implica en el servidor actualización de la metainformación asociada a dicho fichero?

    1. NFS v4 
    2. NFS v3 
    3. AFS v1 
    4. AFS v2 

Explicación 

Para que la metainformación asociada a un fichero en el servidor se modifique, es necesario que se trate de un modelo de servicio remoto con estado. De las opciones presentadas, solamente NFSv4 lo cumple. NFSv3 es un servicio remoto sin estado. AFS sigue un modelo carga/descarga.

  1. En AFS, tenemos tres clientes (C1, C2 y C3) y un servidor S1. C1 y C2 tienen abierto el fichero F1 simultáneamente, teniendo C3 una copia del fichero F1 del servidor en su cache (F1-C3). C1 modifica el fichero y lo cierra (F1-C1). A continuación, C2 modifica el fichero y lo cierra (F1-C2). En una sesión posterior, C3 abre el fichero y lo modifica (F1-C3-2). Si en una sesión posterior, C1 vuelve a abrir el fichero antes de que C3 lo cierre, ¿Qué copia será la que acceda?

    1. F1-C2 
    2. F1-C3 
    3. F1-C3-2 
    4. F1-C1 

Explicación 

AFS utiliza semántica de sesión. Eso implica que en un momento determinado, cada cliente puede tener una instantánea diferente del mismo fichero. Por otro lado, cuando el cliente C2 modifica el fichero y lo cierra, esta copia va al servidor: F1-C2. Posteriormente, C1 y C3 abren sesiones concurrentes, teniendo el cliente C1 la copia del servidor, F1-C2 y C3 la copia F1-C3-2. Por tanto, la respuesta es F1-C2.

  1. Dado un sistema de ficheros paralelo que se conecta a una SAN (Storage Area Network). ¿Cuál de las siguientes afirmaciones es incorrecta?
    1. Los discos de red no proporcionan ficheros sino bloques de datos 
    2. Se lleva a cabo una separación entre las redes de comunicación para datos de aplicación y ficheros 
    3. La SAN podría sustituirse por nodos de E/S proporcionando acceso a los bloques de datos 
    4. Los dispositivos necesitan contactar con los nodos de cómputo para acceder a otros dispositivos 

Explicación 

Los discos de red proporcionan bloques de datos. Son los nodos de cómputo los que tienen la visión del fichero. En una SAN se lleva a cabo la separación entre las redes de comunicación para datos y ficheros. También es cierto que la SAN pueda ser sustituida por nodos de E/S que proporcionen acceso a bloques de datos. Finalmente, los dispositivos en una SAN pueden comunicarse directamente, sin necesidad de contactar a los nodos de cómputo.

  1. En relación a GFS (versión 1), ¿cuál de las siguientes es una ventaja de utilizar 64MB como tamaño de trozo?
    1. El paralelismo es mayor que si utilizáramos un trozo de menor tamaño 
    2. La fragmentación de los ficheros es menor que en el caso de utilizar un trozo de menor tamaño 
    3. El gasto de memoria del maestro es menor que en caso de utilizar un trozo de menor tamaño 
    4. El maestro tiene que realizar más operaciones que si tuviéramos un trozo de menor tamaño 

Explicación 

Con tamaño de trozos menores, el paralelismo sería mayor y la fragmentación sería menor. El maestro llevaría a a cabo más operaciones con un trozo de menor tamaño. Sin embargo, el gasto de memoria del maestro es menor al usar un trozo de mayor tamaño, ya que el tamaño de la metainformación necesaria para gestionar los ficheros se decrementa.

  1. Se tiene un sistema de ficheros paralelo que utiliza stripping y nodos de E/S. Considere que el sistema dispone de 6 nodos de E/S y se utiliza cache de datos en los nodos de cómputo. El tamaño de bloque del sistema de ficheros es 16KB, se lleva a cabo prefetching secuencial de 1 bloque adicional y el tamaño de la rodaja es 96KB. Además, se supone que la cache está inicialmente vacía y tiene un tamaño suficiente para albergar todos los bloques a los que se vaya accediendo. Si el primer nodo de E/S tiene B1, B2, B3, B4, B5 y B6 del fichero f y el resto de los bloques, de manera secuencial se reparten entre el resto de nodos de E/S, es decir, el segundo nodo tiene B7, B8, B9, B10, B11 y B12 y así sucesivamente ¿Cuántas solicitudes a los nodos de E/S tendrá que realizar un nodo de cómputo que pretenda realizar una operación de lectura de los primeros 400K del fichero f?
    1. 12 solicitudes en total a los primeros 4 nodos de E/S más 1 solicitud adicional al quinto nodo 
    2. 24 solicitudes en total a los primeros 4 nodos de E/S más 1 solicitud adicional al quinto nodo 
    3. 18 solicitudes en total a los 6 nodos de E/S 
    4. 5 solicitudes en total al primer nodo de E/S 

Explicación 

El tamaño de la rodaja es de 6 bloques (6*16KB= 96KB). Los primeros 400K del fichero se encuentran situados en los 4 primeros nodos de E/S  (4*96=384 KB) y el bloque restante en el quinto nodo. Como se lleva a cabo prefetching secuencial de 1 bloque adicional, a cada uno de los 4 primeros nodos, sólo se les hace 3 solicitudes para traerse los 6 bloques correspondientes. Por tanto, se haría 3*4=12 solicitudes a los primeros 4 nodos de E/S más 1 solicitud adicional al quinto nodo.

  1. En GPFS, tenemos una aplicación compuesta por 3 procesos. Se llevan a cabo la siguiente secuencia de operaciones:
    1. 4 
    2. 7 
    3. 3 
    4. 1 

Explicación 

El primer proceso (P1) accede al Gestor de Tokens, que le concede el token [0, ∞). Para llevar a cabo la segunda operación, no necesita contactar con el Gestor de Tokens. A continuación, el segundo proceso (P2) contacta con el Gestor de Tokens, quién le concede el token [128K, ∞), ajustando el token de P1 a [0, 128K). La cuarta operación no necesita contactar con el Gestor de Tokens. A continuación, el tercer proceso (P3) contacta con el Gestor de Tokens, obteniendo el token [192K, ∞), ajustando el token de P2 a [128K, 192K). Finalmente, P2 tiene que volver a contactar con el Gestor de Tokens, pues no tiene permisos para escribir en el desplazamiento [192K, 224K). Resultado de esta interacción, P2 obtiene el token [128K, 224K), ajustando el token de P3 a [224K,  ∞). Por tanto, 4 tokens son solicitados en total por los 3 procesos.


  1. En la secuencia anterior, ¿cuántos ajustes de tokens hacen los 3 procesos en total, considerando ajuste a la revocación de tokens que entren en conflicto con el rango requerido?
    1. 3 
    2. 0 
    3. 4 
    4. 7 

Explicación 

Como se ha explicado en la pregunta anterior, se llevan a cabo 3 ajustes de tokens.

  1. Al final de dicha secuencia, ¿qué token tendrá el primer proceso?
    1. [0,128K) 
    2. [0,64K) 
    3. [32K,64K) 
    4. [32K,128K) 

Explicación 

Como se ha explicado en la pregunta 9, el token de P1 será [0, 128K) al final de la secuencia.

  1. Indicar cuántas revocaciones de tokens de escritura compartida del i-nodo de f se llevan a cabo si los 3 procesos de la aplicación anterior realizan las operaciones descritas anteriormente.
    1. 0 
    2. 3 
    3. 7 
    4. GPFS no utiliza tokens de escritura compartida sobre metadatos, puesto que la escritura debe realizarse en exclusión mutua. 

Explicación 

Las escrituras de la secuencia de operaciones descritas se pueden llevar a cabo con tokens de escritura compartida del i-nodo, sin necesidad de revocarlos.

  1. Si una vez terminadas las operaciones de escritura del fichero f, el primer proceso realizara una operación utime sobre el fichero f, indicar cuántas revocaciones de tokens de escritura compartida del i-nodo de f se llevarían a cabo.
    1. 3 
    2. 0 
    3. 1 
    4. 2 

Explicación 

Dado que la operación utime requiere token de escritura exclusiva, es necesario revocar todos los tokens de escritura compartida, es decir, 3, uno por cada proceso.