使用HCIBench工具对vSAN超融合进行性能测试
1 前言
在当前AIGC背景下,存力、运力都是和算力同等重要的新算力因素,如何对新算力存储进行性能测试是对POC、UAT阶段进行方案验证、产品选型、架构优化的有效方法
超融合基础架构 (HCI) 是软件定义的统一系统,兼具传统数据中心的所有要素:存储、计算、网络
在HCI架构中,软件定义存储(SDS)是有别于传统虚拟化平台核心的关键要素,软件定义存储(SDS)采用将存储软件与硬件分隔开的存储架构,仅需要标准x86服务器的可扩展体系架构来降低资本性支出(CAPEX),无需专门构建的昂贵网络连接,此外HCI还具有良好的扩展性,可在不造成中断和超额置备的情况下进行扩展,从而降低基础架构成本
VMware vSAN
是一款软件定的企业存储解决方案,支持超融合基础架构系统,vSAN
与VMware vSphere
完全集成在一起,作为ESXi Hypervisor
内的分布式软件层
如何对vSAN进行性能测试重要意义包括:
1、加速客户POC的性能测试
2、在UAT环境中进行HCI性能验证
3、针对不同服务器硬件配置、驱动程序(包括ESXi自带或者VMD驱动)、交换机参数配置(是否开启PFC)等进行性能比较,用于最终方案的选择
1.1 HCIBench介绍
官方推荐HCIBench作为vSAN的性能测试工具,其本质是对开源的性能测试工具Vdbench
和Fio
以Photon guest VM为基础镜像进行重新打包
PhotonOS是VMware专为ESXi定制的容器操作系统
然后虚拟机模版部署在vSphere平台上,利用RVC/GOVC
控制vCenter通过自动化脚本向vSphere平台部署用于基准性能测试的虚拟机,用于产生测试工作负载
在各工作负载的虚拟机内,利用FIO/VDBench
开源工具进行基线测试,HCIBench控制虚拟机(Control VM)会不断收集相关信息,同时新添加的Grafana
工具,以容器化部署的方式在Control VM中对外以可视化的形式提供服务
FIO
FIO(Flexible I/O Tester)是一个用于测试磁盘、文件系统、块设备和网络设备性能的工具。它可以模拟不同类型的I/O负载,包括随机或顺序读写、混合读写、随机或顺序访问等
FIO提供了丰富的选项和参数,可以对测试进行高度定制化配置,以满足各种应用场景和需求。FIO是开源软件,可在Linux、Unix、Windows等多种平台上运行
VDBench
VDBench是一款基于Java编写的性能基准测试工具。它可以测试不同类型的存储设备,如磁盘,网络文件系统(NFS),网络附加存储(NAS)和存储区域网络(SAN)等
VDBench的设计目标是测试存储系统的性能特征,如带宽和IOPS(每秒输入/输出操作数)
1.2 HCIBench架构
HCIBench专为针对vSphere中的共享或本地数据存储运行性能测试而设计,它使用Vdbench
或Fio
生成测试工作负载
注意:
实际上HCIBench并没有包括Vdbench的二进制程序,如果需要以Vdbench的方式提供测试,在测试阶段会从Oracle网站进行在线下载
HCIBench以开放虚拟化设备(OVA格式)的形式提供,用于安装在vSphere上,具体架构如下图所示
包含以下组件
1、Ruby vSphere Console (RVC)
RVC是基于Ruby的一个vSphere命令行工具,他可以管理ESXi或者vCenter
2、GOVC
GOVC是基于 VMware 官方govmomi库的一个 vSphere 命令行工具,使用它可以通过命令或脚本,实现对 VMware vSphere 系统的管理
注意:
从HCIBench2.6开始GOVC开始添加到Control VM中,HCIBench的核心引擎最终将从RVC转移到GOVC
3、Docker
3.1 Graphite Container: 1.1.5-10
3.2 Grafana Container: 8.3.11
3.3 InfluxDB Container: 1.8.1-alpine
4、vSAN Observer
5、Automation bundle
6、Configuration files
7、Fio binary: 3.30
8、Photon guest VM template: 3.0
其中Photon guest VM template
用于部署Guest VM产生工作负载
2 部署步骤
2.1 部署环境
当前环境是三节点ESXi,组成vSphere
ESXi版本为8.0,vSphere为8.0
其中各ESXi节点的硬件配置为:DELL PowerEdge R740,Intel(R) Xeon(R) Gold 6230R CPU @ 2.10GHz,512G内存,全闪硬盘(1.92TB SSD SATA)
2.2 安装
2.2.1 下载OVA文件
访问https://flings.vmware.com/hcibench
选择下载HCIBench-2.8.2.ova
2.2.2 部署OVF模版
部署OVF模板
选择OVF模版
选择名称和文件夹
选择计算资源【如果当前集群配置了DRS,则会自动进行分配】
查看详细信息
选择接收许可
选择存储,存储选择vSAN或者本地存储,对测试无影响
配置网络【这部分很重要,错误的配置将导致后续测试无法完成】,最简单的配置就是将两套网络都选择默认的VM Network
VM Network
也是和vCenter及ESXi主机的管理网络是一致的
自定义模版,这里是对网络的IP地址进行最终参数配置,以及配置日后登录凭证
2.2.3 HCIBench网络地址修改
如果在安装阶段并未配置静态IP地址,且部署环境内并没有配置DHCP服务器,导致工作站无法访问HCIBench的管理界面,此时需要通过vCenter提供的管理界面进行控制台登录,手动修改地址
修改/etc/systemd/network/eth0.network
1 | cat > /etc/systemd/network/eth0.network <<EOF |
重启network服务
1 | service network restart |
测试与VCenter的网络连通性
1 | ping -c 3 192.168.100.100 |
重新检查HCIBench虚拟机的网络配置
2.3 登录测试
正常完毕后,登录到https://ip:8443可以正常访问HCIBench控制台界面
注意:
务必采用https方式打开界面
登录的用户名和密码是在安装OVF模版过程中填入的用户名和密码
Root Credential
,而非vCenter或者ESXi的用户名和密码
登录的具体界面如下
3 配置测试参数
3.1 配置vSphere环境信息
3.1.1 配置必选项
未标记OPTIONAL
均为必选项,具体包括:
1、vCenter Hostname/IP:vCenter的主机名或者IP地址
2、Datacenter Name:数据中心的名称
3、Cluster Name:集群的名称
Datacenter Name
和Cluster Name
需要和VCenter中的相关信息保持一致
vCenter Username:vCenter控制页面的登录用户名
vCenter Password:vCenter控制页面的密码
Datastore(s) Name:这里选择vSAN部署的具体名称
Datastore(s) Name
需要和VCenter中的相关信息保持一致
3.1.2 配置非必选项
其他显示OPTIONAL
为非必选项,例如
Storage Policy
用于提供部署工作负载的所采用的vSAN的存储策略
如果选择Clear Read/Write Cache Before Each Test Case
和vSAN调试模式
都必须提供ESXi主机的凭据,包括访问IP地址、用户名、密码,而且必须开启目标ESXi的SSH服务
Specify Hosts to Deploy
用于指定部署工作负载虚拟机的目标ESXi主机的相关地址
3.1.3 关于工作负载VM网络
实际上配置界面提供了关于工作负载虚拟机网络的配置
可以使用DHCP或者静态的方式,也可以指定开始IP地址,相关子网掩码等设置
建议可以不部署DHCP服务器,也不对工作负载虚拟机的IP地址进行静态指定。各工作负载的虚拟机会通过IPV6方式与Control VM进行通讯
3.2 配置基准测试工具
Benchmarking Tool
是基准测试工具
性能测试工具默认选择FIO
工具,如果选择VDBENCH
则会从Oracle网站进行下载,而FIO二进制已经内置在HCIBench内
可以选择Easy Run
选项,则默认选择以下几种测试方案
可以看出,Workloads包括
1、4K block 70%顺序读 100%随机读
2、4K block 100%顺序读 100%随机读
3、8K block 50%顺序读 100%随机读
4、256K 100%顺序写和顺序读
配置结束后选择SAVE CONFIG
进行保存配置
选择VALIDATE CONFIG
开始正式测试
此时登录到vCenter,查看部署的Guest VM进度,可以看到Easy Run
选项,Control VM已部署了6个工作负载的虚拟机在vSphere平台上
开始测试时,界面可以查看当前部署进度
4 结果查看
4.1 测试过程中查看
可以在测试显示窗口中点击HERE TO MONITOR FIO PERFORMANCE
跳转到Grafana界面进行查看
或者直接登录到https://ip:3000可以实时查看当前状态
查看vSAN的状态
测试过程中,也可以通过vCenter提供的性能监控数值进行比较,基本是一致的
实际上HCIBench在测试过程中,是根据Workload分阶段查看实时状态
可以通过Grafana
查看测试过程中的实时数据
4.2 最终结果查看
登录https://ip:8443/results/查看最终测试结果
Blocksize | IOPS | Throughput(MB) | Read Latency(ms) | Write Latency(ms) | Read Percentage | CPU.USAGE | CPU.UTILIZATION | MEM.USAGE |
---|---|---|---|---|---|---|---|---|
256K | 2215.57 | 553 | 0 | 21.62 | 0% | DellR740: 9.02%; | DellR740: 4.01%; | DellR740: 12.14%; |
4K | 330206.5 | 1289 | 0.58 | 0 | 100% | DellR740: 42.79%; | DellR740: 21.52%; | DellR740: 12.16%; |
4K | 68775.18 | 268 | 3.48 | 1.18 | 70% | DellR740: 17.04%; | DellR740: 7.75%; | DellR740: 12.21%; |
8K | 59733.23 | 466 | 2.33 | 4.1 | 50% | DellR740: 20.96%; | DellR740: 9.59%; | DellR740: 12.24%; |
也可以查看各项workload的详细性能测试结果
例如查看fio-8vmdk-100ws-4k-70rdpct-100randompct-4threads-50compress-50dedupe-1693497804-res.txt
1 | Datastore = vsanDatastore |
5 故障排查
如果发现测试工作启动,往往问题出现在第一阶段:部署工作负载虚拟机
,根据提示点击查看log日志
故障一:日志显示vSAN Is Not Enabled in Cluster
,具体如下:
1 | 2023-08-31 11:49:28 +0000: ------------------------------------------------------------------------------ |
故障定位在于vSphere环境信息
配置错误,Datacenter Name
和Cluster Name
没有和VCenter中的相关信息保持一致,更新后重新测试
故障二:日志显示vSAN Datastore not specified
,具体如下:
1 | 2023-08-31 11:51:29 +0000: ------------------------------------------------------------------------------ |
故障定位在于Datastore(s) Name
需要和VCenter中的相关信息保持一致,更新后重新测试