LVS 在做分发时,需要根据不同情况(包括前端请求类型、后端应用及服务器类型)选择不同的分发方式,这就是 LVS 算法。今天杜老师为大家讲讲都有哪些算法!

演示效果

效果如图:

算法列表

算法列表如下:

算法名称作用
rr轮询调度第一个请求交给 RS1,第二个请求交给 RS2,第三个请求交给 RS1,以此类推;如果两台机器性能差异较大(如一台老旧、一台强劲)则会有问题
wrr加权轮询加上权重(也就是比例值),如 RS1=2/RS2=1,则访问过程为 RS1、RS1、RS2
lc最少链接类似于 rr,会将请求调度给当前链接数最少的服务器
wlc加权最少链接如果出现多台链接数最少的情况,则根据权重来决定
lblc基于局部最少链接例如某公司 100 台机器的集群中有 10 台北京服务器,北京的用户进来后,会从这 10 台服务器中进行最少链接调度
sh来源地址散列来源地址不变,则分发的后端机器不变
dh目的地址散列目的地址不变,则分发的机器不变

散列算法

散列计算是根据 IP 数字,去掉点除以 RS 数量,根据余数判断请求交给哪一台服务器。

源地址散列调度算法根据请求的源 IP 地址作为散列键,从静态分配的散列表中找出对应的服务器;若该服务器可用且未超载,则将请求发送到该服务器。

目的地址散列根据请求的目标 IP 地址作为散列键,从静态分配的散列表中找出对应的服务器;若该服务器可用且未超载,则将请求发送到该服务器。

对于 FTP 这类服务,如果使用类似轮询的方法,建立传输通道后,传输数据时可能会去另一台机器取数据,但与该机器尚未建立链接,无法传输。

算法应用

应用列表:

算法应用
rr/wrr/lc/wlc适用静态请求
lblc/sh/dh适用动态请求,例如网游,连上服务器后不能随便切换