keepalived基本原理

1.对于任何一个集群来说,满足业务功能需求是一个方面,但是我们要知道,所有的解决方案都是为了实现一个目的:业务项目的稳定;
2.LVS为我们带来了高扩展,但是如果LVS服务器挂了,后面再多的扩展也没用,客户访问不到,所有就需要我配合高可用,提高业务的稳定性和连续性;
3.例如网站,网站的稳定性体现在两个方面:网站可用性和恢复能力
 3.1 可用性:
  它主要有这么一个指标来评判:
  A = MTBF/(MTBF+MTTR)
  MTBF(Mean Time Between Failure),即平均故障间隔时间,表示产品多长时间出现一次问题。
  MTTR(Mean Time To Restoration),即平均恢复时间,表示产品从故障状态到稳定状态的维修花费时间




 3.2 恢复能力:
  恢复能力,指的是一个网站从发生故障到故障修复这个过程的能力,而这个能力涉及到两个子内容:数据恢复能力和业务恢复能力。
  数据恢复能力
  RPO(Recovery Point Obejective),是指业务系统所允许的在灾难过程中的最大数据丢失量,用来衡量高可用系统的数据冗余备份能力。
  业务恢复能力
  RTO(Recovery Time Objective),是指信息系统从灾难状态恢复到可运行状态所需的时间,用来衡量高可用系统的业务恢复能力。
4.keepalived来实现我们上述所说的高可用
 4.1 keepalived的基本了解:
 4.1.1. 本质是一个路由器软件,用C语言编写的开源软件;
 4.1.2. 基于ipvs功能进行二次整合实现负载均衡功能;
 4.1.3. 基于VRRP协议进行二次整合实现高可用功能;
 4.1.4. 借助大量功能脚本实现高质量的状态检查功能;
 4.1.5. 可以与其他软件整合使用;
5.软件结构
 5.1 核心模块:IPVS、NETLINK(运行在内核空间)
 5.1.1 IPVS: IPVS主要实现虚拟主机的负载均衡功能
 5.1.2 NETLINK: 主要用于提供高可用性的路由及网络功能
 5.2 功能组件:WatchDog、Checkers、VRRP Stack、IPVS wrapper、Netlink Reflector(运行在用户空间)
  WatchDog:监控Checkers和VRRP进程;
  Checkers: 对服务器运行状态检测和故障隔离
  VRRP Stack: 组合和切换主备节点的功能
  IPVS wrapper:将ipvs规则发送到IPVS模块的功能
  Netlink Reflector:实现VIP的设置和切换功能