NFS网络文件系统的应用

    NFS是linux中非常常见的一种网络文件系统,其的搭建配置也非常简单,在一般的企业应用中较为广泛。下面就介绍一下NFS在企业环境中的基本应用,在应用中我们也可以更好的理解NFS网络文件系统的工作原理。

    1)企业中一般应用场景

wKioL1ZtUmLybjsVAAB9b7wokxk376.jpg

如上图一般我们要在中心服务器上设置好共享目录,由其他客户端挂在相应的共享目录,这样客户端服务器就可以想在本地一样往中心服务器上读写数据了。由上图也可以看出NFS服务一般由服务端和客户端组成。

    2)rpc服务

既然想使用NFS服务就必须了解RPC服务的相关内容,因为nfs服务就是借着rpc服务才得以正常运行。NFS支持的功能比较多,而不同的功能需要不同的端口来传输数据。RPC最主要的功能就为每个nfs功能注册端口,并把相应的端口通知给客户端,让客户端可以通过相应的端口来实现不同的nfs功能。其原理如下图:

wKiom1ZtVP3BqRufAAKwHf9CC6c738.jpg

++++++++++++++++++++++++++++++++++NFS服务的部署+++++++++++++++++++++++++++++++++++++

1,查看操作系统版本信息

[root@dong]# cat /etc/redhat-release 
CentOS release 6.5 (Final)
[root@dong]#

2,查看软件包和安装必要的软件包

nfs服务所需的软件包有nfs服务本身和rpc服务两者的软件包

为什么查看操作系统版本呢,因为rpc服务在centos5.x和centos6.x版本中名称不一样,centos5.x的版本叫portmap,centos6.x的版本叫做rpcbind。由于我的操作系统的centos6.5,下面就以centos6.5为例来安装部署NFS服务

[root@dong]# rpm -qa|egrep "nfs|rpcbind"
rpcbind-0.2.0-11.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
nfs-utils-1.2.3-64.el6.x86_64
[root@dong]#

如果没有安装的话可以用一下命令安装

yum install  nfs-utils portmap rpcbind -y

3,启用rpc服务和nfs服务(注意顺序)

由于nfs要想rpc服务注册端口,所以要先启动rpc服务,否则nfs服务会出错。

[root@dong ~]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@dong ~]# 
[root@dong ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@dong ~]#

4,检查rpc和nfs服务是否正常运行

[root@dong ~]# ps -ef|egrep "nfs|rpcbind"
rpc        4822      1  0 22:35 ?        00:00:00 rpcbind
root       4927      2  0 22:35 ?        00:00:00 [nfsd4]
root       4928      2  0 22:35 ?        00:00:00 [nfsd4_callbacks]
root       4929      2  0 22:35 ?        00:00:00 [nfsd]
root       4930      2  0 22:35 ?        00:00:00 [nfsd]
root       4931      2  0 22:35 ?        00:00:00 [nfsd]
root       4932      2  0 22:35 ?        00:00:00 [nfsd]
root       4933      2  0 22:35 ?        00:00:00 [nfsd]
root       4934      2  0 22:35 ?        00:00:00 [nfsd]
root       4935      2  0 22:35 ?        00:00:00 [nfsd]
root       4936      2  0 22:35 ?        00:00:00 [nfsd]
root       4974   1676  0 22:36 pts/0    00:00:00 egrep nfs|rpcbind
[root@dong ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  59532  status
    100024    1   tcp  44620  status
    100005    1   udp  37352  mountd
    100005    1   tcp  40360  mountd
    100005    2   udp  54332  mountd
    100005    2   tcp  42496  mountd
    100005    3   udp  53357  mountd
    100005    3   tcp  58510  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  41478  nlockmgr
    100021    3   udp  41478  nlockmgr
    100021    4   udp  41478  nlockmgr
    100021    1   tcp  42487  nlockmgr
    100021    3   tcp  42487  nlockmgr
    100021    4   tcp  42487  nlockmgr
[root@dong ~]#

5,设置nfs和rpc服务开机启动并检查

[root@dong ~]# chkconfig nfs on
[root@dong ~]# chkconfig rpcbind on
[root@dong ~]# chkconfig --list|egrep "nfs|rpcbind"
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@dong ~]#

6,配置NFS配置文件

[root@dong ~]# cat >>/etc/exports<<EOF
>#shara /date nfs
>/data 192.168.5.106/24(rw,sync)
>EOF
[root@dong ~]# cat /etc/exports
#shara /date nfs
/data 192.168.5.106/24(rw,sync)

7,创建NFS共享目录,并修改共享目录权限

[root@dong ~]#mkdir /data

[root@dong]# chown -R nfsnobody.nfsnobody /data

8,平滑重启nfs服务并检查

[root@dong]# /etc/init.d/nfs reload            
[root@dong]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  58611  mountd
    100005    1   tcp  47901  mountd
    100005    2   udp  36752  mountd
    100005    2   tcp  46315  mountd
    100005    3   udp  43498  mountd
    100005    3   tcp  34087  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  54387  nlockmgr
    100021    3   udp  54387  nlockmgr
    100021    4   udp  54387  nlockmgr
    100021    1   tcp  59024  nlockmgr
    100021    3   tcp  59024  nlockmgr
    100021    4   tcp  59024  nlockmgr
[root@dong]# showmount -e localhost
Export list for localhost:
/data 192.168.5.0/24
[root@dong]#

9,查看客户端系统版本,安装rpc服务

[root@B ~]# cat /etc/redhat-release 
CentOS release 6.5 (Final)
[root@B ~]# yum install rpcbind -y
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
... ...

10,启动客户端rpc服务,并检查

[root@B ~]# /etc/init.d/rpcbind start
[root@B ~]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  33335  status
    100024    1   tcp  42421  status
[root@B ~]#

11,客户端查看服务端nfs服务

[root@B ~]# showmount -e 192.168.5.108
Export list for 192.168.5.108:
/data 192.168.5.0/24
[root@B ~]#


12,客户端挂载nfs共享目录

[root@B ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root   18G  927M   16G   6% /
tmpfs                         491M     0  491M   0% /dev/shm
/dev/sda1                     485M   33M  427M   8% /boot
192.168.5.108:/data/           18G  953M   16G   6% /nfs_share
[root@B ~]#

13,测试

客户端:

[root@B ~]# touch a.txt /nfs
nfs/       nfs_share/ 
[root@B ~]# touch  /nfs_share/aaa.txt
[root@B ~]# ls /nfs_share/
aaa.txt

[root@B ~]# 

服务端:

[root@dong]# ls /data
aaa.txt

14,客户端添加开机自动挂在nfs目录

[root@B ~]# echo "/bin/mount  -t nfs 192.168.5.108:/data/ /nfs_share/" >>/etc/rc.local
[root@B ~]# tail -1 /etc/rc.local
tail: inotify cannot be used, reverting to polling
/bin/mount  -t nfs 192.168.5.108:/data/ /nfs_share/
[root@B ~]# tail -n 1 /etc/rc.local


__________________________________结______________束__________________________________

你可能感兴趣的:(linux,nfs)