0% encontró este documento útil (0 votos)
28 vistas31 páginas

Introducción al Protocolo NFS

El documento describe el sistema NFS (Network File System), desarrollado por Sun Microsystems en 1985, que permite compartir archivos entre diferentes computadoras a través de una red. NFS opera bajo un modelo cliente/servidor y se basa en el protocolo RPC, permitiendo que los clientes accedan a archivos remotos de manera transparente. Además, se discuten sus características, objetivos de diseño y la estructura de componentes tanto en el cliente como en el servidor.

Cargado por

Antovan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas31 páginas

Introducción al Protocolo NFS

El documento describe el sistema NFS (Network File System), desarrollado por Sun Microsystems en 1985, que permite compartir archivos entre diferentes computadoras a través de una red. NFS opera bajo un modelo cliente/servidor y se basa en el protocolo RPC, permitiendo que los clientes accedan a archivos remotos de manera transparente. Además, se discuten sus características, objetivos de diseño y la estructura de componentes tanto en el cliente como en el servidor.

Cargado por

Antovan
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sistemas Distribuidos I NFS: Network File System

El sistema NFS

Network File System

Roberto Gómez Cárdenas


rogomez@[Link]
[Link]

Lámina 1 Roberto Gómez C.

Erase una vez …

• 70’s capacidad conectar computadoras revolucionó la


computación:
– deseo de compartir archivos entre diferentes computadoras
– para copiar archivos enteros:
• uucp (unix-to-unix copy)
• ftp (File Transfer Protocol)
• En 1985 Sun Microsystems introduce NFS como
medio transparente de acceso remoto.
• Otros intentos fueron:
– Remote File Shraring System (RFS) de AT&T
– Andrew File System (AFS) de Univ. de Carnegie-Mellon

Lámina 2 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 1


Sistemas Distribuidos I NFS: Network File System

NFS: Network File System

• Desarrollado por Sun Microsystems.


• Diseñado para permitir que diferentes hosts
compartan archivos a través de la red.
• Uso común: permitir que estaciones diskless
almacenen información en un host central.
• Basado en paradigma cliente/servidor:
– servidor NFS exporta uno o más sistemas de archivos
– cliente puede montar el sistema de archivos o un sub-árbol
de él en su jerarquía de archivos tal y como si montara un
sistemas archivos local

Lámina 3 Roberto Gómez C.

Características NFS

• Una máquina puede actuar como cliente y


servidor para diferentes sistemas de archivos

• Protocolo NFS se divide en porciones de cliente


y servidores, permitiendo sistemas de sólo
cliente o sólo servidor

• Clientes y servidores se comunican vía RPC,


los cuales operan como peticiones asíncronas
Lámina 4 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 2


Sistemas Distribuidos I NFS: Network File System

Objetivos de diseño

• NFS no debe de limitarse a Unix o a cualquier sistema


operativo
• Protocolo no debe de depender de ningún hardware en especial
• Deben existir mecanismos simples de recuperación para caídas
del servidor o cliente
• Aplicaciones deben ser capaces de acceder archivos remotos de
forma transparente sin usar pathnames especiales, librerías y sin
recompilar
• Se debe de aplicar una semántica del sistema de archivos Unix
para clientes Unix
• El desempeño de NFS debe ser comparable al disco local
• La implementación debe ser independiente del transporte

Lámina 5 Roberto Gómez C.

Roles del cliente y servidor


• Servidor NFS exporta uno o más sistemas de archivos
• Un archivo exportado puede referirse a una partición entera del
disco o a un sub-árbol
• Del lado servidor se especifica
– que clientes pueden acceder cada archivo exportado
– el acceso permitido (lectura o escritura)
• Del lado cliente este puede montar el sistema de archivos o un
sub-árbol de él en su jerarquía de archivos tal y como si
montara un sistemas archivos local
• Cliente puede montar directorio como de solo lectura aunque el
servidor lo exporte como de lectura/escritura.
• Existen dos tipos de montajes:
– montaje duro: cliente intenta petición hasta que ésta es recibida
– montaje suave: cliente se da por vencido después de un tiempo y regresa
un error
Lámina 6 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 3


Sistemas Distribuidos I NFS: Network File System

Componentes NFS

NFS consta de varios componentes, algunos en el


servidor y otros en el cliente:

