NFS Network File System
NFS es el sistema que utiliza Linux para compartir carpetas en una red. Mediante NFS, un servidor puede
compartir sus carpetas en la red. Desde los PCs de los usuarios se puede acceder a dichas carpetas
compartidas y el resultado es el mismo que si estuvieran en su propio disco duro.
Sumario
Instalación debian
apt-get install nfs-common nfs-kernel-server
Instalación Raspberry pi
apt-get install nfs-kernel-server portmap nfs-common
Jessie
apt-get install nfs-kernel-server rpcbind nfs-common
Configuración
Para configurarlo tenemos que editar el archivo exports, donde indicaremos las carpetas a compartir y los
persmisos de lectura o lectura y escritura
nano /etc/exports
Un ejemplo seria el siguiente
/media/datos/ 192.168.1.0/255.255.255.0(rw,sync,no_subtree_check,insecure)
Opciones de NFS
- ro: Esta opción podemos proporcionar acceso de sólo lectura a los archivos compartidos.
- rw:Esta opción permite que el servidor de cliente para leer y escribir el acceso dentro del directorio compartido.
- sync:Confirma solicitudes al directorio compartido sólo una vez se han confirmado los cambios.
- no_subtree_check:Esta opción evita que el control del subárbol. Cuando un directorio compartido es el subdirectorio de un sistema de archivos más grande, nfs realiza exploraciones de cada directorio por encima de ella, con el fin de verificar sus permisos y detalles. Deshabilitar la comprobación de subárbol puede incrementar la fiabilidad de NFS, pero reducir la seguridad.
- no_root_squash: Permite a root la conexión al directorio designado.
Configuración Raspberry pi
/media/datos *(rw,all_squash,sync,no_subtree_check,insecure,crossmnt,anonuid=65534,anongid=1000)
Nota:No es necesario introducir el * podemos utilizar una rango de red
Iniciar servicio
Para que el servidor NFS funcione, es necesario que esté arrancado el servicio portmap, por lo tanto, la primera acción será iniciar portmap por si no estuviera arrancado:
/etc/init.d/portmap start
Versión Jessie
/etc/init.d/rpcbind start
Reiniciamos servidor NFS
/etc/init.d/nfs-kernel-server restart
Iniciar servicio en Raspberry pi
/etc/init.d/nfs-common start
/etc/init.d/nfs-kernel-server start
/etc/init.d/rpcbind start
Este ultimo lanza un error con los tcp6
mountdrpc.mountd: svc_tli_create: could not open connection for udp6 rpc.mountd: svc_tli_create: could not open connection for tcp6 rpc.mountd: svc_tli_create: could not open connection for udp6 rpc.mountd: svc_tli_create: could not open connection for tcp6 rpc.mountd: svc_tli_create: could not open connection for udp6 rpc.mountd: svc_tli_create: could not open connection for tcp6
Esto lo podemos solucionar:
modprobe ipv6
Y volviendo a reiniciar el nfs-kernel-server
NFS Server: Not starting: portmapper is not running
Script de inicio nfs
No se que le pasa a la Jessie y ahora mismo no tengo tiempo de averiguarlo....
Pero la cuestión que cada vez que se reinicia raspberry el servicio de nfs esta activo pero no funciona..???
Tengo que reiniciarlo manualmente asi que he creado este script que se ejecuta al iniciar el sistema
#!/bin/bash ### BEGIN INIT INFO # Provides: nfs-local # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: mathkernel ### END INIT INFO
#/etc/init.d/nfs-common restart /etc/init.d/rpcbind restart /etc/init.d/nfs-kernel-server restart
#showmount --exports localhost exit
Comprobar el estado
Podemos comprobar los recursos que tenemos iniciados en NFS
showmount --exports localhost
Montar Recursos NFS
Montar la unidad en Linux
Para poder acceder desde un PC a una carpeta compartida por NFS en un servidor, es necesario montar la carpeta compartida en nuestro sistema de archivos. De ésta manera, el acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de nuestro disco duro.
Es necesario tener los paquetes istalados
apt-get install nfs-common
Para montar la unidad utilizaremos el comando mount con la variante -t (temporal)
mount -t nfs 192.168.1.10:/media/datos /home/nacho/datos/
Momtar en Mac OX
Tendremos que montar la unidad mediante la Utilidad de Disco > Archivo > Montaje NFS
Apretar el +
URL del NFS remoto
nfs://192.168.1.10/media/datos
Ubicación de montaje:
/Users/nacho/media/datos
Activamos parametros de montaje avanzados
resvport,nolocks,locallocks,intr,soft,wsize=32768,rsize=3276
Montar en Windows
Podemos montar sistemas de ficheros NFS de Unix como una unidad de Windows
Instalar el Cliente para NFS de Windows
Para Instalar el Cliente de NFS hay que abrir Panel de Control, seleccionar Programas y carcteristicas hacer clic en el enlace Activar o desactivar las caracteristicas de Windows
Selecionar Cliente para NFS
Iniciar los servicios NFS Abrimos una consola de sistema "cmd" y ejecutamos
c:\nfsadmin client start
Montr el sistema de ficheros Para montar nuestro sistema de fichero exportado por NFS ejecutamos:
C:\>mount \\192.168.1.200:\media Z:
Ahora ya esta montado media en la unidad Z:
Desmontar la unidad
c:\>umount Z: