分类:
2009-08-19 14:30:12
Solaris NFSv4 client mount from a Linux Server:
Since there had been some confusion over a Solaris Client failing to mount from a Linux based server (there may be a couple of issues you may bump into) -- I thought i'd share some hints and things to look at..
First, of course, your mount may fail because the item you wish to mount has not been exported from the server; using showmount -e
You may see a permission denied message, and if you are using snv_22 to snv_24 bits that could be due to the client using a non-reserved port. A couple of things can be done to over come that problem;
/foop *(rw,nohide,insecure,no_root_squash,sync)
see this to do that!
You may also see a problem with no such file or directory (ENOENT).
The linux NFS server implements the NFSv4 pseudo filesystem (pFS) as a separate namespace to that of the server, and hence NFSv2/v3 (since in v2/v3 we expose the servers native namespace). The root of the pFS namespace is designated in the exports file via the fsid=0 option.
So for example lets say you have some data that you'd like to share in the following directories:-
/export/proj; /export/archive; /export/www; /export/temp.
An example /etc/exports file might look like this :-
/export/proj *.dev.dot.com(rw,insecure,sync)
/export/archive *(ro,insecure,sync)
/export/www @www(rw,insecure,sync)
/export/temp *(rw,insecure,sync)
Mounting using NFSv3 our mount command would look like this :-
# mount -o vers=3 linux_server:/export/proj /proj
This will work fine for v2/v3 mounts but fail for NFSv4. The pFS is customizable by the sysadmin allowing the flexibility to present a different namespace; for our example we may choose to specify that the root for the pFS be /export; Adding the following line to /etc/exports will allow us to do that :-
/export *(rw,fsid=0,insecure,no_root_squash,sync)
In doing this we are now presenting the pFS namespace to NFSv4 Clients as :-
/proj
/archive
/www
/temp
and as such we will need to alter the mount command on the NFSv4 Client:
# mount -o vers=4 linux_server:/proj /proj