-.TH lctl 1 "2003 Oct 8" Lustre "configuration utilities"
+.TH lctl 1 "2016 Sep 8" Lustre "configuration utilities"
.SH NAME
lctl \- Low level Lustre filesystem configuration utility
.SH SYNOPSIS
.B lctl
is used to directly control Lustre via an ioctl interface, allowing
various configuration, maintenance, and debugging features to be accessed.
-
+
.B lctl
can be invoked in interactive mode by issuing lctl command. After that, commands are issued as below. The most common commands in lctl are
-.B dl
-,
-.B dk
-,
-.B device
-,
-.B network
-.I <up/down>
-,
-.B list_nids
-,
+.BR dl ,
+.BR dk ,
+.BR device ,
+.B network
+.IR <up/down> ,
+.BR list_nids ,
.B ping
-.I nid
-,
-.B help
-,
-.B quit.
+.IR nid ,
+.BR help ,
+.BR quit .
To get a complete listing of available commands, type
.B help
at the lctl prompt. To get basic help on the meaning and syntax of a
-command, type
-.B help
+command, type
+.B help
.I command
-. Command completion is activated with the TAB key, and command history is available via the up- and down-arrow keys.
+. Command completion is activated with the TAB key, and command history is available via the up- and down-arrow keys.
-For non-interactive use, one uses the second invocation, which runs command after connecting to the device.
+For non-interactive use, one uses the second invocation, which runs command after connecting to the device.
.SS Network Configuration
.TP
-.BI network " <up/down>|<tcp/elan/myrinet>"
+.BR network " <" up / down >|< tcp / o2ib >
Start or stop LNET, or select a network type for other
.I lctl
LNET commands
Check LNET connectivity via an LNET ping. This will use the fabric
appropriate to the specified NID.
.TP
-.BI interface_list
-Print the network interface information for a given
+.BI interface_list
+Print the network interface information for a given
.B network
type.
.TP
-.BI peer_list
-Print the known peers for a given
+.BI peer_list
+Print the known peers for a given
.B network
type.
.TP
-.BI conn_list
+.BI conn_list
Print all the connected remote NIDs for a given
.B network
type.
.TP
-.BI active_tx
-This command should print active transmits, and it is only used for elan network type.
-.TP
-.BI route_list
+.BI route_list
Print the complete routing table.
.PP
.SS Device Selection
-.TP
-.BI device " <devname> "
-This will select the specified OBD device. All other commands depend on the device being set.
-.TP
-.BI device_list
-Show all the local Lustre OBDs. AKA
+.TP
+.BI device " <devname> "
+This will select the specified OBD device. All other commands depend on the device being set.
+.TP
+.BI device_list
+Show all the local Lustre OBDs. AKA
.B dl
.PP
.SS Device Operations
-.TP
+.TP
.BI list_param " [-F|-R] <param_search ...>"
List the Lustre or LNet parameter name
.B -F
.br
...
.TP
-.BI get_param " [-n|-N|-F] <parameter ...>"
+.BI get_param " [-F|-n|-N|-R] <parameter ...>"
Get the value of Lustre or LNET parameter.
.br
+.B -F
+When -N specified, add '/', '@' or '=' for directories, symlinks and writeable files, respectively.
+.br
+.br
.B -n
Print only the value and not parameter name.
.br
.B -N
Print only matched parameter names and not the values. (Especially useful when using patterns.)
.br
-.B -F
-When -N specified, add '/', '@' or '=' for directories, symlinks and writeable files, respectively.
+.B -R
+Print all of the parameter names below the specified name.
.br
.B Examples:
.br
.br
.B Parameters:
.br
-All of the writable parameters under
+All of the writable parameters under
.B lctl list_param
-(e.g.
+(e.g.
.I lctl list_param -F osc.*.* | grep =
) can be permanently set using
.B lctl conf_param
Additionally, failover nodes may be added (or removed), and some system-wide parameters may be set as well (sys.at_max, sys.at_min, sys.at_extra, sys.at_early_margin, sys.at_history, sys.timeout, sys.ldlm_timeout.) <device> is ignored for system wide parameters.
.br
.B Examples:
-.br
+.br
# lctl conf_param testfs.sys.at_max=1200
.br
-# lctl conf_param testfs.llite.max_read_ahead_mb=16
+# lctl conf_param testfs.llite.max_read_ahead_mb=16
.br
# lctl conf_param testfs-MDT0000.lov.stripesize=2M
.br
-# lctl conf_param lustre-OST0001.osc.active=0
+# lctl conf_param lustre-OST0001.osc.active=0
.br
-# lctl conf_param testfs-OST0000.osc.max_dirty_mb=29.15
+# lctl conf_param testfs-OST0000.osc.max_dirty_mb=29.15
.br
-# lctl conf_param testfs-OST0000.ost.client_cache_seconds=15
+# lctl conf_param testfs-OST0000.ost.client_cache_seconds=15
.br
# lctl conf_param testfs-OST0000.failover.node=1.2.3.4@tcp1
-.TP
-.BI activate
-Reactivate an import after deactivating, below. This setting is only effective until the next restart (see
+.TP
+.BI activate
+Reactivate an import after deactivating, below. This setting is only effective until the next restart (see
.B conf_param
).
-.TP
-.BI deactivate
+.TP
+.BI deactivate
Deactivate an import, in particular meaning do not assign new file stripes
to an OSC. This command should be used on the OSC in the MDT LOV
corresponding to a failed OST device, to prevent further attempts at
communication with the failed OST.
-.TP
-.BI abort_recovery
-Abort the recovery process on a restarting MDT or OST device
-.PP
-.SS Virtual Block Device Operation
-Lustre is able to emulate a virtual block device upon regular file. It is necessary to be used when you are trying to setup a swap space via file.
.TP
-.BI blockdev_attach " <file name> <device node>"
-Attach the lustre regular file to a block device. If the device node is not existent, lctl will create it \- it is recommended to create it by lctl since the emulator uses a dynamical major number.
-.TP
-.BI blockdev_detach " <device node>"
-Detach the virtual block device.
-.TP
-.BI blockdev_info " <device node>"
-Acquire which lustre file was attached to the device node.
+.BI abort_recovery
+Abort the recovery process on a restarting MDT or OST device
.PP
.SS Changelogs
.TP
-.BI changelog_register
+.BI changelog_register " [-n]"
Register a new changelog user for a particular device. Changelog entries
will not be purged beyond any registered users' set point. (See lfs changelog_clear.)
+.br
+.B -n
+Print only the ID of the newly registered user.
.TP
.BI changelog_deregister " <id>"
Unregister an existing changelog user. If the user's "clear" record number
.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.
+.RE
+.PP
+\fBlctl-lfsck-query\fR(8)
+.RS 4
+Get the LFSCK global status via the specified MDT device.
+.RE
.SS Debug
-.TP
-.BI debug_daemon
+.TP
+.BI debug_daemon
Start and stop the debug daemon, and control the output filename and size.
-.TP
-.BI debug_kernel " [file] [raw]"
+.TP
+.BI debug_kernel " [file] [raw]"
Dump the kernel debug buffer to stdout or file.
-.TP
+.TP
.BI debug_file " <input> [output]"
Convert kernel-dumped debug log from binary to plain text format.
-.TP
-.BI clear
+.TP
+.BI clear
Clear the kernel debug buffer.
-.TP
-.BI mark " <text>"
+.TP
+.BI mark " <text>"
Insert marker text in the kernel debug buffer.
-.TP
-.BI filter " <subsystem id/debug mask>"
+.TP
+.BI filter " <subsystem id/debug mask>"
Filter kernel debug messages by subsystem or mask.
-.TP
-.BI show " <subsystem id/debug mask>"
+.TP
+.BI show " <subsystem id/debug mask>"
Show specific type of messages.
-.TP
-.BI debug_list " <subs/types>"
+.TP
+.BI debug_list " <subs/types>"
List all the subsystem and debug types.
.TP
-.BI modules " <path>"
+.BI modules " <path>"
Provide gdb-friendly module information.
.SH OPTIONS
-The following options can be used to invoke lctl.
+The following options can be used to invoke lctl.
.TP
-.B --device
+.B --device
The device to be used for the operation. This can be specified by name or
-number. See
+number. See
.B device_list
.TP
-.B --ignore_errors | ignore_errors
+.B --ignore_errors | ignore_errors
Ignore errors during script processing
.TP
.B lustre_build_version
.SH AVAILABILITY
.B lctl
-is part of the
-.BR Lustre (7)
+is part of the
+.BR Lustre (7)
filesystem package.
.SH SEE ALSO
.BR lustre (7),
.BR mkfs.lustre (8),
.BR mount.lustre (8),
.BR lctl (8),
+.BR lctl-lfsck-start (8),
+.BR lctl-lfsck-stop (8),
+.BR lctl-lfsck-query (8),
+.BR lctl-network (8),
+.BR lctl-nodemap-activate (8),
+.BR lctl-nodemap-add-idmap (8),
+.BR lctl-nodemap-add-range (8),
+.BR lctl-nodemap-add (8),
+.BR lctl-nodemap-del-idmap (8),
+.BR lctl-nodemap-del-range (8),
+.BR lctl-nodemap-del (8),
+.BR lctl-nodemap-modify (8),
.BR lfs (1)