切换和故障转移

适用于:Exchange Server 2013 SP1

切换和故障转移是 Microsoft Exchange Server 2013 中的两种中断形式:

  • 切换是在 Exchange 2013 中有计划地中断通过 cmdlet 或托管的可用性系统显式启动的数据库或服务器。 通常,切换是为了准备执行维护操作而执行的操作。 切换涉及到将主动邮箱数据库副本移至数据库可用性组 (DAG) 中的其他服务器。 如果在切换过程中未发现任何正常目标,管理员会收到一个错误,而邮箱数据库仍将保持工作或者装载状态。

  • 故障转移是指导致服务和/或数据不可用的意外事件。 在故障转移过程中,系统将激活被动邮箱数据库副本,使之成为主动邮箱数据库副本,从而从故障中自动恢复。 如果在故障转移过程中未发现任何正常目标,邮箱数据库将被卸载。

Exchange 2013 设计用于处理切换和故障转移。

是否要查找与高可用性和站点复原相关的管理任务? 请参阅 管理高可用性和站点复原能力

切换

Exchange 2013 中有三种类型的切换:

  • 数据库切换
  • 服务器切换
  • 数据中心切换

数据库切换

“数据库切换”是单个主动数据库切换到另一个数据库副本(被动副本)的过程,此被动数据库副本将成为新的主动数据库副本。 数据库切换在数据中心内及数据中心之间都可进行。 可以使用 Exchange 管理中心 (EAC) 或 Shell 来执行数据库切换。 无论使用哪个界面,切换过程均如下所示:

  1. 管理员启动数据库切换,以将当前主动邮箱数据库副本移至其他服务器。

  2. 用于此任务的客户端会对 DAG 成员上的 Microsoft Exchange 复制服务进行 RPC 调用。

  3. 如果 DAG 成员不具有主要活动管理器 (PAM) 角色,则 DAG 成员会将此任务转至担任 PAM 角色的服务器。

  4. 此任务对担任 PAM 角色的服务器上的 Microsoft Exchange 复制服务进行 RPC 调用。

  5. PAM 读取并更新存储在 DAG 群集数据库中的数据库位置信息。

  6. PAM 与 DAG 成员上的 Microsoft Exchange 复制服务联系,此成员的被动副本将激活为新的主动邮箱数据库副本。

  7. 目标服务器上的 Microsoft Exchange 复制服务查询其他所有 DAG 成员上的 Microsoft Exchange 复制服务以确定数据库副本的最佳日志源。

  8. 数据库从当前服务器卸除,目标服务器上的 Microsoft Exchange 复制服务将其余日志复制到目标服务器。

  9. 目标服务器上的 Microsoft Exchange 复制服务请求装入数据库。

  10. 目标服务器上的 Microsoft Exchange 信息存储服务重播日志文件,并装入数据库。

  11. 所有错误代码返回至目标服务器上的 Microsoft Exchange 复制服务。

  12. PAM 更新 DAG 群集数据库中的数据库副本状态信息。

  13. 目标服务器上的 Microsoft Exchange 复制服务将所有错误代码返回至 PAM 上的 Microsoft Exchange 复制服务。

  14. PAM 上的 Microsoft Exchange 复制服务将所有错误返回至调用任务的管理界面。

  15. 远程 PowerShell 将操作结果返回至调用管理界面。

有关如何执行数据库切换的详细步骤,请参阅激活邮箱数据库副本

服务器切换

服务器切换是将 DAG 成员上的所有主动数据库在一个或多个其他 DAG 成员上激活的过程。 与数据库切换一样,服务器切换在数据中心内及数据中心之间都可进行,通过 EMC 和命令管理程序均可启动。 无论使用哪个界面,服务器切换过程均如下所示:

  1. 管理员启动服务器切换,以将当前所有主动邮箱数据库副本移至一个或多个其他服务器。

  2. 按照本主题之前描述的数据库切换步骤,任务将对当前服务器上的每个主动数据库执行相同的步骤(步骤 2 到 4)。

  3. PAM 读取并更新存储在 DAG 群集数据库中的数据库位置信息。

  4. PAM 与每个被动副本已激活的 DAG 成员上的 Microsoft Exchange 复制服务联系。

  5. 目标服务器上的 Microsoft Exchange 复制服务查询其他所有 DAG 成员上的 Microsoft Exchange 复制服务以确定数据库副本的最佳日志源。

  6. 数据库从当前服务器卸除,每个目标服务器上的 Microsoft Exchange 复制服务复制其余日志。

  7. 每个目标服务器上的 Microsoft Exchange 复制服务请求装入数据库。

  8. 每个目标服务器上的 Microsoft Exchange 信息存储服务重播日志文件,并装入数据库。

  9. 所有错误代码返回至目标服务器上的 Microsoft Exchange 复制服务。

  10. PAM 更新 DAG 群集数据库中的数据库副本状态信息。

  11. 目标服务器上的 Microsoft Exchange 复制服务将所有错误代码返回至 PAM 上的 Microsoft Exchange 复制服务。

  12. PAM 上的 Microsoft Exchange 复制服务将所有错误返回至调用任务的管理界面。

  13. 远程 PowerShell 将操作结果返回至调用管理界面。

有关如何执行服务器切换的详细步骤,请参阅执行服务器切换

数据中心切换

在站点恢复配置中,DAG 中可进行响应站点级别故障的自动恢复,使邮件系统保持运行状态。 此配置至少需要三个位置,部署 DAG 成员需要两个位置,DAG 的见证服务器需要一个位置。

如果没有三个位置,或者即使有三个位置,但想要控制数据中心级别的恢复操作,则可以配置 DAG,以便在发生站点级故障时进行手动恢复。 在这种情况下,您可以执行称为“数据中心切换”的过程。 与很多灾难恢复方案一样,数据中心切换的前期规划和准备工作可简化恢复过程并缩短中断的持续时间。

由于 Exchange 2013 中的大量体系结构更改(包括服务器角色的合并),因此在 Exchange 2013 中执行数据中心切换比在 Exchange 2010 中更容易。 若要了解执行数据中心切换的详细步骤,请参阅数据中心切换

故障转移

故障转移是一个自动激活过程,可发生在数据库、服务器或数据中心级别上。 故障转移是对影响单个数据库的故障(例如,隔离存储丢失)、影响整个服务器的故障(例如,主板故障或断电)或影响整个站点的故障(例如,某个站点中的所有 DAB 成员丢失)的响应。

DAG 和邮箱数据库副本可提供数据以及提供数据访问权限的服务的完整冗余和快速恢复。 下表列出了各种故障的预期恢复操作。 有些故障需要管理员启动恢复,有些则由系统自动处理。

说明 自动激活 自动修复操作 修复过程中的状态:主动 修复过程中的状态:被动 修复操作 Comments
可扩展存储引擎 (ESE) 数据库软故障:存储数据库的驱动器在若干读取操作后返回错误(例如,-1018 错误)。 可能发生短时间中断。

可能执行自动故障转移。
对问题页进行自动修补。 手动切换、自动故障转移或联机修复。 失败 RAID 重建,数据库和数据库副本修复、还原并运行恢复,然后进行页面修补或者从副本进行页面修补。 另外,还可能有其他数据库软故障代码。

不包括 NTFS 文件系统块故障。

执行故障转移或者切换后,主机服务器将更新。
ESE“semi-soft”数据库故障:存储数据库的驱动器在若干写入操作后返回错误。 自动故障转移期间短时间中断。 可能需要替换驱动器,然后卷/磁盘自动重建。 如果无法恢复,则卸载。 已失败 RAID 重建可能会解决此问题。

