Here is one issue I am running into when setting up a new NFS server to share 
several zfs file systems.

I created following zfs file system from a zfs pool called bigpool. The bigpool 
is the top level file system and mounted as /export/bigpool.

file system                   mount point

bigpool                         /export/bigpool
bigpool/zfs1                  /export/bigpool/zfs1
bigpool/zfs2                  /export/bigpool/zfs2

All directories under /export are owned by a group called users. Also group 
users have write access to them.

Next,  I exported bigpool (zfs1 and zfs2 inherited from bigpool) as NFS share.

zfs set sharenfs=on bigpool

On a Linux client, I can mounte all shares directly without problem. If I 
mounted /export/bigpool to /mnt/nfs_share on the Linux client. The ownership 
and permissions
on /mnt/nfs_share match to /export/bigpool on the nfs server.

However, permissions on /mnt/nfs_share/zfs1 or /mnt/nfs_share/zfs2 are not 
inherited correctly. The group ownership is switched to root on 
/mnt/nfs_share/zfs1,zfs2 and write permission is removed. I expect 
/mnt/nfs_share/zfs1 should match /export/bigpool/zfs1, so does for zfs2. Why 
ownership and permissions do not get inherited?

When I directly mount /export/bigpool/zfs1 to /mnt/nfs_share/zfs1, then 
ownership and permissions match again. 

Since with ZFS, creating and using multiple file systems are recommended 
practice, does it mean that it will be lots of more trouble in managing NFS 
shares on the system? Is there a way to only export top level file system and 
let all permissions and ownership flow down correctly on client side? Or maybe 
there are some special settings out there to solve my problem?

Any help is appreciated.

Simon
 
 
This message posted from opensolaris.org

Reply via email to