1. Protocolo NFS:
– define conjunto peticiones y sus argumentos que puede hacer
cliente al servidor
2. El protocolo RPC
– define formato de todas las interacciones entre cliente y servidor
3. El XDR Extended Data Representation
– proporciona un método, independientemente de la máquina, de
decodificación de datos para enviar a través de la red
4. Código servidor NFS
– responsable de procesar todas las peticiones del cliente y del acceso
a sistemas archivos exportación.
Lámina 7 Roberto Gómez C.

Componentes NFS
5. Código cliente NFS
– Implementa todas las llamadas remotas del cliente sobre archivos,
enviando uno o más peticiones de RPC al servidor
6. Protocolo mount
– Define semántica para montar y desmontar sistemas archivos NFS
7. Varios procesos daemon
– Servidor: varios demonios nfsd escuchan y responden peticiones, por
otro lado el demonio mountd maneja las peticiones de montaje
– Cliente: conjunto demonios biod manejan E/S asincrónicas
8. NLM (Network Lock Manager) y NSM (Network Status
Monitor)
– Proporcionan facilidades para bloquear archivos en red
– Facilidades no ligadas formalmente a NFS, (se encuentran en la mayoría
implementaciones)
– NLM utiliza demonio lockd
– NSM se basa en el demonio statd Roberto Gómez C.
Lámina 8

Dr. Roberto Gómez Cárdenas 4


Sistemas Distribuidos I NFS: Network File System

El VFS y el vnode

• Proporciona una forma uniforme para realizar operaciones del


tipo open(), read() y write()
• Estructura de datos por archivo que está ubicado dentro del
kernel por cada archivo abierto, directorio actual, etc
• Proporciona interfaz con un sistema de archivos virtual VFS
• Contiene un arreglo de apuntadores a las funciones que
soportan un conjunto estándar de operaciones de archivos
ubicados en ese sistema de archivos
• Detrás del vnode se pueden encontrar diferentes tipos de
sistemas de archivos
• En Unix se usa para diferenciar entre sistemas archivos locales
y remotos, (montados)

Lámina 9 Roberto Gómez C.

Ejemplo VFS
Operaciones de archivos de usuarios
unlink
creat

write
read

close

Interfaz de llamadas de sistema

Sistema Archivos Virtual


VNODE

pcnode inode inode mode

RPC

Sistema archivos
DOS Sistema archivos Hacia un sistema
Sistema archivos
UFS de archivos remoto
S5
Lámina 10 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 5


Sistemas Distribuidos I NFS: Network File System

Los demonios de NFS

• Demonio nfsd
– se corren múltiples instancias de nfsd para obtener un grado
de concurrencia cada demonio procesa un paquete de la red
y lo pasa al disco sistemas chicos corren de cuatro a ocho
demonios
• Demonio mountd
– responsable de servicios remotos de montaje implementar un
control de acceso solo existe una instancia de dicho
demonio
• Demonio biod
– para mejorar desempeño corren diferentes

Lámina 11 Roberto Gómez C.

Servicios, protocolos y demonios NFS

Protocolo Descripción Demonio

nfs Este protocolo es el básico y permite crear, buscar, leer o nfsd


escribir ficheros. Este protocolo también maneja
autentificación y estadísticas de ficheros.
mountd Éste se encarga de montar sistemas exportados para mountd
acceder a ellos con nfs. El servidor recibe peticiones como
mount y umount debiendo mantener información sobre los
sistemas de ficheros exportados.
nsm Se usa para monitorizar los nodos de la red y así conocer el statd
estado de una máquina (cliente o servidor). Informa, por
ejemplo, de un rearranque.
nlm Para impedir modificaciones de los datos por varios clientes lockd
al mismo tiempo, este protocolo maneja un sistema de
bloqueo. Así, con la ayuda del protocolo Nsm es posible
conocer cuándo se está reiniciando un cliente. Nsm libera
todos los bloqueos del cliente antes de devolverlos
Lámina 12 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 6


Sistemas Distribuidos I NFS: Network File System

Componentes del cliente y del servidor en


NFS
Cliente Servidor

Programa mount nfsd


usuario Espacio mountd
usuario

biod

Interfaz Interfaz
VFS VFS
Espacio
kernel

RPC RPC RPC RPC


Sistema Archivo
UFS

Red de comunicaciones

Lámina 13 Roberto Gómez C.

El protocolo NFS

• El protocolo define el conjunto de operaciones


