浅谈keepalived双机热备(代码片段)

author author     2023-05-05     446

关键词:

一、Keepalived双机热备的基础知识

keepalived官方网站: www.keepalived.org/ 在非LVS环境中keepalived也可以作为热备软件使用。

1、Keepalived作用

keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机回复后将其重新加入群集。单独部署LVS环境的话,调度器发生宕机的话,整个群集就失效了,某一个web节点宕机后,客户端在访问时,总会碰上访问不到网页的情况,所以,将keepalived和LVS结合起来,才可形成一个真正的高可用群集,当然,后端的共享存储也必须搭建一个高可用的存储服务器,三者其中有一个满足不了,都不能称之为一个高可用的群集环境。

2、Keepalived的热备方式

keepalived采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——由多台路由器组成一个热备组,通过共用的虚拟IP(VIP)地址对外提供服务;每个热备份组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。

热备组内的每台路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内路由器进行转移,所以也称为漂移IP地址。使用keepalived时,漂移地址的实现不需要手动建立虚接口配置文件(如ens32:0),而是由keepalived根据配置文件自动管理。
技术图片

二、使用Keepalived实现双机热备

基于VRRP的热备方式,keepalived可以用作服务器的故障切换,每个热备组可以有多台服务器——最常用的是多机热备了。在这种多机热备方案中,故障切换主要针对虚拟IP地址的漂移来实现。因此能适用于各种应用服务器(不管是Web、FTP、Mail、还是SSH、DNS....)。

拓扑图如下所示:
技术图片

1、配置主服务器

Keepalived服务的配置目录位于/etc/keepalived/。其中,keepalived.conf是主配置文件;另外包括一个子目录samples/,提供了许多配置样例作为参考。在Keepalived的配置文件中,使用“global_defs ...”区段指定全局参数,使用“vrrp_instance实例名称...”区段指定VRRP热备参数,注释文字以“!”符号开头。

[root@centos04 ~]# systemctl stop firewalld   <!--关闭防火墙-->
[root@centos04 ~]# yum -y install ipvsadm keepalived  <!--安装keeplived服务-->
[root@centos04 ~]# cp /etc/keepalived/keepalived.conf 
/etc/keepalived/keepalived.conf.bak   <!--备份keepalived主配置文件-->
[root@centos04 ~]# systemctl start keepalived   <!--启动keepalived服务-->
[root@centos04 ~]# chkconfig --level 35 keepalived on  <!--设置开机自动启动-->
[root@centos04 ~]# vim /etc/keepalived/keepalived.conf  <!--编辑keepalived主配置文件-->
! Configuration File for keepalived

global_defs 
   router_id LVS_HA_Master     <!--修改这里的服务器名称-->


vrrp_instance VI_1            <!--定义VRRP热备实例-->
    state MASTER               <!--热备状态,MASTER表示主服务器(注意大小写)-->
    interface ens32              <!--承载VIP地址的物理接口-->
    virtual_router_id 51        <!--虚拟路由器的ID号,每个热备组保持一致-->
    priority 100                     <!--优先级0-100,数值越大越优先-->
    advert_int 1                    <!--通告间隔秒数(心跳频率)-->
    authentication               <!--认证信息,每个热备组保持一致-->
        auth_type PASS         <!--认证类型-->
        auth_pass 1111          <!--密码字串-->
    
    virtual_ipaddress           <!--指定漂移地址,可以有多个-->
        192.168.100.253
     

............     <!--此处省略部分内容-->

确认上面配置无误后,然后启动keepalived服务,实际状态为MASTER的主服务器将为ens32接口自动添加VIP地址,通过ip命令可以查看(注意:ifconfig命令看不到)。

[root@centos04 ~]# systemctl restart keepalived  <!--重启keepalived服务-->
[root@centos04 ~]# ip a show dev ens32 <!--查看ens32接口-->
ens32: <BROADCAST,MULTICAST,UP,LOWER_UPUt qlen 1000
    link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.40/24 brd 192.168.1.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet 192.168.100.253/32 scope global ens32   <!--可以看到VIP已经配置在ens32上-->
       valid_lft forever preferred_lft forever
    inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2、配置从节点

在同一keepalived热备组内,所有服务器的keepalived配置文件基本相同,包括虚拟路由器的ID号认证信息漂移地址心跳频率等不同之处主要在于路由器名称、热备状态、优先级。

  • 路由器名称(route_id):建议为每个参与热备的服务器指定不同的名称。

  • 热备状态(state):至少应有一台主服务器,将状态设置为MASTER;可以有多台备用的服务器,将状态设置为BACKUP。

  • 优先级(priority):数值越大则取得VIP控制权的优先级就越高,因此主服务的优先级应设置为最高;其他备用服务器可依次递减,但不能相同,以免在争夺VIP控制权时发生冲突。

