Please provide your feedback in this short Flings' survey.
Nov 20, 2016

We just pushed a new release of HCIBench (


Because the client VM's password will be expired on Nov-1-2016 and HCIBench wont be able to talk to the client VMs. The latest change disabled client VM password expiration and have some bug fixes.

In host-ESXi_IP-vm-deploy.log or vc-VC_IP-vm-deploy.log you will see the err msg: "no such mark "~pvscsi""
Or in all-in-one-testing.log, you will see err msg: "Too many authentication failures"
Or in io-test log you will see err msg: "Net::SCP::Error: SCP did not finish successfully (1)"
Your test will finish with 0s results.

IF you are not willing to upgrade, we are providing the vm-template file in the download, vm-template.tar.gz, please download this file, upload it to HCIBench:/root/, in HCIBench command line, run
"tar -zxvf /root/vm-template.tar.gz ; mv -f vm-template/* /opt/output/vm-template/"

OR you can resolve the issue by yourself:

1. Deploy the perf-photon-vdbench vm from http://HCIBENCH_IP/vm-template/perf-photon-vdbench.ovf (KEEP THE VM NAME AS perf-photon-vdbench )
2. log into perf-photon-vdbench vm using root/vdbench and run "chage -I -1 -m 0 -M 99999 -E -1 root; echo -n > /etc/machine-id"
3. change the password back to "vdbench" using passwd command.
4. shutdown perf-photon-vdbench vm
5. Login into HCIBench and run "rvc 'VC_USERNAME'@VCENTER_IP"
6. In RVC, go to /VC/DATACENTER/ and run " /opt/output/vm-template vms/perf-photon-vdbench", after downloading, exit rvc by typing "exit"
7. Run "mv /opt/output/vm-template/perf-photon-vdbench/* /opt/output/vm-template" and "chmod 755 /opt/output/vm-template/*"


Nov 20, 2016

what's the usage for vm_template.tar.gz in the download

Nov 20, 2016

That is Client VM template for replacing the previous one prior to if you download, you don't need to download that vm_template.tar.gz.

Nov 21, 2016

Thank you. That's more convenient.

Nov 16, 2016

A couple of quick issues ...
1) I have a separate DHCP server on the benchmark client network. The controller picks up this address, but any time I start a subsequent workload run, I have noticed that eth1 drops it's IP address. Here's an example of the behavior after I start a second workload run:

root@photon-HCIBench [ /opt/automation/vdbench-param-files ]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
<< --- deleted for brevity -->>
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 00:50:56:9c:4f:9a brd ff:ff:ff:ff:ff:ff
root@photon-HCIBench [ /opt/automation/vdbench-param-files ]# systemctl restart systemd-networkd
root@photon-HCIBench [ /opt/automation/vdbench-param-files ]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
<< --- deleted for brevity -->>
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:9c:4f:9a brd ff:ff:ff:ff:ff:ff
inet brd scope global dynamic eth1
valid_lft 35998sec preferred_lft 35998sec

2) After certain runs, there is no statistics collection - the /opt/automation/output/results folder is created, but there are no actual results. Here's an example of the directory hierarchy for such a run:

root@photon-HCIBench [ /opt/output/results/10Disk_50GB_4K_Custom ]# ls -lR
total 8
drwxrwxr-x 3 root root 4096 Nov 15 14:45 custom-workload-1479231934
-rw-rw-r-- 1 root root 237 Nov 15 14:45 custom-workload-1479231934-res.txt

total 4
drwxrwxr-x 3 root root 4096 Nov 15 14:45 iotest-vdbench-8vm

total 4
drwxr-xr-x 5 root root 4096 Nov 15 14:45 externallibs

total 12
drwxr-xr-x 2 root root 4096 Nov 15 14:45 css
drwxr-xr-x 2 root root 4096 Nov 15 14:45 font
drwxr-xr-x 2 root root 4096 Nov 15 14:45 js

total 156
-rwxr-xr-x 1 root root 118500 Nov 15 14:45
-rwxr-xr-x 1 root root 16303 Nov 15 14:45 datepicker.min.css
-rwxr-xr-x 1 root root 23644 Nov 15 14:45 font-awesome.css

total 600
-rwxr-xr-x 1 root root 85908 Nov 15 14:45 FontAwesome.otf
-rwxr-xr-x 1 root root 56006 Nov 15 14:45 fontawesome-webfont.eot
-rwxr-xr-x 1 root root 287526 Nov 15 14:45 fontawesome-webfont.svg
-rwxr-xr-x 1 root root 112160 Nov 15 14:45 fontawesome-webfont.ttf
-rwxr-xr-x 1 root root 65452 Nov 15 14:45 fontawesome-webfont.woff

total 860
-rwxr-xr-x 1 root root 160048 Nov 15 14:45 angular.min.js
-rwxr-xr-x 1 root root 26799 Nov 15 14:45 bootstrap-datepicker.min.js
-rwxr-xr-x 1 root root 28663 Nov 15 14:45 bootstrap.min.js
-rwxr-xr-x 1 root root 146658 Nov 15 14:45 d3.min.js
-rwxr-xr-x 1 root root 257551 Nov 15 14:45 jquery-2.2.4.js
-rwxr-xr-x 1 root root 253385 Nov 15 14:45 jquery-ui.min.js

