`

搭建keepalived 实现双机热备,主从故障自动切换

 
阅读更多

一、环境说明 (keepalived安装包在页尾,下载即可)

操作系统内核版本:CentOS 6.5
Keepalived软件版本: keepalived-1.2.13.tar.gz  

 二、环境配置

主Keepalived服务器IP地址  192.168.10.10
备Keepalived服务器IP地址 192.168.10.30
Keepalived虚拟IP地址    192.168.10.20

 

 三、安装及配置

首先可以根据我的第一篇文章{负载均衡-反向代理}先搭建基本的服务
在主从服务器上都安装支持包
[root@localhost ~]# yum -y install kernel-devel openssl-devel popt-devel ipvsadm

在主从服务器上都把keepalived上传至/root/目录

[root@localhost ~]#tar zxf keepalived-1.2.13.tar.gz
[root@localhost ~]# cd keepalived-1.2.13
[root@localhost keepalived-1.2.13]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64
[root@localhost keepalived-1.2.13]# make
[root@localhost keepalived-1.2.13]# make install
[root@localhost keepalived-1.2.13]# chkconfig --add keepalived
[root@localhost keepalived-1.2.13]# chkconfig keepalived on

四、主服务器配置 

[root@localhost ~]#cd /etc/keepalived/
[root@localhost keepalived]#cp keepalived.conf keepalived.conf.backup    #备份一份以防出错
[root@localhost keepalived]#vim keepalived.conf
配置内容如下:
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL_R1   #本服务器名称
}

vrrp_instance VI_1 {         #定义VRRP热备实例
    state MASTER             #热备状态,MASTER表示主服务器
    interface eth0           #承载VIP地址的物理接口
    virtual_router_id 1      #虚拟路由ID号,每个热备组保持一致
    priority 100             #优先级,数值越大优先级越高
    advert_int 1             #通告间隔秒数
    authentication {         #认证信息,每个热备组保持一致      
        auth_type PASS       #认证类型
        auth_pass 123456     #密码字串
    }
    virtual_ipaddress {      #指定VIP漂移地址,可以写多个
        192.168.10.20    }
}
#其他的代码占时先全部删除!!!
[root@localhost keepalived]#service keepalived restart
[root@localhost keepalived]#ip addr show dev eth0 查看我们的VIP地址  里面肯定会有一条192.168.10.20的IP地址

  

五、从服务器配置
[root@localhost ~]#cd /etc/keepalived/
[root@localhost keepalived]#cp keepalived.conf keepalived.conf.backup     #也备份一个以防出错
[root@localhost keepalived]#vim keepalived.conf
#配置内容如下:
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL_R2
}
 
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 1
    priority 10
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        192.168.10.20  }
}
其他的内容也全部删除!!!

[root@localhost keepalived]#service keepalived restart
[root@localhost keepalived]#ip addr show dev eth0
现在从服务查看的时候只会有自己的接口IP,因为主服务器还在,所以VIP地址肯定还在主服务器上,当主服务器出现故障的时候,备份服务器就起作用了,立马接替VIP地址继续工作。 
六、测试
这样设置完成后,我们可以先做一个简单的测试,我们在主服务器上直接把keepalived服务关掉,然后查看从服务器上是否有VIP地址,有则成功。我们再把主服务器上的keepalived服务启动起来,查看VIP地址是否又漂移到了主服务器上(自己测试)
七、主服务器配置WEB池
[root@localhost keepalived]#vim keepalived.conf
在原有的命令配置下继续添加以下内容:
virtual_server 192.168.10.20 80 {    #虚拟服务器VIP地址和端口
    delay_loop 6                 #健康检查的间隔时间(秒)
    lb_algo rr                    #轮询调度算法
    lb_kind DR                   #直接路由群集工作模式
    persistence_timeout 50         #连接保持时间(秒)不启动在前面加(!)即可
    protocol TCP                  #采用TCP协议

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

      }
real_server 192.168.10.10 8080 {    #第二个web节点的地址、端口和部分信息
        weight 1
        TCP_CHECK {
            connect_port 8080
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
      }
    }
  }
[root@localhost keepalived]#service keepalived restart
八、从服务器配置WEB池
[root@localhost keepalived]#vim keepalived.conf
#在原有的命令下继续添加以下内容
virtual_server 192.168.10.20 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

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

      }
real_server 192.168.10.30 8080 {
        weight 1
        TCP_CHECK {
            connect_port 8080
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
      }
    }
  }
[root@localhost keepalived]#service keepalived restart
 九、主服务上编写脚本,实现全自动化主从故障切换
[root@localhost ~]#vim /opt/keepalived.sh
#!/bin/bash
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];
then
   /etc/init.d/keepalived stop
fi
#脚本意思是检测Nginx服务,如果等于0  那么就直接把keepalived停止掉
[root@localhost ~]#chmod +x /opt/keepalived.sh
 十、把脚本应用到主服务器的keepalived配置文件里
 
[root@localhost keepalived]#vim keepalived.conf
.............
global_defs {
   router_id LVS_DEVEL_R1
}

vrrp_script chk_port {                #应用脚本
    script "/opt/keepalived.sh"
    interval 2
    weight 2
}

.............
   authentication {
        auth_type PASS
        auth_pass 123456
    }

track_script {                #跟踪脚本
chk_port
 }
.............
.............
 十一、最后的验证
我们在主从的web网页里编写不同的网页内容,我们可以直接用VIP地址去访问web,当然先访问到的web网页肯定是主服务器的,优先级高决定先访问谁。
现在我们为了做测试,我们现在就可以亲手把Nginx服务停止掉,然后查看结果,在客户机上刷新网页,我们就可以看到是从服务器提供的网页内容。当主服务器的Nginx服务启动起来了,我们还需要再启动一下keepalived服务 ,VIP地址就会回到主服务器上
 
分享到:
评论

相关推荐

    Nginx+keepalived双机热备(主从模式)

    Nginx+keepalived双机热备(主从模式)是一种常见的负载均衡技术,用于实现高可用环境和故障转移。该技术通过将Nginx与keepalived结合,实现了前端负载均衡和高可用性。 Nginx是一款流行的开源Web服务器软件,具有...

    keepalived实现双机热备

    Keepalived 实现双机热备 Keepalived 是一个类似于 Layer3, 4, 5 交换机制的软件,也就是我们平时说的第 3 层...Keepalived 是一个功能强大且灵活的软件,可以实现双机热备,提高服务器的高可用性和自动故障转移能力。

    Nginx+keepalived双机热备(主从模式)高可用集群方案-完整部署记录(个人珍藏版)

    本片详细记录了Nginx+keepalived双机热备(主从模式)高可用集群方案-完整部署过程,讲解十分到位,可作为线上实操手册。特在此分享,希望能帮助到有用到的朋友。

    keepalived + redis 实现双机热备

    标题 "keepalived + redis 实现双机热备" 涉及到的是在IT行业中构建高可用性系统的关键技术。keepalived 和 redis 是两个关键组件,它们一起工作以确保服务的持续运行,即使在主服务器故障时也能无缝切换到备份...

    linux基于keepalived的mysql双机热备实现方案(详细过程完整版)

    因此,通过Keepalived实现的MySQL双机热备方案旨在提供无缝切换的高可用性,确保在主服务器故障时,备份服务器能立即接管服务,避免数据丢失或服务中断。 二、Keepalived简介 Keepalived是一款基于VRRP协议的高可用...

    nginx+keepalived实现双机热备高可用

    通过keepalived软件,实现对nginx服务器的高可用,即实现故障自动切换。 一、keepalived安装 keepalived是一个基于VRRP协议的高可用性解决方案。它可以监控nginx服务器的状态,并在出现故障时自动切换到备份服务器...

    MYSQL+KEEPALIVED 双机热备方案.docx

    本文将详细介绍 MYSQL+KEEPALIVED 双机热备方案的实现细节。 MYSQL 主主复制配置 MYSQL 主主复制是 MYSQL+KEEPALIVED 双机热备方案的核心组件。通过配置 MYSQL 主主复制,可以实现两个 MYSQL 节点的实时数据同步,...

    构建Keepalived双机热备.pdf

    其中,使用双机热备方案是实现高可用性的一种有效方法,而Keepalived是实现双机热备的常用工具之一。本文档介绍了如何构建Keepalived双机热备架构,以便在网络中部署高可用的负载均衡服务。 ### Keepalived双机热备...

    keepalived做双机热备

    当主服务器出现故障时,Keepalived会检测到并自动将虚拟IP切换到备用服务器,从而实现无中断的服务连续性。 总的来说,Keepalived通过VRRP协议实现了双机热备,提供了高可用性和负载均衡的能力。通过合理的配置,...

    linux下免费的双机热备软件

    LVS是Linux内核中的一个模块,能够实现高性能的负载均衡,而Keepalived则负责监控和管理这些虚拟服务器,确保在主服务器故障时,能快速将流量切换到备份服务器。 **双机热备原理:** 双机热备的核心是心跳检测机制...

    keepalived的安装使用liunx双机热备

    在双机linux系统中用于vip的地址切换,双机热备功能的实现。

    mysql数据库双机热备与主从热备

    总结,MySQL的双机热备和主从热备是提高数据库可靠性和性能的重要手段,通过配置和管理,可以在不影响业务的情况下实现数据的实时同步和故障恢复。在Windows环境中实施这些策略时,需要注意兼容性和系统差异,确保...

    nginx+keepalive主从 双机热备 + 自动切换解决方案

    本篇将详细介绍如何通过Nginx 和 Keepalive 实现主从双机热备,并配置自动切换功能,以达到负载均衡及高可用集群的目的。 #### 一、环境搭建概述 根据提供的部分内容,我们可以看出整个部署过程分为以下几个主要...

    使用keepalived实现对mysql主从复制的主备自动切换.docx

    "使用keepalived实现对mysql主从复制的主备自动切换" 本文主要讲解如何使用keepalived实现对mysql主从复制的主备自动切换。keepalived是一款高可用性解决方案,可以实现虚拟IP的管理和服务监控,在mysql主从复制...

    Nginx负载均衡+keepalived双机热备

    ### Nginx负载均衡与Keepalived双机热备配置详解 #### 一、环境配置与准备工作 ...这种架构不仅能够有效分发流量至多个Web服务器,还能在一台服务器出现故障时自动切换到另一台,从而保障服务的连续性。

    nginx+keepalive主从 双机热备

    nginx+keepalive 主从双机热备解决方案是指使用 nginx 和 keepalive 实现主从双机热备的自动切换解决方案。 一、nginx 的安装 在安装 nginx 之前,需要准备好以下安装包: * pcre-8.31.tar.gz * openssl-1.0.1c....

    Nginx+Keepalived实现双机热备

    【Nginx+Keepalived实现双机热备】 在高可用性系统设计中,双机热备是一种常见的策略,可以确保服务在一台服务器故障时能够无缝切换到另一台服务器,从而保持系统的不间断运行。Nginx是一款高性能的HTTP和反向代理...

    lvs+keepalived双机热备.zip

    Keepalived则是一个用于网络服务高可用的开源项目,其核心功能是监控并维护服务状态,当主服务器出现故障时,能自动将流量切换到备用服务器,实现服务无中断的热备。Keepalived包含了VRRP(Virtual Router ...

    keepalived+nginx双机热备+负载均衡 非抢占模式

    当主服务器出现故障时,Keepalived能够自动将服务切换到备用服务器,实现零中断的切换。非抢占模式意味着一旦主服务器恢复,它不会立即重新接管服务,而是等待下一次预定的切换或者手动干预。 **Nginx** Nginx是一...

Global site tag (gtag.js) - Google Analytics