Wow just stumbled into this one today as I was dreading having to reboot my ESXi 4.1 boxes just to see a few new local disks.
Apparently you can install hpacucli in ESXi very easily, and whats even better is that you can install it directly on a datastore and use the install on any host that has access to that datastore. No need to reinstall on each and every host in your cluster. No need to reboot to configure your disks.
Anyway here is the link to the how to, its obviously written by a Windows Guy, but it works easy enough.
Update: Apparently HP now provides an official version of hpacucli for ESXi 5 as part of HP ESXi Utilities Offline Bundle for VMware ESXi 5.0.
Also note that I found that my HP servers with the P400 card did not detect the new logical drives, even after a rescan. Apparently a reboot is required. However my HP boxes with the P410 card did detect the new logical drives after a rescan and no reboot was required.
Hpacucli is the a command line Array Configuration Utility program for Smart Array Controllers and RAID Array Controllers. The command can be installed in one of two ways; either by standalone rpm, or as part of the Proliant Support Pack. The utility is useful as it allows you to create and delete raid configs without having to reboot.
First run the hpacucli command to start the utility. Once the utility is started run the command below to show your arrays and disks.
=> ctrl all show config
In my case I had added 3 additonal drives to a DL385 G1 with the intention of creating a simple raid1 mirror with a hot spare. The command below creates the second array, array B.
=>ctrl slot=0 create type=ld drives=2:3,2:4 raid=1
Now I can view my new array using ctrl all show config.
array B (Parallel SCSI, Unused Space: 0 MB)
logicaldrive 2 (67.8 GB, RAID 1, OK)
physicaldrive 2:3 (port 2:id 3 , Parallel SCSI, 72.8 GB, OK)
physicaldrive 2:4 (port 2:id 4 , Parallel SCSI, 72.8 GB, OK)
Now I add the remaining drive as a hot spare to the newly created array B
=> ctrl slot=0 array B add spares=2:5
The command below can be used to show the status of your array, which in my case is not good.
=> ctrl all show status
Smart Array 6i in Slot 0 (Embedded)
Controller Status: OK
Cache Status: Temporarily Disabled
Battery/Capacitor Status: Failed (Replace Batteries/Capacitors)