下文给大家带来基于 NAT(地址转换模式)构建 LVS 负载均衡方法的详细介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用亿速云在行业内累计的经验来做一个解答。
实现结果如下:
[root@localhost /]# vim /etc/sysctl.conf ................... // 省略部分 net.ipv4.ip_forward = 1 [root@localhost /]# sysctl -p net.ipv4.ip_forward = 1
配置负载分配策略:
[root@localhost /]# modprobe ip_vs # 加载 ip_vs 模块 [root@localhost /]# cat /proc/net/ip_vs # 查看版本信息,弹出如下所示,说明该模块已启动 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn
ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块来添加、删除服务器节点,以及查看群集的运行状态(需要手动安装)。
[root@localhost /]# yum -y install ipvsadm # 安装 ipvsadm [root@localhost /]# ipvsadm -v # 查看版本信息 ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
[root@localhost /]# ipvsadm -C # 清除原有策略 [root@localhost /]# ipvsadm -A -t 200.0.0.1:80 -s rr [root@localhost /]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.10:80 -m -w 1 [root@localhost /]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.20:80 -m -w 1 [root@localhost /]# ipvsadm-save # 保存策略 -A -t localhost.localdomain:http -s rr -a -t localhost.localdomain:http -r 192.168.1.10:http -m -w 1 -a -t localhost.localdomain:http -r 192.168.1.20:http -m -w 1 [root@localhost /]# systemctl enable ipvsadm.service # 设置为开机自启
配置节点服务器:
web1 配置:
[root@localhost /]# yum -y install httpd # 安装 http 服务 [root@localhost /]# echo test1.com > /var/www/html/index.html # 准备测试网页 [root@localhost /]# systemctl start httpd # 开启服务 [root@localhost /]# systemctl enable httpd # 开机自启
web2 配置:
[root@localhost /]# yum -y install httpd # 安装 http 服务 [root@localhost /]# echo test2.com > /var/www/html/index.html # 准备测试网页 [root@localhost /]# systemctl start httpd [root@localhost /]# systemctl enable httpd
当然,在实际生产环境时,网页内容都是一样的,这里为了区分验证从实验的成功与否,我写了两个内容不同的测试文件。
测试一下 LVS 是否在工作:
刷新网页:
三、NFS 共享存储服务:
搭建 NFS 共享使两台web服务器共同挂载同一个NFS服务器共享的目录,以此来提供相同的网页文件。
安装 nfs-utils、rpcbind 软件包:
[root@localhost /]# yum -y install nfs-utils rpcbind # 安装软件包 [root@localhost /]# systemctl enable nfs # 设置为开机自启 [root@localhost /]# systemctl enable rpcbind
这两软件包我使用 rpm-qa 在Centos 7 上查看的时候是有的,具体这里本人也不是很清楚到底是不是安装系统时自带的,所以在做时还是敲一下这命令吧,以防万一嘛,如有大佬知道的,还烦请告知小弟。(拜谢)
设置共享目录:
[root@localhost /]# mkdir -p /opt/wwwroot # 创建共享目录 [root@localhost /]# vim /etc/exports # 修改 NFS 主配置文件 /opt/wwwroot 192.168.2.0/24(rw,sync,no_root_squash) --rw:允许读写,ro 为只读 --sync:表示同步写入 --no_root_squash:当客户机以 root 身份访问时赋予本地的 root 权限(默认是 root_squash,将作为 nfsnobody 用户降权对待) [root@localhost wwwroot]# echo nfs.test.com > index.html # 准备测试文件
[root@localhost /]# systemctl restart rpcbind # 重启服务使配置生效 [root@localhost /]# systemctl restart nfs [root@localhost /]# showmount -e # 查看本机发布的共享目录 Export list for localhost.localdomain: /opt/wwwroot 192.168.2.0/24
在两台 web 主机上挂载 NFS 共享目录,并配置为开机自动挂载
[root@localhost /]# mount 192.168.2.1:/opt/wwwroot /var/www/html/ # 在两台 web 主机上都执行此操作 [root@localhost /]# df -hT /var/www/html/ # 查看是否挂载成功 Filesystem Type Size Used Avail Use% Mounted on 192.168.2.1:/opt/wwwroot nfs4 50G 4.0G 47G 8% /var/www/html [root@localhost /]# vim /etc/fstab # 设为开机自动挂载 192.168.2.1:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
测试验证:
.
我们看到 NFS 上写的测试文件已经访问成功,但无论怎么刷新都不会变,这就说明 LVS 负载均衡也就成功了。
当LVS服务器重启后,LVS规则将会丢失,这就用到了备份,需要注意的是,备份时的主机名和恢复时的主机名必须一致,并且需要注意网卡优先的问题,否则在恢复后,会发现VIP(群集的虚拟IP)变成了LVS服务器的另一个IP地址
[root@localhost /]# ipvsadm-save > /etc/sysconfig/ipvsadm.bak # 先备份一分 [root@localhost /]# ipvsadm -ln # 查看 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn [root@localhost /]# ipvsadm-restore < /etc/sysconfig/ipvsadm.bak # 恢复策略 [root@localhost /]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 200.0.0.1:80 rr # 注意这里是否还是原来的 VIP -> 192.168.1.10:80 Masq 1 0 0-> 192.168.1.20:80 Masq 1 0 0
看了以上关于基于 NAT(地址转换模式)构建 LVS 负载均衡方法的详细介绍,如果大家还有什么地方需要了解的可以在亿速云行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,亿速云技术工程师在行业内拥有十几年的经验了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。