MegaRAID consistency checking is different from Read Patrol in that consistency checking reads all portions of a stripe, computing parity from the data portions of the stripe and then comparing the computed parity to the parity read from the drive. Not valid to RAID0 of course.

If the compare fails, the computed parity is then written to the appropriate drive. This process can impact the performance on the controller. 

The consistency check can be started manually or automatically, both can set/start by MegaRAID Storage Manager or MegaCli(MegaCli64), In this article, I'll be using example of MegaCli command line.

Consistency checking is automatically started in background mode at the time a parity type logical drive is created, and at this time each parity portion of every stripe is created from the existing data portions of the stripe and written to the appropriated drive.

By default, MegaRAID consistency check is enabled to concurrent mode, runs every 168 hours at up to 30% performance impact, you can check and set the values according to your business environment.


Here are some Consistency Check related command examples

You can find more MegaCli useful commands with examples. In this article, I'll be focusing consistency check feature.

To see next scheduled Consistency Check time

#MegaCli64 -AdpCcSched -Info -aALL

To change scheduled Consistency Check time

#MegaCli64 -AdpCCSched -SetSTartTime 20141028 02 -aALL

Set next scheduled consistency check at 02:00am 20141028

To disable Consistency Check

#MegaCli64 -AdpCcSched -Dsbl -aALL

To change Consistency Check mode, concurrent mode

#MegaCli64 -AdpCcSched -ModeConc -aALL

To change Consistency Check mode, Sequencial mode

#MegaCli64 -AdpCcSched  -ModeSeq -aALL

Note: After change mode from disable to concurrent/sequencial, the next scheduled CC time will become year 2135, you have to set next scheduled run time again.

Operation Mode: Concurrent
Execution Delay: 168
Next start time: 07/28/2135, 02:00:00
Current State: Stopped
Number of iterations: 118
Number of VD completed: 1
Excluded VDs          : None
Exit Code: 0x00

To change Consistency Check delay interval

# MegaCli64 -AdpCcSched -SetDelay 720 -aALL                                     
Adapter 0: Scheduled CC execution delay is set to 720 hours. ##30days

To change Consistency Check Rate

# MegaCli64 -AdpSetProp CCRate 2 -aALL
Adapter 0: Set Check consistency rate to 2% success.

To get Consistency Check Rate

# MegaCli64 -AdpGetProp CCRate -aALL
Adapter 0: Check Consistency Rate = 30% ##default

More examples from Morty Abzug, thanks.

To see what Consistency Check is actually doing:

#MegaCli64 -LDCC -ShowProg -lall -aall 

To manually start Consistency Check

# MegaCli64 -LDCC -start -lall -aall

If you get an error like "Consistency Check suspended on VD. . .", you can resume like so:

# MegaCli64 -LDCC -resume -lall -aall

To stop a running Consistency Check, you can do:

 MegaCli64 -LDCC -Stop -lall -aall

To set a Consistency Check schedule without having to look at a calendar and clock, do:

 MegaCli64 -AdpCCSched -SetSTartTime `date -d "+1 hour" "+%Y%m%d %H"` -aALL

At the end, if you want check Adapter properties, here is it

# MegaCli64 -AdpAllInfo -aALL