我有兴趣使用MMR( http://mysql-mmm.org/ )来实现高可用性和复制目的。 问题是,我也有兴趣将Linux-HA用于其他服务,比如Apache。 当涉及到某些事情时,这两者重叠,例如交换虚拟IP接口等。
有没有人有类似的设置,并有上述问题的一些最佳做法/解决scheme?
其他服务在同一台机器上吗?
如果不是,那么你就没有任何重叠(在一台具有虚拟IP的机器上的Linux-HA,在另一台机器上的MMR)
如果还有其他的服务,那么可以考虑虚拟化或将它们移动到其他机器上,这样可以简化networking接口pipe理(两种虚拟IPpipe理方法之间无法冲突)。
只要确保虚拟化主服务器位于不同的主机上,否则主机的故障将导致您丢失所有的MySQL实例!
我尽可能使用Linux HA工具,并尽可能less地使用MySQL组件。 我不相信MySQL的东西,只要我可以扔它。
看起来似乎是合理的,你可以为每一个定义独立的VIP接口。
我一直无法find类似configuration的参考,所以我认为你只是需要通过工作,并进行大量的testing。
然而,在genereal中,我非常怀疑任何多主复制技术。 我很想知道是否可以在故障转移configuration中使用单个主服务器。
单独的Linux-HA和MMR可能会变得复杂起来。 如果你主要关心的是交互,限制它的最简单的方法是不同的硬件/networking。 如果这是不可能的,每个盒子的复杂性会增加。 所以最好的做法是尽可能地分开你的虚拟地址和ip地址,这样你就可以把Linux-HA和MMR的configuration集中在一个接口子集上,而不必担心它们互相干扰。 我也会认真考虑是否需要主 – 主复制。 它可能非常复杂,复杂性很容易失败。
如果发生主要故障,您可能会更好地服务于主从,或降级服务。 如果你仍然需要主/主,你可能想看看postgres(尽pipemmr选项很多)。 我也不愿意提到它,但如果我不这样做会是失职,但根据我的经验,如果MMR很重要,不能通过架构或其他方式解决,您可能需要查看诸如Oracle或DB2之类的商业数据库,通过共享存储实现基于日志的MMR,非常可靠。
它适合我们。
然而,每个服务都有一个单独的VIP是很重要的 ,尽pipe理论上你不需要它,但是我们发现它只是单独的VIP服务,可能有点奇怪。
我们有一个可能类似于您感兴趣的生产群:
实现并保持运行相当简单,并提供出色的性能。 Keepalived可能会有点烦琐,因为它不会把超级用户的错误放到系统日志中关于破坏的configuration,但一旦你得到它的工作,它坚如磐石。 DRBD是保证整个文件系统在机器间同步的最佳非SAN解决scheme,OCFS2(在我们的testing中)是性能最好的开源集群文件系统,而且它的设置也非常简单。
唯一真正的警告是,如果一个用户的连接被指向一个服务器,然后他们被切换到另一个服务器,它将失去Apache / PHP会话和状态数据(除非它们全部存储在数据库中) 。 这不是什么大问题,因为keepalived有一个模式,可以确保相同的客户端IP总是连接到相同的后端服务器(假设它们保持不变)。
哪个操作系统(Linux)正在使用? 通常当你需要安装Mysql cluster / Apache时,我已经为我们的客户端设置了很多时间
| SAN Box |
| | 节点1节点2
服务运行
VIP Mysql / Apache LVM / GFS / GFS2
我build议按照以下链接进行设置