LVS-DR模式+Keepalived
架构的介绍
- Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅是双机热备。优点:keepalived对lvs负载调度器实现热备切换,提高可用性,对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。
- 基于lvs+keepalived实现的lvs群集结构中,至少包含两台热备的负载调度器。使用keepalived构建lvs群集时,也需要用到ipvsadm管理工具,但是大部分工作会由keepalived自动完成,不需要手动执行ipvsadm(除了查看和监控群集以外)。
- LVS群集是针对Linux内核开发的一个负载均衡项目,基于IP地址虚拟化应用VIP,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决办法。可使用ipvsadm管理工具。通过整合多台相对廉价的普通服务器,以同一个地址对外提供相同的服务。
- 负载均衡的直接路由工作模式。简称DR工作模式,负载调度器仅作为客户机的访问入口,各节点服务器与调度器位于同一个物理网络,节点服务器直接回应客户机的请求,而不再经过负载调度器。
- Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能–判断LVS负载调度器,节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入集群。
架构的流程图
服务器名 | 服务器IP | 所用主机 |
---|---|---|
LVS-DR-MASTER | 192.168.20.199 | centos7_x64 |
LVS-DR-BACKUP | 192.168.20.200 | centos7_x64 |
LVS-DR-VIP | 192.168.20.100 | 自己生成 |
WEB1-Realserver | 192.168.20.201 | centos7_x64 |
WEB2-Realserver | 192.168.20.202 | centos7_x64 |
注意:请忽略IP地址,以自己环境中的为主。
LVS负载均衡
LVS>Haproxy>nginx
LINUX虚拟服务器(Linux Virtual Servers ,LVS),使用负载均衡技术将多台服务器组成一个虚拟服务器。能快速增长访问需求,提供一个负载能力易于扩展,价格低廉。再1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
LVS是由2部分组成,包括ipvs和ipvsadm
Ipvs:工作在内核空间,是真正生效实现调度的代码
Ipvsadm:工作在用户空间,负责为ipvs内核框架编写规则,定义设施集群服务,谁是后端真实服务。
LVS的专用名词
DS:Director Server 是前端负载均衡调度器
RS:Real Server 真实服务器
VIP:Virtrual IP 虚拟IP地址,向外部直接面向用户请求,作为用户请求的目标的IP地址
DIP: Director Server IP ,主要用于和内部主机通讯的IP地址
RIP:Real Server IP ,后端服务器的IP地址
CIP:Client IP, 访问用户的IP地址
LVS的工作模式
LVS-NAT工作模式原理:
- 客户端发送数据包给负载均衡器
- 负载均衡器把客户端发来的数据包的IP头的目的地址换成其中一台RS的IP地址,并让RS处理数据
- RS处理完数据之后将数据包交给负载均衡器
- 负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址,并数据包返回给客户端
注意:主要负责包转换的就是调度器(DS),那么压力都集中再调度器,就形成了瓶颈。DS需要有两块网卡。VIP(公网IP)一个,DIP一个。
LVS-DR(直接路由模式)工作模式
- 负载均衡器和RS都使用同一个IP对外服务,但是只有DR对ARP请求进行响应,所有RS对本身这个IP的arp请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向为DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC