diff options
author | Jonathan Brassow <jbrassow@redhat.com> | 2013-04-11 15:33:59 -0500 |
---|---|---|
committer | Jonathan Brassow <jbrassow@redhat.com> | 2013-04-11 15:33:59 -0500 |
commit | ff64e3500f6acf93dce017388445c4828111d06f (patch) | |
tree | 7e47f6eac0fa1a6487764a58801c8e57ab720a23 /tools/args.h | |
parent | e7ccad2ef0e813f6ca42ab5090e76aa5bee05912 (diff) | |
download | lvm2-ff64e3500f6acf93dce017388445c4828111d06f.tar.gz |
RAID: Add scrubbing support for RAID LVs
New options to 'lvchange' allow users to scrub their RAID LVs.
Synopsis:
lvchange --syncaction {check|repair} vg/raid_lv
RAID scrubbing is the process of reading all the data and parity blocks in
an array and checking to see whether they are coherent. 'lvchange' can
now initaite the two scrubbing operations: "check" and "repair". "check"
will go over the array and recored the number of discrepancies but not
repair them. "repair" will correct the discrepancies as it finds them.
'lvchange --syncaction repair vg/raid_lv' is not to be confused with
'lvconvert --repair vg/raid_lv'. The former initiates a background
synchronization operation on the array, while the latter is designed to
repair/replace failed devices in a mirror or RAID logical volume.
Additional reporting has been added for 'lvs' to support the new
operations. Two new printable fields (which are not printed by
default) have been added: "syncaction" and "mismatches". These
can be accessed using the '-o' option to 'lvs', like:
lvs -o +syncaction,mismatches vg/lv
"syncaction" will print the current synchronization operation that the
RAID volume is performing. It can be one of the following:
- idle: All sync operations complete (doing nothing)
- resync: Initializing an array or recovering after a machine failure
- recover: Replacing a device in the array
- check: Looking for array inconsistencies
- repair: Looking for and repairing inconsistencies
The "mismatches" field with print the number of descrepancies found during
a check or repair operation.
The 'Cpy%Sync' field already available to 'lvs' will print the progress
of any of the above syncactions, including check and repair.
Finally, the lv_attr field has changed to accomadate the scrubbing operations
as well. The role of the 'p'artial character in the lv_attr report field
as expanded. "Partial" is really an indicator for the health of a
logical volume and it makes sense to extend this include other health
indicators as well, specifically:
'm'ismatches: Indicates that there are discrepancies in a RAID
LV. This character is shown after a scrubbing
operation has detected that portions of the RAID
are not coherent.
'r'efresh : Indicates that a device in a RAID array has suffered
a failure and the kernel regards it as failed -
even though LVM can read the device label and
considers the device to be ok. The LV should be
'r'efreshed to notify the kernel that the device is
now available, or the device should be 'r'eplaced
if it is suspected of failing.
Diffstat (limited to 'tools/args.h')
-rw-r--r-- | tools/args.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/args.h b/tools/args.h index 49ddcd25d..81793a599 100644 --- a/tools/args.h +++ b/tools/args.h @@ -86,6 +86,7 @@ arg(ignoreadvanced_ARG, '\0', "ignoreadvanced", NULL, 0) arg(ignoreunsupported_ARG, '\0', "ignoreunsupported", NULL, 0) arg(atversion_ARG, '\0', "atversion", string_arg, 0) arg(validate_ARG, '\0', "validate", NULL, 0) +arg(syncaction_ARG, '\0', "syncaction", string_arg, 0) /* Allow some variations */ arg(resizable_ARG, '\0', "resizable", yes_no_arg, 0) |