Difference between revisions of "HPC:NFS configuration"
From hpcwiki
(Created page with "=== NFS configuration to provide HPCLab DAS access to worker nodes === * This guide was followed OK ** https://www.howtoforge.com/nfs-server-and-client-on-centos-7 * Node 11 n...") |
(→Raw guide contents) |
||
Line 13: | Line 13: | ||
As the first step, we will install these packages on the CentOS server with yum: | As the first step, we will install these packages on the CentOS server with yum: | ||
− | yum install nfs-utils | + | yum install nfs-utils |
Now create the directory that will be shared by NFS: | Now create the directory that will be shared by NFS: | ||
− | mkdir /var/nfsshare | + | mkdir /var/nfsshare |
Change the permissions of the folder as follows: | Change the permissions of the folder as follows: | ||
− | chmod -R 755 /var/nfsshare | + | chmod -R 755 /var/nfsshare |
− | chown nfsnobody:nfsnobody /var/nfsshare | + | chown nfsnobody:nfsnobody /var/nfsshare |
We use /var/nfsshare as shared folder, if we use another drive such as the /home directory, then the permission chnges will cause a massive permissions problem and ruin the whole hierarchy. So in case we want to share the /home directory then permissions must not be changed. | We use /var/nfsshare as shared folder, if we use another drive such as the /home directory, then the permission chnges will cause a massive permissions problem and ruin the whole hierarchy. So in case we want to share the /home directory then permissions must not be changed. | ||
Next, we need to start the services and enable them to be started at boot time. | Next, we need to start the services and enable them to be started at boot time. | ||
− | systemctl enable rpcbind | + | systemctl enable rpcbind |
− | systemctl enable nfs-server | + | systemctl enable nfs-server |
− | systemctl enable nfs-lock | + | systemctl enable nfs-lock |
− | systemctl enable nfs-idmap | + | systemctl enable nfs-idmap |
− | systemctl start rpcbind | + | systemctl start rpcbind |
− | systemctl start nfs-server | + | systemctl start nfs-server |
− | systemctl start nfs-lock | + | systemctl start nfs-lock |
− | systemctl start nfs-idmap | + | systemctl start nfs-idmap |
Now we will share the NFS directory over the network a follows: | Now we will share the NFS directory over the network a follows: | ||
− | nano /etc/exports | + | nano /etc/exports |
We will make two sharing points /home and /var/nfsshare. Edit the exports file as follows: | We will make two sharing points /home and /var/nfsshare. Edit the exports file as follows: | ||
+ | /var/nfsshare 192.168.0.101(rw,sync,no_root_squash,no_all_squash) | ||
+ | /home 192.168.0.101(rw,sync,no_root_squash,no_all_squash) | ||
− | |||
− | |||
Note 192.168.0.101 is the IP of client machine, if you wish that any other client should access it you need to add the it IP wise other wise you can add "*" instead of IP for all IP access. | Note 192.168.0.101 is the IP of client machine, if you wish that any other client should access it you need to add the it IP wise other wise you can add "*" instead of IP for all IP access. | ||
Line 51: | Line 51: | ||
Finally, start the NFS service: | Finally, start the NFS service: | ||
− | systemctl restart nfs-server | + | systemctl restart nfs-server |
Again we need to add the NFS service override in CentOS 7 firewall-cmd public zone service as: | Again we need to add the NFS service override in CentOS 7 firewall-cmd public zone service as: | ||
− | firewall-cmd --permanent --zone=public --add-service=nfs | + | firewall-cmd --permanent --zone=public --add-service=nfs |
− | firewall-cmd --permanent --zone=public --add-service=mountd | + | firewall-cmd --permanent --zone=public --add-service=mountd |
− | firewall-cmd --permanent --zone=public --add-service=rpc-bind | + | firewall-cmd --permanent --zone=public --add-service=rpc-bind |
− | firewall-cmd --reload | + | firewall-cmd --reload |
Note: If it will be not done, then it will give error for Connection Time Out at client side. | Note: If it will be not done, then it will give error for Connection Time Out at client side. | ||
Line 67: | Line 67: | ||
In my case, I have a CentOS 7 desktop as client. Other CentOS versions will also work the same way. Install the nfs-utild package as follows: | In my case, I have a CentOS 7 desktop as client. Other CentOS versions will also work the same way. Install the nfs-utild package as follows: | ||
− | yum install nfs-utils | + | yum install nfs-utils |
Now create the NFS directory mount points: | Now create the NFS directory mount points: | ||
− | mkdir -p /mnt/nfs/home | + | mkdir -p /mnt/nfs/home |
− | mkdir -p /mnt/nfs/var/nfsshare | + | mkdir -p /mnt/nfs/var/nfsshare |
Next, we will mount the NFS shared home directory in the client machine as shown below: | Next, we will mount the NFS shared home directory in the client machine as shown below: | ||
− | mount -t nfs 192.168.0.100:/home /mnt/nfs/home/ | + | mount -t nfs 192.168.0.100:/home /mnt/nfs/home/ |
It will mount /home of NFS server. Next we will mount the /var/nfsshare directory: | It will mount /home of NFS server. Next we will mount the /var/nfsshare directory: | ||
Line 84: | Line 84: | ||
Now we are connected with the NFS share, we will crosscheck it as follows: | Now we are connected with the NFS share, we will crosscheck it as follows: | ||
− | df -kh | + | df -kh |
− | + | ||
− | [root@client1 ~]# df -kh | + | [root@client1 ~]# df -kh |
− | Filesystem Size Used Avail Use% Mounted on | + | |
− | /dev/mapper/centos-root 39G 1.1G 38G 3% / | + | Filesystem Size Used Avail Use% Mounted on |
− | devtmpfs 488M 0 488M 0% /dev | + | /dev/mapper/centos-root 39G 1.1G 38G 3% / |
− | tmpfs 494M 0 494M 0% /dev/shm | + | devtmpfs 488M 0 488M 0% /dev |
− | tmpfs 494M 6.7M 487M 2% /run | + | tmpfs 494M 0 494M 0% /dev/shm |
− | tmpfs 494M 0 494M 0% /sys/fs/cgroup | + | tmpfs 494M 6.7M 487M 2% /run |
− | /dev/mapper/centos-home 19G 33M 19G 1% /home | + | tmpfs 494M 0 494M 0% /sys/fs/cgroup |
− | /dev/sda1 497M 126M 372M 26% /boot | + | /dev/mapper/centos-home 19G 33M 19G 1% /home |
− | 192.168.0.100:/var/nfsshare 39G 980M 38G 3% /mnt/nfs/var/nfsshare | + | /dev/sda1 497M 126M 372M 26% /boot |
− | 192.168.0.100:/home 19G 33M 19G 1% /mnt/nfs/home | + | 192.168.0.100:/var/nfsshare 39G 980M 38G 3% /mnt/nfs/var/nfsshare |
− | [root@client1 ~]# | + | 192.168.0.100:/home 19G 33M 19G 1% /mnt/nfs/home |
+ | [root@client1 ~]# | ||
So we are connected with the NFS share. | So we are connected with the NFS share. | ||
Line 103: | Line 104: | ||
Now we will check the read/write permissions in the shared path. At client enter the command: | Now we will check the read/write permissions in the shared path. At client enter the command: | ||
− | touch /mnt/nfs/var/nfsshare/test_nfs | + | touch /mnt/nfs/var/nfsshare/test_nfs |
So we successfully configured an NFS-share. | So we successfully configured an NFS-share. | ||
Line 110: | Line 111: | ||
We have to re-mount the NFS share at the client after every reboot. Here are the steps to mount it permanently by adding the NFS-share in /etc/fstab file of client machine: | We have to re-mount the NFS share at the client after every reboot. Here are the steps to mount it permanently by adding the NFS-share in /etc/fstab file of client machine: | ||
− | nano /etc/fstab | + | nano /etc/fstab |
Add the entries like this: | Add the entries like this: | ||
− | [...] | + | [...] |
− | 192.168.0.100:/home /mnt/nfs/home nfs defaults 0 0 | + | 192.168.0.100:/home /mnt/nfs/home nfs defaults 0 0 |
− | 192.168.0.100:/var/nfsshare /mnt/nfs/var/nfsshare nfs defaults 0 0 | + | 192.168.0.100:/var/nfsshare /mnt/nfs/var/nfsshare nfs defaults 0 0 |
+ | |||
Note 192.168.0.100 is the server NFS-share IP address, it will vary in your case. | Note 192.168.0.100 is the server NFS-share IP address, it will vary in your case. | ||
Latest revision as of 22:32, 21 April 2018
[edit] NFS configuration to provide HPCLab DAS access to worker nodes
- This guide was followed OK
- Node 11 needs nfs service permanent public access revoke
[edit] Raw guide contents
1 Preliminary Note I have fresh installed CentOS 7 server, on which I am going to install the NFS server. My CentOS server have hostname server1.example.com and IP as 192.168.0.100
If you don't have a CentOS server installed yet, use this tutorial for the basic operating system installation. Additionally to the server, we need a CentOS 7 client machine, this can be either a server or desktop system. In my case, I will use a CentOS 7 desktop with hostname client1.example.com and IP 192.168.0.101 as client. I will run all the commands in this tutorial as root user.
2 At NFS server end As the first step, we will install these packages on the CentOS server with yum:
yum install nfs-utils
Now create the directory that will be shared by NFS:
mkdir /var/nfsshare
Change the permissions of the folder as follows:
chmod -R 755 /var/nfsshare chown nfsnobody:nfsnobody /var/nfsshare
We use /var/nfsshare as shared folder, if we use another drive such as the /home directory, then the permission chnges will cause a massive permissions problem and ruin the whole hierarchy. So in case we want to share the /home directory then permissions must not be changed. Next, we need to start the services and enable them to be started at boot time.
systemctl enable rpcbind systemctl enable nfs-server systemctl enable nfs-lock systemctl enable nfs-idmap systemctl start rpcbind systemctl start nfs-server systemctl start nfs-lock systemctl start nfs-idmap
Now we will share the NFS directory over the network a follows:
nano /etc/exports
We will make two sharing points /home and /var/nfsshare. Edit the exports file as follows:
/var/nfsshare 192.168.0.101(rw,sync,no_root_squash,no_all_squash) /home 192.168.0.101(rw,sync,no_root_squash,no_all_squash)
Note 192.168.0.101 is the IP of client machine, if you wish that any other client should access it you need to add the it IP wise other wise you can add "*" instead of IP for all IP access.
Condition is that it must be pingable at both ends.
Finally, start the NFS service:
systemctl restart nfs-server
Again we need to add the NFS service override in CentOS 7 firewall-cmd public zone service as:
firewall-cmd --permanent --zone=public --add-service=nfs firewall-cmd --permanent --zone=public --add-service=mountd firewall-cmd --permanent --zone=public --add-service=rpc-bind firewall-cmd --reload
Note: If it will be not done, then it will give error for Connection Time Out at client side.
Now we are ready with the NFS server part.
3 NFS client end In my case, I have a CentOS 7 desktop as client. Other CentOS versions will also work the same way. Install the nfs-utild package as follows:
yum install nfs-utils
Now create the NFS directory mount points:
mkdir -p /mnt/nfs/home mkdir -p /mnt/nfs/var/nfsshare
Next, we will mount the NFS shared home directory in the client machine as shown below:
mount -t nfs 192.168.0.100:/home /mnt/nfs/home/
It will mount /home of NFS server. Next we will mount the /var/nfsshare directory:
mount -t nfs 192.168.0.100:/var/nfsshare /mnt/nfs/var/nfsshare/
Now we are connected with the NFS share, we will crosscheck it as follows:
df -kh [root@client1 ~]# df -kh Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 39G 1.1G 38G 3% / devtmpfs 488M 0 488M 0% /dev tmpfs 494M 0 494M 0% /dev/shm tmpfs 494M 6.7M 487M 2% /run tmpfs 494M 0 494M 0% /sys/fs/cgroup /dev/mapper/centos-home 19G 33M 19G 1% /home /dev/sda1 497M 126M 372M 26% /boot 192.168.0.100:/var/nfsshare 39G 980M 38G 3% /mnt/nfs/var/nfsshare 192.168.0.100:/home 19G 33M 19G 1% /mnt/nfs/home [root@client1 ~]#
So we are connected with the NFS share.
Now we will check the read/write permissions in the shared path. At client enter the command:
touch /mnt/nfs/var/nfsshare/test_nfs
So we successfully configured an NFS-share.
4 Permanent NFS mounting We have to re-mount the NFS share at the client after every reboot. Here are the steps to mount it permanently by adding the NFS-share in /etc/fstab file of client machine:
nano /etc/fstab
Add the entries like this:
[...] 192.168.0.100:/home /mnt/nfs/home nfs defaults 0 0 192.168.0.100:/var/nfsshare /mnt/nfs/var/nfsshare nfs defaults 0 0
Note 192.168.0.100 is the server NFS-share IP address, it will vary in your case.
This will make the permanent mount of the NFS-share. Now you can reboot the machine and mount points will be permanent even after the reboot.
Cheers, now we have a successfully configured NFS-server over CentOS 7 :)
5 Links CentOS : http://www.centos.org/