Notes on HP raid controllers

Lately I had to deal with some HP raid controllers and I’ve gathered some notes on them. I’ll post them here so I won’t forget about them.

First of all, don’t even think on using them without a battery pack. Seriously DON’T. The performance degradation is humongous. Without a battery pack the controllers were giving me 1/20th of the results with a battery pack. If you want to quickly test them, try iozone using the following options: iozone -t4 -I

Installing hpacucli is a also a must if you want to monitor or configure the controllers from within your OS. Be sure to add the repositories from HWraid to your system and then issue: aptitude install hpacucli (you are using Debian, arent’ you?). That reminds me that I am using those repositories on so many systems I manage that I must send a donation to the people at hwraid to thank them.

Below are some commands using hpacucli that I used.
# Show everything about your raid controllers
# hpacucli controller all show config detail

Cache Board Present: True
Cache Status: OK
Accelerator Ratio: 25% Read / 75% Write
Drive Write Cache: Enabled
Total Cache Size: 512 MB
Battery Pack Count: 1
Battery Status: OK
SATA NCQ Supported: True

What you must take notice here is the Accelerator Ratio, Drive Write Cache and Battery Pack Count.
if you have a battery pack installed but your Drive Write Cache is still shown as “Disabled”, you can enable it using the command:
# hpacucli controller slot=X modify dwc=enable
You’ll know what to put instead of “slot=X” from the output of the previous command (show config detail).

To modify Accelerator Ratio (read/write):
# hpacucli controller slot=X modify cacheratio=25/75

To enable Array Acceleration for one of your logical drives use:
# hpacucli controller slot=X logicaldrive Y modify aa=enable

If you happen to face the following error while opening hpacucli, don’t worry. You don’t need to reboot your machine as I’ve seen in various blogs.

Error: Another instance of ACU is already running (possibly a service). Please
terminate the ACU application before running the ACU CLI. Press ENTER to
exit.

What you need to do is delete the shared IPC that hpacucli left when it got killed for some reason.
To see all your ipcs:

# ipcs
------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0xffffffff 32768      root       0          1         

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    

Then use ipcrm to remove the array with the semid you want:
# ipcrm -s 32768

and try to start hpacucli again.

References:
1. http://www.datadisk.co.uk/html_docs/redhat/hpacucli.htm
2. http://people.freebsd.org/~jcagle/hpacucli-readme

6 Responses to “Notes on HP raid controllers”

  1. Aristotelhs
    October 2nd, 2011 | 13:26
    Using Mozilla Firefox Mozilla Firefox 3.6.23 on Ubuntu Linux Ubuntu Linux

    The reason that all raid controllers suck without the battery pack, is that they have to write all the data to disk before they ack the write. RAID5 is not the best solution for having to write to disks (without the cache). This is not bad, since you want to be sure that your data exist at a consistent state. But perhaps other raid controllers do something smarter so they have better performance (haven’t really benchmark different RAID controllers).

  2. deadhead
    November 14th, 2011 | 16:23
    Using Mozilla Firefox Mozilla Firefox 8.0 on Linux Linux

    A colleagues of mine has fixed the performance problem by enabling the local disk cache: be aware that this expose you to the risk of data loss in case of power or other kind of hw failure…

  3. nn
    December 9th, 2012 | 11:32
    Using Google Chrome Google Chrome 23.0.1271.95 on Windows Windows 7

    Just a simple question, is there any way to configure HP Smart Array, so when it detects that an specific drives is failed send a message to OS (some Linux) so my monitoring tool can know about the faulty drive?

    Thank you very much.

  4. December 9th, 2012 | 19:00
    Using Debian IceWeasel Debian IceWeasel 17.0.1 on Linux Linux

    I’m using nagios checks to do this. Take a look at dsa-check-hpacucli.
    I’m sure you will find more online.

  5. nn
    December 9th, 2012 | 21:55
    Using Google Chrome Google Chrome 23.0.1271.95 on Windows Windows 7

    Thanks Kargig for your reply. I’ll analyze the code, thanks again.

    Just wondering if HP Smart Array does not have an automatic way to do this? I guess it does, or at least, it should does. When it detects that a drive is failling pass this messages to the OS logs.
    Maybe somewhere on the configuration files? I made a lot of research but I couln’t find any way to do it.

  6. November 2nd, 2014 | 20:28
    Using Mozilla Firefox Mozilla Firefox 35.0 on Windows Windows Vista

    “Drive Write Cache” refers to the cache *on the drives*, which are not protected by the controller battery back-up. It’s unlikely to be safe to enable it unless you also have a separate battery back-up for the drives.

    The “No-Battery Write Cache” *does* refer to the controller cache; it should normally be disabled, to prevent the same issue.

Leave a reply