DR模式实验环境搭建
(1)清理之前隧道模式写的策略
(2)去除ipip模块
调度器和后端服务器都去除掉ipip模块
(3)调度器中配置DR模式下的规则,添加对外开放VIP
(4)后端服务器添加RIP
客户端测试:
可以正常访问,此时DR模式就搭建好了
问题:后端服务不能正常工作
模拟问题:关闭后端web2服务器
客户端访问时会出现下图所示结果,用户体验极差
如何避免不能正常工作的后端服务器所反馈的信息显示出来?
将它踢出服务器群组,等它可以正常工作时再引进
在lvs中DR模式下实现健康检测
配置后端的健康检查两种方式:
一种是使用第三方插件ldirectord,另一种是使用keepalived,实现高可用和健康检查
ldirectord方式实现健康检测:
(1)获取ldirectord安装包
(2)搭建第三方软件yum源(高可用)
(3)安装ldirectord插件,找到配置文件并修改,开启ldirectord
配置文件更改如下图所示:虚拟ip地址、后端服务器真实ip地址,fallback表示RS都不能正常工作时,访问我本机的80端口(一般情况企业的后端服务器都不会出现这种情况,除非是更新服务,访问调度器时会出现页面走丢了提示)
(4)测试:
停掉web2(server3)
客户端进行访问,用户是无感知的,用户访问不会受到影响,实现了健康访问
当服务器有问题,会自动把它踢除服务集群
两台后端服务器都停掉
调度器主机安装apache服务,关闭varnish,将端口8080改为80,并在默认发布目录下写入"您访问的页面走丢了",重启httpd服务
客户端访问时:lvs服务器会给客户端一个响应
当恢复web1(server2)后端服务器
客户端再次访问,资源就又回来了
keepalived方式实现健康检测:
keepalived介绍:
keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成,不需人工干涉。
主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器
失效转移(failover)是一种备份操作模式,当主要组件由于失效或预定关机时间的原因而无法工作时,这种模式中的系统组件(比如服务器、网络或数据库)的功能被转嫁到二级系统组件
问题引入:
当LoadBalance主机(调度器)不能正常工作时,客户就彻底不能访问了
解决方法:
设置调度器的master和调度器backup(主从)
在两台调度器上使用keepalived服务就可以将两个调度器关联在一起,keepalived检测两个调度器的工作情况
使用keepalived代理lvs,它具有lvs的功能,但同时可以有多个,有主有备用
当主挂了备用就去做轮询,当主好了备用就把任务还给主
当主调度器正常工作时,keepalived就会通知备用调度器自己可以正常工作,不需要接管自己的任务
当主调度器不能正常工作时,备份调度器就会自动去接管主调度器的工作,这个时候客户端访问依然可以正常访问到数据资源
实验:
(1)在物理机中创建一个快照node4(虚拟机server4),用来做备用调度器
(2)server1和server4虚拟机从物理机上获取keepalived安装包资源
(3)在server1和1server4主机上对keepalived安装包解压,安装C编译器和keepalived的依赖性软件包
(4)在server1和1server4主机上对keepalived安装包源码编译,安装keepalived时指定安装位置目录
(5)编辑主节点调度器的keepalived.conf配置文件
cd /usr/local/keepalived ##进入安装目录
ln -s /usr/local/keepalived/etc/keepalived /etc ##将配置文件做成软链接
/etc/init.d/ldirectord stop ##关闭之前的ldirectord健康检测
vim /etc/keepalived/keepalived.conf ##编辑配置文件
发邮件到本机
邮件发送来自谁
写入VIP
改为DR模式,添加后端服务器
开启keepalived健康检测服务
(6)编辑备用节点调度器的keepalived.conf 配置文件
将主节点的keepalived.conf 配置文件远程传输到备用节点家目录下
编辑配置文件,将里面的MASTER改为BACKUP,优先级改为50,比主节点(100)低的数值
开启keepalived健康检测服务
(7)测试
入口地址(VIP)自动添加到了主调度器上
172.25.254.100/32
删除ldirectord实验时手动添加的ip地址
物理机上执行curl 172.25.12.100命令,可以正常访问(轮询)
当主调度器可以正常工作,备份调度器不被使用,VIP没有显现出来
停止web2(server3)再去访问
依然是可以健康访问到数据资源
监控系统日志信息,停止web2(server3),主节点尝试三次连接它,没有连接上,认为它已经挂了,Keepalived检测到,就将它剔除服务器集群,同时使用web1服务器代替该服务器的工作
在主节点上安装邮件服务:yum install -y mailx
接收到邮件:web2(server3)状态是DOWN
开启刚才关闭的web服务器,再去访问
监控系统日志信息,开启刚才关闭web2(server3),当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成
实现两个lvs调度器之间轮询
监控系统信息日志,关闭server1上的keepalived后,发现入口地址漂移到了server4上,
客户端依然可以正常访问
当主节点再次开启之后,入口地址又回到主节点调度器上