LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

栏目: 服务器 · 发布时间: 6年前

内容简介:LVS的DR模式的原理详细介绍请看三台机器:(1) 配置虚拟IP地址(VIP)

实现LVS的DR模式

LVS的DR模式的原理详细介绍请看 LVS负载均衡之LVS-NAT与LVS-DR模式原理详解 这篇文章。

一. 实验环境

三台机器:

  • Director节点: (ens33 192.168.10.53 vip ens33:0 192.168.10.80)

  • Real server1: (ens33 192.168.10.51 vip lo:0 192.168.10.80)

  • Real server2: (ens33 192.168.10.52 vip lo:0 192.168.10.80)

二. 安装和配置

1. 配置两个real server服务器

(1) 配置虚拟IP地址(VIP)

VIP地址仅用作发送Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器Director监听并分发)。因此使用虚接口lo:0来承载VIP地址。

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
 DEVICE=lo:0
 IPADDR=192.168.10.80
 NETMASK=255.255.255.255   #子网掩码必须全为1
 ONBOOT=yes 1
ifup lo:0     #开启虚拟接口 

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集 (2)安装httpd,创建测试网页

#安装httpd
yum install httpd -y
#real server1创建测试网页
echo "Server 192.168.10.51" > /var/www/html/index.html
#real server2创建测试网页
echo "Server 192.168.10.52" > /var/www/html/index.html

(3)启动httpd服务,关闭防火墙和安全性策略

#启动httpd服务
systemctl start httpd.service 
systemctl enable httpd.service
#关闭防火墙和安全性策略
systemctl stop  firewalld.service 
systemctl disable firewalld.service
setenforce 0

(4)在两台real server上配置启动脚本

vim /etc/init.d/rs.sh
  #!/bin/bash
  VIP=192.168.10.80
        case "$1" in
        start)
                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
                /sbin/route add -host $VIP dev lo:0      #为本机添加一条路由记录
                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
                sysctl -p >/dev/null 2>&1
                echo "RealServer Start OK "
                ;;
        stop)
                ifconfig lo:0 down
                route del $VIP /dev/null 2>&1
                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
                echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
                echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
                echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
                echo "RealServer Stopd"
                ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        esac
        exit 0

这里需要注意的是避免ARP通信紊乱,解决方案是:修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。

  • arp_ignore=1表示系统只响应目的IP为本地IP的ARP请求。

  • arp_announce=2表示系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。

    (5)运行启动脚本

    chmod +x rs.sh
    service rs.sh start

    最后在本机上自测访问网站服务

    LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集 LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

    2. 配置Director server服务器

    (1)配置虚拟IP地址,以便响应群集访问

    cd /etc/sysconfig/network-scripts/
    cp ifcfg-ens33 ifcfg-ens33:0
    vim ifcfg-ens33:0
    DEVICE=ens33:0
    ONBOOT=yes
    IPADDR=192.168.10.80
    NETMASK=255.255.255.0
    ifup ens33:0

    LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集 (2)安装ipvsadm管理工具

    yum install ipvsadm -y

    (3)开启路由功能

    vim /etc/sysctl.conf
    net.ipv4.ip_forward=1
    sysctl -p     #保存

    (4)调整/proc响应参数,关闭 Linux 内核重定向参数响应

    vim /etc/sysctl.conf
    net.ipv4.conf.all.send_redirects = 0  
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    sysctl -p #保存

    (5)配置Director启动脚本

    vim /etc/init.d/dr.sh
    #!/bin/bash
    GW=192.168.10.1
    VIP=192.168.10.80
    RIP1=192.168.10.51
    RIP2=192.168.10.52
    case "$1" in
        start)
        /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
        systemctl start ipvsadm
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
        /sbin/route add -host $VIP dev ens33:0
        /sbin/ipvsadm -A -t $VIP:80 -s rr
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
        echo "ipvsadm starting --------------------[ok]"
        ;;
        stop)
        /sbin/ipvsadm -C
        systemctl stop ipvsadm
        ifconfig ens33:0 down
        route del $VIP
        echo "ipvsamd stoped----------------------[ok]"
         ;;
        status)
        if [ ! -e /var/lock/subsys/ipvsadm ];then
        echo "ipvsadm stoped---------------"
        exit 1
                else
                echo "ipvsamd Runing ---------[ok]"
        fi
        ;;
        *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
    esac
    exit 0

    (6)启动脚本,添加两个Real Server节点服务器

    chmod +x /etc/init.d/dr.sh
    service dr.sh start

    (7)关闭防火墙和安全策略

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    setenforce 0

    三.测试LVS群集

    用Windows客户端直接访问http://192.168.10.80/, 将能够看到由真实服务器提供的网页内容。

