Setting up an NFS share

The method used to start the NFS server will depend on your distribution

NFS (Network File System) is a protocol used by UNIX/Linux computers to share disks across a network. Similar to the Common Internet File Services (CIFS) protocol used by Windows, NFS is older and more light-weight, and performs much more efficiently on UNIX and Linux systems. This month I'll be showing you how to share a directory on a Linux server using NFS, and how to mount the directory on a Linux client.

Setting up an NFS share

As an example, we'll be sharing the /home directory with all clients on a network. Sharing /home is a good idea if you're running the Network Information Service (NIS) server that I covered in the May issue, as it allows you to use the same desktop and configuration settings on every computer attached to your network.

First, open /etc/exports as root using your favourite text editor. If this file doesn't exist you will need to create it. Add the following to the file:

/home 192.168.1.0/255.255.255.0(rw)

This line shares the /home directory with all machines on the 192.168.1.0 network and allows each machine to have both read and write access to the share. Change this network address to one that is appropriate for your network. Read only access can be specified by changing (rw) to (ro).

You can individually specify a list of machines that will have access to the share, and tailor the access each machine has to the share, using a line such as:

/home 192.168.1.2(rw) 192.168.1.3(ro)

In this example, 192.168.1.2 has both read and write access to the share while 192.168.1.3 has only read access. Any other machine on your network will be unable to mount the share.

The method used to start the NFS server will depend on your distribution. Under most distributions, e.g. Red Hat Linux, you can start the NFS server by typing in a shell as root:

$ /etc/init.d/nfs start

This script may have a slightly different name in your distribution. For more detailed instructions on setting up a Linux NFS server, see the NFS HOWTO: http://nfs.sourceforge.net/nfs-howto/server.html

Mounting an NFS share

NFS shares are mounted like a local hard disk, using the mount command. To mount an NFS share you will need to know the hostname or IP of the NFS server and the directory on the server in which the NFS share is located. To mount this shared /home directory, type the following in a shell as root:

$ mount -t nfs 192.168.1.1:/home /home

This command mounts the directory /home stored on the computer at the IP 192.168.1.1 under /home on the local computer. NFS shares can be added to /etc/fstab as with any normal drive. Shares in /etc/fstab are mounted upon boot. This is useful for the /home directory, as it will be needed whenever a user logs in to the computer. An example entry for /home would be:

192.168.1.1:/home /home nfs rw,bg,hard,intr 0 0

This line background mounts the /home directory, so if the NFS server is not available upon boot your computer will not lock up while trying to mount the share.

Problems with NFS

If the connection between a client and an NFS server is broken, serious problems can occur. For example, when the NFS server is turned off, you may encounter complete lock-ups in a terminal and any applications accessing data stored on an NFS share. This is because the NFS protocol is very bad at identifying a connection drop-out and it waits to reconnect to the NFS server, rather than eventually giving up.

The solution to this problem is simple, but inconvenient. Whenever you break a connection between an NFS client and server, be sure to unmount any NFS shares from all the clients, ideally before the connection is broken. If you forget to do this and the connection between the NFS client and server is re-established, be sure to unmount and remount the shares on each client machine. If you don't remount your NFS shares, you may experience errors when reading from the NFS server. You can unmount a share by typing in a shell as root:

$ umount <mount point of share>

NFS does not include any support for user authentication to access shares. It does, however, support the UNIX/Linux permissions system. When NFS is used in conjunction with an NIS server, it is easy to restrict the access each user has to directories on NFS shares using the same permissions you would on a local hard disk.

NFS includes no user authentication, so it's best used to share system folders, such as /home and directories storing data that applications on your network may need. The Linux implementation of NFS is very good, and with suitable hardware is capable of serving hundreds of client machines. For more information on NFS under Linux, see http://nfs.sourceforge.net.

Recommended

Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.

Alastair Cousins

PC World

Comments

Comments are now closed.

Most Popular Reviews

Follow Us

Best Deals on GoodGearGuide

Shopping.com

Latest News Articles

Resources

GGG Evaluation Team

Kathy Cassidy

STYLISTIC Q702

First impression on unpacking the Q702 test unit was the solid feel and clean, minimalist styling.

Anthony Grifoni

STYLISTIC Q572

For work use, Microsoft Word and Excel programs pre-installed on the device are adequate for preparing short documents.

Steph Mundell

LIFEBOOK UH574

The Fujitsu LifeBook UH574 allowed for great mobility without being obnoxiously heavy or clunky. Its twelve hours of battery life did not disappoint.

Andrew Mitsi

STYLISTIC Q702

The screen was particularly good. It is bright and visible from most angles, however heat is an issue, particularly around the Windows button on the front, and on the back where the battery housing is located.

Simon Harriott

STYLISTIC Q702

My first impression after unboxing the Q702 is that it is a nice looking unit. Styling is somewhat minimalist but very effective. The tablet part, once detached, has a nice weight, and no buttons or switches are located in awkward or intrusive positions.

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?