soportadas por el servidor
• Tres puntos clave del protocolo:
1. NFS fue implementado usando protocolo RPC, que esta
basado en XDR
– Consecuencia: protocolo independiente una arquitectura específica
2. El conjunto de operaciones sistemas definidas en NFS no es
especificada Unix, es orientada Unix, pero no asume un
sistema de archivos estructurado en árbol
3. Protocolo NFS es stateless; no necesita guardar información
de estado de una transacción NFS.
– Toda petición debe ser autocontenida y debe contar con toda la
información necesaria para llevarla a cabo.

Lámina 14 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 7


Sistemas Distribuidos I NFS: Network File System

Tolerancia a fallas

• Si el servidor cae, los clientes no tienen que realizar


ninguna acción de recuperación.

NFS server cognac not responding ... still trying


NFS server cognac OK

• Clientes reintentan sus peticiones hasta que el servidor


o la red se recuperen:
• Esto puede ocurrir también si el servidor está
sobrecargado o es lento

Lámina 15 Roberto Gómez C.

El descriptor de archivos

• Estructura de datos que sólo tiene significado en el


servidor
• Formato interno no está especificado en el protocolo
• El cliente no sabe de su existencia
• Contiene toda la información necesaria al servidor
para identificar un archivo
• Pasada en cada llamada NFS que necesita referenciar
un archivo o directorio
• Ejemplo:
– El servidor Unix pasa un manejador archivos que contiene
número inode del archivo y los números de los dispositivos
entre los cuales se encuentra el archivo en el disco.

Lámina 16 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 8


Sistemas Distribuidos I NFS: Network File System

Lista procedimientos definidos en NFS


Procedimiento Descripción
NFSPROC_NULL no hace nada excepto “suceed”
NFSPROC_GETATTR regresa atributos
NFSPROC_SETATTR asigna (algunos) atributos de un archivo
NFSPROC_LOOKUP busca un archivo en un directorio y regresa un manejador
NFSPROC_READLINK regresa el contenido de una liga simbólica
NFSPROC_READ regresa el numero de bytes leídos de un archivo
NFSPROC_WRITE regresa el número de bytes escritos de un archivo
NFSPROC_CREATE crea un archivo con un nombre especifico en un directorio
NFSPROC_REMOVE quita un archivo (y puede usarse como un comando Unix mv)
NFSPROC_RENAME renombra un archivo
NFSPROC_LINK crea una nueva liga en un directorio de un archivo existente
NFSPROC_SYMLINK crea una liga simbólica
NFSPROC_MKDIR crea un directorio con un nombre especial
NFSPROC_RMDIR borra un directorio (vacío) especificado por un nombre
NFSPROC_READDIR regresa una lista de archivos de un directorio
NFSPORC_STATFS regresa información acerca el sistema de archivos que contiene a un determinado
archivo.
Lámina 17 Roberto Gómez C.

Ejemplo transacción NFS


• Proceso corriendo en máquina toto desea leer el archivo
/cachafas/paco/jobs
• Para abrir archivo:
– sistema local Unix comienza una búsqueda a través de cada uno de los
componentes del pathname
– construye un vnode por cada uno y continua
• Buscando a través de cada uno de los componentes, NFS no
tiene que tratar con pathnames del estilo /cachafas/paco/jobs
• Protocolo no asume nada acerca de la sintaxis de los pathnames
en el servidor:
/cachafas/paco/jobs o \cachafas\paco\jobs
• No existen procedimientos NFSPROC_OPEN o
NFSPROC_CLOSE que corresponderían a las llamadas open()
o close() de Unix. (Esto es debido a las peticiones
autocontenidas)
Lámina 18 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 9


Sistemas Distribuidos I NFS: Network File System

Transacciones necesarias ejemplo


cachafas (servidor)
toto (cliente)
Dame un manejador para /cachafas
mountfd
h1

NFSPROC_LOOKUP
Buscar paco en el directorio con manejador h1
nfsd
h2
NFSPROC_LOOKUP
Buscar jobs en directorio con manejador h2
nfsd
h3

NFSPROC_LOOKUP
Leer del archivo con manejador h3
nfsd
Datos
Lámina 19 Roberto Gómez C.

Componentes administrativos de NFS

• NFS es completamente asunto del


