传输服务器的负载平衡和容错

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2007-10-22

本主题说明了使用 Microsoft Exchange Server 2007 传输服务器进行邮件路由的负载平衡机制和容错选项。在 Exchange 2007 中,邮件路由的负载平衡和容错选项自动启用,从而提高了传输服务器在 Exchange 组织中传输邮件流和传递的有效性。

Exchange 2007 路由使用确定的算法来选择开销最小的路由路径,将邮件路由到远程 Active Directory 站点、发送连接器和远程路由组。有关如何计算开销最小的路由路径的详细信息,请参阅了解基于 Active Directory 站点的路由

选择开销最小的到目标的路由路径后,负载平衡和容错机制在几种不同的邮件路由方案中都会发挥作用。通过 Exchange 2007 提供负载平衡和容错的所有邮件路由方案都遵循一种常规方法。如果有多个传输服务器,则使用轮循负载平衡机制。例如,如果在远程 Active Directory 站点中存在多个集线器传输服务器,则通过轮循负载平衡来确定路由路径。当选择的服务器不可用时,为实现容错,会连接到服务器列表中按优先级排列时下一个可用的服务器。

note注意:
如果存在总开销相同的多个路由路径,那么 Exchange 2007 不会在这些路径上进行负载平衡。Exchange 2007 始终选择一个路由路径并且使用它路由所有邮件。这种一致的确定性路由使得查找并解决邮件流问题更加容易。

支持负载平衡和容错的邮件路由方案

本节介绍 Exchange 2007 路由提供负载平衡和容错的邮件路由方案,包括:

  • 在同一 Active Directory 站点中的发送连接器上指定了多个源传输服务器时的邮件中继

  • 从集线器传输服务器到边缘传输服务器的邮件中继

  • 从边缘传输服务器到集线器传输服务器的邮件中继

  • 到远程 Active Directory 站点的邮件中继

  • 从邮箱服务器到集线器传输服务器的邮件中继

  • 来自集线器传输服务器并通过 Microsoft Exchange Server 2003 路由组连接器的邮件中继

  • 到第三方简单邮件传输协议 (SMTP) 服务器的邮件中继

note注意:
Exchange 2007 决不会跨不同的路由路径进行负载平衡,其中的路由路径由 IP 站点链接、连接器和路由组连接器组成。然而,在大多数情况下,Exchange 2007 会在连接器和路由组连接器的不同源服务器或目标服务器之间进行负载平衡,但也存在例外。例如,当发送连接器的各个源服务器位于不同的 Active Directory 站点时,Exchange 2007 不会进行负载平衡。

在同一 Active Directory 站点中的发送连接器上指定了多个源传输服务器时的邮件中继

本部分介绍的负载平衡机制适用于为边缘传输服务器和集线器传输服务器上的传出邮件配置的所有类型的连接器,如 SMTP 连接器、外部连接器和路由组连接器。

在一个连接器上指定了多个源传输服务器时,将在这些源服务器中分配连接,以轮循方式实现负载平衡。当该连接器无法连接到以前尝试的源服务器时,将通过故障转移到下一个可选择的源服务器来实现容错。

在下图中,将发送连接器 C1 配置为使用集线器传输服务器 A 和集线器传输服务器 B 作为源服务器。当集线器传输服务器 C 将邮件路由到发送连接器 C1 时,将在集线器传输服务器 A 和 B 之间实现邮件分发的负载平衡。

同一 Active Directory 站点中的发送连接器上有多个源传输服务器

发送连接器上的许多源传输服务器

如果用于中继邮件的服务器也配置为所选连接器的源传输服务器,则不会发生负载平衡。在这种情况下,本地服务器临近程度优先于本地 Active Directory 站点临近程度,并且始终通过本地服务器路由邮件。在该图中,如果集线器传输服务器 C 也配置为发送连接器 C1 上的源传输服务器,则从集线器传输服务器 C 中继的邮件将通过发送连接器 C1 路由,而不是负载平衡到集线器传输服务器 A 和集线器传输服务器 B。

从集线器传输服务器到边缘传输服务器的邮件中继

