比如ABC三台机器分别权重123,连接数分别为123,那么如果使用wlc算法的话一个请求进来时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算
A:(1+1)/1
B:(1+2)/2
C:(1+3)/3
根据运算结果,把连接交给C
个人理解的算法是(1+当前连接数)/权重
NQ最少队列调度(Never Queue Scheduling NQ)算法无需队列,如果有台realserver的连接数 = 0就直接分配过去,不需要进行sed运算
命令介绍 语法格式 /* ipvsadm COMMAND [protocol] service-address [scheduling-method] [persistence options] ipvsadm COMMAND [protocol] service-address server-address [packet-forwarding-emthod] [weight options] */ 基本参数 /* -A,--add-service:为ipvs虚拟服务器添加一个虚拟服务,即添加一个需要被负载均衡的虚拟地址。虚拟地址需要时ip地址,端口号,协议的形式。 -E,--edit-service:修改一个虚拟服务。 -D,--delete-service:删除一个虚拟服务。 -C,--clear:清除所有虚拟服务。 -R,--restore:从标准输入获取ipvsadm命令,一般结合下边的-S使用 -S,--save:从标准输出输出虚拟服务器的规则。可以将虚拟服务器的规则保存,在以后通过-R直接读入,以实现自动化配置。 -a,--add-server:为虚拟服务添加一个real server(RS) -e,--edit-server:修改RS -d,--delete-server:删除 -L,-l,--list:列出虚拟服务列表中所有虚拟服务。可以指定地址,添加-c显示连接表 -Z,--zero:将所有数据相关的记录清零,这些记录一般用于调度策略。 --set tcp tcpfin udp:修改协议的超时时间 --start-daemon state:设置虚拟服务器的备服务器,用来实现主备服务器冗余(该功能只支持ipv4) --stop-daemon:停止备服务器。 -h,--help:帮助。 */参数 -- 以下参数可以接在上边命令后面
-t,--tcp-service service-address:指定虚拟服务器为tcp服务,service-address要是host[:port]的形式,端口是0表示任意端口,如果需要将端口设置为0,还需要加上-p选项 (持久化)。
-u,--udp-service service-address:使用udp服务,其他同上。
-f,--fwmark-service integer:用firewall mark取代虚拟地址来指定要被负载均衡的数据包,可以通过这个命令实现把不同地址、端口的虚拟地址整合成一个虚拟服务,可以 让虚拟服务器同时截获处理去往多个不同地址的数据包。fwmark可以通过iptables命令指定。如果用在ipv6需要加上-6.
-s,--scheduler shceduling-method:指定调度算法,调度算法可以指定以下8种:rr,wrr,lc,wlc,lblc,lblcr,dh,sh,sed,nq
-p,--persistent [timeout]:设置持久连接,这个模式可以使来自客户的多个请求被送到同一个真实服务器,通常用于ftp或者ssl中。
-M,--netmask netmask:指定客户地址子网掩码,用于将同属一个子网的客户请求转发到同一服务器。
-r,--real-server server-address:为虚拟服务指定数据可以转发到的真实服务器地址,可以添加端口号,如果没有指定端口号,则等效于使用虚拟地址的端口号。
[packet-forwarding-method]:此选项指定某个真实服务器所使用的数据转发模式。需要对每个诊室服务期分别指定模式。
-g,--gatewaying:使用网关(即直接路由),此模式是默认模式
-i,--ipip:使用ipip隧道模式
-m,--masquerading:使用NAT模式
-w,--weight weight:设置权重,权重是0-65535的整数,如果将某个真实服务器的权重设置为0,那么它不会受到新的连接,但是已有连接还会继续维持
-x,--u-threshold uthreshold:设置一个服务器连接下限,当服务器的连接数低于此值得时候服务器才可以重新接收连接。如果此值未设置,则当服务器的连接数连续 三次低于uthreshold时服务器才可以接收到新的连接。(ps:笔者认为此设置可能是为了防止服务器在能否接收连接这两个状态上频繁变换)
--mcast-interface interface:指定使用备服务器时候的广播接口。
--syncid syncid:指定syncid,同样用于主备服务器的同步
以下选项用于list命令
/* -c,--connection:列出当前的ipvs连接 --timeout:列出超时 --daemon: --stats:状态信息 --rate:传输速率 --thresholds:列出阈值 --persistent-conn:坚持连接 --sor:把列表排序 --nosort:不排序 -n,--numeric:不对ip地址进行dns查询 --exact:单位 -6:如果fwmark用的是ipv6地址需要指定此选项 其他注意事项: 1、如果使用IPv6地址,需要在地址两端加上[],例如:ipvsadm -A -t [2001:db8::80]:80 -s rr */ Lvs-nat部署