使用 DAG 时的集线器传输和邮箱服务器角色共存

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2015-03-09

使用高可用性功能(如单一副本群集 (SCC) 或群集连续复制 (CCR))时,Microsoft Exchange Server 2007 不支持同一服务器硬件上的集线器传输和邮箱服务器角色。Exchange 2007 中的最小高可用性部署需要四台服务器:邮箱高可用性的两个节点和邮件传输冗余的两个集线器传输服务器。

在使用数据库可用性组 (DAG) 时,为了减少提供高可用性解决方案所需的服务器数量,Exchange Server 2010 支持同一服务器硬件上的集线器传输和邮箱服务器角色。Exchange 2010 提供了一项名为“卷影冗余”的功能,该功能可在邮件传输过程中防止数据丢失。同时使用 DAG 和卷影冗余时,它们将提供高弹性邮件基础结构。

本主题重点介绍将 Exchange 2010 集线器传输服务器角色与加入 DAG 的某个邮箱服务器部署到同一服务器硬件上时,Exchange 2010 集线器传输服务器角色的运行状况。有关 DAG 的详细信息,请参阅了解数据库可用性组

邮件提交和传递

通过在邮件的路径上保存邮件的副本,卷影冗余可以在邮件传输过程中防止数据丢失。如果邮件在传输过程中由于故障而丢失,邮件的卷影副本将由传输组件重新提交。有关如何实施卷影冗余的详细信息,请参阅了解卷影冗余

当用户单击“发送”后,邮箱服务器将参与初始邮件提交过程,当邮件保存到收件人收件箱时,邮箱服务器将参与最终传递过程。将邮件提交给集线器传输后,该邮件的主副本处于要向其提交邮件的集线器传输服务器的队列中。该邮件的卷影副本是存储在发件人的“已发送邮件”文件夹中的文件。传递邮件后,主副本位于收件人的收件箱中,邮件的卷影副本则存储在传输转储程序中。

在高可用性方案(在该方案中,集线器传输和邮箱服务器角色共存于同一服务器硬件上)中,尽量避免邮件的两个副本驻留在同一台服务器上很重要。请考虑下图中所示的部署方案。此拓扑由两台 Exchange 服务器组成,这些服务器加入了已安装集线器传输服务器角色的 DAG。数据库 DB1 和 DB2 都属于 DAG。主动数据库显示为绿色,被动数据库显示为蓝色。

两个带有集线器传输和邮箱服务器角色的服务器高可用性拓扑

使用集线器和邮箱角色的此服务器 HA 拓扑

在此拓扑中,假设某个用户发送了一封邮件,该用户的邮箱在 DB1 上。如果将该邮件提交到 Server1 上的集线器传输服务器角色,则会将主邮件和卷影邮件都实际存储到 Server1 上。主邮件将在集线器传输服务器队列中,卷影邮件则将在发件人的“已发送邮件”文件夹中,如下图所示。

不符合要求的提交路径

不符合要求的提交路径

同样,如果 Server1 上的集线器传输服务器角色收到要发送给 DB1 上的用户的邮件,则会直接传递该邮件,并且会将主邮件和卷影邮件都实际存储到 Server1 上。主邮件将在收件人的收件箱中,卷影邮件将在传输转储程序中,如下图所示。如果在上述情况中发生服务器故障,则邮件将有可能丢失。

不符合要求的传递路径

不符合要求的传递路径

为了避免发生丢失邮件的情况,Exchange 会尝试通过某个路由提交或传递邮件,该路由可确保将邮件的主副本和卷影副本存储到不同的物理服务器上。已修改邮件提交和传递行为将在下一节进行讨论。

邮件提交行为

当某个用户(该用户的邮箱所在的数据库是 DAG 的成员)发送邮件时,如果邮件提交服务检测到集线器传输服务器也安装在本地服务器上,则将首选远程集线器传输服务器。如图“两个带有集线器传输和邮箱服务器角色的服务器高可用性拓扑”中所示,如果邮箱在 DB1 上的用户发送了一封邮件,则邮件提交服务将尝试使用安装在 Server2 上的集线器传输服务器提交邮件。下图说明此首选邮件提交路径。

