集群之LVS负载均衡详解Word文档下载推荐.docx
- 文档编号:8071899
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:15
- 大小:394.02KB
集群之LVS负载均衡详解Word文档下载推荐.docx
《集群之LVS负载均衡详解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《集群之LVS负载均衡详解Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
而这种定义需要通过写规则来实现,写规则的工具就称为ipvsadm。
应用场景
高吞吐量(higherthroughput)
冗余
(redundancy)
适应性
(adaptability)
LVS负载均衡架构
VirtualIP(VIP)address:
Director用来向客户端提供服务的IP地址
RealIP(RIP)address:
集群节点(后台真正提供服务的服务器)所使用的IP地址
Director'
sIP(DIP)address:
Director用来和D/RIP进行联系的地址
Clientcomputer'
sIP(CIP)address:
公网IP,客户端使用的IP。
根据前端Director和后台RealServer的通信方式将LVS分为三类:
NetworkAddressTranslation(LVS-NAT)
目标地址转换所有客户端的请求都被Director根据访问请求和算法被定向到后台的RealServer上。
数据包地址转换过程:
S:
CIPD:
VIP------->
Director------>
RIP------>
RealServer------>
----->
RIP
D:
CIP----->
Director----->
VIP
CIP
Director和RealServer必须在同一个网段中;
一般情况下,RIP是私有地址,只用于集群内部节点间通信;
Director会响应所有的请求在客户端和RealServer之间,所承担的负载较大;
所有的RealIP网关必须指向DIP以响应客户端请求;
Director可以重映射网络端口,即前端使用标准端口,后端可以使用非标准端口;
后台的RealServer可以使用任何操作系统;
Director可能会成为系统瓶颈。
Directorrouting(LVS-DR)
直接路由客户端请求经过Director,RealServer直接回应客户端
VIP----->
Director--->
RIP----->
RealServer--->
S:
VIPD:
CIP
RealServer上必须配置VIP切需要隐藏起来,只有在响应客户端请求时才使用VIP作为源地址,除此之外并不使用此VIP。
集群节点和Director必须在同一个网络中;
RIP不要求为私有地址;
Director仅处理所有进来的请求;
RealServer不能以DIP作为网关,而是以公网上的某台路由器作为网关;
Director不能再使用端口重映射;
大多数操作系统可以被用来作为RealServer,windows除外;
LVS-DR模式可以处理比LVS-NAT更多的请求。
实际生产环境中最常用的一种方式,优点:
RIP为公网地址,管理员可以远程连接RealServer来查看工作状态;
一旦Director宕机,可以通过修改DNS记录将A记录指向RIP继续向外提供服务;
IPtunneling(LVS-TUN)
与DR的网络结构一样,但Director和RealServer可以在不同的网络当中,可以实现异地容灾的功能。
DIP----->
VIP基于隧道来传输,在数据包外层额外封装了S:
DIPD:
RIP的地址。
Director和RealServer必须在同一个物理网络中;
RIP一定不能是私有地址;
Director只负责处理进来的数据包;
RealServer直接将数据包返回给客户端,所以RealServer默认网关不能是DIP,必须是公网上某个路由器的地址;
Director不能做端口重映射;
只有支持隧道协议的操作系统才能作为RealServer。
分发时所采用的算法
固定调度算法:
按照某种既定的算法,不考虑实时的连接数予以分配。
Round-robin(RR)轮询:
当新请求到达时候,从服务列表中选择一个RealServer,将请求重定向给这台RealServer。
Weightedround-robin(WRR)加权轮询:
给每台RealServer分配一个权重/位列,权重越大,分到的请求数越多。
Destinationhashing(DH)目标散列:
来自于同一个IP地址的请求都被重定向到同一台RealServer上(保证目标地址不变)。
Sourcehashing(SH)源地址散列:
Director必须确保响应的数据包必须通过请求数据包所经过的路由器或者防火墙(保证原地址不变)。
动态调度算法:
通过检查服务器上当前连接的活动状态来重新决定下一步调度方式该如何实现。
LeaseConnection(LC)最少连接
哪一个RealServer上的连接数少就将下一个连接请求定向到那台RealServer上去。
【算法:
连接数=活动连接数*256+非活动连接数】
WeightLeast-Connection(WLC)加权最少连接
在最少连接的基础上给每台RealServer分配一个权重。
连接数=(活动连接数*256+非活动连接数)÷
权重】一种比较理想的算法。
ShortestExpectedDelay(SED)
最短期望延迟不再考虑非活动连接数
连接数=(活动连接数+1)*256÷
权重】
NeverQueue(NQ)永不排队算法,对SED的改进,当新请求过来的时候不仅要取决于SED算法所得到的值,还要取决于RealServer上是否有活动连接。
Locality-BasedLeast-Connection
(LBLC)基于本地状态的最少连接,在DH算法的基础上还要考虑服务器上的活动连接数。
with
Replication
Scheduling
(LBLCR)带复制的基于本地的最少连接
LBLC算法的改进
下面我们就来做一个基于LVS-NAT的负载均衡实验:
实验环境搭建:
Director:
VIP192.168.0.127桥接
DIP192.168.10.1仅主机
RealServer1:
RIP192.168.10.2
仅主机
网关指向:
192.168.10.1
RealServer2:
RIP192.168.10.3
Client:
192.168.0.1
物理机
每台RealServer上分别安装有http服务。
我们这里为了演示效果,每个http服务的页面不同。
RealServer1
[root@station39html]#ifconfigeth0192.168.10.2
[root@station39html]#routeadddefaultgw192.168.10.1
RealServer2
[root@station26html]#ifconfigeth0192.168.10.3
[root@station26html]#routeadddefaultgw192.168.10.1
[root@server27~]#ifconfigeth1192.168.10.1
打开内核路由功能
[root@server27~]#echo1>
/proc/sys/net/ipv4/ip_forward
确保永久有效:
[root@server27~]#vim/etc/sysctl.conf
#ControlsIPpacketforwarding
net.ipv4.ip_forward=1
[root@server27~]#sysctl-p
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route=0
kernel.sysrq=0
kernel.core_uses_pid=1
net.ipv4.tcp_syncookies=1
kernel.msgmnb=65536
kernel.msgmax=65536
kernel.shmmax=4294967295
kernel.shmall=268435456
OK,准备工作已经就绪,下面开始实验的关键步骤:
[root@server27~]#yuminstallipvsadm-y
使用步骤:
1.定义服务2.为服务定义RealServer
[root@server27~]#ipvsadm-A-t192.168.0.127:
80-srr
[root@server27~]#ipvsadm-Ln
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:
PortSchedulerFlags
->
RemoteAddress:
Port
ForwardWeightActiveConnInActConn
TCP
192.168.0.127:
80rr
[root@server27~]#ipvsadm-a-t192.168.0.127:
80-r192.168.10.2-m-w2
80-r192.168.10.3-m-w5
-g,
--gatewaying
Usegatewaying(directrouting).Thisisthe
default.
-i,
--ipip
Useipipencapsulation(tunneling).
-m,
--masquerading
Usemasquerading
(network
access
transla-tion,orNAT).
PS:
在这里设定的权重对于RR算法来说并没有什么意义,我们只是为后面的实验而设定的。
192.168.10.3:
80
Masq
5
0
16
192.168.10.2:
2
15
此时,我们使用物理机访问192.168.0.127就会发现页面交替变化,这是由RR算法的特性决定的。
我们改变为WRR算法试试:
[root@server27~]#ipvsadm-E-t192.168.0.127:
80-swrr
80wrr
86
43
改变为LBLC算法试试:
LBLC:
基于本地状态的最少连接,在DH算法的基础上还要考虑服务器上的活动连接数。
80-slblc
80lblc
112
41
此时无论客户端怎么刷新,访问页面都不会改变。
保存规则:
ipvsadm-S>
>
/etc/sysconfig/ipvs-config
==
ipvsadm-save
ipvsadm-R<
/etc/sysconfig/ipvs-config==ipvsadm-restore
PS:
Director分发到RealServer的过程中,数据包的源地址和目标地址都没有发生改变,Director仅仅是将目标mac地址转换成某台RealServer的mac地址,源mac地址改为Director内网网卡的mac地址。
两个技术难题
1
RealServer要避免对客户端发来的对VIP的arp地址解析请求;
解决方法
1)
修改内核的两个参数:
arp_announce,arp_ignore。
arp_announce:
定义不同级别:
当ARP请求通过某个端口进来是否利用这个接口来回应。
0-(default)Useanylocaladdress,configuredonanyinterface.
利用本地的任何地址,不管配置在哪个接口上去响应ARP请求;
1-Trytoavoidlocaladdressesthatarenotinthetarget'
ssubnetforthisinterface.
避免使用另外一个接口上的mac地址去响应ARP请求;
2-Alwaysusethebestlocaladdressforthistarget.
尽可能使用能够匹配到ARP请求的最佳地址。
arp_ignore:
当ARP请求发过来后发现自己正是请求的地址是否响应;
0-(default):
replyforanylocaltargetIPaddress,configuredonanyinterface
1-replyonlyifthetargetIPaddressislocaladdressconfiguredontheincoming
interface.
哪个接口上接受ARP请求,就从哪个端口上回应。
对linux来说IP地址属于系统而不属于某个接口。
2)
RedHat提供了arptables工具,利用arp防火墙也可以实现。
2
当RealServer内网网卡响应客户端请求时,要以VIP作为源地址,不能以RIP作为源地址。
解决方法
添加一条路由:
routeadd-host192.168.0.127devlo:
0使客户端访问VIP,就让VIP来响应客户端。
这样避免了使用RIP作为源地址。
Director:
VIP:
响应客户端请求;
DIP:
与RIP彼此间实现arp解析,并将客户端的请求转发给RealServer。
eth0:
0
VIP192.168.0.127
eth0
DIP192.168.0.10桥接
RIP192.168.0.12
桥接
lo:
VIP192.168.0.127
RIP192.168.0.13
VIP192.168.0.127
[root@station39~]#vim/etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_announce=2
[root@station39~]#sysctl-p
[root@station39~]#ifconfigeth0192.168.0.12/24
[root@station39~]#ifconfiglo:
0192.168.0.127broadcast192.168.0.127netmask
255.255.255.255
[root@station39~]#routeadd-host192.168.0.127devlo:
[root@station26~]#vim/etc/sysctl.conf
[root@station26~]#sysctl-p
[root@station26~]#ifconfigeth0192.168.0.13/24
[root@station26~]#ifconfiglo:
[root@station26~]#routeadd-host192.168.0.127devlo:
Director
[root@server27~]#ifconfigeth0192.168.0.10/24
[root@server27~]#ifconfigeth0:
0192.168.0.127broadcast192.168.0.127netmask255.255.255.255
[root@server27~]#routeadd-host192.168.0.127deveth0:
[root@server27~]#ipvsadm-C
80-swlc
80-r192.168.0.12-g-w5
80-r192.168.0.13-g-w8
80wlc
192.168.0.13:
Route
8
18
192.168.0.12:
11
如果要保持访问的页面一致,我们可以另外准备一台服务器专门用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 集群 LVS 负载 均衡 详解