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