use*_*864 6 mysql failover load-balancing pacemaker haproxy
我正在使用 Haproxy 对复制的 mysql 主服务器进行负载平衡。我还使用 Heartbeat 和 Pacemaker 进行 Active/Active ip 故障转移,并在两个负载均衡器上使用两个虚拟 ip,以实现 Web 服务器的高可用性。我使用起搏器中的位置在每个负载均衡器上保留一个 VIP,我使用指向 VIP 的循环 DNS 域来负载均衡负载均衡器。到目前为止一切看起来都很好!
| LB1 : | 循环-->| 1.2.3.4 | 心跳起搏器 | 代理 | 192.168.1.1
Run Code Online (Sandbox Code Playgroud)| | | | || LB2 : | 循环-->| 5.6.7.8 | 心跳起搏器 | 代理 | 192.168.1.2
crm配置显示
node $id="394647e0-0a08-451f-a5bf-6c568854f8d1" lb1
node $id="9e95dc4f-8a9a-4727-af5a-40919ac902ba" lb2
primitive vip1 ocf:heartbeat:IPaddr2 \
params ip="1.2.3.4" cidr_netmask="255.255.255.0" nic="eth0:0" \
op monitor interval="40s" timeout="20s"
primitive vip2 ocf:heartbeat:IPaddr2 \
params ip="5.6.7.8" cidr_netmask="255.255.255.0" nic="eth0:1" \
op monitor interval="40s" timeout="20s"
location vip1_pref vip1 100: lb1
location vip2_pref vip2 100: lb2
property $id="cib-bootstrap-options" \
dc-version="1.0.8-042548a451fce8400660f6031f4da6f0223dd5dd" \
cluster-infrastructure="Heartbeat" \
stonith-enabled="false" \
no-quorum-policy="ignore" \
expected-quorum-votes="1"
Run Code Online (Sandbox Code Playgroud)
如何配置 Pacemaker 以便如果任何负载均衡器上的 Haproxy 损坏,它仍然应该在另一个 lb 上使用 haproxy 或将两个 vips 移动到工作 haproxy lb 节点。我不希望主动/被动但主动/主动配置在响应 mysql 请求的两个 lbs 上运行 haproxy。
可以用起搏器吗?有人知道吗?
任何帮助是极大的赞赏!。谢谢!
这是一个很好的提示,@Arek B.使用clone. 我将下面的行附加到起搏器配置中,但仍然无法完全获得实际需要的内容。我检查haproxy了两个 LB 上的停止,它是由起搏器自动启动的,但是当我检查永久停止它(/etc/defaults/haproxy, enabled=0)时,haproxy 无法启动,在这种情况下,当它无法启动 haproxy 时,我希望将资源(ipaddr2)移动到另一个运行 haproxy lb。还有什么提示吗?
primitive mysql_proxy lsb:haproxy \
op monitor interval="10s"
clone clone_mysql_proxy mysql_proxy \
meta clone-max="2" clone-node-max="1"
location mysql_proxy_pref1 clone_mysql_proxy 100: lb1
location mysql_proxy_pref2 clone_mysql_proxy 50: lb2
Run Code Online (Sandbox Code Playgroud)
我有主动-主动 2*virtIP 集群
对于 CRM 配置:
我使用两个虚拟 IP 作为primitiveIPaddr2 服务
以及应在两个节点上运行的服务:
clone any_name_of_the_clone your_primitive_service_id \
meta clone-max="2" clone-node-max="1"您可以添加order(在启动克隆后启动虚拟IP - 不是原始的,在创建克隆后您不应该使用它的子ID)
它正在工作,故障转移工作(当其他节点发生故障时在一个节点上分配 2 个 IP)。
但是我有如何制作的问题colocation- 我的意思是有受限的服务:我不能在子服务失败的节点上拥有 virtIP。
当服务关闭时,这是正常的 - 集群会将其启动,但当启动失败时(例如,服务的配置损坏) - 集群会记录错误,但会启动 IP。
有谁知道是什么原因吗?
- 这是监控/启动/停止控制不良的问题还是配置约束的问题?
编辑:
我已添加到Primitive“op start”选项:on-fail="standby"。现在,当我的服务(克隆中唯一的原语)无法启动时,节点也会丢失 virtIP
这似乎现在解决了我的问题。
| 归档时间: |
|
| 查看次数: |
6225 次 |
| 最近记录: |