From: Fan Yong Date: Thu, 26 May 2016 05:11:41 +0000 (+0800) Subject: LU-7648 man: new man pages for LFSCK commands X-Git-Tag: 2.8.56~44 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=9f0a59237e9ed5ffa56d6e6bb7ea95fb3d232bea LU-7648 man: new man pages for LFSCK commands split lctl LFSCK sub-commands to new man pages. More explaination about the "-A | --all" option. Compatible support: 1) "--create_ostobj" and "--create-ostobj" option pairs 2) "--create_mdtobj" and "--create-mdtobj" option pairs 3) "--window_size" and "--window-size" option pairs Signed-off-by: Fan Yong Change-Id: I560aec923aa72ff11a04916c5fec3ea31c9f4f50 Reviewed-on: http://review.whamcloud.com/19294 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Nathaniel Clark --- diff --git a/lustre/doc/lctl-lfsck-query.8 b/lustre/doc/lctl-lfsck-query.8 new file mode 100644 index 0000000..9b97ff6 --- /dev/null +++ b/lustre/doc/lctl-lfsck-query.8 @@ -0,0 +1,34 @@ +.TH lctl-lfsck-stop 8 "2016 Apr 1" Lustre "Lustre online fsck" +.SH SYNOPSIS +.br +.B lctl lfsck_query \fR<-M | --device MDT_device> [-h | --help] + \fR[-t | --type lfsck_type[,lfsck_type...]] [-w | --wait] +.br +.SH DESCRIPTION +Get the LFSCK global status via the specified MDT device. +.SH OPTIONS +.TP +.B -M, --device +Specify the MDT device on which the LFSCK runs or ever ran. +.TP +.B -t, --type +Specify what kind(s) of LFSCK to be checked. If no type is given, the default +is to check all types of LFSCK status. Valid types are a comma-separated list +of one or more of: namespace, layout, all. +.TP +.B -h, --help +Show this help. +.TP +.B -w, --wait +Do not return until there is no on-going LFSCK scanning on any target +associated with this filesystem (MDT or OST). + +.SH AVAILABILITY +.B lctl +is part of the +.BR Lustre (7) +filesystem package. +.SH SEE ALSO +.BR lustre (7), +.BR lctl-lfsck-start (8), +.BR lctl-lfsck-stop (8) diff --git a/lustre/doc/lctl-lfsck-start.8 b/lustre/doc/lctl-lfsck-start.8 new file mode 100644 index 0000000..b5cafda --- /dev/null +++ b/lustre/doc/lctl-lfsck-start.8 @@ -0,0 +1,94 @@ +.TH lctl-lfsck-start 8 "2016 Apr 1" Lustre "Lustre online fsck" +.SH SYNOPSIS +.br +.B lctl lfsck_start \fR<-M | --device [MDT,OST]_device> + \fR[-A | --all] [-c | --create-ostobj [on | off]] + \fR[-C | --create-mttobj [on | off]] + \fR[-e | --error ] [-h | --help] + \fR[-n | --dryrun [on | off]] [-o | --orphan] + \fR[-r | --reset] [-s | --speed speed_limit] + \fR[-t | --type lfsck_type[,lfsck_type...]] + \fR[-w | --window-size size] +.br +.SH DESCRIPTION +Start LFSCK on the specified MDT or OST device with specified parameters. +.SH OPTIONS +.TP +.B -M, --device +The MDT or OST device to start LFSCK/scrub on. +.TP +.B -A, --all +Start LFSCK on all nodes via the specified MDT device (see "-M" option) by +single LFSCK command. +.TP +.B -c, --create-ostobj [on | off] +Create the lost OST-object for dangling LOV EA: 'off' (default) or 'on'. Under +default mode, when the LFSCK find some MDT-object with dangling reference, it +will report the inconsistency but will not repair it. If 'on' is given, then +LFSCK will re-create the missed OST-object. +.TP +.B -C, --create-mdtobj [on | off] +Create the lost MDT-object for dangling name entry: 'off' (default) or 'on'. +Under default mode, when the LFSCK find dangling name entry, it will report +the inconsistency but will not repair it. If 'on' is given, then LFSCK will +re-create the missed MDT-object. +.TP +.B -e, --error +With error_handle as 'abort' then if the repair of a file is not possible, then +LFSCK will save the current position stop with an error. Otherwise the default +behavior is to 'continue' if the repair of a file is not possible. +.TP +.B -h, --help +Show the usage message. +.TP +.B -n, --dryrun [on | off] +Perform a trial run with no changes made, if 'on' or no argument is given. +Default is 'off', meaning that any inconsistencies found will be repaired. +.TP +.B -o, --orphan +Handle orphan objects, such as orphan OST-objects for layout LFSCK by +linking them under the .../.lustre/lost+found directory. +.TP +.B -r, --reset +Set the current position of object iteration to the beginning of the specified +device. The non-specified parameters will also be reset to the default. By +default the iterator will resume the scanning from the last saved checkpoint +position, and other unspecified parameters will be the same as the prior +incomplete run. +.TP +.B -s, --speed +Set the upper limit of LFSCK processing in objects per second to reduce load +on the servers and storage. If no value is specified the saved value is used +(if resuming from a checkpoint). Otherwise the default value of 0 is used, +which means check the filesystem as quickly as possible. +.TP +.B -t, --type +The type of LFSCK checking/repair to execute. If no type is given and the +previous run was incomplete or internal consistency checks detected an error, +then the same types are used for the next run. Otherwise, the default is to +check all types of consistency. Any time LFSCK is triggered on an ldiskfs +MDT or OST then OI Scrub is run. Valid types are a comma-separated list of one or more of: +.B scrub +to run only the local OI Scrub on ldiskfs targets, +.B namespace +for FID-in-dirent and linkEA checking on the MDT(s), +.B layout +for MDT-OST cross-reference consistency, and +.B all +to run all of the available check types. +.TP +.B -w, --window-size +Specifies the maximum number of in-flight request being processed at +one time. This controls the load placed on remote OSTs when running +.B layout +checks. By default there are at most 1024 outstanding requests. + +.SH AVAILABILITY +.B lctl +is part of the +.BR Lustre (7) +filesystem package. +.SH SEE ALSO +.BR lustre (7), +.BR lctl-lfsck-stop (8), +.BR lctl-lfsck-query (8) diff --git a/lustre/doc/lctl-lfsck-stop.8 b/lustre/doc/lctl-lfsck-stop.8 new file mode 100644 index 0000000..c3dd423 --- /dev/null +++ b/lustre/doc/lctl-lfsck-stop.8 @@ -0,0 +1,28 @@ +.TH lctl-lfsck-stop 8 "2016 Apr 1" Lustre "Lustre online fsck" +.SH SYNOPSIS +.br +.B lctl lfsck_stop \fR<-M | --device [MDT,OST]_device> [-A | --all] [-h | --help] +.br +.SH DESCRIPTION +Stop LFSCK on the specified MDT or OST device. +.SH OPTIONS +.TP +.B -M, --device <[MDT,OST]_device> +The MDT or OST device to stop LFSCK/scrub on. +.TP +.B -A, --all +Stop LFSCK on all nodes via the specified MDT device (see "-M" option) by +single LFSCK command. +.TP +.B -h, --help +Show this help. + +.SH AVAILABILITY +.B lctl +is part of the +.BR Lustre (7) +filesystem package. +.SH SEE ALSO +.BR lustre (7), +.BR lctl-lfsck-start (8), +.BR lctl-lfsck-query (8) diff --git a/lustre/doc/lctl.8 b/lustre/doc/lctl.8 index 92f67ea..8a248f0 100644 --- a/lustre/doc/lctl.8 +++ b/lustre/doc/lctl.8 @@ -364,111 +364,32 @@ Modify a nodemap property. .RE .SS LFSCK -An on-line Lustre consistency check and repair tool. -.TP -.B lfsck_start \fR<-M | --device [MDT,OST]_device> - \fR[-A | --all] [-c | --create_ostobj [on | off]] - \fR[-e | --error ] [-h | --help] - \fR[-n | --dryrun [on | off]] [-o | --orphan] - \fR[-r | --reset] [-s | --speed speed_limit] - \fR[-t | --type lfsck_type[,lfsck_type...]] - \fR[-w | --window_size size] -.br +An on-line Lustre consistency check and repair tool. It is used for totally +replacing the old lfsck tool for kinds of Lustre inconsistency verification, +including: corrupted or lost OI mapping, corrupted or lost link EA, corrupted +or lost FID in name entry, dangling name entry, multiple referenced name entry, +unmatched MDT-object and name entry pairs, orphan MDT-object, incorrect +MDT-object links count, corrupted namespace, corrupted or lost lov EA, lost +OST-object, multiple referenced OST-object, unmatched MDT-object and OST-object +pairs, orphan OST-object, and so on. + +See also: + +.PP +\fBlctl-lfsck-start\fR(8) +.RS 4 Start LFSCK on the specified MDT or OST device with specified parameters. -.TP - -M, --device -The MDT or OST device to start LFSCK/scrub on. -.TP - -A, --all -Start LFSCK on all available MDT devices. -.TP - -c, --create_ostobj [on | off] -Create the lost OST-object for dangling LOV EA: 'off' (default) or 'on'. Under -default mode, when the LFSCK find some MDT-object with dangling reference, it -will report the inconsistency but will not repair it. If 'on' is given, then -LFSCK will re-create the missed OST-object. -.TP - -e, --error -With error_handle as 'abort' then if a repair is impossible LFSCK will save -the current position stop with an error. Otherwise the default behavior is -to 'continue' if a repair is impossible. -.TP - -h, --help -Show the usage message. -.TP - -n, --dryrun [on | off] -Perform a trial run with no changes made, if 'on' or no argument is given. -Default is 'off', meaning that any inconsistencies found will be repaired. -.TP - -o, --orphan -Handle orphan objects, such as orphan OST-objects for layout LFSCK by -linking them under the .../.lustre/lost+found directory. -.TP - -r, --reset -Set the current position of object iteration to the beginning of the specified -device. The non-specified parameters will also be reset to the default. By -default the iterator will resume the scanning from the last saved checkpoint -position, and other unspecified parameters will be the same as the prior -incomplete run. -.TP - -s, --speed -Set the upper limit of LFSCK processing in objects per second to reduce load -on the servers and storage. If no value is specified the saved value is used -(if resuming from a checkpoint). Otherwise the default value of 0 is used, -which means check the filesystem as quickly as possible. -.TP - -t, --type -The type of LFSCK checking/repair to execute. If no type is given and the -previous run was incomplete or internal consistency checks detected an error, -then the same types are used for the next run. Otherwise, the default is to -check all types of consistency. Any time LFSCK is triggered on an ldiskfs -MDT or OST then OI Scrub is run. Valid types are a comma-separated list of one or more of -.B scrub -to run only the local OI Scrub on ldiskfs targets, -.B namespace -for FID-in-dirent and linkEA checking on the MDT(s), -.B layout -for MDT-OST cross-reference consistency, and -.B all -to run all of the available check types. -.TP - -w, --window_size -Specifies the maximum number of in-flight request being processed at -one time. This controls the load placed on remote OSTs when running -.B layout -checks. By default there are at most 1024 outstanding requests. -.TP -.B lfsck_stop \fR<-M | --device [MDT,OST]_device> [-A | --all] [-h | --help] +.RE +.PP +\fBlctl-lfsck-stop\fR(8) +.RS 4 Stop LFSCK on the specified MDT or OST device. -.TP - -M, --device <[MDT,OST]_device> -The MDT or OST device to stop LFSCK/scrub on. -.TP - -A, --all -Stop LFSCK on all devices. -.TP - -h, --help -Show this help. -.TP -.B lfsck_query \fR<-M | --device MDT_device> [-h | --help] - \fR[-t | --type lfsck_type[,lfsck_type...]] [-w | --wait] -.br +.RE +.PP +\fBlctl-lfsck-query\fR(8) +.RS 4 Get the LFSCK global status via the specified MDT device. -.TP - -M, --device -Specify the MDT device on which the LFSCK runs or ever ran. -.TP - -t, --type -Specify what kind(s) of LFSCK to be checked. If no type is given, the default -is to check all types of LFSCK status. Valid types are a comma-separated list -of one or more of: namespace, layout, all -.TP - -h, --help -Show this help. -.TP - -w, --wait -Do not return until there is no on-going LFSCK scanning on any target -associated with this filesystem (MDT or OST). +.RE .SS Debug .TP .BI debug_daemon diff --git a/lustre/utils/lctl.c b/lustre/utils/lctl.c index 38427a6..bf1c32b 100644 --- a/lustre/utils/lctl.c +++ b/lustre/utils/lctl.c @@ -413,13 +413,13 @@ command_t cmdlist[] = { {"==== LFSCK ====", jt_noop, 0, "LFSCK"}, {"lfsck_start", jt_lfsck_start, 0, "start LFSCK\n" "usage: lfsck_start <-M | --device [MDT,OST]_device>\n" - " [-A | --all] [-c | --create_ostobj [on | off]]\n" - " [-C | --create_mdtobj [on | off]]\n" + " [-A | --all] [-c | --create-ostobj [on | off]]\n" + " [-C | --create-mdtobj [on | off]]\n" " [-e | --error {continue | abort}] [-h | --help]\n" " [-n | --dryrun [on | off]] [-o | --orphan]\n" " [-r | --reset] [-s | --speed speed_limit]\n" " [-t | --type lfsck_type[,lfsck_type...]]\n" - " [-w | --window_size size]"}, + " [-w | --window-size size]"}, {"lfsck_stop", jt_lfsck_stop, 0, "stop lfsck(s)\n" "usage: lfsck_stop <-M | --device [MDT,OST]_device>\n" " [-A | --all] [-h | --help]"}, diff --git a/lustre/utils/lustre_lfsck.c b/lustre/utils/lustre_lfsck.c index a0cebe0..7937ca1 100644 --- a/lustre/utils/lustre_lfsck.c +++ b/lustre/utils/lustre_lfsck.c @@ -51,7 +51,9 @@ static struct option long_opt_start[] = { {"device", required_argument, 0, 'M'}, {"all", no_argument, 0, 'A'}, {"create_ostobj", optional_argument, 0, 'c'}, + {"create-ostobj", optional_argument, 0, 'c'}, {"create_mdtobj", optional_argument, 0, 'C'}, + {"create-mdtobj", optional_argument, 0, 'C'}, {"error", required_argument, 0, 'e'}, {"help", no_argument, 0, 'h'}, {"dryrun", optional_argument, 0, 'n'}, @@ -60,6 +62,7 @@ static struct option long_opt_start[] = { {"speed", required_argument, 0, 's'}, {"type", required_argument, 0, 't'}, {"window_size", required_argument, 0, 'w'}, + {"window-size", required_argument, 0, 'w'}, {0, 0, 0, 0 } }; @@ -129,7 +132,8 @@ static void usage_start(void) " [-w | --window_size size]\n" "options:\n" "-M: device to start LFSCK/scrub on\n" - "-A: start LFSCK on all MDT devices\n" + "-A: start LFSCK on all nodes via the specified MDT device " + "(see \"-M\" option) by single LFSCK command\n" "-c: create the lost OST-object for dangling LOV EA " "(default 'off', or 'on')\n" "-C: create the lost MDT-object for dangling name entry " @@ -154,7 +158,8 @@ static void usage_stop(void) " [-A | --all] [-h | --help]\n" "options:\n" "-M: device to stop LFSCK/scrub on\n" - "-A: stop LFSCK on all MDT devices\n" + "-A: stop LFSCK on all nodes via the specified MDT device " + "(see \"-M\" option) by single LFSCK command\n" "-h: this help message\n"); }