尽管在Windows Server 2008上配置群集连续复制(CCR)与在Windows Server 2003上的配置过程类似,但还是有一些明显差别。在配置CCR之前,我们推荐你完整地阅读《群集连续复制》一文。另外,还要确保事先满足《部署群集连续复制》一文中的所有要求。
在Windows Server 2008上安装CCR要完成以下几个步骤:
1. 配置硬件安装,启动群集网络构造与配置过程。
2. 构造群集,依次生成第一、第二个节点。
3. 配置群集网络和丢失群集心跳的容限。
4. 配置并保护文件共享见证。
5. 设置群集活动及非活动的邮箱服务器角色。在活动邮箱服务器角色的设置过程中,
群集邮箱服务器(CMS)将被创建。
注意:
我们推荐完成每一步骤之后再进行下面的步骤。完成所有步骤后,在应用之前最好验证一下CCR解决方案的有效性。
安装完成后,还要进行下面的任务:
· 调整故障转移的控制设置。
· 调整传输dumpster的默认配置。
· 验证在群集节点间移动CMS的能力。
· 使连续复制活动的多网络选项有效。
在开始任何上面所提到的步骤之前,你必须首先确保目标电脑已安装Windows Server 2008所需的操作系统组件。至于在Windows Server 2008上安装微软Exchange必要组件的具体步骤,请看《如何在Windows Server 2008上安装Exchange 2007 SP1的必要组件》一文。
下面的部分将详细解释安装过程的每一步骤。
网络构造和配置
在Windows Server 2008的2个节点的CCR环境中创建CMS时,你必须有足够数量的可用IP地址。与遗留群集明显不同的是,Windows Server 2008故障转移群集提供了新的组网能力。举例来说,Windows Server 2008故障转移群集提供了对多子网,动态主机配置协议(DHCP),IPv4及IPv6的支持。当Windows Server 2008故障转移群集运行时,微软Exchange Server 2007 Service Pack 1(SP1)支持在地理上分散的群集里两个子网间的故障转移。这种支持包括单复制群集(SCC)和CCR环境中的邮箱服务器。
注意:
尽管Windows Server 2008故障转移群集支持DHCP IPv4,我们仍然建议在实际应用环境中使用静态IP地址。如果一定要在故障转移群集中使用DHCP IPv4,建议配置DHCP服务器以保证IP地址的使用无时间限制。
下面开始配置Windows Server 2008故障转移群集。单个群集节点现在可以放置在相互分隔的路由网络中。这要求依赖于IP地址的资源(如网络名称资源)实现一种“或”(OR)逻辑,因为不可能每个群集节点都存在一个直接本地连接用以连接该群集相邻的各个网络。这将有助于在业务或应用故障转移到远程节点时进行IP地址和网络名资源的在线分配。
所有与网络名称资源有关的在线IP地址将会按定制列表在域名系统(DNS)中进行动态注册(如果设置为动态更新),这样,就使那些在线的IP地址资源能在第一时间返回给客户。由于群集节点被放置在不同的路由网络中,而且为了在用户数据报协议(UDP)之上实现可靠会话协议(单播),通信机制也改变了,因此地理分散群集的组网要求不再适用。因此,机构可以在两个物理数据中心之间配置故障转移群集,而不需要使用虚拟局域网(VLAN)技术在两地间扩展群集子网。
当CMS的移动和故障转移发生在一个地理上分散的多子网故障转移群集时,CMS的名字将会被保留。然而,分配给该名字的IP地址却不会保留下来。该服务器对用户及其它服务器是否具有可用性取决于新IP地址在DNS中的传播。DNS传播可能要花费一些时间。正是因为这样,我们建议将CMS DNS主机记录的生存时间值(TTL)配置为5分钟(300秒)。至于配置CMS的DNS TTL值的详细步骤,请查看《如何配置网络名称资源的DNS TTL值》一文。当CMS的DNS TTL值配置成功后,你必须停机并重启CMS才能使改动生效。
尽管内部微软Office Outlook客户端使用新的IP地址连接时并不需要对配置文件进行更新或重新配置,它们仍然需要等待本地DNS缓存清空后,才将CMS名称解析由旧IP地址转移到新IP地址。当IP地址传播到合适的DNS服务器,在客户端命令行运行下面的命令,就可以清空Outlook客户端的DNS缓存。
ipconfig /flushdns
公共和专用网络都需要IP地址。专用和公共地址的要求如下:
l 专用地址:群集专用网的每个节点的每个网络适配器都要求有一个IP地址与之对应。你可以使用静态IPv4地址或动态分配的IPv6地址。但要注意,你不可以使用在同一个子网或公共网中同一个网络的IP地址。建议使用的专用地址为10.10.10.10和10.10.10.11,子网掩码为255.255.255.0。
l 公共地址:群集公共网,有时也称为混合网络。它的每个节点的每个网络适配器也都要求有一个IP地址与之对应。与专用网不同的是,故障转移群集和CMS也需要IP地址以便客户端及管理员访问。同样,你也要注意,不可以使用在同一个子网或专用网中同一个网络的IP地址。你可以使用IPv4地址,DHCP IPv4地址或静态IPv6地址。
重要:
群集网络的所有网络适配器必须使用相同版本的TCP/IP。也就是说,它们必须是都只使用IPv4或者都同时使用IPv4和IPv6。
群集邮箱服务器的网络最佳实践法
我们还建议对你的群集网络遵循以下最佳实践法:
l 使用有意义的名称:你有很多机会来为所构建群集的每个节点,每个群集网络接口,每个群集以及CMS来安排一个有意义的名字。例如,用于与其它Exchange服务器和客户端通信的网络可以命名为Public。用于在群集节点之间进行通信的网络可以命名为Private。最好使用互相关联且无须参考拓扑图的名字。另一个有用的惯例是将群集节点与CMS的名称相关联。例如,将CMS及其相应的两个节点分别命名为mbx01,mbx01-node1和mbx01-node2。
l 为每个专用网络接口使用专用IP地址: 对于每个节点可用的IP地址范围及子网掩码列表,看下面的表格。
专用网络接口的地址范围及子网掩码
网络/ 节点 IP 地址范围 子网掩码
Private / NODE110.10.10.10-255255.255.255.0
Private / NODE210.10.10.11-255255.255.255.0
注意以下几点:
l 如果你的公共网使用10.x.x.x 的网络地址和255.255.255.0作为子网掩码,建议使用可替换的专用网络IP地址和子网掩码。
l 我们不建议使用任何形式的容错适配器或配置专用网组队。如果你的专用网需要一些冗余性,可以将配置多个网络适配器仅供群集使用。使用这种技术时,检验固件和驱动器是否处于最新版本是非常重要的。要获取服务器群集上的兼容性信息,联系你的网络适配器供应商。要了解更多关于故障转移群集部署中的网络适配器组队信息,请查看微软知识库文章254101,《网络适配器组队和服务器群集》。
构建故障转移群集
从添加群集中的第一个节点开始,故障转移群集就被构建了。这一过程使群集具有唯一的网络名和IP地址。网络名和IP地址,共同构成了群集网络的身份。随着节点不断地联机与脱机,网络名和IP地址在群集节点之间移动。通常来说,群集网络的身份一般不用于CMS的管理。
如果你熟悉如何配置故障转移群集或先前版本的Exchange群集,你会发现CCR群集的配置过程与之是非常不同的。如果你是刚开始接触群集解决方案,你会发现这种配置过程会比典型的群集配置简单得多。
你可以根据《如何创建Windows Server 2008群集连续复制的故障转移群集》这篇文章里的建议,构建一个新的群集。
添加其它节点
当你在第一个节点上安装了群集服务后,你会发现你花在第二个节点上的安装时间要少一些。这是因为安装程序使用第一个节点上的网络配置设置作为后续节点网络设置配置的基础。在添加并配置第二个节点之前,你应该使群集配置生效。你可以通过在命令行中运行Cluster.exe group来验证群集服务是否运行和可操作。如果生效。应该产生类似下面的输出。
C:\>cluster group
Listing status for all available resource groups:
Group Node Status
------------------ --------------- ------
Cluster Group Online
我们还建议你在进行上面步骤之前,查阅所事件日志中所有可能需要引起注意的错误和警告信息。有关如何添加第二个节点到群集中的详细步骤,请查阅《如何创建Windows Server 2008群集连续复制的故障转移群集》一文。
配置群集网络
把两个节点都加入群集后,必须配置群集网络组件。尤其要指出的是,你必须为群集和客户访问配置网络,而且你还必须设置丢失群集心跳的容限。我们还建议你使用更加有意义的名称来重命名群集网络。
下面的表格详细表示了有关群集网络心跳配置的可用选项。
配置群集网络的选项
选项描述
允许群集使用该网络(专有网络)如果你在该网络只使用群集服务进行节点间通信,那么单选此项。客户端将不能通过该网络连接到CMS。
允许群集使用该网络,并允许客户端通过该网络连接(混合网络)如果你想使用该网络适配器让群集服务既进行群集内节点间通信,又进行与外部客户端的通信,那么同时选择这两个选项。群集服务可以使用该网络进行节点间通信,客户端也能通过该网络连接到CMS。
不允许群集使用该网络 (未管理网络)如果你不想使用群集中的这个网络,或不想让群集服务管理网络,那么单选此项。群集服务将不能使用该网络进行节点间通信,客户端也不能够通过该网络连接到CMS。
在CCR环境中部署CMS要求两个节点都至少支持两个网卡。在CCR环境中,你必须将一个网络配置成专用网络,而将另一个配置成混合网络。
在Exchange 2007 SP1中,任意由群集服务管理并支持群集使用和客户端连接功能的网络都能用于连续复制功能,包括种子设定,日志传送和种子再设定。这在Exchange 2007 SP1中可以通过一个叫Enable-ContinuousReplicationHostName的新cmdlet来实现。
注意:
其中一个配置群集网络的方法是:创建初步的网络配置,然后只选择部分网络测试并运行故障转移群集管理工具中的验证配置向导(如跳过目录,存储和系统配置测试)。当只运行已选的网络测试时,这一过程并不会花很长时间。通过查看验证报告,你可以修正网络配置中任何可能的错误。当整个群集都配置完成后,我们建议你重新运行验证配置的向导,并选上所有的测试选项。
为丢失群集心跳设置容限
当配置完群集通信和网络优先级后,我们建议你设定丢失群集心跳的具体容限。这样做,可以使监测群集节点间连接性的群集服务允许一些微小的中断。这将防止网络短暂故障发生时的故障转移。我们建议你在所有节点配置允许10次丢失心跳的专用和混合群集网络。这一设置值大约相当于12秒钟。
关于如何配置群集网络组件的具体步骤,请看《如何配置群集网络》一文。
为群集邮箱服务器网络名称资源设置TTL
有两个部署场景,在进行故障或恢复选项时会引起CMS分配IP地址的改变。
l 在多子网环境中部署CMS。
l 用于恢复失效群集的备份群集。
上面两个场景,CMS的名称不会改变,但是分配给CMS的IP地址将会发生变化。客户端和其它与CMS通信的服务器,在CMS的IP地址变化的情况下将不能够与CMS重新建立通信,除非DNS更新了IP地址的信息,而且任何本地DNS缓存也都被更新。为了最小化客户端及其它服务器获得DNS信息变化的时间,我们建议将DNS针对CMS网络名称资源的TTL值设置为5分钟。
注意:
在多数环境中,我们建议只设置DNS针对CMS网络名称资源的TTL值。然而,如果在不使用Exchange管理工具通过名称连接到群集以进行管理的环境中,我们建议为群集网络名称资源设置一个较小的TTL值。
默认情况下,群集服务设置DNS TTL值为20分钟。尽管可以通过DNS管理工具在DNS数据库中直接手工调整主机名的TTL值,但DNS中网络名称注册每次进行更新时,DNS数据库都会被重写,群集服务又重新设为默认值的20分钟。DNS中网络名称注册的更新在每次CMS启动,移动或故障及故障转移后恢复时都会发生。
Windows Server 2008为故障转移群集的网络名称资源加入了新的私有特性。这一新特性叫做HostRecordTTL,你可以使用Cluster.exe对它进行配置。
注意:
这一特性只在Windows Server 2008的故障转移群集中才可用。在Windows Server 2003故障转移群集中并没有这样的属性。对于运行Windows Server 2003的故障转移群集来说,群集服务默认值为20分钟总是适用的。
至于在多子网CMS或备用群集部署中设置网络名称资源DNS TTL值的具体步骤,请查阅《如何配置网络名称资源的DNS TTL值》一文。
配置群集仲裁
群集网络配置完成后,下一步就是配置故障转移群集使用节点和文件共享多数仲裁资源。这包括两个方面的步骤:
1. 在Windows服务器上创建文件共享,然后用NTFS文件系统和共享许可来保护文件共享。有关如何创建安全文件共享的具体步骤,请查阅《如何为文件共享多数仲裁创建安全文件共享》一文。
2. 配置群集使用节点和文件共享多数仲裁模型。关于如何配置故障转移群集使用节点和文件共享多数仲裁模型的具体步骤,请查阅《如何配置节点和文件共享多数仲裁》一文。
验证确认故障转移群集
Windows Server 2008包含一个名为验证配置的新向导,你可以使用它来验证故障转移群集配置是否正常有效。我们建议在群集中安装Exchange 2007之前运行该向导。通过在安装Exchange 2007前运行该向导,你可以确定并定位群集中可能造成Exchange无法成功安装的配置问题。
验证配置向导包含四组测试来验证群集是否满足微软必须支持的要求。这些要求是群集解决方案执行Windows Server 2008兼容性标志要求的一个补充。
这四组测试为:目录(Inventory),网络,存储器和系统配置。由于CCR不使用共享存储,因此没有必要运行存储器组的测试。如果你在一个没有任何群集存储资源的故障转移群集中运行存储器组测试,比如为CCR设计的故障转移群集,那么存储器组的测试将会产生错误。存储器组测试产生的所有错误都会安全地被忽略掉,因为缺乏共享存储正是CCR故障转移群集所希望的。
关于如何验证故障转移群集的详细步骤,请查阅《如何验证Windows Server 2008故障转移群集配置》一文。
群集邮箱服务器安装及配置
你可以通过在每个节点执行一些步骤来安装群集的邮箱服务器角色。在完成构建,验证群集,并配置通过文件共享见证使用多数节点集(MNS)仲裁后,你应该首先在主动节点上安装邮箱服务器角色。有关如何在主动节点上安装邮箱服务器角色的详细步骤,请查阅《如何在Windows Server 2008 CCR环境中安装主动群集邮箱服务器角色》一文。
当你完成主动节点邮箱服务器角色和CMS的安装,并验证了第一个存储器组的配置后,你还应该安装被动节点的邮箱服务器角色。有关如何在被动节点上安装邮箱服务器角色的详细步骤,请查阅《如何在Windows Server 2008 CCR环境中安装被动群集邮箱服务器角色》一文。
完成邮箱服务器角色安装后,你还可以选择调整故障转移设置。有关故障转移调节的更多信息,请查阅《如何调整群集连续复制的挂载和故障转移设置》一文。
安装完成后任务
在两个节点完成邮箱服务器角色安装和CMS创建后,你应该完成以下的安装后期任务。这些任务包括:
l 让连续复制活动允许多网络。
l 调整故障转移控制设置。
l 调整传输dumpster(Transport Dumpster)的默认配置。
l 验证群集节点间移动到CMS的能力。
允许连续复制活动的多网络属性
在微软Exchange Server 2007的制造发布版本(RTM)中,所有的日志文件的复制和种子设定都发生在公共网络中。在Exchange 2007 SP1中,任意群集网络的连续复制活动都可配置为混合网络。这些活动包括存储器组种子设定及再设定,以及日志传送。
在Exchange 2007 SP1中,只有混合方式的群集网络才支持连续复制。混合网络(mixed network)是指既支持两个群集(节点间通信),又支持客户端访问的群集网络。只支持群集访问,但不支持客户端访问(有时指专用网络)的群集网络不能够进行连续复制。
混合网络对日志传送的支持是通过一个新的Enable-ContinuousReplicationHostName的cmdlet来实现的。类似的,也可以通过Disable-ContinuousReplicationHostName的cmdlet来关闭这个特性。当CCR环境的CMS配置完成后,管理员可以在群集的两个节点上运行Enable-ContinuousReplicationHostName,以确定它们各自的IP地址及主机名。完成这一步后,系统会随机选择一个配置成功的混合网络,并确认它已经可以实际运行后,来进行日志拷贝。
有关如何使群集网络的连续复制活动有效的详细步骤,请查阅《Windows Server 2008如何允许冗余群集网络的日志传送及种子设定》一文。
注意:
每运行一次Enable-ContinuousReplicationHostName的cmdlet,创建的除了主机名,IP地址和在故障转移群集上创建群集组,还会在包含CMS的活动目录域中创建一个计算机账户。Windows Server 2008默认允许那些不具备域管理员权限,且没有被授予创建计算机对象及删除计算机对象访问控制条目(ACE)的用户能添加的最大计算机账户数量为10。不具备域管理员及上述ACE权限的Exchange管理员,如果频繁运行Enable-ContinuousReplicationHostName和Disable-ContinuousReplicationHostName这两个cmdlet命令,就会很快达到10个账户的限制。关于如何解决该问题,有相应的工作区,其解决方案可以参考知识库文章307532《修改计算机对象时如何解决群集服务账户故障》。其它相关信息可以查阅知识库文章251335《域用户不能在域中添加工作站或服务器》。
在CCR环境中进行种子设定(Seeding)和再设定(Reseeding)是通过Update-StorageGroupCopy的cmdlet来实现的。在Exchange 2007 SP1中,该cmdlet的扩展选项包括一个新的DataHostNames参数。这个参数是确定哪个网络应该用作种子设定及再设定的。该参数有值列表有两个:一个是完整的域名(FQDN),另一个是主机名。这两个名字的其中一个必须设定为被动模式。
调整故障转移控制设定
CCR包含允许你控制CMS故障转移行为的属性。你可以通过Set-MailboxServer的cmdlet来配置这些属性。调整这些属性可以让你控制下面两个决策算法:
l 算法1:算法1是控制是否在故障转移时挂载数据库的。在故障转移的时间内,如果检测到数据库丢失了少于所配置数量的日志,就会自动挂载数据库。可以通过一个叫AutoDatabaseMountDial的值来配置可接受的丢失日志数量。Exchange服务器的活动目录使用msExchDataLossForAutoDatabaseMount属性来表示这一参数,它有3个值:无损性(Lossless),良好可用性(Good Availability),最大可用性(Best Availability)。无损性表示没有日志丢失;良好可用性表示有3个日志丢失;最大可用性默认是有6个日志丢失。有关如何设置这3个值的详细步骤,请查阅《如何调整群集连续复制的挂载及故障转移设置》一文。
l 算法2:算法2允许你确定旧数据的联机是否比脱机更重要。如果数据库在基于算法1挂载失败,你可以创建检查第二次的时间。可以通过ForcedDatabaseMountAfter属性来配置该等待时间。这个值是以小时为单位的,默认为无限制。
重要:
当ForcedDatabaseMountAfter设置的时间点到达时,不管是否存储器组是有1个日志滞后,10个日志滞后,或是1000个日志滞后,这些有可能导致大量数据丢失的情况,数据库都会被挂载。正是因为这样,如果服务等级协议(SLA)保证了导致丢失数据的最大值,就不应该使用这个参数。
调整传输Dumpster(Transport Dumpster)
传输Dumpster是使用本地连续复制(LCR)或CCR时,集线器传输服务器(Hub Transport server)角色必须配置的特性。该特性只能用于LCR和CCR环境。传输dumpster会在非常规故障发生后,提交最近发送的邮件。使用LCR或CCR时,应该总是打开传输dumpster。通过设置每个存储器组可用存储的大小和传输dumpster中保留邮件的时间,传输dumpster的设置在机构范围内生效。
集线器传输服务器保留最近发送到CMS的邮件队列。在无损故障转移事件中,CCR自动请求站点的每个集线器传输服务器重新提交传输dumpster中的邮件。在LCR环境中,重新提交请求是Restore-StorageGroupCopy任务的一部分。当重新提交发生时,信息存储自动删除副本,并重新发送丢失的邮件。你可以使用Set-TransportConfig的cmdlet来改变传输dumpster的默认配置信息,配置改变将在存储器组的层次生效。另外,在Exchange 2007 SP1中,你还可以使用Exchange管理控制台(Exchange Management Console)对传输dumpster的值进行设置。
我们建议你配置每个存储器组的最大空间(即MaxDumpsterSizePerStorageGroup参数)为能够发送的最大消息的1.5倍。例如,如果最大的消息为10MB,你应该设置MaxDumpsterSizePerStorageGroup参数的值为15MB。对于不存在最大消息空间的机构,我们建议将每个存储器组的最大空间值配置为机构中发送消息平均大小的1.5倍。
我们还建议将每个存储器组的最大保留时间(MaxDumpsterTime参数)设置为07.00:00:00,也就是7天。这个时间对于大范围故障发生时而不丢失邮件已经足够了。使用这个传输dumpster特性时,集线器传输服务器还需要额外的磁盘空间来存储传输dumpster队列。需要的磁盘空间大小大约等于MaxDumpsterSizePerStorageGroup乘以含有集线器传输服务器的活动目录站点中使用连续复制的所有邮箱服务器组上的存储器组的数量。
关于如何配置传输dumpster,使之生效的详细步骤,请查阅《如何配置传输Dumpster》一文。
验证CCR解决方案
完成CCR解决方案的安装后,或是做了很大的配置改变后,我们建议你验证一下CMS的状态是否正常,两个节点的CMS支持配置是否正确。
验证CMS状态是否正常的推荐方法是在命令行中运行Test-ReplicationHealth,Get-StorageGroupCopyStatus和 Get-ClusteredMailboxServerStatus 这三个cmdlet命令。
l Test-ReplicationHealth的cmdlet是Exchange 2007 SP1中新出现的。这个cmdlet是为主动监测连续复制及其管道而设计的。Test-ReplicationHealth的cmdlet检查复制的各个方面,包括群集服务,存储器组复制及重现状态,为复制系统的提供全面的信息概览。关于Test-ReplicationHealth的这个cmdlet的详细信息,请查阅Test-ReplicationHealth命令。
l Get-StorageGroupCopyStatus的cmdlet为每一个存储器组提供当前的复制状态信息。有关查看CCR环境中存储器组的状态信息的详细步骤,请查阅《如何查看CCR环境中存储器组状态信息》一文。
l Get-ClusteredMailboxServerStatus这个cmdlet为CMS提供基本的操作状态信息。有关如何为CMS获取基本操作状态信息的具体步骤,请查阅《如何查看群集邮箱服务器状态》一文。
验证是否两个节点都能联机CMS的推荐方法是:使用Move-ClusteredMailboxServer的cmdlet命令,使CMS转移到每个节点。在Exchange 2007 SP1中,你还可以使用Exchange管理控制台中的管理群集邮箱服务器向导(Manage Clustered Mailbox Server wizard)在节点之间移动CMS,以验证是否两个节点都能联机CMS。