我需要在两个服务器上实现Linux配置。我决定在两台主机上使用DRBD进行块级复制,主要用于MySQL数据复制。
据我所知,在DRBD配置中,总是有一个主服务器,其他服务器都是从服务器(可以有自己的从服务器)。复制只从主人传递到奴隶,而不是反过来。
那么,如果我让
从服务器可以执行写操作,但是没有写入数据?
如果此配置将与心跳一起进行,则确保MySQL仅在主服务器上运行,但假设心跳由于某种原因而失败,这将是心跳的工作。
发布于 2009-06-17 08:51:09
据我所知,DRBD进行分区级别的复制。从服务器不挂载分区,因此不能写入分区。当主服务器出现问题时,从服务器将挂载分区并开始工作。
因此,您不能让两个服务器对相同的数据进行写入。
发布于 2009-06-17 09:05:16
通常使用的配置,也是我在过去使用过的配置,是在两个节点之间配置一些资源。这些资源是DRBD存储块设备、MySQL守护进程和IP地址。
资源只能在主节点上“向上”运行。心跳负责选择哪个节点为主节点,并以正确的顺序启动资源--告诉DRBD成为主节点,挂载BD,启动MySQL并打开IP。它们的出现顺序是为了确保数据的一致性。您可以通过降级主节点或提升辅助节点,手动在主节点和辅助节点之间进行故障转移。
当主数据处于上升状态时,次要执行的唯一操作是复制DRBD数据并参与心跳通信,以表明它是活着的。在作为辅助设备期间,MySQL从未运行过,您无法使用存储块设备。资源一次只能在一台机器上使用。
这种设置与MySQL的传统“延迟复制”不同,后者运行MySQL并存储自己的数据副本。两者各有优缺点。根据我的经验,如果HB设置正确,而且您还有一个好的备份策略,那么LinuxHA方法可以提供更好的高可用性。
发布于 2009-06-17 08:50:47
MySQL HA的一个更好的解决方案是使用循环MySQL复制。这篇文章对此作了进一步解释,但基本前提是使每个服务器都成为对方的从属服务器。您需要在前面设置某种负载均衡器。
需要担心的一件事是,数据库连接可能存在很长时间,如果它们死了,您需要配置应用程序来重新连接它们。
https://serverfault.com/questions/27103
复制相似问题