Buyer Beware: A Major Change in NFS is about to happen

Steve Dickson SteveD at redhat.com
Wed Sep 30 02:45:58 UTC 2009


On 09/29/2009 09:42 PM, Chris Adams wrote:
> Once upon a time, Steve Dickson <SteveD at redhat.com> said:
>> On the server (Which is suggested):
>>    * Add the following entry to the /etc/exports file:
>>      / *(ro,fsid=0) Note: 'fsid=0' is explained in the exports(5) man pages.
> 
> The "suggested solution" is to change your NFS servers (that work just
> fine with other clients today) to export the root filesystem to
> everybody?
> 
Unfortunately the answer to your question yes... 

With version 4 there is this concept of a pseudo root. Which meanings
one can define, through exports, what the root of an export
can be. Which is a good idea because you can define /export as
the root, and nothing above /export can be accessed... 

So the idea was to use 'fsid=0' to define the V4 root of the
exports. Which, in theory is a good idea because you can define
the namespace the client have access to. A feature, I believe,
is not available in any other NFS implementation... But...  

The problem is the V4 protocol requires a pseudo root to exist. 
So with Linux servers, if the fsid=0 export does not exist, the
mount will die with ENOENT (or 'No such file or directory').

Other NFS implementation decided not to support a definable pseudo
roots and they just made, under the covers, their '/' as the pseudo 
root, along with the appropriate protections.

With F-12, I have added code to both the kernel and nfs-utils that will 
do both. Allow the 'fsid=0' export to define the pseudo root and 
make '/' the pseudo root (with the appropriate protections) when
there is not an fsid=0 entry.

So Yes, one work around to make F-12 mounts work with Linux servers is 
to define a pseudo root on the server with a fsid=0 export. But if
that is not an option, you can make the F12 clients only use V3 mount
(which would avoid the problem, but not take advantage of the
V4 protocol) by set either setting the '-o v3' mount option or 
set the Nfsvers=3 in the new /etc/nfsmount.conf file (which would make
all mounts from that machine v3 mounts).

I hope this helped...

steved.





More information about the fedora-devel-list mailing list