基于DR模式的LVS集群案例
一.环境描述
如上图所示,后端是一个NFS服务器实现共享文件,调度器是一个高可用的环境,
这是基于LVS的DR模式实现的一个负载均衡集群。
keepalived在于LVS结合使用的时候,会自动实现很多功能。
比如,第一点我们可以修改keep alived的配置文件,当这个软件启动的时候,会自动帮助我们在调度器上自动帮助我们配置虚拟服务,自动帮助我们添加real server的信息。
此时就使用不到了ipvsadm命令。
第二keepalived能够帮助我们自动检测后端real server的健康状态,如果后端服务器的是不健康的,那么此时调度器就不会再向这个不健康的后端服务器转发客户端请求。
keepalived结合LVS集群使用时的优势:
1.实现调度器的HA
2.自动生成虚拟服务。real server
3.对real server进行健康状态检查
在NFS服务器上添加一个新的磁盘,将来使得NFS服务器来共享存储空间。
1.配置NFS共享数据目录
如上图所示,将共享磁盘挂载上,
如上图所示,安装NFS相关的软件。
如上图所示,想要将NFS服务器上的目录共享到指定机器,并且配置目录权限,就需要将信息编写到/etc/exports文件中。
在NFS服务器共享空间上创建测试文件。
2.在所有的real server上安装httpd,连接后端存储。
在实际业务中,肯定是要在阿帕奇上创建虚拟主机的形式去部署网站的。
如上图所示,我们在web01上安装完阿帕奇之后,需要我们将NFS的共享目录挂载到阿帕奇软件默认的网页目录,使得/var/www/html下的内容是NFS服务器的共享目录中的文件内容。
此时表示web01服务器默认不支持这个NFS的文件系统格式,那么我们下载nfs-utils软件,
如上图所示,此时表达挂载成功。NFS文件共享的目的达到。
随后第二个web02的配置跟第一个web01的配置一样,
如上图所示,此时web02机器上共享存储成功。
3.在所有real server配置VIP,修改arp内核参数。
如上图所示,第一个real server的机器已经配置成功,
如上图所示,我们可以直接将修改好的web01上的内核文件复制给web02一份,随后使用sysctl -p使得内核参数生效。
我们还需要在web02上添加VIP地址。
4.在调度器上分别安装keepalived,ipvsadm软件,
此时的ipvsadm软件的作用是查看keepalived软件有没有帮助我们在调度器上创建虚拟服务成功,
如上图所示,两个调度器上一摸一样的安装这两个软件。
5.编辑主调度器的keepalived配置文件
keepalived实现调度器高可用的原理性知识:把两个调度器放到一个虚拟的keepalived的组中,
在这一个组里面,keepalived就实现了一个互为备份,两个调度器谁当主调度器谁当被调度器,需要给这两个调度器配置优先级,其实就是阿拉伯数字,取值在1-255之间。谁的优先级高谁就是主调度器。
优先级大的就是主调度器,小的就是被调度器。
如上图所示,这是keepalived软件的全局配置,
如上图所示,这是keepalived软件用来实现调度器备份的,这一块配置就是用来实现调度器的高可用的。
这一块配置就是用来配置虚拟的组。
如上图所示,从36行往后就是keepalived软件跟LVS集群结合使用的时候,才会使用到的配置。
来帮助LVS集群自动生成虚拟服务,添加real server信息到LVS集群的。
如果keepalived软件不是和LVS集群配置使用,后面的配置就用不到。
所有的空格都不要删除,不要乱动,因为这个keepalived软件没有语法检查的功能,当因为语法问题启动失败的时候,也没有办法去确定语法问题出现在哪里。
全局配置大多是用来指定邮箱的地址。
如上图所示,这行配置是用来指定这个调度器被keppalived添加到虚拟的组中时,调度器在这个组中的名称,一般是使用主机名来标识这个调度器在虚拟的组中的名称。
如上图所示,这是用来配置调度器的高可用的组。此时的VI_1就是组的名称。
此时我们要将192.168.140.10和192.168.140.11放到同一组里面去,只要确保组的名称一致,就可以确定这两个调度器在同一个组里面。
然后是这个机器在组里面的身份是主调度器还是被调度器。
后面跟上的网卡名称,代表的就是这个VIP出现在那块网卡上。一般指定物理网卡,
随后,这个数字代表的就是这个组的ID,将来将两台机器放到同一个组里面的时候,需要保证,这两个调度器在同一个组,组名要一致,组的ID要一致。
随后配置的就是这个机器在高可用的组里面的优先级,是多少。
随后是心跳信息,多长时间主调度器向被调度器发送一次心跳信息,单位是秒。
随后啊authenticcation是给这个调度器设置一个密码验证,密码验证通过之后两台调度器才能加入到同一个组里面去。
随后是VIP地址信息。
最后就是使用keepalived与LVS集群结合使用,将来让keepalived来帮助我们生成虚拟服务,并且为虚拟服务添加后端的real server信息。
如上图所示,这是创建虚拟服务,并且配置参数。
其中的delay_loop 6
是调度器每隔6秒检查一次后端服务器的可用状态,确保客户端的请求不向故障节点转发。
使用的调度算法是轮询。
负载均衡类型是DR
持久性连接时长是50秒
指定的协议类型是TCP协议。
其中ipvsadm -A -t 192.168.140.100:80 -s rr -p 300
指定协议为TCP协议,指定调度算法是轮询,指定持久性连接时间是300
如上图所示,这是给虚拟服务添加real server机器。并且配置权重值是1
其中的SSL_GET是调度器检查后端服务器健康状态一种方法。
如上图所示,这是换了检查后端服务器的方法为TCP_CHECK
6.编辑备调度器的配置文件
复制/etc/keepalived/keepalived.conf文件到备调度器上,
如上图所示,修改备调度器的ID,
如上图所示,这是修改备调度器的状态为BACKUP,VIP地址出现的网卡位置应该是物理网卡。
配置优先级是50
7.分别启动keep alived服务。
1)验证VIP地址,只在主调度器上出现。
如上图所示,VIP地址只会出现在主调度器上,
如上图所示,VIP地址不会出现在备调度器上。除非主调度器挂了。
如果VIP地址在两台调度器上同时作用,那么此时就发生了HA集群的脑裂,造成竞争资源。
2)验证虚拟服务
如上图所示,我们去查看负载均衡表。
这个负载均衡表在备调度器上,也有但是不会生效,因为虚拟服务是基于VIP地址实现的。
3)测试访问服务
4)停止主调度器,验证VIP地址是否故障转移