User:Renich/HowTo/NFSv4
From FedoraProject
Sharing files with NFSv4 on Fedora 12 (Server & Client configuration)
Contents |
Description
This HowTo explains how to set up the Network File System version 4 on your LAN for multiple shares. It explains, also, how to mount the exports on your client.
Applicable to Fedora Versions
- Fedora 12
Requirements
The nfs-utils package provides what's need for both then client and the server. Usually, it comes preinstalled on an "out-of-the-box" installation of Fedora. However, to make sure it's installed run the following command. Enter your root password when prompted:
su -c "yum install nfs-utils"
The following are only services.
Server requirements
-
nfs -
rpc2
These are the client's requirements
-
nfs -
nfslock -
rpc2
Doing the Work
Configuring the server
- Open up the necessary port on the firewall (
port: 2049). Activate the Firewall tool. You will be asked for yourrootpassword. Please enter it:
su -c "system-config-firewall"
- Activate
NFS4and click OK.
- Edit
/etc/idmapd.conf. Enter yourrootpassword when prompted:
su -c "gedit /etc/idmapd.conf"
- Configure your domain name and change the users to
nfsnobody:
[General] Domain = example.com [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody
- Start the
rpcidmapdandnfslockservices, then start thenfsservice. Alternatively, you can use System->Administration->Services GUI. Please enter therootpassword when prompted:
su -c "service rpcidmapd start" su -c "service nfslock start" su -c "service nfs start"
- Set
rpcidmapd,nfslock, andnfsservices to start on boot. Alternatively, you can use System->Administration->Services GUI. Please enter therootpassword when prompted:
su -c "chkconfig --level 345 rpcidmapd on" su -c "chkconfig --level 345 nfslock on" su -c "chkconfig --level 345 nfs on"
- Create the directories of the exports inside
/nfs4exports. Enter yourrootpassword when prompted:
su -c "mkdir -p /nfs4exports/{share1,share2,share3}"
- Edit
/etc/fstab:
su -c "gedit /etc/fstab"
- Bind the desired shares to the, recently created, directories; at
/nfs4exports:
/path/to/share1 /nfs4exports/share1 none bind 0 0 /path/to/share2 /nfs4exports/share2 none bind 0 0 /path/to/share3 /nfs4exports/share3 none bind 0 0
- Remount everything. Enter your
rootpassword when prompted:
su -c "mount -a"
- Edit
/etc/exports. Enter yourrootpassword when prompted:
su -c "gedit /etc/exports"
- Add your shares here (available to your home network) If you want your shares to be read only, change
rwtorofrom these statements:
/nfs4exports 192.168.1.0/255.255.255.0(rw,insecure,no_subtree_check,nohide,fsid=0) /nfs4exports/share1 192.168.1.0/255.255.255.0(rw,insecure,no_subtree_check,nohide) /nfs4exports/share2 192.168.1.0/255.255.255.0(rw,insecure,no_subtree_check,nohide) /nfs4exports/share3 192.168.1.0/255.255.255.0(rw,insecure,no_subtree_check,nohide)
- Reload your exports. Please enter your
rootpassword when prompted:
su -c "/usr/sbin/exportfs -rv"
- Edit your
/etc/hosts.allowfile, so your clients are allowed to access your nfs. Please enter yourrootpassword when prompted:
su -c "gedit /etc/hosts.allow"
- Allow your LAN to access your services:
rpcbind: 192.168.1.0/255.255.255.0
-
Reboot:
su -c "/sbin/shutdown -r now"
Configuring the clients
- Edit
/etc/idmapd.conf. Enter yourrootpassword when prompted:
su -c "gedit /etc/idmapd.conf"
- Configure your domain name and change the users to
nfsnobody:
[General] Domain = example.com [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody
- Edit
/etc/fstab. Please enter yourrootpassword when prompted:
su -c "gedit /etc/fstab"
- Create the mounting directories:
su -c "mkdir /mnt/shares /home/me/share1 /home/he/share2 /home/it/share3"
- Add the desired shares:
<ip-address-to-server>:/ /mnt/shares nfs4 rsize=8192,wsize=8192,timeo=14,soft <ip-address-to-server>:/share1 /home/me/share1 nfs4 rsize=8192,wsize=8192,timeo=14,soft <ip-address-to-server>:/share2 /home/he/share2 nfs4 rsize=8192,wsize=8192,timeo=14,soft <ip-address-to-server>:/share3 /home/it/share3 nfs4 rsize=8192,wsize=8192,timeo=14,soft
- Remount everything:
su -c "mount -a"
How to test
Next time...
Common problems and fixes
Exported subdirectory appears empty
If /nfs4exports/share1 appears empty on the client make sure it's exported with the nohide parameter. Because /nfs4exports/share1 was mounted under /nfs4exports, the client can't see it unless the nohide parameter is used.
More Information
RedHat recommends, on RHEL5 Docs, that one should use automount instead of /etc/fstab; which saves resources when sharing to multiple workstations. I haven't had the time to try this configuration. This document will be modified/augmented once I've got the hang of it.
Disclaimer
I haven't had the opportunity to test this HowTo since I lack of a networked PC to do it, so you may run into problems, if you do, come to #fedora on irc.freenode.net or leave me messages so I know what's up. Feel free to propose changes and stuff.