工程师的话 Exchange Server 2003群集充分利用了 Windows 的高可靠性,实现了自身高级别的可用性。但在Exchange群集技术支持工作中,我发现由于客户使用不当或在一些特殊的软硬件配置的条件下,Exchange Server 2003群集会很不稳定或效率很低。在这里,我把Exchange Server 2003群集中最常见的问题和大家分享,希望能够帮助您引以为鉴,配置出稳定高效的Exchange Server 2003群集。
安装Exchange Server 2003群集的常见问题
在Exchange 5.5站点中安装的Exchange Server 2003 群集不能同步Exchange 5.5的配置信息?
安装Exchange Server 2003 群集不外乎两种情况,一种是直接安装全新的Exchange Server 2003 群集,另一种则是从低版本的Exchange服务器升级。如果您在从Exchange 5.5服务器升级时,把Exchange Server 2003群集安装在Exchange 5.5的组织中,那么这个Exchange Server 2003群集必定不能和Exchange 5.5服务器通过Active Direcotry Connector(ADC)进行同步。原因是Exchange Server 2003和Exchange 5.5服务器间不可或缺的一个同步组件,Site Replication Service(SRS),是不能运行在Exchange Server 2003群集上的。我们推荐的升级做法是:首先,安装一台单独的Exchange Server 2003服务器并把它加入Exchange 5.5组织,使得SRS运行在这台Exchange Server 2003服务器上,然后,安装Exchange Server 2003群集并把Exchange虚拟服务器也加入这个Exchange组织。 如果您已经把Exchange Server 2003 群集Exchange虚拟服务器也加入了Exchange 5.5组织,唯一的解决方法是移除这个Exchange Server 2003群集,并按照推荐方法重新安装。
在创建Exchange System Attendant(系统助理)资源后,为什么IMAP4 和 POP3 资源没有自动生成?
为了提高安全性,在运行 Windows Server 2003 的服务器上默认情况下不再启用 Windows IMAP4 和 POP3 协议服务。同样,在创建 Exchange Server 2003 虚拟服务器时,默认情况下不再创建 IMAP4 和 POP3 协议资源。 提示:类似地,在独立的Exchange Server 2003服务器中,IMAP4 和 POP3 协议服务在默认状态下也是被禁止的。 如果要启用其中的任意一种协议,必须执行下列操作: %26#8226; 在将运行具有 IMAP4 或 POP3 资源的 Exchange 虚拟服务器的那些群集节点上启用 Windows IMAP4 或 POP3 服务。为了确保该服务在群集情况下正确工作,还必须将服务配置为手动启动。 %26#8226; 分别将 IMAP4 或 POP3 虚拟服务器作为资源手动添加到要在其上启用所选协议的每个 Exchange 虚拟服务器,然后将该资源联机。
在多个Exchange虚拟服务器的情境中,为什么有的虚拟服务器没有Message Transfer Agent(MTA)resource资源?
确切地说,在每一个Exchange Server 2003群集中,应该只有一个Message Transfer Agent(MTA)资源。从技术上讲,Exchange Server 2003群集对于MTA组件来说是透明的。通俗地说,MTA并不知道Exchange Server 2003群集的存在。有关此问题的详细信息,我建议大家参看下面的微软知识库文章: There is only one MTA resource per Exchange 2000 Server cluster or Exchange Server 2003 cluster http://support.microsoft.com/kb/329235
在安装Exchange Server 2003时,出现错误信息:由于COM+ 问题而导致Exchange安装程序无法工作,错误代码为 0xc103798a。
0xc103798a是一个比较常见的错误代码。产生这个错误的原因主要有两个方面:一是微软分布式事务协调器服务(MS DTC)没有启动,二是COM+ 目录已损坏。详细的解决方法本文略去,请参见下面的微软知识库文章:由于 COM+ 问题而导致 Exchange 安装程序无法工作,错误代码为 0xc103798a http://support.microsoft.com/kb/318731
有一点需要说明的是,基于我的经验,大多数情况下,重新安装COM+可以解决这个问题。但在极少数情况下,只有重新安装Windows才能解决这个问题。 创建Exchange System Attendant(系统助理)资源时,报告下述错误信息: “access is denied. Facility: Win32 ID no: c0070005 Microsoft Exchange Cluster Administrator Extension”
在我技术支持工作中,遇到Access is denied问题的客户环境一般有两个地方配置不正确。一是Remote Registry Service没有运行,二是登录用户对注册表没有远程访问(remote access)权限。因此,解决方法是:第一,确认Remote Registry Service已经运行。第二,通过注册表授予权限,其方法是:在注册表编辑器中,找到下面的注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg 点击鼠标右键,并选择Permissions。按照下表设定权限:
Type
Name
Permission
Apply to
Allow
Administrator
Full Control
This key only
Allow
Administrators
Full Control
This key and subkeys
Allow
Backup Operators
Read
This key only
Allow
Domain Admins
Full Control
This key only
Allow
EnterPRise Admins
Full Control
This key only
Allow
EXCHANGE$
Full Control
This key only
Allow
Exchange Domain Servers
Read
This key only
Allow
LOCAL SERVICE
Read
This key and subkeys
创建Exchange System Attendant(系统助理)资源时,为什么有些群集结点不能设定为系统助理资源的所有者(owner)?
这是因为:不能作为系统助理资源的所有者(owner)的节点没有安装Exchange的安装文件。在Exchange Server 2003 群集中,MsExchange_NodeState注册表键值标明在所有Windows群集的节点中,有哪些已经安装了Exchange的安装文件,以及安装文件的版本号。Exchange Server 2003群集使用这个注册表键值来计算群集中可容纳Exchange虚拟服务器的数目。如果试图把MsExchange_NodeState = 0的群集节点作为Exchange系统助理的所有者,您将看到下面的错误信息: An error occurred attempting to add node "" as a possible owner of the "" resource. The specified node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL of this node. Error ID: 5079 (000013d7).
维护Exchange Server 2003群集的常见问题
在Exchange Server 2003群集上安装更新后,Exchange虚拟服务器只能在一个节点上联机。
作为一名管理员,一个重要的工作就是保持各个服务器更新到最新版本。而应当注意的是,在Exchange Server 2003群集上安装更新与在独立的Exchange Server 2003上安装有很大的区别。不同更新的安装步骤类似,具体步骤您可以参考以下微软知识库文章:如何在群集 Exchange 环境中安装 Exchange Server 2003 Service Pack 1 http://support.microsoft.com/kb/867624
根据我的经验,更新的安装还是比较稳定的。如果出现了下列问题:即第9步“Exchange 虚拟服务器 1”无法升级;或者,第10步,成功升级“Exchange 虚拟服务器 1”后,在“群集节点 2”上,Exchange系统助理资源无法联机。在这种情况下,我们建议您把该群集组中所有资源脱机。并在“群集节点 1”上安装更新,在安装结束后,仅保持IP 地址资源、物理磁盘资源和网络名称资源联机,并在原来的主动节点上升级“Exchange 虚拟服务器 1”。
在Exchange Server 2003上安装Windows Server 2003 Service Pack 1后,Outlook Web Access(OWA)和Outlook可能无法连接到Exchange Server 2003 server。
在Exchange server 2003上安装Windows Server 2003 Service Pack 1有一些已知问题。这个问题是其中之一。针对这些问题微软已经发布了补丁程序。如下知识库文章所示:
Installing security update MS05-019 or Windows Server 2003 Service Pack 1 may cause network connectivity between clients and servers to fail http://support.microsoft.com/kb/898060/
"500 - Internal server error" error message when a user tries to access a clustered Exchange Server 2003 back-end server by using Outlook Web Access http://support.microsoft.com/kb/841561
此外,还有许多解决Exchange Server 2003 Service Pack 1遗留的问题的补丁程序,它们都包含在Exchange Server 2003 Service Pack 2中。Exchange Server 2003 Service Pack 2不但修复了这些遗留问题,而且在移动功能、反垃圾邮件等功能上做了很大的改进。更重要的是Exchange Server 2003 Service Pack 2把Exchange Server 2003标准版存储的16GB限制提高到75GB,给标准版的用户带来了福音。在2005年10月19日,Exchange Server 2003 Service Pack 2正式发布,建议大家尽快更新您的Exchange Server 2003 Cluster到Service Pack 2。
Exchange Server 2003 群集完全坏了,但邮件存储和公共文件夹存储还在,如何用Setup /disasterrecovery恢复Exchange Server 2003 Cluster?
答案是否定的。在Exchange Server 2003 Cluster上是不能够使用Setup /disasterrecovery的方法来恢复Exchange Server 2003 Cluster的。这是因为,当单独的Exchange Server 2003服务器不能联机时,这台Exchange Server 2003服务器在活动目录中的配置信息仍然存在。使用Setup /disasterrecovery的方法来恢复这台Exchange Server 2003服务器时,安装程序会从活动目录中读取Exchange Server 2003服务器的配置信息,从而恢复这台Exchange Server 2003服务器。在Exchange Server 2003 群集中,虽然在Exchange 虚拟服务器不能联机时,其配置信息也存储在活动目录中,但在Exchange Server 2003 群集中运行的安装程序只负责拷贝文件而不会从活动目录中读取信息,致使Setup /disasterrecovery的操作不能成功。那么在这种灾难恢复的情境中,应该是用什么方法来恢复Exchange Server 2003 Cluster呢?下面的方法是推荐使用的:从群集中移除Exchange虚拟服务器。运行cluadmin.exe,找到Exchange虚拟服务器的群集组,删除IP地址资源。在活动目录中移除Exchange虚拟服务器对象。运行Adsiedit.msc,通过如下路径找到CN=,并将其删除: %26#8226; "Configuration Container" %26#8226; "CN=Configuration, DC=,DC=com" %26#8226; "CN=Services" %26#8226; "CN=Microsoft Exchange " %26#8226; "CN=" %26#8226; "CN=Administrative Groups" %26#8226; "CN=" %26#8226; "CN=Servers" 删除所有用户的Exchange属性。运行Dsa.msc,选择所有启用邮箱的用户,在Exchange Tasks中,选择Remove Exchange Attributes。在域中,安装一台新的Exchange Server 2003服务器,并保持服务器名和原来的Exchange 虚拟服务器名称相同。安装最新的Service Pack。如果当前的存储组及存储的名称和原来的Exchange 虚拟服务器名称不尽相同,则创建名称相同的存储组和存储。卸除(dismount)所有存储,删除Drive :\Program Files\Exchsrv\MDBData中的文件,并把备份的MDBData文件夹中的数据拷贝到新Exchange Server 2003服务器的MDBData文件夹中,并重新装载(mount)所有存储。 欲获得更多的Exchange Server 2003灾难恢复信息,请参见下面的白皮书: Exchange Server 2003 灾难恢复操作指南 http://www.microsoft.com/downloads/details.aspx?FamilyID=a58f49c5-1190-4fbf-aede-007a8f366b0e%26amp;DisplayLang=zh-cn
为什么试图把所有Exchange资源移动到其它的群集组时,群集管理器提示这个操作必须移动群集组里面所有资源?
我们推荐在群集服务中创建群集组时,为仲裁磁盘资源单独创建群集组,以便为该群集提供容错能力;并且,为所有Exchange资源创建单独的群集组,在该群集组中,为Exchange虚拟服务器创建单独的共享磁盘资源。这样,如果某个硬盘发生故障,其它群集组中的群集资源就不会受到影响。但是,有的客户会把仲裁磁盘资源和所有Exchange资源创建在同一个群集组中。当他发现这样做有些不妥,想把ExchangeSystem Attendant(系统助理)资源移动到他新创建的群集组时,会看到如图1的提示:
图1:试图移动群集资源
图2:试图移动当前群集组中所有资源 %26#61548;
如图2所示,群集管理器试图移动当前群集组中所有资源。这是必然的,因为移动群集资源的时候,和该群集资源具有依存关系的资源都将被移动,即,包括仲裁磁盘在内的群集组中的所有资源都将被移动。在这种情况下,由于当前的Exchange虚拟服务器已经在运行,移除它并在另一个群集组中重新创建一个Exchange虚拟服务器也是行不通的。因此,我们强调在部署Exchange Server 2003群集的时候一定要注意以下事项:%26#61548; 在群集服务中创建群集组时,请为仲裁磁盘资源单独创建群集组,以便为该群集提供容错能力。%26#61548; 将每个群集组自己的一组物理硬盘分配给该群集组中的群集资源。这样,如果某个硬盘发生故障,其它群集组中的群集资源就不会受到影响。%26#61548; 使用不同的物理硬盘来分别存储 Exchange 虚拟服务器的事务日志文件和数据库文件。使用不同的硬盘可防止单个硬盘的故障将Exchange虚拟服务器的日志文件和数据库文件删除。此建议也适用于Exchange独立服务器。%26#61548; 如果您已经将仲裁磁盘资源和所有Exchange资源创建在同一个群集组中,我们建议您保持当前的配置,这是因为解决方法非常耗时而且具有一定风险。在这种情况下移动Exchange资源的方法是:重新创建一个Exchange虚拟服务器,迁移在原先Exchange虚拟服务器上的所有数据到新的Exchange虚拟服务器,最后移除原先的Exchange虚拟服务器。
移除Exchange Server 2003群集常见的问题
使用Exchange 2000的方法移除Exchange Server 2003的Exchange虚拟服务器问题的解决
在Exchange 2000群集中,移除一个Exchange虚拟服务器只需要简单的删除Exchange系统助理资源就可以了。这将自动删除所有Exchange 2000群集的资源,并且把该Exchange虚拟服务器在活动目录中的信息一并移除。 在Exchange Server 2003群集中,我们必须通过右击包含Exchange虚拟服务器的群集组或者右击Exchange系统助理资源,然后点击移除Exchange虚拟服务器的方法来移除Exchange虚拟服务器。这是因为,在Exchange Server 2003群集中,群集组的属性MSExchange_VirtualServerName标明了该群集组中拥有一个Exchange虚拟服务器。而且,只有使用上述方法才能够把这个属性置为空。我们可以用如下命令来访问这个属性: Cluster group myGroup /priv MSExchange_VirtualServerName没有被置为空时,您将看到如图3所示页面:
图3:MSExchange_VirtualServerName被置为空时,您将看到如图4所示页面: 图4 如果使用Exchange 2000的方法移除Exchange Server 2003的Exchange虚拟服务器,您将连续看到资源被删除的两个警告信息。如果您全部选择了“Yes”并删除了Exchange系统助理资源,您将在事件查看器中看到MSExchangeCluster报告的1027的错误,其描述中指出Exchange系统助理资源被不正确地删除,而活动目录中Exchange虚拟服务器对象还没有移除。解决这个问题,您可以重建Exchange系统助理资源。在重建的过程中,注意管理组、路由组以及数据目录的选项卡还可以看到,但是由于他们的信息已经存在于活动目录中,它们是不允许修改的。移除Exchange虚拟服务器是常见的错误信息错误信息一:
图5 在试图移除Exchange虚拟服务器以前,必须删除或迁移所有非系统邮箱,否则,您将看到如图5这条错误信息。 在某些情况下,您可能在“Exchange系统管理器/管理祖//邮箱存储/邮箱”中看不到任何非系统邮箱,但仍然会收到这条错误信息。这很可能是由于:您创建了一些启用邮箱的用户,然而有些邮箱从来没有被使用过,也就是该邮箱没有被登录过也从未收到过任何信件。这个时候该用户的邮箱并没有被创建出来,所以在邮箱存储/邮箱中看不到该用户的邮箱。但是这个时候,这条错误信息会报告出来。解决办法是:用ADSIEdit、CSVDE或者LDIFDE等工具查找所有用户对象的msExchHomeServerName属性。如果您发现某个用户对象msExchHomeServerName属性值含有您要移除的Exchange虚拟服务器的名字,那么移除所有此类用户的邮箱就可以解决这个问题。错误信息二:
图6 移除Exchange虚拟服务器要求包括Exchange系统助理在内的所有Exchange资源脱机。如果看到图6这条错误信息,请检查是否Exchange系统助理仍处于联机状态。错误信息三: This Exchange Virtual Server can not be removed because it is responsible for the MTA protocol service. There are other Exchange Virtual Servers in this cluster that depend on the MTA protocol service which is hosted by this Exchange Virtual Server service. Facility: Microsoft Exchange Cluster Administrator Extension ID no: c103fd2b Microsoft Exchange Cluster Administrator Extension 看到这条错误信息,请立即停止移除当前Exchange虚拟服务器的操作,因为这条错误信息表明当前Exchange虚拟服务器拥有群集中其它Exchange虚拟服务器需要访问的邮件传输代理(MTA)资源。到目前为止,Exchange群集还不支持在Exchange虚拟服务器间迁移邮件传输代理(MTA)资源。因此,唯一的解决方法是把另一个Exchange虚拟服务器中所有的邮箱迁移到拥有MTA资源的Exchange虚拟服务器中来,并移除另一个Exchange虚拟服务器。
结束语 众所周知,Exchange Server 2003群集非常复杂,很难用几千字把所有问题概括清楚。以上是笔者在Exchange Server 2003群集技术支持工作中总结的一点经验。希望这些知识能对您的工作有所帮助,也希望它能让您的Exchange Server 2003群集更加稳定、高效。
Windows Server 2003 Clustering资源列表
168948 Information About the Cluster Group(英文)
http://support.microsoft.com/kb/168948
280345 Quorum Drive Configuration Information(英文)
http://support.microsoft.com/kb/280345
171277 Information About Microsoft Cluster Server Cluster Resource Failover Time(英文)
http://support.microsoft.com/kb/171277
283715 The Features of the Local Quorum Resource on Windows Server 2003 Clusters(英文)
http://support.microsoft.com/kb/283715
301600 How to Configure Microsoft Distributed Transaction Coordinator on a Windows Server 2003 cluster(英文)
http://support.microsoft.com/kb/301600
258750建议在群集服务器上使用的专用“检测信号”配置(中文)http://support.microsoft.com/kb/258750
815616群集磁盘驱动器号意外更改(中文)
http://support.microsoft.com/kb/815616
HCL/Windows Catalog: (英文)
http://www.microsoft.com/whdc/hcl/default.mspx
Step by step guild to install a cluster: (英文)
http://www.microsoft.com/windows2000/techinfo/planning/server/clustersteps.asp
266274 How to Troubleshoot Cluster Service Startup Issues(英文)
http://support.microsoft.com/kb/266274
174799 How to Install Service Packs in a Cluster(英文)
http://support.microsoft.com/kb/174799
269229 How to Manually Re-Create the Cluster Service Account(英文)
http://support.microsoft.com/kb/269229
216964如何远程管理服务器群集(中文)
http://support.microsoft.com/kb/216964
Windows Server 2003 群集中可用的功能(中文)
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;278007
Exchange Server 2003 Clustering资源列表
规划 Exchange Server 2003 邮件系统(第 6 章“规划高可用性”中的“使用服务器群集”)(中文)
http://www.microsoft.com/downloads/details.aspx?FamilyID=9fc3260f-787c-4567-bb71-908b8f2b980d%26amp;DisplayLang=zh-cn
Exchange Server 2003 部署指南(第 7 章“在群集中部署 Exchange Server 2003”)(中文)
http://www.microsoft.com/downloads/details.aspx?FamilyID=77B6D819-C7B3-42D1-8FBB-FE6339FFA1ED%26amp;DisplayLang=zh-cn
Exchange Server 2003 管理指南(第 8 章 “管理 Exchange 群集”)(中文)
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn%26amp;FamilyID=98E45481-1458-4809-97D6-50D8AEEBD8A1
微软中国Exchange主页(中文)
http://www.microsoft.com/china/exchange/default.mspx
微软全球Exchange主页(中文)
http://www.microsoft.com/exchange/default.mspx
Microsoft Exchange Server 技术中心(中文)
http://www.microsoft.com/china/technet/prodtechnol/exchange/default.mspx
Exchange Server 2003 技术文档库(中文)
http://www.microsoft.com/china/technet/prodtechnol/exchange/2003/library/default.mspx
Exchange微软新闻组(中文)
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.cn.exchangeserver%26amp;cat=zh_CN_c88b407e-09bd-4c40-841e-828510c57206%26amp;lang=zh%26amp;cr=CN
Exchange Cluster微软新闻组(英文)
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.exchange.clustering%26amp;cat=en_US_13939a8b-9c9c-479a-a002-f97f6e654926%26amp;lang=en%26amp;cr=US
There is only one MTA resource per Exchange 2000 Server cluster or Exchange Server 2003 cluster(英文)
http://support.microsoft.com/Default.aspxkb/329235
在“主动/主动”群集上部署 Exchange 时的注意事项(中文)
http://support.microsoft.com/kb/815180
How to restore an information store database in a clustered Exchange environment(英文)
http://support.microsoft.com/kb/303949
如何在群集服务器上配置卷装入点(中文)
http://support.microsoft.com/kb/280297
Status of Exchange 2000 Server and Exchange Server 2003 Components on a Server Cluster(英文)
http://support.microsoft.com/kb/259197
How to implement Exchange Server 2003 on a Windows 2000-based cluster or on a Windows Server 2003-based cluster(英文)
http://support.microsoft.com/kb/895981
Windows Clustering is not supported on front-end servers in Exchange Server 2003(英文)
http://support.microsoft.com/kb/837852
How to upgrade Exchange 2000 Server to Exchange Server 2003 in an active/passive clustered environment by doing a clean installation of Windows Server 2003(英文)
http://support.microsoft.com/kb/842427
Setup Stops Responding When You Upgrade Multiple Exchange Server Virtual Servers at the Same Time(英文)
http://support.microsoft.com/kb/822582
如何在运行于 Windows Server 2003 服务器群集上的 Exchange Server 2003 后端服务器上配置 IPSec(中文)
http://support.microsoft.com/kb/821839
Exchange 2000 Server 与 Exchange Server 2003 中所需的群集服务帐户权限不同(中文)
http://support.microsoft.com/kb/821834
Exchange Server 2003 中 Exchange 群集资源的依存关系(中文)
http://support.microsoft.com/kb/821833
How to create an IMAP4 or a POP3 cluster resource on an Exchange Server 2003 virtual server(英文)
http://support.microsoft.com/kb/824127
POP3 And IMAP4 cluster resources are not created when you create a new Exchange Virtual Server cluster(英文)
http://support.microsoft.com/kb/818480