NFS存储搭建
首先介绍下NFS,什么是NFS?
NFS指网络文件系统,网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议,能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。
RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。
centos7 安装NFS服务
- 国内可能需要配置yum源,如有需要请自行配置yum源。
1 安装NFS服务
yum -y install nfs-utils rpcbind
#查看系统是否已经安装NFS
rpm -qa | grep nfs
rpm -qa | grep rpcbind
2 创建文件挂载目录
mkdir -p /nfs
3 创建一个 NFS 导出表
-
该表设置了 NFS 服务器上暴露给将使用该服务器进行存储的节点的目录路径
-
添加/nfs文件夹的路径,以及集群节点的 IP 地址。为集群中的每个 IP 地址添加一个条目。在每个地址及其伴随的参数后面加上一个空格,该空格作为定界符
vi /etc/exports
#例:/nfs <IP_ADDRESS1>(rw,sync,no_subtree_check) <IP_ADDRESS2>(rw,sync,no_subtree_check) <IP_ADDRESS3>(rw,sync,no_subtree_check)
#* 也可以用子网ip代替,例如:192.168.15.75/24
/nfs *(insecure,rw,async,no_root_squash)
4 更新 NFS,启动服务
#更新NFS导出表
exportfs -ra
#保险起见,确认关闭firewalld
systemctl stop firewalld.service
#启动rpcbind、nfs服务
service rpcbind start
service nfs start
5 查看服务状况
#查看nfs端口
rpcinfo -p | grep nfs
#查看 RPC 服务的注册状况
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 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 58588 nlockmgr
100021 3 udp 58588 nlockmgr
100021 4 udp 58588 nlockmgr
100021 1 tcp 43025 nlockmgr
100021 3 tcp 43025 nlockmgr
100021 4 tcp 43025 nlockmgr
至此,NFS 服务器端已经设置完成。下面我们通过客户端,验证NFS服务是否可以正常使用
6 NFS客户端
- 客户端请在另外节点单独部署,以便测试网络、防火墙等其他因素
#1 安装nfs客户端
yum -y install nfs-utils
#2 利用 showmount 联机测试
showmount -e 192.168.15.74
#出现如下提示,说明可以连到nfs服务。反之可能服务端安装不成功,或者网络原因。需具体排查
Export list for 192.168.15.74:
/nfs *
#3 以上操作没有问题,我们则创建一个目录来挂载NFS服务
mkdir /testnfs
mount -t nfs 192.168.15.74:/nfs /testnfs
#4 想挂载目录输出一个文件
echo "test nfs demo!!" > /testnfs/nfs.txt
最后我们去到nfs服务端挂载目录查看,发现目录下多了一个nfs.txt文件。至此NFS存储构建完成
搭建过程出现问题
[root@master ~]# mount -t nfs 192.178.15.74:/nfs /testnfs
mount.nfs: Connection timed out
解决方式一:(重启服务器)
解决方式二:(确认关闭防火墙,重启服务)
#确认关闭firewalld
systemctl stop firewalld.service
#关闭rpcbind nfs
service rpcbind stop
service nfs stop
#重新启动rpcbind nfs
service rpcbind start
service nfs start