administrador.
• Existe un archivo de configuración en
los clientes que determina que archivos
se van a montar en el booteo y otro en el
servidor que controla la disponibilidad /etc/fstab /etc/export
del sistema de archivos.
cliente servidor
• Sistemas pueden jugar dos roles
montaje
diferentes en máquinas que comparten
archivos vía NFS mount
mountall
– pueden ser clientes o servidores. automount
– los servidores pueden ser clientes de otros
servidores.
• Se tiene que tener cuidado con respecto
a la seguridad.
Lámina 20 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 10


Sistemas Distribuidos I NFS: Network File System

Las particiones

• Si se cuenta con un solo disco:


– práctica común: dividirlo en dos o más particiones diferentes
– particiones tratadas como dispositivos separados
• Definición partición
– creación de divisiones lógicas en un disco duro que permite aplicar el
formato lógico de un sistema de archivos específico.
• En Linux, cada partición tiene un archivo en el directorio /dev y
cada uno tiene su propio sistema de archivos completos con su
tabla de inodes.
• Por ejemplo:
– /dev/dsk/c0t1s0
– /dev/dsk/c0t1s1
– /dev/dsk/c0t1s2
• Esta piezas son reunidas a través de dispositivos de montaje en
directorios
Lámina 21 Roberto Gómez C.

Las particiones en la instalacion

Lámina 22 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 11


Sistemas Distribuidos I NFS: Network File System

Configurando el disco

Lámina 23 Roberto Gómez C.

Añadiendo partición

Lámina 24 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 12


Sistemas Distribuidos I NFS: Network File System

Particiones disco y puntos de montaje

partición
de la raíz
/

tmp
/dev/hda1
} etc
punto
de

/dev/hda2
} bin montaje
usr
users
bin lib include

hugo paco luis

/dev/hdb }
Lámina 25 Roberto Gómez C.

Los comandos mount/umount

• Sintaxis comando mount


mount -t sistema_archivos dispositivo directorio [-o opciones]

• Los argumentos de mount


– sistemas archivos: cualquiera de los siguientes:
Tipo Descripción
ext2 Sistema de archivos de Linux.
msdos Sistema de archivos de DOS.
vfat Sistema de archivos de Windows 9X (nombres largos)
iso9660 Sistema de archivos de CD-ROM
nfs Sistema de archivos compartido por red (``exportado'')
Lámina 26 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 13


Sistemas Distribuidos I NFS: Network File System

Montando sistemas archivos remotos

• Usar comando mount


• A través de las entradas en la tabla de sistema de
archivo: /etc/fstab
– estas entradas son leídas como respuesta a un comando
mount -a o mountall
• Usando el automounter, programa que monta un
sistema de archivos por demanda y los desmonta de
nuevo si no son accesados durante unos minutos
– operación controlada usando un conjunto de mapas de
automonteo que pueden ser archivos locales o mapas NIS

Lámina 27 Roberto Gómez C.

Sintaxis mount
mount -t sistema_archivos dispositivo directorio [-o opciones]

• dispositivo
– puede ser cualquier dispositivo del directorio /dev o, en el
caso de nfs, un directorio de otra computadora
• directorio
– directorio donde estará el contenido del dispositivo
• opciones
– pueden ser cualquiera de la tabla
– en el caso de no poner ninguna opción, mount utilizará las
opciones por defecto
• rw, suid, dev, exec, auto, nouser, async

Lámina 28 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 14


Sistemas Distribuidos I NFS: Network File System

Opciones comando mount


Opción Descripción
rw Lectura/escritura.
ro Sólo lectura.
exec Se permite ejecución.
user Los usuarios pueden ``montar''/``desmontar''.
suid Tiene efecto los identificadores de propietario y del grupo
auto Se puede montar automáticamente.
async Modo asíncrono.
sync Modo síncrono.
dev Supone que es un dispositivo de caracteres o bloques.

• Un ejemplo simple

mount /dev/dsk/ls0 /users


Lámina 29 Roberto Gómez C.

Ejemplos mount y umount


• Disquete de DOS:
# mount -t msdos /dev/fd0 /mnt/floppy -o rw,noexec
# umount /mnt/floppy

• Disquete de Windows 9X:


# mount -t vfat /dev/fd0 /mnt/floppy -o user,rw
# umount /mnt/floppy

• CD-ROM:
# mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro
# umount /mnt/cdrom

• Directorio exportado de host2:


# mount -t nfs host2:/tmp /mnt/host2
# umount /mnt/host2

Lámina 30 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 15


Sistemas Distribuidos I NFS: Network File System

Ejemplo montajes

mount mount
local local
Máquina: toto Máquina: cachafas
/
/

toto cachafas mount


toto cachafas
remotos
donald mimi hugo paco luis
donald mimi hugo paco luis

• Los puntos montaje /toto /cachafas son nombrados después de la máquina


cuyo sistema de archivos es montado en ese punto
– no es esencial, pero es una convención que evita confusiones
• NFS no garantiza una consistencia global del sistema de archivos

Lámina 31 Roberto Gómez C.

El archivo fstab

• Archivo configuración que almacena información de


todas las particiones y dispositivos de almacenamiento
en la computadora.
– donde y como se van a montar las particiones/dispositivos
• Archivo localizado en /etc
– /etc/fstab
– en Solaris se conoce como /etc/vfstab
• Texto en claro, edición con cualquier editor y con
privilegios de root
• Archivo leído por el comando mount

Lámina 32 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 16


Sistemas Distribuidos I NFS: Network File System

Organización del archivo

• Dispositivo/partición a
montar
• Punto de montaje
• Tipo de sistema de
archivos
• Opciones de montaje
• Dump
• fsck

Lámina 33 Roberto Gómez C.

La primera columna

• Indican el dispositivo o partición y el punto de


montaje.
• El punto de montaje especificado para un dispositivo
en /etc/fstab es el punto de montaje por defecto.
• Es el directorio donde el dispositivo será montado,
sino se especifica cualquier otro punto de montaje.
• La mayor parte de las distribuciones Linux cuentan
con directorios especiales para puntos de montaje
– RedHat: directorio /mnt
– SySE: /media

Lámina 34 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 17


Sistemas Distribuidos I NFS: Network File System

Tipos de sistemas de archivos

• ext2, ext3, reiserfs


– sistemas de archivos estándar de Linux
– ext3 y reiserfs soportan “journalisation¨”
• swap
– partición de intercambio
• vfat y ntfs
– particiones Windows
• auto
– no es un sistema de archivos, significa que el sistema de archivos es
detectado automáticamente, p.e. floopy, CD-ROM
• otros
– adfs, affs, coda, coherent, cramfs, devpts, efs, hfs, hpfs, iso9660, jfs,
minix, msdos, ncpfs, nfs, proc, qnx4, romfs, smbfs, sysv, tmpfs, udf, ufs,
umsdos, xenix, xfs

Lámina 35 Roberto Gómez C.

Opciones de montaje …

• auto/noauto
– con la opción auto el dispositivo se monta automáticamente
– es la opción por defecto
– con la opcion noauto dispositivo solo se puede montar explicitamente
• user/nouser
– permite que usuarios comunes y corrientes monten el dispositivo
– nouser solo permite que el usuario root (opción por defecto)
– posible causa de que un usuario no pueda montar su CDROM, floppy,
particion Windows, etc
• exec/noexec
– exec permite ejeuctar binarios que se encuentran en dicha partición
– noexec usado en particiones que contienen binarios que no se desea, o no
se pueden, ejecutar (p.e. partición Windows)

Lámina 36 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 18


Sistemas Distribuidos I NFS: Network File System

Opciones de montaje (2)

• ro
– monta el sistema de archivos en solo lectura
• rw
– monta el sistema de archivos como de lectura/escritura
• suid/nosuid
– permite/bloquea la operación de los bits SUID y SGID
• dev/nodev
– permite/bloquea acceso a archivos especiales de dispositivos
• sync
– especifica como se debe hacer la entrada/salida en el sistema de archivos
– sync significa que debe hacer de forma síncrona
• defaults
– utiliza los opciones por defecto: rw, suid, dev, exec, auto, nouser, y
async

Lámina 37 Roberto Gómez C.

Columna dump y fsck

• Columna dump
– dump: utilería de respaldo
– utilería dump la verifica y usa el número para decidir si el
sistema de archivos debe respaldarse
– si cuenta con un valor de cero, dump ignora la partición
• Columna fsck
– fsck: utilidad de verificación de sistemas archivos
– comando fsck verifica el valor de la columna para
determinar el orden en que el sistema de archivos será
verificado
– si es cero, el sistema no es verificado

Lámina 38 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 19


Sistemas Distribuidos I NFS: Network File System

El archivo /etc/exports

• Archivo que lista los archivos que se pueden exportar


a otros sistemas.
• Una línea en este archivo contiene el nombre del
sistema de archivos a exportar y una lista de hosts
que puede montarlo.
• Si no se especifica ningún host, cualquier host puede
montar el sistema de archivos.
• Se pueden usar grupos de hosts en lugar de hosts
individuales.
• Archivo en texto claro.
Lámina 39 Roberto Gómez C.

Sintaxis archivo /etc/export


directorio1 maquina1(opciones) maquina2(opciones)
directorio2 maquina1(opciones) maquina3(opciones)

• Contiene el directorio a exportar, las máquinas que pueden


usarlo y las opciones de cómo exportarlo
• Las líneas en blanco son ignoradas, se pueden comentar líneas
con el símbolo #
• Líneas largas pueden ser divididas con una barra invertida (\).
• Cada sistema de archivos exportado debe tener su propia línea.
• Las máquinas autorizadas debe estar separada por un espacio.
• Las opciones para cada uno de las máquinas deben ser
colocadas entre paréntesis directamente detrás del
identificador de la máquina, sin ningún espacio de separación
entre la máquina y el primer paréntesis.
Lámina 40 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 20


Sistemas Distribuidos I NFS: Network File System

Definiendo las máquinas

• Una sola máquina


– nombre completo de dominio, hostname o IP
• Comodines
– carácter * o ? para referenciar un grupo de hosts
– cuidado: *.[Link] permite [Link], pero no [Link]
• Redes IP
– permite acceso a máquinas basadas en sus direcciones IP dentro de una red
más grande
– por ejemplo: [Link]/15 ([Link] - [Link])
• Grupos de redes
– permite que un nombre de grupo de red NIS sea usada
– escrita como @<group-name>
– pone al servidor NIS controlando el acceso al sistema de archivos, donde
usuarios pueden ser borrados o añadidos de un grupo NIS

Lámina 41 Roberto Gómez C.

Opciones /etc/export …

• ro
– solo lectura
• rw
– lectura escritura
• aync / sync
– Permite al servidor escribir los datos en el disco cuando lo crea
conveniente
– host realiza cambios a sistema archivos rw y el servidor cae, datos se
pueden perder
– activando opción sync todos las escrituras deben ser confirmadas antes
de la que la petición del cliente sea completada
• wdelay / no_wdelay
– Provoca que el servidor NFS retrase el escribir a disco si sospecha que
otra petición de escritura es inminente.
– Esto puede mejorar el rendimiento reduciendo las veces que se debe
acceder al disco por comandos de escritura separados

Lámina 42 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 21


Sistemas Distribuidos I NFS: Network File System

Opciones /etc/export (2)

• root_squash / no_root_squash
– asigna a los usuarios root conectados remotamente los
privilegios del usuario nobody
– opción no_root_squash lo desactiva
• all_squash
– reconvierte a todos los usuarios, no solo a root
• anonuid anoigid
– permite especificar los ID de usuario y grupo para usar con
usuarios remotos desde una máquina particular
– se puede crear una cuenta especial para usuarios NFS
remotos para compartir y especificar
• anouid = <valor-uid> (valor-uid: numero del id del usuario)
• anongid = <valor-gid> (valor-gid: número del id del grupo)

Lámina 43 Roberto Gómez C.

Ejemplos archivos /etc/exports


