我有兴趣使用 MMR ( http://mysql-mmm.org/ ) 来实现高可用性和复制目的。问题是,我也有兴趣将 Linux-HA 用于其他服务,例如 Apache。当涉及到某些事情时,两者会重叠,例如交换虚拟 IP 接口等。
有没有人有类似的设置并有一些针对上述问题的最佳实践/解决方案?
我有兴趣使用 MMR ( http://mysql-mmm.org/ ) 来实现高可用性和复制目的。问题是,我也有兴趣将 Linux-HA 用于其他服务,例如 Apache。当涉及到某些事情时,两者会重叠,例如交换虚拟 IP 接口等。
有没有人有类似的设置并有一些针对上述问题的最佳实践/解决方案?
其他服务是否在同一台机器上?
如果没有,那么您就没有任何重叠(Linux-HA 在一组具有虚拟 IP 的机器上,而 MMR 在另一组机器上)
如果还有其他服务,那么可能会考虑虚拟化或将它们移动到其他机器,因为这将简化网络接口管理(您无法在两种虚拟 IP 管理方法之间产生冲突)。
只需确保虚拟化的主服务器位于不同的主机上,否则主机故障将导致您丢失所有 MySQL 实例!
我尽可能多地使用 Linux HA 工具,而尽可能少地使用 MySQL 组件。我不相信 MySQL 的东西,只要我能把它扔掉。
您可以为两者中的每一个定义单独的 VIP 接口似乎是合理的。
我一直无法找到类似配置的参考资料,所以我认为您只需要努力完成并进行大量测试即可。
然而,总的来说,我对任何多主复制技术都持怀疑态度。我会认真考虑是否可以在故障转移配置中使用单个主机。
Linux-HA 和 MMR 单独运行起来可能很复杂。如果您主要关心的是交互,那么限制它的最简单方法是不同的硬件/网络。如果这是不可能的,那么每个盒子的复杂性将会增加。因此,最佳实践是尽可能将虚拟地址和 IP 地址分开,这样您就可以将 Linux-HA 和 MMR 的配置集中在接口子集上,而不必担心它们会相互干扰。我也会认真考虑是否需要主主复制。它可能非常复杂,复杂性容易失败。
主从服务可能会更好地为您服务,或者在主服务器发生故障时降低服务质量。如果您仍然需要 master/master,您可能需要查看 postgres(尽管 mmr 选项很多)。我也讨厌提及它,但如果我不提及它,那将是失职,但根据我的经验,如果 MMR 很重要并且无法通过架构或通过其他方式解决,您可能希望查看诸如 Oracle 或 DB2 之类的商业数据库,两者它通过共享存储实现基于日志的 MMR,并且非常可靠。
它对我们来说很好。
然而,每个服务都有一个单独的 VIP 是至关重要的,尽管理论上你不需要它,我们发现它只适用于单独的 VIP,如果没有它可能会有点奇怪。
我们有一个生产集群,可能与您感兴趣的类似:
它的实现和保持运行相当简单,并提供了出色的性能。Keepalived 可能有点繁琐,因为它不会将有关损坏配置的超级有用的错误放入系统日志中,但是一旦你让它工作,它就会坚如磐石。DRBD 是关于保持整个文件系统在机器之间同步的最佳非 SAN 解决方案,而 OCFS2 是(在我们的测试中)性能最好的开源集群文件系统,而且它的设置也非常简单。
唯一真正需要注意的是,如果用户的连接被定向到一台服务器,然后他们切换到另一台服务器,它将丢失 Apache / PHP 会话和状态数据(除非这些都存储在数据库中) . 但这并不是什么大不了的事,因为 keepalived 有一种模式可以确保相同的客户端 IP 始终连接到相同的后端服务器(假设它们保持正常运行)。
哪个操作系统(Linux)正在使用?通常,当您必须设置 Mysql 集群 /Apache 时,我已经为我们的客户设置了很多时间
| SAN 盒 |
| | 节点 1 节点 2
服务运行
VIP Mysql/Apache LVM/GFS/GFS2
我建议以下链接进行设置
http://kbase.redhat.com/faq/docs/DOC-5648