首选提交路径

首选提交路径

在站点中没有其他可用集线器传输服务器的情况下(例如,假设 Server2 由于计划维护而不可用),邮件提交服务将回退到将邮件提交到本地集线器传输服务器。尽管对于冗余来说这是一个不符合要求的提交路径,但是 Exchange 不会延迟邮件的传递。在可用性和较低的传递延迟性方面,此回退提交路径是符合要求的。

邮件传递行为

在大多数情况下,邮件的路由和传递行为都不会更改。例如,如果图“两个带有集线器传输和邮箱服务器角色的服务器高可用性拓扑”中所示的 Server1 收到 DB2 上的收件人的邮件,则将正常传递该邮件,因为该数据库在其他服务器上处于活动状态。仅当目标邮箱所在的数据库是 DAG 的一部分且目标邮箱在本地服务器上处于活动状态时,集线器传输服务器才会以不同方式处理传入邮件。由于在此情况下直接传递会导致已传递的邮件和传输转储程序上的副本在同一服务器上,因此集线器传输服务器会将此邮件重新路由到同一站点中的其他集线器传输服务器。下图显示在此情况下的邮件传递路径。

首选传递路径

首选传递路径

在站点中没有其他可用集线器传输服务器的情况下,集线器传输服务器将回退到本地传递,尽管在冗余方面这是不符合要求的传递路径。此外,在可用性和较低的传递延迟性方面,此回退传递路径是符合要求的。

邮件流方案

本节详细介绍当集线器传输和邮箱服务器角色共存于同一服务器时,各种邮件流方案会出现什么情况。下图所示的拓扑用于说明各种可能的邮件流方案。

邮件流方案的示例拓扑

邮件流方案的示例拓扑

下表说明 Server1 上的集线器传输服务器角色如何处理各种方案中的邮件。在所有这些情况下,Server1 被视为入口点。

发件人位置 收件人位置 一般邮件路径 高可用性方案

DB1,在 Server1 上处于活动状态

DB1,在 Server1 上处于活动状态

  1. Server1 上的提交服务会将邮件提交到 Server2 上的集线器传输服务器角色。

  2. Server2 上的集线器传输服务器角色将邮件传递到 Server1 上的 DB1,并将其添加到 Server2 上的传输转储程序中。

  • 如果 Server1 在邮件提交过程完成之前出现故障,则发件人的发件箱中的邮件可能会丢失。

  • 如果 Server2 在邮件提交过程完成之前出现故障,则会将邮件提交到 Server1 上的集线器传输服务器角色。

  • 如果 Server1 在向 Server2 上的集线器传输服务器角色提交邮件的过程完成之后出现故障,则 DB1 将在 Server2 上处于活动状态。直到装入 DB1 后,邮件才会在 Server2 上排队,然后集线器传输服务器角色将在本地传递邮件。

  • 如果 Server2 在向 Server2 上的集线器传输服务器角色提交邮件的过程完成之后出现故障,则会将 DB1 中的卷影邮件重新提交到 Server1 上的集线器传输服务器角色,并会在本地传递邮件。

  • 如果 Server1 在邮件传递过程完成之后出现故障,则 DB1 将在 Server2 上处于活动状态。如果尚未将已传递的邮件提交到数据库,则会从 Server2 上的传输转储程序中重新传递该邮件。

DB1,在 Server1 上处于活动状态

