文档章节

18.11 LVS DR模式搭建

脑洞老湿_
 脑洞老湿_
发布于 2017/09/06 17:10
字数 2072
阅读 1
收藏 0
点赞 0
评论 0

18.11 DR模式搭建

#dir上编写脚本 vim /usr/local/sbin/lvs_dr.sh并执行;     //内容如下
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.133.200
rs1=192.168.133.132
rs2=192.168.133.133
#注意这里的网卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

#两台rs上也编写脚本 vim /usr/local/sbin/lvs_rs.sh并执行;   //内容如下
#/bin/bash
vip=192.168.133.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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

1、dir上配置:

编辑脚本文件 vim /usr/local/sbin/lvs_dr.sh并执行:

[root@DasonCheng ~]# vim /usr/local/sbin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.60.120
rs1=192.168.60.12
rs2=192.168.60.13
#注意这里的网卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
……
[root@DasonCheng ~]# sh /usr/local/sbin/lvs_dr.sh 

2、两台rs上配置:

编辑脚本文件/usr/local/sbin/lvs_rs.sh并执行:

[root@aming2 ~]# vim /usr/local/sbin/lvs_rs.sh           //aming3机器也需要编辑执行;
#! /bin/bash
vip=192.168.60.120
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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
……
[root@aming2 ~]# sh /usr/local/sbin/lvs_rs.sh
[root@aming3 ~]# vim /usr/local/sbin/lvs_rs.sh
#/bin/bash
vip=192.168.60.120
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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
……
[root@aming3 ~]# sh /usr/local/sbin/lvs_rs.sh

3、测试:

分别在dir上和两个rs上执行这些脚本
测试
[root@aming2 ~]# sh /usr/local/sbin/lvs_rs.sh
[root@aming3 ~]# sh /usr/local/sbin/lvs_rs.sh
[root@DasonCheng ~]# sh /usr/local/sbin/lvs_dr.sh
[root@DasonCheng ~]# ipvsadm -ln    //可以查看活动连接数;
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.60.120:80 wrr
  -> 192.168.60.12:80             Route   1      5          0         
  -> 192.168.60.13:80             Route   1      4          0 

mark mark mark

18.12 keepalived lvs

完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived
 keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本
 三台机器分别为:
 dir(安装keepalived)133.130
 rs1 133.132
 rs2 133.133
 vip 133.200
 编辑keepalived配置文件 vim /etc/keepalived/keepalived.conf//内容请到https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/lvs_keepalived.conf 获取
 需要更改里面的ip信息
 执行ipvsadm -C  把之前的ipvsadm规则清空掉
 systemctl restart network 可以把之前的vip清空掉
 两台rs上,依然要执行/usr/local/sbin/lvs_rs.sh脚本
 keepalived有一个比较好的功能,可以在一台rs宕机时,不再把请求转发过去
 测试

1、环境准备:

  1. dir1(安装keepalived,master)60.11;
  2. dir2(安装keepalived,backup)60.12;
  3. rs1 60.13;
  4. rs2 60.14;

2、master配置:

