LVS-DR模式实现负载均衡

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

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

在这里插入图片描述
优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理 很巨大的请求量,这种方式,一台负载均衡能为 超过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服务
在这里插入图片描述
在这里插入图片描述
yum install ipvsadm -y
在这里插入图片描述
添加虚拟IP(vip)
在这里插入图片描述

在这里插入图片描述
-A:添加虚拟服务器
-a :添加节点
-t :指定vip及tcp端口
-r :指定节点ip及端口
-s:指定算法
-g:表示使用DR模式
rr:轮询
linux2 RS
/32 子网掩码不对外 创建虚拟ip(vip)
在这里插入图片描述
创建一个对外的发布文件,检查httpd服务端口是否为80 一定要启动httpd服务
在这里插入图片描述
yum install arptables_jf -y //下载服务arptables
在这里插入图片描述
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连接
保存该策略
在这里插入图片描述
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 /保存该策略
测试:
在这里插入图片描述
在linux3调度器查看
在这里插入图片描述
问题:这种服务的缺点在于,如果后端服务器挂掉,比如说停掉 server 真实主机的 httpd 服务,
那么在客户端解析的时候们就会报错,但 server3 还会正常工作。这样用户就将得到错误的信息
总结: vs 对后端没有健康检查
用 ldirectord 解决此问题
2,健康检查(通知主机后台服务状态)
cd /etc/yum.repos.d/
vim rhel-source.repo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拷贝一份到/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
在这里插入图片描述
测试:
linux2 停掉2的httpd服务,留1工作,结果就会只调用1
/etc/init.d/httpd stop
在这里插入图片描述
若两个真实服务器都挂掉:
linux1 停掉1的httpd服务,结果就会linux3主机自己工作
/etc/init.d/httpd stop
在这里插入图片描述
3,做一个备份调度器
先做好一个linux4的快照 做为备份调度器
tar zxf keepalived-2.0.6.tar.gz 解压压缩包
在这里插入图片描述
[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
在这里插入图片描述
在这里插入图片描述
建立链接,给keepalived执行权限
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
scp /etc/keepalived/keepalived.conf root@172.25.66.4:/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就是主调度器
在这里插入图片描述
测试:此时虚拟ip在主调度器上,关闭服务,挂掉,
在这里插入图片描述
从调度器接管linux3,可以看到虚拟ip已经到linux4从调度器上了
在这里插入图片描述
服务还可以正常运行
在这里插入图片描述
在此开启主linux3调度器服务,主调度器会接管linux4
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值