简介

我们提供的StarWind HyperConverged Appliance(HCA),适用于正在寻找减少应用程序停机时间的方法,但受限于IT团队资源和/或预算的中小企业和分支机构。StarWind HCA是一个100%软件定义的超融合平台,采用Dell® OEM或StarWind品牌的服务器平台构建:我们使用Supermicro超级服务器。本文介绍了三个基准测试阶段中的第一个阶段。它展示了12节点可用的StarWind HCA集群性能。

硬件

每个节点都采用了英特尔® Xeon® Platinum 8268处理器、2个英特尔® Optane™ SSD DC P4800X系列硬盘和Mellanox ConnectX-5 100GbE网卡,它们都用Mellanox LinkX®铜缆连接到2个Mellanox SN2700 Spectrum™交换机。一般来说,我们使用的是标准的StarWind HyperConverged Appliances(Supermicro SuperServer机箱),其中只升级了CPU,以追赶人机交互行业的记录。

软件

在我们的设置中,StarWind HCA运行最快的软件:Microsoft Hyper-V(Windows Server 2019)和StarWind Virtual SAN服务应用程序在Windows用户区域中运行。 除避免中断驱动的IO外,StarWind还支持轮询,以通过将CPU周期转换为IOPS来减少延迟并提高性能。 我们还开发了TCP回送加速器,以绕过同一台计算机上的TCP堆栈,并开发了iSCSI负载均衡器,以将新的iSCSI会话分配给新的CPU内核,从而解决了Microsoft iSCSI启动器老化的问题。

在我们的网站上,您可以了解有关由StarWind Virtual SAN支持的超融合基础架构的更多信息。

12节点StarWind HyperConverged Appliance集群规格:

平台:Supermicro SuperServer 2029UZ-TR4 +
CPU: 2个Intel®Xeon®Platinum 8268处理器2.90 GHz。 开启英特尔®Turbo Boost,开启Intel® Hyper-Threading
RAM: 96GB
启动存储: 2个Intel®SSD D3-S4510系列(240GB,M.2 80mm SATA 6Gb / s,3D2,TLC)
存储容量: 2个Intel®Optane™SSD DC P4800X系列(375GB,1/2高度PCIe x4、3D XPoint™)。 安装了最新的可用固件。
RAW容量: 9TB
可用容量: 8.38TB
工作集容量: 4.08TB
联网: 2个Mellanox ConnectX-5 MCX516A-CCAT 100GbE双端口网卡
交换器 2个Mellanox SN2700 32个频谱端口100GbE以太网交换机

下图说明了服务器的互连情况。
注意: 在每台服务器上,每个NUMA节点都有1个Intel®SSD D3-S4510、1个Intel®Optane™SSD DC P4800X系列和1个Mellanox ConnectX-5 100GbE双端口网卡。 这种配置能够从每个硬件中挤出最大性能。 这样的连接不是推荐而是严格的要求。 为了获得类似的性能,不需要调整NUMA节点配置,这意味着默认设置是可以的。

软件设置

操作系统: 在所有节点上安装了Windows Server 2019数据中心评估版1809,build 17763.404,并在2019年5月1日提供了最新更新。考虑到性能角度,电源计划被设置为高性能,所有其他设置,包括相关的侧通道缓解措施(应用了Spectre v1和Meltdown的缓解措施),都保持在默认设置。

Windows安装:Hype-V角色、MPIO和故障转移集群功能
为了使部署过程更快,我们制作了Windows Server 2019的图像,安装了Hype-V角色,并启用了MPIO和Failover Cluster功能。之后,该镜像被部署在12x Supermicro服务器上。
驱动程序安装。 固件升级
安装Windows后,将为每个硬件应用Windows更新,并为Intel NVMe SSD安装固件更新。

StarWind Virtual SAN. 每台服务器上均已安装了当前可用的StarWind VSAN版本(8.0.0.12996)。 整个群集的可用容量为9TB RAW容量的8.38TB。 Microsoft建议每个服务器节点至少创建一个群集共享卷。 因此,对于12台服务器,我们使用ReFS创建了12个卷。