当多个边缘传输服务器订阅到单个 Active Directory 站点时,所有边缘传输服务器将作为源服务器添加到这些边缘传输服务器上的单一入站发送连接器。边缘传输服务器之间负载平衡的实现与在同一发送连接器上的多个集线器传输服务器之间负载平衡的实现相似。

首先将要发送到 Internet 的邮件路由到边缘传输服务器订阅到的 Active Directory 站点。然后,该站点中的接收集线器传输服务器将邮件中继到一个边缘传输服务器(该服务器作为发送连接器上配置为使用 DNS 地址解析的源传输服务器列出)。在订阅的边缘传输服务器之间对连接请求进行负载平衡。如果选择的服务器不可用,则重新尝试连接到下一个边缘传输服务器(该服务器承载配置为使用 DNS 地址解析的发送连接器)。

note注意:
站点间的中继始终在集线器传输服务器之间发生。远程 Active Directory 站点中的集线器传输服务器不直接中继到订阅到另一个 Active Directory 站点的边缘传输服务器。

手动进行边缘传输服务器的故障转移

建议您将多个边缘传输服务器订阅到一个 Active Directory 站点,以在其中一个边缘传输服务器脱机时提供自动容错和故障转移。如果只将一个边缘传输服务器订阅到一个 Active Directory 站点,则当该服务器脱机时,您必须手动干涉来通过另一个 Active Directory 站点重新路由 Internet 邮件。

如下图所示,如果边缘传输服务器 1 脱机,您可在站点 1 的 Active Directory 目录服务中手动禁用在边缘传输服务器 1 上配置的连接器。对于站点 1 中排入到边缘传输服务器 1 的邮件队列的电子邮件,将自动重新提交、分类,然后使用连接器选择算法通过另一个订阅了边缘传输服务器的 Active Directory 站点重新路由。

在该图中,邮件重新路由到 Active Directory 站点 2,以便通过边缘传输服务器 2 路由。当边缘传输服务器 1 再次可用时,您必须重新启用它在 Active Directory 站点 1 中的连接器,这样站点 1 中的 Internet 邮件可通过边缘传输服务器 1 路由。

手动进行边缘传输服务器的故障转移

边缘传输服务器的手动故障转移

从边缘传输服务器到集线器传输服务器的邮件中继

当边缘传输服务器订阅到 Active Directory 站点时,会在该服务器上自动创建和配置发送连接器。该发送连接器向订阅了边缘传输服务器的 Active Directory 站点中的集线器传输服务器发送邮件。该发送连接器配置为在地址空间中使用 -- 占位符。入站发送连接器的地址空间中的 -- 占位符代表 Exchange 组织中的权威和内部中继接受域。创建边缘订阅时在 Active Directory 站点中部署的集线器传输服务器作为该连接器的智能主机列出。负载平衡和容错在入站发送连接器的智能主机列表中的集线器传输服务器上实现。

note注意:
如果创建边缘订阅后在 Active Directory 站点中部署了其他集线器传输服务器,那么这些服务器不参与 EdgeSync 同步过程。不过,这些新的集线器传输服务器会添加到入站发送连接器的智能主机列表中。有关详细信息,请参阅EdgeSync 和发送连接器

到远程 Active Directory 站点的邮件中继

在单一 Active Directory 站点中部署多个集线器传输服务器后,从其他 Active Directory 站点到这些集线器传输服务器的连接在轮询机制方式中优先。如果某个 Active Directory 站点上的集线器传输服务器将收件人的位置解析为另一个 Active Directory 站点上的邮箱服务器,则会返回该远程站点中集线器传输服务器的优先级列表。如果 Active Directory 站点中的一个集线器传输服务器不可用,会尝试连接到优先级列表中的其他集线器传输服务器。这就提供了 Active Directory 站点中的容错功能。