配置备用服务器时(可以有多台)时,可以参考主服务器的keepa.conf文配置文件内容,只要修改路由器名称、热备状态、优先级就可以了。

[root@centos05 ~]# systemctl stop firewalld   <!--关闭防火墙-->
[root@centos05 ~]# yum -y install keepalived ipvsadm<!--安装相关工具-->
[root@centos05 ~]# scp 
root@192.168.100.40:/etc/keepalived/keepalived.conf
/etc/keepalived/
<!--使用从节点服务器root用户将主节点服务器的keepalived配置文件复制过来-->
root@192.168.100.40 s password: <!--输入主节点root用户的密码-->
keepalived.conf                             100% 3549     3.5MB/s   00:00   
[root@centos05 ~]# vim /etc/keepalived/keepalived.conf  
                  <!--编辑keepalived主配置文件-->
global_defs 
   ...............
   router_id LVS_DEVEL2          <!--修改这里的服务器名称-->
  .....................


                ..............
vrrp_instance VI_1 
    state BACKUP  <!--修改这里的状态,改为BACKUP-->
    interface ens32  <!--若该服务器承载VIP的物理接口有变,则这里也要修改-->
    virtual_router_id 51
    priority 90               <!--修改优先级,要比主服务器低-->
    advert_int 1
    authentication 
        auth_type PASS
        auth_pass 1111
       
    virtual_ipaddress 
    192.168.100.253
    
   
              .................
<!--改动上述几行后,保存退出即可-->
[root@centos05 ~]# systemctl start keepalived  <!--启动服务-->
[root@centos05 ~]# systemctl enable keepalived<!--设置开机自启动-->

确认配置无误,一样需要启动keepalived服务。此时主服务器仍然在线,VIP地址实际上仍然由主服务器控制,其他服务器处于备份状态,因此在备用服务器中将不会为ens32接口添加VIP地址。

[root@centos05 ~]# ip a show dev ens33       <!--查看ens33接口,不会看到VIP-->
ens32: <BROADCAST,MULTICAST,Udel state UP group default qlen 1000
    link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.50/24 brd 192.168.1.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

3、测试双机热备功能

将主服务器关机,或停止keepalived服务,等待约15秒后,查看备份服务器的ens32网卡,会发现漂移地址已经转移过来了,说明双机热备功能生效。待主服务器开机后,漂移地址会自动转移回到主服务器上。

[root@centos05 ~]# ip a show dev ens32   <!--主服务器关机后查看备份服务器的网卡信息-->
ens32: <BROADCAST,MULTICAST,UP state UP group default qlen 1000
    link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.50/24 brd 192.168.1.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet 192.168.100.253/32 scope global ens32 <!--漂移地址已经转移过来了-->
       valid_lft forever preferred_lft forever
    inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

再将主服务器开机,会发现VIP已经转移回了主服务器,而备份服务器又查不到了VIP:

[root@centos04 ~]# ip a show dev ens32   <!--在主服务器上进行查看-->
ens32: <BROADCAST,MULTICAST,UP,Lefault qlen 1000
    link/ether 00:0c:29:77:2c:03 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.40/24 brd 192.168.1.255 scope global noprefixroute ens32
       valid_lft forever preferred_lft forever
    inet 192.168.100.253/32 scope global ens32 <!--VIP地址在这里了-->
       valid_lft forever preferred_lft forever
    inet6 fe80::95f8:eeb7:2ed2:d13c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@centos05 ~]# ip a show dev ens32  <!--在备份服务器上进行查看-->
ens32: <BROADCAST,MULTICAST,UP,P grou00
    link/ether 00:0c:29:9a:09:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.50/24 brd 192.168.1.255 scope goute ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::3050:1a9b:5956:5297/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

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

keepalived双机热备(代码片段)

1、Keepalived:专为LVS和HA设计的一款健康检查工具功能:支持故障切换(调度器)支持节点健康检查(web服务器)使用VRRP(虚拟路由冗余协议),一主多备,共用同一个IP地址漂移地址,群集地址),但优先级不同。2、Keepalived的... 查看详情

keepalived双机热备(代码片段)

1、Keepalived:专为LVS和HA设计的一款健康检查工具功能:支持故障切换(调度器)支持jie‘dian节点健康检查(web服务器)使用VRRP(虚拟路由冗余协议),一主多备,共用同一个IP地址漂移地址,群集地址),但优先级不同。2、Kee... 查看详情

01-keepalived双机热备(代码片段)

keepalived双机热备1.keepalived双机热备的原理首先,要知道keepalived有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来... 查看详情

keepalived+nginx双机热备搭建(代码片段)

