View
0
Download
0
Category
Preview:
Citation preview
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 1
Roberto Gómez C.Lámina 1
El sistema NFS
Network File System
Roberto Gómez Cárdenasrogomez@itesm.mx
http://homepage.cem.itesm.mx/rogomez
Roberto Gómez C.Lámina 2
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 2
Roberto Gómez C.Lámina 3
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 4
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 3
Roberto Gómez C.Lámina 5
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 Unixpara 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 6
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 4
Roberto Gómez C.Lámina 7
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 servidor2. El protocolo RPC
– define formato de todas las interacciones entre cliente y servidor3. 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 8
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 servidor6. Protocolo mount
– Define semántica para montar y desmontar sistemas archivos NFS7. 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ónicas8. 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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 5
Roberto Gómez C.Lámina 9
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 10
Ejemplo VFS
RPC
Hacia un sistema de archivos remoto
pcnode inode inode mode
Sistema Archivos Virtual
VNODE
Interfaz de llamadas de sistema
Operaciones de archivos de usuarios
crea
t
read
wr i t
e
unl in
k
clos
e
Sistema archivosDOS Sistema archivos
UFSSistema archivos
S5
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 6
Roberto Gómez C.Lámina 11
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 12
Servicios, protocolos y demonios NFS
lockdPara 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
nlm
statdSe 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.
nsm
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
nfsdEste 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.
nfs
DemonioDescripciónProtocolo
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 7
Roberto Gómez C.Lámina 13
Componentes del cliente y del servidor en NFS
Programausuario
mount
biod
RPCRPC
InterfazVFS
mountd
nfsd
RPCRPC
Espaciousuario
Espaciokernel
Cliente Servidor
InterfazVFS
Sistema ArchivoUFS
Red de comunicaciones
Roberto Gómez C.Lámina 14
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.
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 8
Roberto Gómez C.Lámina 15
Tolerancia a fallas
• Si el servidor cae, los clientes no tienen que realizar ninguna acción de recuperación.
• 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
NFS server cognac not responding ... still tryingNFS server cognac OK
Roberto Gómez C.Lámina 16
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.
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 9
Roberto Gómez C.Lámina 17
Lista procedimientos definidos en NFS
regresa información acerca el sistema de archivos que contiene a un determinado archivo.
NFSPORC_STATFS
regresa una lista de archivos de un directorioNFSPROC_READDIR
borra un directorio (vacío) especificado por un nombreNFSPROC_RMDIR
crea un directorio con un nombre especialNFSPROC_MKDIR
crea una liga simbólicaNFSPROC_SYMLINK
crea una nueva liga en un directorio de un archivo existenteNFSPROC_LINK
renombra un archivoNFSPROC_RENAME
quita un archivo (y puede usarse como un comando Unix mv)NFSPROC_REMOVE
crea un archivo con un nombre especifico en un directorioNFSPROC_CREATE
regresa el número de bytes escritos de un archivoNFSPROC_WRITE
regresa el numero de bytes leídos de un archivoNFSPROC_READ
regresa el contenido de una liga simbólicaNFSPROC_READLINK
busca un archivo en un directorio y regresa un manejadorNFSPROC_LOOKUP
asigna (algunos) atributos de un archivoNFSPROC_SETATTR
regresa atributosNFSPROC_GETATTR
no hace nada excepto “suceed”NFSPROC_NULL
DescripciónProcedimiento
Roberto Gómez C.Lámina 18
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 pathnamesen el servidor:
• 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)
/cachafas/paco/jobs o \cachafas\paco\jobs
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 10
Roberto Gómez C.Lámina 19
Transacciones necesarias ejemplo
Dame un manejador para /cachafas
h1
h2
h3
Buscar paco en el directorio con manejador h1
Buscar jobs en directorio con manejador h2
Leer del archivo con manejador h3
Datos
NFSPROC_LOOKUP
NFSPROC_LOOKUP
NFSPROC_LOOKUP
toto (cliente)cachafas (servidor)
mountfd
nfsd
nfsd
nfsd
Roberto Gómez C.Lámina 20
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 del sistema de archivos.
• Sistemas pueden jugar dos roles diferentes en máquinas que comparten archivos vía NFS– pueden ser clientes o servidores.– los servidores pueden ser clientes de otros
servidores.• Se tiene que tener cuidado con respecto
a la seguridad.
cliente servidor
/etc/fstab /etc/export
montaje
mountmountallautomount
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 11
Roberto Gómez C.Lámina 21
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 22
Las particiones en la instalacion
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 12
Roberto Gómez C.Lámina 23
Configurando el disco
Roberto Gómez C.Lámina 24
Añadiendo partición
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 13
Roberto Gómez C.Lámina 25
Particiones disco y puntos de montaje
/dev/hda1
/dev/hdb
/
etcbin
users
tmp
usr
include
paco
}
}
/dev/hda2
}
hugo luis
bin lib
particiónde la raíz
punto de
montaje
Roberto Gómez C.Lámina 26
Los comandos mount/umount
• Sintaxis comando mountmount -t sistema_archivos dispositivo directorio [-o opciones]
• Los argumentos de mount– sistemas archivos: cualquiera de los siguientes:
Sistema de archivos compartido por red (``exportado'')nfsSistema de archivos de CD-ROMiso9660Sistema de archivos de Windows 9X (nombres largos)vfatSistema de archivos de DOS.msdosSistema de archivos de Linux.ext2DescripciónTipo
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 14
Roberto Gómez C.Lámina 27
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 28
Sintaxis mount
• 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
mount -t sistema_archivos dispositivo directorio [-o opciones]
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 15
Roberto Gómez C.Lámina 29
Opciones comando mount
• Un ejemplo simple
Supone que es un dispositivo de caracteres o bloques. dev Modo síncrono. syncModo asíncrono. asyncSe puede montar automáticamente. autoTiene efecto los identificadores de propietario y del gruposuidLos usuarios pueden ``montar''/``desmontar''. userSe permite ejecución.execSólo lectura. roLectura/escritura. rwDescripciónOpción
mount /dev/dsk/ls0 /users
Roberto Gómez C.Lámina 30
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 16
Roberto Gómez C.Lámina 31
Ejemplo montajes
• 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
toto cachafas
donald mimi hugo paco luis
/
toto cachafas
donald mimi hugo paco luis
/
mountremotos
mountlocal
mountlocal
Máquina: toto Máquina: cachafas
Roberto Gómez C.Lámina 32
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 17
Roberto Gómez C.Lámina 33
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 34
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 18
Roberto Gómez C.Lámina 35
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 36
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)
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 19
Roberto Gómez C.Lámina 37
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 38
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 20
Roberto Gómez C.Lámina 39
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 40
Sintaxis archivo /etc/export
• 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ónentre la máquina y el primer paréntesis.
directorio1 maquina1(opciones) maquina2(opciones)directorio2 maquina1(opciones) maquina3(opciones)
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 21
Roberto Gómez C.Lámina 41
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 42
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 debeacceder al disco por comandos de escritura separados
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 22
Roberto Gómez C.Lámina 43
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 44
Ejemplos archivos /etc/exports
/ master(rw) trusty(rw,no_root_squash)/projects proj*.local.domain(rw)/usr *.local.domain(ro) @trusted(rw)/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)/pub (ro,insecure,all_squash)
/home bob.example.com(rw)/home bob.example.com (rw)
• Un primer ejemplo
• Un segundo ejemplo
• Cuidado con los espacios:
/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)
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 23
Roberto Gómez C.Lámina 45
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 comoun 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 nuevapetición
Roberto Gómez C.Lámina 46
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 24
Roberto Gómez C.Lámina 47
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 48
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.
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 25
Roberto Gómez C.Lámina 49
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 mountpara empezar.
• Sintaxis:punto_montaje mapa_automount [opciones-separadas-
por-coma]
Roberto Gómez C.Lámina 50
Ejemplo archivo
• Ejemplo archivo
• 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
/home /etc/auto.home/misc /etc/auto.misc/mnt /yp:mnt.map
/auto /etc/auto.misc --timeout=60
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 26
Roberto Gómez C.Lámina 51
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 52
Ejemplo archivo mapa
kernel -ro,soft,intr ftp.kernel.org:/pub/linuxboot -fstype=ext2 :/dev/hda1windoze -fstype=smbfs ://windoze/cremovable -fstype=ext2 :/dev/hddcd -fstype=iso9660,ro :/dev/hdcfloppy -fstype=auto :/dev/fd0
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 27
Roberto Gómez C.Lámina 53
Un ejemplo para CD y diskettes
• En archivo /etc/auto.master se indica el direcotoriodonde se montan los dispositivos
• El archivo /etc/auto.mnt debe contener estas líneaspara 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/cdromfloppy -fstype=vfat :/dev/fd0
/mnt /etc/auto.mnt --timeout 5
Roberto Gómez C.Lámina 54
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.
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 28
Roberto Gómez C.Lámina 55
Ejemplo comando showmount
mimoso@toto:1> showmountantiguaargentinabahamasbarbadosmimoso@toto:2> showmount -aantigua:/export/local/tmpantigua /usr/shareantigua.cem.itesm.mx:/export/localargentina /usr/shareargentina.cem.itesm.mx:/export/localbahamas:/export/localbarbados: /usr/openwinmimoso@toto:3> showmount -d/export/local/export/local/tmp/usr/openwin/usr/sharemimoso@toto:4>
Roberto Gómez C.Lámina 56
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
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 29
Roberto Gómez C.Lámina 57
Máquina A
Nombre Usuario IDdemostenes 36benito 41cucho 42panza 50
Nombre Usuario IDdemostenes 31matute 36panza 50cucho 66
Máquina B
Nombre Usuario Nombre Archivodemostenes ronpanza vodkacucho cognacbenito gin
Nombre Usuario Nombre Archivocucho aguamatute lechedemostenes tepanza refresco
Parte del archivode passwords
Parte del sistemade archivos
Cuando se entra en un sistema de archivos remoto el id del usuario el que permanececonstante, no el login-name
Ejemplo inconsistencia en NFS
Roberto Gómez C.Lámina 58
maquinaB> ls -larchivo id nombreagua 66 cucholeche 36 matutete 31 demostenesrefresco 50 panzaron 36 matutevodka 50 panzacognac 42 ????gin 41 ????
archivos locales máquina B
archivos montados remotamente de la máquina A
}}
usuarios 41 y 42 no están en archivopassword de la máquina B
Ejemplo inconsistencia en NFS
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 30
Roberto Gómez C.Lámina 59
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
escritura2. 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 60
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)
Sistemas Distribuidos I NFS: Network File System
Dr. Roberto Gómez Cárdenas 31
Roberto Gómez C.Lámina 61
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
Recommended