Introducción al Protocolo NFS
Introducción al Protocolo NFS
El sistema NFS
Características NFS
Objetivos de diseño
Componentes NFS
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
El VFS y el vnode
Ejemplo VFS
Operaciones de archivos de usuarios
unlink
creat
write
read
close
RPC
Sistema archivos
DOS Sistema archivos Hacia un sistema
Sistema archivos
UFS de archivos remoto
S5
Lámina 10 Roberto Gómez C.
• 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
biod
Interfaz Interfaz
VFS VFS
Espacio
kernel
Red de comunicaciones
El protocolo NFS
Tolerancia a fallas
El descriptor de archivos
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.
Las particiones
Configurando el disco
Añadiendo partición
partición
de la raíz
/
tmp
/dev/hda1
} etc
punto
de
/dev/hda2
} bin montaje
usr
users
bin lib include
/dev/hdb }
Lámina 25 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
• Un ejemplo simple
• CD-ROM:
# mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro
# umount /mnt/cdrom
Ejemplo montajes
mount mount
local local
Máquina: toto Máquina: cachafas
/
/
El archivo fstab
• Dispositivo/partición a
montar
• Punto de montaje
• Tipo de sistema de
archivos
• Opciones de montaje
• Dump
• fsck
La primera columna
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)
• 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
• 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
El archivo /etc/exports
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
• 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)
• 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.
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
automount
Archivo /etc/[Link]
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
Archivos de mapas
Monitoreando 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 ????
Limitantes NFS