LVS-DR模型简介
2015-09-10 12:32
246 查看
lvs是在Linux的软件层面实现负载均衡的很好的方法。其中包括三种类型,分别为NAT模型,DR模型和TUN模型。下面简单的介绍下DR模型的应用。
在lvs(Linuxvirtual server)包括几个重要的组成部分,分别为director(调度器)将客户端的请求分发给后面的real server进行相应。real server真正提供服务的服务器。director通过相应的算法对real server进行调度。
在director调度的过程中,调度的算法有如果集中:
rr:轮训,也就是轮换的分给服务器。
wrr:加权轮询,按照每台服务器的权重,分给服务器相应的任务。
sh:原地址hash,来自同一个客户的请求发送到相同的服务器进行相应。
dh:目标地址hash,对于相同的请求发送到相同的服务器。因为相应的服务器会有缓存,这样会加快服务器的相应速度。
lc:最少连接。那个服务器的连接数最少,最新的请求就分配给相应的服务器。计算方法:活动连接数*256。
wlc:加权最少连接数。在权重的基础上,最新的请求分发给连接最少的服务器。计算方法:活动连接数*256/权重。
sed:最短期望延迟。计算方法:(active+1)*256/权重。
nq:永不排队。对于请求,先分发给每个服务器一个请求,然后在根据权重分配。
LBLC和LBLCR两种方法。现在如果不指定的话那么director的默认的方法就是wlc方法。
例子:为了显示效果。利用wrr的方法实现调度器对服务器的调度。
在DR模型过程中,有一点需要注意的是。client的请求是请求到我们的VIP上面的,VIP是一个公网的地址(在本实验中地址是自己随意规划的)。当客户端的请求到达director之后,director根据自己的调度算法进行调度响应。这时候需要注意的是,此时回复的客户端的报文的原地址一定是VIP的地址,而不能是RIP的地址。因为外部的请求的报文的目的地址是VIP。再有就是当报文到达director之前,会进行arp的广播,来查找director,因为此时real server1 和real server 2都配置了VIP,所以这时候不能让他们对此Arp广播报文进行响应。
所以,我们的配置如下。
1、 director的配置
①IP地址的配置:
在配置之前请自行关闭selinux和iptables
DIP:192.168.5.1255.255.255.0(网关以及掩码部分可以省略)
VIP:ifconfigeth0:0 192.168.5.254 broadcast 192.168.5.254 netmask 255.255.255.255 up
route add –host192.168.5.254 dev eth0:0
2、 real server1 的配置
①IP地址的配置:
RIP:192.168.5.7
echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2>/proc/sys/net/ipv4/conf/all/arp_announce
echo 1>/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore
在配置VIP之前,先把响应的网卡的ARP的响应关掉。以防止VIP的响应干扰。
VIP:ifconfiglo:0192.168.5.254 broadcast 192.168.5.254 netmask 255.255.255.255 up
route add –host192.168.5.254 dev lo:0
②简单的web服务的配置
yum –y installhttpde
echohello1.hello.com >/var/www/html/index.html
service httpdstart
curl http://localhost
如果测试没有问题的话realserver1的配置完成。real server 2的配置和real server 1 的配置是相同的。
③director上面ipvsadm的安装
可以通过yum安装。也可以通过RPM包安装
rpm –ivh ipvsadm*****.rpm
安装好之后编写规则
ipvsadm –A –t192.168.5.254 –s wrr
ipvsadm –a –t192.168.5.254:80 –r 192.168.5.7 –g –w 2
ipvsadm –a –t192.168.5.254:80 –r 192.168.5.8 –g –w 1
把调度方式设置为了加权的轮训方式。并且把192.168.5.7和192.168.5.8两台服务器加到realserver中了。
service ipvsadmsave 对编写的规则就行保存。
下面就可以进行web的访问了。注意访问的时候输入的IP地址是VIP。基础的ipvsadm等参数的介绍将在ipvsadm的NAT模型中进行介绍。
在lvs(Linuxvirtual server)包括几个重要的组成部分,分别为director(调度器)将客户端的请求分发给后面的real server进行相应。real server真正提供服务的服务器。director通过相应的算法对real server进行调度。
在director调度的过程中,调度的算法有如果集中:
rr:轮训,也就是轮换的分给服务器。
wrr:加权轮询,按照每台服务器的权重,分给服务器相应的任务。
sh:原地址hash,来自同一个客户的请求发送到相同的服务器进行相应。
dh:目标地址hash,对于相同的请求发送到相同的服务器。因为相应的服务器会有缓存,这样会加快服务器的相应速度。
lc:最少连接。那个服务器的连接数最少,最新的请求就分配给相应的服务器。计算方法:活动连接数*256。
wlc:加权最少连接数。在权重的基础上,最新的请求分发给连接最少的服务器。计算方法:活动连接数*256/权重。
sed:最短期望延迟。计算方法:(active+1)*256/权重。
nq:永不排队。对于请求,先分发给每个服务器一个请求,然后在根据权重分配。
LBLC和LBLCR两种方法。现在如果不指定的话那么director的默认的方法就是wlc方法。
例子:为了显示效果。利用wrr的方法实现调度器对服务器的调度。
在DR模型过程中,有一点需要注意的是。client的请求是请求到我们的VIP上面的,VIP是一个公网的地址(在本实验中地址是自己随意规划的)。当客户端的请求到达director之后,director根据自己的调度算法进行调度响应。这时候需要注意的是,此时回复的客户端的报文的原地址一定是VIP的地址,而不能是RIP的地址。因为外部的请求的报文的目的地址是VIP。再有就是当报文到达director之前,会进行arp的广播,来查找director,因为此时real server1 和real server 2都配置了VIP,所以这时候不能让他们对此Arp广播报文进行响应。
所以,我们的配置如下。
1、 director的配置
①IP地址的配置:
在配置之前请自行关闭selinux和iptables
DIP:192.168.5.1255.255.255.0(网关以及掩码部分可以省略)
VIP:ifconfigeth0:0 192.168.5.254 broadcast 192.168.5.254 netmask 255.255.255.255 up
route add –host192.168.5.254 dev eth0:0
2、 real server1 的配置
①IP地址的配置:
RIP:192.168.5.7
echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2>/proc/sys/net/ipv4/conf/all/arp_announce
echo 1>/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1>/proc/sys/net/ipv4/conf/all/arp_ignore
在配置VIP之前,先把响应的网卡的ARP的响应关掉。以防止VIP的响应干扰。
VIP:ifconfiglo:0192.168.5.254 broadcast 192.168.5.254 netmask 255.255.255.255 up
route add –host192.168.5.254 dev lo:0
②简单的web服务的配置
yum –y installhttpde
echohello1.hello.com >/var/www/html/index.html
service httpdstart
curl http://localhost
如果测试没有问题的话realserver1的配置完成。real server 2的配置和real server 1 的配置是相同的。
③director上面ipvsadm的安装
可以通过yum安装。也可以通过RPM包安装
rpm –ivh ipvsadm*****.rpm
安装好之后编写规则
ipvsadm –A –t192.168.5.254 –s wrr
ipvsadm –a –t192.168.5.254:80 –r 192.168.5.7 –g –w 2
ipvsadm –a –t192.168.5.254:80 –r 192.168.5.8 –g –w 1
把调度方式设置为了加权的轮训方式。并且把192.168.5.7和192.168.5.8两台服务器加到realserver中了。
service ipvsadmsave 对编写的规则就行保存。
下面就可以进行web的访问了。注意访问的时候输入的IP地址是VIP。基础的ipvsadm等参数的介绍将在ipvsadm的NAT模型中进行介绍。
相关文章推荐
- storm-start项目示例和开发-03.docx
- 谷歌回归前景堪忧:狼真来了却落入虎口
- Desktops 虚拟桌面软件(推荐)
- android jni 有感一
- 比较好的js框架和代码学习网站
- ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
- AIDL Android
- http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html
- 看懂UML类图和时序图
- Geometric Shapes - POJ 3449(多边形相交)
- jump
- Searching a 2D Sorted Matrix Part II
- 空间域和频域结合的图像增强技术及实现
- lintcode-把排序数组转换为高度最小的二叉搜索树-177
- windows 10 开启vt-x
- cocos2d-x编译Andorid报错make: * No rule to make target
- 使用ascii方式得到26个字母
- HDU 4763 字符串的前中后三段公共子串
- TFS安装配置
- eDiary 日记本软件