Please note: I noticed that this post still gets a lot of attention... Before reading through the whole post you should know: the workaround described here is only necessary for ESXi 4.x. For ESXi 5.x there is an officially supported Online ACU CLI available from HP (see the update at the end of this post)!
A while ago I posted about the
Offline version of HP's Array Configuration Utility (ACU). HP does not provide an Online version of this tool for VMware ESXi, so expanding a local RAID array can only be done with this Offline version which requires a downtime of the host for the whole duration of the expansion.
Somehow I did not want to accept this, and - by just trying it out - I finally discovered that you can actually run the Linux version of the ACU CLI tool (
hpacucli) in ESXi!
hpacucli is
not the web interface version of the ACU (which is called
cpqacuxe) that you may be used to from Windows systems.
cpqacuxe is also available in a Linux version, but I could not get it to run in the ESXi shell.
hpacucli is surely less intuitive to use, but it offers the same functionality than the web tool and allows you to do all controller configuration and volume expansion tasks that are supported with SmartArray controllers. Before trying it be sure to look at the
Configuring Arrays on HP Smart Array Controllers Reference Guide (section "Using the ACU CLI", p51 f.) to learn how to use it. The reference guide also describes another utility named
hpacuscripting that is also included in this package and works with ESXi. I haven't tried that, but it looks like it is mainly meant for the initial RAID configuration on a newly deployed host.
The Linux version of
hpacucli requires some script modifications to make it run in the ESXi shell. First I thought about providing a modified version of it that you could just install and run in ESXi, but then I noticed that HP's license terms do not allow to redistribute the software package. So I will provide step-by-step instructions instead for how to do the required modifications on your own using a Windows machine. Don't worry, it's easy:
1. Download the file
hpacucli-8.75-12.0.noarch.rpm from HP.
2. Download
7-zip and install it.
3. Open the downloaded rpm-file in 7-zip:
4. Inside the 7-zip window navigate to the embedded directory
\opt\compaq\hpacucli\bld by double-clicking on the displayed file and directory names:
5. Select all the displayed files and click on the "Extract" or "Copy" button to extract them to a new empty sub-directory (
U:\$Download\hpacucli in this example):
6. Download the patch script
fix4esxi.sh that I prepared and put it into the same directory.
7. Now use the vSphere Client to upload the complete directory to a datastore that is accessible by the host that you want to run the tool on. You can store the directory on a shared datastore to make the same copy accessible to multiple hosts:
8. Now open a shell as root in the ESXi host that you want to run the tool on. Change to the datastore directory that you uploaded and run the patch script like this:
. ./fix4esxi.sh
You need to run the script only
once! It will patch the shell scripts that are included and restore the executable permission bits that got lost when we extracted the files in Windows.
9. Now you are ready to run the
hpacucli utility in ESXi, either by running
./hpacucli after changing to the installation directory or by calling it by its full file path:
The command
controller all show config will immediately show you if the utility has detected your SmartArray controller and display its configuration. With the
help command you will get an overview of all available commands and how to use them. However, I strongly recommend reading the above mentioned reference guide, because it includes more detailed information and usage examples.
Now at the end ... a big fat warning and some more hints: Running
hpacucli inside ESXi is (of course) not supported by HP or VMware! I can tell you that it just works for me in the configurations that I was able to test, but it could as well fail completely for you or blow up your host!
The tool was able to detect SmartArray P400 and P410i controllers with ESXi 4.1 and 5.0. On an ESXi 5.0 host with a P400 controller I was able to break a RAID1 mirror and concatenate the disks to a RAID0 volume of double size. However, ESXi would not pick up the changed disk size, so I was not able to grow the VMFS volume without rebooting the host. At least I only needed to reboot (causing a very short downtime) and did not have to take the host offline for the whole volume conversion process (which can take very long depending on hard disk sizes).
I wonder if ESXi not detecting the disk size change is due to the old
cciss driver that the P400 controller is using. Other SmartArray controllers use the newer
hpsa driver that might not show this issue.
Please provide feedback by commenting on this post if you manage to successfully make use of
hpacucli in ESXi like described here! This will help to get me and others an overview of what works and what not.
Update (2012-04-18): In the meantime HP has officially made available
hpacucli for ESXi. It is part of the
HP ESXi Utilities Offline Bundle for VMware ESXi 5.0 that I reference on my
HP & VMware Links page. For earlier versions of ESXi you still depend on the workaround that I described here.