Exchange 群集概念

 

上一次修改主题: 2006-02-09

作者:Nino Bilic

本文涵盖了一些有关群集以及如何将群集与 Microsoft® Exchange Server 相互关联的基本概念。 文章的主要目的是提高您对群集的了解。

什么是群集服务?

基本群集概念

支持问题与解答

何时出现与 Exchange Server 或 Windows Advanced Server 相关的问题?

有关详细信息

群集服务是一种 Microsoft Windows® 服务,可以在某些版本的 Windows 操作系统上使用。 群集可用于 Microsoft Windows Server™ 2003, Enterprise Edition、Windows Server 2003, Datacenter Edition、Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 操作系统。 Windows NT® Server 4.0, Enterprise Edition 从 Service Pack 3 (SP3) 开始具有群集支持,但是本文不会提供有关 Windows NT Server 4.0 群集的详细信息。

在群集服务器上解决 Exchange Server 问题遵循的原则与在排除运行 Exchange Server 的非群集服务器的故障时所遵循的原则相同。

以下各节提供了群集概念的高级概述。

假定您有一个双节点群集。 同样的原则还将适用于超过两个节点的群集,只是随着节点数量的增加,复杂度也增加。 因此,在此示例中,从节点 A 和节点 B 开始。

在群集的 Microsoft 实现中,节点 A 和节点 B 都被连接到某种共享存储。 此共享存储必须在 SCSI 总线上,作为直接连接的存储,或作为存储区域网络 (SAN)。 在正常工作的群集中,每次只能有一个节点可以完全访问任何一个共享磁盘。 因此,如果节点 A 拥有共享存储,则节点 B 将无法查看同一磁盘。 这种在节点之间不共享资源的模式称为“无共享”群集模型。

共享磁盘实质上是一个群集服务的资源。 该资源将在其中一个资源组中。

  • 资源   资源是在群集上受管理的单一单元。群集资源包括物理硬件设备(例如,磁盘驱动器和网卡)以及逻辑项,例如,Internet 协议 (IP) 地址、应用程序和应用程序数据库。 群集中的每个节点将有其自己的本地资源,如独立服务器。 但是,群集还有公用资源,如公用数据存储数组和专用群集网络。这些公用资源可被群集中的每个节点访问。 资源可以处于联机或脱机状态。 当资源可用并且将其服务提供到群集时,资源处于联机状态。
    资源是具有以下特征的物理或逻辑实体:
    • 可以联机和脱机。
    • 可在服务器群集中进行管理。
    • 每次只可被一个节点拥有。
    资源可以相互依存(有时必须如此)。 例如,在 Microsoft Exchange 信息存储 (MSExchangeIS) 资源的情况中,资源将依赖于 Microsoft Exchange 系统助理 (MSExchangeSA) 资源。 如果 MSExchangeSA 资源处于脱机状态,MSExchangeIS 资源也将处于脱机状态,因为 MSExchangeIS 不能脱离 MSExchangeSA 运行。 请注意,MSExchangeSA 位于非群集的服务器上。 还要注意,资源不能依赖于在不同资源组中创建的资源。
  • 资源组   资源组是一个资源集合,这些资源由群集服务作为单个的逻辑单元进行管理。 通过将逻辑相关的资源分组到一个资源组,可以更容易地管理应用程序资源和群集实体。在对资源组执行群集服务操作时,该操作会影响该组中包含的所有单个资源。 通常,创建资源组是为了包含特定应用程序服务器和客户端成功使用应用程序所需的所有元素。
    例如,在运行 Exchange Server 的群集服务器上,会有一个包含 Exchange 资源(如 MSExchangeIS、MSExchangeSA、网络名称、IP 地址和磁盘)Microsoft Exchange 资源组。 通常独立服务器具有的一切都会在该资源组中。 注意,组名不是硬编码,因此 Exchange 组也可能有其他名称,这取决于创建时您对它的命名。 重点是组包含所有的 Exchange 资源。
    另外,注意组是最小的单元,可以在群集节点之间移动,或者可以故障转移到其他群集节点。 在默认情况下,某组资源的故障可能会影响整个组。 如果资源发生故障的次数达到一个特定值,整个组将移到其他节点。 默认值是每 15 分钟四次。
    这一点很重要,因为将资源组移到不同群集节点需要时间,而客户端在该时间内会出现服务中断。 这就是为什么不同应用程序的资源拥有独立资源组至关重要,因为您不希望某个资源故障影响其他资源。 例如,如果您有一个 Microsoft SQL Server™ 组和一个 Exchange Server 组,其中某个组的故障不会影响另一个组。

