一、客户需求:
目前文件管控应用节点处理能力不足,需要对现有的平台进行扩容。当前厂商已经不对该系统进行维护,需要对平台进行节点能力扩容。
二、扩容思路:
复制文件管控应用文件处理节点后端程序至扩容节点服务器,挂载NFS磁盘到扩容磁盘以提供文件上传下载服务
三、解决方案:
在扩容节点安装NFS客户端,并挂载NFS服务端目录到NFS客户端。
搭建本地测试环境:
1、NFS服务架构: 主机IP | 角色 |
192.168.0.10 | NFS服务器 |
192.168.0.11 | NFS客户端1 |
192.168.0.12 | NFS客户端2 |
测试效果:NFS客户端1在NFS服务端目录创建的文件,NFS客户端2也通查看修改
2、NFS服务端搭建 1.安装nfs及rpcbind
- yum -y install nfs-utils rpcbind
复制代码
2.设置nfs服务开机自启并启动服务
- systemctl enable nfs.service
复制代码- systemctl enable rpcbind.service
复制代码- mkdir -p /nfs/data
- chmod -R 777 /nfs/data
复制代码- vi /etc/exports
- #加入以下内容,注意ip填写服务端的ip
- /nfs/data 192.168.0.10/22(rw,no_root_squash,no_all_squash,sync)
- exportfs -a(或exportfs -r)
复制代码 注:客户端ip后需加上端口号,否则无法操作ip 后面括号里的内容是权限参数,其中:
rw 表示设置目录可读写。
sync 表示数据会同步写入到内存和硬盘中,相反 rsync 表示数据会先暂存于内存中,而非直接写入到硬盘中。
no_root_squash NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
no_all_squash 不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。如果有多个共享目录配置,则使用多行,一行一个配置。保存好配置文件后,需要执行以下命令使配置立即生效:exportfs -a(或exportfs -r)
NFS的防火墙除了固定的port111、2049外,还有其他服务如rpc.mounted等开启的不固定的端口,因此我们需要设置NFS服务的端口配置文件。
- vi/etc/sysconfig/nfs文件,将下列内容的注释去掉,如果没有则添加:
- RQUOTAD_PORT=1001
- LOCKD_TCPPORT=30001
- LOCKD_UDPPORT=30002
- MOUNTD_PORT=1002
复制代码保存好后,将端口加入到防火墙允许策略中。在bash命令行执行:
- firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=1001/tcp --add-port=1001/udp --add-port=1002/tcp --add-port=1002/udp --add-port=30001/tcp --add-port=30002/udp --permanent
- firewall-cmd --reload
复制代码
- showmount -e 192.168.0.10
复制代码
3、NFS客户端端搭建
- mkdir -p /nfs/data
- chmod -R 777 /nfs/data
复制代码- mount 192.168.0.10:/nfs/data /nfs/data
- df -hT #查看磁盘挂载情况
复制代码在/etc/fstab或者/etc/rc.d/rc.local文件中写入挂载命令,保存并重启机器。
- mount -t nfs 192.168.0.10:/data/share /mnt/share/ -o nolock,nfsvers=3,vers=3
复制代码
4、测试在NFS客户端1上创建test.txt文本,随机写入一些内容,在NFS服务端或NFS客户端2中查看数据,可以看到文件及内容,NFS远程目录挂载搭建成功。在客户机上安装NFS客户端服务即可。