scaoping 发表于 2019-1-6 06:59:07

LVS解析及NAT、DR模型配置详解

一、lvs简介
Lvs:linux virtual server(linux虚拟服务器)是一个虚拟的服务器负载均衡系统。
目前有四种IP负载均衡技术:
NAT、DR、TUN、FNAT:FullNAT
十种调度算法:
静态四种:rr、wrr、SH、DH
动态六种:lc、wlc、sed、nq、lblc、lblcr
二、四种模型&&十种调度算法

1、四种模型拓扑及特点

NAT模型
http://blog.运维网.com/attachment/201310/172624581.png
解析:客户端向Director(调度器)发出请求,调度器接到客户端请求,由调度器选择后端real_server回复客户端请求,回复报文经调度器返回给客户端。
特点及配置要点:
1>real_server应该使用私有IP地址
2>real_server的网关应该指向DIP
3>RIP和DIP应该在同一个网段内
4>进出的报文都要经过Director,在高负载下Director会成为系统性能的瓶颈
5>支持端口映射
6>real_server可以是任意OS
DR模型DirectorRouting:直接路由
http://blog.运维网.com/attachment/201310/172900701.png
解析:客户端向Director(调度器)发出请求,调度器接到客户端请求,由调度器选择后端real_server回复客户端请求,回复报文不经过经调度器直接返回给客户端,由于回复报文不经过调度器,因此大大降低了调度器的压力,系统系能得到了大大的提升。
特点及配置要点:
1>real_server可以使用私有IP地址
2>real_server的网关一定不能指向DIP
3>RIP和DIP应该在同一个网段内
4>进站的报文经过Director,出站则有real_server直接回应client
5>不支持端口映射
6>real_server可以为大多数常见的OS
TUN模型Tuneling:和DR模型相近,但必须支持IP隧道
解析:客户端向Director(调度器)发出请求,调度器接到客户端请求,由调度器选择后端real_server回复客户端请求,回复报文不经过经调度器直接返回给客户端,由于回复报文不经过调度器,因此大大降低了调度器的压力,系统系能得到了大大的提升。
特点及配置要点:
1>real_server不能是私有IP地址
2>real_server的网关一定不能指向DIP
3>RIP和DIP应该在同一个网段内
4>进站的报文经过Director,出站则有real_server直接回应client
5>不支持端口映射
6>real_server必须支持IP隧道

2、十种调度算法及应用场景

静态四种:
rr:round-robin轮调;对待每一台服务器是均等的,而不管服务器上实际的连接数和系统负载。
wrr:weight加权轮调;根据真实服务器的不同处理能力来调度访问请求,可以保证处理能力强的服务器能处理更多的访问流量。
sh:source hashing源地址哈希算法;根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
dh:目标地址哈希算法;根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。(主要用于缓存服务器)
动态六种:
lc:最少连接;Active(活动)+Inactive(非活动)=overload(负载);调度器动态地将网络请求调度到已建立的链接数最少的服务器上(用于系统性能相似的服务器)。
wlc:加权最少连接;overload/weight;具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值(用于系统性能相差较大的服务器)。
sed:最短期望延迟;(Active+1)*256/weight;
nq:永不排队;
lblc:基于本地的最少连接;dh+lc
lblcr:带复制的基于本地的最少连接;


三、LVS/NAT实战
1.环境规划
Director(前端调度器)
eth0:192.168.1.15(DIP)
eth1:172.16.15.15
eth1:0:172.16.15.119(VIP)

# sysctl -w net.ipv4.ip_forward=1#打开IP转发
Server1:(后端服务1)
IP:192.168.1.5
GW:192.168.1.15(DIP)
Server2:(后端服务2)
IP:192.168.1.6
GW:192.168.1.15(DIP)
2.安装ipvsadm添加规则

#yum -y install ipvsadm
#规则:调度算法rr
#ifconfig eth1:0 172.16.15.119
# ipvsadm -A -t 172.16.15.119:80 -s rr
# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.5 -m
# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.6 -m查看状态

# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPktsOutPktsInBytes OutBytes
-> RemoteAddress:Port
TCP172.16.15.119:80                   28      129      128    13341    12547
-> 192.168.1.5:80                     14       57       57   5053   4779
-> 192.168.1.6:80                     14       72       71   8288   7768
调度算法wrr


# ipvsadm -A -t 172.16.15.119:80 -s wrr
# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.5 -m -w 2
# ipvsadm -a -t 172.16.15.119:80 -r 192.168.1.6 -m -w 3
查看状态


# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPktsOutPktsInBytes OutBytes
-> RemoteAddress:Port
TCP172.16.15.119:80                   20       96       94    10866   9800
-> 192.168.1.5:80                     12       58       57   6568   6154
-> 192.168.1.6:80                      8       38       37   4298   3646
http://blog.运维网.com/attachment/201310/183509779.png
四、LVS/DR实战
1.环境规划
Director(前端调度器)
eth1:172.16.15.15(DIP)
eth1:0:172.16.15.108(VIP)
#sysctl-wnet.ipv4.ip_forward=1#打开IP转发
Server1:(后端服务1)
IP:172.16.15.5
lo:0:172.16.15.108(VIP)
Server2:(后端服务2)
IP:192.168.1.6
lo:0:172.16.15.108(VIP)
2.配置
后端Real_server
修改内核参数禁止Real_servers上的VIP和前端路由直接通信

#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
####配置VIP
#ifconfig lo:0 172.16.15.108 broadcast 172.16.15.108 netmask 255.255.255.255 up
####添加路由
#route add -host 172.16.15.108 dev lo:0
Director(前端调度器)

##### 配置VIP
#ifconfig eth1:0 172.16.15.108 broadcast 172.16.15.108 netmask 255.255.255.255 up
#####添加路由
route add -host 172.16.15.108 dev eth1:0
####打开路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
#### 添加规则:(调度算法wlc)
# ipvsadm -A -t 172.16.15.108:80 -s wlc
# ipvsadm -a -t 172.16.15.108:80 -r 172.16.15.5 -g -w 2
# ipvsadm -a -t 172.16.15.108:80 -r 172.16.15.6 -g -w 4  

  查看状态
  

# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPktsOutPktsInBytes OutBytes
-> RemoteAddress:Port
TCP172.16.15.108:80                  258   1272      0   143824      0
-> 172.16.15.5:80                     90      435      0    44927      0
-> 172.16.15.6:80                  168      837      0    98897      0http://blog.运维网.com/attachment/201310/183601712.png

  




页: [1]
查看完整版本: LVS解析及NAT、DR模型配置详解