I just did a Google blog search for information on the HP Smart Array Controller tool called hpaducli and didn’t find anything, so I’ll make this quick blog entry.
I just finished doing a small performance test on some storage I have access to and realized something was wrong. Granted, I’m doing a fairly wacky test, but something was wrong nonetheless. I am testing read throughput but limiting my dataset to an amount that fits within the HP Smart Array controller cache configured on the SB40c storage blade I am using. The timings I was getting were not coming in as a cached workload. I used the hpaducli command to find out that the cache was disabled. After the following grep(1) command told me I had no Smart Array cache, I used the ACU (cpqacuxe -R) to enable it and verified using the hpaducli -f command.
# grep -i 'Array Accelerator' /tmp/P400_status_before Array Accelerator is not configured. Array Accelerator is not configured. Array Accelerator is not configured. Array Accelerator is not configured. Array Accelerator is not configured. Array Accelerator is not configured. # hpaducli -f /tmp/P400_status_after # grep 'Array Accelerator'/tmp/P400_status_after Array Accelerator is enabled for this logical drive. Array Accelerator is enabled for this logical drive. Array Accelerator is enabled for this logical drive. Array Accelerator is enabled for this logical drive. Array Accelerator is enabled for this logical drive. Array Accelerator is enabled for this logical drive.
The moral of the story is when someone hands you some hardware, you never quite know what you are getting. What’s that line from Forrest Gump? You never know, this post might help someone, somewhere, someday.
… and of course if you want to use that Stoage Array for a Database, you most likely want to operate it with read cache turned off.
So what is the write cache setting? 🙂
BTW: some Storage Tek GUIs had the problem to show different cache parameters from the CLI 🙂
Bernd,
Actually I did want array read cache turned on, but not for production purposes. I have some measurements I need to take and the array read cache served its purpose. You are right that in general it is better to not cache reads at the storage level.