Arquitectura NFS El servidor NFS exporta uno o más directorios /etc/exports Los clientes montan los directorios Pasan a formar parte de su jerarquía de directorios Compartir información
Protocolos NFS Interfaz bien definida Conjunto de peticiones enviadas por el cliente al servidor con las respuestas correspondientes del servidor al cliente 2 protocolos Para montar un directorio Para acceder a ficheros y directorios
Para montar un directorio El cliente envía un nombre de camino al servidor, pide permiso para montar este directorio Si el camino existe y el directorio ha sido exportado, el servidor devuelve un manejador de fichero al cliente Una posterior lectura y escritura se realiza utilizando este manejador
Automontado Se asocia un directorio remoto en varios servidores con un directorio local Cuando se abre un fichero remoto se envía un mensaje a cada uno de los servidores Se monta el directorio del servidor que conteste primero Ventajas: mejora el rendimiento, más fiable Desventajas: La información debe ser consistente
Para acceder a ficheros y directorios Se soportan la mayoría de las llamadas a UNIX (no OPEN ni CLOSE) Antes de realizar una operación sobre el fichero: llamada LOOK UP El servidor no mantiene ninguna información de los ficheros utilizados (stateless) Otra forma: RFS -Remote File Systems- mantiene una tabla de ficheros abiertos. No hace falta dar el offset para la lectura.
Mecanismos de protección Bits rwx cada mensaje contiene la identificación del usuario y del grupo Se puede utilizar criptografía para validar el cliente y el servidor No se utiliza para los datos Las claves se mantienen en las NIS
NIS Servicio de información de red Páginas amarillas Pares (clave,valor) mapa de nombres de usuarios y password mapa de nombres de máquinas y direcciones de red Gestión maestro/esclavo Varias copias de los servidores Se puede usar el maestro o el esclavo Las modificaciones en el maestro que propaga los cambios
Implementación NFS Cliente Servidor Llamadas al sistema VFS: Sistema de ficheros virtual VFS: Sistema de ficheros virtual Servidor NFS SO local SO local Cliente NFS Disco local Disco local mensaje mensaje red
VFS Mantiene una tabla para los ficheros abiertos Cada entrada se conoce como un V-nodo En el V-nodo se indica si el fichero es local o remoto Si el fichero es local en el V-nodo hay un puntero al i-nodo del S.F local Si es remoto, al r-nodo del cliente NFS El r-nodo contiene información suficiente para poder acceder al fichero
Montado El administrador Programa mount Llamada al sistema MOUNT mount nombre_dir_remoto nombre_dir_local Programa mount Analiza el nombre del directorio remoto Pide a la máquina remota el manejador Hace la llamada al sistema MOUNT Llamada al sistema MOUNT Crea un v-nodo Pide al cliente que cree un r-nodo Hace apuntar el v-nodo al r-nodo
Apertura Se analiza el camino y se encuentra el directorio donde se ha montado el sistema de ficheros remoto Se obtiene del v-nodo el puntero al r-nodo El cliente NFS busca el resto del camino en el servidor El servidor devuelve un manejador El cliente NFS crea un r-nodo y devuelve al VFS el puntero al r-nodo VFS pone este puntero en la tabla de v-nodos Se devuelve el descriptor del fichero remoto
Lectura Se usa el descriptor devuelto en la llamada a OPEN VFS localiza el v-nodo correspondiente Se determina si es local o remoto Se localiza el r-nodo o el i-nodo
Memoria caché Para mejorar el rendimiento Problema Solución Si un cliente lee un bloque y lo modifica, otro cliente que lee este bloque no ve las modificaciones Solución Temporizador: 3 s para bloques de datos 30 s para información administrativa Al abrir un fichero de la memoria caché, se comprueba si está actualizado Se ven o no las modificaciones de un fichero dependiendo del tiempo Si un fichero se abre, no se ve hasta después de 30 s aproximadamente
Conclusión NFS proporciona un sistema de ficheros compartido Sólo trata con el sistema de ficheros Añadido a UNIX Si hay un conjunto de programas cooperando, no se sabe muy bien el resultado ya que depende del tiempo o secuencia de acciones NFS es muy popular y usado