From Fedora Project Wiki
(first draft (editing))
 
(removed troubleshooting)
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Sharing files with NFSv4 on Fedora 7 (Server -> Multi) =
= Sharing files with NFSv4 on Fedora 12 (Server & Client configuration) =
 
{{TOClimit|3}}


== Description ==
== 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.
This HowTo explains how to set up the <code>Network File System version 4</code> on your ''LAN'' for multiple shares. It explains, also, how to mount the <code>exports</code> on your ''client''.


== Applicable to Fedora Versions ==
== Applicable to Fedora Versions ==
Fedora Core 6+
* Fedora 12
Fedora 7


== Requirements ==
== Requirements ==
Everything comes preinstalled on an "out-of-the-box" installation of Fedora Core. The following are only services.
The <code>nfs-utils</code> 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 <code>root</code> password when prompted:
 
<pre>su -c "yum install nfs-utils"</pre>
 
The following are only services.


=== Server requirements ===
=== Server requirements ===
nfs
* <code>nfs</code>
rpc.idmapd
* <code>rpc2</code>


=== These are the client's requirements ===
=== These are the client's requirements ===
nfs
* <code>nfs</code>
nfslock
* <code>nfslock</code>
rpc.idmapd
* <code>rpc2</code>
 
'''Note''': The rpc.nfsd and rpc.rquotad services that are needed are started by the nfs service. Most of them don't need user configuration. rpc.lockd, rpc.statd and rpc.mountd are not used by NFSv4.


