人们将如何devise一个灵活的邮件服务器设置与Linux?
在应用程序级别上,系统需要提供的是传入和传出邮件服务(即SMTP和IMAP)以及过滤和归档存储(归档部分并不重要,所以我们稍后可能会看到)。
最需要的是一个有弹性的系统,即可以处理单个服务器故障而不中断服务的系统。 因此,我将这个称为高可用性邮件系统。 这与高性能邮件设置形成对比,因为在我们的情况下,正在处理的邮件数量不是重要的因素,它只是保持在线状态。
在没有处理过这个问题之前,我首先想到的是一个集群文件系统(gfs / gluster / etc),结合心跳将浮动IP故障转移到另一个服务器故障的情况下。
结合后缀&dovecot这听起来对人们可行吗?
或者,在IMAP / POP级别进行群集,使用Cyrus IMAP 。 我在邮件服务器迁移过程中使用了它的复制function,并且工作完美。 没有消息丢失,他们到达哪个节点并不重要。
SMTP部分是相当简单的我猜 – 无论是过滤传入的stream量,并提供外发的服务 – 他们是非常无国界的。 所以对于那些 – 通常的主控+基于心跳的热备份设置和分配给主动节点的“虚拟IP”就好了。
但是…当服务器死亡时,有可能丢失正在传输的消息(例如,通过反垃圾邮件进行检查,或者由于灰名单在另一端被派送出去)。
对于IMAP /访问邮箱在不那么重负载的系统我会再次为主+热备份configuration,但这次我们需要添加邮箱复制。 取决于大小 – 简单的每隔10分钟运行一次的rsync可以做到这一点,但是如果我们谈论数以千计的邮箱和数千条消息 – 基于drdb的复制将performance得更好。
通常的警告词:如果你设置HA簇 – 定期检查 – 例如每季度一次。 当你需要的时候发现你所期待的HA并不是真正的HA,这是相当不愉快的感觉。
对于MTA我通常使用后缀 ,对于IMAP – 快递 ,反垃圾邮件 – ESVA [ 现在似乎已经死了,但人们试图恢复它 得到resurected ]或mailcleaner 。
在我的大学,我们使用了Cyrus IMAP和Postfix的组合。 赛勒斯被复制3 VM。 HA集群具有相当不错的性能,并提供约30,000个独特的邮箱。