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
From a list of nids for a remote node, show which interface communication
will take place on.
.TP
+.BI replace_nids " <devicename> <nid1>[,nid2,nid3 ...]"
+Replace the LNET Network Identifiers for a given device,
+as when the server's IP address has changed.
+This command must be run on the MGS node.
+Only MGS server should be started (command execution returns error
+in another cases). To start the MGS service only:
+mount -t lustre <MDT partition> -o nosvc <mount point>
+Note the replace_nids command skips any invalidated records in the configuration log.
+The previous log is backed up with the suffix '.bak'.
+.TP
.BI ping " <nid> "
Check LNET connectivity via an LNET ping. This will use the fabric
appropriate to the specified NID.
.PP
.SS Device Operations
.TP
-.BI conf_param " <device> <parameter>"
+.BI list_param " [-F|-R] <param_search ...>"
+List the Lustre or LNet parameter name
+.B -F
+Add '/', '@' or '=' for dirs, symlinks and writeable files, respectively.
+.br
+.B -R
+Recursively list all parameters under the specified parameter search string. If
+.I param_search
+is unspecified, all the parameters will be shown.
+.br
+.B Examples:
+.br
+.B
+# lctl list_param ost.*
+.br
+ ost.OSS
+.br
+ ost.num_refs
+.br
+.B
+# lctl list_param -F ost.* debug
+.br
+ ost.OSS/
+.br
+ ost.num_refs
+.br
+ debug=
+.br
+.B
+# lctl list_param -R mdt
+.br
+ mdt
+.br
+ mdt.lustre-MDT0000
+.br
+ mdt.lustre-MDT0000.capa
+.br
+ mdt.lustre-MDT0000.capa_count
+.br
+ mdt.lustre-MDT0000.capa_key_timeout
+.br
+ mdt.lustre-MDT0000.capa_timeout
+.br
+ mdt.lustre-MDT0000.commit_on_sharing
+.br
+ mdt.lustre-MDT0000.evict_client
+.br
+ ...
+.TP
+.BI get_param " [-n|-N|-F] <parameter ...>"
+Get the value of Lustre or LNET parameter.
+.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.
+.br
+.B Examples:
+.br
+.B
+# lctl get_param ost.*
+.br
+ ost.OSS
+.br
+ ost.num_refs
+.br
+.B
+# lctl get_param -n debug timeout
+.br
+ super warning dlmtrace error emerg ha rpctrace vfstrace config console
+.br
+ 20
+.br
+.B
+# lctl get_param -N ost.* debug
+.br
+ ost.OSS
+.br
+ ost.num_refs
+.br
+ debug
+.br
+lctl "get_param -NF" is equivalent to "list_param -F".
+.TP
+.BI set_param " [-n] [-P] [-d] <parameter=value ...>"
+Set the value of Lustre or LNET parameter.
+.br
+.B -n
+Disable printing of the key name when printing values.
+.br
+.B -P
+Set the parameter permanently, filesystem-wide.
+This parameters are only visible to 2.5.0 and later clients, older clients will not see these parameters.
+.br
+.B -d
+Remove the permanent setting (only with -P option)
+.br
+.B Examples:
+.br
+.B
+# lctl set_param fail_loc=0 timeout=20
+.br
+ fail_loc=0
+.br
+ timeout=20
+.br
+.B
+# lctl set_param -n fail_loc=0 timeout=20
+.br
+ 0
+.br
+ 20
+.br
+.B
+# lctl set_param -P osc.*.max_dirty_mb=32
+.br
+.TP
+.BI conf_param " [-d] <device|fsname>.<parameter>=<value>"
Set a permanent configuration parameter for any device via the MGS. This
-command must be run on the MGS node.
+command must be run on the MGS node.
+.br
+.B -d <device|fsname>.<parameter>
+Delete a parameter setting (use the default value at the next restart). A null value for <value> also deletes the parameter setting.
+.br
+.B Parameters:
+.br
+All of the writable parameters under
+.B lctl list_param
+(e.g.
+.I lctl list_param -F osc.*.* | grep =
+) can be permanently set using
+.B lctl conf_param
+, but the format is slightly different. For conf_param, the device is specified first, then the obdtype. (See examples below.) Wildcards are not supported.
+.br
+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
+# lctl conf_param testfs.sys.at_max=1200
+.br
+# 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
+.br
+# lctl conf_param testfs-OST0000.osc.max_dirty_mb=29.15
+.br
+# 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.
+Reactivate an import after deactivating, below. This setting is only effective until the next restart (see
+.B conf_param
+).
.TP
.BI deactivate
Deactivate an import, in particular meaning do not assign new file stripes
.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.
+.PP
+.SS Changelogs
+.TP
+.BI changelog_register
+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.)
+.TP
+.BI changelog_deregister " <id>"
+Unregister an existing changelog user. If the user's "clear" record number
+is the minimum for the device, changelog records will be purged until the
+next minimum.
+.PP
+.SS LFSCK
+An on-line Lustre consistency check and repair tool.
+.TP
+.B lfsck_start \fR<-M | --device MDT_device>
+ \fR[-e | --error <error_handle>]
+ \fR[-h | --help]
+ \fR[-n | --dryrun <switch>]
+ \fR[-r | --reset]
+ \fR[-s | --speed <speed_limit>]
+ \fR[-t | --type <lfsck_type[,lfsck_type...]>]
+.br
+Start LFSCK on the specified MDT device with specified parameters.
+.TP
+ -M, --device <MDT_device>
+The MDT device to check.
+.TP
+ -e, --error <error_handle>
+With error_handle as 'abort' LFSCK will stop if a repair is impossible. If no
+value is specified, the saved value will be used if resuming from a checkpoint.
+Otherwise the default behavior is to 'continue' if a rapair is impossible.
+.TP
+ -h, --help
+Show this help.
+.TP
+ -n, --dryrun <on|off>
+Perform a trial run with no changes made.
+.TP
+ -r, --reset
+Set the current position of LFSCK progress to the beginning of the specified
+MDT.
+.TP
+ -s, --speed <speed_limit>
+Set the upper limit of LFSCK processing in objects per second. If no value is
+specified the saved value is used (if resuming from a check point). Otherwise
+the default value of 0 is used. 0 means run as fast as possible.
+.TP
+ -t, --type <lfsck_type[,lfsck_type...]>
+Specify the type of LFSCK to execute. By default, OI Scrub is executed.
+Alternative types include FID-in-dirent and linkEA (namespace).
+.TP
+.B lfsck_stop \fR<-M | --device MDT_device> [-h | --help]
+Stop LFSCK on the specified MDT device.
+.TP
+ -M, --device <MDT_device>
+The MDT device.
+.TP
+ -h, --help
+Show this help.
.SS Debug
.TP
.BI debug_daemon
.TP
.B --ignore_errors | ignore_errors
Ignore errors during script processing
-.TP
+
.SH EXAMPLES
# lctl
.br
Debug log: 87 lines, 87 kept, 0 dropped.
.br
lctl > quit
-.PP
-# lctl conf_param testfs-MDT0000 sys.timeout=40
-.SH BUGS
-Please report all bugs to ClusterFileSystems, support@clusterfs.com
.SH AVAILABILITY
.B lctl
is part of the
.BR Lustre (7)
-filesystem package and is available from CFS
-.br
-http://clusterfs.com
+filesystem package.
.SH SEE ALSO
.BR Lustre (7),
.BR mkfs.lustre (8),