众所众知,OLTP工作负载作为读写密集型应用,其性能直接依赖于数据存放的存储。很多企业不惜投入巨大的前期投资购置外部存储阵列,以期获得良好的性能。虽然通过这一方法可以解决存储的性能瓶颈,但是在总体拥有成本上却令企业不堪重负。VMware的Virtual SAN可以帮助客户有效解决这一问题。将SQL Server部署在Virtual SAN中,可以降低50%的综合总体拥有成本(TCO)。而启用Virtual SAN 6.2中全闪存特有的去重/压缩技术以后,可以进一步提升存储效率,降低用户的总体拥有成本。

为了打消客户对于Virtual SAN在性能与可用性方面的疑虑,我们在Virtual SAN 6.2全闪存架构中针对SQL Server 2014进行了全面的性能评估。通过阅读本文,读者可以对SQL Server在全闪存架构Virtual SAN上的性能有细致的了解。


注释:本次性能测试分为上下两个部分,本文为上半部分,主要描述在启用Virtual SAN各种不同新特性的情况下运行SQL Server OLTP工作负载的性能表现。下半部分主要描述SQL Server在各种故障场景下的弹性性能以及在延伸集群上的性能表现。测试介绍在Virtual SAN 6.2中,引入了去重、压缩以及纠删码(RAID 5/6)来提高存储效率,降低空间开销,节省了存储成本。

在测试中,我们的目标之一是在新的空间效率提高技术启用的条件下运行OLTP工作负载。我们使用了4节点全闪存架构的Virtual SAN集群,分别在每台主机上部署1台SQL Server虚拟机,并在虚拟机下分别对200GB数据库和500GB数据库进行性能测试,测试工具为Benchmark Factory for Database。

全闪存架构Virtual SAN具体配置测试中我们采用4台双路ESXi主机,每台主机拥有两个12核并可启用超线程的处理器,256GB内存,2块400GB的Intel SSD作为缓存层以及8块400GB的Intel SSD作为容量层(即每台主机拥有两个磁盘组),网络配置基于万兆网络。

SQL Server数据库虚拟机配置

SQL Server数据库虚拟机的操作系统版本为Windows Server 2012 R2 64位数据中心版SP1,数据库版本为Microsoft SQL Server 2014企业版SP1,在测试中,我们在每台ESXi主机上放置一台SQL Server虚拟机。为了测试Virtual SAN对不同大小数据库支持的性能表现,我们配置了200GB和500GB两组数据库,不同类型虚拟机的具体硬件配置如下:


虚拟机名称

SQL  Server虚拟机角色

vCPU

内存(GB)

OS系统盘

数据盘

日志盘

临时数据盘

sql200-a&b

VM1/VM2 200GB类TPC-E数据库

24

80

100GB

2*200GB

100GB

80GB

sql500-a&b

VM3/VM4 500GB类TPC-E数据库

32

160

100GB

4*250GB

100GB

2*80GB

测试结果启用去重/压缩与校验和对性能的影响通过测试,全闪存架构Virtual SAN集群中的4台虚拟机可以持续获得总计接近8000的每秒交易数(TPS),同时保持平均磁盘读写延迟在2毫秒以下——去重/压缩、校验和在Virtual SAN中均已启用。全闪存架构的极致性能使得虚拟磁盘的平均读写延迟稳定在1毫秒至2毫秒之间。这意味着Virtual SAN 6.2在启用所有空间效率提高技术的情况下,仍然可以获得极佳的性能。

如图一所示,如果Virtual SAN未启用去重/压缩和校验和功能,200GB的数据库每秒交易数在1905~1906之间;500GB数据库的每秒交易数在2051~2158之间。而在启用去重/压缩和校验和功能后,200GB的数据库每秒交易数在1850~1851之间;500GB数据库的每秒交易数在2092~2172之间,如图二所示。从整个集群的角度,两种不同大小的数据库在Virtual SAN集群中启用去重/压缩与校验和后可以达到总计7965~8022的每秒交易数。我们测得的平均磁盘读写延迟在1毫秒至2毫秒之间。


SQL Server在全闪存架构Virtual SAN上的性能测试(上)_校验和

图一 未启用去重/压缩和校验和功能时每台虚拟机的TPS和虚拟磁盘平均读写延迟

