您想要达到的结果以及您决定执行此方法的方式是完全不同的。直言不讳,您想要实现的想法不是一个好主意,如果您能够以某种方式设法使其能够正常工作,那么它将不会持续很长时间(或非常好)。
使这个问题难以回答的原因是,您已经直接跳到实现上,并且没有描述任何有关您的环境或您实际想要实现的目标的有用信息。请不要这样做,如果“展示您的工作”,您将在这里得到更好的结果。
但是,让我提出一些方案,以使您了解可能的,实用的和有用的:
- 确保没有邮件丢失:(我认为这不是您所需要的,因为您所引用的文档已经足够涵盖了它)。您想要拥有的只是保证,无论您的邮件传递和管理基础架构停工了多长时间,您都不会退回任何邮件,您就可以控制何时发送邮件。为此,“简单”的异地备份MX将可以正常工作。我之所以说“简单”,是因为您需要将大量数据复制到备份中(所有反垃圾邮件逻辑,有效的用户/别名信息,以便您可以在SMTP时正确退回无效邮件之类的东西),但这都是可编写脚本的,可自动化执行,并且需要相当谨慎地实现。只要您有足够的磁盘来排队所有邮件,
- 确保完整的邮件系统可用性:听起来这就是您想要的,但这并不简单。基本上,您希望能够在站点完全故障的情况下向您的用户群提供“完整”的邮件服务。原则上,这实际上是不可能的,因为复制不是瞬时的,但是至少可以达到合理的可靠性水平。不过,最困难的不是MTA。它是邮件存储本身。您需要找出一种将所有邮件存储操作(新邮件传递,邮件状态更改,删除)近乎实时地复制到第二个站点的方法,并根据实际运行的站点以两种方式进行复制。您可以选择定期进行rsync的廉价选择(因为自上次rsync以来所做的一切都会永远消失如果您需要进行故障转移),或者采用各种文件级或块级复制技术来尝试使事物近乎实时地保持同步(减少数据丢失量,以换取更为复杂的配置和操作) 。某些邮件系统内置了对某种复制的支持,这可以使生活更轻松。然后是故障转移的整个问题,以及如何进行故障转移,然后再进行故障转移,这再次变得更加困难,最后您必须定期对其进行测试,以确保您一段时间后所做的操作系统升级不会打破任何东西...
基本上,后一种选择既痛苦又烦人。我个人的喜好是,如果您能摆脱困境(您会惊奇地发现您经常能这样做),是在确保您有一个非常坚固的篮子(正确的系统工程)之后,将所有鸡蛋放入一个篮子中。 ),手头上有大量的篮子和工具(着眼于高可恢复性),并确保人们不时地知道一些鸡蛋可能会破损,您真的很抱歉,但生活并不完美(不要做出不合理的SLA保证)。
有时候,您需要超高可用性,而我已经构建了可以确保超高可用性的系统,但是它们并不简单,而且在许多情况下它们并不具有成本效益,这就是我们所追求的。是的,医管局既酷又性感,并且由于构建了一些高耸的复杂性而获得极客的信任,但是我们并不是要自欺欺人。很抱歉,我们在这里提供业务价值,但是Rube Goldberg高度可用的多站点邮件集群所提供的价值可能不如简单,强大的邮件服务以及偶尔的“我们”那么多对于邮件中断感到抱歉,我们将在一小时后恢复系统,请随时向我们喝咖啡和松饼。”