lvs调度算法有十种分为两大类:
根据调度算法决定把请求转发给哪个服务器
静态调度四种算法(不考虑实际情况)
Round-robin 轮询调度
Weighted round-robin 加权轮询调度(根据服务器自身处理能力分配处理请求的多少)
Destination hashing 目标哈希把某一用户的请求永远发送给某一服务器处理
Source hashing 来源哈希请求从哪里来返回信息时同样走这条路径
动态调度六种算法(根据服务器的实际情况,如是否正在处理请求和处理请求的个数以及自身的能力)overhead=连接数*256+空闲数
Least-connection 最少连接(发给overhead最小的)
Weighted Least-connection 加权的最少连接(用overhead除以权重发给最小的)
Shortest expected delay 不再考虑空闲数
Never queue 永不排队只要有没有活动链接的服务器就直接给它
Locality-based Least-connection 基于本地的最少连接
Locality-based Least-connection with Replication scheduling 带复制功能的本地最少连接
Lvs-nat案例:
案例拓扑:
案例介绍:
使用linux作为director对外虚拟ip192.16820.254对内网关地址192.168.3.254
Real server为两个web服务器,作负载平衡
使用lvs-nat类的群集
配置director:
安装ipvsadm软件包
[root@localhost ~]# cd /mnt/cdrom/Cluster
[root@localhost Cluster]# rpm -ivh ipvsadm-1.24-10.i386.rpm
确保ipvs在内核中已经有模块存在
使用用户工具ipvsadm配置ipvs
采用轮询模式
[root@localhost Cluster]# ipvsadm -A -t 192.168.20.254:80 -s rr
做nat
[root@localhost Cluster]# ipvsadm -a -t 192.168.20.254:80 -r 192.168.3.100 -m
[root@localhost Cluster]# ipvsadm -a -t 192.168.20.254:80 -r 192.168.3.200 –m
[root@localhost Cluster]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.20.254:http rr
-> 192.168.3.100:httpMasq100
-> 192.168.3.200:httpMasq100
在浏览器中输入http://192.168.20.254会首先出现192.168.3.100的页面
再次刷新
[root@localhost Cluster]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.20.254:http rr
-> 192.168.3.100:httpMasq108
-> 192.168.3.200:httpMasq107
采用加权轮询模式
[root@localhost Cluster]# ipvsadm -E -t 192.168.20.254:80 -s wrr
[root@localhost Cluster]# ipvsadm -e -t 192.168.20.254:80 -r 192.168.3.100 -m -w 5
再次访问192.168.20.254时会在一段时间内一直显示192.168.3.100的网页
[root@localhost Cluster]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:PortForward Weight ActiveConn InActConn
TCP192.168.20.254:http wrr
-> 192.168.3.100:httpMasq5113
-> 192.168.3.200:httpMasq107