Příspěvek pojednává o nejčastějších problémech NFS v Linuxu a o tom, jak je vyřešit.
1. Chyba:„Server neodpovídá“
Klient a server NFS (Network File System) komunikují prostřednictvím zpráv vzdáleného volání procedur (RPC) přes síť. Obě komunikační cesty hostitel->klient i klient->hostitel musí být funkční. Použijte běžné nástroje, jako je ping, traceroute nebo tracepath, abyste si ověřili, že se klientský a serverový počítač mohou navzájem spojit. Pokud ne, zkontrolujte nastavení síťové karty (NIC) pomocí ifconfig nebo ethtool a ověřte nastavení IP.
Systém souborů NFS také hlásí „server neodpovídá“, když velké zatížení serveru nebo sítě způsobí, že odpovědi na zprávy RPC vyprší. Použijte „timeo=N ” možnost připojení na klientovi pro prodloužení časového limitu. Další informace naleznete v části „man mount“.
2. Chyba:„Žádná trasa k hostiteli“
Chyba „žádná trasa k hostiteli“ může být hlášena, když se klient pokusí připojit systém souborů NFS, i když klient může úspěšně pingnout server:
# mount NFS-Server:/data /data_remote mount: mount to NFS server 'NFS-Server' failed: System Error: No route to host.
To může být způsobeno tím, že zprávy RPC jsou filtrovány buď bránou firewall hostitele, bránou firewall klienta nebo síťovým přepínačem. Ověřte, zda je aktivní brána firewall a zda je povolen provoz NFS. Normálně nfs používá port 2049. Pro rychlý test lze firewall vypnout:
# service iptables stop
jak na klientovi, tak na serveru. Zkuste znovu připojit adresář NFS. Nezapomeňte jej znovu zapnout a správně nakonfigurovat, aby umožňoval provoz NFS/
3. Chyba:„mount clntudp_create:RPC:Selhání mapovače portů – RPC:Nelze přijímat“
Implementace systému Linux NFS vyžaduje, aby služba NFS i služba mapování portů (RPC) běžely na klientovi i na serveru. Zkontrolujte to takto:
# 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.]
Pokud ne, spusťte jej pomocí níže uvedených příkazů.
# chkconfig portmap on # service portmap start
4. Chyba:„NFS Stale File Handle“
Program používá systémové volání open(2) pro přístup k souboru NFS stejným způsobem, jakým aplikace otevírá místní soubor. Toto systémové volání vrací deskriptor souboru neboli „handle“, který program následně používá v I/O příkazech k identifikaci souboru, se kterým se má manipulovat.
Na rozdíl od tradičních systémů souborů Linux, které aplikaci umožňují přístup k otevřenému souboru, i když byl soubor odstraněn pomocí unlink nebo rm, NFS tuto funkci nepodporuje. Soubor NFS je okamžitě odstraněn. Jakýkoli program, který se pokusí provést další I/O na smazaném souboru, obdrží chybu „NFS Stale File Handle“. Pokud je například vaším aktuálním pracovním adresářem adresář NFS a je smazán, zobrazí se tato chyba na další výzvě shellu.
Chcete-li obnovit stav klienta se stavem serveru, můžete násilně odpojit bod připojení:
# umount -f /mnt/mount_point
nebo ukončete proces, který odkazuje na připojený souborový systém:
# fuser -k [mounted-filesystem]
5. Chyba:„Přístup odepřen“ nebo „Povolení odepřeno“
Zkontrolujte oprávnění k exportu pro systém souborů NFS. Můžete to udělat z klienta:
# showmount -e server_name
nebo ze serveru:
# exportfs -a
Pokud uvidíte neočekávaná oprávnění k exportu, zkontrolujte soubor /etc/exports na serveru. Ujistěte se, že mezi povoleným hostitelem a oprávněními není žádná syntaktická chyba, jako je mezera. Podstatný rozdíl je v řádku:
/home *(ro)
a řádek:
/home * (ro)
protože druhý exportuje /home čtení-zápis do všech systémů:ne to, co bylo zamýšleno. Všimněte si, že řádek má stále správnou syntaxi, takže NFS si na něj nebude stěžovat.
6. Chyba:„export připojení rpc:RPC:vypršel časový limit“
Chybová zpráva:
Unable to access file system at [NFS SERVER]: rpc mount export: RPC: Timed out
To je způsobeno problémem s překladem názvu DNS. NFS(RPC) potřebuje zpětné rozlišení názvů. Pokud server NFS nebo klient nedokáže rozpoznat svůj název, dojde k této chybě. V případě, že se zobrazí chybová zpráva, zkontrolujte konfiguraci DNS a konfiguraci /etc/hosts.