NFS Server and Client Configuration

From Rivendell Wiki

Jump to: navigation, search

FIXME: Clean up combined pages.

These instructions copied from and adapted to suit the Rivendell environment... http://www.ubuntugeek.com/nfs-server-and-client-configuration-in-ubuntu.html

Install NFS Server in Ubuntu

 sudo apt-get install nfs-kernel-server nfs-common portmap

When configuring portmap do =not= bind loopback. If you do you can either edit /etc/default/portmap using the following

 sudo vi /etc/default/portmap

or use the following command

 sudo dpkg-reconfigure portmap

Restart Portmap using the following command

 sudo /etc/init.d/portmap restart

NFS Server Configuration

NFS exports from a server are controlled by the file /etc/exports. Each line begins with the absolute path of a directory to be exported, followed by a space-seperated list of allowed clients.

You need to edit the exports file using the following command

 sudo vi /etc/exports

Here are some quick examples of what you could add to your /etc/exports

For Full Read Write Permissions allowing any computer from 192.168.1.1 through 192.168.1.255

 /var/snd 192.168.1.1/24(rw,no_root_squash,async)

Or for Read Only from a single machine (Read only not recommended for Rivendell)

 /var/snd 192.168.1.2 (ro,async)

save this file and exit

A client can be specified either by name or IP address. Wildcards (*) are allowed in names, as are netmasks (e.g. /24) following IP addresses, but should usually be avoided for security reasons.

A client specification may be followed by a set of options, in parenthesis. It is important not to leave any space between the last client specification character and the opening parenthesis, since spaces are intrepreted as client seperators.

Now you need to restart NFS server using the following command

 sudo /etc/init.d/nfs-kernel-server restart

If you make changes to /etc/exports on a running NFS server, you can make these changes effective by issuing the command

 sudo exportfs -a

Install NFS client support in Ubuntu

 sudo apt-get install portmap nfs-common

This will install all the required packages for nfs client

Mounting manually

Example to mount server.mydomain.com:/var/snd to /var/snd. In this example server.mydomain.com is the name of the server containing the nfs share, and files is the name of the share on the nfs server

The mount point /var/snd must first exist on the client machine.

Create files directory using the following command

 sudo mkdir /var/snd

You need to mount the share using the following command

 sudo mount server.mydomain.com:/var/snd /var/snd

Now you may need to restart services using the following command

sudo /etc/init.d/portmap restart

 sudo /etc/init.d/nfs-common restart

Mounting at boot using /etc/fstab

If you want to mount using fstab file

 sudo vi /etc/fstab

In this example my /etc/fstab was like this

server.mydomain.com:/var/snd /var/snd nfs rsize=8192,wsize=8192,timeo=14,intr

Change “servername.mydomain.com:/var/snd”, and “/var/snd” to match your server name,share name, and the name of the mount point you created.

Issuing the command

 sudo mount -a

will mount all the drives as described in the /etc/fstab file. If there are no mistakes you won't get any error messages.

Firewall Ports for NFS

If you have a firewall you need to make sure ports 32771, 111 and 2049 are open Testing Your Configuration

Use the following command in terminal to test

 mount /var/snd

the mount point /var/snd will be mounted from the server.


Just out of curiosity... Why are you wanting to use a Windows file server as opposed to setting up a Linux file server?

It has always been the general consensus among the system admins that I've worked with that the SMB protocol is inferior to NFS. I'm not a network file system guru by any stretch and, as such, am not equipped to argue for or against SMB. Though I recall something about SMB being particularly problematic with how it handles file locks.

If you already have a built to the hilt Windows file server not being utilized to it's full potential, I suppose I can see your motive. But, barring that, it is my very humble opinion that you'd be better served with a file server running the same OS as your Rivendell machines.

As an added bonus, it doesn't get much simpler in terms of configuration. After installing the necessary packages, add one line to one file each of the file server and client machine(s) and you're in business.

What I am attempting to convey is that setting up an NFS file share in an all *NIX environment is as simple as adding a line to /etc/exports on the file server and adding a line to /etc/fstab on the client machine(s).

For example, on my dev/test setup...

This line in /etc/exports shares the /var/snd directory via NFS:
/var/snd    192.168.0.0/24(rw,root_squash,sync) 

A common mistake is to put a space before the open paren. Doing so causes options to be ignored. One nasty side effect of this is that the share will mount up read-only by default.

This line in /etc/fstab on the client machine(s) mounts up the share:
192.168.0.10:/var/snd /var/snd nfs 

rsize=8192,wsize=8192,timeo=14,intr,noauto

I have "noauto" set because this is a test setup and I would prefer to manually mount the share as needed. In a production config, you would want the share to auto mount. Also, this rsize and wsize values have not been tuned for peak performance.

If you're going for simplicity, this beats fooling around with trying to get Samba to play nice with a Windows file server.

-Danny

Personal tools