miércoles, 15 de septiembre de 2010

Servidor de archivos en red NFS


El sistema NFS permite a un servidor exportar un sistema de archivo para que puedan ser utilizados en forma interactiva desde un cliente. El servicio se compone de un servidor nfsd y un cliente (mountd) que permiten compartir un sistema de archivo (o parte de él) a través de la red.

En Debian/Ubuntu instalar para el cliente apt-get install nfs-common portmap mientras que el server necesita apt-get install nfs-kernel-server nfs-common portmap.

El servidor (en Debian/Ubuntu) se pone en marcha a través de los scripts nfscommon y nfs-kernel-server en /etc/init.d (y los enlaces adecuados en /etc/rcX.d).

El servidor utiliza un archivo (/etc/exports) para gestionar el acceso y control sobre los sistemas de archivo que se accederán remotamente. Sobre el cliente, el root (u otro usuario a través de sudo) puede montar el sistema remoto a través del comando:

      mount Ipserver:directorio-remoto directorio_local

y a partir de este momento el directorio-remoto se verá dentro de directorio local (éste debe existir antes de ejecutar el mount). Esta tarea en el cliente se puede automatizar utilizando el archivo de mount automático (/etc/fstab) incluyendo una línea; por ejemplo:

      pirulo.remix.com:/usr/local /pub nfs rsize=8192,wzise=8192,timeo=14

Esta sentencia indica que se montará el directorio /usr/local del host pirulo.remix.com en el directorio local /pub. Los parámetros rsize, wzise son los tamaños de bloques de lectura y escritura, timeo es el timeout de RPC (si no se especifican estos tres valores, se toman los que incluye por defecto).

El archivo /etc/exports sirve de ACL (lista de control de acceso) de los sistemas de archivo que pueden ser exportados a los clientes. Cada línea contiene un filesystem por exportar seguido de los clientes que lo pueden montar, separados por espacios en blanco. A cada cliente se le puede asociar un conjunto de opciones para modificar el comportamiento (consultar man exports para un lista detallada de las opciones). Un ejemplo de esto podría ser:

# Ejemplo de /etc/exports
/ /master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/pub (ro,insecure,all_squash)
/home 195.12.32.2(rw,no_root_squash) www.first.com(ro)
/user 195.12.32.2/24(ro,insecure)

La primera línea exporta el sistema de archivos entero (/) a master y trusty en modo lectura/escritura. Además, para trusty no hay uid squashing (el root del cliente accederá como root a los archivos root del servidor, es decir, los dos root son equivalentes a pesar de ser de máquinas diferentes; es indicado para máquinas sin disco). La segunda y tercera líneas muestra ejemplo de ‘*’ y de netgroups (indicados por @). La cuarta línea exporta el directorio /pub a cualquier máquina en el mundo, sólo de lectura, permite el acceso de clientes NFS que no utilizan un puerto reservado para el NFS (opción insecure) y todo se ejecuta bajo el usuario nobody (opción all squash). La quinta línea especifica un cliente por su IP y en la sexta igual pero con máscara de red (/24) y con opciones entre () y que deben estar sin espacio de separación. Sólo puede haber espacios entre los clientes habilitados. Es importante tener en cuenta que de NFS existen 3 versiones (V2, V3 y recientemente V4). Las más comunes son V3 y en algunas instalaciones V2. Si desde un cliente V3 se conecta a un servidor V2, se debe indicar con un parámetro esta situación.

Fuente: Libro Adm. Avanzada de GNU/Linux

Ver tambien:


Artículos relacionados



Widget by Hoctro | Jack Book

0 comments:

Publicar un comentario