LVS-DR模式实现负载均衡

LVS DR简单原理
client->VS->RS->client(VS只做调度,RS为虚拟服务器)
客户端向目标vip发出请求,lvs接收 ,LVS根据负载均衡算法选择一台活跃的的节点,将此节点的ip所在网卡的mac地址作为目标mac地址,发送到局域网里

节点在局域网中收到这个帧,拆开后发现目标IP(VIP)与本地匹配,于是处理这个报文.随后重新封装报文,发送到局域网.此时IP包的目标ip是客户端,源ip是自己的vip地址

LVS-DR模式实现负载均衡_第1张图片
优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理 很巨大的请求量,这种方式,一台负载均衡能为 超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈.

缺点:这种方式需要所有的DIR和RIP都在同一广播域;不支持异地容灾。
DR模式小结:

1、通过在调度器LB上修改数据包的目的MAC地址实现转发。注意源地址仍然是CIP,目的地址仍然是VIP地址。

2、请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)

3、因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面

4、RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。

5、RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。

6、由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。

环境:
iptables和selinux关闭
首先挂载镜像6.5到/var/www/html/rhel6.5/
1:linux3为调度器,实现负载均衡。
修改yum源
cd /etc/yum.repos.d/
vim rhel-source.repo
//添加LoadBalancer用来下载ipvsadm服务
LVS-DR模式实现负载均衡_第2张图片
LVS-DR模式实现负载均衡_第3张图片
yum install ipvsadm -y
LVS-DR模式实现负载均衡_第4张图片
添加虚拟IP(vip)
LVS-DR模式实现负载均衡_第5张图片

LVS-DR模式实现负载均衡_第6张图片
-A:添加虚拟服务器
-a :添加节点
-t :指定vip及tcp端口
-r :指定节点ip及端口
-s:指定算法
-g:表示使用DR模式
rr:轮询
linux2 RS
/32 子网掩码不对外 创建虚拟ip(vip)
LVS-DR模式实现负载均衡_第7张图片
创建一个对外的发布文件,检查httpd服务端口是否为80 一定要启动httpd服务
LVS-DR模式实现负载均衡_第8张图片
yum install arptables_jf -y //下载服务arptables
LVS-DR模式实现负载均衡_第9张图片
arptables -A IN -d 172.25.66.100 -j DROP //目的是不允许客户端直接连接RS1
arptables -A OUT -s 172.25.66.100 -j mangle --mangle-ip-s 172.25.66.2 //允许VS与RS1连接
保存该策略
LVS-DR模式实现负载均衡_第10张图片
linux1(RS)与linux2一样
ip addr add 172.25.7.107/32 dev eth0(vip)
cd /var/www/html/
vim index.html
vim /etc/httpd/conf/httpd.conf (80)
etc/init.d/httpd start
yum search arptables
yum install arptables_jf.x86_64 -y
arptables -A IN -d 172.25.66.100 -j DROP
arptables -A OUT -s 172.25.66.100 -j mangle --mangle-ip-s 172.25.66.1
/etc/init.d/arptables_jf save /保存该策略
测试:
LVS-DR模式实现负载均衡_第11张图片
在linux3调度器查看
LVS-DR模式实现负载均衡_第12张图片
问题:这种服务的缺点在于,如果后端服务器挂掉,比如说停掉 server 真实主机的 httpd 服务,
那么在客户端解析的时候们就会报错,但 server3 还会正常工作。这样用户就将得到错误的信息
总结: vs 对后端没有健康检查
用 ldirectord 解决此问题
2,健康检查(通知主机后台服务状态)
cd /etc/yum.repos.d/
vim rhel-source.repo
LVS-DR模式实现负载均衡_第13张图片
LVS-DR模式实现负载均衡_第14张图片
在这里插入图片描述
LVS-DR模式实现负载均衡_第15张图片
拷贝一份到/etc/ha.d/在这里插入图片描述
virtual=172.25.66.100:80 //虚拟vip
real=172.25.66.2:80 gate //真实服务器2的ip
real=172.25.66.1:80 gate //真实服务器1的ip
LVS-DR模式实现负载均衡_第16张图片
测试:
linux2 停掉2的httpd服务,留1工作,结果就会只调用1
/etc/init.d/httpd stop
LVS-DR模式实现负载均衡_第17张图片
若两个真实服务器都挂掉:
linux1 停掉1的httpd服务,结果就会linux3主机自己工作
/etc/init.d/httpd stop
LVS-DR模式实现负载均衡_第18张图片
3,做一个备份调度器
先做好一个linux4的快照 做为备份调度器
tar zxf keepalived-2.0.6.tar.gz 解压压缩包
LVS-DR模式实现负载均衡_第19张图片
[root@linux3 ~]# cd keepalived-2.0.6 编译,下载依赖软件包
[root@linux3 keepalived-2.0.6]# ./configure --with-init=SYSV --prefix=/usr/local/keepalived
yum install gcc -y
./configure --with-init=SYSV --prefix=/usr/local/keepalived
yum install libnl libnl-devel -y
./configure --with-init=SYSV --prefix=/usr/local/keepalived
yum install openssl-devel -y
./configure --with-init=SYSV --prefix=/usr/local/keepalived
LVS-DR模式实现负载均衡_第20张图片
在这里插入图片描述
建立链接,给keepalived执行权限
LVS-DR模式实现负载均衡_第21张图片

LVS-DR模式实现负载均衡_第22张图片
ip addr del 172.25.7.107/24 dev eth0 删除之前的虚拟ip
ip addr show
vim /etc/keepalived/keepalived.conf
#vrrp_strict //放弃修改防火墙规则
//MASTER表示主模式
priority 100 //数值越大,优先级越高
LVS-DR模式实现负载均衡_第23张图片
virtual_ipaddress {
172.25.66.100 //虚拟ip地址
LVS-DR模式实现负载均衡_第24张图片
virtual_server 172.25.66.100 80 { //虚拟ip地址 ,服务启动生效时会自动添加
delay_loop 3 //对后端的健康检查时间
lb_algo rr
lb_kind DR //DR模式
#persistence_timeout 50 //注释持续连接
protocol TCP
}

LVS-DR模式实现负载均衡_第25张图片
LVS-DR模式实现负载均衡_第26张图片
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/
/etc/init.d/keepalived start
linux4:备份调度器
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
chmod +x /usr/local/keepalived/etc/rc.d/init.d/keepalived
在这里插入图片描述
设置优先级数字低于linux3,这样linux3就是主调度器
LVS-DR模式实现负载均衡_第27张图片
测试:此时虚拟ip在主调度器上,关闭服务,挂掉,
LVS-DR模式实现负载均衡_第28张图片
从调度器接管linux3,可以看到虚拟ip已经到linux4从调度器上了
LVS-DR模式实现负载均衡_第29张图片
服务还可以正常运行
LVS-DR模式实现负载均衡_第30张图片
在此开启主linux3调度器服务,主调度器会接管linux4
LVS-DR模式实现负载均衡_第31张图片

你可能感兴趣的:(LVS-DR模式实现负载均衡)