NFS Server and Client Configuration
From Rivendell Wiki
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