DB2,在 Server2 上处于活动状态

  1. Server1 上的提交服务会将邮件提交到 Server2 上的集线器传输服务器角色。

  2. Server2 上的集线器传输服务器角色会将邮件重新路由到 Server1 上的集线器传输服务器角色。

  3. Server1 上的集线器传输服务器角色会将邮件传递到 Server2 上的 DB2,并将邮件添加到 Server1 上的传输转储程序中。

  • 将以相同的方式处理邮件提交过程完成之前的所有服务器故障,如上一行所述。

  • 如果 Server1 在向 Server2 上的集线器传输服务器角色提交邮件的过程完成之后出现故障,则 Server2 上的集线器传输服务器角色将在本地传递邮件。

  • 如果 Server2 在向 Server2 上的集线器传输服务器角色提交邮件的过程完成之后出现故障,则 DB2 将在 Server1 上处于活动状态。Server1 上的集线器传输服务器角色在其检测到 Server2 上的集线器传输服务器角色不可用之后,将重新提交卷影邮件。在 Server1 上装入 DB2 之后,将在本地传递邮件。

  • 如果 Server1 在将邮件重新路由到 Server1 以进行传递之后出现故障,则 Server2 上的集线器传输服务器角色在其检测到 Server1 上的集线器传输服务器角色不可用之后,将重新提交卷影邮件,并随后在本地传递邮件。

  • 如果 Server2 在将邮件重新路由到 Server1 以进行传递之后出现故障,则 DB2 将在 Server1 上处于活动状态。在将 DB2 装入 Server1 之前,邮件将始终在 Server1 上排队,然后会在本地进行传递。

  • 如果 Server2 在邮件传递过程完成之后出现故障,则 DB2 将在 Server1 上处于活动状态。如果尚未将已传递的邮件提交到数据库,则会从 Server1 上的传输转储程序中重新传递该邮件。

外部

DB1,在 Server1 上处于活动状态

  1. Server1 上的集线器传输服务器角色会将邮件重新路由到 Server2 上的集线器传输服务器角色。

  2. Server2 上的集线器传输服务器角色将邮件传递到 Server1 上的 DB1,并将其添加到 Server2 上的传输转储程序中。

  • 如果 Server1 在其从 Edge1 接收邮件的过程完成之前出现故障,则 Edge1 将尝试将邮件传递到 Server2 上的集线器传输服务器角色。

  • 如果 Server1 在其从 Edge1 接收邮件的过程完成之后出现故障,则 Edge1 将在其检测到在 Server1 上的集线器传输服务器角色不可用之后,将邮件重新提交到 Server2 上的集线器传输服务器角色。将 DB1 装入 Server2 之后,Server2 上的集线器传输服务器角色将在本地传递邮件。

  • 将以相同的方式处理所有其他故障情况,如第一行所述。

外部

DB2,在 Server2 上处于活动状态

  1. Server1 上的集线器传输服务器角色会将邮件传递到 Server2 上的 DB2,并将邮件添加到 Server1 上的传输转储程序中。

  • 如果 Server1 在其从 Edge1 接收邮件的过程完成之前出现故障,则 Edge1 将尝试将邮件传递到 Server2 上的集线器传输服务器角色。

  • 如果 Server1 在其从 Edge1 接收邮件的过程完成之后、向 Server2 上的 DB2 传递邮件之前出现故障,则 Edge1 会将卷影邮件重新提交到 Server2 上的集线器传输服务器角色。这是因为直到 Server1 将邮件成功传递到 DB2 之后,Server1 才会向 Edge1 发送确认。由于 Edge1 尚未收到确认,因此其会在检测到 Server1 不可用之后,重新提交邮件。

  • 如果 Server2 在邮件传递过程完成之后出现故障,则 DB2 将在 Server1 上处于活动状态。如果尚未将已传递的邮件提交到数据库,则会从 Server1 上的传输转储程序中重新传递该邮件。

上表重点介绍了最低配置情形:站点中只有两台集线器传输服务器,这两台服务器与加入 DAG 的邮箱服务器角色共存。在更加复杂的部署(可使用其他专用集线器传输服务器)中,制定路由决策时仍会使用这些服务器。但是,如果您的部署规模足够大,使您能够采用专用集线器传输服务器,则最好不要在加入 DAG 的邮箱服务器上安装集线器传输服务器角色。

 © 2010 Microsoft Corporation。保留所有权利。