El sistema NFS - cryptomex.org

Transcripción

El sistema NFS - cryptomex.org
NFS: Network File System
Sistemas Distribuidos I
El sistema NFS
Network File System
Roberto Gómez Cárdenas
[email protected]
http://homepage.cem.itesm.mx/rogomez
Roberto Gómez C.
Lámina 1
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
1
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 3
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
2
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 5
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
3
NFS: Network File System
Sistemas Distribuidos I
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.
Roberto Gómez C.
Lámina 7
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)
Lámina 8
– 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.
Dr. Roberto Gómez Cárdenas
4
NFS: Network File System
Sistemas Distribuidos I
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)
Roberto Gómez C.
Lámina 9
Ejemplo VFS
unlink
close
write
read
creat
Operaciones de archivos de usuarios
Interfaz de llamadas de sistema
Sistema Archivos Virtual
VNODE
pcnode
inode
inode
mode
RPC
Sistema archivos
DOS
Lámina 10
Dr. Roberto Gómez Cárdenas
Sistema archivos
UFS
Sistema archivos
S5
Hacia un sistema
de archivos remoto
Roberto Gómez C.
5
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 11
Servicios, protocolos y demonios NFS
Protocolo Descripción
Demonio
nfs
Este protocolo es el básico y permite crear, buscar, leer o
escribir ficheros. Este protocolo también maneja
autentificación y estadísticas de ficheros.
nfsd
mountd
Éste se encarga de montar sistemas exportados para
acceder a ellos con nfs. El servidor recibe peticiones como
mount y umount debiendo mantener información sobre los
sistemas de ficheros exportados.
mountd
nsm
Se usa para monitorizar los nodos de la red y así conocer el
estado de una máquina (cliente o servidor). Informa, por
ejemplo, de un rearranque.
statd
nlm
Para impedir modificaciones de los datos por varios clientes
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
lockd
Lámina 12
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
6
NFS: Network File System
Sistemas Distribuidos I
Componentes del cliente y del servidor en
NFS
Cliente
Servidor
Programa
usuario
nfsd
mount
Espacio
usuario
mountd
biod
Interfaz
VFS
Interfaz
VFS
Espacio
kernel
RPC
RPC
RPC
RPC
Sistema Archivo
UFS
Red de comunicaciones
Roberto Gómez C.
Lámina 13
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
7
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 15
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
8
NFS: Network File System
Sistemas Distribuidos I
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.
Roberto Gómez C.
Lámina 17
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
9
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 19
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
del sistema de archivos.
cliente
• Sistemas pueden jugar dos roles
montaje
diferentes en máquinas que comparten
archivos vía NFS
mount
– pueden ser clientes o servidores.
– los servidores pueden ser clientes de otros
servidores.
/etc/export
servidor
mountall
automount
• Se tiene que tener cuidado con respecto
a la seguridad.
Lámina 20
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
10
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 21
Las particiones en la instalacion
Lámina 22
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
11
NFS: Network File System
Sistemas Distribuidos I
Configurando el disco
Roberto Gómez C.
Lámina 23
Añadiendo partición
Lámina 24
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
12
NFS: Network File System
Sistemas Distribuidos I
Particiones disco y puntos de montaje
partición
de la raíz
/
}
}
/dev/hda1
/dev/hda2
tmp
etc
bin
punto
de
montaje
usr
users
bin
lib
include
hugo paco
/dev/hdb
luis
}
Roberto Gómez C.
Lámina 25
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
13
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 27
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
14
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 29
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
15
NFS: Network File System
Sistemas Distribuidos I
Ejemplo montajes
mount
local
mount
local
Máquina: toto
Máquina: cachafas
/
toto
donald
mimi
/
mount
remotos
cachafas
hugo paco
luis
toto
donald
mimi
cachafas
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
Roberto Gómez C.
Lámina 31
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
16
NFS: Network File System
Sistemas Distribuidos I
Organización del archivo
• Dispositivo/partición a
montar
• Punto de montaje
• Tipo de sistema de
archivos
• Opciones de montaje
• Dump
• fsck
Roberto Gómez C.
Lámina 33
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
17
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 35
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
18
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 37
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
19
NFS: Network File System
Sistemas Distribuidos I
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.
Roberto Gómez C.
Lámina 39
Sintaxis archivo /etc/export
directorio1
directorio2
maquina1(opciones) maquina2(opciones)
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
20
NFS: Network File System
Sistemas Distribuidos I
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: *.gpo.com permite ventas.gpo.com, pero no toto.ventas.gpo.com
• Redes IP
– permite acceso a máquinas basadas en sus direcciones IP dentro de una red
más grande
– por ejemplo: 192.168.0.0/15 (192.168.0.0 - 192.168.0.15)
• 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
Roberto Gómez C.
Lámina 41
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
21
NFS: Network File System
Sistemas Distribuidos I
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)
Roberto Gómez C.
Lámina 43
Ejemplos archivos /etc/exports
• Un primer ejemplo
/
/projects
/usr
/home/joe
/pub
master(rw) trusty(rw,no_root_squash)
proj*.local.domain(rw)
*.local.domain(ro) @trusted(rw)
pc001(rw,all_squash,anonuid=150,anongid=100)
(ro,insecure,all_squash)
• Un segundo ejemplo
/home
/usr/X11R6
/usr/TeX
/
/home/ftp
vale(rw) vstout(rw) vlight(rw)
vale(ro) vstout(ro) vlight(ro)
vale(ro) vstout(ro) vlight(ro)
vale(rw,no_root_squash)
(ro)
• Cuidado con los espacios:
Lámina 44
/home bob.example.com(rw)
/home bob.example.com (rw)
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
22
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 45
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/auto.master
• 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/auto.master y elimina todos los
procesos automount que no aparecen y inicializa los nuevos
Lámina 46
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
23
NFS: Network File System
Sistemas Distribuidos I
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
Roberto Gómez C.
Lámina 47
Los archivos de configuración
• Configuración se realiza con la ayuda de dos
archivos
• Archivo /etc/auto.master
– 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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
24
NFS: Network File System
Sistemas Distribuidos I
Archivo /etc/auto.master
• 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-separadaspor-coma]
Roberto Gómez C.
Lámina 49
Ejemplo archivo
• Ejemplo archivo
/home
/misc
/mnt
/etc/auto.home
/etc/auto.misc
/yp:mnt.map
• Genera tres puntos de montaje /home /misc y /mnt
– acceso a /home consultar mapa en /etc/auto.home
– acceso a /misc consultar mapa en /etc/auto.misc
– acceso a /mnt consultar mapa NIS mnt.map
• Posible definir tiempo para desmontarlo
/auto /etc/auto.misc --timeout=60
Lámina 50
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
25
NFS: Network File System
Sistemas Distribuidos I
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 auot.master (diferencia
solaris)
• location
– donde se va a montar el sistema de archivos
Roberto Gómez C.
Lámina 51
Ejemplo archivo mapa
kernel
boot
windoze
removable
cd
floppy
Lámina 52
Dr. Roberto Gómez Cárdenas
-ro,soft,intr
-fstype=ext2
-fstype=smbfs
-fstype=ext2
-fstype=iso9660,ro
-fstype=auto
ftp.kernel.org:/pub/linux
:/dev/hda1
://windoze/c
:/dev/hdd
:/dev/hdc
:/dev/fd0
Roberto Gómez C.
26
NFS: Network File System
Sistemas Distribuidos I
Un ejemplo para CD y diskettes
• En archivo /etc/auto.master se indica el direcotorio
donde se montan los dispositivos
/mnt
/etc/auto.mnt --timeout 5
• El archivo /etc/auto.mnt 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
floppy
-fstype=iso9660,ro :/dev/cdrom
-fstype=vfat
:/dev/fd0
Roberto Gómez C.
Lámina 53
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
27
NFS: Network File System
Sistemas Distribuidos I
Ejemplo comando showmount
mimoso@toto:1> showmount
antigua
argentina
bahamas
barbados
mimoso@toto:2> showmount -a
antigua:/export/local/tmp
antigua /usr/share
antigua.cem.itesm.mx:/export/local
argentina /usr/share
argentina.cem.itesm.mx:/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>
Roberto Gómez C.
Lámina 55
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
28
NFS: Network File System
Sistemas Distribuidos I
Ejemplo inconsistencia en NFS
Parte del archivo
de passwords
Máquina A
Nombre Usuario
demostenes
benito
cucho
panza
Máquina B
Nombre Usuario
demostenes
matute
panza
cucho
ID
36
41
42
50
ID
31
36
50
66
Parte del sistema
de archivos
Nombre Usuario
demostenes
panza
cucho
benito
Nombre Archivo
ron
vodka
cognac
gin
Nombre Usuario
cucho
matute
demostenes
panza
Nombre Archivo
agua
leche
te
refresco
Cuando se entra en un sistema de archivos remoto el id del usuario el que permanece
constante, no el login-name
Roberto Gómez C.
Lámina 57
Ejemplo inconsistencia en NFS
maquinaB> ls -l
archivo id
nombre
agua
leche
te
refresco
ron
vodka
cognac
gin
66
36
31
50
36
50
42
41
cucho
matute
demostenes
panza
matute
panza
????
????
}
}
archivos locales máquina B
archivos montados remotamente de
la máquina A
usuarios 41 y 42 no están en archivo
password de la máquina B
Lámina 58
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
29
NFS: Network File System
Sistemas Distribuidos I
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”
Roberto Gómez C.
Lámina 59
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
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
30
NFS: Network File System
Sistemas Distribuidos I
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
– ftp://ftp.transarc.com/pub/afs-contrib/doc/faq/afs-faq.html o
– http://www.transarc.ibm.com/Product/EFS/AFS/ind.html
Lámina 61
Dr. Roberto Gómez Cárdenas
Roberto Gómez C.
31

Documentos relacionados