Il post discute i problemi NFS più comuni in Linux e come risolverli.
1. Errore:"Il server non risponde"
Il client e il server NFS (Network File System) comunicano tramite messaggi RPC (Remote Procedure Call) sulla rete. Entrambi i percorsi di comunicazione host->client e client->host devono essere funzionanti. Utilizzare strumenti comuni come ping, traceroute o tracepath per verificare che le macchine client e server possano raggiungersi. In caso contrario, esaminare le impostazioni della scheda di interfaccia di rete (NIC) utilizzando ifconfig o ethtool per verificare le impostazioni IP.
Il file system NFS segnala anche "il server non risponde" quando un server o un carico di rete pesanti causano il timeout delle risposte ai messaggi RPC. Utilizza "timeo=N ” opzione di montaggio sul client per aumentare il timeout. Controlla "man mount" per ulteriori informazioni.
2. Errore:"Nessun percorso verso l'host"
L'errore "nessun percorso verso l'host" può essere segnalato quando il client tenta di montare un file system NFS, anche se il client può eseguire correttamente il ping del server:
# mount NFS-Server:/data /data_remote mount: mount to NFS server 'NFS-Server' failed: System Error: No route to host.
Ciò può essere causato dal filtraggio dei messaggi RPC dal firewall host, dal firewall client o da uno switch di rete. Verifica se un firewall è attivo e se il traffico NFS è consentito. Normalmente nfs utilizza la porta 2049. Come test rapido è possibile disattivare il firewall:
# service iptables stop
sia sul client che sul server. Prova a montare di nuovo la directory NFS. Non dimenticare di riaccenderlo e configurarlo correttamente per consentire il traffico NFS/
3. Errore:"mount clntudp_create:RPC:errore del port mapper – RPC:impossibile ricevere"
L'implementazione NFS di Linux richiede che sia il servizio NFS che il servizio portmapper (RPC) siano in esecuzione sia sul client che sul server. Controllalo in questo modo:
# rpcinfo -p program vers proto port 100000 2 tcp 111 portmapper [portmap service is started.] 100000 2 udp 111 portmapper 100011 1 udp 881 rquotad 100011 2 udp 881 rquotad ...
# service portmap status portmap (pid 7428) is running... [portmap service is started.]
In caso contrario, avvialo con i comandi forniti di seguito.
# chkconfig portmap on # service portmap start
4. Errore:"Gestione file non aggiornato NFS"
Un programma utilizza la chiamata di sistema open(2) per accedere a un file NFS nello stesso modo in cui l'applicazione apre un file locale. Questa chiamata di sistema restituisce un descrittore di file, o "handle", che il programma utilizza successivamente nei comandi di I/O per identificare il file da manipolare.
A differenza dei tradizionali file system Linux che consentono a un'applicazione di accedere a un file aperto anche se il file è stato eliminato utilizzando unlink o rm, NFS non supporta questa funzione. Un file NFS viene eliminato immediatamente. Qualsiasi programma che tenti di eseguire ulteriori operazioni di I/O sul file eliminato riceverà l'errore "Gestione file non aggiornato NFS". Ad esempio, se la tua directory di lavoro corrente è una directory NFS ed è stata eliminata, vedrai questo errore al prossimo prompt della shell.
Per aggiornare lo stato del client con quello del server è possibile smontare forzatamente il punto di montaggio:
# umount -f /mnt/mount_point
o terminare il processo, che fa riferimento al file system montato:
# fuser -k [mounted-filesystem]
5. Errore:"Accesso negato" o "Autorizzazione negata"
Verificare le autorizzazioni di esportazione per il file system NFS. Puoi farlo dal client:
# showmount -e server_name
o dal server:
# exportfs -a
Se vedi autorizzazioni di esportazione impreviste, controlla il file /etc/exports sul server. Assicurati che non ci siano errori di sintassi come spazio tra l'host consentito e le autorizzazioni. C'è una differenza significativa nella linea:
/home *(ro)
e la linea:
/home * (ro)
perché il secondo esporta /home read-write a tutti i sistemi:non quello che era previsto. Nota che la riga ha ancora la sintassi corretta, quindi NFS non se ne lamenterà.
6. Errore:"esportazione montaggio RPC:RPC:timeout"
Messaggio di errore:
Unable to access file system at [NFS SERVER]: rpc mount export: RPC: Timed out
Ciò è causato dal problema di risoluzione dei nomi DNS. NFS(RPC) necessita di una risoluzione dei nomi inversa. Se il server o il client NFS non è in grado di risolvere il proprio nome, si verifica questo errore. Nel caso venga visualizzato il messaggio di errore, controlla la configurazione del DNS e la configurazione di /etc/hosts.