负载均衡之LVS学习小结
2014-10-29 10:19
309 查看
负载均衡的解决方案有硬件解决方案和软件解决方案。主流的硬件解决方案是:
F5 BIG-IP
Citrix Netscalar
A10 A10
Array
Redware
LVS(Linux Virtual Server)是工作在网络四层交换或路由软件解决方案。它通过内核框架模块ipvs及配置在该框架之上的一组规则来实现交换或路由。ipvsadm则是配置路由规则的工具。ipvs基于内核的netfilter框架模块,工作在其INPUT链上,将到达INPUT链的需要转发的包路由至Real Server。因此,ipvs功能会与netfilter的filter和nat表的功能有冲突。最好不要在部署了ipvs规则的主机上配置iptables的filter和nat规则。LVS有四种模型:NAT, DR, TUN, FULLNAT。
NAT模型的特征:
1. RS应该使用私有地址。
2. RS的网关必须指向Director的DIP。
3. RS的RIP和DIP必须在同一网段内。
4. 请求和响应的报文都经过Director,在高负载的场景中,Director可能成为系统性能瓶颈。
5. 支持端口映射。
6. RS可以使用任意支持集群服务的操作系统。
DR模型的特征:
1. RS可以使用私有地址,也可以使用公网地址。
2. RS的网关一定不能指向DIP
3. RS和Director要在同一物理网络内(不能有路由器分割)
4. 请求报文经过Director,但响应报文一定不经过Director
5. 不支持端口映射
6. RS可以使用大多数的操作系统
TUN模型的特征:
1. RIP、DIP和VIP都必须是公网地址
2. RS的网关一定不会指向DIP
3. 请求报文经过Director,但响应报文一定不经过Director
4. 不支持端口映射
5. RS的操作系统必须支持IP隧道技术
rr: Round Robin
wrr: Weight Round Robin
sh: Source Hashing
dh: Destination Hashing
wlc: Weight Least Connection Overhead=(Active*256+Inactive)/weight
sed: Shortest Expect Delay Overhead=(Active+1)*256/weight
nq: Nerver Queue
lblc: Locality-based Least Connection dh+lc
lblcr: Replicated and Locality-based Least Connection
session复制:在RS之间同步session,因此,每个RS持集群中所有的session;对于大规模集群环境不适用。
session服务器:利用单独部署的服务器来统一管理session。
ipvsadm -D -t|u|f service-address
ipvsadm -C
-A: 添加一个集群服务
-t: tcp
-u: udp
-f: firewall mark,通常用于将两个或以上的服务绑定为一个服务进行处理时使用;
service-address:
-t IP:port
-u ip:port
-f firewall_mark
-s 调度方法,默认为wlc
-p timeout: persistent connection, 持久连接
-E:修改定义过的集群服务
-D -t|u|f service-address:删除指定的集群服务
ipvsadm -d -t|u|f service-address -r server-address
-a:向指定的CS中添加RS
-t|-u|-f service-address:指明将RS添加至哪个Cluster Service中
-r: 指定RS,可包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口
LVS类型:
-g: Gateway, DR
-i: ipip, TUN
-m: masquerade, NAT
-e: 修改指定的RS属性
-d -t|u|f service-address -r server-address:从指定的集群服务中删除某RS
ipvsadm -S
ipvsadm-restore
-n: 数字格式显示IP地址
-c: 显示连接数相关信息
--stats: 显示统计数据
--rate: 速率
--exact:显示统计数据的精确值
PPC:将来自于一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS。
PFMC: 端口绑定,port affinity。基于防火墙标记,将两个或以上的端口绑定为同一个服务。
举例:
# iptables -t mangle -A PREROUTING -d VIP -p tcp --dport CS_Port -j MARK --set-mark num (num取0-99之间的值)
# ipvsadm -A -f num
RS1的配置:
安装ipvsadm
# yum install ipvsadm
F5 BIG-IP
Citrix Netscalar
A10 A10
Array
Redware
LVS(Linux Virtual Server)是工作在网络四层交换或路由软件解决方案。它通过内核框架模块ipvs及配置在该框架之上的一组规则来实现交换或路由。ipvsadm则是配置路由规则的工具。ipvs基于内核的netfilter框架模块,工作在其INPUT链上,将到达INPUT链的需要转发的包路由至Real Server。因此,ipvs功能会与netfilter的filter和nat表的功能有冲突。最好不要在部署了ipvs规则的主机上配置iptables的filter和nat规则。LVS有四种模型:NAT, DR, TUN, FULLNAT。
NAT模型的特征:
1. RS应该使用私有地址。
2. RS的网关必须指向Director的DIP。
3. RS的RIP和DIP必须在同一网段内。
4. 请求和响应的报文都经过Director,在高负载的场景中,Director可能成为系统性能瓶颈。
5. 支持端口映射。
6. RS可以使用任意支持集群服务的操作系统。
DR模型的特征:
1. RS可以使用私有地址,也可以使用公网地址。
2. RS的网关一定不能指向DIP
3. RS和Director要在同一物理网络内(不能有路由器分割)
4. 请求报文经过Director,但响应报文一定不经过Director
5. 不支持端口映射
6. RS可以使用大多数的操作系统
TUN模型的特征:
1. RIP、DIP和VIP都必须是公网地址
2. RS的网关一定不会指向DIP
3. 请求报文经过Director,但响应报文一定不经过Director
4. 不支持端口映射
5. RS的操作系统必须支持IP隧道技术
LVS支持的10种调度策略
静态策略rr: Round Robin
wrr: Weight Round Robin
sh: Source Hashing
dh: Destination Hashing
动态策略
lc: Least Connection Overhead=Active*256+Inactive,选择负载值最小进行调度。wlc: Weight Least Connection Overhead=(Active*256+Inactive)/weight
sed: Shortest Expect Delay Overhead=(Active+1)*256/weight
nq: Nerver Queue
lblc: Locality-based Least Connection dh+lc
lblcr: Replicated and Locality-based Least Connection
Session持久机制
session绑定:始终将同一个请求者的连接定向至同一个RS(第一次请求时仍由调度方法选择);没有容错能力,有损均衡效果。session复制:在RS之间同步session,因此,每个RS持集群中所有的session;对于大规模集群环境不适用。
session服务器:利用单独部署的服务器来统一管理session。
ipvs命令工具常用选项和参数
集群服务相关
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]ipvsadm -D -t|u|f service-address
ipvsadm -C
-A: 添加一个集群服务
-t: tcp
-u: udp
-f: firewall mark,通常用于将两个或以上的服务绑定为一个服务进行处理时使用;
service-address:
-t IP:port
-u ip:port
-f firewall_mark
-s 调度方法,默认为wlc
-p timeout: persistent connection, 持久连接
-E:修改定义过的集群服务
-D -t|u|f service-address:删除指定的集群服务
RS相关
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
-a:向指定的CS中添加RS
-t|-u|-f service-address:指明将RS添加至哪个Cluster Service中
-r: 指定RS,可包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口
LVS类型:
-g: Gateway, DR
-i: ipip, TUN
-m: masquerade, NAT
-e: 修改指定的RS属性
-d -t|u|f service-address -r server-address:从指定的集群服务中删除某RS
保存规则:(使用输出重定向)
ipvsadm-saveipvsadm -S
载入指定的规则:(使用输入重定向)
ipvsadm -Ripvsadm-restore
查看ipvs规则
-L [options]-n: 数字格式显示IP地址
-c: 显示连接数相关信息
--stats: 显示统计数据
--rate: 速率
--exact:显示统计数据的精确值
LVS持久连接
PCC:将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS。PPC:将来自于一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS。
PFMC: 端口绑定,port affinity。基于防火墙标记,将两个或以上的端口绑定为同一个服务。
举例:
# iptables -t mangle -A PREROUTING -d VIP -p tcp --dport CS_Port -j MARK --set-mark num (num取0-99之间的值)
# ipvsadm -A -f num
LVS的DR模型配置实例
假定用3台主机配置一个web集群。一台Director,2台Real Server。VIP:192.168.100.185,DIP:192.168.100.105,RS1的RIP:192.168.100.107,RS1的RIP:192.168.100.108 。3台主机都连接在同一交换机上,2台Real Server上web服务都已安装配置完成。以下主要给出LVS集群相关的配置过程。RS1的配置:
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce # # ifconfig lo:0 192.168.100.185 netmask 255.255.255.255 broadcast 192.168.100.185 up # route add -host 192.168.100.185 dev lo:0 #RS2的配置:
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce # # ifconfig lo:0 192.168.100.185 netmask 255.255.255.255 broadcast 192.168.100.185 up # route add -host 192.168.100.185 dev lo:0Director的配置:
安装ipvsadm
# yum install ipvsadm
# ifconfig eth0:0 192.168.100.185 netmask 255.255.0.0 broadcast up # route add -host 192.168.100.185 dev eth0:0 # # iptables -t filter -F # ipvsadm -A -t 192.168.100.185:80 -s rr # ipvsadm -a -t 192.168.100.185:80 -r 192.168.100.107 -g # ipvsadm -a -t 192.168.100.185:80 -r 192.168.100.108 -g
相关文章推荐
- 网络结构设计——负载均衡之LVS学习笔记(二)
- WEB负载均衡实现方法学习小结
- mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡
- 网络结构设计——负载均衡之LVS学习笔记(四)
- 网络结构设计——负载均衡之LVS学习笔记(三)
- 利用LVS配置负载均衡集群服务(1)
- 利用LVS配置负载均衡集群服务(2)
- LVS四层负载均衡
- LVS+Mysql集群负载均衡--内网lvs配置
- 网络负载均衡的几项技术学习
- LVS+Keepalived实现负载均衡及双机热备
- 负载均衡集群LVS配置
- Lvs+keepalived实现负载均衡、故障剔除(DR模式)
- 主流平台是WINDOWS+IIS结合LVS+KEEPALIVED是LINUX实现负载均衡软件
- LVS+Ldirectord实现Web服务器的负载均衡及故障转移
- nginx与LVS的负载均衡之谈
- 负载均衡--LVS+Keepalived
- LVS+Mysql集群负载均衡--内网lvs配置
- linux lvs 的DR 模式CENTOS 4.4 三台linux 的http负载均衡安装步骤
- lvs和nginx在多机负载均衡中的对比