搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!!

Keepalived的设计目标就是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。使用Keepalived构建LVS群集更加简便易用,主要优势体现在,对LVS负载调度器实现热备切换、提高可用性,对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

在基于LVS(DR模式)+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,本次实验以DR模式的LVS群集为基础,增加一台负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的LVS网站群集平台,实验拓补如图:

由于实验环境,所以就搭建两台Web站点服务器,NFS共享存储跟调度器、Web节点在同一网段上,简化实验步骤。实际生产环境中,正常情况下,共享存储不能跟调度器、Web节点在同一网段上,需要用交换机隔离出来,以增加对共享存储的读写操作。实际环境中,调度器、Web节点都至少需要两个网卡,便于跟共享存储通信。实验环境,简化了一下,大家多多体谅!

使用Keepalived构建LVS群集时,也需要用到ipvsadm管理工具(查看负载调度效果时使用),大部分工作由Keepalived自动完成,不需要手动执行ipvsadm(除了查看和监控群集外)。关于如何搭建NFS共享存储,搭建NFS共享存储特别简单!本次实验就不做了,对NFS群集不清楚的朋友可以参考博文:LVS负载均衡群集之构建NAT模式,可跟做!!!

实验步骤:

一、配置主调度器

1.全局配置、热备配置

首先为主、从调度器实现热备功能,漂移地址使用LVS群集的VIP地址。

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
//关闭防火墙和SELinux
[[email protected] ~]# yum -y install keepalived ipvsadm
//安装相应的服务、工具
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
//编辑Keepalived服务的配置文件
  //配置文件少了许多没必要的东西,比如关于邮件的内容,为了更加简便的理解其配置文件内容
global_defs {
   router_id LVS_DEVEL1                     //主调度器名称
}

vrrp_instance VI_1 {
    state MASTER                               //主调度器的热备状态
    interface ens33
    virtual_router_id 1
    priority 100                                     //主调度器的优先级
    advert_int 1
    authentication {                              //主、从热备认证信息
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                        //指定群集VIP地址(可以有多个)
        192.168.1.254
    }
}

关于Keepalived服务的配置文件详细介绍可以参考博文:利用Keepalived实现双机热备详解

2.Keepalived配置文件中Web服务池配置

在Keepalived的热备配置基础上添加“Virtual_server VIP 端口 {...}”区域来配置虚拟服务器,主要包括对负载调度器算法、群集工作模式、健康检查间隔、真实服务器地址等参数的设置。

[[email protected] ~]# vim /etc/keepalived/keepalived.conf
                                           ……………………………………
//省略Keepalived配置文件的全局配置、热备配置
virtual_server 192.168.1.254 80 {                                 //虚拟服务器地址(VIP)、端口
    delay_loop 15                                                           //健康检查的间隔时间(秒)
    lb_algo rr                                                                  //轮询(rr)调度算法
    lb_kind DR                                                               //直接路由(DR)群集工作模式
    !  persistence_timeout 50
        //连接保持时间(秒),“!”表示不启用的意思,为了验证效果,建议禁用。
    protocol TCP                                                            //应用服务采用的是TCP协议

    real_server 192.168.1.3 80 {                                  //第一个Web节点的地址
        weight 1                                                             //节点的权重
        TCP_CHECK {                                                  //健康检查方式
            connect_port 80                                            //检查的目标端口
            connect_timeout 3                                        //连接超时(秒)
            nb_get_retry 3                                              //重试次数
            delay_before_retry 4                                    //重试间隔
        }
    }

    real_server 192.168.1.4 80 {                              //第二个Web节点的地址、端口
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
        //如果有多个Web节点服务器,依次添加即可!
}
//注意配置文件的“{}”,较多,小心修改
[[email protected] ~]# systemctl start keepalived
//启动Keepalived服务

二、配置从调度器

从调度器的配置与主调度器基本相同,包括全局配置、热备配置、服务器池配置,只需修改全局配置中:路由器名称(router_id)、热备状态(state)、优先级(priority)。

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
//关闭防火墙和SELinux
[[email protected] ~]# yum -y install keepalived ipvsadm
//安装相应服务、工具
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
//编辑Keepalived服务的配置文件
global_defs {
   router_id LVS_DEVEL2                        //从调度器名称
}

vrrp_instance VI_1 {
    state BACKUP                                    //热备状态(备用)
    interface ens33
    virtual_router_id 1
    priority 99                                           //从调度器的优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.254
    }
}

virtual_server 192.168.1.254 80 {
    delay_loop 15
    lb_algo rr
    lb_kind DR
    !  persistence_timeout 50
    protocol TCP

    real_server 192.168.1.3 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }   

    real_server 192.168.1.4 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 4
        }
    }
}   

除了上述标记的地方,剩下的地方跟主调度器一样(必须一样)!
[[email protected] ~]# systemctl start keepalived
//启动Keepalived服务

三、配置Web节点服务器


根据所选择的群集工作模式不同(DR或NAT),节点服务器的配置也有所差异。本次实验以DR模式为例,除了需要调整/proc系统的ARP响应参数外,还需要为虚拟接口(lo:0)配置VIP地址,并添加一条到VIP的本地路由。关于DR模式如何搭建Web节点服务器可以参考博文:LVS负载均衡群集之构建DR模式,可跟做!!!

大致步骤如下:

[[email protected] ~]# systemctl stop firewalld
s[[email protected] ~]# setenforce 0
//关闭防火墙与SELinux
[[email protected] ~]# yum -y install httpd
//安装http服务
[[email protected] ~]# echo qqqqq > /var/www/html/index.html
[[email protected] ~]# systemctl start httpd
//修改Web节点服务器的主页内容,并启动http服务
[[email protected] ~]# vim /etc/sysctl.conf
//修改内核参数,添加以下内容
net.ipv4.conf.all.arp_ignore  =  1
net.ipv4.conf.all.arp_announce  =  2
net.ipv4.conf.default.arp_ignore  =  1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore  =  1
net.ipv4.conf.lo.arp_announce  = 2
[[email protected] ~]# sysctl -p
//加载内核参数
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp ifcfg-lo ifcfg-lo:0
[[email protected] network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.1.254
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0
[[email protected] network-scripts]# ifup lo
[[email protected] network-scripts]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.1.254  netmask 255.255.255.255
        loop  txqueuelen 1  (Local Loopback)
//为本机(lo)网卡添加虚拟IP
[[email protected] ~]# route add -host 192.168.1.254 dev lo:0
//添加一条到VIP的本地路由

不管几台Web节点服务器,都是同样的配置!
建议,两台Web节点服务器的主页不要一样,用于测试!在实际生产环境中,会搭建NFS共享存储(关于如何搭建NFS共享存储在博文开头已经提到)来自动同步Web节点服务器的主页内容!

四、测试LVS(DR模式)+Keepalived高可用群集

在客户机的浏览器中,能够通过LVS(DR模式)+Keepalived群集的VIP地址(192.168.1.254)正常访问Web页面内容,当主、从调度器任何一个失效时,Web站点依然可以访问(可能需要刷新几次或者重新打开浏览器);只要服务器池有两台或两台以上的真实Web节点服务器可用,就可以实现访问量的负载均衡(而且负载均衡效果比LVS负载均衡效果要明显)!自行验证!

在主、从调度器上可以根据/var/log/messages日志文件,跟踪故障切换过程。若要查看负载分配情况,可以在主调度器上,执行以下命令:

[[email protected] ~]# 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.1.254:80 rr
  -> 192.168.1.3:80               Route   1      1          0
  -> 192.168.1.4:80               Route   1      1          0   

这就是为什么要安装ipvsadm工具。
最终可以验证LVS(DR模式)+Keepalived高可用负载均衡群集的健壮性!

建议搭建NFS共享存储,来保证Web节点服务内容一致(实际环境中肯定是这样做的)!

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/14157628/2439181

时间: 2024-10-10 14:53:57

搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!!的相关文章

LVS + Keepalived 高可用群集 【DR模式】

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

keepalived高可用群集与lvs群集结合搭建

 keepalived双机热备 1:keepalived双机热备,主要是用来提供故障切换,和对节点服务器的健康检查.当故障主机回复之后加入群集 2:keepalived是基于vrrp协议的方式进行热备方式,除了一个主服务器之外可以有多个从服务器,而且每一台从服务器的优先级等级各不相同. 3:工作的时候只有主服务器在工作其他服务器处于冗余状态,只要主服务器一旦发生宕机,从服务器,优先级最高的将接任主服务器的位置,以此类推.当主服务器故障排除之后,将重新夺得控制权                  

CentOS7.4—构建LVS+Keepalived高可用群集

LVS+Keepalived高可用群集 目录第一部分 环境准备第二部分 使用Keepalived搭建双机热备第三部分 配置Web节点服务器第四部分 测试LVS+Keepalived高可用群集 第一部分 环境准备一:调度器两台(双机热备)系统:Linux-CentOS 7.4IP地址:192.168.80.10(主)IP地址:192.168.80.20(备)二:Web服务器两台系统:Linux-CentOS 7.4IP地址:192.168.80.30(SERVER AA)IP地址:192.168.

LVS+keepalived 高可用群集

LVS+keepalived 高可用群集 实验目的: 使用 keepalived 实现 LVS 双机热备. 实验环境: 主机 操作系统 IP地址 主要软件 LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.128 keepalived LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.129 keepalived web 服务器 1 CentOS 7.3 x86_64 192.168.217.130 http web 服务器 2 Cen

高可用群集HA介绍与LVS+keepalived高可用群集

一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/ Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协

构建LVS+Keepalived高可用群集

防伪码:不必向我诉说春天,我的心里并没有秋寒 第六章 构建LVS+Keepalived高可用群集 前言:keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换和健康检查,官方网站:http://www.keepalived.org.类似于我们以前学习过的HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务.我们今天学习的双机热备是就是利用了

LVS+Keepalived高可用群集

keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务. 双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障

构建LVS-DR+keepalived 高可用群集

LVS-DR+keepalived高可用群集 所需环境:     192.168.10.5   主LVS 192.168.10.6   从LVS 192.168.10.7   web 1      虚拟IP:      192.168.10.100 192.168.10.8   web 2      虚拟IP:      192.168.10.100 192.168.10.9   xp客户机 配置要求:断开主LVS,查看客户机是否能ping通10.100 配置原理: 负载均衡的工作模式使用的是直

LVS-DR+keepalived高可用群集

LVS-DR+keepalived高可用群集 1.1 Keepalived概述 1.1.1 Keepalived介绍 keepalived是一个类似于layer3,4 & 5交换机制的软件,也就是我们平时说的第三层,.第四层和第五层交换.keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完