• Un primer ejemplo
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.[Link](rw)
/usr *.[Link](ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub (ro,insecure,all_squash)

• Un segundo ejemplo
/home vale(rw) vstout(rw) vlight(rw)
/usr/X11R6 vale(ro) vstout(ro) vlight(ro)
/usr/TeX vale(ro) vstout(ro) vlight(ro)
/ vale(rw,no_root_squash)
/home/ftp (ro)
• Cuidado con los espacios:
/home [Link](rw)
Lámina 44 /home [Link] (rw) Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 22


Sistemas Distribuidos I NFS: Network File System

Automontaje

• Objetivo:
– montar y desmontar automáticamente sistemas archivos
locales y remotos, sin necesidad de usar mount y umount.
• Dos procesos
– automount,
– autofs
• El conjunto (automount, autofs) se pueden ver como
un modelo cliente/servidor.
– el servidor espera una petición.
– cuando esta llega, el servidor se autoduplica una parte se
encarga de responder la petición y la otra espera una nueva
petición
Lámina 45 Roberto Gómez C.

autofs

• Normalmente se activa al arrancar y se cierra al apagar


o reiniciar la maquina
• Cuatro opciones
– start: inicia el proceso
• busca mapas en archivo /etc/[Link]
• monta de forma automática cada punto
– stop: para autofs y todos los procesos automount
– status: da a conocer la configuración actual y todos los
procesos automount en funcionamiento
– reload: vuelve a leer /etc/[Link] y elimina todos los
procesos automount que no aparecen y inicializa los nuevos

Lámina 46 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 23


Sistemas Distribuidos I NFS: Network File System

automount

• Trabaja desde un punto inicial de montaje


– el mismo que encuentra autofs al iniciar automount
• En el punto de montaje cuenta con una lista que
describe las características del punto de montaje.
– la lista contiene todos los requerimientos de información
para montar el sistema de archivos
• Montaje se realiza tan pronto como alguien intente
acceder a algo en el árbol de directorios desde el punto
de montaje.
– después los sistemas de archivos se desmontan
automáticamente después de un periodo de inactividad
• por defecto son 5 minutos

Lámina 47 Roberto Gómez C.

Los archivos de configuración

• Configuración se realiza con la ayuda de dos


archivos
• Archivo /etc/[Link]
– mantiene los puntos de montaje
• Archivo tipo mapa o de punto de montaje
– suministra las opciones del sistema para este punto
de monaje especifico.

Lámina 48 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 24


Sistemas Distribuidos I NFS: Network File System

Archivo /etc/[Link]

• Es el principal fichero de autofs.


• Cada línea describe un punto de montaje y hace
referencia al archivo que contiene las descripciones del
sistema de archivos que deben ser montados desde ese
punto.
• El último campo permite pasar las opciones a mount
para empezar.
• Sintaxis:
punto_montaje mapa_automount [opciones-separadas-
por-coma]

Lámina 49 Roberto Gómez C.

Ejemplo archivo

• Ejemplo archivo
/home /etc/[Link]
/misc /etc/[Link]
/mnt /yp:[Link]
• Genera tres puntos de montaje /home /misc y /mnt
– acceso a /home consultar mapa en /etc/[Link]
– acceso a /misc consultar mapa en /etc/[Link]
– acceso a /mnt consultar mapa NIS [Link]
• Posible definir tiempo para desmontarlo

/auto /etc/[Link] --timeout=60

Lámina 50 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 25


Sistemas Distribuidos I NFS: Network File System

Archivos de mapas

• Describe como se deben montar los sistemas de archivos que se


encuentran debajo del punto de montaje
• Sintaxis línea: key [-options] location
• key
– parte pathname entre punto de montaje y path sistema archivo montado
– subdirectorio abajo punto montaje
• options
– lista de opciones separadas por coma para el comando mount
– opción especial: -fstype= para especificar un tipo de sistema de archivos,
si este no es parte de los tipos soportados por NFS
– opciones “acumulables” con las del archivo [Link] (diferencia
solaris)
• location
– donde se va a montar el sistema de archivos
Lámina 51 Roberto Gómez C.

Ejemplo archivo mapa

kernel -ro,soft,intr [Link]:/pub/linux


boot -fstype=ext2 :/dev/hda1
windoze -fstype=smbfs ://windoze/c
removable -fstype=ext2 :/dev/hdd
cd -fstype=iso9660,ro :/dev/hdc
floppy -fstype=auto :/dev/fd0

Lámina 52 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 26


Sistemas Distribuidos I NFS: Network File System

Un ejemplo para CD y diskettes

• En archivo /etc/[Link] se indica el direcotorio


donde se montan los dispositivos
/mnt /etc/[Link] --timeout 5

• El archivo /etc/[Link] debe contener estas líneas


para CD Rom y diskettes, pero se pueden agregar o
quitar a necesidad, respetando el formato:
nombre - opciones de montaje - dispositivo

cdrom -fstype=iso9660,ro :/dev/cdrom


floppy -fstype=vfat :/dev/fd0
Lámina 53 Roberto Gómez C.

Monitoreando NFS

• No existen muchos comandos para monitorear


seguridad en NFS.
• Seguridad reside en archivo exports.
• Comando showmount
– a ejecutarse en el servidor NFS.
– despliega todos los hosts que han montado algo del servidor.
– sin opciones despliega una lista de todos los hosts
– opcion -a despliega hosts y directorios montados
– opción -d despliega lista directorios montados por algún
host.

Lámina 54 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 27


Sistemas Distribuidos I NFS: Network File System

Ejemplo comando showmount


mimoso@toto:1> showmount
antigua
argentina
bahamas
barbados
mimoso@toto:2> showmount -a
antigua:/export/local/tmp
antigua /usr/share
[Link]:/export/local
argentina /usr/share
[Link]:/export/local
bahamas:/export/local
barbados: /usr/openwin
mimoso@toto:3> showmount -d
/export/local
/export/local/tmp
/usr/openwin
/usr/share
mimoso@toto:4>
Lámina 55 Roberto Gómez C.

Mapeo identidades NFS

• Acceso realizado en un archivo NFS montando:


– verificación de permisos en ese archivo son realizados en el
servidor
– id. numérico del usuario, (como esta definido en máquina
cliente NFS), es usado para determinar estos permisos de
acceso
• Si toda las máquinas usan el mismo mapa NIS para
obtener su información la consistencia está asegurada
• Máquinas configuradas inconsistentemente pueden
causar problemas.
• Administrador sistemas tienen cuidado en mantener
los ID´s de los usuarios consistente a través del grupo
de máquinas que comparten archivos vía NFS
Lámina 56 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 28


Sistemas Distribuidos I NFS: Network File System

Ejemplo inconsistencia en NFS


Parte del archivo
de passwords
Máquina A Máquina B
Nombre Usuario ID Nombre Usuario ID
demostenes 36 demostenes 31
benito 41 matute 36
cucho 42 panza 50
panza 50 cucho 66
Parte del sistema
de archivos

Nombre Usuario Nombre Archivo Nombre Usuario Nombre Archivo


demostenes ron cucho agua
panza vodka matute leche
cucho cognac demostenes te
benito gin panza refresco

Cuando se entra en un sistema de archivos remoto el id del usuario el que permanece


constante, no el login-name
Lámina 57 Roberto Gómez C.

Ejemplo inconsistencia en NFS

maquinaB> ls -l
archivo id nombre
agua 66 cucho
leche
te
refresco
36
31
50
matute
demostenes
panza
} archivos locales máquina B

}
ron 36 matute
vodka 50 panza archivos montados remotamente de
cognac 42 ???? la máquina A
gin 41 ????