例如,当 Active Directory 站点 A 中的集线器传输服务器 A 将邮件中继到 Active Directory 站点 B 中的邮箱服务器时,集线器传输服务器 A 接收来自 Active Directory 站点 B 的集线器传输服务器优先级列表,如集线器传输服务器 1、集线器传输服务器 2 和集线器传输服务器 3。如果集线器传输服务器 A 无法连接到集线器传输服务器 1,它会尝试连接到集线器传输服务器 2。如果仍无法连接到集线器传输服务器 2,则继续尝试连接到集线器传输服务器 3,依此类推。

如果 Active Directory 站点 A 中的集线器传输服务器 B 还必须将邮件中继到 Active Directory 站点 B,则集线器传输服务器的优先级列表会进行调整以包含位于 Active Directory 站点 B 中的服务器。例如,集线器传输服务器 B 的集线器传输服务器优先级列表的顺序可能重新调整为远程 Active Directory 站点 B 中的集线器传输服务器 2、集线器传输服务器 3 和集线器传输服务器 1。此调整旨在当建立其他连接时实现站点中所有集线器传输服务器的平衡负载。

从邮箱服务器到集线器传输服务器的邮件中继

在此方案中,Active Directory 站点上部署了多个集线器传输服务器。如果某个集线器传输服务器同时充当邮箱服务器,则该集线器传输服务器会始终优先于同一站点上的其他集线器传输服务器。这意味着 Microsoft Exchange 邮件提交服务始终会通知本地集线器传输服务器。如果不存在同时充当邮箱服务器的集线器传输服务器,或者本地邮箱服务器上的集线器传输服务器不可用,则在轮循机制方式中使用同一 Active Directory 站点中的其他集线器传输服务器。

来自集线器传输服务器并通过 Exchange 2003 路由组连接器的邮件中继

如果将路由组连接器配置为使用多个目标 Exchange 传输服务器,则 Exchange 2007 路由会使用本主题上文“在相同的 Active Directory 站点中的发送连接器上指定了多个源传输服务器时的邮件中继”中介绍的负载平衡和容错机制。

到第三方 SMTP 服务器的邮件中继

如果将 SMTP 发送连接器配置为使用多个智能主机,则会在这些智能主机之间平衡连接请求的负载。如果某智能主机不可用,则通过重新尝试连接到在连接器上配置的另一个智能主机提供容错。

不会发生负载平衡和容错的方案

本主题介绍 Exchange 2007 传输服务器不提供负载平衡和容错支持的邮件路由方案,包括:

  • 源传输服务器位于不同 Active Directory 站点中

  • 多个连接器具有同等开销

  • 通讯组展开服务器

  • 冗余开销最低的路由路径或集线器站点

源传输服务器位于不同 Active Directory 站点中

如果用于路由电子邮件的发送连接器的多个源传输服务器位于不同的远程 Active Directory 站点中,则邮件不会在这些 Active Directory 站点之间实现负载平衡,而是选择一个 Active Directory 站点,并将邮件中继到该站点。首选开销最低的 Active Directory 站点。如果所有的 Active Directory 站点开销相同,则选择在源传输服务器列表中首先列出的源传输服务器的 Active Directory 站点。

下图显示了为发送连接器配置了多个 Active Directory 站点中的源传输服务器时发生的邮件路由行为。在此图中,将邮件从 Active Directory 站点 3 路由到外部收件人。选择连接器 C1 作为与地址空间最匹配的连接器。连接器 C1 的源传输服务器是 Active Directory 站点 1 和 Active Directory 站点 2 中的集线器传输服务器。如果列出的第一个源传输服务器位于 Active Directory 站点 1 中,则来自 Active Directory 站点 3 的所有邮件将被路由到 Active Directory 站点 1。Active Directory 站点 1 中的任何集线器传输服务器都可接收该邮件,然后使用本地 Active Directory 站点负载平衡分发这些邮件,以便实现集线器传输服务器 A 和 B 之间的中继。

在一个发送连接器上配置了不同 Active Directory 站点中的源传输服务器

不同 AD 站点中的源传输服务器

不支持在 Active Directory 站点之间发生负载平衡,因为 Exchange 2007 始终使用确定的路由并始终只选择一个 Active Directory 站点来路由邮件。

多个连接器具有同等开销

