前言
前面提到了基于heartbeat的LVS高可用方案,今天带来了另一个解决方案:基于Keepalived实现LVS双主高可用集群。什么是keepalived?Keepalived从名字就能看出来。保活是指在网络中保持在线,称为高可用性或热备,以防止单点故障的发生。本文将详细介绍Keepalived的工作原理以及高可用性解决方案的实现。
相关介绍
Keepalived简介
Keepalived采用VRRP(虚拟路由器冗余协议)热备份协议,通过软件实现linux服务器的多机热备份功能。VRRP是路由器的备份解决方案,多台路由器组成一个热备用组。通过共享的虚拟IP地址向外界提供服务;每个热备组中只有一个主服务器同时提供服务,其他服务器处于冗余状态。如果当前在线的服务器出现故障,其他服务器将自动接管(优先级决定替换顺序)虚拟IP地址以继续提供服务。
工作原理
保持激活组件简介
核心:Keepalived的核心,复杂主进程的启动和维护,全局配置文件的加载和解析等。
检查:负责健康检查,包括各种健康检查方法,以及相应的配置分析,包括LVS配置分析。
Vrrp:Vrrp子流程,用于实施VRRP协议。
Libip*:LVS相关
从图中可以看出,两个子进程都在系统看门狗的监管下,每个子进程负责自己的事务。healthchecker的子进程负责检查每台服务器的健康状况,如HTTP、LVS等。如果healthchecker的子进程检查到主服务器上的服务不可用,它将通知本地计算机上的VRRP子进程,并要求他删除公告,删除虚拟IP,并切换到备份状态。
高可用性解决方案
实验拓扑
配置过程
高可用性集群配置前提
时间同步,基于主机名的相互通信,SSH相互信任
请确保两个节点之间的时间同步,并使用ntpdate与时间服务器同步。
[root@node1 ~]# ntpdate cn.pool.ntp.org基于主机名相互通信。
[root@node1 ~]# vim /etc/hosts 172.16.10.123 node1.scholar.com node1 172.16.10.124 node2.scholar.com node2 [root@node1 ~]# vim /etc/sysconfig/network HOSTNAME=node1.scholar.com [root@node1 ~]# uname -n node1.scholar.com #两个节点都需如上 *** 作宋承宪互信
[root@node1 ~]# ssh-keygen -t rsa -P '' [root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2 [root@node2 ~]# ssh-keygen -t rsa -P '' [root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1 [root@node1 ~]# date; ssh node2 'date' #测试 Tue Jun 16 13:31:39 CST 2015 Tue Jun 16 13:31:39 CST 2015所需的程序
配置keepalived
将配置文件同步到另一个节点
[root@node1 ~]# scp /etc/keepalived/keepalived.conf node2:/etc/keepalived/ keepalived.conf 100% 2196 2.1KB/s 00:00修改另一个节点配置文件。
[root@node2 ~]# vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass ab007 } virtual_ipaddress { 192.168.12.23 } } vrrp_instance VI_2 { state MASTER interface eth0 virtual_router_id 61 priority 100 advert_int 1 authentication { auth_type PASS auth_pass sr200 } virtual_ipaddress { 192.168.13.23 } } #其他配置不变服务器配置
配置内核参数和VIP
准备测试页
#两个RS节点都执行以上 *** 作测试页
保持活动节点准备紧急页面
测试
开始保持活动状态
检查两个节点的ip和ipvs规则。
#两个节点各生成了两组规则,因为VIP只有一组,所以只有一组生效访问测试
模拟其中一个主节点的故障。
[root@node1 ~]# service keepalived stop再次检查两个节点的ip和ipvs规则。
可以看出,一个主节点挂掉后,所有的VIP和ipvs规则都会转移到另一个节点,所以访问不会受到影响,这里就不做测试了。如果故障节点重新联机,资源将再次返回到工作节点。
我们来模拟两个RS节点失效,看看sorry_server能不能工作。
[root@scholar ~]# service httpd stop #两个RS全部停止服务查看ipvs规则
真实服务器全部离线,应急服务器在线。
抱歉_服务器响应成功。至此,基于Keepalived实现LVS双机高可用集群的实验已经完成。
结束
这就是基于keepalived实现LVS双主机和高可用性的解决方案。通过实验可以看出,使用Keepalived构建LVS集群更加简单易用。如果在实验过程中遇到问题,可以留言。以上仅供个人学习。如有错漏,请勿喷~~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)