“似曾相识通常是黑客帝国的一个小故障。当他们改变某件事的时候就会发生。毫无疑问,在新软件中经常会出现故障,Exchange Server 2010也并不奇怪。我们都知道,交易所的运作方式已经发生了许多根本性的变化。在今晚的帖子中,我想把焦点集中在一个特殊的变化和一个相关的小故障上。: >)
我所引用的更改是中间层上的MAPI (MOMT)。简而言之,这是一个新特性(很可能在RTM之前被重命名),其设计目的是让客户端不再终止邮箱服务器上的MAPI连接。相反,在客户机访问服务器上终止MAPI连接,然后该服务器将连接代理回保存数据库的正确邮箱服务器。通过这样做,最终用户体验在理论上得到了改善,因为MAPI对其邮箱的“访问”对实际邮箱数据库位置是透明的。因此,邮箱服务器故障或邮箱移动不应影响用户对其邮箱的连接,前提是该用户邮箱的另一个副本此时处于联机状态。
现在,为了让所有这些美妙的代理变成现实,每个邮箱数据库对象都有一个名为RpcClientAccessServer的属性。此属性中包含的信息是point的客户端返回到它们应该使用的MAPI端点的内容。似乎没有什么问题是很容易的。嗯,这并不完全正确:
- 在创建邮箱数据库时设置该属性。
- 当数据库被移动时,该属性似乎没有得到更新。
- 当该属性中定义的CAS服务器关闭或从组织中删除时,该属性也不会得到更新。
为了说明这个问题,我们假设您在一个站点上安装了一个CAS (cas1.abc.com)。然后在同一站点的邮箱服务器上创建邮箱数据库。RpcClientAccessServer属性随后被定义为cas1.abc.com。现在,如果cas1.abc.com关闭,或者更糟地从组织中删除,所有客户端对其邮箱的访问都会“中断”。更糟糕的是,即使我启动另一个CAS (cas2.abc.com), RpcClientAccessServer属性仍然需要在每个邮箱数据库上手动更新,以反映该更改。
换句话说,问题。不过,公平地说,E2010的产品团队确实试图构建一个补丁。他们提出的想法被称为CASArray。因此,使用New-ClientAccessArray cmdlet,您可以创建一个对象,该对象表示单个Active Directory站点内客户机访问服务器的负载平衡数组。然后我可以将CASArray定义为RpcClientAccessServer属性的值。太棒了!现在,理论上这解决了单个CAS服务器失败时的问题。然而,RpcClientAccessServer属性是静态的,并且E2010中没有内置逻辑来维护该属性中的值,这一点仍然值得关注。
例如:在跨站点故障转移场景中怎么办?Hmmmmmm…我奇迹!
如果你喜欢这篇文章,可以看看泰森的其他文章:
- 计算机科学学位什么时候重要,什么时候不重要
- 云计算从什么时候开始成为/需要一个宣言?
- 为什么要使用证书颁发机构(CA)作为诱饵?
- 如果所有人都信任你,我还会信任你吗?
- 这是一个很好的问题:是脚本编程还是仅仅是系统管理?
- PowerShell boy和cmdlet丢失的情况!
- 有趣的PowerShell 2.0事件!
- 创建一个自定义404页面来处理ASP的链接重定向。净的web应用程序
如果你愿意,你也可以看看泰森的最新出版物:
- Windows PowerShell释放(2nd版)
- Windows Server 2008发布(是的,我确实帮助了这本书)