Keepalived基本概述
1、什么是高可用
简单理解:两台机器启动着相同的业务系统,当有一台机器宕机,另外一台服务器能快速的接管,对于访问的用户是无感知的。 专业理解:高可用是分布式系统架构设计中必要的一环,主要目的: 减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。
如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。
参考文章:https://www.cnblogs.com/shizhiyi/p/7750530.html
2、高可用通常使用什么软件?
通常服务高可用我们选择使用keepalived软件实现
3、keepalived是如何实现高可用的?
keepalived软件是基于VRRP协议实现的。VRRP虚拟路由冗余协议,主要用于解决单点故障问题。
4、那VRRP是如何诞生的,VRRP的原理又是什么?
4.1、问题点1:路由器故障
比如公司的网络是通过网关转换进行上网的,那如果该路由器故障了,网关无法转发报文了,
此时所有人都将无法上网,这么时候怎么办呢?
4.2、增加一个Backup路由的问题
通常做法是增加一个Backup路由,然后修改用户PC电脑网关指向为Backup。
但这里有几个问题? F1: 如果用户过多修改起来是不是会非常的麻烦? F2: 如果用户将指向都修改为Backup,那Master如果恢复了该怎么办? F3: 这里有人会说了,我们直接将Backup网关IP配置为Master网关IP不就可以了吗? Q1: 这种做法不行的,为什么? 因为PC第一次是通过ARP广播寻找到Master网关的Mac地址与IP地址,PC则会将Master网关的对应IP与MAC地址写入ARP缓存表中,那么PC第二次则会直接读取ARP缓存表中的MAC地址与IP地址,然后进行数据包的转发。
此时PC转发的数据包还是会发给Master。(除非PC的ARP缓存表过期,在次发起ARP广播的时候才能正确获取Bakcup的Mac地址与对应的IP地址。)
4.3、如何才能做到出现故障自动转移
此时VRRP就应运而生,我们的VRRP其实是通过软件或硬件的形式在Master和Backup外面增加一个虚拟MAC地址(简称VMAC)与虚拟IP地址(简称VIP)。
那么在这种情况下,PC请求VIP的时候,无论是Master处理还是Backup处理,PC仅会在ARP缓存表中记录VMAC与VIP的对应关系
5、高可用keepalived使用场景
通常业务系统需要保证7x24小时不DOWN机, 比如公司内部OA系统,每天公司人员都需要使用,则不允许Down机。作为业务系统来说随时随地都要求可用。
6、广播、组播
6.1、什么是广播
广播:比如讲课,你说一句话,教室所有的人能收到。
6.2、什么是组播
比如解决问题,整个教室只有特定的人群才能收到。组播是有特定的成员,是一种可控的广播,组播成员需要加入“组播组”才能收到该组播的信息。
7、高可用核心概念总结
1、如何确定谁是主节点谁是备节点。(投票选举?优先级?) 2、如果Master故障,Backup自动接管,那Master恢复后会夺权吗?(抢占式、非抢占式) 3、如果两台服务器都认为自己是Master会出现什么问题?(脑裂)