Any help or guidance in how to track down resolution to either, but especially for (2) would be appreciated.

Nov 17, 2016

1. if you have your own dhcp service running in the vlan, eth1 of hcibench server should never been brought up because this nic is only for providing dhcp service while there's no dhcp service in the vlan.

2. looks like there are no results came back from vdbench client vms, could you check the logs in http://HCIBench/hcibench_logs? especially for the io test log


Nov 18, 2016

I found the problematic command - at least it's problematic for me. I get the intent of the logic, but I want to use an existing DHCP server that I have on the Private network, which is where the implied logic of "If you're not using our DHCP server, then you can't have eth1" doesn't make sense.
With the removal of the command, I should be all set.

Nov 18, 2016
Nov 18, 2016

Close, but that process is effectively enabling access to the driver VMs from the Public network (something I do not want to do) - either by using Layer 2, or implementing a route via Layer 3.

The issue is this code in all-in-one-testing.rb:
Enable DHCP if needed
if $dhcp_enabled
<<--deleted for brevity-->>
system("systemctl stop dhcp.service;ifconfig eth1 down; > #{$basedir}/../logs/test-status.log")

It's the "ifconfig eth1 down". Again, the logic is, if HCIBench isn't providing DHCP, then disable that interface. But for those who have a backend network and a DHCP server on that network (entirely separate to the Public Network), this model is somewhat restrictive. Removing the code that brings the network down resolves this. What would help is if the configuration would would support a model where there's an external DHCP server - a checkbox for an External DHCP service. Then you could do something like:

if $dhcp_enabled
<<--deleted for brevity-->>
if $external_dhcp
system("systemctl stop dhcp.service > #{$basedir}/../logs/test-status.log")
system("systemctl stop dhcp.service;ifconfig eth1 down; > #{$basedir}/../logs/test-status.log")

Nov 18, 2016

i did some change for next version, the eth1 will be kept up and using DHCP, if no DHCP could be provided in customer env, when "Enable DHCP" is checked, will be applied to eth1, and dhcp service on HCIBench will be enabled; if it's not checked, it can just leverage the DHCP service in the VLAN.

Nov 17, 2016

1. So if eth1 is disabled, and the configuration continues to use a private VLAN for the client systems, how would the benchmark driver talk to the clients. This is infact the failure that happens after eth1 loses it's DHCP assigned address. Remember that the client systems may not necessarily have access to the "Public" network - I don't want them to be accessible on the public network, and I don't want any of their traffic on the public network either. If I restart the interface everything works fine ... it's just something is done to this interface when starting a subsequent run - if this didn't happen, then there would be no issue.

2) I will have to look at the configuration if there's another failure ... the logs have been over-written at this point. Also having an issue with the rendering of the graphs - though this isn't an issue since I'm more interested in the data than the graphical display.


Nov 16, 2016


Any way this can be used on a single ESX host to test disk speed. currently I can't deploy the ova due to error "the OVF package requires support for OVF Properties. Details Line 231: Unsupported element 'Property'."

This is on ESXi 6.0 Update 2.


Nov 16, 2016

If you only have one host, the workaround could be:
1. unzip the ova to ovf and vmdk files.
2. edit HCIBench.ovf file and remove the section below:
<Info>Information about the installed software</Info>
<Vendor>VMware Inc.</Vendor>
<Property ovf:key="Public_Network_Type" ovf:qualifiers="ValueMap{&quot;DHCP&quot;,&quot;Static&quot;}" ovf:type="string" ovf:userConfigurable="true">
<Label>Public Network Type</Label>
<Property ovf:key="Public_Network_IP" ovf:type="string" ovf:userConfigurable="true">
<Label>Public Network IP</Label>
<Description>ex. / leave this empty if DHCP is used</Description>
<Property ovf:key="Public_Network_Netmask" ovf:type="string" ovf:userConfigurable="true">
<Label>Public Network Netmask</Label>
<Description>ex. / leave this empty if DHCP is used</Description>
<Property ovf:key="Public_Network_Gateway" ovf:type="string" ovf:userConfigurable="true">
<Label>Public Network Gateway</Label>
<Description>ex. / leave this empty if DHCP is used</Description>
<Property ovf:key="DNS" ovf:type="string" ovf:userConfigurable="true">
<Description>ex. / leave this empty if DHCP is used</Description>
<Category>Root Credential</Category>
<Property ovf:key="System_Password" ovf:password="true" ovf:qualifiers="MinLen(6), MaxLen(16)" ovf:type="string" ovf:userConfigurable="true">
<Label>System Password</Label>
<Description>root password, the length should be 6-16</Description>
</ProductSection>3. remove file to avoid integrity check.
4. use the ovf for single host (hostd) deployment.
5. after deployment, you should access the VM using password “vmware” and edit the file /etc/systemd/network/ following this guide:
6. reboot the HCIbench server and you should be good to go.