0%

使用HCIBench工具对vSAN超融合进行性能测试

使用HCIBench工具对vSAN超融合进行性能测试

1 前言

在当前AIGC背景下,存力、运力都是和算力同等重要的新算力因素,如何对新算力存储进行性能测试是对POC、UAT阶段进行方案验证、产品选型、架构优化的有效方法

超融合基础架构 (HCI) 是软件定义的统一系统,兼具传统数据中心的所有要素:存储、计算、网络

在HCI架构中,软件定义存储(SDS)是有别于传统虚拟化平台核心的关键要素,软件定义存储(SDS)采用将存储软件与硬件分隔开的存储架构,仅需要标准x86服务器的可扩展体系架构来降低资本性支出(CAPEX),无需专门构建的昂贵网络连接,此外HCI还具有良好的扩展性,可在不造成中断和超额置备的情况下进行扩展,从而降低基础架构成本

VMware vSAN是一款软件定的企业存储解决方案,支持超融合基础架构系统,vSANVMware vSphere完全集成在一起,作为ESXi Hypervisor内的分布式软件层

如何对vSAN进行性能测试重要意义包括:

1、加速客户POC的性能测试

2、在UAT环境中进行HCI性能验证

3、针对不同服务器硬件配置、驱动程序(包括ESXi自带或者VMD驱动)、交换机参数配置(是否开启PFC)等进行性能比较,用于最终方案的选择

1.1 HCIBench介绍

官方推荐HCIBench作为vSAN的性能测试工具,其本质是对开源的性能测试工具VdbenchFio以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中的共享或本地数据存储运行性能测试而设计,它使用VdbenchFio生成测试工作负载

注意:

实际上HCIBench并没有包括Vdbench的二进制程序,如果需要以Vdbench的方式提供测试,在测试阶段会从Oracle网站进行在线下载

HCIBench以开放虚拟化设备(OVA格式)的形式提供,用于安装在vSphere上,具体架构如下图所示

image-20230831181326290

包含以下组件

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)

image-20210623210717041

2.2 安装

2.2.1 下载OVA文件

访问https://flings.vmware.com/hcibench

image-20230901145113670

选择下载HCIBench-2.8.2.ova

2.2.2 部署OVF模版

部署OVF模板

image-20230901145748149

选择OVF模版

image-20230901145655936

选择名称和文件夹

image-20230901145832475

选择计算资源【如果当前集群配置了DRS,则会自动进行分配】

image-20230901145855041

查看详细信息

image-20230901150009200

选择接收许可

image-20230901150025733

选择存储,存储选择vSAN或者本地存储,对测试无影响

image-20230901150045677

配置网络【这部分很重要,错误的配置将导致后续测试无法完成】,最简单的配置就是将两套网络都选择默认的VM Network

VM Network也是和vCenter及ESXi主机的管理网络是一致的

image-20230901151148094

自定义模版,这里是对网络的IP地址进行最终参数配置,以及配置日后登录凭证

image-20230901151826206

2.2.3 HCIBench网络地址修改

如果在安装阶段并未配置静态IP地址,且部署环境内并没有配置DHCP服务器,导致工作站无法访问HCIBench的管理界面,此时需要通过vCenter提供的管理界面进行控制台登录,手动修改地址

修改/etc/systemd/network/eth0.network

1
2
3
4
5
6
7
cat > /etc/systemd/network/eth0.network <<EOF
[Match]
Name=eth0

[Network]
Address=192.168.100.111/24
EOF

重启network服务

1
service network restart

测试与VCenter的网络连通性

1
2
3
4
5
6
7
8
9
ping -c 3 192.168.100.100
PING 192.168.100.100 (192.168.100.100) 56(84) bytes of data.
64 bytes from 192.168.100.100: icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from 192.168.100.100: icmp_seq=2 ttl=64 time=0.097 ms
64 bytes from 192.168.100.100: icmp_seq=3 ttl=64 time=0.090 ms

--- 192.168.100.100 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 28ms
rtt min/avg/max/mdev = 0.090/0.097/0.105/0.010 ms

重新检查HCIBench虚拟机的网络配置

image-20230901152947844

2.3 登录测试

正常完毕后,登录到https://ip:8443可以正常访问HCIBench控制台界面

注意:

务必采用https方式打开界面

登录的用户名和密码是在安装OVF模版过程中填入的用户名和密码Root Credential,而非vCenter或者ESXi的用户名和密码

登录的具体界面如下

image-20230831183639272

3 配置测试参数

3.1 配置vSphere环境信息

3.1.1 配置必选项

未标记OPTIONAL均为必选项,具体包括:

1、vCenter Hostname/IP:vCenter的主机名或者IP地址

2、Datacenter Name:数据中心的名称

3、Cluster Name:集群的名称

Datacenter NameCluster Name需要和VCenter中的相关信息保持一致

image-20230831211529609

vCenter Username:vCenter控制页面的登录用户名

vCenter Password:vCenter控制页面的密码

Datastore(s) Name:这里选择vSAN部署的具体名称

