Whamcloud - gitweb
LU-7648 man: new man pages for LFSCK commands 94/19294/5
authorFan Yong <fan.yong@intel.com>
Thu, 26 May 2016 05:11:41 +0000 (13:11 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 20 Jul 2016 17:42:20 +0000 (17:42 +0000)
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 <fan.yong@intel.com>
Change-Id: I560aec923aa72ff11a04916c5fec3ea31c9f4f50
Reviewed-on: http://review.whamcloud.com/19294
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
lustre/doc/lctl-lfsck-query.8 [new file with mode: 0644]
lustre/doc/lctl-lfsck-start.8 [new file with mode: 0644]
lustre/doc/lctl-lfsck-stop.8 [new file with mode: 0644]
lustre/doc/lctl.8
lustre/utils/lctl.c
lustre/utils/lustre_lfsck.c

diff --git a/lustre/doc/lctl-lfsck-query.8 b/lustre/doc/lctl-lfsck-query.8
new file mode 100644 (file)
index 0000000..9b97ff6
--- /dev/null
@@ -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 <MDT_device>
+Specify the MDT device on which the LFSCK runs or ever ran.
+.TP
+.B  -t, --type <lfsck_type[,lfsck_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 (file)
index 0000000..b5cafda
--- /dev/null
@@ -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 <continue | abort>] [-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 <MDT,OST_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 <error_handle>
+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 <speed_limit>
+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 <lfsck_type[,lfsck_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 <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 (file)
index 0000000..c3dd423
--- /dev/null
@@ -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)
index 92f67ea..8a248f0 100644 (file)
@@ -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 <continue | abort>] [-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 <MDT,OST_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 <error_handle>
-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 <speed_limit>
-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 <lfsck_type[,lfsck_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 <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 <MDT_device>
-Specify the MDT device on which the LFSCK runs or ever ran.
-.TP
-  -t, --type <lfsck_type[,lfsck_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 
index 38427a6..bf1c32b 100644 (file)
@@ -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]"},
index a0cebe0..7937ca1 100644 (file)
@@ -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");
 }