我正在使用Haproxy负载平衡复制MySQL主服务器。 我还使用Heartbeat和Pacemaker进行主动/主动IP故障切换,在两台负载平衡器上使用两个虚拟IPS来实现Web服务器高可用性。 我在起搏器中使用位置,以便在每个负载平衡器上保留一个VIP,并使用指向VIP的循环DNS域负载平衡负载均衡器。 一切看起来都很好!
| LB1 :| 循环 – > | 1.2.3.4 | 心跳起搏器| Haproxy | 192.168.1.1
| | | | || LB2 :| 循环 – > | 5.6.7.8 | 心跳起搏器| Haproxy | 192.168.1.2
crmconfigurationshow
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"
如何configurationPacemaker,以便如果任何负载平衡器上的Haproxy已损坏,则应该使用另一个lb上的haproxy或将这两个vips移动到工作haproxy lb节点上。 我不希望主动/被动,但主动/主动configuration作为运行haproxy响应mysql请求的两个lbs。
是否有可能与Pacemaker? 有人知道吗?
任何帮助是极大的赞赏!。 谢谢!
这是@Arek B.使用clone一个很好的提示。 我附加到起搏器configuration下面的线,但仍然不能完全得到实际所需。 我检查了在两个LB上停止haproxy ,它是由pacemaker自动启动的,但是当我检查永久停止它( /etc/defaults/haproxy, enabled=0 )时,haproxy无法启动,在无法启动haproxy的情况下,我想要资源( ipaddr2 )被移动到另一个正在运行的haproxy磅。还有什么提示?
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
我有主动 – 主动2 * virtIP群集
对于CRMconfiguration:
我使用两个虚拟IP作为primitive IPaddr2服务
对于应该在两个节点上运行的服务:
clone any_name_of_the_clone your_primitive_service_id \
meta clone-max="2" clone-node-max="1" 您可以添加order (在启动克隆后启动virt IP – 不是原始的,在创build克隆之后,您不应该使用其子ID)
它正在工作,故障切换工作(当其他节点失败时,在一个节点上分配2个IP)。
然而,我有问题如何做colocation – 我的意思是有限制的服务: 我不能有子服务节点上的子项服务失败 。
服务closures时可以,群集启动但启动失败(例如,服务configuration中断) – 群集注释错误,但是启用IP。
任何人都知道是什么原因?
– 这是监控/启动/停止控制不好的问题,还是configuration约束的问题?
编辑:
我已经添加到“运行启动”的Primitive选项: on-fail="standby" 。 现在,当我的服务(克隆中唯一的原语)不能启动节点时也会释放virtIP
这似乎解决了我现在的问题。