ReFS向我们展示了便利的性能,超过了使用NTFS文件系统时的性能。 每个卷具有340GB的容量,并使用了双向镜像弹性,并分配给两个服务器。 对于特定的工作集,我们以4.08 GB的可用总存储空间结束。 所有其他设置(例如列和交错)均为默认设置。 为了准确地仅测量持久性存储的IOPS,已禁用内存中CSV读取缓存。
StarWind iSCSI加速器(负载平衡器)。 我们将内置的Microsoft iSCSI Initiator与我们自己的用户模式iSCSI 启动器一起使用。 Microsoft iSCSI启动器是在“石器时代”开发的,当时服务器具有一个或两个插槽的CPU,每个插槽一个内核。 如今拥有更强大的服务器,启动器并没有发挥它应有的作用。 因此,我们开发了iSCSI加速器作为Microsoft iSCSI启动器和网络堆栈之间的筛选器驱动程序。 每次创建新的iSCSI会话时,都会将其分配给空闲的CPU内核。 因此,将统一使用所有CPU内核的性能,并且延迟接近零。 通过这种方式分配工作负载可确保智能计算资源的利用率:没有内核不堪重负,而其他内核则处于空闲状态。 StarWind iSCSI Accelerator(负载均衡器) 安装在每个群集节点上,以平衡Hyper-V服务器中所有CPU内核之间的虚拟化工作负载。

StarWind Loopback Accelerator. 作为StarWind Virtual SAN的一部分,StarWind回送加速器的安装和配置是为了在微软iSCSI 启动器通过环回接口连接到StarWind iSCSI Target的情况下显著降低延迟时间和CPU负载。这是在环回模式下的零拷贝内存,因此绕过了大部分的TCP堆栈。

注意: 由于StarWind回送加速器提供的快速路径,每个iSCSI LUN有2个loopback iSCSI会话和3个外部伙伴iSCSI会话。最小队列深度(LQD)MPIO
iSCSI/iSER (RDMA)模块 与StarWind HyperConverged Appliances一样,12节点HCI集群采用Mellanox网卡和交换机。在这项研究中,StarWind Virtual SAN利用iSER作为RDMA的主干链路,提供最大可能的性能。

注意: Windows Server 2019尚不支持iSER(RDMA)。 缺少所有RDMA会对CPU造成影响和限制性能的压力。 忽略本地Windows TCP / IP堆栈开销,StarWind的内置用户区域iSER启动器用于数据和元数据同步,并通过iSER(RDMA)确认“客人”写入。 内存中数据复制操作的延迟时间比我们预期的要长。 因此,4K IO模块的性能结果低于我们从存储中获得的结果。
因此,通过RDMA、环回中的DMA和TCP连接的组合,加快了IO性能。

NUMA节点。 考虑到每个群集节点上的NUMA节点配置,为了复制两台服务器之间的共享存储,使用位于同一NUMA节点上的网络适配器配置虚拟磁盘。例如,在集群节点3上,虚拟磁盘是在Intel Optane SSD上创建的,并且位于NUMA节点1上。所以,为了实现磁盘镜像,Mellanox ConnectX-5 100GbE网卡也位于NUMA节点1上。
CSV。 对于12节点超融合群集,根据Microsoft的建议,在12个同步镜像的StarWind虚拟磁盘之上创建了12个群集共享卷。 Hyper-V虚拟机。 根据经验归纳,我们取12个虚拟机×每2个虚拟处理器=24个虚拟处理器,以使所有性能饱和。这就是12个服务器节点上总共144个Hyper-V Gen 2虚拟机。每个虚拟机运行Windows Server 2019标准版,并被分配了2 GiB的内存。 注意: 已禁用NUMA扩展,以确保虚拟机始终根据有关NUMA扩展的已知事实始终以最佳性能运行。

基准测试

在虚拟化和超融合基础架构中,通常根据每秒输入/输出(I/O)操作的数量或 "IOPS "来判断性能--本质上是虚拟机可以执行的读或写的数量。一台虚拟机可以产生大量的随机或顺序读/写。在真实的生产环境中,通常有大量的虚拟机,这使得数据流完全随机化。4 kB模块对齐IO是Hyper-V虚拟机使用的模块大小,所以它是我们选择的IO模式。

在业界,硬件和软件厂商经常使用这种类型的模式。换句话说,他们基本上是在最坏的情况下衡量可能的最佳性能。

在这组文章中,我们不仅进行了与微软相同的测试,还对生产环境中常见的其他IO模式下的性能进行了基准测试。

