do we have a write cache?and down the rabbit hole I went...
# cat /proc/driver/cciss/cciss* cciss0: HP Smart Array P410i Controller Board ID: 0x3245103c Firmware Version: 5.14 IRQ: 63 Logical drives: 1 Current Q depth: 0 Current # commands on controller: 3 Max Q depth since init: 9 Max # commands on controller since init: 318 Max SG entries since init: 31 Sequential access devices: 0 cciss/c0d0: 1799.79GB RAID 5yay. i guess. to administer this, i can either take the system offline and mess around on the controller. or! i can install the hp tool HP Array Configuration Utility CLI for Linux (hpacucli). it has the added bonus of being able to be called by nagios... but i'm getting ahead of myself. it works with the following controllers:
Smart Array 5312 Controller Smart Array 5302 Controller Smart Array 5304 Controller Smart Array 532 Controller Smart Array 5i Controller Smart Array 641 Controller Smart Array 642 Controller Smart Array 6400 Controller Smart Array 6400 EM Controller Smart Array 6i Controller Smart Array P600 Controller Smart Array P400 Controller Smart Array P400i Controller Smart Array E200 Controller Smart Array E200i Controller Smart Array P800 Controller Smart Array E500 Controller Smart Array P700m Contoller Smart Array P410i Controller Smart Array P411 Controller Smart Array P212 Controller Smart Array P712m Contoller Smart Array B110i SATA RAID Smart Array P812 Controller MSA500 Controller MSA500 G2 Controller MSA1000 Controller MSA1500 CS Controller MSA20 Controllerthe tool is supplied on HP Support Pack CDs, if you've got them; but you can download a newer version from HP here; this links to hpacucli-8.50-6.0.noarch.rpm.
after downloading, we need to convert the rpm into a format that we can work with. alien does this for us in ubuntu... other tools are rpm2cpio & rpm2tgz. i like alien. apt-get it.
# alien --to-tgz hpacucli-8.50-6.0.noarch.rpmalien will report some errors and warnings; in your source directory, you'll see hpacucli-8.50.tgz.
# tar -xzf hpacucli-8.50.tgzMove the unpacked files to corresponding locations:
# mv opt/compaq /opt/ # mv usr/sbin/* /usr/sbin/since i'm running an x86_64 box, i need to:
# apt-get install ia32-libshpacucli should run. it does.
# hpacucli => ctrl all show Smart Array P410i in Slot 0 (Embedded) (sn: 5001438017EA3640)we have a RAID controller in Slot 0. Good to know.
=> ctrl all show detail Smart Array P410i in Slot 0 (Embedded) Bus Interface: PCI Slot: 0 Serial Number: xxxxxxxxxxxxxxxxx Cache Serial Number: xxxxxxxxxxxxxxxxx RAID 6 (ADG) Status: Disabled Controller Status: OK Chassis Slot: Hardware Revision: Rev C Firmware Version: 5.14 Rebuild Priority: Medium Expand Priority: Medium Surface Scan Delay: 3 secs Queue Depth: Automatic Monitor and Performance Delay: 60 min Elevator Sort: Enabled Degraded Performance Optimization: Disabled Inconsistency Repair Policy: Disabled Wait for Cache Room: Disabled Surface Analysis Inconsistency Notification: Disabled Post Prompt Timeout: 15 secs Cache Board Present: True Cache Status: Not Configured Accelerator Ratio: 100% Read / 0% Write Read Cache Size: 0 MB Write Cache Size: 0 MB Drive Write Cache: Disabled Total Cache Size: 912 MB No-Battery Write Cache: Disabled Cache Backup Power Source: Capacitors Battery/Capacitor Count: 1 Battery/Capacitor Status: OK SATA NCQ Supported: True Array: A Interface Type: SAS Unused Space: 0 MB Status: OK Logical Drive: 1 Size: 1.6 TB Fault Tolerance: RAID 5 Heads: 255 Sectors Per Track: 63 Cylinders: 65535 Stripe Size: 256 KB Status: OK Array Accelerator: Not Configured Parity Initialization Status: Initialization Completed Unique Identifier: 600508B1001C5D95C9C5A46D895F6036 Disk Name: /dev/cciss/c0d0 Mount Points: /boot 243 MB OS Status: LOCKED Logical Drive Label: AE8582015001438017EA36402B33 physicaldrive 1I:1:1 Port: 1I Box: 1 Bay: 1 Status: OK Drive Type: Data Drive Interface Type: SAS Size: 300 GB Rotational Speed: 10000 Firmware Revision: HPD4 Serial Number: xxxxxxxxxxxxxxxxx Model: HP EG0300FBDSP PHY Count: 2 PHY Transfer Rate: 6.0GBPS, Unknownwell, it looks like write caching is not enabled. great.
=> ctrl slot=0 modify dwc=enable => ctrl slot=0 modify cacheratio=25/75 => ctrl slot=0 logicaldrive 1 modify aa=enable => ctrl all show config detail Smart Array P410i in Slot 0 (Embedded) Bus Interface: PCI Slot: 0 Serial Number: xxxxxxxxxxxxxxxxx Cache Serial Number: xxxxxxxxxxxxxxxxx RAID 6 (ADG) Status: Disabled Controller Status: OK Chassis Slot: Hardware Revision: Rev C Firmware Version: 5.14 Rebuild Priority: Medium Expand Priority: Medium Surface Scan Delay: 3 secs Queue Depth: Automatic Monitor and Performance Delay: 60 min Elevator Sort: Enabled Degraded Performance Optimization: Disabled Inconsistency Repair Policy: Disabled Wait for Cache Room: Disabled Surface Analysis Inconsistency Notification: Disabled Post Prompt Timeout: 15 secs Cache Board Present: True Cache Status: Not Configured Accelerator Ratio: 100% Read / 0% Write Read Cache Size: 0 MB Write Cache Size: 0 MB Drive Write Cache: Enabled Total Cache Size: 912 MB No-Battery Write Cache: Disabled Cache Backup Power Source: Capacitors Battery/Capacitor Count: 1 Battery/Capacitor Status: OK SATA NCQ Supported: True Array: A Interface Type: SAS Unused Space: 0 MB Status: OK Logical Drive: 1 Size: 1.6 TB Fault Tolerance: RAID 5 Heads: 255 Sectors Per Track: 63 Cylinders: 65535 Stripe Size: 256 KB Status: OK Array Accelerator: Not Configured Parity Initialization Status: Initialization Completed Unique Identifier: 600508B1001C5D95C9C5A46D895F6036 Disk Name: /dev/cciss/c0d0 Mount Points: /boot 243 MB OS Status: LOCKED Logical Drive Label: AE8582015001438017EA36402B33 physicaldrive 1I:1:1 Port: 1I Box: 1 Bay: 1 Status: OK Drive Type: Data Drive Interface Type: SAS Size: 300 GB Rotational Speed: 10000 Firmware Revision: HPD4 Serial Number: xxxxxxxxxxxxxxxxx Model: HP EG0300FBDSP PHY Count: 2 PHY Transfer Rate: 6.0GBPS, Unknowncrap. it didn't update. or did it?
=> exitapparently this is a bug. or a feature. we need to exit the utility, and then start it up again for the changes to be reflected. of course.
# hpacucli => ctrl all show config detail Smart Array P410i in Slot 0 (Embedded) Bus Interface: PCI Slot: 0 Serial Number: xxxxxxxxxxxxxxxxx Cache Serial Number: xxxxxxxxxxxxxxxxx RAID 6 (ADG) Status: Disabled Controller Status: OK Chassis Slot: Hardware Revision: Rev C Firmware Version: 5.14 Rebuild Priority: Medium Expand Priority: Medium Surface Scan Delay: 3 secs Queue Depth: Automatic Monitor and Performance Delay: 60 min Elevator Sort: Enabled Degraded Performance Optimization: Disabled Inconsistency Repair Policy: Disabled Wait for Cache Room: Disabled Surface Analysis Inconsistency Notification: Disabled Post Prompt Timeout: 15 secs Cache Board Present: True Cache Status: OK Accelerator Ratio: 25% Read / 75% Write Drive Write Cache: Enabled Total Cache Size: 1024 MB No-Battery Write Cache: Disabled Cache Backup Power Source: Capacitors Battery/Capacitor Count: 1 Battery/Capacitor Status: OK SATA NCQ Supported: True Array: A Interface Type: SAS Unused Space: 0 MB Status: OK Logical Drive: 1 Size: 1.6 TB Fault Tolerance: RAID 5 Heads: 255 Sectors Per Track: 63 Cylinders: 65535 Stripe Size: 256 KB Status: OK Array Accelerator: Enabled Parity Initialization Status: Initialization Completed Unique Identifier: 600508B1001C5D95C9C5A46D895F6036 Disk Name: /dev/cciss/c0d0 Mount Points: /boot 243 MB OS Status: LOCKED Logical Drive Label: AE8582015001438017EA36402B33and of course, we want to see that our once dismal performance is not so. download and run iozone. and then test throughput:
# iozone -t4 -Inote:
everyone says, BBWC is a must have. but, as seen on this capacitor-backed up cache, all is cool. we're running with FBWC.
FBWC is a flash based cache module that does not have the battery limitation of how long it can retain what is written to the module.
addendum:
i got ahead of myself with nagios. use the plugin here to monitor the state of the array.
and...
if someone else is doing something funny and manages to crash your new friend... you'll need to clean up...
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.delete the shared IPC that hpacucli left when it died.
# ipcs ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status ------ Semaphore Arrays -------- key semid owner perms nsems 0xffffffff 56890 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 56890and try to start hpacucli again.