使用 Heartbeat 和 Pacemaker 的高可用性配置

使用 Heartbeat 和 Pacemaker 的高可用性配置

我有以下设置:

在此处输入图片描述

我在两个负载均衡器 (HAProxy) 之间配置了高可用性,这样如果 HAProxy1 发生故障,浮动 IP 就会转移到另一个负载均衡器 HAProxy2,因此所有客户端都将从 HAProxy2 获得响应,而 HAProxy2 在后端在两个 Web 服务器之间执行负载均衡。这是为了在只有一个 HAProxy 的情况下消除单点故障。

每当我停止 HAProxy1 中的心跳时,浮动 IP 就会转到 HAProxy2。但我想这样配置,以便每当process haproxy发生故障时,浮动 IP 都应分配给 HAProxy2。有人能告诉我如何实现它吗?

答案1

在 OCF 中你不会得到 HAProxy,你需要使用 LSB 类。运行以下命令查看 lsb 类下的 haproxy

crm ra list lsb

然后

crm configure primitive haproxy lsb:haproxy

您已经完成。

答案2

我尝试了很多次使用 crm 命令...我已经使用 crm 命令添加了浮动 IP...但无法使用该命令添加 haproxy...我尝试了很多次但无法做到这一点,因为没有名为 haproxy 的 ocf...你能告诉我确切的命令吗

您可以从俄罗斯回购:

sudo wget -O /usr/lib/ocf/resource.d/heartbeat/haproxy http://github.com/russki/cluster-agents/raw/master/haproxy

然后更改文件权限:

sudo chmod 755 /usr/lib/ocf/resource.d/heartbeat/haproxy

并像这样配置您的资源:

# crm configure show

node node1
node node2
primitive failover-ip ocf:heartbeat:IPaddr2 \
    params ip="v.i.p.a" cidr_netmask="32" \
    op monitor interval="5s" \
    meta is-managed="true"
primitive haproxy ocf:heartbeat:haproxy \
    params conffile="/etc/haproxy/haproxy.cfg" \
    op monitor interval="30s" \
    meta is-managed="true"
colocation haproxy-with-failover-ip inf: haproxy failover-ip
order haproxy-after-failover-ip inf: failover-ip haproxy
property $id="cib-bootstrap-options" \
    dc-version="1.0.12-unknown" \
    cluster-infrastructure="openais" \
    no-quorum-policy="ignore" \
    expected-quorum-votes="2" \
    stonith-enabled="false" \
    last-lrm-refresh="1342783084"

答案3

听起来您已经正确配置了心跳,但尚未配置起搏器。

Pacemaker 是解决方案的一部分,它监控正在运行的服务等并决定是否需要切换到其他服务器。

http://itand.me/41901523有关于如何为 haproxy 设置它的指南。如果您在 Google 上搜索“pacemaker haproxy”,您会找到更多内容。也不要忘记阅读所有 pacemaker 的文档。其中有很多重要信息,可帮助您顺利运行一切。

答案4

您需要配置 Pacemaker 来监控服务,并在主服务器(HAProxy1)发生故障时使其可用。您可以通过 crm 命令对其进行配置,并将浮动 IP 以及 haproxy 服务添加到 pacemaker。

相关内容