使用称为“群集管理器”(Cluadmin.exe) 的工具管理群集。以下是该界面的示例:

带资源标注的 Cluadmin.exe 的屏幕截图

群集服务的一项主要功能是确保具有活动群集成员身份的所有节点都具有一致的配置数据库视图。 因为节点是实际的物理计算机,它们安装了不同的 Windows 操作系统。 这意味着它们有不同的注册表。 “群集”服务需要一段时间以确保正确地同步所有群集节点上的注册表,而所有更改也会被记录到仲裁。

在群集服务器上,有一个称为“群集”的注册表配置单元,位于 HKeyLocalMachine 下。

群集注册表项 RegEdit 的屏幕截图

这就是群集服务保存集群配置信息的地方。 注册表的这个特定部分就是通过一个称为“全局更新”的进程在群集节点之间进行复制的。 当对群集配置进行更改时(例如在创建新资源时),群集服务会确保更改已经复制到群集中的所有节点或不会复制到任何一个节点。 这样,所有节点要么会了解此更改,或者如果更新其中某个节点出现问题,则更改将被回滚。

每个群集有一个特殊的资源,称为仲裁磁盘资源。

仲裁磁盘资源是一种已被配置为管理仲裁日志和群集数据库检查点的资源,通常为物理磁盘资源,包含恢复群集所需的配置数据。

当在群集配置中进行更改时,群集服务会确保让群集中所有其他节点了解更改,还确保仲裁磁盘资源的当前所有者更新仲裁驱动器上的仲裁日志。 该日志是一个显示群集配置中不同更改的事务集。 这对于存在的群集是必不可少的。 如果仲裁驱动器无法访问或已损坏,群集服务将不会启动。

下图显示了此资源在双节点群集中的外观。 每一个群集将有一个仲裁磁盘资源,而且每次只有一个节点可对其进行访问。 此时该节点是仲裁磁盘资源所有者,负责在仲裁驱动器上更新仲裁日志。

指示带有仲裁资源的 2 节点的图形

对群集配置的更新通过称为“全局更新”的进程在节点之间进行复制。 但是如果您的应用程序没有将其配置写入群集注册表怎么办? 例如,Exchange Server 和 SQL Server 将它们的信息写入不同的位置,如在 HKLM\System\CurrentControlSet\Services 的位置下。 必须有一个将复制在这些项下所做的任何更改的机制,例如,登录 Exchange 组件的诊断等级。 这里需要使用“检查点”。 当资源在其他节点上联机时(例如节点 B),其注册表信息必须与上一节点上的注册表信息相同才能使用。 群集服务的检查点管理组件会执行此项检查。

检查点被写入仲裁驱动器的 MSCS 文件夹。 将有一个由资源 GUID 命名的文件夹。 此外,因为每个资源在群集注册表中拥有一项,因此您可以精确查看正被复制的注册表路径。 例如,以下内容显示了为演示 MSExchangeSA 资源复制的注册表项。 注意,注册表路径列在注册表编辑器窗口的右窗格中。

显示群集检查点的 RegEdit 的屏幕截图

当在群集服务器上安装 Exchange Server 时,安装程序默认将仅 Exchange Server 二进制文件复制到硬盘驱动器,并在群集注册表中进行一些更改。 甚至在将 Exchange Server 安装到群集中的所有节点之后,您仍无法在 Exchange 系统管理器中看到任何更改(在非群集服务器上可以看到)。 非群集安装程序将在 Active Directory® 目录服务中创建 Exchange 服务器对象,但是群集安装程序不会安装。

