向外扩展 Analysis Services 解决方案
通常,Analysis Services 数据库管理员 (DBA) 希望缩短查询响应时间以增加最终用户的数量。此目标可通过两种方法来实现:增加现有服务器的处理能力(向上扩展),或者将负载分布到几个小服务器上(向外扩展)。
向上扩展解决方案通常会受到现有硬件不再能够扩展或升级的限制。现有的主板也许不能接受新版本的 CPU,或者已经达到内存的物理地址空间。另一方面,向外扩展解决方案更为灵活,其局限更容易克服。如果网络负载平衡器 (NLB) 中的服务器数量已达到最大限制,则可以向解决方案中再次添加 NLB 并将服务器分布到多个 NLB 中。
本文档描述了一个用来向外扩展 Analysis Services 解决方案的理论体系结构。
方案
Analysis Services DBA 必须为 Analysis Services 解决方案的最终用户提供更短的查询响应时间,同时,还要使每日刷新数据所费的停机时间段保持最短。最初有 80 个用户,上月期间用户数翻番,预计用户数会在随后的六个月内再次翻番。在第七个月之后,用户数预计将按照每月 4% 的速度增加。Analysis Services 数据库的大小当前为 80 GB,并按每月 6 GB 的速度增加。数据库目前存放最近 12 个月的数据,并且应当维护最近 3 个会计年度以及当前年度的历史记录。平均处理时间为 2½ 小时,停机时间窗口限制为 ½ 小时。
替代方法
在了解上述情形之后,唯一的解决方案似乎将是向上扩展服务器。这将提供没有停机时间的服务,但是会在进行处理时使执行速度变慢。但是,目前有 160 个用户,此数字将在随后的六个月中翻番,达到 320 个。在此后一个不确定的时期内,它将继续按照每月 13-16 个用户的速度增加。按照这个速率,用户数将在稳定增加的第 18 个月和第 19 个月之间再次翻番。在这种情形下,对于在随后 12 月中使用率低于其容量 50% 的设备,将很难确定其正确的硬件规格并调整预算申请。
幸运的是,在 SQL Server 2008Analysis Services 中,可以用“只读数据库”功能向外扩展此解决方案。
扩展体系结构
此体系结构在设计上包含两个元素:
一个“物理布局”,其目标是最大化最终用户的吞吐量。
一个“运行框架”,其目标是最小化停机时间。
物理布局
该解决方案由三个主要组件组成:
处理环境
存储区域网络 (SAN)
数据访问环境
第一个组件(处理环境)是使用 SAN 段更新和处理数据时所在的位置。第二个组件 (SAN) 是数据的保存位置,既是数据的处理环境又是数据的访问环境。第三个组件(数据访问环境)是最终用户访问数据的位置。
处理环境
处理环境由一台服务器、到 SAN 的连接和用来存放 Analysis Services 数据的 SAN 逻辑卷组成。
存储区域网络 (SAN)
此解决方案由两个独立的“SAN 逻辑卷”组成:一个用于处理环境,另一个用于数据访问环境。
SAN 是一组为多维数据库提供物理存储的设备。它允许在服务器与包括共享存储、群集和数据恢复机制的存储之间建立高速连接。
在本文档中,操作系统将“SAN 逻辑卷”所定义的存储单元识别为一个物理驱动器。
数据访问环境
数据访问环境由多台(通常最少为三台)共享同一个 SAN 逻辑卷的服务器组成。用户通过 NLB 设备连接到数据访问服务器,该设备使用负载平衡算法路由所有的传入请求。
物理布局的变体
在必要时,可以在解决方案中使用下面的变体来获得更佳性能。
处理环境
在某些情况下,可以使用两台处理服务器:一个用于关系数据库,另一个用来存放 Analysis Services 数据库。
此外,还可以定义多个逻辑卷来单独存放 SAN 中的关系数据库和多维数据库。
数据访问环境
将两个或多个 NLB 定义为解决方案的一部分,每个 NLB 设备至少有三台数据访问服务器。
运行框架
解决方案的运行分三个阶段:
数据处理
停机时间窗口
重置数据处理
数据处理
在这个阶段,多维数据库会在它成为将要发送的多维数据库的内容之后立即更新和处理,并且数据访问环境会处理要传输的数据。此过程由以下步骤组成:
从数据处理服务器分离 Analysis Services 数据库。
将用来存放 Analysis Services 数据库的 SAN 逻辑卷脱机。
停机时间窗口
在此阶段,已更新数据库的内容将与原始数据库的内容交换。
将 NLB 设置为拒绝任何传入的请求。
从每台数据访问服务器分离 Analysis Services 数据库。
在每台数据访问服务器上,将用来存放 Analysis Services 数据库的 SAN 逻辑卷脱机。
使用 SAN 命令,在处理环境和数据访问环境之间交换 SAN 逻辑卷。
在每台数据访问服务器上,将用来存放 Analysis Services 数据库的 SAN 逻辑卷作为只读设备联机。
在 ReadOnly 模式下将 Analysis Services 数据库附加到每台数据访问服务器。
将 NLB 设置为接受任何传入的请求。
重置数据处理
在此阶段,旧的 SAN 逻辑卷的内容将在处理环境中更新和联机。
使用 SAN 命令,将数据访问环境中的 SAN 逻辑卷镜像到处理环境中的 SAN 逻辑卷。
在处理环境中,将用来存放 Analysis Services 数据库的 SAN 逻辑卷作为读/写设备联机。
在 ReadWrite 模式下将 Analysis Services 数据库附加到处理环境中的服务器。