关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » HTML5 »如何使用Heartbeat组建一个高可用性的Apache集群?

    如何使用Heartbeat组建一个高可用性的Apache集群?

    2014-08-15 00:00:00 出处:Linux中国
    分享

    Heartbeat提供了诸多集群基础架构服务,比如集群之间的消息传递、节点成员身份、IP地址分配和迁移,以及服务的开启和停止。Heartbeat可以用来为Apache、Samba和Squid等企业应用系统构建几乎任何一种高可用性的集群。此外,它可以结合负载均衡软件使用,那样入站请求就可以由所有集群节点来分担。

    本文中的示例集群将由三台运行Heartbeat的服务器组成。我们测试故障切换机制的方法是,手动关闭服务器,检查它们服务的网站是不是仍然可用。下面是我们的测试拓扑结构:

    映射服务所用的IP地址需要一直能够访问得到。通常,Heartbeat会为你将指定的IP地址分配给主服务器上的虚拟网络接口卡(NIC)。假如主服务器出现了故障,集群会自动将IP地址切换到另一台可用服务器上的虚拟NIC。假如主服务器恢复正常运行,它会再次将IP地址切换回到主服务器。由于具有迁移属性,这个IP地址被称为“浮动”地址。

    在所有服务器上安装软件包

    想组建集群,首先要使用yum,在每一个节点上安装必要的软件包:

    yum install PyXML cluster-glue cluster-glue-libs resource-agents

    下一步,下载和安装官方CentOS软件库里面没有的两个Heartbeat RPM文件。

    wget http://dl.fedoraproject.org/pub/epel/6/x86_64/heartbeat-3.0.4-2.el6.x86_64.rpm
    wget http://dl.fedoraproject.org/pub/epel/6/x86_64/heartbeat-libs-3.0.4-2.el6.x86_64.rpm
    rpm -ivh heartbeat-*

    另外,你可以将EPEL软件库添加到源文件,并使用yum进行安装。

    Heartbeat会管理Apache的httpd服务的开启和停止,所以停止Apache,并禁止它自动开启:

    service httpd stop
    chkconfig httpd off

    设置主机名称

    现在设置服务器的主机名称,为此编辑每个系统上的etc/sysconfig/network,并更改HOSTNAME这一行:

    HOSTNAME=serverX.example.com

    新的主机名称会在服务器下一次启动时激活。你可以使用hostname命令立即激活它,不需要重启服务器:

    hostname serverX.example.com

    你可以在每一台服务器上运行uname -n,以此证实主机名称已正确设置好。

    配置Heartbeat

    想配置Heartbeat,首先要将其默认配置文件从/usr拷贝到/etc/ha.d/:

    cp /usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/
    cp /usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/
    cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d/

    然后,你还得改动全部集群节点上的所有三个文件,以便与你的需求相匹配。

    authkeys文件含有集群节点彼此联系时所使用的预共享密码。集群里面的每个Heartbeat消息都含有该密码,节点只处理拥有正确密码的那些消息。Heartbeat支持SHA1密码和MD5密码。在authkeys文件中,下列指令将验证方法设置为SHA1,并且定义了所使用的密码:

    auth 2

    2 sha1 pre-shared-password

    保存该文件,然后使用命令chmod 600 /etc/ha.d/authkeys,为该文件授予r–的权限。

    下一步,在ha.cf文件中,定义计时器、集群节点、消息传递机制、第4层端口及其他设置:

    ## 日志##
    logfile /var/log/ha-log
    logfacility local0hea
    ## 计时器##
    ## 所有计时器设成以秒为单位。假如你需要以毫秒为单位设置时间,就使用‘ms’。##
    ## heartbeat间隔时间##
    keepalive 2
    ## 超过这个时间后,节点被认为已停滞##
    deadtime 15
    ## 一些服务器花更长的时间来启动。该计时器定义了证实服务器宕机之前所等待的额外时间。##
    ## 该计时器的建议时间是停滞计时器的至少一倍。##
    initdead 120
    ## 消息传递参数##
    udpport 694
    bcast eth0
    ## 你还可以使用多播或单播##
    ## 节点定义##
    ## 确保主机名称符合uname -n ##
    node server1.example.com
    node server2.example.com
    node server3.example.com

    最后,文件haresources含有Heartbeat认为是主节点的那台服务器的主机名称,另外还含有浮动IP地址。该文件在所有服务器上都一模一样,这点很重要。只要主节点在正常运行,它就服务所有请求;Heartbeat停止其他所有节点上的高可用性服务。Heartbeat检测到该主节点停机运行后,它会在集群中的下一个可用节点上自动开启服务。主节点恢复正常运行后,Heartbeat会让它再次接手任务,服务所有请求。最后,该文件含有负责高可用性服务的脚本的名称:这里是httpd。其他可能出现的值有squid、smb、nmb或postfix,映射到通常位于/etc/init.d/目录中的服务启动脚本的名称。

    在haresources中,定义server1.example.com为主服务器,定义192.168.56.200为浮动IP地址,定义 httpd为高可用性服务。你不需要创建任何接口,也不需要为任何接口手动分配浮动IP地址――Heartbeat为你处理这项任务:

    server1.example.com 192.168.56.200 httpd

    每一台服务器上的配置文件准备就绪后,开启Heartbeat服务,并将它添加到系统启动项:

    service heartebeat start
    chkconfig heartbeat on

    你可以借助命令tailf /var/log/ha-log,密切关注Heartbeat日志。

    Heartbeat可用于多项服务。比如说,haresources中的下列指令将让Heartbeat同时管理Apache服务和Samba服务:

    server1.example.com 192.168.56.200 httpd smb nmb

    不过,除非你还在运行Pacemaker之类的集群资源管理器(CRM),否则我不建议使用Heartbeat在单一集群中提供多项服务。要是没有Pacemaker,Heartbeat使用IP地址监测第3层中的集群节点。只要IP地址可以访问得到,Heartbeat无视服务在服务器节点上可能遇到的任何崩溃或困难。

    测试

    一旦Heartbeat设置并运行起来,不妨对它测试一下。在所有三台服务器上创建单独的index.html文件,那样你就能看清哪台服务器在服务页面。浏览到192.168.56.200,假如你设置好了DNS,也可以浏览到相应域名。页面应该会从server1.example.com加载,你可以查看服务器1中的Apache日志文件来核实这一点。试着刷新页面,证实该页面是否每次都从同一台服务器加载。

    假如这一切进展良好,测试一下故障切换机制:停止server1.example.com上的Heartbeat服务。浮动IP地址应该会迁移到服务器2,页面应该会从该服务器加载。迅速看一下server2 Apache日志,应该可以证实这一点。假如你同样停止了服务器2上的服务,网页会从集群的唯一可用节点server3.example.com加载。假如你重启了服务器1和服务器2上的服务,浮动IP地址应该会按照haresources中的设置,从活动节点迁移到服务器1。

    正如你所见,使用Heartbeat,在CentOS下组建一个高可用性的Apache集群是件很容易的事。虽然我们使用了三台服务器,但Heartbeat在节点数量更多或更少的环境下应该同样没问题。Heartbeat对节点数量没有任何限制,所以你可以根据需要扩展所设置环境的规模。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。