keepalived+nginx双机热备搭建一、准备工作1.1准备两台centos7.91.2nginx与keepalived软件双机安装1.3ip分配1.4修改主机名1.5关闭selinux(双机执行)1.6修改hosts(双机执行)二、安装keepalived2.1执行一下命令安装keepalived(... 查看详情

centos7keepalived双机热备(代码片段)

Centos7keepalived双机热备操作环境:keepalived热备份(双机热备)Centos7系统ip地址:192.168.80.100--主服务器Centos7系统ip地址:192.168.80.101--从服务器windows系统ip地址:192.168.80.20--测试客户端Centos7系统ip地址:192.168.80.100操作如下:1、keepalived软件... 查看详情

群集架构篇(代码片段)

——nginx反向代理+keepalived双机热备+tomcat服务器池+后端数据库目录第一部分环境准备第二部分部署调度器—搭建Nginx+Keepalived(双机热备)第三部分部署服务器池—搭建Tomcat第四部分搭建Mysql数据库第五部分案例应用第一部分环境... 查看详情

你需要了解的高可用方案之使用keepalived搭建双机热备一览(代码片段)

         在之前一篇使用nginx搭建高可用的解决方案的时候,很多同学会问,如果nginx挂掉怎么办,比如下面这张图:      你可以清楚的看到,如果192.168.2.100这台机器挂掉了,那... 查看详情

linux安装mysql配置双机热备(主/主复制)+keepalived(故障转移)(代码片段)

...制1)设置22服务器(主服务器)配置Mysql+Keepalived故障转移的环境1.概述:2.安装keepalived并将其配置成系统服务。主服务器1和主服务器2两台机器上同样进行如下操作:1)主服务器1机器上的keepalived.conf配... 查看详情

keepalived双机热备

关于keepalived专为LVS和HA设计的一款健康检查工具支持故障自动切换(Failover)支持节点健康状态检查(HealthChecking)官方网站:http://www.keepalived.org/keepalived概述及安装keepalived的热备方式VRRP(VirtualRouterRedundancyProtocol,虚拟路由冗... 查看详情

keepalived做双机热备

下载keepalivedhttp://www.keepalived.org/software/keepalived-1.2.7.tar.gz解压以及编译tarxzfkeepalived-1.2.7.tar.gz./configure--prefix=/opt/keepalivedmake&&makeinstall配置keepalived创建keepalived配置文件keepali 查看详情

keepalived做双机热备

下载keepalivedhttp://www.keepalived.org/software/keepalived-1.2.7.tar.gz解压以及编译tarxzfkeepalived-1.2.7.tar.gz./configure--prefix=/opt/keepalivedmake&&makeinstall配置keepalived创建keepalived配置文件keepali 查看详情

keepalived+lvs双机热备

                     Keepalived双机热备使用 Keepalived 做双机热备非常简单,经常和 LVS 搭配来实现高可用 查看详情

keepalived实现双机热备

Keepalived实现双机热备:双机热备一般指的是两台机器设备同时在运行,但是只有一台处于提供服务的状态。当其中一台设备出现故障,那么另一台设备接管角色,继续提供服务,他们之间的切换时间非常之短,基本是无缝切换... 查看详情

使用keepalived实现双机热备

...动接管并且提供服务,而且切换的时间非常短。下面来以keepalived结合tomcat来实现一个web服务器的双机热备。keepalived的工作原理是VRRP(VirtualRouterRedundancyProtocol)虚拟路由冗余协议。在VRRP中有两组重要的概念:VRR 查看详情

keepalived双机热备

 Keepalived双机热备keeplived是专门针对LVS设计的一款辅助工具,采用的是vrrp(虚拟路由冗余协议)热备协议,以软件的方式实现Linux服务器的多机热备。主要功能是实现故障切换,当一台路由器发生故障的时候,另一台马上接... 查看详情

keepalived实现双机热备

一、主机从机都安装keepalived1.安装yuminstall-ykeepalived2.备份cd/etc/keepalivedcpkeepalived.confkeepalived.conf.back二、主机配置并启动1.创建配置文件echo"!ConfigurationFileforkeepalived#主机配置global_defs{#id,主从不同  router_ 查看详情

keepalived双机热备

...LVS设计的一款辅助工具,主要功能是实现故障切换1、LVS+Keepalived高可用群集实验的目的是实现双机热备的同时实现负载均衡群集,当主调度器发生故障的时候,从服务器会继续提供调度工作,保证用户的正常访问。两台从调度器... 查看详情

nginx+keepalived双机热备

阅读目录序nginxkeepalived测试问题:杀死keepalived进程后,可以实现vip的偏移,但是原机器的vip无法自动删除回到顶部序双机热备是指两台机器都在运行,但并非两台机器同时在提供服务。当提供服务的一台出现故障的时候,另外... 查看详情