VM Fleet. 我们使用了GitHub上提供的开源VM Fleet工具。VM Fleet可以轻松地在数百或数千台Hyper-V虚拟机中同时协调DISKSPD(流行的Windows微基准工具)。

让我们仔细看看DISKSPD设置。 为了使环境性能达到饱和,我们为每个文件(-t2)设置了2个线程。 考虑到英特尔的建议,给定数量的线程用于大量存储IO测试。 结果,在每个线程32个未完成IO(-o32)下,我们在饱和点获得了最高的存储性能。 要禁用硬件和软件缓存,我们指定了无缓冲的IO(-Sh)。 我们为随机工作负载指定了-r,为4 kB模块大小指定了-b4K。 我们通过-w参数来改变读/写比例。

综上所述,以下是DISKSPD的调用方式。 .\diskspd.exe -b4 -t2 -o32 -w0 -Sh -L -r -d900 [...]

StarWind命令中心 作为Windows Admin Center和笨重的System Center Configuration Manager的替代方案,StarWind命令中心整合了复杂的操作面板,在一个屏幕上提供有关每个环境组件状态的所有重要信息。

作为一个单屏工具,StarWind命令中心能够解决管理和监控IT基础设施、应用和服务的所有任务。作为StarWind生态系统的一部分,StarWind命令中心可以管理管理程序(VMware vSphere、Microsoft Hyper-V、Red Hat KVM等),集成Veeam备份与复制和公共云基础设施。除此之外,该解决方案还集成了StarWind ProActive高级支持,可全天候监控集群,预测故障,并在事情发生之前做出反应。
例如,StarWin命令中心存储性能操作面板具有一个交互式图表,绘制了在 Windows 中 CSV 文件系统层测量的群集范围内的总 IOPS。DISKSPD 和 VM Fleet 的命令行输出中提供了更详细的报告。 存储性能的另一面是延迟--一个IO需要多长时间才能完成。许多存储系统在重度排队下表现更好,这有助于最大化堆栈每一层的并行性和繁忙时间。但是有一个权衡:排队会增加延迟。例如,如果你能在亚毫秒级延迟的情况下做到100 IOPS,如果你能容忍更高的延迟,你可能也能达到200 IOPS。

延迟是要提防的:有时,最大的IOPS基准测试数只能通过延迟来实现,否则延迟是不可接受的。

在Windows中同一层测量的集群范围内的总IO延迟也被绘制在HCI操作面板上。

结论

任何提供容错的存储系统都必须对写入进行分布式拷贝,而写入必须穿越网络,并产生后端写放大。因此,最大的IOPS基准数字通常只在读取的情况下实现,特别是如果存储系统有常识性的优化,尽可能从本地副本中读取,而StarWind Virtual SAN做到了。

注意: 为了使其正确,我们向您展示VM Fleet结果和StarWind命令中心的结果,以及这些测试的视频。

操作1: 4К random read --> .\Start-Sweep.ps1 -b 4 -t 2 -o 32 -w 0 -p r -d 900


通过100%的读取,该群集传递了6,709,997 IOPS。 在13,200,000 IOPS的理论值中,这是51%的性能。

我们从哪里获得参考? 每个节点具有两个Intel Optane NVMe SSD,每个SSD执行550,000 IOPS。 2个磁盘* 12个节点* 550,000 IOPS /驱动器= 13,200,000 IOPS。
操作2: 4К random read/write 90/10 --> .\Start-Sweep.ps1 -b 4 -t 2 -o 32 -w 10 -p r -d 900

通过90%的随机读取和10%的写入,该群集可提供5,139,741 IOPS。

总结

在Supermicro SuperServer平台上封装的12个节点可用的StarWind HCA集群,这是它的第一阶段基准测试结果,每个集群都采用Intel® Xeon® Platinum 8268处理器和Intel® Optane™ SSD DC P4800X系列硬盘,以及Mellanox ConnectX-5 100GbE网卡。

无需缓存有12个节点的HCA集群提供了670万IOPS,是理论上1320万IOPS的51%。这是在纯生产配置下的突破性性能(只使用iSCSI而不使用RDMA进行客户端访问)。主干网在iSER上运行,没有使用任何专有技术。使用纯iSCSI启动器和StarWind Virtual SAN的任何管理程序都可以获得类似的性能结果。

对于下一个基准测试阶段,我们将按照Intel的建议,通过将Intel Optane NVMe SSD配置为缓存设备来最大限度地提高IO性能。