`
spjich
  • 浏览: 95231 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

keepalive做HA热备

阅读更多

最近在做服务器的高可用性,考虑主从热备初步准备采用keepalive这个工具来完成这个需求,下面主要做了一个keepalive入门实验

 

测试环境

两台centos

172.171.48.151 主

172.171.48.158 备

 

keepalive两台机器都要安装

 

 

安装前准备工作

keepalive依赖下面几个包

 rpm -qa |grep gcc
 rpm -qa |grep openssl-devel
如果没安装的就yum一下

 

安装keepalive

下载最近的安装包 http://www.keepalived.org/

本人上传到linux机器的 /usr/local/program/  目录下

执行解压

tar -zxvf keepalived-1.2.19.tar.gz 

执行安装

cd keepalived-1.2.19
./configure
make 
make instal

还有

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/

 

配置keepalive

配置文件路径:/etc/keepalived/keepalived.conf

 

151上的keepalived.conf

! Configuration File for keepalived
#全局配置标识,表面下面的区域{}是全局配置
global_defs {
#里面填邮箱地址,如果keepalived在发生诸如切换操作时会的发邮件到配置上的邮箱,邮件地址可以多个,每行一个
   notification_email {
       nanyoujichen@163.com
   }
  #notification_email_from:表示发送通知邮件时邮件源地址是谁   
   notification_email_from 17wifi@fnic.cn
  #smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1 
   smtp_server mail.fnic.cn
  #smtp_connect_timeout:连接smtp超时时间
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
#vrrp_instance:各服务器上实例配置域,这里按本服务器的具体情况填值
vrrp_instance VI_1 {
#本实例启动状态,MASTER/SLAVE,不管填MASTER/SLAVE,最终还是要看本机器的权重。
    state MASTER
#interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,这里按本机情况而定	
    interface p4p1
#virtual_router_id:这里设置VRID,如果两台机器是同一个备份组,设置一样	
    virtual_router_id 100
#priority:设置本节点的优先级,优先级高的为master,不能超过255 
    priority 100
#advert_int:组播信息发送间隔,同一个备份组两个机器设置必须一样,默认是1S	
    advert_int 1
#验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样	
    authentication {
        auth_type PASS
        auth_pass 1111
    }
#VIP,为master机器设置的虚拟地址,和实例绑定的网卡(interface)设置到一个网段
    virtual_ipaddress {
        172.171.51.152
    }
}

 

158上的keepalive.conf

! Configuration File for keepalived
#全局配置标识,表面下面的区域{}是全局配置
global_defs {
#里面填邮箱地址,如果keepalived在发生诸如切换操作时会的发邮件到配置上的邮箱,邮件地址可以多个,每行一个
   notification_email {
       nanyoujichen@163.com
   }
  #notification_email_from:表示发送通知邮件时邮件源地址是谁   
   notification_email_from 17wifi@fnic.cn
  #smtp_server:表示发送email时使用的smtp服务器地址,可以填127.0.0.1 
   smtp_server mail.fnic.cn
  #smtp_connect_timeout:连接smtp超时时间
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
#vrrp_instance:各服务器上实例配置域,这里按本服务器的具体情况填值
vrrp_instance VI_1 {
#本实例启动状态,MASTER/SLAVE,不管填MASTER/SLAVE,最终还是要看本机器的权重。
    state SLAVE
#interface:实例绑定的网卡,因为在配置虚拟IP的时候必须是在已有的网卡上添加的,这里按本机情况而定	
    interface p1p1
#virtual_router_id:这里设置VRID,如果两台机器是同一个备份组,设置一样	
    virtual_router_id 100
#priority:设置本节点的优先级,优先级高的为master,不能超过255 
    priority 90
#advert_int:组播信息发送间隔,同一个备份组两个机器设置必须一样,默认是1S	
    advert_int 1
#验证域,同组的机器auth_type(验证类型)和auth_pass(验证密码)必须一样	
    authentication {
        auth_type PASS
        auth_pass 1111
    }
#VIP,为master机器设置的虚拟地址,和实例绑定的网卡(interface)设置到一个网段
    virtual_ipaddress {
        172.171.51.152
    }
}

 

 

启动2台机器的keepalive

/etc/init.d/keepalived start

 

 

 

 

 

 

两台机器的1199端口分别都部署了2个测试web应用,用来模拟主备的情况

当2台机器的keepalive同时启动时

访问

http://172.171.51.152:1199/TestHa/

 应该是主生效

结果如图:

 

 

当关掉主的keepalive时,模拟主挂掉的情况,应该是从生效

 在151上执行

/etc/init.d/keepalived stop

 然后在请求url,结果:

可见keepalive虚拟出一个虚拟主机171.172.51.152,然后keepalive顺利的排除了已经挂掉的主机,让请求访问到了备机

 

 

 

 

 

 

 

思考

虽然上图很好的演示了主备情况,但是对于javaweb应用来说,通常都是tomcat挂死,而这个情况下keepalive仍然会继续运行,所以此时要做到tomcat的主备,就必须自己实现一个shell命令,检测tomcat状态,如果tomcat http请求失败,kill掉keepalived进程,这样就可以自动切换到备用机器。 

 

 

 

 

 

资料:

http://www.cnblogs.com/hdflzh/p/4057098.html

http://www.cnblogs.com/tankaixiong/p/4065080.html
 

 

 

  • 大小: 63.6 KB
  • 大小: 63.4 KB
0
1
分享到:
评论

相关推荐

    fs使用keepalived做HA方案及设计逻辑图

    在IT行业中,高可用性(HA)架构是关键服务必须具备的特性,以确保系统无中断地运行。本文将深入探讨如何使用Keepalived来构建一个Freeswitch的HA解决方案,以及涉及的设计逻辑。Freeswitch是一个开源的通信平台,...

    RedHat_linux_4企业版双机热备

    在本文中,我们将讨论如何在 RedHat Linux 4 企业版上实现双机热备(High Availability,HA),从而确保关键业务系统的高可用性和可靠性。本解决方案基于 Heartbeat 软件包,旨在提供一个简洁、可靠的双机热备解决...

    oracle数据库双机热备安装——裸设备.doc

    keepalive 2 warntime 10 deadtime 30 initdead 120 udpport 694 auto_failback off node node0 node node1 ``` - **haresources**: ```bash # vi /etc/ha.d/haresources node0 192.168.88.30 oracle ...

    Keepalived+GlusterFS多机热备集群方案

    通过keepalived,实现多台GlusterFS高可用的存储配置方案。2个节点的GlusterFS无法避免脑裂问题,多台GlusterFS如何提供统一的挂载服务,通过该技术方案,完美的实现了VIP方式的高可用的GlusterFS存储方案。

    linux双机热备:在linux系统用heartbeat实现

    ha.cf文件是heartbeat的心跳配置文件,它定义了心跳的监测方式,比如监测的频率(keepalive参数)、警告时间(warntime参数)、节点死亡时间(deadtime参数)、网络启动时间(initdead参数)以及使用的UDP端口(udp...

    Heartbeat安装与配置.docx

    Heartbeat 是一款开源的高可用性解决方案软件,主要用于构建 Linux 集群中的双机热备系统,通过心跳检测机制实现主备切换,确保关键服务的连续性和稳定性。Heartbeat 支持多种心跳监测方式,如 UDP 广播、单播等,...

    keepalived-2.1.5-1.el8.x86_64.rpm

    Keepalive服务的两大用途:healthcheck和failover ha failover功能:实现LB Master主机和Backup主机之间故障转移和自动切换 这是针对有两个负载均衡器Direator同时工作而采取的故障转移措施,当主负载均衡器失效...

    使用LVS+heartbeat构建高可用web集群

    - **环境拓扑**:假设有一个简单的双机热备架构,包括一台Master服务器和一台Backup服务器。 - **准备工作**: - 在Master和Backup的`/etc/hosts`文件中添加对方的IP地址和主机名映射。 - 开启IP转发功能:编辑`/...

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    在Keepalived+Nginx高可靠性负载均衡架构中,keepalived负责实现High-availability(HA)功能,控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟...

Global site tag (gtag.js) - Google Analytics