vrrp_instance VI_1 {
    #备用服务器上为 BACKUP
    state MASTER
    #绑定vip的网卡为ens33,你的网卡和阿铭的可能不一样,这里需要你改一下
    interface ens33
    virtual_router_id 51
    #备用服务器上为90
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux
    }
    virtual_ipaddress {
        192.168.60.200
    }
}
virtual_server 192.168.60.200 80 {
    #(每隔10秒查询realserver状态)
    delay_loop 10
    #(lvs 算法)
    lb_algo wlc
    #(DR模式)
    lb_kind DR
    #(同一IP的连接0秒内被分配到同一台realserver)
    persistence_timeout 0
    #(用TCP协议检查realserver状态)
    protocol TCP
    real_server 192.168.60.13 80 {
        #(权重)
        weight 100
        TCP_CHECK {
        #(10秒无响应超时)
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.60.14 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

3、backup配置:

[root@DasonCheng ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux
    }
    virtual_ipaddress {
        192.168.60.200
    }
}
virtual_server 192.168.60.200 80 {
    delay_loop 10
    lb_algo wlc
    lb_kind DR
    persistence_timeout 0
    protocol TCP
    real_server 192.168.60.13 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.60.14 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

4、rs1配置:

[root@aming3 ~]# vim /usr/local/sbin/lvs_rs.sh
#/bin/bash
vip=192.168.60.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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
……
[root@aming3 ~]# sh /usr/local/sbin/lvs_rs.sh

5、rs2配置:

[root@aming4 ~]# vim /usr/local/sbin/lvs_rs.sh
#/bin/bash
vip=192.168.60.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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
……
[root@aming4 ~]# sh /usr/local/sbin/lvs_rs.sh

6、测试:

在测试前,有这几点注意:

  1. 关闭dir1、2的nginx,避免访问出错;
  2. 保证aming3,aming4的nginx处于运行状态;
  3. aming3,aming4得先curl localhost成功才行;
  4. 关闭dir1、dir2、aming3和aming4的防火墙和selinux;
  5. 保证配置文件的正确性!
  6. ip add查看vip(virtual ip)
  7. systemctl restart keepalived重启服务;

正常测试:
mark mark mark
关闭aming3:

[root@aming3 ~]# systemctl stop nginx   
#谷歌的aming3变成了aming4,其他的刷新无改变;

mark
还原aming3,关闭master:

//关闭前:
[root@DasonCheng ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:f0:f3:49 brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.11/24 brd 192.168.60.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.200/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.110/24 brd 192.168.60.255 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::32d1:eea9:5747:f919/64 scope link 
       valid_lft forever preferred_lft forever
……
[root@aming2 ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:d4:f4:59 brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.12/24 brd 192.168.60.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::f44b:1b66:dbe1:349a/64 scope link 
       valid_lft forever preferred_lft forever
//关闭后:过了一段时间,可以正常访问了;60.200在backup设备上面;
[root@DasonCheng ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:f0:f3:49 brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.11/24 brd 192.168.60.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.110/24 brd 192.168.60.255 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::32d1:eea9:5747:f919/64 scope link 
       valid_lft forever preferred_lft forever
……
[root@aming2 ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:d4:f4:59 brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.12/24 brd 192.168.60.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.200/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::f44b:1b66:dbe1:349a/64 scope link 
       valid_lft forever preferred_lft forever

mark mark mark
还原master:

#立刻恢复master优先级;
[root@DasonCheng ~]# systemctl start keepalived
[root@DasonCheng ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:f0:f3:49 brd ff:ff:ff:ff:ff:ff
    inet 192.168.60.11/24 brd 192.168.60.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.200/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.60.110/24 brd 192.168.60.255 scope global secondary ens33:1
       valid_lft forever preferred_lft forever
    inet6 fe80::32d1:eea9:5747:f919/64 scope link 
       valid_lft forever preferred_lft forever

© 著作权归作者所有

共有 人打赏支持
脑洞老湿_
粉丝 2
博文 148
码字总数 124412
作品 0
荆州
2018-4-11 16周1次课 LVS DR模式搭建、keepalived + LVS

18.11 LVS DR模式搭建 IPtunnel模式用到的不多,不再多赘述 1,准备工作 三台机器 分发器,也叫调度器(简写dir):192.168.65.128 rs1:192.168.65.129 rs2:192.168.65.130 vip:192.168.6...

alexis7gunner ⋅ 04/11 ⋅ 0

LVS的DR模式(MASTER-BACKUP-DR)

LVS的理论基础请点击下面的网址: http://my.oschina.net/u/1454868/blog/208269 网络架构: direct server:10.10.54.85(3306)backup:10.10.54.84vip:10.10.54.89(eth0) real server:10.10.5......

卷心菜菜 ⋅ 2014/03/14 ⋅ 0

高可用简介及简单实现方案

前面介绍了lvs集群架构的搭建,提到了单点故障问题,一旦Director服务器出现问题不可用,lvs集群将整体崩溃,集群所提供的服务将顺利下线。高可用的想法是一旦中间某台服务器丧失提供服务的能...

从运维开始 ⋅ 2017/10/25 ⋅ 0

应用软件学习总结(包括监控,自动化运维工具,WEB服务等)

应用软件学习总结 目录 版本控制系统 SVN部署及使用 Git从入门到熟悉 监控系统 一健安装Zabbix 自动化运维工具 Ansible自动化运维工具安装及使用 VPN专线 PPTP服务器端部署到客户端连接使用 ...

yht_1990 ⋅ 2016/07/19 ⋅ 0

squid和lvs..web的整合怎么搞?

我想搭建这个样一个环境.用LVS负载squid .但是SQUID不用缓存直接只用直接连接.只做反向代理.然后由squid连接web.整体拓扑如下LVS------SQUID-----WEB. SQUID-----web这段反向代理已经做好.只...

linux_niao ⋅ 2012/06/06 ⋅ 0

[Nginx][笔记]Keepalived\LVS\Nginx\tomcat 经典基本架构演变过程

KeepalivedLVSNginxtomcat 经典架构演变过程-需要一定基础 Nginx 背景问题: 如上图所示,正常情况下,我们直接访问tomcat一台服务器,但是并发量增多的情况下,需要设置多台tomcat来分流 解...

zemel ⋅ 2016/09/04 ⋅ 0

问一下我得客户端应用服务器和LVS负载服务部署在同一台服务器上,为什么服务会夯死?

求LVS大牛指导 情况是这样的,我想做mysql的负载均衡和高可用,我有两台服务器搭建LVS+keepalived, 虚拟出IP 192.168.0.100,DR模式负载了3台realserver(realserver是mysql服务)的请求,我...

养猪 ⋅ 2015/08/15 ⋅ 1

手把手基于LVS-NAT模型负载均衡搭建wordpress服务

一、概述 本次测试环境说明: 一台公共服务器提供NTPD,vsftpd(yum内网库),NFS网络共享(用于wordpress共享) 模拟公网:172.16.0.254 内网:192.168.10.253 DR(调度器) 双网卡:VIP(172....

dyc2005 ⋅ 2017/12/31 ⋅ 0

linu实现负载均衡集群的-LVS-nat模式

一.集群,负载均衡概述 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心...

腿快抖断了 ⋅ 2017/11/04 ⋅ 0

LVS DR模式负载均衡搭建、keepalived高可用+LVS负载均衡配合

LVS DR模式搭建 准备: dir(调度器):192.168.188.2 rs1:192.168.188.3 rs2:192.168.188.6 vip:192.168.188.200 安装ipvsadm dir设置 rs1设置 rs2设置 keepalived+LVS LVS缺点: 当使用...

若白衣 ⋅ 04/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部