Exchange Server 2010在跨站点部署数据库可用性组(Database Availability Group, DAG)时,需要考虑站点间的转移问题。即:一个站点的Exchange服务器宕机时,另一个站点的Exchange能否自动切换,并保证客户端访问的不间断。
事实上,跨站点的转移有两种,一种是故障转移Fail over,另一种是切换Switch over。故障转移是服务器自动进行的一种行为;而切换则需要管理员的人工干预才能够完成。
在理想状态下,总是希望实现Failover,因为Failover是不需要任何人工干预而自动进行的,Failover可以最大限度地保证服务的可用性。
Exchange组织拓扑
邮箱数据库
组织中配置了3个数据库,每个数据库有3个副本,分别位于加入DAG的3台Exchange Server 2010邮箱服务器上。
Client Access Array
各活动目录站点中配置的Client Access Array。
邮箱数据库上配置的Client Access Array
这里需要说明一下Client Access Array,结合Mailbox Database上的RpcClientAccessServer这个参数,可以发现,这个功能用于且仅用于公司内部的Outlook客户端使用MAPI方式进行连接时使用。对于每一个活动目录站点,可以创建并仅能创建一个Client Access Array。一旦创建了Client Access Array,它将自动把本站点所有的客户端访问服务器作为自己的成员,而且这个成员是不允许进行编辑(添加或删除)的。对于Exchange的管理员,只能对Client Access Array的名称和FQDN进行配置。
由于Exchange Server 2010的客户端访问是按照活动目录站点进行划分的,而为了节省站点间的网路带宽,管理员应该尽可能使用户访问Exchange邮箱时,使用其所登录站点的Exchange服务器。例如这里的配置,DB#3上存放的是2ndSite内的用户邮箱,默认会在ExchAllinOne上被激活,而DB#3上的RPCClientAccessServer设置为2ndSite上的Client Access Array,这样就可以保证,在正常情况下,2ndSite的用户只需要连接到ExchAllinOne就能完成邮箱访问,而不需要使用1stSite内的Exchange服务器。
DAG的配置
虚拟目录
Client Access Server上虚拟目录的配置情况,以OWA为例,其它虚拟目录如OAB/ECP等服务,它们与OWA所使用的主机名完全相同:
也就是说,只有PCOEExchHTCAS1和PCOEExchHTCAS2,它们组成的cas能够在外部被客户端访问。而且,也只在这两台服务器上启用了Outlook Anywhere。
客户端连接
对于一个邮箱位于DB#3上的用户,通过AutoDiscover获取的默认Outlook配置如下:
Outlook的连接状态
模拟服务器故障
关闭ExchAllinone,数据库DB#3切换到1stSite的PCOEExchDAG2上。此时,相当于2ndSite内所有的Exchange服务均不再可用。结合前面提到的RpcClientAccessServer的设置情况,想像一下对于邮箱在DB#3上,并且正在使用MAPI方式连接到Exchange的用户会出现什么情况?
答案是:这类用户将无法继续使用MAPI方式进行连接了。
对客户端的影响
Outlook客户端重新发起连接,使用Outlook Anywhere方式进行。
注意:这种情况仅限于2ndSite不面向Internet(None-Internet-Facing)的情况,也就是在ExchAllinOne上没有配置ExternalURL,也没有启用Outlook Anywhere的前提下,客户端才能够自动切换到Outlook Anywhere方式,并且由cas.pcoe.com实现客户端访问的代理。这就是Failover的情况,服务器自动完成切换,客户端自动恢复连接。
如果2ndSite也是Internet-Facing的,就只能采用Switchover方式,由管理员手动干预才能够恢复客户端的访问了。
这里牵涉到的另一个问题就是客户端访问的代理(Proxying)及重定向(Redirection)。将在后续文章中加以说明。
关于DAG切换和故障转移的更多详细信息,请参考:
http://technet.microsoft.com/en-us/library/dd298067.aspx