• Keepalived实现双机热备


    Keepalived实现双机热备:

    双机热备一般指的是两台机器设备同时在运行,但是只有一台处于提供服务的状态。当其中一台设备出现故障,那么另一台设备接管角色,继续提供服务,他们之间的切换时间非常之短,基本是无缝切换,所以避免了因为某台服务器出现故障,导致系统软件不能正常运行的问题。

    ·     Keepalived

    ·     热备架构图

    ·     安装及配置

    ·     测试及验证

    一、Keepalived

    Keepalived的运行原理是基于VRRP(虚拟路由冗余协议)机制,在VRRP中有两个重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。

    VRRP路由器是一种实体路由器设备,而虚拟路由器则是基于VRRP协议构建的虚拟路由器,是软性的虚拟概念,一组VRRP路由器协同工作,共同构造一台虚拟服务器。

    VRRP协议支持一种选举机制,主要用来选出用来提供服务的路由即主控路由,其它的就是备份路由了,当主控路由失效之后,备份路由中重新选出一个主控路由(往往按照设置好的优先级别重新分配),接管主控服务,继续工作,来保证不间断的提供服务。

    二、热备架构图

    1、环境准备

    因为资源条件限制,这里使用虚拟机代替物理主机,具体如下:

    master : 192.168.132.10(主控服务器)

    backup : 192.168.132.11(备用服务器)

    vip : 192.168.132.101

    2、架构图解

    NOTE:

    Vip:虚拟服务器;

    Node A:物理主服务器;

    Node B:物理备用服务器;

    在这种模式下,虚拟IP某一时刻只能属于一个物理节点,另一个作为备份节点存在,当主节点不可用时,备份节点接管虚拟IP,继续提供正常的服务。

    3、Keepalived的原理

    Keepalived被安装在两台物理服务器上,并且彼此监控对方当前是否处于正常状态,当Node A正常时,其上的keepalived会发送广播:192.168.132.101 这个ip对应的节点为Node A的网卡MAC地址;反之,如果NodeB正常时,其上的keepalived也会发送广播:192.168.132.101这个ip对应的节点为Node B的网卡MAC地址;此时,相关的电脑及客户端的ARP会发生更新,对应192.168.132.11的MAC地址与Node B网卡的MAC地址相同。

    三、安装及配置

    1、虚拟IP配置

    $vim /etc/sysconfig/network-scripts/ifcfg-eth2:0

    DEVICE=eth2:0  

    TYPE=Ethernet  

    ONBOOT=yes  

    BOOTPROTO=static  

    DNS1=192.168.232.2  

    IPADDR=192.168.132.101 

    NETMASK=255.255.255.0  

    GETWAY=192.168.232.2

    2、主备机器安装keepalived

    $tar  -zxvf  keepalived-1.2.6.tar.gz

    $cd keepalived-1.2.6

    $sudo ./configure

    $make & make install

    3、主节点keepalived配置

    global_defs {

       router_id NodeA

    }

    vrrp_instance VI_11 {

       state MASTER   #设置为主服务器

       interface eth2 #设置监听网络接口

       priority 101   #设置优先级,值越大代表优先级越高

       advert_int 1   #设置VRRP广播周期秒数

       authentication {

          auth_type PASS #VRRP认证方式,主备必须一致

          auth_pass 1234 #验证密码

      }

       virtual_router_id 52 #主备必须一致

    }

    virtual_ipaddress {

       192.168.132.101/24  #VRRP HA虚拟地址

    }

    4、备用节点keepalived配置

    global_defs {

       router_id NodeB

    }

    vrrp_instance VI_11 {

       state BACKUP   #设置为备用服务器

       interface eth2 #设置监听网络接口

       priority 100   #设置优先级,值越大代表优先级越高

       advert_int 1   #设置VRRP广播周期秒数

       authentication {

          auth_type  PASS #VRRP认证方式,主备必须一致

          auth_pass 1234 #验证密码

       }

       virtual_router_id 52 #主备必须一致

    }

    virtual_ipaddress {

       192.168.132.101/24  #VRRP HA虚拟地址

    }

    5、启动主备keepalived服务

    $keepalived  -D –f  /etc/keepalived/keepalived.conf

    查看logs日志:

    $tail  -f  /var/log/messages

    通过日志,可以查看节点的ARP消息daemon[4029]: 

    Registering new address record for192.168.132.101 on eth0.

    6、安装web服务器

    在两台物理服务器上安装web服务器,比如:nginx,apacache或tomcat等,在这里省略,请自行查阅资料安装。

    四、测试及验证

    1、在Node A节点上创建一个html文件,内容如下:

    this is the test page

    <br/>

    from server 192.168.132.10

    访问:

    通过访问http://192.168.132.101/test/test/html

    2、在Node B节点上创建一个html文件,内容如下:

    this is the test page

    <br/>

    from server 192.168.132.11

    访问:

    通过访问http://192.168.132.11/test/test/html访问是可以访问的,但是在Node A正常情况下,访问http://192.168.132.101/test/test/html是访问的Node A节点。

    3、验证Node B节点的可用性

    首先,将节点A的keepalived服务器关闭来模拟故障:

    $killall  keepalived

    其次,通过下面的Url访问:

    http://192.168.132.101/test/test.html

    那么访问的就是Node B节点了,内容:

    this is the test page

    <br/>

    from server 192.168.132.11

    4、查看日志

    此时查看日志,会发现Node B现在为主节点,发送ARP广播信息。而当Node A恢复之后,Node B释放角色,将继续由Node A为主服务器,继续服务。

    daemon[3769]: 

    Registering new address record for 192.168.132.101 on eth0.

    NOTE:

    这里只介绍使用keepalived实现双机热备的功能和流程,至于Web服务器的安装等辅助技术,这里不做介绍。

    附加:

    一般情况下,主备服务器的选型是不同的,也就是主服务器要高配,因为其会被经常使用,出现故障只是特殊情况,而备用服务器是为了保证服务器的持续服务,但是最终还是要恢复并使用主服务器来作为主控路由服务器,也是为了缩小不必要的开销的考虑。

  • 相关阅读:
    随机数生成
    C#根据流下载文件
    C# 改变Windows中服务的登录身份 (账户名和密码)
    SqlServer查看数据库信息及服务器级、数据库级、数据库独立 用户权限
    C# 两个List<T>(T是类)使用Contains比较元素的方法
    你真正了解public、internal、protected、private吗?不妨幽默一些
    【WCF Restful】Post传参示范
    VMware虚拟机可与Win10物理机互ping并可访问互联网的设置方法
    服务器Oracle数据库配置与客户端访问数据库的一系列必要设置
    Winform ListBox输出信息并自动滚动至底部
  • 原文地址:https://www.cnblogs.com/quanzhiguo/p/7519952.html
Copyright © 2020-2023  润新知