¿Te pierdes entre tantos temas? 📚✨ Descubre todo lo que ofrece este blog en un solo vistazo [👉 Ver índice completo]
NFS (network file system) o sistema de archivos en red, es un protocolo que nos va a permitir acceder a archivos y directorios en otros ordenadores como si estuvieran ubicados localmente en el nuestro. Es un sistema de archivos distribuido que opera bajo el modelo cliente servidor, sobre todo en sistemas Linux, donde un servidor NFS comparte sus archivos y directorios, y los clientes pueden acceder a ellos a través de la red. NFS comparte para equipos mientras que como veremos posteriormente otro protocolo llamado samba comparte para usuarios.
Para verlo mejor vamos a partir de dos máquina con Linux instalado y en ambas, lo primero que tenemos que hacer es instalar este protocolo. Se suele instalar en ambas máquinas el protocolo cliente y servidor porque es normal que a veces una máquina sirva unas cosas y la otra otras. Que un ordenador tenga instalado los paquetes NFS, no significa que automáticamente este compartiendo su sistema de archivos en la red. Para ello es necesario configurar y arrancar el servicio.
El ejemplo que presento lo voy a hacer entre una Rapsberry que actuará de servidor y una máquina virtual que será el PC cliente. También lo puedes hacer creando dos máquinas virtuales, con conexión de red en modo bridge. Lo importante es que ambas máquinas estén en la misma red. Para ver si están correctamente conectadas hay que probar si ambas máquinas se ven en la red utilizando el comando "ping". Para saber cual es la IP de tus máquinas usa el comando "ifconfig" y luego utiliza el comando ping para ver si ambas máquinas se ven bien en la red.
Cada pc tiene que hacer ping con la ip de la otra máquina correctamente, si no, no podrás compartir los archivos.
- Instalar NFS en ambas máquinas.
sudo apt-get install nfs-common nfs-kernel-server
// nfs-common es el modulo para instalar el cliente de nfs
// nfs-kernel-server es el módulo para instalar el servidor de nfs - Configurar el servicio NFS en el servidor, es decir en el equipo donde se van a compartir las carpetas. Tenemos que hacerlo como root.
Antes de arrancar el servicio NFS es necesario indicar que carpetas queremos compartir y si queremos que los usuarios accedan con permisos de solo lectura o de lectura y escritura. También existe la posibilidad de establecer que PC´s pueden conectarse. Estas opciones se configuran en el archivo /etc/exports
En cada línea del archivo de configuración del servidor NFS /etc/exports, se puede especificar:
- La carpeta que se quiere compartir.
- Desde que PC o PC´s se permite el acceso (nombre o IP del PC o rango de IP´s)
- El modo en el que se comparte (solo lectura 'ro' o lectura y escritura 'rw')
Por ejemplo, compartir la carpeta /casitodos (que ya tiene que estar creada y con todos los permisos) del servidor en modo lectura y escritura para las máquinas de la dirección de red 192.168.1.0, se añade, en el fichero /etc/exports la siguiente línea:
/casitodos 192.168.1.0/255.255.255.0(rw)
Si queremos compartir la carpeta /sololec (que ya tiene que estar creada) del servidor en el modo solo lectura para el equipo con IP 192.168.1.118, se añade, en el fichero /etc/exports la siguiente línea:
/sololec 192.168.1.118(ro)
Si queremos compartir la carpeta /todos (que ya tiene que estar creada) del servidor en modo solo lectura para todos los ordenadores, se añade en el fichero /etc/exports la siguiente linea:
/todos *(ro)
Por lo que el fichero /etc/exports nos quedaría de la siguiente manera:
¡¡IMPORTANTE!! Los permisos de compartición por NFS no excluyen a los permisos del sistema Linux, sino que prevalecen los más restrictivos. Si una carpeta está compartida con permiso NFS de lectura y escritura pero en los permisos del sistema solo disponemos de permiso de lectura, no podremos escribir. Si una carpeta está compartida con permisos NFS de lectura y disponemos de permisos de lectura y escritura en el sistema, tampoco podremos escribir. Para poder escribir necesitaremos disponer permiso de lectura y escritura tanto en los permisos del sistema como en los permisos de compartición NFS. - Arranque y parada de NFS(en el equipo servidor)
Para arrancar el servidor NFS se ejecuta el comando(como root):
//Arranque del servidor NFS
sudo service nfs-kernel-server start
Este comando iniciará los procesos necesarios que necesita NFS para su funcionamiento.
Si deseamos detener el servidor NFS, debemos ejecutar:
//Parada delservidor NFS
sudo service nfs-kernel-server stop
Si deseamos reiniciar el servidor NFS, debemos ejecutar:
//Reinicio delservidor NFS
sudo service nfs-kernel-server restart
Cada vez que modificas el fichero /etc/exports hay que reiniciar el servicio. - Acceso a carpetas compartidas por NFS (en el equipo cliente, equipo que accede a las carpetas compartidas en el servidor)
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 esta manera, el acceso a la carpeta compartida es exactamente igual que el acceso a cualquier otra carpeta de nuestro disco duro (o como si montásemos un dispositivo).
Por ejemplo, supongamos que un servidor (con IP 192.168.1.200) comparte por NFS la carpeta llamada /todos (anteriormente compartida). En el PC cliente podemos crear una carpeta llamada /cliente (punto de montaje) y montar sobre ella la carpeta compartida en el servidor. Para ello, en el cliente y como root, ejecutaríamos el siguiente comando:
//Montar carpeta compartida por NFS
sudo mount -t nfs 192.168.1.200:/todos /cliente
A partir de este momento, podemos comprobar que nuestra carpeta /cliente, contiene la información de la carpeta /todos del servidor. Si disponemos de permisos de lectura y escritura, podemos incluso crear o modificar los archivos dentro de nuestra carpeta /cliente y los cambios se estarán guardando realmente en la carpeta /todos del servidor.
Para realizar el montaje, debemos hacerlo sobre una carpeta existente en nuestro sistema. Si dicha carpeta de nuestro sistema contiene archivos, estos no estarán accesibles ya que la carpeta nos mostrará los archivos remotos.
Si deseamos que nuestro PC monte siempre de forma automática una carpeta compartida por NFS cuando iniciemos nuestro Linux, existe la posibilidad de añadir en el archivo /etc/fstab una línea como, por ejemplo:
//Montaje automático al iniciar el PC
#añadir en el fichero /etc/fstab del cliente
ip-del-servidor:/carpeta_servidor /carpeta_cliente nfs auto,user,rw
De esta manera, cuando arranquemos nuestro PC, la carpeta /carpeta_servidor del servidor quedará automáticamente montada sobre nuestra carpeta /carpeta_cliente y no tendremos que ejecutar el comando mount. Un usuario también podrá acceder a la carpeta compartida montando la carpeta (de la misma forma que lo hacíamos con una partición).
No hay comentarios:
Publicar un comentario