当在所有节点上安装 Exchange Server 时,必须在 Exchange 资源组中手动创建 MSExchangeSA 资源。 在创建 MSExchangeSA 资源时,它将自动为您创建所有其他 Exchange 资源,如 MSExchangeIS、邮件传输代理 (MTA) 和 HTTP 虚拟服务器。 这就是服务器对象被添加到 Active Directory 配置磁盘分区的时间,因此,此后您可以从 Exchange 系统管理器中查看服务器对象。

在 MSExchangeSA 资源安装期间,其中一个步骤是提供 Exchange 数据库的位置。 在该步骤中应提供共享磁盘资源的路径,这一点至关重要。

目前已创建的所有 Exchange 资源通常称为 Exchange 虚拟服务器 (EVS)。 以下示例显示了这些资源在群集管理器中的外观。

群集管理器屏幕截图

现在 Microsoft Office Outlook® 2003 客户端应实际连接到 EVS 的名称,而不是单个群集节点的名称。 如果您检查“Exchange 组”“网络名称”资源的“属性”,则可以找到 EVS 名称。 如果客户端连接到 EVS 名称,无论当前哪个群集节点拥有“Exchange 组”,客户端访问的名称总是相同的。 这就是 Exchange Server 中群集点。 如果某个群集节点出现故障,其他的某个节点将取得 EVS 的所有权,因且客户端可以连接到相同 Exchange 服务器。 例如,客户端连接到节点 A 而不是 Exchange Server,然后节点 A 会出现故障,Exchange 服务将对这些客户端不可用。

下图显示了虚拟服务器的概念以及将虚拟服务器与实际群集节点关联的方式。 用户打开 Outlook 客户端并通过网络连接到当前属于节点 A 的 Exchange 虚拟服务器。节点 A 是控制共享磁盘(包含 Exchange 2000 Server 数据库)的节点。

EVS 的概念绘图

例如,如果节点 A 有一个硬件故障,节点 B 会意识到节点 A 出现了故障,然后会取得 Exchange 虚拟服务器和所有相关联资源的所有权。 节点 B 会取得网络名称、IP 地址、磁盘、系统助理和所有其他 Exchange 资源的所有权。 使用 Outlook 客户端登录的用户不知道出现了故障,因为他们连接到 EVS 而不是特定的物理服务器。 他们并不关心当前哪个节点拥有虚拟服务器。

EVS 节点 A 失败的概念绘图

考虑以下问题与解答:

  • 问题   什么是主动/主动和主动/被动?
    答案   主动/主动表示在双节点群集上运行两个或多个 Exchange 虚拟服务器。 两个节点可以同时运行一个或多个虚拟服务器。 主动/被动表明仅有一个 Exchange 虚拟服务器,并且在其他节点运行时其中一个节点不会运行 Exchange。 注意,主动/主动群集存在多个问题。 因此,我们不会将其推荐为可扩展的解决方案。有关详细信息,请参阅“有关详细信息”部分。
  • 问题   如何启动或停止群集上的 Exchange Server 组件?
    回答   在管理群集的 Exchange Server 时,总是使用“群集管理器”而不是“服务”程序,除非“Microsoft 知识库”文章特别指示。 如果使用“服务”程序而不是“群集管理器”,则可能会导致不可预料的结果。

在大多数情况下,群集上的 Exchange Server 故障排除方式与非群集服务器上的 Exchange Server 故障排除方式相同。 不直接涉及处理群集上 Exchange 资源的所有问题可以采用在非群集上的方式来解决。

一般情况下,如果 Exchange Server 资源存在一个问题(例如,MSExchangeSA 或 MSExchangeIS 没有联机),问题最可能属于 Exchange Server。 如果其中一个核心群集资源没有联机(例如网络名或磁盘),问题应该作为 Windows 平台群集问题进行处理。 故障转移问题通常遵循相同的准则。

使用群集日志来确定问题在何处将有明确的帮助。有关详细信息,请参阅“有关详细信息”部分。

 
显示: