NFSv4 - how to set up at FreeBSD 8.1 ?

Rick Macklem rmacklem at uoguelph.ca
Wed Jan 5 01:02:20 UTC 2011


> Hi,
> 
> so it slowly starts working:
> 
> nfs4-server# cat /etc/exports
> V4: /
> / -maproot=root -network 192.168.183.0 -mask 255.255.255.0
> nfs4-server#
> 
> nfs4-server# ps aux | grep mountd
> root 857 0.0 0.6 3348 1520 ?? Is 11:53PM 0:00.01
> /usr/sbin/mountd -e -r
> nfs4-server# ps aux | grep nfsd
> root 1303 0.0 0.5 3288 1324 ?? Is 12:04AM 0:00.03 nfsd: master
> (nfsd)
> root 1304 0.0 0.5 3288 1260 ?? S 12:04AM 0:00.02 nfsd: server
> (nfsd)
> nfs4-server#
> 
> 
> I am able to mount the root '/' from nfs4-server:
> 
> nfs4-client# mount_nfs -o nfsv4 192.168.183.131:/ /marek_nfs4/
> nfs4-client# ls /marek_nfs4/
> .cshrc cdrom home proc usr
> .profile compat lib rescue var
> .snap dev libexec root
> COPYRIGHT dist media sbin
> bin entropy mnt sys
> boot etc plik tmp
> nfs4-client# mount
> /dev/ad0s1a on / (ufs, local)
> devfs on /dev (devfs, local, multilabel)
> /dev/ad0s1e on /tmp (ufs, local, soft-updates)
> /dev/ad0s1f on /usr (ufs, local, soft-updates)
> /dev/ad0s1d on /var (ufs, local, soft-updates)
> 192.168.183.131:/ on /marek_nfs4 (newnfs)
> nfs4-client#
> 
> it works also on different partition:
> 
> nfs4-server# cat /etc/exports
> V4: /usr
> /usr/home -maproot=root -network 192.168.183.0 -mask 255.255.255.0
> nfs4-server#
> 
> 
> nfs4-client# mount_nfs -o nfsv4 192.168.183.131:/home /marek_nfs4/
> nfs4-client# ls /marek_nfs4/
> marek
> nfs4-client#
> 
> 
> What I noticed is that in 'V4: ' line we have to specify the mount
> point of
> the WHOLE partition we want to export
> 
Yes, the NFSv4 protocol does not use the mount protocol (mountd) and
only handles a single exported tree (with the root defined at the
location specified by the "V4:" line). The protocol has an Op called
Put Root File Handle, which sets the RPC to the location of the root
and then Lookup Ops traverse down from there.

Early in NFSv4 development, one of the authors said "NFSv4 is NFS in
name only" and that is fairly accurate, imho. For example, one of the
fundamental principals for NFSv2, 3 was a stateless server, whereas
NFSv4 uses a statefull server and does lock state recovery after a
server crash.

rick


More information about the freebsd-stable mailing list