复制和修复,还原和运行恢复,或者在可能的替换后重建卷/磁盘。
ESE semi-soft 写入错误意味着某些写入是成功的。

不包括 NTFS 块故障。
ESE"semi-soft"日志故障:存储日志数据的驱动器在若干读取或写入操作后返回非恢复错误。 自动故障转移期间短时间中断。 可能需要替换驱动器,然后卷/磁盘自动重建。 如果无法恢复,则卸载。 已失败 RAID 重建可能会解决此问题。

复制和修复,还原和运行恢复,或者在可能的替换后重建卷/磁盘。
ESE semi-soft 读取/写入错误意味着某些读取/写入是成功的。

如果数据库发生故障,则先进行自动恢复,然后开始日志数据恢复处理。
ESE 软件错误或资源耗尽:ESE 终止实例时出错(例如,事件 ID 1022,检查点深度太深)。 自动故障转移期间短时间中断。 无。 如果无法恢复,则卸载。 已失败 修复基本资源问题。 此故障可能是其他情况导致的表面错误。
NTFS 块故障:存储数据库或日志的驱动器对 NTFS 控制结构进行读写时出错。 自动故障转移期间短时间中断。 在可能更换驱动器后重新生成卷。 如果无法恢复,则卸载。 已失败 RAID 重建可能会解决此问题。 NTFS 实用程序可能会解决 NTFS 问题。 可能需要执行 Exchange 恢复。 未使用 RAID 时,更有可能发生此事件。 如果此事件影响活动日志卷,则一些最近的日志文件将丢失。

不包括由 NTFS 或其基础软件或硬件堆栈自动更正的错误。
数据库或日志驱动器故障:存储数据库或日志的驱动器已失败且无法访问。 自动故障转移期间短时间中断。 重新格式化或替换驱动器,然后完全重建卷。 如果无法恢复,则卸载。 已失败 替换驱动器后可能需要重建 RAID。

替换驱动器后完全重建卷。

完全重建卷。
不适用。
数据库或日志卷故障:由于 NTFS 或较低级别的卷问题,卷失败。 自动故障转移期间短时间中断。 重新格式化或替换驱动器。 如果无法恢复,则卸载。 已失败 替换驱动器后可能需要重建 RAID。

替换驱动器后完全重建卷。

完全重建卷。
不适用。
数据库或日志卷空间不足:包含数据库或日志文件的 NTFS 文件系统空间不足。 如果其他副本未处于类似的状态,将执行自动故障转移。 无。 已卸除。 Failed 运行完整或增量备份,手动删除日志,经过一段时间后,恢复数据库副本或者修复发生故障的数据库副本。 不适用。
管理员卸除错误的数据库。 如果管理员未阻止自动故障转移,将会发生短时间中断。

如果阻止了自动故障转移,将会发生中断,直至卸除数据库。
无。 已卸除。 不适用 管理员更正错误。 不适用。
管理员挂起错误的数据库副本。 自动恢复可能会被阻止,具体取决于配置和受影响的副本。 无。 不适用。 已挂起 管理员更正错误。 不适用。
管理员卸除数据库以对存储、NTFS 或卷进行维护。 如果管理员未阻止自动故障转移,将会发生短时间中断。

如果阻止了自动故障转移,将会发生中断,直至管理员完成任务。
无。 已卸除。 不适用 管理员完成任务。 不适用。
管理员挂起数据库副本以对存储、NTFS 或卷进行维护。 自动恢复可能会被阻止,具体取决于配置和受影响的副本。 无。 不适用。 Suspended 管理员完成操作。 不适用。
管理员卸除数据库以对数据库进行脱机维护。 修复之前一直中断。 无。 已卸除。 Suspended 管理员完成操作。 主动数据库副本和被动数据库副本是不同的。

