NFS (Español)

From ArchWiki
Revision as of 16:07, 4 December 2012 by Kynikos.bot (Talk | contribs) (wikify some external links, use https for archlinux.org)

Jump to: navigation, search

Tango-preferences-desktop-locale.pngThis article or section needs to be translated.Tango-preferences-desktop-locale.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:NFS (Español)#)

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:NFS (Español)#)

El objetivo de este articulo es el de asistirte en la configuración de un servidor NFS para compartir archivos a través de la red.

  • Para NFSv4 mira: NFSv4
  • nfs-utilsfue actualizado desde el 23-06-2009 y el soporte NF4 ya esta implementado. Visita el boletin de noticias para mas información.
  • portmap fue reemplazado por rpcbind.

Paquetes requeridos

Los paquetes requeridos para el server y el cliente son minimos. Solo necesitas:

# pacman -S nfs-utils rpcbind #En vez de rpcbind puedes instalar portmap, que fue sustituido.

Configurando el servidor

Ya puedes editar la configuración e iniciar los demonios.

Archivos

/etc/exports

Este archivo define los diferentes comparticiones en el servidor nfs y sus permisos. Algunos ejemplos:

/files *(ro,sync) # Acceso de solo lectura a cualquiera
/files 192.168.0.100(rw,sync) # Acceso de lectura-escritura a un cliente en 192.168.0.100
/files 192.168.1.1/24(rw,sync) #  Acceso de lectura-escritura a todos los clientes desde 192.168.1.1 to 192.168.1.255

Si haces cambios a /etc/exports despues de levantar los demonios, puedes hacerlos efectivos con el comando:

# exportfs -r

Si decides hacer tu compartición NFS pública y escribible, puedes usar la opcion all_squash en combinación con anonuid y anongid. Por ejemplo, para poner los privilegios del usuario nobody en el grupo nobody, puedes hacer lo siguiente:

; Read-write access to a client on 192.168.0.100, with rw access for the user 99 with gid 99
/files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))

Esto también quiere decir que si quieres acceso de escritura a este directorio, nobody:nobody tiene que ser el owner del directorio compartido:

# chown -R nobody.nobody /files

Los detalles sobre el archivo exports pueden ser vistos en su pagina de manual.

/etc/conf.d/nfs-common.conf

Note: Esto solia estar en /etc/conf.d/nfs que fue reemplazado por "/etc/conf.d/nfs-common.conf" y "/etc/conf.d/nfs-server.conf".

Edita este archivo para pasar opciones de ejecución apropiadas a nfsd, mountd, statd, y sm-notify. Los scripts de inicio de NFS por defecto de Arch requieren la opcion --no-notify para statd, como sigue:

STATD_OPTS="--no-notify"

Los demas pueden dejarse en su valor por defecto, o cambiados de acuerdo a tus requerimientos. Refiere a las paginas de manual relevantes para mas detalles.

/etc/hosts.allow

Para habilitar acceso de red al servidor nfs debes editar /etc/hosts.allow. El siguiente ejemplo abre estos servicios a todo el mundo:

nfsd: ALL
rpcbind: ALL
mountd:ALL

Esta es una forma muy insegura de habilitar acceso al host. Para tener un mejor control sobre quien esta habilitado para acceder a los demonios, hosts.deny deberia ser todos, y hosts.allow debe especificar personas especificas. En este ejemplo, 192.168.0.101 sera la dirección IP de la persona con permisos para acceder. Los numeros que siguen a la '/' son la mascara de red.

nfsd: 192.168.0.101/255.255.255.255
rpcbind: 192.168.0.101/255.255.255.255
mountd: 192.168.0.101/255.255.255.255

Este ejemplo habilita el acceso a cualquiera en esa red:

nfsd: 192.168.0.0/255.255.255.0
rpcbind: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0

Para un control mas fino lee la pagina de manual hosts_access(5).

Demonios

Ya puedes iniciar el server con los siguientes comando:

# /etc/rc.d/rpcbind start (or: /etc/rc.d/portmap start)
# /etc/rc.d/nfs-common start (or: /etc/rc.d/nfslock start)
# /etc/rc.d/nfs-server start (or: /etc/rc.d/nfsd start)

Ten en cuenta que deben ser iniciados en ese orden. Para iniciar el servidor en el booteo, agrega estos demonios en el array DAEMONS en /etc/rc.conf.

Configurando el cliente

Archivos

/etc/conf.d/nfs

Edita este archivo para pasar opciones de ejecución apropiadas a statd - las opciones restantes son solo para uso del servidor. No uses la opción --no-notify en el cliente, a no ser que seas totalmente consciente de las consecuencias.

Refiérete a la pagina de manual de statd para mas detalles.

/etc/hosts.allow

Debes permitir rpcbind para la ip del servidor:

 rpcbind: 192.168.0.100/255.255.255.255

Demonios

Inicia los demonios portmap y nfslock:

/etc/rc.d/rpcbind start (or: /etc/rc.d/portmap start)
/etc/rc.d/nfs-common start (or: /etc/rc.d/nfslock start)

Nota que deben ser iniciados en este orden o inicia nfs-common solamente, ya que rpcbind sera iniciado como una dependencia.

Para iniciar los demonios al booteo, agregalos al array DAEMONS en /etc/rc.conf.

Ahora monta de manera normal:

mount server:/files /files

A deferencia de comparticiones CIFS o rsync, las exportaciones de NFS deben ser llamadas por la ruta completa en el server, por ejemplo, si /home/fred/music esta definida en /etc/exports en el servidor ELROND, debes ejecutar:

mount ELROND:/home/fred/music /mnt/point

en vez de usar:

mount ELROND:music /mnt/point

o obtendras mount.nfs: access denied by server while mounting

Automontar al bootear

Si quieres montar al bootear, asegurate que network, rpcbind (portmap), nfs-common (nfslock) y netfs se encuentran en el array DAEMONS en /etc/rc.conf. Asegurate de que esten en este orden. Es mejor no poner '@' en ninguno de ellos (aunque puedes usar @netfs sin problemas), por ende:

DAEMONS=(... network rpcbind nfs-common @netfs ...)

o

DAEMONS=(... network portmap nfslock @netfs ...)

Y una entrada apropiada en /etc/fstab, por ejemplo:

server:/files /files nfs defaults 0 0

Si quieres especificar un tamaño de paquete para paquetes de escritura y lectura, especificalos en la entrada de fstab. Los valores mostrados a continuación son los de defecto si ninguno es especificado:

server:/files /files nfs rsize=32768,wsize=32768 0 0

Lee la pagina de manual de nfs para mas información, incluidas todas las opciones de montaje.

Solución de problemas

Desempeño dudose, transferencia de datos lenta, y/o alta carga cuando se usa NFS y gigabit

Este es un resultado del tamaño de paquete por defecto usado por NFS, que causa una fragmentación considerable en redes de 1 gigabit. Puedes modificar este comportamiento con los parametros rsize and wsize. Usando rsize=32768, wsize=32768 deberia ser suficiente. Ten en cuenta que este problema no ocurre con redes de 100Mb debido a la baja velocidad de trasferencia.

El valor por defecto para NFS4 es 32768. El máximo es 65536. Incrementa desde el valor por defecto en incrementos de 1024 hasta alcanzar el maximo de transferencia.

El demonio portmap para al iniciar en el booteo

Asegurate de que pones portmap antes de netfs en el array DAEMONS en /etc/rc.conf.

Nfsd falla al arrancar con "nfssvc: No such device"

Asegurate que los modules nfs y nfsd esten cargados en el kernel.

Nfsd parece trabajar, pero no puedo conectarme desde clientes MacOS X

Al intentar conectarme desde un cliente MacOS X veras que todo esta bien con los logs, pero MacOS X se rehusa a montar la compartición nfs. Tienes que agregar la opción insecure a la compartición y volver a ejecutar {{Codeline|exports -r}

mount.nfs: Operation not permitted

Despues de haber actualizado a nfs-utils-1.2.1-2, el montaje de comparticiones nfs dejo de funcionar. De ahora en adelante, nts-utils usa por defecto NFSv4 en vez de NFSv3. El problema puede ser resuelto utilizando la opción de montaje 'vers=3' o 'nfsvers=3' en la linea de comandos:

# mount.nfs <remote target> <directory> -o ...,vers=3,...
# mount.nfs <remote target> <directory> -o ...,nfsvers=3,...

o en /etc/fstab:

<remote target> <directory> nfs ...,vers=3,... 0 0
<remote target> <directory> nfs ...,nfsvers=3,... 0 0

Links y referencias