Create NFS Sharable Directory

Goal: Setup a shared directory across cluster using NFS

Designate one of the machine to host the data files. That is where we are going to host a NFS server. Suppose, is your NFS file server.

On NFS Server

Install NFS applications

$ sudo yum install nfs-utils nfs-utils-lib

Start NFS services

$ sudo chkconfig nfs on
$ sudo service rpcbind start
$ sudo service nfs start

Create a folder - consider this as data folder for your entire cluster.

$ sudo mkdir /data
$ sudo chmod 777 /data

Add the following line to /etc/exports file. * signifies any client can connect the NFS server. You restrict access by using server name or domain name.

/data *(rw,sync,no_root_squash,no_subtree_check)

Apply the new entry to the exports file

$ sudo exportfs -a

On the NFS Client machine

Verify that the nfs mount points are showing up.

$ sudo showmount -e <nfs server name>

Install the software

$ sudo yum install nfs-utils nfs-utils-lib

Create a mount point

$ sudo mkdir -p /nfs/data
$ sudo mount <nfs-server-name>:/data /nfs/data
$ sudo chmod 777 /nfs/data

On Mac OS

$ sudo mount_nfs -o resvport <nfs-server-name>:/data /nfs/data

Verify mount points

$ sudo df -h
$ sudo mount
$ ls -l /nfs/data

Testing the access

$ touch /nfs/data/test.txt

Enter the mount details in fstab for persistence.

$ sudo vi /etc/fstab

Add the following line

<nfs server name>:/data /mnt/nfs/data nfs auto,noatime,nolock,bg,nfsvers=3,intr,tcp,actimeo=1800 0 0

To reload all mount point after machine reboot, run the following command.

$ sudo mount -a