Linux下高可用/可伸缩Sendmail研究
在图 1 中,我们看到一个循环 DNS 正在运行。Sendmail 服务器的所有外部接口都直接连接到因特网,并且在 DNS 中发布。每台机器都充当 SMTP 路由器/缓冲器,从因特网获取邮件并把邮件传递到专用网上的某种公共邮箱服务器。这种方案很容易实施,而且很便宜,如果正确实施,它可以是无故障的。 图 2 说明了使用循环 DNS 的问题。由于 DNS 的工作方式和高速缓存 DNS 记录的可能性,如果某台主机发生故障,邮件代理也许仍会尝试联系它。至少,邮件会被延迟,一直等待连接超时,然后被排入队列,并在补偿时间之后重新发送。 ![]() ![]() 负载均衡器 在最近几年,越来越多地使用了外部的工作负载导向器。这些专用设备可以在几个服务器之间巧妙地分配工作负载,以及处理故障转移/故障恢复。我们对 Alteon 180 交换机进行了大量测试。它允许我们创建虚拟邮件服务器。到达此虚拟服务器的邮件被循环传送到这三个真正的服务器中的每一个。如果其中一个 Sendmail 服务器由于某种原因发生故障,Alteon 把停止发送新连接到该服务器(定期检查该服务器是否已恢复)。 这种配置的优点之一就是它不具有循环 DNS 解决方案的缺点。由于只向全球公布一个 IP 地址,因此当添加/除去群集的成员时,没有理由担心高速缓存的项。由使用诸如 Alteon 180 和 F5 Network 的 Big-IP 之类产品所知,这种做法通常是切实可行的。但是,该设备可能非常昂贵,此外当然会增加另一个维护点。要提供最大保护并且避免单点故障,应该至少安装两个这样的设备。 ![]() ![]() 基于 MX 的故障转移 这是传统的 Sendmail/DNS 配置。DNS 中的主机名可以有一个或多个邮件交换(MX)记录。这些记录包括一个加权因子。当其它 SMTP 服务器试图把邮件传递到此主机时,它们首先寻找 MX 记录及其对应权重。当有多个 MX 记录时,会选择具有最低权重值的 MX 记录。邮件把被传递到第一个主机(该主机应答时,具有最低权重/数字)。 在下例中,某个域具有两个 MX 记录,一个指向芝加哥办事处,权重为 10,另一个指向纽约办事处,权重为 20。在正常情况下,所有邮件都会经过芝加哥办事处,流经公司的 WAN,进行内部传递。 如果芝加哥办事处发生故障,或者到芝加哥办事处的路由发生故障,邮件把自动经由纽约办事处传递。
上一篇:Linux操作系统服务器--FreeNAS初探 下一篇:到底谁牛 Linux邮件服务器软件比较 更多相关文章
|
推荐文章
精彩文章
|