引言
Exchange Server 2010推出的结构性变化之一是其全新的RPC客户端访问服务。这项新服务改变了客户端访问的业务逻辑,它将后端邮箱服务器的Outlook MAPI邮箱连接和目录访问从位于数据层的域控制器/全局编录服务器移动到中间层的客户端访问服务器。
本文将回顾Exchange 2000/2003业务逻辑中的前端和后端服务器,介绍Exchange 2007引入的客户端访问服务器(Client Access Server,CAS)角色,并将重点讨论Exchange 2010新推出RPC客户端访问服务。
Exchange 2000/2003前端及后端架构简要回顾
Exchange 2000和Exchange 2003中,有一个基本的前端和后端架构,其中前端服务器接受来自客户端的请求,并作为代理将请求递交给后端服务器进行处理。Exchange 2000/2003前端服务器可以通过HTTP(如现在的Outlook Anywhere)、HTTPS(OWA、Entourage等)、POP及IMAP客户端等将请求提交给有关的后端服务器。前端服务器还支持到后端服务器公共文件夹数据的多次转交。
在Exchange 2000/2003中,内部Outlook MAPI客户端不使用前端服务器,而是利用MAPI通过远程过程调用直接连接到后端服务器。事实上,由于DSProxy组件未在前端服务器上运行,用户可以选择不将Outlook MAPI客户端指向NetBIOS名称或前端服务器的FQDN(Fully Qualified Domain Name,完全合格域名)。
利用Exchange 2000/2003,DsAccess组件还通过远程过程调用直接访问位于活动目录中的域控制器和全局编录服务器上的Netlogon服务,然后,Outlook客户端直接连接到域控制器或全局编录服务器,Outlook 2000及早期版本连接到DsProxy。
图1:Exchange 2000/2003前端和后端架构
Exchange 2000/2003前端服务器的主要优点之一是允许用户配置一个单独的命名空间(如mail.domain.com)。借助命名空间,用户不必知道他们邮箱所在的存储服务器的名称。另一个优点是,SSL加密和解密操作在前端服务器上进行,从而摆脱了对价格昂贵的后端服务器的依赖。但归根结底,前端服务器只是一个一个代理服务器,不能提供自身的任何功能。相反,它对登录请求进行认证并转发后端服务器,这对最高只限于4GB内存的32位架构Exchange 2000/2003服务器的性能造成了严重影响。
Exchange 2007客户端访问服务器角色
Exchange 2007发布后,情况得以明显改善。与Exchange 2000/2003的前端服务器不同,CAS不仅仅只是一个代理服务器,引入CAS的意图就是优化邮箱服务器角色的性能。在Exchange 2007基础架构中,所有客户端连接(Outlook除外)都使用CAS作为连接端点。同Exchange 2000/2003后端服务器需要负担大量负载的情况相比,性能有了显著提高。
图2:Exchange 2007客户端访问架构
Exchange 2010中客户端访问服务器的RPC服务
Exchange 2010又有了进一步的改进。在Exchange 2010中,MAPI和目录访问连接也转移到CAS。这主要得益于引进了一个全新的CAS服务—RPC客户端访问服务。
图3:客户端访问服务器中的RPC客户端访问服务
打开邮箱时,MAPI客户端不再直接连接到邮箱服务器,而是连接到与活动目录及邮箱服务器会话的RPC客户端访问服务。对于目录信息,Outlook连接到客户端访问服务器上的一个NSPI(Name Service Provider Interface,名称服务提供程序接口)端点,然后,NSPI通过活动目录驱动程序与活动目录进行会话。该NSPI端点取代了Exchange 2007中的DSProxy组件。
图4:Exchange 2010客户端访问架构
这与Exchange 2007中Outlook Anywhere客户端连接邮箱不同。虽然Outlook Anywhere客户端连接到了客户端访问服务器上的RPC代理组件,但这些客户端也通过RPC直接与邮箱服务器及活动目录中的NSPI端点会话。
RPC客户端访问服务有诸多优点。首先,MAPI和目录连接转移到了中间层的CAS,现在,Exchange有一个供所有数据访问使用的单独的公用路径。这不仅提高了业务逻辑应用到客户端时的一致性,同时也在使用DAG部署一个高可用性解决方案发生切换/故障转移时,提供了更好的客户体验。Outlook客户端用户有时会遭遇断线,但最长不会超过30秒,而在Exchange 2007中,断开连接的时间会长达数分钟。
最后,所有的数据访问有一个单独的公用路径,这样将允许有更多的并发连接,以及每个邮箱服务器上有更多的邮箱。在Exchange 2007中,一个邮箱服务器可以处理64,000个连接,而Exchange 2010将这一数字提高到了250,000。
Exchange 2010客户端访问服务器阵列
在Exchange 2010基础架构中,如果一个CAS服务器因某种原因关闭,客户端需要能够迅速重新连接到另一个CAS服务器。Exchange 2010的客户端访问阵列功能很好地解决了这一难题。顾名思义,客户端访问阵列就是一个CAS阵列,它由一系列位于活动目录站点的CAS服务器组成。因此,Outlook客户端可以连接到CAS阵列的FQDN,而不是连接到某一个CAS服务器的FQDN,确保了通过MAPI连接的Outlook客户端甚至在邮箱数据库发生切换/故障转移期间都能时刻保持连接。
CAS阵列是如何工作的呢? Exchange 2010邮箱数据库具有一个称为“RpcClientAccessServer”的属性。当在创建CAS阵列的活动目录站点创建一个新邮箱数据库时,该属性被设置为活动目录站点的第一CAS服务器。可以运行下列命令设置该属性:
Get-MailboxDatabase
图5:在邮箱数据库中指定RPC客户端访问服务器的FQDN
如果活动目录站点内存在一个CAS阵列,为了使CAS阵列知道用户直接连接的邮箱服务器和数据库,在创建新邮箱数据库时,CAS阵列的FQDN将自动设置该属性。
CAS阵列的配置方式如下。首先,使用以下命令创建新的CAS阵列:
New-ClientAccessArray –Name “name of CAS array” –Fqdn
图6:创建一个新的客户端访问阵列
CAS阵列创建完成后,还应在内部DNS(命名格式为outlook.domain.com)创建一个记录,以指向内部负载均衡解决方案的虚拟IP地址。
图7:为DNS的CAS阵列创建一个“记录”
只要邮箱服务器角色没有同时安装在同一台机器上,并且服务器上的邮箱数据库未使用DAG进行防护,Windows网络负载均衡(WNLB)仍可与CAS阵列协同工作。当然,用户也可以选择使用外部硬件负载均衡器配合CAS阵列工作,特别是在超过8个CAS节点的情况下,推荐使用这种方法。
如果使用WNLB,需要创建WNLB群集并指向DNS记录,并且确保TCP 135端口(端点映射器)和动态RPC端口范围(TCP 1024-65535)添加到端口规则列表中。
如果使用第三方的负载均衡由解决方案,必须在负载均衡设备上为各自的端口创建规则。
最后,创建CAS阵列之前,如果在活动目录站点的邮箱服务器上创建邮箱数据库,必须在数据库上更改由RpcClientAccessServer属性指定的FQDN。用命令行实现如下:
Set-MailboxDatabase
图8:更改邮箱数据库的RpcClientAccessServer属性值
如果使用数据库可用性组来保护邮箱数据库,并且位于另一个活动目录站点的各自的数据库副本为主动数据库副本,CAS将直接与载有邮箱数据库的邮箱服务器通信。如果用户的站点关闭,客户端不会自动重新连接到另一个站点的CAS服务器,而需要人工干预。
CAS仅可由Outlook MAPI客户端用来连接到邮箱、公用文件夹和活动目录。用户还可将Windows网络负载均衡或外部负载均衡器用于OWA、Autodiscover、Exchange ActiveSync,以及可用性服务等。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。