开发者学堂课程【企业集群平台架构设计与实现:lvs/haproxy/keepalived:企业集群平台架构设计与实现lvs篇2(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/391/detail/5010
企业集群平台架构设计与实现lvs篇2(二)
内容介绍:
一、LVS负载调度算法
二、高可用 LVS集群构建实战
一、LVS负载调度算法
Lvs 的调度算法决定了如何在集群节点之间分布工作负荷。当 director 调度器收到来自客户端访问VIP的上的集群服务的入站请求时,director 调度器必须决定哪个集群节点应该处理请求。
Direc tor 调度器用的调度方法基本分为两类∶
固定调度算法∶rr,wrr,dh,sh
动态调度算法∶wlc,lc,lblc,1blcr
算法 |
说明 |
rx* |
轮询算进,它将请求依次分配给不同的rs节点,也就是RS节点中均摊分配。这种算法简单,但只适合rs节点处理性差不多的情况 |
wrr |
加权轮训调度,亡将依据不同rs的权值分配任务,权值较商的rs将优先获得任务,并且分配到连接数将比权值的RS更多的连接数 |
Wlc |
加权虽小连接数调度,假设各合RS的全职依次为Wi,当前tcp连接数依次为Ti。依次去 Ti/Wi为最小的RS作为下一个分配的RS |
Dh |
目的地哈希调度(destination hashing )以目的地地址为关键字查找一个静态 hash 表来获得需要的RS |
Sh |
源地址哈希调度(source hashing ) 以源地址为关键字查找一个静态hash 表示获得需要的RS |
Lc |
最小连接数调度(least-connection),IPVS表存储了所有活动的连接,LB会比较将链接请求发送到当前连接最少的RS |
Lblc |
基于地址的最小连接数调度(locality-basedleast-connection):将来自同一个目的地址的请求分配给同一个台RS, 此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑 |
LVS 调度算法的生产环境选型∶
1、一般的网络服务,如 www,mail,mysql等常用的 LVS 调度算法为∶
a.基本轮询调度rr
b.加权最小连接调度 wc
c.加权轮询调度 wrc
2、基于局部性的最小连接 Iblc 和带复制的给予局部性最小连接 Iblcr 主要适用于 web cache 和 DB cache
3、源地址散列调度 SH 和目标地址散列调度 DH 可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一。
实际适用中这些算法的适用范围很多,工作中最好参考内核中的连接调度算法的实现原理,然后根据具体的业务需求合理的选型。
二、高可用 LVS 集群构建实战
高可用架构图:
Load Balancer层:位于整个集群系统的最前端,由一台或多台负载调度器(DirectorServer)组成。
LVS核心模板IPVS就安装在 Director Server上,而 Director的主要作用类似于一个路由器,它含有为完成LVS 功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(Real Server)。
同时,在 Director Server 上还要安装对 Real Server 的监控模块 Ldirectord,此模块用于监测各个 Real Server 服务的健康状况。在 Real Server不可用时可以把它从LVS路由表中剔除,在恢复时重新加入。