如果存在多个同等开销的连接器可以路由邮件,则不在这些连接器之间实现邮件的负载平衡。 Exchange 2007 路由会使用 了解基于 Active Directory 站点的路由 中介绍的选择算法确定性地选择一个连接器。

通讯组展开服务器

可以将通讯组配置为使用特定的展开服务器。如果指定展开服务器,则到通讯组的所有邮件将被路由到指定的展开服务器。展开服务器会展开组成员身份、解析每个收件人并路由邮件。不支持多个展开服务器之间的负载平衡。如果展开服务器不可用,则会在故障点对邮件进行排队,并且此队列将进入重试状态。

冗余开销最低的路由路径或集线器站点

在 Exchange 2007 路由根据 了解基于 Active Directory 站点的路由 中介绍的条件计算出开销最低的路由路径并选择某个路由路径后,除非更改了配置数据,否则 Exchange 2007 路由不会重新计算路由路径。如果使用此确定路由路径无法建立连接,Exchange 2007 路由不会尝试计算备选路由路径。在这种情况下,会在故障点对邮件进行排队并重新路由。

下图显示了在此种情况下如何在 Active Directory 站点拓扑中进行邮件路由。

从 Active Directory 站点 1 发送到 Active Directory 站点 4 的邮件有两个可用路径,每个路径的开销都相同。但是,会选择站点 1-站点 2-站点 4 这一路径,因为 Active Directory 站点 2 的字母顺序低于 Active Directory 站点 3。

冗余开销最低的路由路径或集线器站点

冗余成本最低的路径或中心站点

在此拓扑中,还将 Active Directory 站点 2 配置为集线器传输服务器站点。由于该站点始终存在于选择的最小开销路由路径中,所以此配置会强制通过该站点中继传输的邮件。如果由于某种原因(例如,站点 1 和站点 2 之间的网络连接发生故障),从站点 1 发送到站点 4 的邮件无法从站点 1 中继到站点 2,则所有邮件将在站点 1 上排队。

如果站点 2 不是集线器传输服务器站点,则直接将邮件从站点 1 传输到站点 4。站点 1 和站点 2 之间缺少网络连接不会影响到直接中继,因为只要存在从站点 1 到站点 4 的网络层路由,就可进行直接中继。这些站点之间的 Exchange 拓扑网络层定义计算机用于在站点间发送数据的路径。但是,在本图中,由于站点 2 自身包含集线器传输服务器,因此从站点 1 到站点 4 的所有邮件必须通过站点 2 中继。在此方案中,Exchange 2007 不支持切换到同等开销的备选路由路径,而是依赖于 IP 网络层冗余和用于邮件中继的站点之间的容错。网络层应该充当物理链接失败时的一种解决方法,并提供指向目标的冗余备选路径。

SMTP 连接管理

本节介绍 Exchange 2007 负载平衡和容错环境中的 SMTP 连接管理。集线器传输服务器通过使用 SMTP 向远程服务器发出连接请求。远程服务器可以是另一个 Active Directory 站点中的集线器传输服务器,还可以是一个智能主机或边缘传输服务器。

例如,如果 60 封邮件已排队等待中继到远程 Active Directory 站点,而且该站点有三个集线器传输服务器,则做出连接的 Exchange 传输组件会在这些服务器之间实现邮件中继的平衡负载。对每个服务器建立一个连接,并且每个连接用于传输大约 20 封邮件。传输速率取决于网络带宽和邮件的大小。

每个连接传输邮件的数量不可配置。但是,可通过传输服务器上的以下两个配置设置限制每个队列的最大连接数:MaxPerDomainOutboundConnectionsMaxOutboundConnectionsMaxPerDomainOutboundConnections 限制每个队列可建立的连接数。MaxOutboundConnections 限制服务器可建立的出站连接总数。可以使用 Exchange 命令行管理程序中的 Set-TransportServer cmdlet 和 Exchange 管理控制台中的传输服务器属性页来配置这些设置。

有关详细信息,请参阅下列主题:

详细信息

有关详细信息,请参阅下列资源: