LVS 负载均衡 NAT模式
LVS负载均衡通过vrrp协议工作在传输层,仅对请求做分发,所以效率比较高,抗负载能力比较强。可配置性低,因为只能对请求分发,没有根据请求的路径或者域名做分发的功能,所以不需要过多的人为去干预,减少错误率。
LVS有三种模式:1,NAT 2,DR 3,TUN
NAT:nat模式中Director服务器中需要有两张网卡,一张对外提供服务,另外一张跟Real Server在同一个物理子网中,Real server需要把网关指向Director的内网IP地址。在添加NAT的模式后,所请求NAT模式的端口的请求会把数据转发至后端服务器,把数据包的请求地址转换成Real Server的IP地址。数据包在返回经过Director 时在把源IP地址改为Director的外网地址再发回给客户端。
搭建LVS复制均衡的NAT模式:
1,集群环境:一台Director,两台Real Server RS1 RS2
- Director: 要有两张网卡
- eth0:192.168.137.20
- eth1:192.168.10.10
- RS1:
- eth0:192.168.137.21
- RS2:
- eth0:192.168.137.22
Director的eth0和RS1,RS2的eth0在同一个物理网络内,客户机与Director的eth1在同一个网段
2,配置RS服务器的网关指向Dirctor的eth0的网卡地址
RS1:
#vim /etc/network/interfaces
### auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.137.2101 netmask 255.255.255.0 gateway 192.168.137.20
重启网络,或者使用route命令添加
root@web1:~# route del default gw 192.168.137.20
检查:
root@web1:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.137.20 0.0.0.0 UG 0 0 0 eth0 192.168.137.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 root@web1:~#
RS2:
配置跟RS1一样,都是把网关指向Director
3,Director开启内核转发:
# director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭 icmp 的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
4,创建测试页面:
RS1:
root@web1:~# curl 192.168.137.21 192.168.137.21
RS2:
root@web1:~# curl 192.168.137.22 192.168.137.22
5,在Director配置LVS的集群服务
root@db2:~# ipvsadm -A -t 192.168.10.10:80 -s lc
root@db2:/etc/apt# ipvsadm -a -t 192.168.10.10:80 -r 192.168.137.21:80 -m -w 1
root@db2:/etc/apt# ipvsadm -a -t 192.168.10.10:80 -r 192.168.137.22:80 -m -w 2
6,通过客户机的浏览器来访问 192.168.10.10
ipvsadm的使用方法:
相关命令:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] ipvsadm -D -t|u|f service-address ipvsadm -C ipvsadm -R ipvsadm -S [-n] ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower] ipvsadm -d -t|u|f service-address -r server-address ipvsadm -L|l [options] ipvsadm -Z [-t|u|f service-address]
Drictor集群相关:
-A : 添加一个集群服务 -t :tcp -u :udp -f : firewall mark ,通常用于将两个或以上的服务绑定为一个服务进行处理使用,例如http和https -s :调度方法,默认为wlc -p timeout : 持久连接 -E :修改定义过的集群服务 -D -t|u|f service-address:删除指定的集群服务
Real Server相关
-a : 向指定的集群服务添加 Real Server -t|-u|-f server-address :指明将RS添加至那个集群服务中 -r: 指定Real Server 可保护IP:PORT,只有支持端口映射的LVS类型才允许此处使用根集群服务中不同的端口 LVS类型: -g :Gateway模式,就是DR模型 -i :ipip模式,TUN模式 -m: NAT模式 指定Real Server权重 -w # :省略权重为1 -e: 修改指定的RS属性 -d -t|u|f service-address -r server-address:从指定的集群服务中删除某RS -C : 清空集群服务 ipvsadm-save :保存规则,使用输出重定向 ipvsadm -S :保存规则,使用输出重定向 载入、导入指定规则: ipvsadm-restore ipvsadm -R 查看ipvs规则: -L [options] -n: 数字格式显示IP地址 -c: 显示连接数相关信息 --stats: 显示统计数据 --rate: 速率 --exact:显示统计数据的精确值 --timeout: 超时时间 -Z: 计数器清零;
LVS的调度算法:
( 1)轮叫调度(Round Robin)(简称 rr),这种算法是最简单的,不管后端 RS 配置和处理
能力,非常均衡地分发下去。
( 2)加权轮叫(Weighted Round Robin)(简称 wrr),比上面的算法多了一个权重的概念,
可以给 RS 设置权重,权重越高,那么分发的请求数越多,权重取值范围 0-100。
( 3)最少链接(least connection)(LC),这个算法会根据后端 RS 的连接数来决定把请求
分发给谁,比如 RS1 连接数比 RS2 连接数少,那么请求就优先发给 RS1。
( 4)加权最少链接(Weighted Least Connections)(WLC) ,比第三个算法多了一个权重
的概念
参考:http://www.178linux.com/10598