NFS(Network File System)
主要功能是通过网络来做文件存储。使用NFS可以实现多台服务器之间数据共享,也可以实现多台服务器之间的数据一致。
一、安装nfs服务
#所有机器安装
yum install -y nfs-utils
二、nfs主节点
1、设置server端共享目录
echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports
# 共享/nfs/data/目录,* 所有服务器可以拥有括号内权限,写入配置文件
2、共享目录必须存在
mkdir -p /nfs/data
3、开启nfs服务
systemctl enable rpcbind --now
systemctl enable nfs-server --now
4、配置生效
exportfs -r
注意:
此时在客户端可能无法访问server,主要原因是防火墙阻止网络
需要开放端口或关闭防火墙,二取其一
方案一:停闭防火墙
systemctl stop firewalld
方案二:开放端口
在设置了防火墙的环境中使用NFS,需要在防火墙上打开如下端口:
- portmap 端口 111 udp/tcp;
- nfsd 端口 2049 udp/tcp;
- mountd 端口 “xxx” udp/tcp
以下命令可以查看mountd端口,在server端执行
rpcinfo -p localhost
如上图,nfs服务器的端口及协议已列出,需要在防火墙中开放端口。
firewall-cmd --add-port=111/tcp --permanent
firewall-cmd --add-port=111/tcp --permanent
firewall-cmd -add-port=20048/tcp --permanent
firewall-cmd -add-port=20048/udp --permanent
firewall-cmd --add-port=2049/tcp --permanent
firewall-cmd --add-port=2049/udp --permanent
firewall-cmd -reload
三、从节点配置
1、命令查看server端口的目录挂载
showmount -e ip-server
2、网络共享目录与本地挂载对应
执行以下命令挂载 nfs 服务器上的共享目录到本机路径 /root/nfsmount
mkdir -p /root/nfsmount
mount -t nfs 172.10.0.24:/home/devops/jenkinsTest /root/nfsmount
3、 写入一个测试文件
echo "hello nfs server" > /root/nfsmount/test.txt
此时在任意节点修改文件,其他节点都会跟随变化。