VxRail超融合平台性能测试方案.docx
《VxRail超融合平台性能测试方案.docx》由会员分享,可在线阅读,更多相关《VxRail超融合平台性能测试方案.docx(25页珍藏版)》请在冰豆网上搜索。
VxRail超融合平台性能测试方案
VxRail超融合平台性能测试方案
HCIBench
目录
1HCIBench前言3
1.1使用HCIBench必要性3
1.2获得HCIBench4
1.3HCI工具架构5
2部署和配置HCIBench6
2.1创建端口组7
2.2部署HCIBench7
2.3配置HCIBench12
2.3.1vSphere环境信息12
2.3.2VirtualSAN集群主机信息15
2.3.3Vdbench客户虚拟机设置16
2.3.4Vdbench参数配置17
2.3.5验证配置19
3运行HCIBench测试21
3.1启动测试21
3.2收集测试结果23
3.3清理测试25
4HCIBench最佳实践26
1HCIBench前言
1.1使用HCIBench必要性
在超融合架构中,每个服务器既用来支持许多应用程序虚拟机,也为供应用程序使用的存储池贡献存储。
建模此架构的用例时,最好调用大量的测试虚拟机,而且每个虚拟机访问多个存储的VMDK。
目标是模拟非常繁忙的群集。
遗憾的是,常见存储性能测试工具不直接支持此模型。
IOMeter、FIO等传统测试工具不得不手动创建多个测试虚拟机,并在虚拟机上配置VMDK、安装配置传统测试工具以生成工作负载、监控采集相关数据,以完成性能测试。
这需要花费很多时间,并且可能引入测试误差。
因此,测试超融合架构(例如VirtualSAN)的性能会带来许多不同的挑战。
为正确模拟生产群集的工作负载,最好跨主机部署多个虚拟机,且每个虚拟机有多个磁盘。
此外还需要同时对每个虚拟机和磁盘运行工作负载测试。
为解决在超融合环境中正确运行性能测试的挑战,VMware设计了一个叫作HCIbench的存储性能测试自动化工具,它能自动运行常见的Vdbench测试工具。
用户只需指定他们想要运行的测试的参数,HCIbench即会指示Vdbench在群集中的每个节点上做什么。
HCIbench旨在通过一致、可控的方式,简化和加速客户的概念证明(POC)性能测试。
此工具可以使部署测试虚拟机的端到端流程实现自动化,协调工作负载运行,聚合测试结果,并收集故障排除所需的数据。
评估人员只需选择他们感兴趣的配置文件,剩下的工作就交给HCIbench快速、轻松地完成。
在3节点VxRail120,400GBSSD和4块1.2TBSAS盘的测试中可以达到20万以上的IOPS。
1.2获得HCIBench
HCIBench调用Vdbench,两者都可以从各自官网免费下载:
HCIBench:
可以从其上下载安装OVA和用户手册:
Vdbench:
Vdbench可以从Oracle官网下载,但需要注册一个账号:
1.3HCI工具架构
控制器虚拟机OVA,包含以下组件:
∙RubyvSphereConsole(RVC)
∙VirtualSANObserver
∙自动化捆绑组件
∙配置文件
控制器虚拟机安装了所有需要的组件,其核心组件是可扩展的RVC。
RVC是该性能测试工具的引擎,负责部署Vdbench客户虚拟机,运行Vdbench测试,收集测试结果,并通过VirtualSANObserver来架空VirtualSAN的运行。
自动化捆绑组件,包括Ruby脚本和Bash脚本。
其功能模块化用于测试虚拟机的部署,VMDK初始化和Vdbench测试运行,以及自动化和简化整个测试过程。
自动化捆绑组件读取有关测试环境和目标工作负载配置的用户定义配置信息,然后与RVC做必要的交互。
2部署和配置HCIBench
注意:
∙推荐使用Firefox或Chrome浏览器,IE不兼容VMware-ClientIntegrationPlugin插件。
∙集群内每台ESXi都要开启SSH服务。
∙执行测试时,建议将VxRail集群DRS关掉。
2.1创建端口组
在分布式交换机上,创建一个端口组,可起任意名称,其余使用默认配置即可。
已创建出端口组。
2.2部署HCIBench
部署HCIBench很简单,将HCIbench.ova以标准虚拟机形式部署到vSphere环境中。
在vSphereWebClient中上传OVA文件需要安装VMware-ClientIntegrationPlugin插件
下载地址:
注意:
推荐使用Firefox或Chrome浏览器,IE不兼容该插件。
安装插件后,上传OVA。
接受许可协议。
选择部署目录,命名虚拟机名称。
选择主机集群。
选择VirtualSANDefaultStoragePolicy
可以看到只有vSAN兼容该策略。
∙PublicNetwork:
相当于HCIBench的管理IP,选择vCenterServerNetwork;
∙PrivateNetwork:
是Vdbench实例的内部网络,选择开始创建的端口组;
选择Static,为HCIBench配置固定管理IP;
到下一步,上传安装部署。
2.3配置HCIBench
部署完成后,可以通过浏览器打开http:
//Controller_VM_IP:
8080/进行测试配置,并开始进行测试。
主要有4个需要配置的部分:
∙vSphere环境信息
∙VirtualSAN集群主机信息
∙Vdbench客户虚拟机设置
∙Vdbench参数配置
2.3.1vSphere环境信息
必须提供包括vCenterIP地址、vCenter用户名和密码、数据中心名称、VirtualSAN群集名称和需要测试的数据存储名称。
∙NetworkName:
定义Vdbench客户虚拟机应该使用的网络,其默认值是VMNetwork。
∙EnableDHCPServiceontheNetwork:
允许用户在所映射的“HCIBench内部网络”上启用DHCP服务。
∙DatastoreName:
HCIBench支持并行测试多个数据存储,只需在每行输入一个数据存储的名称。
在这种情况下,虚拟机在多个数据存储上均匀分布。
例如,输入了两个数据存储和100台虚拟机,那么每个数据存储上将会部署50台虚拟机。
DataCenter,DataStore,Network,vSANCluster的名称,需从vSphereWebClient上获得。
2.3.2VirtualSAN集群主机信息
配置群集主机信息是可选的。
如果此参数未选中,HCIbench将创建Vdbench客户机虚拟机,然后将其循环克隆到VirtualSAN群集中的所有主机上。
在此模式下部署的Vdbench客户机虚拟机的命名约定是―vdbench-vc--<#>。
如果选中此选项,您要部署HCIbench客户机虚拟机的每个主机都必须手动添加到―主机‖部分。
最佳做法是,建议保持群集主机信息参数不被选中,从而让HCIbench将虚拟机平均分布到每个主机上。
注意:
在VxRail上由于使用的是vDS,所以只能不选择该选项。
2.3.3Vdbench客户虚拟机设置
在本部分,唯一的必需参数是虚拟机数量,它指定要为测试部署的Vdbench客户机虚拟机的总数。
如果输入多个数据存储,这些虚拟机将平均部署在多个数据存储上。
数据磁盘数和数据磁盘大小参数是可选的:
数据磁盘数参数指定要将多少需要测试的VMDK添加到每个Vdbench客户机虚拟机中。
数据磁盘大小参数指定要测试的每个VMDK的大小(GB)。
模拟工作负载实例的总数为虚拟机数*(乘以)数据磁盘数。
两个参数的默认值均为10。
注意:
设置每个数据磁盘的数量和大小之前,应当认真考虑,确保有足够的计算和存储资源支持目标工作负载。
除此之外,所有测试虚拟机的累计大小不应超过整个群集上可用的缓存大小。
您应当谨慎估算大小,确保有足够的计算和存储资源来支持目标工作负载实例水平。
配置完成后,上传Vdbench包。
存放在/opt/vm-template中。
2.3.4Vdbench参数配置
点击Generate,可以具体配置Vdbench虚拟机参数。
∙TestName:
通过指定名称,会在控制虚拟机的本地磁盘路径/opt/output/results/创建同名目录,用于存放测试结果。
如果没有指定测试名称,会产生一个名为“results+时间戳”的同名目录
∙如果之前上传或生成过参数文件,可以选择已经存在的Vdbench参数文件并使用。
如果期望的参数文件不存在,可自行创建,并通过UploadanduseaVdbenchParameterfilefortesting上传到控制器。
同时,可以通过VdbenchparameterFileGeneratePage通过GUI产生自定义的参数文件。
∙NumberofDiskstoTest:
必须和Vdbench参数客户虚拟机设定中的NumberofDataDisk数值一致。
∙InitializeStorage:
测试前初始化用于测试的数据磁盘。
∙TestingDuration:
覆盖定义在Vdbench参数文件中的持续时间参数。
该参数用于定义每次测试的时间长度。
如果不指定,Vdbench测试会使用默认的测试持续时间。
∙CleanupVMs:
所有测试客户虚拟机会在测试完成后被删除。
2.3.5验证配置
保存配置,以便于下次测试。
然后点击Validate,验证以上配置信息。
注意:
集群内每台ESXi都要开启SSH服务。
3运行HCIBench测试
3.1启动测试
验证通过后,就可以单击Test启动测试,测试过程中,可以单击CancelTest来终止测试进程。
注意:
执行测试时,建议将DRS关掉。
3.2收集测试结果
测试完成后,会在/opt/output/results/TestName下产生在Vdbench参数文件中定义的同样名称的子目录,并包含每个Vdbench实例的所有原始测试结果和VirtualSANObserver统计信息数据。
可以在http:
//HCIBench_IP/results访问测试结果。
每个测试运行的汇总结果会存放在一个名为-res.txt的文本文件中。
除了文本文件外,另一名为iotest-vdbench-vm的子目录下存放了VirtualSANObserver产生的统计信息。
双击打开统计信息目录下的stats.html文件,可以查看VirtualSAN性能统计信息。
同时,还可以点击zip文件,将测试结果保存在本地。
3.3清理测试
如果测试失败,可以通过以下命令,清除测试虚拟机。
4HCIBench最佳实践
工作集是正确运行性能测试和获得正确信息的最重要的因素之一。
为获得最佳性能,虚拟机的工作集应当主要在缓存中。
估算VirtualSAN闪存大小时,必须谨慎考虑驻留在缓存中的所有虚拟机的工作集。
一般经验是将缓存大小确定为已消耗的虚拟机存储的10%(不包含复制对象)。
以下流程举例说明了使用HCIbench执行性能测试时,如何估算相应工作集的大小。
假设有一个四节点集群,每节点一个400GBSSD。
这为群集提供了1.6TB的总缓存。
VirtualSAN中的可用总缓存的70%分给读取缓存,30%分给写入缓存。
在我们的示例中,可用读取缓存为1120GB,可用写入缓存为480GB。
为了让HCIbench正确适应可用缓存总量,用于I/O测试的所有VMDK的总容量不应当超过1,120GB。
设计一个测试情形,即每主机4个虚拟机,每个虚拟机有5X10GBVMDK,总大小为800GB。
这允许测试工作集放在缓存中。
使得虚拟机总数、每个虚拟机中的数据磁盘数量、数据磁盘大小三者的乘积小于SSD的大小乘以70%(混合模式中的读取缓存)乘以每个主机中的磁盘组数量再乘以主机数量后的积。
公式如下:
虚拟机数量*数据磁盘数量*数据磁盘大小<缓存层SSD容量*70%读取缓存(混合)*每个主机中的磁盘组数*主机数量
此示例的具体运算如下:
∙个虚拟机*5个数据磁盘*10GB=800GB,
∙400GB的SSD*70%*每个主机1个磁盘组*4个主机=1,120GB
∙800GB的工作集大小<群集中的1,120GB读取缓存
执行性能测试之前,了解要测试的生产工作负载的性能特点非常重要。
不同的应用程序有不同的性能特点。
了解这些特点是确保性能测试成功的关键。
当不可能使用实际应用程序或应用程序特定测试工具执行测试时,设计一个尽可能匹配生产工作负载的测试很重要。
不同的工作负载类型在VirtualSAN上有不同的表现。
在VirtualSAN上运行的持续顺序写入工作负载(例如虚拟机克隆操作)首先只填充到缓存中,而后面的写入操作需要等待前面的缓存转储到旋转磁盘层之后才能将更多I/O写入缓存,因此性能反映的是旋转磁盘而非闪存的运行状况。
持续顺序读取工作流也是这样。
如果块不在缓存中,则必须从旋转磁盘中提取。
VirtualSAN的缓存设计对混合工作负载的益处更大。
HCIbench允许您更改读取百分比和随机百分比参数。
开始时,建议将读取百分比参数设为70,将随机百分比参数设为30%。
在配置工作负载的过程中,建议选择初始化存储的选项。
此选项可以将测试中使用的每个虚拟机的磁盘置零,帮助缓解性能测试阶段中的第一次写入处罚。
由于经常读取的块保留在缓存中,读取性能会有所提高。
在生产环境中,活动块已在缓存中。
运行任何类型的性能测试时,记住这一点很重要。
最佳做法是,性能测试应当至少包含15分钟预热期。
此外,还请记住,测试运行时间越长,结果越精确。
在缓存预热期之外,HCIbench测试应配置为至少一个小时。
对于相同等级的待处理IO(OutstandingIO),不同块尺寸要求的线程数不同。
如果某些性能数据很低,请考虑增加每个VMDK的线程数以优化测试结果。