第一次访问:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

Real Server连接次数查看:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

刷新一次:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

Real Server连接次数查看:

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集
  • LVS结合keepalive

1.高可用群集(High Availability Cluster):以提高应用系统的可靠性、尽可能的减少中断时间为目标,确保服务的连续性,达到高可用(HA)容错效果。

2.LVS可以实现负载均衡,但是不能够故障切换和健康检查,也就是当一个rs服务器出现故障时,LVS仍然会把请求转发给故障的rs服务器,这样就会导致请求无效。keepalive软件可以解决 LVS 单点故障的问题,能同时实现 LVS 的高可用性。这里以LVS-DR模式为例。

一.实验环境

上述的LVS-DR搭建好web群集后,再添加一台备用的Director Server服务器,其配置同上。

四台机器:

  • Keepalived1 + lvs1(Director1):192.168.10.53 (主)
  • Keepalived2 + lvs2(Director2):192.168.10.54 (从)
  • Real server1:192.168.10.51
  • Real server2:192.168.10.52
  • VIP: 192.168.10.80

二.安装配置

在两个Director Server 节点服务器部署keepalived服务。

(1)安装keepalive软件

yum install keepalived -y

(2)主keepalived节点配置(lvs1)

#主节点( MASTER )配置文件
vim /etc/keepalived/keepalived.conf
 global_defs {
  ...    #省略部分
  smtp_server 127.0.0.1           #指向本地
  router_id LVS_01               #指定名称,备份服务器不同名称
  ...    #省略部分          
}

 vrrp_instance VI_1 {        #定义VRRP热备实例
    state MASTER            #MASTER表示主调度器
    interface ens33         #承载VIP地址的物理接口
    virtual_router_id 51    #虚拟路由器的ID号,每个热备组保持一致
    priority 100            #主调度器优先级
    advert_int 1            #通告间隔秒数
    authentication {        #认证信息
        auth_type PASS      #认证类型
        auth_pass 1111      #字码密串
    }
    virtual_ipaddress {     #指定群集VIP地址,也就是漂移地址
        192.168.10.80
    }
}

virtual_server 192.168.10.80 80 {  #虚拟服务器VIP地址
    delay_loop 6                   #健康检查的间隔时间
    lb_algo rr                     #轮询rr的调度算法
    lb_kind DR                     #直接路由工作模式
    persistence_timeout 0          #连接保持时间
    protocol TCP                   #应用服务采用的是TCP协议

    real_server 192.168.10.51 80 {  

                        #第一个web节点的服务器地址、端口
        weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80       
        }
    }

    real_server 192.168.10.52 80 {  

                       #第二个web节点的服务器地址、端口
 router_id LVS_01         weight 1
        TCP_CHECK {
            connect_timeout 10
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

(3)从keepalived节点配置(lvs2)

拷贝主节点的配置文件keepalived.conf,然后修改如下内容:

router_id LV ->  router_id LVS_02 #从调度器名称
state MASTER -> state BACKUP  #从调度器
priority 100 -> priority 90   #从调度器优先级

(4)启动keepalive

#先主后从分别启动keepalive
systemctl start keepalived

三.测试 keepalived 的HA特性

(1)虚拟IP地址漂移

首先在master(lvs1)上执行命令 ip addr ,可以看到vip在master节点上的;

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

这时如果在master上执行 systemctl stop keepalived 命令,这时vip已经不在master上,在slave节点上执行 ip addr 命令可以看到 vip 已经正确漂到slave节点。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

这时客户端去访问 http://192.168.10.80 访问依然正常。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

(2)连通性

在客户机执行“ping 192.168.10.80 -t”,能够正常ping通。

禁用master(lvs1)的ens33网卡,发现还是能正常ping通。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集 LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

(3)web访问测试

禁用master(lvs1)的ens33网卡,再次访问上述web服务,网页文档显示正常。

LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集 LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集 LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

以上所述就是小编给大家介绍的《LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Alone Together

Alone Together

Sherry Turkle / Basic Books / 2011-1-11 / USD 28.95

Consider Facebookit’s human contact, only easier to engage with and easier to avoid. Developing technology promises closeness. Sometimes it delivers, but much of our modern life leaves us less connect......一起来看看 《Alone Together》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具