文章目录
一、vrrp
1.1 vrrp相关术语
虚拟路由器:Virtual Router
- 虚拟路由器标识:VRID(0-255),唯一标识虚拟路由器
- VIP:Virtual IP
- VMAC:Virutal MAC (00-00-5e-00-01-VRID)
物理路由器:
- master:主设备
- backup:备用设备
- priority:优先级
虚拟路由器的主备不是通过master和backup决定的,而是通过priority优先级决定的
1.2 VRRP相关技术
通告:心跳,优先级等;周期性
通告:是不停的向外发送信息,宣告自己的主权,让其他路由器不要妄想抢班夺权
工作方式:抢占式,非抢占式,延迟抢占模式
抢占式:
主服务器宕机,过了一段时间修好了,再把主权抢过来
非抢占式:
主服务器宕机,过了一段时间修好了,原来的主就作为备了
安全认证:
- 无认证
- 简单字符认证:预共享密钥
- MD5
工作模式:
- 主/备:单虚拟路径器
- 主/主:主/备(虚拟路由器1),备/主(虚拟路由器2)
主/主:主/备(虚拟路由器1),备/主(虚拟路由器2)
环境:
有两台服务器
虚拟出两台虚拟路由器
第一台虚拟路由器中服务器1为主,服务器2为备,那么虚拟IP1就飘在服务器1上,真正工作的只有服务器1
第二台虚拟路由器中服务器2为主,服务器1为备,那么虚拟IP2就飘在服务器2上,真正工作的只有服务器2
优点:
提高了资源利用率:
这样主,备服务器同时干活,可以同时运行两个项目
同样有备份功能:
如果服务器1坏了,服务器2 将同时拥有虚拟IP1和虚拟IP2
缺点:
虽然有备份冗余功能但是对机器的性能要求非常高,当其中一台出现故障,本来一台运行一个任务,现在所有的业务全部压在了一台上,有十分大的风险
二、Keepalive
2.1 keepalived介绍
功能:
- 基于vrrp协议完成地址流动
- 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
- 为ipvs集群的各RS做健康状态检测
- 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务
2.2 Keepalived 架构
用户空间核心组件:
-
vrrp stack:VIP消息通告
-
checkers:监测real server(简单来说 就是监控后端真实服务器的服务)
-
system call:实现 vrrp 协议状态转换时调用脚本的功能
-
SMTP:邮件组件(报警邮件)
-
IPVS wrapper:生成IPVS规则(直接生成ipvsadm)
-
Netlink Reflector:网络接口(将虚拟地址ip(vip)地址飘动)
-
WatchDog:监控进程(整个架构是否有问题)
控制组件:
提供keepalived.conf 的解析器,完成Keepalived配置
IO复用器:
针对网络目的而优化的自己的线程抽象
内存管理组件:
为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限
2.3 Keepalived 相关文件
- 软件包名:keepalived
- 主程序文件:/usr/sbin/keepalived
- 主配置文件:/etc/keepalived/keepalived.conf
- 配置文件示例:/usr/share/doc/keepalived