管理员必须挂起副本。
存储区域网络 (SAN)、磁盘或存储控制器故障。 自动故障转移期间短时间中断。 无。 已卸除。 任意 修复硬件。 被动数据库副本的状态将与系统发生故障时所处状态相同。
服务器硬件维护。 自动故障转移期间短时间中断(除非管理员阻止自动故障转移)。 无。 已卸除。 任意 完成操作。 被动数据库副本的状态将与系统关闭时所处状态相同。
服务器软件维护。 自动故障转移期间短时间中断(除非管理员阻止自动故障转移)。 无。 已卸除。 任意 完成操作。 被动数据库副本的状态将与系统关闭时所处状态相同。
Microsoft Exchange 信息存储服务已停止或已由管理员暂停。 自动故障转移期间短时间中断。 无。 已卸除。 任意 重新启动 Microsoft Exchange 信息存储服务。 不适用。
Microsoft Exchange 信息存储服务失败;操作系统仍在运行。 自动故障转移期间短时间中断。 服务控制管理器重新启动 Microsoft Exchange 信息存储服务。 已卸除。 任意 手动或自动重新启动 Microsoft Exchange 信息存储服务。 被动数据库副本的状态将与 Microsoft Exchange 信息存储服务失败时所处状态相同。
部分 Microsoft Exchange 信息存储服务失败;Exchange 存储的某些部分停止运行,但未标识为失败。 自动故障转移期间可能发生短时间中断。 无。 已装入而且仅有部分正常工作。 任意,但可能仅有部分正常工作 重新启动服务器、操作系统或 Microsoft Exchange 信息存储服务。 不适用。
服务器故障:服务器因下列原因之一而发生故障:
  • 电源完全中断
  • 处理器芯片、主板或底板发生非恢复故障
  • 操作系统停止错误
  • 操作系统停止响应
  • 通信完全中断
自动故障转移期间短时间中断。 重新启动计算机。 已卸除。 任意 恢复电源,更改操作系统设置,更改硬件设置,替换硬件,重新启动操作系统,维修操作系统,维修硬件或修复通信问题。 不适用。
DAG 遇到仲裁故障。 修复之前一直中断。 无。 已卸除。 任意 修复失败的仲裁,分配新的仲裁或者还原导致仲裁失败的网络。 被动数据库副本的状态将与系统发生故障时所处状态相同。
MAPI 网络通信故障:服务器在 MAPI 网络上不再可用。 自动故障转移期间短时间中断;肯定无损失。 无。 继续尝试通信。 已卸除。 任意 通过更正硬件或软件问题修复通信问题。 不适用。
复制网络通信故障:服务器无法通过发生故障的复制网络接收检测信号、日志副本或种子。 工作负荷切换到其他网络时可能发生短时间的复制或种子设定中断。 无。 继续尝试通信。 无。 任意 通过更正硬件或软件问题修复通信问题。 故障会影响恢复能力。
多个网络通信故障:服务器无法通过多个网络接收检测信号、日志副本或种子。 自动故障转移期间短时间中断;肯定无损失。 无。 继续尝试通信。 已卸除。 任意 通过更正硬件或软件问题修复通信问题。 至少有一个网络仍然可用。
一个或多个网络出现部分故障:网络出现高错误率。 未检测到故障;无操作。 无。 已装入,但可能发生性能问题。 任意 通过更正硬件或软件问题修复通信问题。 网络出现高于正常的错误率。
未检测到的操作系统挂起:操作系统停止响应,但监视或群集不会检测到它。 无。 无。 任意。 任意 重新启动或终止不响应的资源。 未检测到挂起,因此未执行任何操作。

某些功能也许可用。
操作系统驱动器发生故障。 自动故障转移期间短时间中断。 无。 已卸除。 任意 替换驱动器并重建服务器或使用 RAID 重建卷。 不适用。
操作系统驱动器空间不足。 自动故障转移期间短时间中断。 无。 已卸除。 任意 手动释放卷上的空间。 不适用。
包含 Exchange 二进制文件的驱动器遇到卷或驱动器故障。 自动故障转移期间短时间中断。 无。 已卸除。 任意 替换驱动器并重新安装应用程序或使用 RAID 重建卷。 不适用。
包含 Exchange 二进制文件的驱动器空间不足。 自动故障转移期间短时间中断。 无。 已卸除。 任意 手动释放卷上的空间。 不适用。
检测到无效的新日志:日志序列被现有文件破坏。 自动故障转移期间短时间中断;假定其他副本不存在同一问题。 无。 已卸除。 Failed 确定源之后删除问题日志。 问题日志不应进行复制。
连续复制过程中检测到无效的日志:在复制或重播过程中重播检测到不当日志。 不适用。 丢弃日志。 不适用。 Failed 丢弃无效日志;移动产生影响的日志流。 不适用。

数据库故障转移

数据库故障转移发生在主动数据库副本无法再保持主动状态的情况下。 以下事件是数据库故障转移的一部分:

  1. Microsoft Exchange 信息存储服务检测到数据库故障。

  2. Microsoft Exchange 信息存储服务将失败事件写入 crimson 通道事件日志。

  3. 包含故障数据库的服务器上的活动管理器检测到失败事件。

  4. 活动管理器向存放数据库副本的其他服务器请求数据库副本状态。

  5. 其他服务器向发出请求的活动管理器返回所请求的数据库副本状态。

  6. PAM 使用最佳副本选择算法启动操作,将主动数据库移至 DAG 中的其他服务器。

  7. PAM 更新群集数据库中的数据库装入位置,以指向所选的服务器。

  8. PAM 向所选服务器上的活动管理器发送请求,请求成为数据库主机。

  9. 所选服务器上的活动管理器请求 Microsoft Exchange 复制服务尝试从先前的服务器复制最后生成的日志并且为数据库设置可装入标记。

  10. Microsoft Exchange 复制服务从先前拥有数据库主动副本的服务器上复制日志。

  11. 活动管理器从群集数据库读取最大的日志生成编号。

  12. Microsoft Exchange 信息存储服务装入新的活动数据库副本。

服务器故障转移

当 DAG 成员无法再为 MAPI 网络提供服务,或者 DAG 成员上的群集服务无法再与其余 DAG 成员联系时,会发生服务器故障转移。 以下事件是服务器故障转移的一部分:

  1. PAM 上的群集服务因以下两种情况之一向 PAM 发送通知:

    1. 节点关闭:服务器可访问,但无法参与 DAG 操作。
    2. MAPI 网络关闭:无法通过 MAPI 网络联系服务器,因此无法参与 DAG 操作。
  2. 如果可以访问服务器,PAM 将联系受影响服务器上的活动管理器,请求立即卸除所有数据库。

  3. 对于每个受影响的数据库副本:

    1. PAM 向 DAG 中所有服务器请求数据库副本状态。
    2. PAM 收到所有可访问的活动 DAG 成员的响应。
    3. PAM 尝试通过查询每个响应方最近的日志生成编号,在所有响应的服务器中确定最佳日志源。
    4. 每个服务器以日志生成编号进行响应。
  4. PAM 从群集数据库中检索当前搜索索引编录状态。

  5. 根据每个数据库副本的日志生成编号和编录运行状况,PAM 选择最佳副本进行激活。

  6. PAM 更新群集数据库中的数据库装入位置。

  7. PAM 与一个或多个其他服务器上的活动管理器进行通信,以此来启动数据库故障转移。

  8. 所选服务器上的活动管理器请求 Microsoft Exchange 复制服务尝试从先前的服务器复制最后生成的日志并设置可装入标记。

  9. 如果数据库可装入,服务器上的活动管理器将装入数据库。

有关活动管理器最佳复制选择过程的详细信息,请参阅活动管理器

数据中心故障转移

在 Exchange 2013 中进行了重大变更以应对 Exchange 2010 站点恢复配置面临的挑战。 由于进行了命名空间简化、服务器角色合并、客户端访问服务器分离和 DAG 恢复(在 Exchange 2013 中,命名空间不需要随着 DAG 移动),以及围绕负载平衡的更改,Exchange 2013 提供新的站点恢复选项,如使用单个全局命名空间的能力。 此外,如果你有两个以上的位置来部署消息传送服务组件,Exchange 2013 还会启用消息传送服务的配置,以便自动故障转移,以响应需要在 Exchange 2010 中手动干预的故障。

在 Exchange 2013 中,站点恢复的操作性得到了简化。 Exchange 通过多个 IP 地址、负载均衡 (应用内置于命名空间中的容错能力,并在需要时应用将服务器引入和退出服务的功能) 。 我们在 Exchange 2013 中所做的最重大更改之一是使用客户端的功能来缓存从 DNS 服务器返回的多个 IP 地址,以响应名称解析请求。 假设客户端能够缓存多个 IP 地址(几乎所有的 HTTP 客户端都可以,并且由于 Exchange 2013 中的几乎所有客户端访问协议都基于 HTTP(Outlook、Outlook 无处不在、EAS、EWS、OWA、EAC、RPS 等),所有受支持的 HTTP 客户端都能够使用多个 IP 地址),因此可在客户端提供故障转移。 可以配置 DNS 以在名称解析过程中将多个 IP 地址传递给客户端。 例如,客户端会请求 mail.contoso.com 并取回两个 IP 地址(或四个 IP 地址)。 但是,客户端返回的许多 IP 地址将由客户端可靠地使用。 这种最佳利用率使客户端变得更好,因为如果其中一个 IP 地址失败,则客户端有一个或多个其他 IP 地址要尝试连接到。 如果客户端尝试一个地址但是该地址失败,则它会等待大约 20 秒,然后尝试列表中的下一个地址。 因此,如果您与主 CAS 阵列断开连接,而您有针对另一个 CAS 阵列有另一个发布的 IP 地址,客户端将自动恢复(在大约 21 秒后)。

新式 HTTP 客户端 (十年或更短的操作系统和 Web 浏览器,) 自动使用此冗余。 HTTP 堆栈可以接受 FQDN 的多个 IP 地址,如果尝试的第一个 IP 失败,例如, (无法连接) ,它将尝试列表中的下一个 IP。 在软故障 (会话建立后连接丢失,例如,由于服务中的间歇性故障,例如,设备丢弃数据包,需要从服务) 中取出,用户可能需要刷新其浏览器。

借助正确的配置,故障转移会在客户端级别进行,并且客户端会自动重定向到正在运行客户端访问服务器的另一个数据中心,这些正在运行的客户端访问服务器会将通信代理发送回用户的邮箱服务器,因此该邮箱服务器不会受中断影响(因为您未执行切换)。 服务会自行恢复,而不是恢复服务,你可以专注于解决核心问题 (例如替换故障的负载均衡器) 。

由于可以在数据中心之间故障转移命名空间,因此实现数据中心故障转移所需的只是跨数据中心故障转移邮箱角色的机制。 若要获取 DAG 的自动故障转移,请构建一个解决方案,其中 DAG 在两个数据中心之间均匀拆分,然后将见证服务器放在第三个位置,以便无论包含 DAG 成员的数据中心之间的网络状态如何,都可以由两个数据中心的 DAG 成员进行仲裁。 关键在于第三个位置被从影响包含 DAG 成员位置的网络故障中分离出来。

如果您只有两个数据中心,并想要能够配置自动故障转移,则可以将 Microsoft Azure 作为您的第三个位置。 您将需要创建 Azure 虚拟网络,并使用多点 VPN 将其连接到您的两个数据中心。 然后,您就能够将见证服务器放置到 Microsoft Azure 虚拟机上。 有关详细信息,请参阅使用 Microsoft Azure VM 作为 DAG 见证服务器