完整邮件服务器故障转移

Chr*_*ian 2 email-server debian postfix failover

我正在尝试找到最佳解决方案,以允许邮件服务器即使通过切换到后备服务器而崩溃,仍然可以完全运行。

我们使用 Postfix 和 Courier-IMAP 在 Debian 上运行邮件服务器。

我了解 MX 记录并启用中继,以免错过任何新传入的电子邮件。但是我仍然需要能够访问旧电子邮件。

在两台服务器前面放置一个负载均衡器并设置自动回退是一个考虑因素,但我不确定这样的解决方案对邮件服务器的效果如何,因为我几乎没有使用负载均衡的经验。

我不反对对 maildir 使用 GlusterFS 等,只要性能影响可以忽略不计。然而,我听说/研究过,这种解决方案具有较高的性能成本。

最后一个要求是,当发生回退时,使用邮件客户端时的连接详细信息不需要更改。然而,这一要求对于所有其他因素来说是最不重要的。

本质上我正在寻找一个行业标准的解决方案。如果业界认为不需要存在这样的解决方案,那么任何潜在的解决方法都将受到赞赏。

Luc*_*lli 5

有两种可能的解决方案:

  1. 将您的邮箱存储在复制存储上。根据您的性能需求,您有几种选择:如果我们停留在开源/软件定义领域,我建议使用由 Gluster ( http://www.gluster.org ) 支持的 NFS 导出或 DRBD ( http://www.drbd.org ) 设备。根据邮箱的预期大小,Gluster 可能不适合。

  2. 使用 IMAP 复制在两台服务器之间复制并持续同步您的邮箱,我推荐 Dovecot ( https://wiki.dovecot.org/Replication )

共享存储解决方案:

假设您使用性能不错的 DRBD,您需要设置 Linux-HA ( http://www.linux-ha.org ) 以确保一次只有一台服务器处于活动状态并且只有一台服务器已挂载DRBD 设备。MX记录指向Linux-HA管理的浮动IP。

SMTP/POP/IMAP 服务应从同一复制查找服务(如 MySQL/LDAP)读取任何记帐信息(邮箱、别名、加密密码)。

这将是一个主动/被动集群。

IMAP 复制解决方案:

每个邮件服务器都有自己独立的本地存储。设置两个相同的服务器,确保 Postfix 和 Dovecot 从相同的复制查找服务(MySQL / LDAP)读取记帐信息。设置 Dovecot 以在两台服务器之间复制邮箱。

这将是一个主动/主动集群。在这种情况下,传入邮件会随机发送到两个邮件服务器之一,并最终存储在其本地存储中。Dovecot Sync 定期在每台服务器上存储的邮件之间执行双向复制并自动解决冲突。有一个很小的时间窗口(两次同步之间的间隔),在此期间可能会丢失一些消息。由您决定这是否可以接受。