Even though this post is fairly dated, I will leave this post online just in case anyone still has an HP ProLiant ML310e or MicroServer Gen8 server with terrible disk performance. It had always been working fine until I started using ESXi 6 and 6.5 on it. For some reason the disk performance was suddenly just atrocious. Imagine getting only about 25 megabytes per second of write speed on it. I'm on a gigabit network and copying files from my Windows computer to a Linux Samba instance, and it started out at 110MB/s, then tanked to 25MB/s after half a minute. Horrible. And totally unexpected, because with ESXi 5 and 5.5, it worked just fine, staying a steady 110MB/s all the way through. So what gives?
Turns out that for some reason the HPVSA driver for ESXi has some issues. I have no idea why as I haven't dug into it in detail. All I do know is that when I replace it with an older driver, my server's disk performance is fine again. This isn't a fluke. This is a situation I can reproduce on multiple servers with various disk configurations. For example one of my HP MicroServer gen8 servers has 2x8TB WD RED disks in RAID-1, and gave me around 30MB/s performance at best. When I uninstalled the new HPVSA driver (version .101 or 102 or so I believe) and just installed the old driver (version .88), I was able to get around 170MB/s write performance. No other settings were changed at all.
I don't know if this issue exists in other configurations but what I've seen so far it affects these configurations;
- VMWare ESXi 6.5.0
- HP MicroServer gen8
- HP ProLiant ML310e gen8
- both servers run controller: HP ProLiant b120i SmartArray
Let me just say that, yes, I know these are entry-level servers. But with a different driver I get normal performance and with an up-to-date driver I get shit performance. Whatever the problem is, below is how to solve it.
Files you'll need
First of all, I take no responsibility for any damage or problems if you follow these instructions. They come as-is without any guarantees. I've used them myself and it works perfectly, though.
Before you continue check that you have ESXi 6.5 Build 5310538. I've noticed if you have an older version, that uninstalling/replacing the driver may make the HP VSA driver fail to load. Then you will still be able to access your hard drives but only through VMWare's own AHCI/SATA driver, and will ignore the RAID configuration. This is bad if you have data on the RAID drives already; you can't access them then. Also, the RAID won't actually be used then. This can be fixed however by upgrading ESXi and uninstalling/reinstall the driver again if you run into this issue. See this page on instructions on how to upgrade. This guide can be used to upgrade ESXi HPE 6.5 older build to ESXi 6.5 20170404001-standard which is the one that corresponds to build 5310538. If you had replaced the HP VSA driver before doing the upgrade to ESXi, you'll need to uninstall/reinstall the .88 driver again and reboot again before it works again.
You need the old driver. You can get it from this official Hewlett Packard Enterprise page here:
It's easiest if you can just download the file directly to your ESXi server. The direct download link is below. Note that I stripped https:// and replaced it with http://. The reason for this is that the 'wget' program which allows you to download files directly off the Internet to the ESXi server is simplistic; it only does http:// and doesn't support https://.
Sometimes they change their website and the link doesn't work anymore. If it doesn't try looking for hpvsa-5.5.0-88.zip on Google. Or use the local copy I have stored here on my blog. My local copy forces https:// though so you can't direct download it to your ESXi server. But you can download it to your desktop computer and then copy it to your ESXi server using a program such as SCP or WinSCP.
Enable SSH on the ESXi installation. If you have ESXi 6.5 you can do it by going to the web interface and logging on, and then rightclicking "Host" and selecting "Services" > "Enable Secure Shell (SSH)". Or you can do it at the console by pressing F2, logging in, and going to "Troubleshooting options" and enabling it there.
Stop all virtual machines before you continue.
- Open an SSH session to your ESXi server installation and log on as root. Same password as for the web interface / console.
- Go into "Maintenance mode". Note that all virtual machines must be stopped first.
esxcli system maintenanceMode set --enable true
- Allow outgoing HTTP requests through the ESXi firewall, to retrieve the necessary file.
esxcli network firewall ruleset set -e true -r httpClient
- Go into /tmp folder so we don't leave a mess.
- Use wget to download the .zip file from HP website. Note that I'm using http:// and not https://.
You can also use a program such as WinSCP to copy the file directly from your desktop PC to the ESXi server.
- Unzip the file so we can get the .vib driver file we'll need.
- Copy the file to a location where the installer can find it easily.
cp scsi-hpvsa-5.5.0-88OEM.522.214.171.1241820.x86_64.vib /var/log/vmware/
- Uninstall the currently installed scsi-hpvsa driver. Be patient. Takes a minute.
esxcli software vib remove -n scsi-hpvsa -f
- Install the old driver we just downloaded. Be patient. Takes a minute.
esxcli software vib install -v file:scsi-hpvsa-5.5.0-88OEM.5126.96.36.1991820.x86_64.vib --force --no-sig-check --maintenance-mode
- Now reboot your server.
- Remember to disable "Maintenance mode". You can do this in vSphere Client or in the web interface.
I originally found the solution here, through a post on Dr. Sven Seiler's blog. I added a few steps that were missing: