Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
De entre los diferentes servicios que podemos instalar, quería empezar por NFS en Raspberry, porque es uno de los grandes desconocidos entre los que provenimos de otros sistemas operativos. Mas que nada, porque en esos otros sistemas operativos no existe.
En mi caso particular, vengo utilizando NFS desde años en detrimento de Samba, por el simple hecho de que en mi red local todos los equipos que tengo conectados son Linux. Y todo en base a mi experiencia personal, con independencia de los datos que mostraré mas adelante. Al menos en mi caso, las velocidades de transmisión, con independencia de los archivos a intercambiar, son sensiblemente mas elevadas cuando lo hago por NFS que cuando lo hago por SMB/CIFS.
Ahora bien, si en tu red, también tienes equipos con otros sistemas operativos, que no pueden aprovechar las bondades de NFS, tendrás que esperar al próximo artículo para ver como instalar SMB/CIFS en tu Raspberry Pi.
NFS en Raspberry
NFS vs SMB/CIFS
Adjunto te dejo los resultados de un test realizado en el que se muestran las velocidades
NFS Escritura | Samba Escritura | NFS Lectura | SMB Lectura | |
---|---|---|---|---|
10 KiB (6998 files) | 37s | 101s | 26s | 58s |
1 MiB (240 files) | 23s | 27s | 24s | 28s |
500 MiB (1 file) | 45s | 45s | 45s | 48s |
3,5 GiB (1 file) | 323s | 324s | 330s | 347s |
Instalar y configurar un servidor NFS en Raspberry Pi
Evidentemente, lo primero es acceder a nuestra Raspberry Pi a través de ssh
. Recordar que yo he optado a una instalación mínima, sin entorno gráfico. En mi caso, la orden sería la siguiente,
ssh pi@192.168.1.48
Instalar dependencias
Una vez ya estamos en su lado ejecutaremos la siguiente orden para instalar los componentes necesarios,
sudo apt install nfs-common nfs-server -y
Algunas modificaciones para NFS en Raspberry Pi 3
Antes de continuar con la configuración normal de NFS en Raspberry Pi, es necesario realizar unas modificaciones en el archivo /etc/netconfig
. Hasta que no hice esta modificación, me resultó imposible utilizar NFS
. Esto me resulta extraño, pues lo cierto es que he encontrado pocos sistios donde se muestre esta información. Como te indico es fundamental modificar el archivo /etc/netconfig
.
Lo que hay que hacer es comentar las dos siguientes líneas,
udp6 tpi_clts v inet6 udp - - tcp6 tpi_cots_ord v inet6 tcp - -
Así, en mi caso, el archivo /etc/netconfig
, una vez realizadas las modificaciones, tiene el siguiente aspecto,
udp tpi_clts v inet udp - - tcp tpi_cots_ord v inet tcp - - #udp6 tpi_clts v inet6 udp - - #tcp6 tpi_cots_ord v inet6 tcp - - rawip tpi_raw - inet - - - local tpi_cots_ord - loopback - - - unix tpi_cots_ord - loopback - - -
Crear un directorio que compartir con NFS en Raspberry
Vamos a crear el directorio que queremos compartir, darle propiedad y asignarle los permisos necesarios. En mi caso yo lo he creado en /srv/nfs4/share/
. Lo guardo en /srv
, porque este directorio, tradicionalmente, es el que debe contener los datos de los servicios proporcionados por el sistema. Así ejecutaremos la siguiente orden,
sudo mkdir -p /srv/nfs4/share/
Ahora le vamos a cambiar el propietario, y le vamos a asignar permisos,
sudo chown pi:pi /srv/nfs4/share/ sudo chmod 755 /srv/nfs4/share/
Configurando permisos
Ahora tenemos que configurar el archivo /etc/exports
que es donde se establecen los directorios que se comparten y los permisos.
El formato para este fichero es:
directorio IP(permisos)
donde,
directorio
es el directorio que queremos compartirIP
es la dirección IP o rango de direcciones a las que queremos dar permiso para que accedan. Así por ejemplo,/srv/nfs4/share 192.168.1.110
solo da permiso a la IP192.168.1.110
. Es decir, solo podremos acceder desde esta dirección./srv/nfs4/share 192.168.1.0/24
daría acceso a todos las IP comprendidas entre la192.168.1.1
y la192.168.1.254
/srv/nfs4/share 192.168.1.0/30
daría acceso a las IP192.168.1.1
y la192.168.1.2
/srv/nfs4/share *
permitiría cualquier acceso con independencia de la IP.
(permisos)
define las características del acceso al directorio. Así, tenemos, quero
lo define como de solo lectura, mientras querw
lo define como de lectura y escritura, es decir, se pueden hacer modificaciones desde el cliente.sync
hace que cada las escrituras estén sincronizadas entre cliente y servidor. Evidentemente esto es mas seguro ante una posible caída del sistema, pero puede reducir el rendimiento.secure
obliga a que las peticiones de conexión vengan a través de un puerto inferior a 1024.subtree_check
obliga a que todos los directorios correspondan a un mismo volumen, mientras queno_subtree_check
obvia esta comprobación consiguiendo que la transferencia de archivos sea mas rápida.all_squash
mapea todos losuids
ygids
al usuario anómimo.root_squash
mapea las peticiones de uid/gid 0 al usuario anómimo.
En mi caso particular, el archivo /etc/exports
tiene acualmente el siguiente aspecto
/srv/nfs4/share 192.168.1.0/24(rw,async,no_subtree_check)
Una vez realizados todos los cambios comentados, nos queda actualizar y reiniciar el servicio,
sudo exportfs -ra sudo update-rc.d rpcbind enable && sudo update-rc.d nfs-common enable sudo systemctl restart rpcbind sudo systemctl restart nfs-kernel-server
Con esto ya tenemos nuestro servicio NFS activo. Con la Raspberry Pi, hemos terminado. Ahora debemos configurar todos aquellos dispositivos que quieran acceder a la Raspberry Pi a través de NFS. PAra ello tan solo tienes que seguir las indicaciones del artículo “Como compartir directorios en red local con NFS en Ubuntu”.
Más información,
Lo primero y como siempre…. montones de gracias por el interés y lo bien explicado de tus artículos.
Quisiera pedir algo (si no es complicado claro) y es que incluyeras en «compartir» a Evernote.
Un saludo,
Laureano
Hola Laureano,
Muchas gracias por tus comentarios.
Respecto al asunto de «Evernote», indicarte que nada mas leí tu comentario intenté añadir el botón de Evernote, pero por algún tipo de razón «Evernote» no traga con las páginas de este sitio.
Puede ser que sea un error de la API de Evernote, pero hasta el momento no he podido. Si, consigo en algún momento que funcione, no dudes que añadiré el botón.
Gracias y un saludo.
No me queda otra que responder.
Mi mujer crítica mi manía por lo que protesto de quien pone los pies en un asiento público, del que casi atropella con su bici o moto a los que van por la acera, etc. Vamos que en una palabra no confío mucho en el género humano.
Precisamente por eso me levanta el ánimo gente amable como «el atareao».
No digas nada, sigue así.
Un afectuoso saludo,
Laureano
Magnifico articulo, como todos, le di muchas vueltas a utilizar MFS en la raspberry y siempre me daba error, hasta que he visto lo de comentar las lineas en el fichero netconfig, muchas gracias.