如何构建高可用性Postfix系统?


12

我需要为后缀服务器设置一个远程镜像(两个邮件服务器的内容在任何时候都应该相同)。

这样的想法是,如果主服务器在某个时刻关闭,则镜像服务器将取代其位置,管理新的传入邮件,并且当电子邮件服务器再次启动时,它将使用新的电子邮件对其进行更新并返回它是管理新收到的邮件的控件。

邮件服务器将托管在不同的位置(即maindomain.com,themirrorsite.com)。

获得一个简单的备份服务器似乎并不困难:

但是问题在于,这种配置不会使备份站点成为主邮件服务器的完整镜像(它将仅保留主服务器停机时收到的电子邮件)。

有没有办法实现所需的配置?

Answers:


22

您想要达到的结果以及您决定执行此方法的方式是完全不同的。直言不讳,您想要实现的想法不是一个好主意,如果您能够以某种方式设法使其能够正常工作,那么它将不会持续很长时间(或非常好)。

使这个问题难以回答的原因是,您已经直接跳到实现上,并且没有描述任何有关您的环境或您实际想要实现的目标的有用信息。请不要这样做,如果“展示您的工作”,您将在这里得到更好的结果。

但是,让我提出一些方案,以使您了解可能的,实用的和有用的:

  • 确保没有邮件丢失:(我认为这不是您所需要的,因为您所引用的文档已经足够涵盖了它)。您想要拥有的只是保证,无论您的邮件传递和管理基础架构停工了多长时间,您都不会退回任何邮件,您就可以控制何时发送邮件。为此,“简单”的异地备份MX将可以正常工作。我之所以说“简单”,是因为您需要将大量数据复制到备份中(所有反垃圾邮件逻辑,有效的用户/别名信息,以便您可以在SMTP时正确退回无效邮件之类的东西),但这都是可编写脚本的,可自动化执行,并且需要相当谨慎地实现。只要您有足够的磁盘来排队所有邮件,
  • 确保完整的邮件系统可用性:听起来这就是您想要的,但这并不简单。基本上,您希望能够在站点完全故障的情况下向您的用户群提供“完整”的邮件服务。原则上,这实际上是不可能的,因为复制不是瞬时的,但是至少可以达到合理的可靠性水平。不过,最困难的不是MTA。它是邮件存储本身。您需要找出一种将所有邮件存储操作(新邮件传递,邮件状态更改,删除)近乎实时地复制到第二个站点的方法,并根据实际运行的站点以两种方式进行复制。您可以选择定期进行rsync的廉价选择(因为自上次rsync以来所做的一切都会永远消失如果您需要进行故障转移),或者采用各种文件级或块级复制技术来尝试使事物近乎实时地保持同步(减少数据丢失量,以换取更为复杂的配置和操作) 。某些邮件系统内置了对某种复制的支持,这可以使生活更轻松。然后是故障转移的整个问题,以及如何进行故障转移,然后再进行故障转移,这再次变得更加困难,最后您必须定期对其进行测试,以确保您一段时间后所做的操作系统升级不会打破任何东西...

基本上,后一种选择既痛苦又烦人。我个人的喜好是,如果您能摆脱困境(您会惊奇地发现您经常能这样做),是在确保您有一个非常坚固的篮子(正确的系统工程)之后,将所有鸡蛋放入一个篮子中。 ),手头上有大量的篮子和工具(着眼于高可恢复性),并确保人们不时地知道一些鸡蛋可能会破损,您真的很抱歉,但生活并不完美(不要做出不合理的SLA保证)。

有时候,您需要超高可用性,而我已经构建了可以确保超高可用性的系统,但是它们并不简单,而且在许多情况下它们并不具有成本效益,这就是我们所追求的。是的,医管局既酷又性感,并且由于构建了一些高耸的复杂性而获得极客的信任,但是我们并不是要自欺欺人。很抱歉,我们在这里提供业务价值,但是Rube Goldberg高度可用的多站点邮件集群所提供的价值可能不如简单,强大的邮件服务以及偶尔的“我们”那么多对于邮件中断感到抱歉,我们将在一小时后恢复系统,请随时向我们喝咖啡和松饼。”


2
我自己不能说的更好。
voretaq7 2011年

4
抱歉,我只能提供一个+1
mailq

我认为NAS基本上可以解决邮件存储和同步的问题,不是吗?尤其是如果您的邮件存储区变大并且您要托管多个域的邮件。
厄尼(Ernie)2012年

不,NAS约占整个问题的5%,它对您的性能和可伸缩性造成不良影响。
womble

1

您可以通过MX DNS故障转移+数据复制系统来实现。

对于MX故障转移:两台邮件服务器,需要有关dns配置的帮助,以进行备份一台

对于数据复制:http : //www.drbd.org/docs/install/

-$


drbd是否可以与不在同一LAN中的服务器一起使用?主服务器和故障转移服务器应仅通过Internet进行通信,因此我不确定在这种情况下是否可以使用。
VanHackman 2011年

DRBD具有专有代理产品,可大大改善WAN复制。它并不便宜,也不能保证使所有地方都保持最新。
womble

1

我已经使用dbmail完成了类似的解决方案。dbmail将所有电子邮件存储在数据库中。您可以设置数据库复制以确保您的电子邮件也存储在远程位置。由于您必须管理数据库以及电子邮件,因此邮件系统的管理变得更加复杂。


0

您想要的是Postfix复制,我认为Postfix本身不支持。我见过其他人使用的解决方案是使用分布式文件系统在服务器之间复制Postfix数据文件。


3
镜像Postfix很简单。但这不是问题。困难的是如何同步邮件存储(mbox或Maildir)。将邮件存储在用于IMAP的NFS上几乎是不可能的,并导致再次出现单点故障。
mailq
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.