设为首页 收藏本站
查看: 106|回复: 0

[经验分享] HA高可用集群(双机热备)

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-3-24 08:49:21 | 显示全部楼层 |阅读模式
我们在提供服务的时候,服务器很有可能会因为种种原因宕机,这就大大降低了用户体验,那么如何能
够保证在服务器宕机的情况下依然不影响用户体验呢,这里最常用的方式HA集群,又称为双击热备,它
其实也就是基于非常简单的主从架构。

我们简单地理解就是:有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换到
B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均
衡的功能。

这里有一个非常重要的概念,叫做流动ip,也称vip。


一个 HA 架构,一个交换机下面有两台机器 Web1 和 Web2,其中 Web1 为主节点,正常是它在提供服
务,而 Web2 备用节点是闲置的。 Web1 和 Web2 中间有一根心跳线,检查对方的存活状态。流动 IP,
也叫 vip 是对外提供服务的 ip,正常情况下是配置在Web1 上的,当 Web1 宕机后, Web2 会自动配置
该 vip,对外提供服务。所以我们说,vip就是连接主机和从机的桥梁。

现在来看看如何搭建HA架构:

1、准备两台机器,一台master,一台slave

2、记住两台机器的ip地址:
    master : eth0 192.168.1.115

    slave : eth0 192.168.1.126


3、两台机器同时操作:

    3.1. 关闭防火墙 iptables -F
  
       关闭selinux: setenforce 0

     3.2. vim /etc/hosts   // 增加内容如下:

          192.168.1.115 master   
        192.168.1.126 slave

4、两台机器上都安装heartbeat的rpm包,如果没有,需要先安装epel的扩展源:


    yum install -y epel-release


    yum install -y heartbeat* libnet


5、HA集群可以针对任意服务来进行,这里我们对nginx服务进行操作

    yum install -y nginx


6、主(master)上配置

    # cd /usr/share/doc/heartbeat-3.0.4/


    # cp authkeys ha.cf haresources /etc/ha.d/


    # cd /etc/ha.d/


    # vim authkeys


    更改或者增加一行


    3 md5 Hello!


    然后修改其权限


    # chmod 600 authkeys


    编辑 haresources 文件


    # vim haresources


    加入下面一行


    # master 192.168.1.110/24/eth0:0 nginx


    说明:master为主节点的hostname,192.168.1.110为流动ip,/24 表示网段,eth0:0为vip的设
备名,nginx 为heartbeat 监控的服务,也是两台机器对外提供的核心服务。


    然后编辑ha.cf


    # vim ha.cf

    改为如下内容

   debugfile /var/log/ha-debug
    logfile /var/log/ha-log
    logfacility     local0
    keepalive 2
    deadtime 30
    warntime 10
    initdead 60
    udpport 694
    ucast eth0 192.168.1.100
    auto_failback on
    node    master
    node    slave
    ping 192.168.1.1
    respawn hacluster /usr/lib/heartbeat/ipfail


    说明:
        /var/log/ha-debug:该文件保存heartbeat 的调试信息

        logfile /var/log/ha-log:该文件为heartbeat 的日志文件

        keepalive 2:心跳的时间间隔,默认时间单位为秒

        deadtime 30:超出该时间间隔为收到对方节点的心跳,则认为对方死亡

        warntime 10:超出该时间间隔为收到对方节点的心跳,发出警告并记录到日志中

        initdead 60:在某些系统上,系统重启后要经过一段时间网络才能正常工作,该选项

     用于解决这种情况产生的时间间隔,取值至少为deadtime的两倍。

        udpport 694:设置广播通信使用的端口,694为默认端口

        ucast eth0 192.168.1.126:设置对方机器心跳检测的网卡和ip

        auto_failback on: heartbeat 的两台主机分别为主节点和从节点。主节点在正常情
     况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选      项设为 on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节      点。

        node 指定主和从,各占一行,主在上从在下。


        respawn hacluster /usr/lib/heartbeat/ipfail:指定与 heartbeat 一同启动和关
     闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是 ipfail,该进程用于检      测和处理网络故障,需要配合 ping 语句指定的 ping node 来检测网络连接。如果你的系统是      64,请注意该文件的路径。

7、把主上的三个配置拷到从上

    # cd /etc/ha.d/


    # scp authkeys ha.cf haresources slave:/etc/ha.d/


8、到从上编辑ha.cf

    # vim /etc/ha.d/ha.cf


    ucast eth0 192.168.1.126 改为 ucast eth0 192.168.1.115


9、启动 heartbeat

    先主后从

    /etc/init.d/heartbeat start




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-194949-1-1.html 上篇帖子: linux经典问题之基础篇 下篇帖子: Linux 系统管理命令中文详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表