用于扩展SQL服务器报表服务的多个网前端是一种流行的部署体系结构,它将SQL服务器企业版实例与”始终在线”可用性组相结合。 最近发布的具有SSRS支持的视窗服务器容器吸引了人们对SSRS部署和横向扩展新方法的关注。 SQL服务器标准版容器与数据库克隆相结合,为每个容器提供了一个完整的数据环境,当在网络负载平衡器下运行时,支持可扩展的高可用性体系结构。

SQL 服务器 SSR 使用容器横向扩展

数据库克隆是SSRS横向扩展体系结构的一个关键方面,每个容器都与一套完整的数据库一起运行。 本文重点介绍了基于视窗服务器容器和窗子虚拟硬盘(VHD)的克隆,但是相同的体系结构也可以利用存储阵列。 vhd和存储阵列之间的权衡将在下面单独的章节中讨论。

SSRS容器与数据库克隆的结合对于简单性和操作节省很有吸引力。 作为公共云战略的一部分,SSRS容器也引起了人们的兴趣,因为SSRS容器可以与自动气象站无线电数据系统或SQL Azure数据库集成,以提供一个可横向扩展的报告解决方案。

数据库克隆起源于存储阵列,其父卷支持卷快照,该父卷具有只读数据访问和写时拷贝更改功能。 这种方法可以在几秒钟内交付大型数据环境,但由于涉及复杂的脚本和维护,使用有限。 窗子文件系统不支持卷快照,但虚拟硬盘可以实现类似的解决方案。 数据库克隆涉及装载到SQL服务器的父虚拟硬盘,源数据库备份恢复到VHD,创建环境的完整字节拷贝。 父VHD支持创建克隆(差异磁盘),每个克隆使用父映像的写时拷贝支持读/写操作。 创建父VHD需要时间,因为备份会恢复并成为不可变的映像。 克隆人在几秒钟内就被送来了,占领 <40 MB on delivery, 和 grow dynamically as changes are made。

数据库克隆可以包括数十个数据库,并可扩展到数万亿字节。 视窗VHD支持是在Windows Server 2008中引入的,并在Hyper-V的生产支持中得到验证 温多克斯数据库克隆是相对较新的,但是虚拟磁盘被广泛用于支持生产性的SQL服务器虚拟机,因此探索VHD数据库克隆以支持合格的SQL服务器生产用例似乎是合理的。

容器图像是使用纯文本文件构建的。 示例文件使用了SQL Server 2016 SSRS映像。 源数据库、报表服务器和临时数据库备份包含在单独的行中,并带有指向其位置的路径。 可以包含T-SQL和PowerShell脚本来处理数据库或实例配置。

SSRS容器将运行在共享容器中的数据库引擎和报表服务器作为窗口服务提供。 交付的报表服务器配置有默认的报表服务器数据库,因此为了避免数据库名称冲突,文件中的报表服务器数据库名称必须包括 reportserverssrs 在数据库名称中,和tempdb都必须包含 reportserverssrstempdb 在数据库名称中。

SQL 服务器 SSR 使用容器横向扩展

打开命令提示符并构建图像: >码头工人建造-t c:\path\to\dockerfile。 图像通过运行得到确认 >码头工人图像

SQL 服务器 SSR 使用容器横向扩展

映像是不可变的,并且为横向扩展体系结构中的每台主机提供相同的环境。 为了支持SSRS报告,数据库映像应该每天更新。 这是通过PowerShell脚本来实现的,该脚本用于监控备份文件夹,并在交付新备份时自动构建映像。 每日更新映像完成后,将创建容器并删除先前存在的容器。 该流程提供了有效的24 x 7报告。

该映像提供了SSRS容器和一套完整的数据库,因此每个容器(或实例(都可以独立运行,不会出现资源争用。 支持传统SQL服务器实例的映像使用类似的文件。 容器是使用 >码头工人创建 ,并从引用容器标识的前几个数字开始, >码头工人开始

SQL 服务器 SSR 使用容器横向扩展

Access the new container using Windows Auth and SQL Server Management studio using the image name (server\Instance10005).

实时同步数据库

SQL 服务器 SSR 使用容器横向扩展

虽然SSRS横向扩展操作通常是自动化的,但网络用户界面简化了图像和容器的管理和创建。 下图显示了可用的图像以及当前的容器。 还包括一个可视化工具,用于选择用于图像构建的文档文件。 对网络用户界面的访问包括用户/组级别的身份验证。

SQL 服务器 SSR 使用容器横向扩展

SSRS横向扩展体系结构需要一个负载平衡器来将入站流量分配给实例。 在新的横向扩展体系结构中,唯一的区别是需要将流量分配给共享一个主机知识产权地址但在不同端口上运行的SQL服务器容器。 这是通过入站网络地址转换规则来处理的,该规则将流量转发到容器主机上的特定端口。 大多数企业负载平衡器都支持精灵和端口转发。

VHD和存储阵列之间的权衡归根结底是访问和可扩展性。 几乎所有的SQL服务器环境都位于一个窗口环境中,并支持基于窗口的VHD克隆。 当与高性能固态硬盘存储相匹配时,视窗VHD克隆可扩展以支持高达3-4 TB的映像(直接存储空间可支持更大的映像). 由于易于采用,视窗VHD克隆是数据库管理员的首选。 另一方面,存储阵列提供了更高的映像可扩展性和性能,可以轻松扩展以支持10-20 TB或更大的环境。 当存储阵列可用且映像超过4 TB时,它们是首选。

窗子虚拟硬盘(VHDs)已用于托管生产SQL server环境多年,本文详细介绍了如何应用VHDs来支持SQL服务器标准版的SSRS横向扩展。 正在采用SSRS容器来解决公共云服务的差距,并为SSRS横向扩展创建新的体系结构。 许多人还应该从支持使用克隆环境的自由中受益,克隆环境包括SQL服务器容器和传统安装的实例。

相关文章: