LVS
概述.V1
- LVS
lvs是一款开源的负责均衡调度器应用,工作于传输层。负责把客户端请求按调度算法转发只后端服务器集群中的主机进行响应。
- LVS组成
- ipvsadm:ipvsadm是工作于用户工作,用户通过ipvsadm工具定义lvs的工作机制,集群,规则以及算法。
- ipvs:ipvs是工作于内核用于实现用户定义的一系列配置等功能。
- LVS架构
- director:负载均衡器/调度器,指的是lvs应用本身。
- real server:后端的服务器集群,指的是真正响应用户请求的集群服务器。
- IP分类
- VIP:指director对外接受用户请求的IP
- DIP:指director和后端服务器集群通信的IP
- CIP:指客户端的IP
- RIP:指后端服务器集群的每台服务器的IP
- LVS标准架构类型
- lvs-nat:路由转发类型是指lvs在接受一个请求时,通过修改请求报文的目标IP后转发至后端服务器集群中的某一台主机进行处理,而主机处理完请求返回报文至derector由director对客户端进行响应。
- lvs-dr:直接路由类型是只director在接受请求时,把请求根据定义的算法转发只后端集群服务器的某一主机进行处理并由主机直接响应客户端,主要是修改目标的MAC地址来实现转发。
- lvs-tun:IP隧道机制是指把请求报文的IP首部上再封装一个IP首部进而转发至目标主机,主要是用于director和real server分别在跨机房或者地域等长距离的场景。
- LVS调度算法
lvs的调度算法分为静态和动态两种方法
静态方法:只根据算法本身进行调度
- RR算法:是指轮询,director把请求轮流转发指后端主机集群
- WRR算法:加权轮询,根据后端主机的自身资源和负载情况进行权重的加持后结合轮询算法进行调度
- SH算法:源地址哈希算法,是指来自同一个IP客户端的请求都调度至后端同一台主机处理
- DH算法:目标哈希算法是指把请求都转发至同一台主机处理
动态方法:根据定义的算法结合后端主机集群的每台主机当前负载情况进行调度。
- LC算法:根据最少链接数(活动连接数*256+非活动连接数)的算法把请求转发至其主机处理
- WLC算法:根据加权最少连接数((活动连接数*256+非活动连接数)/权重)算法把请求转发至其主机进行处理
- SED算法:指最短期望延迟((活动连接数+1)*256/权重)根据权重来做调度任务
- NQ算法:属于SED算法的改进,在第一轮的调度中根据SED算法,被选中的主机会被排除出第二轮的调度,直至所有主机都有接受请求后再根据SED算法重新调度
- LBLC算法:动态源地址哈希算法,和SH静态哈希算法的区别是SH采取的是轮询的调度策略,而LBLC会结合主机的负载情况进行调度
- LBLCR算法:和LBLC算法不同的是增加了复制功能,是指在其中一台主机的负载过重时,其他主机会复制其缓存内容且调度器把请求调度到其他主机从而减轻单台主机的负载