Centos – nfs problems: shares appear to be the wrong size. files created on share not visible on server

centosnfs

I have set up shares on an NFS server. I can mount the shares with no error. The share sizes reported by "df" are much smaller than the share size on the server eg. server reports 1 TB but the share looks like 3.8 G from the clients. I can create a test file on the nfs share from a client, and this test file is visible from all clients, but when I go to the shared directory on the server, the file is not there. Similarly, files that pre-exist on the server, are not visible to any clients. On the server, I ran the command "updatedb" and searched for the newly created test file; however, it is not found anywhere on the server. So, I am accessing some share, and I can create files on the share from the client, but can't see these files anywhere on the server. I see no significant nfs related errors in /var/log/messages. The server is CentOS 5.8. The clients are CentOS 6.4. Iptables is turned off on both server and clients for testing.

I don't see any issues with name resolution or DNS.

server:

[root@vmappp04 /]# cat /etc/exports
/data       192.168.1.0/24(fsid=0,rw,sync,no_root_squash)

[root@vmappp04 /]# rpm -qa |grep nfs-utils
nfs-utils-1.0.9-66.el5
nfs-utils-lib-1.0.8-7.9.el5
nfs-utils-lib-1.0.8-7.9.el5

[root@vmappp04 /]# rpm -qa |grep nfs4-acl-tools
nfs4-acl-tools-0.3.3-3.el5

[root@vmappp04 /]# rpm -qa |grep portmap
portmap-4.0-65.2.2.1

There is no hosts.allow or hosts.deny file existing on the server.

client:

cat /etc/fstab
vmappp04:/  /data/filer_01  nfs4    noauto,defaults 0 0 

[root@vmappp11 ~]# rpm -qa |grep nfs-utils
nfs-utils-lib-1.1.5-6.el6.x86_64
nfs-utils-1.2.3-36.el6.x86_64

[root@vmappp11 ~]# rpm -qa |grep nfs4-acl-tools
nfs4-acl-tools-0.3.3-6.el6.x86_64

portmap is not installed on clients

output from mount command on client appears correct:

[root@vmappp11 ~]# showmount -e vmappp04
vmappp04:/ on /data/filer_01 type nfs4 (rw,addr=192.168.1.16,clientaddr=192.168.1.84)

Export list for vmappp04:

[root@vmappp11 ~]# showmount -d vmappp04
/data 192.168.1.0/24

Directories on vmappp04:

[root@vmappp11 ~]# showmount -a vmappp04

All mount points on vmappp04:

[root@vmappp11 ~]# showmount -a 192.168.1.16

All mount points on 192.168.1.16:

I've tried all kinds of permutations on the server and client side. Unsure how to proceed, please advise; much obliged for any assistance.

Best Answer

It was not clear to me what the hierarchies of mounted filesystems were on your server and clients, but you have to be careful about mounting directories and subdirectories, and when+where they are mounted. It looks to me like you are mounting things incorrectly.

Mounting to a subdirectory or parent directory will yield the type of results you are seeing. It's possible you are saving files "under" a mount point on the server. For example if /data is mounted to a disk, the files you are saving via the clients are going to the /data that exists "before" /data is mounted, i.e. on /. Is the / on the server 3.8 G?

You will not want to mount subdirectories of mount points, because they are handled differently. You should export each directory you want to mount separately.

Also, based on that fstab you appear to be mounting vmappp04:/ not vmappp04:/data - that will cause this too.