NFS del termino ingles Network File System, que significa Sistema de Archivos en Red. Es el acronimo para identificar al sistema nativo utilizado por Linux para compartir carpetas en una red. Y como resultado, se puede acceder a dichas carpetas compartidas desde las computadoras de los otros usuarios como si estas se encontraran en el propio disco duro.
Por lo tanto, podríamos decir que, NFS permite a las computadoras que utilizan Linux, conectarse y compartir carpetas entre sí. Adicionalmente, en Linux existen otras alternativas para compartir recursos como Samba, FTP, SSH, pero lo recomendado para realizar la acción de compartir recursos en una red propiamente Linux es NFS.
NFS: Compartir carpetas en Linux
Instalación de NFS
Para poder hacer uso del servicio, necesitamos instalar previamente el paquete NFS para la distribución correspondiente. Por lo general, la mayoría de las computadoras ya contienen el paquete, ya que es posible que en cualquier momento se tenga la necesidad de compartir una carpeta. Sin embargo, que una computadora tenga instalado el paquete no quiere decir que ya este compartiendo su sistema de archivos en la red. Para ello, amerita una configuración y arranque previo del servicio.
Para proceder a la instalación del NFS y queremos obtener la ultima versión, hacemos uso del comando apt-get desde la consola:
[php]apt-get install nfs-common nfs-kernel-server[/php]Configuración del servidor NFS
Antes de iniciar los servicios, se requiere especificar cuales son las carpetas que se desean compartir y definir bajo que tipo de permisos sera el acceso: solo lectura o lectura y escritura. Por otra parte, también es posible establecer cuales son los equipos que pueden conectarse a dichas carpetas. Todas estas opciones pueden ser configuradas desde el archivo: /etc/exports
En el archivo de configuración, en cada linea podemos especificar varios puntos:
- La carpeta que queremos compartir.
- Los permisos bajo los cuales se comparte (solo lectura: ‘ro’ o lectura y escritura: ‘rw’ ).
- Cuales son las maquinas a las que se les permite el acceso. Puede ser un nombre, una dirección IP o un rango de direcciones de IPs.
Cuando se utiliza NFS para compartir, se recomienda establecer las máximas restricciones de permisos. Por ejemplo, si los usuarios no requieren escribir sobre los archivos, debemos establecer el permiso de ‘solo lectura’.
Arranque y parada manual de NFS
Para que los servicios de del servidor NFS funcionen, el primer paso es iniciar el servicio portman, por lo tanto lo primero que debemos ejecutar es:
[php]sudo /etc/init.d/portmap start[/php]Si queremos iniciar el servicio NFS o cada vez que realicemos modificaciones sobre el archivo /etc/exports, es necesario ejecutar el siguiente comando:
[php]sudo /etc/init.d/nfs-kernel-server restart[/php]En caso contrario, es decir detener el servicio,usamos:
[php]sudo /etc/init.d/nfs-kernel-server stop[/php]Tal vez te interese leer: ownCloud: Cómo tener tu propia nube en Ubuntu
Acceso a carpetas compartidas por NFS
Para poder acceder a una carpeta compartida por NFS, los primeros pasos a realizar son la instalación de los paquetes de portman y nfs-commons. Para ello ejecutamos:
[php]sudo apt-get install portmap nfs-common
sudo /etc/init.d/portmap restart
En este punto, ya vamos a poder montar la carpeta compartida en nuestro sistema. Por lo tanto, el ingreso es como si fuera cualquier otra carpeta dentro de nuestro sistema de archivos en el disco duro.
Por ejemplo, si dentro del servidor NFS tenemos una carpeta supongamos que un servidor comparte por NFS una carpeta llamada /fotos. En el PC cliente podemos crear una carpeta llamada /fotos-servidor y sobre ella montar carpeta compartida del servidor. La instrucción a ejecutar en la consola seria:
[php]sudo mount -t nfs ip-del-servidor:/fotos /fotos-servidor[/php]Desde este instante, ya podemos verificar el contenido de la carpeta y si se disponen de los permisos, realizar incluso modificaciones. Es importante resaltar que el montaje debe hacerse sobre una carpeta dentro de nuestro sistema, de lo contrario los archivos remotos no serán visualizados.
Por otro lado, para desmontar la carpeta, ejecutamos en consola el comando umount y seguido del nombre de la carpeta en que está montada, por ejemplo:
[php]sudo umount /fotos-servidor[/php]Problemas al realizar montaje
Al momento de realizar el montaje de una carpeta NFS, pueden ocurrir alguno de estos 3 errores: Problemas en la red, Problemas en el servidor o Problemas en el cliente.
Para descartar si el problema es del servidor o no, podemos probar montando la carpeta en el propio servidor utilizando la IP 127.0.0.1. Si funciona, el problema esta en la red o en el cliente.
Por otro lado, si haciendo ping del servidor al cliente no se presenta ningún cortafuegos, entonces el problema esta en el cliente.
De ser un problema que se presente en el cliente, podemos intentar hacer una reinstalación del cliente o ejecutar en el cliente estos comandos:
[php]apt-get install nfs-common nfs-kernel-server
/etc/init.d/portmap restart
/etc/init.d/nfs-kernel-server restart
[/php]Y finalmente intentar montar la carpeta.
Carpetas compartidas
Si queremos configurar que una carpeta compartida por NFS se monte de manera automática cuando iniciemos nuestro sistema Linux, podemos hacer una modificación en el archivo /etc/fstab, la linea a agregar seria como la siguiente:
[php]ip-del-servidor:/fotos /fotos-servidor nfs[/php]De esta manera, cuando arranquemos nuestra maquina, la carpeta /fotos del servidor, automáticamente quedara montada sobre nuestra carpeta /fotos-servidor.
Por otra parte, se recomienda que los datos de cada usuario de la red sean almacenados de forma centralizada en un espacio del servidor. Esto brindara varias varias ventajas, como por ejemplo:
- Al usuario le brindara la posibilidad de acceder a sus archivos, incluso accediendo desde una computadora no habitual.
- Para el administrador, sera mucho mas sencillo realizar copias de seguridad y si la maquina del usuario falla, no perderá su información.
Para lograr esto, el servidor debe tener centralizadas las cuentas de usuario y los clientes deben estar configurados para autenticarse al momento de conectarse.