Learn how to configure the network file system (NFS) in Linux and HPUX servers. Howto export NFS, start/stop NFS services, and control access on it.
The network file system is one of the essential things in today’s IT infrastructure. One server’s file system can be exported as NFS over network and control access over it. Other servers can mount these exported mount points locally as an NFS mount. This enables the same file system making available to many systems thus many users. Let’s see NFS configurations in Linux and HPUX.
NFS Configuration file in Linux
We assume the NFS daemon is installed on a server and running in the background. If not check package installation steps and how to start service on Linux. One can check if NFS is running on the server with service
or ps -ef
command. For NFS server i.e. server exporting directory should have portmap service running.
Make sure you have TCP and UDP port 2049, 111 on firewalls between client and server. It can be in OS firewall, iptables, network firewalls, or security groups in the cloud.
root@kerneltalks # ps -ef |grep -i nfs
root 1904 2 0 2015 ? 00:00:08 [nfsd4]
root 1905 2 0 2015 ? 00:00:00 [nfsd4_callbacks]
root 1906 2 0 2015 ? 00:01:33 [nfsd]
root 1907 2 0 2015 ? 00:01:32 [nfsd]
root 1908 2 0 2015 ? 00:01:33 [nfsd]
root 1909 2 0 2015 ? 00:01:37 [nfsd]
root 1910 2 0 2015 ? 00:01:24 [nfsd]
root@kerneltalks # service nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 1897) is running...
nfsd (pid 1913 1912 1911 1910 1909 1908 1907 1906) is running...
rpc.rquotad (pid 1892) is running...
root@kerneltalks # rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
----- output clipped -----
/etc/exports
is the configuration file which has all exported volume details along with their respective permissions. /etc/exports
follows the format as below :
<export> <host> (options)
where –
- export is filesystem/directory to be exported
- the host is hostname/IP to which export is accessible where wile cards are acceptable
- options are permissions which are
ro
,rw
,sync
,async
.
Refer below chart which can be used to decide your entry in this file.
NFS config file parameters
| |
/my_share server3 (rw, sync) | Export /my_share directory for server3 with read write access in sync mode |
/my_share * (ro, sync) | Export /my_share for any host with read only permission and sync mdoe |
/my_share 10.10.2.3 (rw,async) | Export /my_share for IP 10.10.2.3 with rw in async. |
/my_share server2 (ro, sync) server3 (rw, sync) | Exporting to two diff servers with diff permissions |
root@kerneltalks # cat /etc/exports
/my_share 10.10.15.2(rw,sync)
/new_share 10.10.1.40(rw,sync)
/etc/exports
file can be edited using vi editor or using /usr/sbin/exportfs
command.
How to start-stop NFS service in Linux
Once you made the changes in the file you need to restart NFS daemon to take all these changes in effect. This can be done using the service NFS restart command. If your NFS is already running and you just need to take a new configuration in action you can reload config using service NFS reload. To stop NFS you can run service nfs stop
command.
root@kerneltalks # service nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 1897) is running...
nfsd (pid 1913 1912 1911 1910 1909 1908 1907 1906) is running...
rpc.rquotad (pid 1892) is running...
How to re-export NFS shares after editing the configuration file
In running the NFS environment, where multiple clients already mounted NFS shares from the NFS server and you need to edit NFS share configuration. You can edit the NFS configuration file and re-export NFS shares using exportfs
command.
Make sure only additions happened to config file while reloading config otherwise it may affect already connected NFS shares.
root@kerneltalks # exportfs -ra
How to mount NFS share
At the destination, where export needs to be mounted should have NFS daemon running too. Mounting a share is a very easy two-step procedure.
- Create a directory to mount the share
- mount share using the mount command.
To make this permanent i.e. mounting share at boot time, make an entry to /etc/fstab like below so that manually mounting after the reboot of server can be avoided.
10.10.2.3:/my_share /tmp/nfs_share nfs defaults 0 0
NFS configuration in HPUX
This part is the same as Linux. In some versions, you need to edit /etc/dfs/dfstab
file. This file takes share commands as a per line entry. It can be filled like below :
share -F nfs -o root=server2:server3 /my_share
Above line indicates exporting /my_share
directory for server2
and server3
with root account access.
Also, we need to specify NFS_SERVER=1
parameter in /etc/rc.config.d/nfsconf
on the NFS server. By default, it is set to 0 i.e. server acts as NFS client. Along with this NFS_CORE
and START_MOUNTD
needs to be marked to value 1 as well.
How to start-stop NFS service in HPUX
We have covered it here: NFS server start/stop on HPUX
For reloading config file in HPUX, you can run shareall
command.
Mounting share
This part is the same as Linux
Errors seen in Linux
If you did not prepare client properly then you might see below error :
mount: wrong fs type, bad option, bad superblock on 10.10.2.3:/mys_hare,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so.
Install nfs-utils
, nfs-common
packages and you should be able to mount NFS filesystem without any issues.