问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Keepalived工作原理

发布网友 发布时间:2023-02-11 03:38

我来回答

1个回答

热心网友 时间:2023-09-30 03:52

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived采用是模块化设计,不同模块实现不同的功能。

keepalived主要有三个模块,分别是core、check和vrrp。

core :是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等

check : 负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析;可基于脚本检查对IPVS后端服务器健康状况进行检查

vrrp :VRRPD子进程,VRRPD子进程就是来实现VRRP协议的

keepalived 配置文件:

Keepalived 配置文件为:keepalived.conf;

主要有三个配置区域,分别是:全局配置(Global Configuration)、VRRPD配置、LVS配置 

全局配置又包括两个子配置: 全局定义(global definition) 静态IP地址/路由配置(static

ipaddress/routes)

Keepalived服务VRRP的工作原理:

Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主宕机的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务

在Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快

出现脑裂的原因:

高可用服务器对之间心跳线链路发生故障,导致无法正常通信。

因心跳线坏了(包括断了,老化)。

因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)

因心跳线间连接的设备故障(网卡及交换机)

因仲裁的机器出问题(采用仲裁的方案)

高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。

高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败

其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等。

如何解决脑裂:

① 同时使用串行电缆和以太网电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息。

② 当检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如Stonith、feyce)。相当于备节点接收不到心跳消患,通过单独的线路发送关机命令关闭主节点的电源。

③ 做好对裂脑的监控报警(如邮件及手机短信等或值班).在问题发生时人为第一时间介入仲裁,降低损失。管理员可以通过手机回复对应数字或简单的字符串操作返回给服务器.让服务器根据指令自动处理相应故障这样解决故障的时间更短。

一、实验环境

操作系统:CentOS7.2 Minial

###################

serverA:

eno16777736    192.168.1.104

eno33554984    192.168.1.105

##########################

serverB:

eno16777736    192.168.1.109

eno33554984    192.168.1.106

###########################

vip01:192.168.1.111

vip02:192.168.1.112

二、设置防火墙

/usr/bin/firewall-cmd --direct

--permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination ${组播地址} --protocol vrrp -jACCEPT

/usr/bin/firewall-cmd --reload

三、软件安装

在serverA和serverB上

# rpm -ivh --force libnl3-3.2.28-4.el7.x86_64.rpm

# rpm -ivh --forcelm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm

# rpm -ivh --force net-snmp-agent-libs-5.7.2-32.el7.x86_64.rpm

# rpm -ivh --force net-snmp-libs-5.7.2-32.el7.x86_64.rpm

# rpm -ivh --force ipset-libs-6.38-3.el7_6.x86_64.rpm

# rpm -ivh --force keepalived-1.3.5-6.el7.x86_64.rpm

四、配置keepalived

如果不使用 VRRP Sync Groups 如果keepalived 主机有两个网段,每个网段开启一个VRRP 实例,如果对外的网段出现问题,VRRPD认为自己仍然认为健康,因此 Master和Backup 相互切换,从而导致服务不能正常使用,同时高可用集群也不能正常运行,Sync group 就是为了解决该问题,可以把两个实例放进同一个Sync Group 中!

serverA

# vim /etc/keepalived/keepalived.conf

######################################

! Configuration File for keepalived

global_defs {

router_id LVS_DEVEL

}

vrrp_sync_group VG1 {

group {

VI_1

VI_2

}

}

vrrp_instance VI_1 {

state BACKUP

interface eno16777736

virtual_router_id 51

priority 100

nopreempt

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_interface {

eno16777736

eno33554984

}

virtual_ipaddress {

192.168.1.111

}

}

vrrp_instance VI_2 {

state BACKUP

interface eno33554984

virtual_router_id 52

priority 100

nopreempt

advert_int 1

authentication {

auth_type PASS

auth_pass 2222

}

track_interface {

eno16777736

eno33554984

}

virtual_ipaddress {

192.168.1.112

}

}

serverB

# vim /etc/keepalived/keepalived.conf

######################################

! Configuration File for keepalived

global_defs {

router_id LVS_DEVEL

}

vrrp_sync_group VG1 {

group {

VI_1

VI_2

}

}

vrrp_instance VI_1 {

state BACKUP

interface eno16777736

virtual_router_id 51

priority 90

nopreempt

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_interface {

eno16777736

eno33554984

}

virtual_ipaddress {

192.168.1.111

}

}

vrrp_instance VI_2 {

state BACKUP

interface eno33554984

virtual_router_id 52

priority 90

nopreempt

advert_int 1

authentication {

auth_type PASS

auth_pass 2222

}

track_interface {

eno16777736

eno33554984

}

virtual_ipaddress {

192.168.1.112

}

}

五、测试

在serverA 和 serverB上

# systemclt start  keepalived

在serverA
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
地球内部能量来源于什么 地球内部的热量究竟是从何而来?地球存在了这么久为什么地热一直没散 ... 失当造句 举措失当造句用举措失当造句 眼睛提示你的9种疾病 中年人眼睛突然模糊 我妈妈说她最近视力不如从前了 《少年派的奇幻漂流》结局 《少年派的奇幻漂流》三个故事和三个故事的解读? - 知乎 今天,我后面的女生拿了我的修正带然后在我的修正带刻上我的名字,这是... ps保存jpg模式为什么发出来没有原图了 ...保存在电脑上的盘里怎么找不到,我存的是JPG格式,存在E盘,可打开那 ... 不好意思我删你微信了,怎回复 梦见地裂地陷逃生成功是什么意思 注册一个新的怎么注册 三星l878e手机通话记录为什么不显示姓名 三星s5电信版为什么电话本不显示,通话记录也不显示姓名 如何用新的手机号注册 蒸汽熨斗如何规范使用 蒸汽熨斗正确使用方法【详解】 蒸汽熨斗如何使用 蒸汽熨斗使用技巧介绍【详解】 做梦一起出去旅游找不到团队了我自己走丢了但是看到了家人 梦见出去旅游时候找不到她人 5173代购能用外币付款吗? 爱步女鞋正品代购17号的下午是真的吗 海口美兰良奕昆百货代购靠谱吗 买17号的票 代购点提早10天是几号去买 微博十七崽的代购是真的吗 华为荣耀6手机不能开机 补丁怎么用吖`压缩夹里的文件好多``又呒文件可以使用` 添加到压缩夹替换了源文件,怎样找回 keepalived安装与配置 文竹是草本还是木本,是什么样子 文竹是什么科的植物 文竹属于什么科植物 2020年江苏省二级造价工程师考试时间表 微博主页标识怎么去掉 换绑定手机号,那原来的手机号能重新申请微信吗 减肥先做有氧运动还是无氧运动 my ideal jo是当一名会计师英语作文 奇妙的梦zengme 美图V4手机强制重启键跟M4是一样的吗? 梦见替别人缝衣服 孕妇梦见缝衣服是什么意思? 梦见给别人缝衣服补衣服 梦见缝衣服什么意思 中国银行网上银行贵金属的买入价卖出价是什么意思? 女人梦见豹子是什么意思? 女人梦到豹子是什么意思 如何一键安装win7旗舰版 win7旗舰版一键安装教程 ...For pad 每次发出的消息后面都有个支持个人表情发送... QQ fou pad支持表情导入么?我想弄个阿狸表情进去!!QQ通讯录支持表情导入...