SQL Server在全闪存架构Virtual SAN上的性能测试(上)_数据库_02

图二 启用去重/压缩和校验和功能时每台虚拟机的TPS和虚拟磁盘平均读写延迟

在SQL Server的类TPC-E性能测试中,我们最关注的是平均磁盘延迟。如表所示,在Virtual SAN默认存储策略,FTT=1的情况下,各场景的Virtual SAN磁盘读取延迟范围在1.7毫秒到2.1毫秒之间。在更改存储策略,启用纠删码——RAID 5以后,平均磁盘写入延迟增加到4.4毫秒。在所有的测试场景中,平均磁盘读取延迟都低于2毫秒。

表 四种不同测试场景下的具体性能 

测试场景

总计每秒交易数

平均响应时间(毫秒)

平均交易时间(毫秒)

总计虚拟机IOPS

平均虚拟磁盘读取延迟(毫秒)

平均虚拟磁盘写入延迟(毫秒)

未启用去重/压缩(启用校验和,RAID  1)

8022

9

34

17014

1.0

1.7

未启用去重/压缩(启用校验和,RAID  1)

7880

9

34

16716

1.1

2.1

启用去重/压缩(启用校验和,RAID  1)

7965

8

34

16656

1.6

1.9

启用去重/压缩(启用校验和,EC/RAID 5)

8007

8

35

16506

1.5

4.4


启用去重/压缩和纠删码(RAID 5)节省存储空间


在将数据库部署到启用去重/压缩和纠删码功能的全闪存架构Virtual SAN中后,我们测试了Virtual SAN存储结构化数据时(类OLTP/TPC-E 数据库)的空间节省情况。


我们在全闪存架构Virtual SAN集群中部署了五台虚拟机,其中两台虚拟机每台托管200GB的数据库,两台虚拟机每台托管500G的数据库,一台域控制器。

从虚拟机硬件配置表中可以看到,部署200GB数据库的虚拟机需要680GB的存储空间(100GB的操作系统,2*200GB数据盘,1*100GB日志盘以及1*80GB的临时数据盘);部署500GB数据库的虚拟机需要1360GB的存储空间(100GB的操作系统,4*250GB数据盘,1*100GB日志盘以及2*80GB的临时数据盘);部署域控制器虚拟机需要100GB的存储空间。

在Virtual SAN的默认存储策略下,总计部署空间超过8TB。如图三所示,Virtual SAN在启用去重/压缩功能之前部署五台虚拟机的物理写入空间大概需要5050GB。当启用去重/压缩功能后,实际的空间使用为2020GB。去重/压缩比率大约在2.27倍。在启用RAID 5后,实际的空间使用下降为1900GB,空间节省比大约在2.66倍。

SQL Server在全闪存架构Virtual SAN上的性能测试(上)_数据库_03

图三 部署SQL Server虚拟机时不同空间效率提高技术的空间节省率

此外,启用校验和、去重/压缩、纠删码功能并不会明显占用主机的CPU资源。如图四所示,各台主机的物理CPU利用率在四种测试场景中都非常相近。


SQL Server在全闪存架构Virtual SAN上的性能测试(上)_数据库_04

图四 四种测试场景下各台主机的平均物理CPU利用率


总结

通过实际测试与验证,我们可以得出结论:Virtual SAN 6.2在启用去重/压缩、校验和以及纠删码等新特性后,对SQL Server的性能影响微乎其微。此外,启用全闪存独有的去重/压缩技术可以节省50%以上的数据存储空间,结合纠删码(RAID 5)技术甚至可以达到60%以上。Virtual SAN 6.2在全闪存架构下的性能表现让人眼前一亮。关于SQL Server在Virtual SAN上面对各种场景故障的弹性性能以及在延伸集群上的性能表现,我们将于下半部分详细描述,敬请期待!


关于作者本文作者为VMware存储与可用性事业部Virtual SAN解决方案团队(Product Enablement,PE)的武晓今/丁楠。Virtual SAN解决方案团队主要负责Virtual SAN与各种行业关键应用平台的融合。通过设计、构建、验证关键应用在Virtual SAN超融合架构下各种场景的性能表现,针对产品特性进行性能调优,并以参考架构——白皮书的方式向客户提供使用Virtual SAN的最佳实践。