Datastore(s) Name需要和VCenter中的相关信息保持一致

image-20230831211442124

3.1.2 配置非必选项

其他显示OPTIONAL为非必选项,例如

image-20230901153056029

Storage Policy用于提供部署工作负载的所采用的vSAN的存储策略

如果选择Clear Read/Write Cache Before Each Test CasevSAN调试模式都必须提供ESXi主机的凭据,包括访问IP地址、用户名、密码,而且必须开启目标ESXi的SSH服务

Specify Hosts to Deploy用于指定部署工作负载虚拟机的目标ESXi主机的相关地址

3.1.3 关于工作负载VM网络

实际上配置界面提供了关于工作负载虚拟机网络的配置

可以使用DHCP或者静态的方式,也可以指定开始IP地址,相关子网掩码等设置

建议可以不部署DHCP服务器,也不对工作负载虚拟机的IP地址进行静态指定。各工作负载的虚拟机会通过IPV6方式与Control VM进行通讯

image-20230831214150759

3.2 配置基准测试工具

Benchmarking Tool是基准测试工具

性能测试工具默认选择FIO工具,如果选择VDBENCH则会从Oracle网站进行下载,而FIO二进制已经内置在HCIBench内

image-20230831193754047

可以选择Easy Run选项,则默认选择以下几种测试方案

image-20230831194640165

可以看出,Workloads包括

1、4K block 70%顺序读 100%随机读

2、4K block 100%顺序读 100%随机读

3、8K block 50%顺序读 100%随机读

4、256K 100%顺序写和顺序读

配置结束后选择SAVE CONFIG进行保存配置

image-20230901102405767

选择VALIDATE CONFIG开始正式测试

image-20230831195838510

此时登录到vCenter,查看部署的Guest VM进度,可以看到Easy Run选项,Control VM已部署了6个工作负载的虚拟机在vSphere平台上

image-20230831195950901

开始测试时,界面可以查看当前部署进度

image-20230831200101562

4 结果查看

4.1 测试过程中查看

可以在测试显示窗口中点击HERE TO MONITOR FIO PERFORMANCE跳转到Grafana界面进行查看

image-20230831213127208

或者直接登录到https://ip:3000可以实时查看当前状态

image-20230831203947932

查看vSAN的状态

image-20230831204139388

测试过程中,也可以通过vCenter提供的性能监控数值进行比较,基本是一致的

image-20230831212736607

实际上HCIBench在测试过程中,是根据Workload分阶段查看实时状态

image-20230831223051158

可以通过Grafana查看测试过程中的实时数据

image-20230831223015337

4.2 最终结果查看

登录https://ip:8443/results/查看最终测试结果

image-20230901142704932

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的详细性能测试结果

image-20230901142806802

例如查看fio-8vmdk-100ws-4k-70rdpct-100randompct-4threads-50compress-50dedupe-1693497804-res.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Datastore     = vsanDatastore
=============================
JOB_NAME = job0
VMs = 6
IOPS = 68775.18 IO/S
THROUGHPUT = 268.00 MB/s
R_LATENCY = 3.48 ms
W_LATENCY = 1.18 ms
95%tile_R_LAT = 8.00 ms
95%tile_W_LAT = 1.00 ms
=============================
Resource Usage:
+----------------+------------+------------------+------------+
| Resource Utilization |
+----------------+------------+------------------+------------+
| DellR740 | cpu.usage% | cpu.utilization% | mem.usage% |
+----------------+------------+------------------+------------+
| 192.168.100.50 | 20.6 | 9.36 | 15.18 |
| 192.168.100.51 | 19.87 | 9.13 | 12.0 |
| 192.168.100.52 | 10.65 | 4.76 | 9.45 |
+----------------+------------+------------------+------------+
| Average | 17.04 | 7.75 | 12.21 |
+----------------+------------+------------------+------------+


cpu.usage - Provides statistics for logical CPUs. This is based on CPU Hyperthreading.
cpu.utilization - Provides statistics for physical CPUs.

5 故障排查

如果发现测试工作启动,往往问题出现在第一阶段:部署工作负载虚拟机,根据提示点击查看log日志

故障一:日志显示vSAN Is Not Enabled in Cluster,具体如下:

1
2
3
2023-08-31 11:49:28 +0000: ------------------------------------------------------------------------------
2023-08-31 11:49:28 +0000: vSAN Is Not Enabled in Cluster DellR740!
2023-08-31 11:49:28 +0000: ------------------------------------------------------------------------------

故障定位在于vSphere环境信息配置错误,Datacenter NameCluster Name没有和VCenter中的相关信息保持一致,更新后重新测试

故障二:日志显示vSAN Datastore not specified,具体如下:

1
2
3
2023-08-31 11:51:29 +0000: ------------------------------------------------------------------------------
2023-08-31 11:51:29 +0000: vSAN Datastore not specified!
2023-08-31 11:51:29 +0000: ------------------------------------------------------------------------------

故障定位在于Datastore(s) Name需要和VCenter中的相关信息保持一致,更新后重新测试