外观
负载均衡后端服务器通过NFS实现文件管理
背景说明
在做负载均衡时有多台 Web 服务器提供访问服务,通过负载均衡器调度分发。但如果将网站文件都分别部署在所有 Web 服务器上,则需要对所有 Web 服务器都进行文件维护,同时需要考虑文件同步问题,这将带来极大的工作量。
解决方案可以将网站文件部署在 NFS 文件服务器上,多台 Web 挂载文件服务器的分区,这样只需维护 NFS 文件服务器上的网站文件即可。方便扩展 Web 服务器的同时,也极大降低了工作量。
本教程介绍 Linux CentOS 7.x 下的 NFS 服务端与客户端的搭建。
准备工作
Server 端:文件服务器 1 台
Client 端:WEB 服务器 1 台或以上
Server 端文件服务器部署
1、安装 NFS
yum install nfs-utils rpcbind -y
2、将 NFS 和 rpcbind 加入开机启动
systemctl enable nfs
systemctl enable rpcbind
3、启动 NFS 和 rpcbind
systemctl start nfs
systemctl start rpcbind
4、配置/etc/exports
注意:文件内容请根据实际情况修改,主要是 web 服务器的内网 ip 填写正确(这里的 192.168.0.2 与 192.168.0.3 表示 2 台 Web 服务器的内网 IP)
/home/wwwroot 192.168.0.2(rw,async,root_squash) 192.168.0.3(rw,async,root_squash)
括号内参数说明:
rw 在 NFS 卷上同时允许读取和写入请求。 ro 在 NFS 卷上只允许读取请求。 sync 只有在更改已提交到稳定存储后才会对请求进行回复。 (默认) async 此选项允许 NFS 服务器违反 NFS 协议并在该请求所做的任何更改已提交到稳定存储器之前对请求进行回复。 secure 此选项要求请求源自小于 IPPORT_RESERVED(1024)的 Internet 端口。 (默认) insecure 此选项接受所有端口。 wdelay 如果其怀疑另一个相关的写入请求可能正在进行或可能很快到达,则延迟向磁盘提交写入请求。 (默认) no_wdelay 如果同时设置了异步,此选项不起作用。如果 NFS 服务器怀疑另一个相关的写入请求可能正在进行或可能很快到达,则 NFS 服务器通常会将写入请求延迟提交给磁盘。这允许多个写入请求提交到磁盘,其中一个操作可以提高性能。如果 NFS 服务器主要接收小的无关请求,这种行为实际上可能会降低性能,因此 no_wdelay 可用于关闭它。 no_subtree_check 此选项禁用子树检查,它具有温和的安全影响,但可以提高某些情况下的可靠性 root_squash 将请求从 uid / gid 0 映射到匿名 uid / gid。请注意,这不适用于可能同样敏感的任何其他 uid 或 gids,例如用户 bin 或组工作人员。 all_squash 将所有 uids 和 gids 映射到匿名用户。用于 NFS 导出的公共 FTP 目录,新闻 spool 目录等。 no_all_squash Turn off all squashing. (Default) anonuid=UID 这些选项显式设置匿名帐户的 uid 和 gid。此选项主要适用于 PC / NFS 客户端,您可能希望所有请求显示为来自一个用户。例如,在下面的示例部分中考虑/ home / joe 的导出条目,它将所有请求映射到 uid 150。
5、检查是否生效
exportfs -rv #配置立即生效
showmount -e #查看NFS共享的目录
如显示类似于以下内容,表示设置成功 Export list for VM_16_4_centos: /home/wwwroot 192.168.0.2,192.168.0.3
客户端配置
1、安装 NFS
yum install nfs-utils rpcbind -y
2、将 NFS 和 rpcbind 加入开机启动
systemctl enable nfs
systemctl enable rpcbind
3、启动 NFS 和 RPCbind
systemctl start nfs
systemctl start rpcbind
4、配置挂载分区/etc/fstab
注意:这里的 192.168.0.1 是指 NFS 文件服务器的内网 ip, 请以实际情况为准
192.168.0.1:/home/wwwroot /home/wwwroot nfs defaults,_netdev 0 0
5、检查挂载
mount -a
df -TH
此时可以看到挂载的/home/wwwroot 分区为 192.168.0.1(如下所示) 192.168.0.1:/home/wwwroot nfs4 53G 1.6G 49G 4% /home/wwwroot 注意:每台 web 服务器都需要安装和挂载
小结
以本教程为例,文件存储在 NFS 文件服务器的/home/wwwroot 上,而每台 web 服务器已通过 nfs 挂载文件服务器路径,在 web 服务(比如 apache)中直接调用/home/wwwroot 地址,这样程序文件的部署和修改只需在文件服务器上操作即可。
额外说明
如 NFS 文件服务器开启防火墙则有可能造成 Web 服务器挂载失败,可关闭防火墙或做如下配置
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload