Note, this is a cross posting question in the QNAP NAS community here: http://forum.qnap.com/viewtopic.php?f=35&t=96526&p=427018#p427018
Any comments and suggestions, as well as pointers to relevant information pieces are very appreciated.
I cannot NFS mount from my NFS client running Ubuntu 14.04.1 (LTS) against my NFS server (QNAP NAS). My environment is:
- NFS Server: QNAP TS-669 Pro running firmware 4.1.0 (dated: 2014/06/12)
- NFS Client: ECS LIVA (a small barebone PC) running Ubuntu 14.04.1 LTS Desktop.
- The two systems are connected via 1000Base-T Ethernet and IP reacheable.
- Name resolution is done by local registry (/etc/hosts) and getent hosts host-name command returns the correct and consistent IP address on both nodes.
- NFS service is enabled on the NFS server and NO_LIMIT access right is given on the specific share folder, namely "/nfs", on the "NFS host access" tab of the "Shared Folders" configuration app: in fact, I can confirm it is world NFS exported via issueing the "exportfs -rva" command on NAS.
- Because Ubuntu (the NFS client) does not install NFS client packages by default, I explicitly installed the nfs-common package as described in here: Setting Up NFS HOW-TO ( https://help.ubuntu.com/community/SettingUpNFSHowTo#NFS_Client ); The rpcbind package seems to be installed by default.
On the NFS client, If I run the command "mount -t nfs nas:/nfs /mnt", it gives the output "mount.nfs: Connection timed out" after five or 10 minutes later. The same result is returned even if I specify NFS version 3 protocol with -overs=3 option while trying to NFS mount. Also the command "showmount -e" lists up the exported NFS shared folder (directory) names eventually, but it also takes five or 10minutes to complete.
On the NFS server, the "exportfs -rva" command returns the following warning message, but I do believe the message does not relate with the problem (I am accessing the NAS via SSH in this code exmple):
[~] # exportfs -rva
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/share/MD0_DATA/Public".
Assuming default behaviour ('no_subtree_check'). NOTE: this default has changed since nfs-utils version 1.0.x
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/share/MD0_DATA/nfs".
Assuming default behaviour ('no_subtree_check'). NOTE: this default has changed since nfs-utils version 1.0.x
exporting *:/share/MD0_DATA/nfs exporting *:/share/MD0_DATA/Public
On the NFS client, the mount command takes long time (more than five minutes) to complete. I specified the vers=3 option, because I understand QNAP does not support NFS V4 by default and NFS V3 suffices my requirement. It does not matter whether or not specifying the tcp and/or nolock options (same behavior).
root@livak5:~# mount -t nfs -vvv -overs=3,tcp,nolock nas:/share/MD0_DATA/nfs /mnt
mount: fstab path: "/etc/fstab"
mount: mtab path: "/etc/mtab"
mount: lock path: "/etc/mtab~"
mount: temp path: "/etc/mtab.tmp"
mount: UID: 0
mount: eUID: 0
mount: spec: "nas:/share/MD0_DATA/nfs"
mount: node: "/mnt"
mount: types: "nfs"
mount: opts: "vers=3,tcp,nolock"
mount: external mount: argv[0] = "/sbin/mount.nfs"
mount: external mount: argv[1] = "nas:/share/MD0_DATA/nfs"
mount: external mount: argv[2] = "/mnt"
mount: external mount: argv[3] = "-v"
mount: external mount: argv[4] = "-o"
mount: external mount: argv[5] = "rw,vers=3,tcp,nolock"
mount.nfs: timeout set for Sun Aug 24 11:24:44 2014
mount.nfs: trying text-based options 'vers=3,tcp,nolock,addr=192.168.11.50'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100005 vers 3 prot TCP port 41687
mount.nfs: mount(2): Connection timed out
mount.nfs: trying text-based options 'vers=3,tcp,nolock,addr=192.168.11.50'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100005 vers 3 prot TCP port 41687
mount.nfs: mount(2): Connection timed out
mount.nfs: trying text-based options 'vers=3,tcp,nolock,addr=192.168.11.50'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100005 vers 3 prot TCP port 41687
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out
On the NFS client, portmapper seeems working just fine against NFS version 2, 3, and 4:
root@livak5:~# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 57148 status
100024 1 tcp 52831 status
On the NFS server, I tried to check if the pormapper is runing on it from the NFS client, since it does not have the rpcinfo command installed:
root@livak5:~# nc -zv nas 111
Connection to nas 111 port [tcp/sunrpc] succeeded!
root@livak5:~# rpcinfo -s nas
program version(s) netid(s) service owner
100000 2,3,4 local,udp,tcp portmapper superuser
100011 2,1 tcp,udp rquotad superuser
100005 3,2,1 tcp,udp mountd superuser
100003 3,2 udp,tcp nfs superuser
100227 3,2 udp,tcp - superuser
100021 4,3,1 tcp,udp nlockmgr superuser
100024 1 tcp,udp status superuser
The later command (rpcinfo) takes long time (more than five minutes) to complete which replicates the problem root cause, I believe. Please note that on both the TCP ports, 2049 and 41687, appropriate daemon processes are listening on NAS. I can confirm this fact since the nc command returns instantly on the NFS client against NAS as shown in the following output:
root@livak5:~# nc -zv nas 2049
Connection to nas 2049 port [tcp/nfs] succeeded!
root@livak5:~# nc -zv nas 41687
Connection to nas 41687 port [tcp/*] succeeded!
Strangely enough, I can NFS version 3 mount on NAS itself as shown in the following output (I am accessing the NAS via SSH in this code exmple):
[~] # mkdir /mnt2
[~] # mount -overs=3 nas:/share/MD0_DATA/public /mnt2
[~] # df -k
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 154691 137854 16837 89% /
devtmpfs 1531580 4 1531576 0% /dev
tmpfs 65536 160 65376 0% /tmp
/dev/md9 521684 126312 395372 24% /mnt/HDA_ROOT
/dev/md0 11622485880 410664920 11211296672 4% /share/MD0_DATA
/dev/md13 379888 259868 120020 68% /mnt/ext
tmpfs 32768 0 32768 0% /.eaccelerator.tmp
nas:/share/MD0_DATA/public/11622485888 411189216 11211296672 4% /mnt2
Although it looks as if I have some sort of blocked ports problem on NFS Client, but it seems Ubuntu 14.04.1 does not enable ufw (uncomplicated firewall, it is actually a front-end to iptables) by default as shown in the following wiki document: Uncomplicated Firewall (somehow, I cannot put the wiki URL in here). I can confirm nothing blocked on it by running command on the NFS client:
root@livak5:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination