引言
- 某台RealServer down了,怎么办? --- 健康检测
- LVS本身down了,怎么办?- --LVS冗余
- Keepalived – LVS管理软件
– 健康检测:支持4/7监测;
– 主备冗余:采用VRRP协议的HeartBeat;
– 如何配置?--- 配置文件
Keepalived –f /etc/keepalived/keepalived.conf
一. LVS相关概念
1)LVS
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
特点:
- 可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。
- 在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,VS/NAT技术(Virtual Server via Network Address Translation)。
- 在分析VS/NAT的缺点和网络服务的非对称性的基础上,提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling)
- 以及通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。
- VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。不管使用哪种技术,LVS都不直接处理请求,而是将请求转发到后面真正的服务器(Real Server)。不同的机制,决定了相应包如何返回到客户端。。
2)负载均衡
负载均衡(Load Balance)是集群技术(Cluster)的一种应用。指将负载(工作任务)进行平衡、分摊到多个单元操作上进行运行,从而提高并发处理能力。
作用:
- 解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力)
- 提供故障转移,实现高可用。
- 通过添加或者减少服务器数量,提供网站伸缩性(扩展性)。
- 安全防护
3)LVS工作原理
二. Keepalived相关概念
1)Keepalived
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
功能:
- 通过IP漂移,实现服务的高可用:服务器集群共享一个虚拟IP,同一时间只有一个服务器占有虚拟IP并对外提供服务,若该服务器不可用,则虚拟IP漂移至另一台服务器并对外提供服务;
- 对LVS应用服务层的应用服务器集群进行状态监控:若应用服务器不可用,则keepalived将其从集群中摘除,若应用服务器恢复,则keepalived将其重新加入集群中。
故障切换转移原理:
- Keepalived 高可用服务对之间的故障切换转移,是通过 VRRP(Virtual Router Redundancy Protocol , 虚拟路由器冗余协议)来切换的。
- 在 Keepalived 服务正常工作时,主 Master 节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备 Backup 节点自己还活着,当主 Master 节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master 节点的心跳了,于是调用自身的接管程序,接管主 Master 节点的 IP 资源及服务。而当主 Master 节点恢复时,备 Backup 节点又会释放主节点故障时自身接管的 IP 资源及服务,恢复到原来的备用角色。