{{admon/note|The rpc.nfsd and rpc.rquotad services that are needed are started by the nfs service. Most of them don't need user configuration. rpc.lockd, rpc.statd and rpc.mountd are not used by NFSv4.}}


== Doing the Work ==
== Doing the Work ==
Line 27: Line 31:
=== Configuring the server ===
=== Configuring the server ===


Open up the necessary port on the firewall (port: 2049). Activate the "Security Level and Firewall" tool. You will be asked for your root password. Please enter it:
* Open up the necessary ''port'' on the ''firewall'' (<code>port: 2049</code>). Activate the ''Firewall'' tool. You will be asked for your <code>root</code> password. Please enter it:
su -c "system-config-securitylevel"
<pre>su -c "system-config-firewall"</pre>
Activate "NFS4" and click "OK".
 
Edit /etc/idmapd.conf. Enter your root password when prompted:
* Activate <code>NFS4</code> and click ''OK''.
su -c "gedit /etc/idmapd.conf"
 
Configure your domain name and change the users to nfsnobody:
* Edit <code>/etc/idmapd.conf</code>. Enter your <code>root</code> password when prompted:
<pre>su -c "gedit /etc/idmapd.conf"</pre>
 
* Configure your ''domain'' name and change the users to <code>nfsnobody</code>:
<pre>
[General]
[General]
Domain = example.com
Domain = example.com
Line 39: Line 47:
Nobody-User = nfsnobody
Nobody-User = nfsnobody
Nobody-Group = nfsnobody
Nobody-Group = nfsnobody
Start the rpcidmapd and nfslock services, then start the nfs service. Alternatively, you can use System->Administration->Services or System->Administration->Server Settings->Services GUIs. Please enter the root password when prompted:
</pre>
su -c "/sbin/service rpcidmapd start"
 
su -c "/sbin/service nfslock start"
* Start the <code>rpcidmapd</code> and <code>nfslock</code> services, then start the <code>nfs</code> service. Alternatively, you can use ''System->Administration->Services'' GUI. Please enter the <code>root</code> password when prompted:
su -c "/sbin/service nfs start"
<pre>
Set rpcidmapd, nfslock, and nfs services to start on boot.Alternatively, you can use System->Administration->Services or System->Administration->Server Settings->Services GUIs. Please enter the root password when prompted:
su -c "service rpcidmapd start"
su -c "/sbin/chkconfig --level 345 rpcidmapd on"
su -c "service nfslock start"
su -c "/sbin/chkconfig --level 345 nfslock on"
su -c "service nfs start"
su -c "/sbin/chkconfig --level 345 nfs on"
</pre>
Create the dirs of the exports inside "/nfs4exports". Enter your root password when prompted:
 
su -c "mkdir -p /nfs4exports/{share1,share2,share3}"
* Set <code>rpcidmapd</code>, <code>nfslock</code>, and <code>nfs</code> services to start on boot. Alternatively, you can use ''System->Administration->Services'' GUI. Please enter the <code>root</code> password when prompted:
Edit /etc/fstab:
<pre>
su -c "gedit /etc/fstab"
su -c "chkconfig --level 345 rpcidmapd on"
Bind the desired shares to the, recently created, dirs at /nfs4exports:
su -c "chkconfig --level 345 nfslock on"
su -c "chkconfig --level 345 nfs on"
</pre>
 
* Create the directories of the exports inside <code>/nfs4exports</code>. Enter your <code>root</code> password when prompted:
<pre>su -c "mkdir -p /nfs4exports/{share1,share2,share3}"</pre>
 
* Edit <code>/etc/fstab</code>:
<pre>su -c "gedit /etc/fstab"</pre>
 
* ''Bind'' the desired ''shares'' to the, recently created, directories; at <code>/nfs4exports</code>:
<pre>
/path/to/share1 /nfs4exports/share1 none bind 0 0
/path/to/share1 /nfs4exports/share1 none bind 0 0
/path/to/share2 /nfs4exports/share2 none bind 0 0
/path/to/share2 /nfs4exports/share2 none bind 0 0
/path/to/share3 /nfs4exports/share3 none bind 0 0
/path/to/share3 /nfs4exports/share3 none bind 0 0
Remount everything. Enter your root password when prompted:
</pre>
su -c "mount -a"
 
Edit /etc/exports. Enter your root password when prompted:
* ''Remount'' everything. Enter your <code>root</code> password when prompted:
su -c "gedit /etc/exports"
<pre>su -c "mount -a"</pre>
Add your shares here (available to your home network) If you want your shares to be read only, change "rw" to "ro" from these statements:
 
* Edit <code>/etc/exports</code>. Enter your <code>root</code> password when prompted:
<pre>su -c "gedit /etc/exports"</pre>
 
* Add your shares here (available to your home network) If you want your shares to be ''read only'', change <code>rw</code> to <code>ro</code> from these statements:
<pre>
/nfs4exports 192.168.1.0/255.255.255.0(rw,insecure,no_subtree_check,nohide,fsid=0)
/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/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/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)
/nfs4exports/share3            192.168.1.0/255.255.255.0(rw,insecure,no_subtree_check,nohide)
Reload your exports. Please enter your root password when prompted:
</pre>
su -c "/usr/sbin/exportfs -rv"
Edit your /etc/hosts.allow file, so your clients are allowed to access your nfs. Please enter your root password when prompted:
su -c "gedit /etc/hosts.allow"
Allow your LAN to access your services:
ALL: 192.168.1.0/255.255.255.0
Reboot:
su -c "/sbin/shutdown -r now"
Configuring the clients:


Edit /etc/idmapd.conf. Enter your root password when prompted:
* Reload your exports. Please enter your <code>root</code> password when prompted:
su -c "gedit /etc/idmapd.conf"
<pre>su -c "/usr/sbin/exportfs -rv"</pre>
Configure your domain name and change the users to nfsnobody:
 
* Edit your <code>/etc/hosts.allow</code> file, so your clients are allowed to access your nfs. Please enter your <code>root</code> password when prompted:
<pre>su -c "gedit /etc/hosts.allow"</pre>
 
* Allow your LAN to access your services:
<pre>rpcbind: 192.168.1.0/255.255.255.0</pre>
 
* <code>Reboot</code>:
<pre>su -c "/sbin/shutdown -r now"</pre>
 
=== Configuring the clients ===
* Edit <code>/etc/idmapd.conf</code>. Enter your <code>root</code> password when prompted:
<pre>su -c "gedit /etc/idmapd.conf"</pre>
 
* Configure your domain name and change the users to <code>nfsnobody</code>:
<pre>
[General]
[General]
Domain = example.com
Domain = example.com
Line 83: Line 114:
Nobody-User = nfsnobody
Nobody-User = nfsnobody
Nobody-Group = nfsnobody
Nobody-Group = nfsnobody
Edit /etc/fstab. Please enter your root password when prompted:
</pre>
su -c "gedit /etc/fstab"
 
Create the mounting dirs:
* Edit <code>/etc/fstab</code>. Please enter your <code>root</code> password when prompted:
su -c "mkdir /mnt/shares /home/me/share1 /home/he/share2 /home/it/share3"
<pre>su -c "gedit /etc/fstab"</pre>
Add the desired shares:
 
<ip-address-to-server>:/ /mnt/shares nfs4 rsize=8192,wsize=8192,timeo=14,intr
* Create the mounting directories:
<ip-address-to-server>:/ /home/me/share1 nfs4 rsize=8192,wsize=8192,timeo=14,intr
<pre>su -c "mkdir /mnt/shares /home/me/share1 /home/he/share2 /home/it/share3"</pre>
<ip-address-to-server>:/ /home/he/share2 nfs4 rsize=8192,wsize=8192,timeo=14,intr
 
<ip-address-to-server>:/ /home/it/share3 nfs4 rsize=8192,wsize=8192,timeo=14,intr
* Add the desired shares:
Remount everything:
<pre>
su -c "mount -a"
<ip-address-to-server>:/ /mnt/shares nfs4 rsize=8192,wsize=8192,timeo=14,soft
Troubleshooting
<ip-address-to-server>:/share1 /home/me/share1 nfs4 rsize=8192,wsize=8192,timeo=14,soft
How to test
<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
</pre>
 
* Remount everything:
<pre>su -c "mount -a"</pre>
 
== How to test ==
Next time...
Next time...
Common problems and fixes
 
Later...
== Common problems and fixes ==
More Information
 
=== Exported subdirectory appears empty ===
 
If <code>/nfs4exports/share1</code> appears empty on the client make sure it's exported with the <code>nohide</code> parameter. Because <code>/nfs4exports/share1</code> was mounted under <code>/nfs4exports</code>, the client can't see it unless the <code>nohide</code> 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.
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 te 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.


Added Reading
== Disclaimer ==
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Network_Related_Configuration/ch-nfs.html
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 [irc://irc.freenode.net/fedora #fedora on irc.freenode.net] or leave me messages so I know what's up. Feel free to propose changes and stuff.
http://www.brennan.id.au/19-Network_File_System.html
 
== Added Reading ==
* http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.4/html/Deployment_Guide/ch-nfs.html
* http://www.brennan.id.au/19-Network_File_System.html
 
[[Category: How_to]]

Revision as of 08:58, 3 June 2011

Sharing files with NFSv4 on Fedora 12 (Server & Client configuration)

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
Note.png
The rpc.nfsd and rpc.rquotad services that are needed are started by the nfs service. Most of them don't need user configuration. rpc.lockd, rpc.statd and rpc.mountd are not used by NFSv4.

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 your root password. Please enter it:
su -c "system-config-firewall"
  • Activate NFS4 and click OK.
  • Edit /etc/idmapd.conf. Enter your root password 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 rpcidmapd and nfslock services, then start the nfs service. Alternatively, you can use System->Administration->Services GUI. Please enter the root password when prompted:
su -c "service rpcidmapd start"
su -c "service nfslock start"
su -c "service nfs start"
  • Set rpcidmapd, nfslock, and nfs services to start on boot. Alternatively, you can use System->Administration->Services GUI. Please enter the root password 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 your root password 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 root password when prompted:
su -c "mount -a"
  • Edit /etc/exports. Enter your root password 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 rw to ro from 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 root password when prompted:
su -c "/usr/sbin/exportfs -rv"
  • Edit your /etc/hosts.allow file, so your clients are allowed to access your nfs. Please enter your root password 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 your root password 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 your root password 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.

Added Reading