如何build立高可用性的Postfix系统?

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

这个想法是,如果主服务器在某个时候closures,那么镜像服务器将取代它,pipe理新的传入邮件,并且当电子邮件服务器再次出现时,它将使用新的电子邮件进行更新并返回它控制pipe理新的传入邮件。

邮件服务器将被托pipe在不同的地方(即maindomain.com,themirrorsite.com)。

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

  • http://beginlinux.com/blog/2010/03/backup-mx-with-postfix/
  • http://www.postfix.org/STANDARD_CONFIGURATION_README.html#backup
  • http://www.linuxmail.info/postfix-backup-mx/

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

有没有办法实现所需的configuration?

你想要达到的结果,以及你决定这样做的方式,是非常不同的事情。 直言不讳,你想要实现的是一个坏主意,如果你能够设法使其工作,它将不会工作很长时间(或非常好)。

这个问题难以回答的是,你直接跳到实现中,没有描述任何有关你的环境或你想要实现的东西。 请不要这样做,如果你“展示你的工作”,你会在这里得到更好的结果。

不过,让我来举几个例子,来介绍一下可能的,实用的和有用的:

  • 确保没有邮件丢失 :(我不认为这是你所需要的,因为你提到的文档充分包含了它)所有你想在这里保证,不pipe你的邮件交付和pipe理基础设施多久, ,您将不会弹回任何邮件,并且您可以控制何时交货。 为此,一个“简单的”非现场备份MX将充分工作。 我说“简单”是因为您需要将大量数据复制到备份(所有反垃圾邮件逻辑,有效的用户/别名信息,以便您可以在SMTP时间正确地popup无效邮件,这种事情),但是这些都是可以编写脚本的,可自动化,并相当简单地实施,有点小心。 只要你有足够的磁盘排队所有的邮件,你可以排队几个星期或几个月,直到你的主站点回来,然后你戳到备份的MX,它转储到您的邮件基础设施和您的用户去“aaaaaaahhh!”
  • 确保完整的邮件系统可用性 :这听起来像是你想要的,但它不是简单或漂亮。 基本上,您希望在发生完整站点故障的情况下为您的用户群提供“完整的”邮件服务。 原则上,这实际上是不可能的,因为复制不是即时的,但至less可以达到合理的可靠性水平。 虽然困难的一点不是MTA, 这是邮件存储本身。 您需要找出一种方法,以近乎实时的方式将所有邮件存储操作(新邮件传递,消息状态更改,删除)复制到第二个站点,并根据哪个站点在线。 你可以select周期性的rsync的廉价选项(如果你需要进行故障转移,可能会有上次rsync 永远消失的风险),或者采取各种文件或块级别的复制技术来保存几乎是实时的同步(减less数据丢失的数量,以换取更复杂的configuration和操作)。 有些邮件系统支持某种内置的复制,这可以使生活更轻松。 然后是整个故障的过程,如何做到这一点,然后再回来 ,这又更难了,最后你必须定期testing它,以确保操作系统升级,你做了一段时间没有打破任何东西

基本上,后一种select是痛苦和烦人的。 我个人的偏好,如果你能摆脱这种困境(你会惊奇地发现你可以),把所有的鸡蛋放在一个篮子里,确保你有一个非常好的,坚固的篮子(适当的系统工程),手头上备有一篮子的补丁和工具(注重高可恢复性 ),并确保人们偶尔知道有一些鸡蛋会被打破,真的很抱歉,但生活并不完美(不要使SLA保证不合理)。

有时候你需要超高可用性,而且我已经构build了可以确保它的系统,但是它们并不简单,而且在很多情况下,它们并不符合成本效益,这正是我们的目标。 是的,医pipe局很酷又性感,而且你也因为build立一些高耸的复杂性而变得怪异,但是我们不是在这里来打击我们的自负。 我们在这里提供商业价值,对不起,但Rube Goldberg高度可用的多站点邮件群不可能提供像简单,强大的邮件服务一样的价值,偶尔的“我们”为邮件中断而感到抱歉,我们将在一个小时之内恢复系统,请随时为我们提供一杯咖啡和松饼。

您可以通过MX DNS故障切换+数据复制系统来实现此目的。

对于MX故障转移: 两个邮件服务器,需要dnsconfiguration的帮助

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

– $

我用dbmail来完成类似的解决scheme。 dbmail将所有电子邮件存储在数据库中。 您可以设置数据库复制,以确保您的电子邮件也存储在远程位置。 这使得pipe理邮件系统变得更加复杂,因为你必须pipe理数据库以及电子邮件。

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