实现微服务接口服务器的集群部署、上传文件保存到通过NFS服务器共享磁盘,
微服务接口服务器1:192.168.3.3
微服务接口服务器2:192.168.3.4
微服务接口服务器3:192.168.3.5
NFS服务器:192.168.3.20
1、检查NFS是否已安装
rpm -qa | grep nfs-utils
2、如果没有安装 执行如下命令安装
dnf install nfs-utils
3、查看当前nfs服务所支持的nfs的版本
cat /proc/fs/nfsd/versions
nfs4的大版本下nfs2已经不被支持了
4、NFS服务操作命令
#查看NFS服务状态
systemctl status nfs-server
#启动NFS服务
systemctl start nfs-server
#停止NFS服务
systemctl stop nfs-server
5、配置共享文件目录
#创建目录树
mkdir -p /data/nfs
#进入data目录
cd /data
#更改data目录下的所有文件目录所有者为web
chown web.web *
6、编辑配置文件 及本地做挂载测试
#编辑配置文件
vi /etc/exports
#增加以下内容 其中192.168.3.20是本机IP
/data/nfs 192.168.3.*(rw,sync,all_squash,anonuid=1000,anongid=1001)
# 支持所有IP 可访问共享在磁盘
/data/nfs *(insecure,rw,async,no_root_squash)
说明: /etc/exports是nfs默认的配置文件
说明:各项权限的说明:
rw:可读写
ro: 只读
no_root_squash:对root用户不压制,如果客户端以root用户写入,在服务端都映射为服务端的root用户
root_squash: nfs服务:默认情况使用的是相反参数root_squash,
如果客户端是用户root操作,会被压制成nobody用户
all_squash: 不管客户端的使用nfs的用户是谁,都会压制成nobody用户
insecure: 允许从客户端过来的非授权访问
sync: 数据同步写入到内存和硬盘
async: 数据先写入内存,不直接写入到硬盘
anonuid: 指定uid的值,此uid必须存在于/etc/passwd中
anongid:指定gid的值
7、配置完成后,使nfs配置生效
说明:完成设置后,使用exportfs实用程序有选择地导出目录,而无需重新启动NFS服务
#使用exportfs实用程序有选择地导出目录,而无需重新启动NFS服务
exportfs -rv
#查看当前配置为nfs共享的目录及其状态
exportfs -v
8、挂载本地测试
#将远程磁盘挂载到本地
mount 192.168.3.20:/data/nfs /mnt
#查看磁盘情况
df -hT
9、如果Firewalld正在运行,请允许NFS服务,否则其它客户端无法访问:
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service={rpc-bind,mountd,nfs,nlockmgr,portmapper} --permanent
firewall-cmd --reload
#需要启用SELinux boolean:
setsebool -P nfs_export_all_rw 1
开机启动NFS
#开机启动NFS
systemctl enable nfs-server
10、客户端挂载
#查询远程NFS 磁盘
showmount -e 192.168.3.20
#挂载点为 /home/fileserver 目录不存在时需要创建
#创建目录树
mkdir -p /home/fileserver
#授权web
chown web.web /home/*
#挂载磁盘
mount -t nfs 192.168.3.20:/data/nfs /home/fileserver
客户端和服务端的用户id保持一致 本文为web
查看本地web用户的id
grep web /etc/passwd
把客户端的nginx用户id修改为和服务端一致:
#修改用户
usermod -u 1000 web
#修改用户组
groupmod -g 1001 web
#查看用户修改情况
grep web /etc/passwd
客户端机器启动后能自动加载nfs文件系统
#把mount命令 添加到以下文件内容
vi /etc/rc.local
#最后一行添加
mount -a
#赋与可执行权限
chmod +x /etc/rc.local
#修改vi /etc/fstab
vi /etc/rc.local
#最后一行添加
192.168.3.20:/data/nfs /home/fileserver nfs defaults 0 0
#执行文件测试
bash /etc/rc.local
注意:如果配置/etc/fstab NFS自动挂载不成功 尝试
rc.local文件增加 mount -a
mount -a 是自动挂载 /etc/fstab 里面的东西