el sistema nfscryptomex.org/slidesdist/nfs.pdfde él en su jerarquía de archivos tal y como si...

31
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árdenas [email protected] 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

Upload: others

Post on 12-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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á[email protected]

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

Page 2: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 3: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 4: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 5: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 6: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 7: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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.

Page 8: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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.

Page 9: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 10: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 11: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 12: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 13: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 14: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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]

Page 15: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 16: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 17: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 18: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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)

Page 19: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 20: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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)

Page 21: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 22: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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)

Page 23: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 24: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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.

Page 25: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 26: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 27: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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.

Page 28: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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

Page 29: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características 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

Page 30: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características 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)

Page 31: El sistema NFScryptomex.org/SlidesDist/NFS.pdfde él en su jerarquía de archivos tal y como si montara un sistemas archivos local Lámina 4 Roberto Gómez C. Características NFS

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