martes, enero 17, 2012

NFS, problemas habituales

NFS (Network file system) nos permite utilizar un directorio remoto como si estuviera en nuestra propia máquina.


Hay una parte servidora que es el que ofrece el directorio y una parte cliente que monta el directorio.


Preparación (esto es un ejemplo concreto):


Lo primero es instalar tanto en la parte servidora como en el cliente el paquete nfs-common:


#apt-get install nfs-common


En la parte servidora hay que instalar algo más:


#apt-get install nfs-kernel-server


En esta parte servidora estará el demonio NFS a la escucha de los puertos UDP y TCP número 2049.

Podemos ver si todo va bien en el servidor:


#rpcinfo -p


Un posible error puede ser este:
rpcinfo: no se puede comunicar con el asignador de puertos: RPC:

#cd /etc/init.d
# ./portmap stop
Parando portmap: [FALLA]


# ./portmap start
Iniciando portmap: [ OK ]


# rpcinfo -p

programa vers proto puerto
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper


Conviene también ver si el sistema admite un filesystem de tipo NFS:


#cat /proc/filesystems


(Buscar nfs).


Si no aparece tendremos que cargar el módulo NFS en el Kernel:


#modprobe nfs


Si todo ha ido bien, el demonio estará escuchando los puertos TCP y UDP 2049 y portmap esperará instrucciones en el puerto 111.


Ofrecer los directorios del servidor:


En el servidor, editamos el fichero /etc/exports e indicamos el directorio a exportar.


Por ejemplo:


/home/ficheros nombre-servidor(rw,sync)


Esto indica que vamos a ofrecer /home/ficheros al servidor llamado nombre-servidor con opción de lectura-escritura.


/home/fichero nombre-servidor(ro,sync)


Sólo permitiría la lectura (read only)


Después de modificar el fichero habría que reiniciar el demonio:


#/etc/init.d/nfs restart


Si sólo hemos modificado el fichero también se puede hacer:


#exportfs -ra


Montar los ficheros o directorios en el cliente:


Creamos un directorio donde vamos a montar los ficheros remotos:


#mkdir /prueba


Montamos los ficheros o directorios remotos:


mount servidor-remoto:/home/ficheros /prueba


Si hay problemas podemos indicarle explícitamente que es NFS y también la versión:


mount -t nfs -o nfsvers=3 servidor-remoto:/home/ficheros /prueba


Por último podemos si el servidor remoto está escuchando la peticiones NFS:


rpcinfo -p servidor-remoto


Otros posibles problemas:


El servidor remoto puede estar en otra red y no conocer la ruta hacia tu red.


Comprobarlo haciendo un


#route


El firewall del servidor remoto no permite la conexión:


Comprobarlo deshabilitandolo para la prueba:


#service iptables stop


Si esto funciona habría que habilitar el firewall añadiendo antes la regla correspondiente.


Hacer que el mount sea "permanente":


Opción peligrosa porque si por culpa del servidor NFS no consigue hacer el mount, pues puede que nuestro servidor cliente de NFS no arranque.


Si lo queremos hacer editamos el /etc/fsmount y añadimos:


servidor-remoto:/home/ficheros /prueba/ nfs defaults 0 0


No hay comentarios: