★负载均衡
负载均衡技术是把众多的访问人群以及流量分担到不同的网络设备以及不同的服务器的过程
以轮循的过程进行数据分流
(1)Cisco以太网通道(思科公司)
(2)Windows NLB技术
(3)Linux LVS技术
(4)F5等负载均衡器
★LVS
LVS有三种模式
(1)NAT技术(network address translation)——来回都要经过LVS调度器
LVS将外界来的数据进行地址转换,转换到相应的服务器
在NAT模式中,LVS的作用既是调度器又是路由器,因为其两端为不同网段的ip
---------------------------------------------------------------------------------
| Web Server |
| (192.168.10.2) |
| eth1 192.168.10.1 |
| Internet ——————— LVS —————————— 交换机 |
| eth0 8.8.8.8 |
| Web Server |
| 公网ip 私网ip (192.168.10.3) |
---------------------------------------------------------------------------------
通过地址转换,调度器重写请求报文的目标地址为8.8.8.8
LVS根据预设的调度算法将请求分派给后端的真是服务器(192.168.10.2),分派过程采用轮循机制
真实服务器返回数据仍然通过调度器,报文的源地址被重写为8.8.8.8,然后再将数据返回给客户
说明:之所以要进行地址的转换,是因为公网ip与私网ip是严格分隔的,私网ip(192.168.*.*、172.16.*.*、10.*.*.*)永远不会在公网ip中流通
详细配置
- lvs server
yum install -y ipvsadm*
echo 1 >/proc/sys/net/ipv4/ip_forward(ip转发表,1表示开启了路由功能,成为了一台路由器)
ipvsadm -C 将调度器中以前的转换表清除
ipvsadm -At 8.8.8.8:80 -s rr
(-A 增加一个带有调度算法的转换表 -s 规定调度算法为rr模式 -t TCP通信)
ipvsadm -at 8.8.8.8:80 -r 192.168.10.2:80 -m (-r 增加真实服务器 -m 规定模式为NAT模式)
ipvsadm -at 8.8.8.8:80 -r 192.168.10.3:80 -m
外面的机器可以不配置网关,内部的机器必须配置网关route -n 查看路由表
(2)IP Tun模式
VIP:LVS虚拟服务器具有的ip(200.168.10.10)
RIP:真是服务器具有的ip
VIP(200.168.10.10)在LVS上是配置在eth0上,即一块网卡设置两个ip
在真实服务器是配置ip tun网卡上
-----
| LVS | 200.168.10.1
-----
|
|
------------- ------ --------------
|200.168.10.4 | —————|交换机|————————| 200.168.10.2 |
------------- ------ --------------
|
|
------------
|200.168.10.3|
------------
详细配置
- lvs server配置
ifconfig tunl0 200.168.10.10 netmask 255.255.255.255(255.255.255.255说明网段里只有它一个)
route add -host 192.168.10.10 dev tunl0 防止路由表短缺,人为添加路由表
ipvsadm -C 将所有IP调度转换表清除
ipvsadm -A -t 192.168.10.10:80 -s rr
-t TCP通信 -s 规定为rr模式 伦叫模式
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2 -i
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3 -i
Ipvsdam 记录调度的痕迹和次数
- 真实客户端配置(可写成shell脚本)写成脚本后注意修改权限a+x
ifconfig tunl0 192.168.10.10 netmask 255.255.255.255 up
route add -host 192.168.10.10 dev tunl0
echo "1" > /proc/sys/net/ipv4/comf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/comf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/all/arp_announce
如果通过计算机网卡进来的ip有责任回应其对应的mac地址
如果不是通过网卡进来的以外的ip则不回应
(3)Dr模式(直接路由模式)
都必须是公用的ip,将VIP配置到回环接口上
回环接口除了可以做回环测试以外还可以做LVS
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户,跟ip tun技术一样,DR也可以极大地提高集群系统的伸缩性和吞吐量,这种方法没有ip隧道的开销,对集群中的真实服务器也没有必须支持ip隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。
详细配置
与ip隧道不同的是,VIP不再配置在ip tun网卡上
- lvs server
ifconfig eth0:0 200.168.10.10 netmask 255.255.255.255
route add -host 192.168.10.10 dev eth0:0
ipvsadm -C 将所有IP调度转换表清除
ipvsadm -A -t 192.168.10.10:80 -s rr
-t TCP通信 -s 规定为rr模式 伦叫模式
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2 -g
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3 -g
Ipvsdam 记录调度的痕迹和次数
- real server
ifconfig lo:0 192.168.10.10 netmask 255.255.255.255 在回环接口上配置
route add -host 192.168.10.10 dev lo:0
echo "1" > /proc/sys/net/ipv4/comf/tunl0/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/tunl0/arp_announce
echo "1" > /proc/sys/net/ipv4/comf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/comf/all/arp_announce
★四种常用的伦叫算法
- 伦叫(rr)
调度器通过“伦叫”调度算法将外部请求数据按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不考虑服务器上实际的连接数和系统负载。
- 加权伦叫(wrr)
调度器通过“加权伦叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态的调整其权值。
- 最少链接(LC)
调度器通过“最少链接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小链接”调度算法可以较好地均衡负载。
- 加权最少链接(WLC)
在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动链接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。