If you work with VMware vSAN and are looking for a benchmarking tool for your vSAN datastore, the HCIbench tool is the de facto standard for testing out your vSAN storage performance. It uses test VMs to generate load on your vSAN datastore and provide the test results once the test are finished using the guest VMs. Let’s take a closer look at HCIbench, how you configure it, and how you run a test on your vSAN storage.
What is VMware vSAN?
Before we dive into the HCIbench utility, let’s consider VMware vSAN, what it is, and why we need an appropriate benchmark tool to test out the performance of a vSAN cluster in a vSphere environment. VMware vSAN is an object storage solution underneath the hood, with each vSAN host contributing local storage to the logical storage presented to the cluster as a whole.
Object storage is a distributed storage technology that uses the underlying disks installed in the vSAN hosts to allocate storage to the vSAN datastore. Virtual machine disk components are spread across the local disks in the vSAN cluster, so these are highly available in case of a host failure or needing to take a host down for maintenance operations.
VMware vSAN is extremely powerful, provides the integration and management tools you would expect with VMware vSphere, and is super easy to deploy. VMware has provided a very wizardized approach to deploying a vSAN cluster from the vSphere client, allowing admins to quickly and easily provision a new cluster, and define their storage, storage policy, and other parameters, including setting up their vSphere resource pool settings, etc.
On new flash storage, vSAN performance is fantastic and provides performance for the most demanding business-critical workloads.
What is HCIbench?
HCIbench is a tool that is short for Hyper-converged infrastructure benchmark. It provides an automation wrapper around two very popular benchmarking tools, Vdbench and Fio, open source benchmark tools. It is a benchmark tool designed to provide hyper-converged infrastructure storage benchmarking in a consistent and controlled way with a very intuitive user interface.
You can automate testing to see the following metrics of your data disk:
It is a VMware Fling, free tools available from VMware that are not officially supported, but heavily used by the community. The HCIbench solution works by deploying test VMs that are virtual machines that generate test workload storage traffic with a fully automated end-to-end process.
POC testing configuration
It is a great tool that can be used for customer POC performance testing, burning in new vSAN environments, and just getting a baseline of performance with a performance analysis of storage performance of your vSAN cluster in a consistent and controlled way.
If you are deploying OLTP workloads in your vSAN environment, you may be keenly interested in the overall vSAN performance.
You can use a parameter file to define the parameters of your vSAN performance testing. You can configure:
Number of disks to test
working set percentage
Number of threats per disk
Warm Up Time
The parameter files allow you to fully customize the HCIbench tests to the type of workloads that will run on the vSAN cluster so you can gauge your vSAN performance of the given configuration.
Fully automated testing
The HCIbench tool fully automates testing configuration, deploying test VMs, including controller VM, coordinating workload runs, aggregating test results, and collecting data for troubleshooting purposes.
Download HCI bench
To download HCIbench, you accept the license agreement and download the OVA file from the VMware Fling site here: HCIBench | VMware Flings
The VMware Fling makes deploying the HCIbench solution extremely easy with a simple OVF template appliance that deploys HCIbench as a guest VM in your vSphere environment. You don’t have to deploy HCIbench on the HCI cluster itself. However, the workload VMs will of course need to deployed there during the configuration of the HCIbench test.
When you deploy the appliance, you customize template parameters, IP address, workload generator, vCenter password, vCenter hostname, system password, whether you want to reuse VMs after the run, save the configuration, root password, and others.
Below is the final Ready to Complete screen when deploying the HCIbench appliance virtual machine.
On the network configuration, HCIbench will deploy two virtual network adapters, a management network, and a workload VM network. The management network is the network used to connect to the management interface where you configure your HCIbench tests, view testing logs, set test duration, etc.
The workload network is the network connection used to communicate with the testing virtual machines.
Make sure you have the workload network configured for the virtual network where your test VMs will be deployed. HCIbench will need to be able to communicate with the virtual machines in the environment.
If you have misconfigured the networking, you may see a message like the one below when validating your configuration:
Configuring the HCIbench test and environment
Once you have the appliance deployed and powered on, you will log in using the root and the root password you configured during the appliance deployment process. Browse out to port 8443 of the appliance IP address, and you will be presented with the configuration page of the HCI bench.
You will have many options available for the configuration of the HCIbench appliance. These include:
Specify hosts to deploy
DHCP service with DHCP server options
reuse VMs if possible
Benchmarking tool to use – vdbench/fio
Saving and validating the configuration
Once you have the configuration page settings like you want, you will press the Save Config button. Then, you will press the Validate Config button. When you validate the configuration, you will see the process kick off and a test VM provisioned for each host for it to validate your settings.
Below, you see configuration validated, including the vCenter Server IP and vCenter password, network connectivity, validating the vSAN datastore.
The validation process will deploy HCIbench VM machines to all ESXi hosts. These will be named “hci-tvm.” Once the configuration is validated, HCIbench will power off the VMs, delete them, and delete the VM folder.
After validating your configuration, you can save configuration in the console.
Running HCI bench test
After validating the configuration, you will click the Start Test button. After starting the test, you will see HCIbench run through several pre-test operations, including verifying if the VMs are accessible, virtual disk preparation, and I/O testing using the virtual disks after initializing storage.
You will see HCIbench go through several workload profiles, test case when running the vSAN cluster tests.
It will deploy all the VMs required for running the storage I/O test. You will see the “hci-vdb” virtual machines deployed when using the vdbench test.
Realtime viewing of testing and test results
One extremely cool thing about HCIbench is that it now has Graphana dashboards built in, allowing you to see the HCIbench performance data in real-time as the test proceeds.
Below, I have connected to the Graphana interface running in the HCI Bench environment and it will stream real-time data and metrics from your performance test. You can select a different test from the menu for seeing the results of a different performance profile.
It was also really cool to follow along with vSAN performance using vRealize Operations Manager. I was able to watch latency and other necessary data in real-time.
Another view from vROPs.
The vSAN OSA performance dashboard.
The HCIbench utility is a great way to get a feel for the performance of your vSAN cluster and see what kind of IOPs, throughput, and latency your cluster is seeing under the stress of the HCIbench test. The ability to set up a workload parameter file and customize testing is a great way to tailor the testing to your specific vSAN cluster.