Adaptec Array Controller supports data consistency check in both auto and manual mode.
What is it?
Consistency check/Verification is designed to proactively detect hard disk media defects while the array is online and redundant. A RAID-5 or RAID-6 array is inconsistent when the data and parity do not match. Likewise, a RAID-1 array is inconsistent when the data and mirror do not match.
The verification process issues commands to each drive in the array to test all sectors. When a bad sector is found, the RAID controller instructs the hard drive to reassign the bad sector, and then reconstructs the data using the other drives. The affected hard drive then writes data to the newly assigned good sector. These operations continue so that all sectors of each configured drive are checked, including hot spares. As a result, bad sectors can be remapped before data loss occurs.
Below is a bad example when consistency check is disabled, i/o error detected at OS, instead of controller.
sd 4:0:1:0: [sdb] Sense Key : Hardware Error [current]
sd 4:0:1:0: [sdb] Add. Sense: Internal target failure
sd 4:0:1:0: [sdb] CDB: Read(10): 28 00 33 dd dc 00 00 00 08 00
end_request: I/O error, dev sdb, sector 870177792
sd 4:0:1:0: [sdb] Unhandled sense code
sd 4:0:1:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
There are two ways to do data scrubbing. Both using arcconf command utility
1. Enable Data Scrubbing(Background consistency check), auto mode
By default, it sets on and runs on background Data scrubbing, default scrubbing time period is 30 days.
Enable data scrub
#arcconf datascrub <controller#1> on
Set data scrub period
#arcconf datascrub <controller#> period 30
# arcconf DATASCRUB
Usage: DATASCRUB <Controller#> <on|off|period <DAYS>> [noprompt]
Toggles the data scrubbing modes of the controller.
on : Turns data scrubbing on.
off : Turns data scrubbing off.
period <DAYS> : Number of days to complete data scrubbing cycle.
Minimum of 10 days (quick), maximum of 365 days (slow).
Setting the period automatically turns on data scrubbing.
noprompt : Don't prompt for confirmation.
2. Verify with fix(Manual mode)
#arcconf task start <controller#> LOGICALDRIVE LD# verify_fix
Check fix task status
#arcconf GETTASK <controller#>
Note: This mode is used to perform a single, quick check of the array. After the verification process has checked all sectors of the array, it stops and will not start again until started manually by the administrator. In manual mode, the verification process commands are given a higher priority than in Auto mode so that the check completes significantly faster. Verify with fix is a data level check and requires more controller resources to read and compare data.
Also, because of the additional resources required, verify with fix is not designed to run continuously. Rather, it should be scheduled to run at a regular interval, preferably during periods of low drive activity, or during system maintenance.
Check more Arcconf Command Examples on Linux