I recently set out to build a VMWare ESXi / vSphere white box. A white box in this case, is a custom built PC, that may not have all parts on the VMWare supported hardware list. Generally, ESX will work on most hardware, but the two common issues preventing things from working, are network adapters, and storage controllers. After trying to install ESXi / vSphere it became apparent that the onboard network interface and storage controller don’t work with VMWare out of the box. This was expected, so I wasn’t too worried.
After some research, I chose to use a Intel Pro/1000 GT NIC for the network side of things, and an Adaptec 3405 SAS/SATA RAID controller to handle the HDD’s. Both devices are listed on the VMWare supported hardware list for the version of ESXi I was using.
It turns out that the Adaptec 3405 RAID card gets detected fine, and ESXi can see the array device that was created, but it doesn’t actually install to the array.
After starting to install the software onto the HDD, it was crashing out and displaying an error stating “vmkfstools failed with message: create fs”, with a number of other messages below this.
After some investigation, and trial and error, I found that this error was caused by having Intel’s VT-d (Virtualization Technology for Directed I/O) feature enabled in the BIOS. This feature allows for remapping of I/O DMA transfers for virtual machines, however it doesn’t seem to work correctly with the Adaptec 3405 RAID card.
After disabling this feature in the BIOS, the VMWare ESXi install went through fine, and haven’t had any problems since.
Note: I have also tried this Adaptec 3405 RAID card in a PC that doesn’t support Intel VT-D, and it worked fine.
This howto will step you through the process of setting up the required software to be able to check the status of a Compaq or HP Smart Array and the attached physical and logical drives on CentOS 6 or RHEL.
The required program to be able to talk to the Smart Array is called ‘hpacucli’, which can be found in the ‘HP Service Pack for ProLiant’ package.
(Note: Some of the commands below require root privileges.)
Obtaining and Installing the ‘hpacucli’ utility
You have two options here. Downloading the full HP service pack package and extracting the required RPM, or downloading the single required RPM.
Download Option 1: Download the full ‘HP Service Pack for ProLiant’ package.
wget "ftp://ftp.hp.com/pub/softlib2/software1/cd-generic/p1959651341/v78385/SPPMDSLRH-2012.06.0B-0.zip"
Unzip the downloaded package:
[root@localhost ~]# unzip SPPMDSLRH-2012.06.0B-0.zip Archive: SPPMDSLRH-2012.06.0B-0.zip inflating: SPPMDSLRH2012060B.2012_0525.1.iso inflating: SPPMDSLRH2012060B.2012_0525.1.iso.md5sum inflating: README.txt
Create a temporary folder and mount the ISO image so we can access the required package:
[root@localhost ~]# cd ~ [root@localhost ~]# mkdir cdimage [root@localhost ~]# mount SPPMDSLRH2012060B.2012_0525.1.iso -o loop,ro cdimage [root@localhost ~]# cd cdimage [root@localhost cdimage]# cd hp/swpackages [root@localhost swpackages]#
Download Option 2: Downloading the individual RPM file.
wget ftp://ftp.hp.com/pub/softlib2/software1/pubsw-linux/p1257348637/v71527/hpacucli-9.10-22.0.x86_64.rpm
(Please see the comment from “fvanler” at the bottom of this article for a link to the HP site for the above RPM.)
Install the hpacucli RPM package:
yum install hpacucli-9.10-22.0.x86_64.rpm
Note: If you used download option 1, make sure you are in the cdimage/hp/swpackages folder before running the above command.
Output:
[root@localhost swpackages]# yum install hpacucli-9.10-22.0.x86_64.rpm Loaded plugins: fastestmirror, presto Loading mirror speeds from cached hostfile * base: mirror.internode.on.net * extras: mirror.internode.on.net * updates: mirror.internode.on.net Setting up Install Process Examining hpacucli-9.10-22.0.x86_64.rpm: hpacucli-9.10-22.0.x86_64 Marking hpacucli-9.10-22.0.x86_64.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package hpacucli.x86_64 0:9.10-22.0 will be installed --> Finished Dependency Resolution Dependencies Resolved ============================================================================================ Package Arch Version Repository Size ============================================================================================ Installing: hpacucli x86_64 9.10-22.0 /hpacucli-9.10-22.0.x86_64 17 M Transaction Summary ============================================================================================ Install 1 Package(s) Total size: 17 M Installed size: 17 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : hpacucli-9.10-22.0.x86_64 1/1 DOWNGRADE NOTE: To downgrade this application to any version prior to 9.10.x.x, the current RPM must be manually uninstalled using the "rpm -e" command before any prior versions can be installed. LOCKING NOTE: The locking mechanism starting with versions 9.10.X.X, are not compatible with prior versions of the applications. Therefore, mixing older and newer versions of the various applications (ACU, HPACUCLI, HPACUSCRIPTING) is not recommended. Installed: hpacucli.x86_64 0:9.10-22.0 Complete!
Unmount the ISO image, as it is no longer required:
(This is only required if you used the full HP package.)
[root@localhost swpackages]# cd ~ [root@localhost ~]# umount cdimage
The installation is now complete, and you are ready to check the status of your Smart Array.
Check the controller status
hpacucli controller all show status
Sample Output:
Smart Array 6i in Slot 0 (Embedded) Controller Status: OK Cache Status: Temporarily Disabled Battery/Capacitor Status: Failed (Replace Batteries/Capacitors)
Keep note of the slot number, as this will be used when checking the logical and physical drives.
Check the logical drive
hpacucli controller slot=0 logicaldrive all show status
Sample Output:
logicaldrive 1 (67.8 GB, RAID 5): OK
Check the physical drives
hpacucli controller slot=0 physicaldrive all show status
Sample Output:
physicaldrive 2:0 (port 2:id 0, 36.4 GB): OK physicaldrive 2:1 (port 2:id 1, 36.4 GB): OK physicaldrive 2:2 (port 2:id 2, 36.4 GB): OK physicaldrive 2:3 (port 2:id 3, 36.4 GB, spare): OK
Setting up periodic monitoring
Now that the ‘hpacucli’ tool is installed, you can configure a monitoring tool such as Nagios to periodically check the status of your array/drives.
To do this with Nagios, you will need to use the ‘check_hparray’ plugin.
This can be downloaded from the following site:
http://exchange.nagios.org/directory/Plugins/Hardware/Server-Hardware/HP-(Compaq)/check_hparray/details.