![使用 Heartbeat 和 Pacemaker 的高可用性配置](https://linux22.com/image/592839/%E4%BD%BF%E7%94%A8%20Heartbeat%20%E5%92%8C%20Pacemaker%20%E7%9A%84%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7%E9%85%8D%E7%BD%AE.png)
我有以下设置:
我在两个负载均衡器 (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。