NFS是一种基于TCP/IP传输的网络文件系统协议,通过使用NFS协议,客户机可以下个访问本地目录一样访问远程服务器中的共享资源。对于大多数负载均衡集群来说,使用NFS协议来共享数据存储时比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。
一.使用NFS发布共享资源
NFS服务的实现依赖于RPC(remote Process Call,远端过程调用)机制,已完成远程到本地的映射过程,在CentOS7系统中,需要安装nfs-utils,rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
1.安装nfs-utils,rpcbind软件包
提供rpc支持的服务为rpcbind,提供NFS共享的服务为nfs,安装完成后建议调整这类昂服务的自动启动状态,以便每次开机后自动启动。手动加载NFS共享服务时,应该启动rpcbind,在启动nfs。
[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind
2.设置共享目录
NFS的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在exports文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选择)”。
- 目录位置,服务器要共享的文件的位置
- 客户机地址可以是主机名,IP地址,网段地址,允许使用* ` ?通配符;
- 选项选项,rw表示允许读写,ro为只读,sync同步写入,no_root_squash表示当客户机以root身份访问时赋予本地root权限,root_squash,将作为nfsnobody用户降级对待。
例如,若要将文件夹/opt共享给192.168.10.0/24的网段使用,且允许读写操作:
[root@localhost ~]# mkdir -p /opt/wwwroot
[root@localhost ~]# vi /etc/exports
/opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)
当需要将一个目录共享给不同的客户机,且分配权限不同时,只要以空格分隔指定多个“客户机(权限选项)”即可 。
例如,文件夹/opt共享给192.168.10.0/24的网段和192.168.20.1的主机使用,且一个允许读写操作,一个为只读:
[root@localhost ~]# vi /etc/exports
/opt 192.168.10.0(rw) 192.168.20.1(ro)
3.启动NFS服务程序
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# netstat -anpt | grep rpc
4.查看本机的共享目录
[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/opt 192.168.10.0/24 192.168.20.1
二.在客户机中访问NFS共享资源
NFS协议的目标是提供一种网络文件系统,因此对NFS共享的访问也使用mount命令来进行挂载,对应的文件系统类型为nfs。既可以手动挂载,也可以加入fstab配置文件来实现开机自动挂载。
1.安装并启动rpcbind
要访问NFS共享资源,客户机中也需要安装rpcbind软件包,并启动rpcbind系统服务。另外,为了使用showmount查询工具,建议将nfs-utils软件包也一并装上,在启动rpc服务和nfs服务时,要先启动rpcbind服务器,在启动nfs,否则无法获取到服务器共享的内容。
[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
如果已经安装成功,则可以使用“showmount -e 服务器IP地址” 查看指定共享端共享了哪些目录。
2.手动挂载NFS共享目录
以root用户身份执行mount操作,将NFS服务器共享的目录,挂载到响应的目录
[root@localhost~]#mount 主机IP地址:共享的目录 本机挂载位置
挂载完成访问客户机挂载目录就是相当于访问服务器中的共享目录