多个MX在不同位置的理想的灰色列表scheme是什么?

我们目前在同一个物理机架上有两台MX服务器,它们共享相同的灰名单数据库,而且一切似乎都很顺利。 两个MX有不同的优先级,它们在两个不同的物理服务器上,所以如果其中一个出现故障,我们可以获得冗余。

(仅供参考,数据库位于冗余硬件集群上的虚拟机上:虽然数据库系统整体上是单点故障,但运行的硬件却不是这样,从而消除了大多数可能的故障模式)

我们希望在一个不同的数据中心中引入一个新的(或一对)MX,以实现接收邮件系统的完全冗余(我们的DNS服务器已经分配到不同的数据中心),但是我们不能将其连接到MySQL服务器,因为这将首先击败冗余。

在这样的设置中实现灰名单的正确方法是什么?

我可以让每个位置/ MX组拥有自己的灰名单数据库,否则会造成任何问题或效率低下? 是否有任何理由在相同/不同的优先级configurationMX或不重要? (当然不同的网站总会有不同的优先级)

编辑/澄清:第一个答复似乎build议设置MySQL复制(无论是主/从或双路)或解释如何做到这一点:在那里,做到了这一点。 如果我需要,我可以在数据中心之间build立一个双向的MySQL复制。

我的问题集中在如果我需要复制/共享灰名单数据库,或者如果我不能在不同的灰名单MX之间共享知识,而不是如何实现共享的知识。

最糟糕的情况是,如果您的主要数据中心在初次交付尝试后脱机,则辅助数据中心接pipe,并且没有第一次交付尝试的logging。 它将把后续传送尝试作为初始传送尝试,并且会告诉中继服务器稍后再试。

由于延迟时间往往只有5分钟,这意味着最大的延迟时间大约是10分钟。 在0分钟的时间内交货,在5分钟后交付到另一个邮件服务器,然后在10分钟后交付最终的交货。

考虑到5分钟以外的延迟时间是可能的,最坏的情况实际上是在数据中心出现故障的情况下正常传送延迟的延迟的两倍。

如果在数据中心故障切换情况下,您可以接受,那么您将不需要共享灰名单数据库。 如果不是的话,那么复制就是要走的路。

林猜测灰名单不是很大或活跃…为什么不在MySQL数据库到远程数据中心的主/从复制?

我build议你使用复制来同步你的mysql数据库在两个位置之间。

根据您的数据库的结构有很多可能性,但一个常见的设置是configuration每个群集生成独立的串行密钥,并使它们相互复制。 例如在my.cnf中:

auto-increment-increment = 5 auto-increment-offset = 1 ( and 2, 3, 4 , 5 on your other clusters ) 

在发生崩溃的情况下,每个集群在本地保存未复制事务的日志,以便当另一方出现时交付事务。

编辑:好吧,您需要同步您的群集,否则您将在每个群集上独立地使用相同的IP地址,这实际上可能会将您的群集数量乘以您设置的群集数量。 顺便说一下,为什么不为所有的MX条目设置相同的MX优先级?