如何搭建一个高可用的Postfix系统?

Van*_*man 13 backup postfix mirroring failovercluster

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

这个想法是,如果主服务器在某个时候出现故障,镜像服务器将取代它,管理新传入的邮件,当电子邮件服务器再次启动时,它将用新电子邮件更新它并返回它是管理新传入邮件的控件。

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

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

但问题是这种配置不会使备份站点成为主邮件服务器的完整镜像(它只会保存主服务器关闭时收到的电子邮件)。

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

wom*_*ble 25

你想要达到的结果,以及你决定这样做的方式,是非常不同的事情。坦率地说,你想要实现的想法是个坏主意,如果你能以某种方式使它起作用,它就不会起作用很长时间(或非常好)。

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

不过,让我假设几个场景,让您体验一下什么是可能的、实用的和有用的:

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

基本上,后一种选择既痛苦又烦人。我个人的偏好是,如果你能侥幸成功(而且你经常会感到惊讶)是将所有鸡蛋放在一个篮子里,在确保你有一个非常好的、坚固的篮子(适当的系统工程),手头有一些篮子补丁和工具(专注于高可恢复性),并确保人们知道每隔一段时间,一些鸡蛋可能会被打破,你真的很抱歉,但生活并不完美(不要做出不合理的 SLA 保证)。

有时您需要超高可用性,我已经构建了确保它的系统,但它们并不简单,而且在许多情况下它们不具有成本效益,这就是我们在这里的目的。是的,HA 既酷又性感,你会因构建一些高耸的复杂怪物而获得极客的信任,但我们不是来打击我们的自负的。我们在这里提供业务价值,很抱歉,但 Rube Goldberg 高度可用的多站点邮件集群不太可能提供与简单、强大的邮件服务和偶尔的“我们”一样多的价值很抱歉邮件中断,我们将在一个小时内恢复系统,请随时为我们提供咖啡和松饼”公告。

  • 抱歉,我只能提供一个 +1 (4认同)
  • 我自己说得再好不过了。 (2认同)

Klo*_*lox 0

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

  • 镜像 Postfix 是最简单的一种。但这不是问题所在。困难的是如何同步邮件存储(mbox 或 Maildir)。在 IMAP 的 NFS 上存储邮件几乎是不可能的,并且会再次导致单点故障。 (3认同)