| Cómo compartir archivos en Linux mediante NFS |
|
|
|
|
El NFS o Network File System es un sistema de archivos virtual que permite que una máquina UNIX conectada a una red pueda montar un sistema de archivos de otra máquina e interactuar sobre él como si fuera propio. De esta manera, constituye un medio de compartición de archivos totalmente transparente para el usuario de la máquina cliente.
NFS no es en realidad un sistema de archivos físico, sino una capa de abstracción del sistema de archivos real (ext2, UFS, FFS, etc...) que permite el montaje de éste remotamente. Por ejemplo, si nuestro servidor es una máquina Linux que exporta por NFS un directorio llamado, pongamos, /usr/export cuyo sistema de archivos es ext3, y tenemos un cliente FreeBSD que quiere montar de manera remota ese directorio como /mnt/external, no será necesario que nuestro FreeBSD tenga soporte para ext3, sino que simplemente lo tenga para ser cliente NFS.
![]() ¿Para qué necesito NFS?
Los posibles escenarios en los que la compartición de directorios mediante NFS se podría aplicar son casi infinitos. Veamos algunos ejemplos típicos:
En este artículo nos centraremos en el siguiente supuesto: Tenemos una máquina, llamada sinope, con NetBSD, a la que deseamos recompilar el kernel. Dado que sinope es una máquina muy antigua con un disco duro de sólo 200 megabytes, de los cuales sólo nos restan libres 30, no tenemos espacio en nuestro disco duro para poder descomprimir el código fuente del kernel de NetBSD. Pero tenemos también, conectada a la misma red que sinope, a una máquina Linux llamada europa, que tiene espacio de sobra en su disco duro y que posee en su kernel la capacidad de ser servidor NFS. Dado que en la máquina NetBSD, el código fuente del kernel deberá quedar instalado en el directorio /usr/src/sys, y que el directorio de europa donde descomprimiremos dichas fuentes será /usr/export/sinope/sys, tendremos que realizar el montaje que se puede ver en el siguiente diagrama: ![]() Configuración del servidor.
Lo primero que tendremos que hacer para europa pueda exportar su directorio /usr/export/sinope/sys será configurar ese directorio como exportable por NFS. Esto lo haremos en el archivo /etc/exports, en el que cada línea configura un directorio exportable (ver man exports), añadiendo una línea como la siguiente:
Veamos lo que significa esta línea:
Especificando los clientes autorizados Para especificar las máquinas autorizadas a montar un directorio de nuestro servidor existen varias posibilidades:
Todas estas opciones podrían combinarse, especificando varios host o grupos de hosts separándolos por espacios. Opciones para cada cliente autorizado Para cada host o grupo de hosts que se especifique, se pueden declarar (entre paréntesis, como ya se ha visto) varias opciones. Veamos algunas de las más importantes (en negrita las opciones por defecto):
Mención aparte merecen las opciones referidas al tratamiento de los usuarios que acceden a los directorios exportados:
En el caso de que se utilice alguna de las opciones de squash, se puede modificar el uid y gid del usuario anónimo para que en vez de nobody sea cualquiera que nosotros deseemos con las opciones anonuid y anongid, por ejemplo:
Puesta en marcha del servidor
Una vez hayamos configurado nuestro servidor, será necesario ponerlo en marcha. La forma en que haremos esto diferirá dependiendo de la distribución que usemos. Si usamos Red Hat Linux, sólo tendremos que ejecutar como root:
Con la primera orden arrancamos el servidor portmap que se encarga de llevar cuenta de los servicios RPC que tenemos arrancados (uno de ellos será NFS). Con la segunda orden, arrancamos el servidor nfsd. Para pararlo, tendremos que hacer:
Podemos hacer que el servidor NFS arranque cada vez que iniciamos el sistema marcándolo como servicio de inicio en la herramienta gráfica de configuración serviceconf. Con esta herramienta también podríamos haber arrancado los servicios en vez de usar la línea de comandos, si hubiésemos querido. En caso de que nuestra distribución no sea Red Hat, es muy probable que en el directorio /etc/init.d o /etc/rc.d/init.d encontremos scripts ya preparados para iniciar tanto portmap como nfsd. Montaje del sistema de archivos desde el cliente
Una vez tenemos el servidor listo y funcionando, el montaje del sistema de archivos exportado desde el cliente es muy sencillo. Basta con ejecutar como root la orden mount con los parámetros adecuados y especificando que el tipo de sistema de archivos es nfs. En nuestro caso, desde sinope ejecutaremos:
...y ya está. Podremos usar el directorio /usr/src/sys en nuestro cliente sin problemas y sin que nuestros programas se den cuenta de que no está en el disco duro local. Un artículo de: Daniel Fernández Garrido ext2 nfs ufs ffs reiserfs linux ext3 >> NFS nfs servidor NFS |
|||||||
| < Anterior | Próximo > |
|---|