usuarios 41 y 42 no están en archivo


password de la máquina B

Lámina 58 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 29


Sistemas Distribuidos I NFS: Network File System

NFS desde el punto de vista del


programador
• Programador no necesita saber mucho acerca de NFS
– Llamadas de sistema de archivos: close(), read(), write(), lseek() y
unlink() trabajan de la misma forma con archivos locales y remotos
• Características
1. Desempeño
– NFS proporciona un buen desempeño para lectura pero no para
escritura
2. Algunas operaciones del sistema archivos Unix son difíciles de
emular en NFS
– Unix permite borrar archivos abiertos
– Unix verifica permisos solo cuando se va abrir un archivo (si se
modifican mientras esta abierto no se toma en cuenta)
3. Sistemas archivos soft-mounted pueden presentar problemas al
programador
– read() y write() pueden regresar errores si el servidor NFS esta caído o
muy ocupado, hay que interceptarlos y tratarlos.
– A EVITAR: algunos los tratan como “end-of-file”
Lámina 59 Roberto Gómez C.

Limitantes NFS

• No mantiene ningún tipo de agente central para llevar


un registro de los sistemas de archivos accesibles y de
que servidores.
– cliente debe saber que servidor tiene los recursos que se
buscan
• Un servidor NFS solo puede exportar sistema de
archivos que residen en sus propios discos, no los de
otros servidores
• NFS no cuenta con algún caching de datos de archivos
en el cliente, ni siquiera para sistemas de archivos de
solo lectura
• NFS no proporciona acceso a dispositivos remotos
• Seguridad (NFS = Not File Security)
Lámina 60 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 30


Sistemas Distribuidos I NFS: Network File System

Alternativa NFS: AFS

• Andrew File System (AFS)


• AFS es un sistema de archivos distribuido que usa
Kerberos para autenticar usuarios.
• Permite el uso de listas de control de acceso (ACLs).
Este disponible desde Transarc Corporation.
• Considere usar AFS si está disponible para su
plataforma y es apropiado para sus necesidades.
• Información acerca de AFS está disponible en las
páginas
– [Link] o
– [Link]

Lámina 61 Roberto Gómez C.

Dr. Roberto Gómez Cárdenas 31

También podría gustarte