1 .TH lctl 8 "2017 Jan 12" Lustre "configuration utilities"
3 lctl \- Low level Lustre filesystem configuration utility
8 .B lctl --device <devno> <command [args]>
12 .B lctl --list-commands
16 is used to directly control Lustre via an ioctl interface, allowing
17 various configuration, maintenance, and debugging features to be accessed.
20 can be invoked in interactive mode by issuing lctl command. After that, commands are issued as below. The most common commands in lctl are
32 To get a complete listing of available commands, type
34 at the lctl prompt. To get basic help on the meaning and syntax of a
38 . Command completion is activated with the TAB key, and command history is available via the up- and down-arrow keys.
40 For non-interactive use, one uses the second invocation, which runs command after connecting to the device.
42 .SS System Configuration
43 The on-line tool set for backup or removal of Lustre system configuration. For detail, please see:
48 .SS Network Configuration
50 .BR network " <" up / down >|< tcp / o2ib >
51 Start or stop LNET, or select a network type for other
56 Print all Network Identifiers on the local node. LNET must be running.
58 .BI which_nid " <nidlist>"
59 From a list of nids for a remote node, show which interface communication
62 .BI replace_nids " <devicename> <nid1>[,nid2,nid3:nid4,nid5:nid6 ...]"
63 Replace the LNET Network Identifiers for a given device,
64 as when the server's IP address has changed.
65 This command must be run on the MGS node.
66 Only MGS server should be started (command execution returns error
67 in another cases). To start the MGS service only:
68 mount -t lustre <MDT partition> -o nosvc <mount point>
69 Note the replace_nids command skips any invalidated records in the configuration log.
70 The previous log is backed up with the suffix '.bak'.
71 Failover nids must be passed after ':' symbol. More then
72 one failover can be set (every failover nids after ':' symbol).
74 .BI ping " <nid> timeout"
75 Check LNET connectivity via an LNET ping. This will use the fabric
76 appropriate to the specified NID. By default lctl will attempt to
77 reach the remote node up to 120 seconds and then timeout. To disable
78 the timeout just specify an negative timeout value.
81 Print the network interface information for a given
86 Print the known peers for a given
91 Print all the connected remote NIDs for a given
96 Print the complete routing table.
100 .BI device " <devname> "
101 This will select the specified OBD device. All other commands depend on the device being set.
104 Show all the local Lustre OBDs. AKA
107 .SS Device Operations
109 .BI conf_param " [-d] <device|fsname>.<parameter>=<value>"
110 Set a permanent configuration parameter for any device via the MGS. This
111 command must be run on the MGS node.
113 .B -d <device|fsname>.<parameter>
114 Delete a parameter setting (use the default value at the next restart).
115 A null value for <value> also deletes the parameter setting. This is
116 useful if an incorrect or obsolete parameter is in the configuration.
120 All of the writable parameters under
123 .I lctl list_param -F osc.*.* | grep =
124 ) can be permanently set using
126 , but the format is slightly different. For conf_param, the device is specified first, then the obdtype. (See examples below.) Wildcards are not supported.
128 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.
132 # lctl conf_param testfs.sys.at_max=1200
134 # lctl conf_param testfs.llite.max_read_ahead_mb=16
136 # lctl conf_param testfs-MDT0000.lov.stripesize=2M
138 # lctl conf_param lustre-OST0001.osc.active=0
140 # lctl conf_param testfs-OST0000.osc.max_dirty_mb=29.15
142 # lctl conf_param testfs-OST0000.ost.client_cache_seconds=15
144 # lctl conf_param testfs-OST0000.failover.node=1.2.3.4@tcp1
146 # lctl conf_param -d testfs-OST0000.bad_param
149 Reactivate an import after deactivating, below. This setting is only effective until the next restart (see
154 Deactivate an import, in particular meaning do not assign new file stripes
155 to an OSC. This command should be used on the OSC in the MDT LOV
156 corresponding to a failed OST device, to prevent further attempts at
157 communication with the failed OST.
160 Abort the recovery process on a restarting MDT or OST device
164 .BI changelog_register " [-n]"
165 Register a new changelog user for a particular device. Changelog entries
166 will not be purged beyond any registered users' set point. (See lfs changelog_clear.)
169 Print only the ID of the newly registered user.
171 .BI changelog_deregister " <id>"
172 Unregister an existing changelog user. If the user's "clear" record number
173 is the minimum for the device, changelog records will be purged until the
177 An identity mapping feature that facilitates mapping of client UIDs and GIDs to
178 local file system UIDs and GIDs, while maintaining POSIX ownership, permissions,
181 While the nodemap feature is enabled, all client file system access is subject
182 to the nodemap identity mapping policy, which consists of the 'default' catchall
183 nodemap, and any user-defined nodemaps. The 'default' nodemap maps all client
184 identities to 99:99 (nobody:nobody). Administrators can define nodemaps for a
185 range of client NIDs which map identities, and these nodemaps can be flagged as
186 'trusted' so identities are accepted without translation, as well as flagged
187 as 'admin' meaning that root is not squashed for these nodes.
189 Note: In the current phase of implementation, to use the nodemap functionality
190 you only need to enable and define nodemaps on the MDS. The MDSes must also be
191 in a nodemap with the admin and trusted flags set. To use quotas with nodemaps,
192 you must also use set_param to enable and define nodemaps on the OSS (matching
193 what is defined on the MDS). Nodemaps do not currently persist, unless you
194 define them with set_param and use the -P flag. Note that there is a hard limit
195 to the number of changes you can persist over the lifetime of the file system.
200 \fBlctl-nodemap-activate\fR(8)
202 Activate/deactivate the nodemap feature.
205 \fBlctl-nodemap-add\fR(8)
207 Add a new nodemap, to which NID ranges, identities, and properties can be added.
210 \fBlctl-nodemap-del\fR(8)
212 Delete an existing nodemap.
215 \fBlctl-nodemap-add-range\fR(8)
217 Define a range of NIDs for a nodemap.
220 \fBlctl-nodemap-del-range\fR(8)
222 Delete an existing NID range from a nodemap.
225 \fBlctl-nodemap-add-idmap\fR(8)
227 Add a UID or GID mapping to a nodemap.
230 \fBlctl-nodemap-del-idmap\fR(8)
232 Delete an existing UID or GID mapping from a nodemap.
235 \fBlctl-nodemap-modify\fR(8)
237 Modify a nodemap property.
240 \fBlctl-nodemap-set-fileset\fR(8)
242 Add a fileset to a nodemap.
245 \fBlctl-nodemap-set-sepol\fR(8)
247 Set SELinux policy info on a nodemap.
249 .SS Configuration logs
251 .BI clear_conf " <device|fsname>"
252 This command runs on MGS node having MGS device mounted with -o
253 nosvc. It cleans up configuration files stored in the CONFIGS/ directory
254 of any records marked SKIP. If the device name is given, then the
255 specific logs for that filesystem (e.g. testfs-MDT0000) is processed.
256 Otherwise, if a filesystem name is given then all configuration files for the
257 specified filesystem are cleared.
260 An on-line Lustre consistency check and repair tool. It is used for totally
261 replacing the old lfsck tool for kinds of Lustre inconsistency verification,
262 including: corrupted or lost OI mapping, corrupted or lost link EA, corrupted
263 or lost FID in name entry, dangling name entry, multiple referenced name entry,
264 unmatched MDT-object and name entry pairs, orphan MDT-object, incorrect
265 MDT-object links count, corrupted namespace, corrupted or lost lov EA, lost
266 OST-object, multiple referenced OST-object, unmatched MDT-object and OST-object
267 pairs, orphan OST-object, and so on.
272 \fBlctl-lfsck-start\fR(8)
274 Start LFSCK on the specified MDT or OST device with specified parameters.
277 \fBlctl-lfsck-stop\fR(8)
279 Stop LFSCK on the specified MDT or OST device.
282 \fBlctl-lfsck-query\fR(8)
284 Get the LFSCK global status via the specified MDT device.
288 The tools set for write (modify) barrier on all MDTs. For detail, please see:
290 \fBlctl-barrier\fR(8)
294 ZFS backend based snapshot tools set. The tool loads system configuration
297 on the MGS, and call related ZFS commands to
298 maintain Lustre snapshot pieces on all targets (MGS/MDT/OST).
299 The configuration file
301 is not only for snapshot, but also
302 for other purpose. The format is:
303 <host> foreign/- <label> <device> [journal-path]/- [raidtab]
308 fsname-<role><index> or <role><index>
313 [md|zfs:][pool_dir/]<pool>/<filesystem>
315 Snapshot only uses the fields <host>, <label> and <device>.
323 host-mdt1 - myfs-MDT0000 zfs:/tmp/myfs-mdt1/mdt1
324 host-mdt2 - myfs-MDT0001 zfs:myfs-mdt2/mdt2
325 host-ost1 - OST0000 zfs:/tmp/myfs-ost1/ost1
326 host-ost2 - OST0001 zfs:myfs-ost2/ost2
331 \fBlctl-snapshot-create\fR(8)
333 Create snapshot with the given name.
336 \fBlctl-snapshot-destroy\fR(8)
338 Destroy the specified snapshot.
341 \fBlctl-snapshot-modify\fR(8)
343 Modify the specified snapshot.
346 \fBlctl-snapshot-list\fR(8)
348 Query the snapshot information.
351 \fBlctl-snapshot-mount\fR(8)
353 Mount the specified snapshot.
356 \fBlctl-snapshot-umount\fR(8)
358 Umount the specified snapshot.
364 Start and stop the debug daemon, and control the output filename and size.
366 .BI debug_kernel " [file] [raw]"
367 Dump the kernel debug buffer to stdout or file.
369 .BI debug_file " <input> [output]"
370 Convert kernel-dumped debug log from binary to plain text format.
373 Clear the kernel debug buffer.
376 Insert marker text in the kernel debug buffer.
378 .BI filter " <subsystem id/debug mask>"
379 Filter kernel debug messages by subsystem or mask.
381 .BI show " <subsystem id/debug mask>"
382 Show specific type of messages.
384 .BI debug_list " <subs/types>"
385 List all the subsystem and debug types.
387 .BI modules " <path>"
388 Provide gdb-friendly module information.
391 The following options can be used to invoke lctl.
394 The device to be used for the operation. This can be specified by name or
398 .B --ignore_errors | ignore_errors
399 Ignore errors during script processing
401 .B lustre_build_version
402 Output the build version of the Lustre kernel modules
405 Output the build version of the lctl utility
408 Output a list of the commands supported by the lctl utility
411 Provides brief help on the various arguments
414 Quit the interactive lctl session
420 0 UP mgc MGC192.168.0.20@tcp bfbb24e3-7deb-2ffa-eab0-44dffe00f692 5
421 1 UP ost OSS OSS_uuid 3
422 2 UP obdfilter testfs-OST0000 testfs-OST0000_UUID 3
425 Debug log: 87 lines, 87 kept, 0 dropped.
437 .BR mount.lustre (8),
439 .BR lctl-barrier (8),
441 .BR lctl-get_param (8),
442 .BR lctl-lfsck-start (8),
443 .BR lctl-lfsck-stop (8),
444 .BR lctl-lfsck-query (8),
445 .BR lctl-list_param (8),
446 .BR lctl-set_param (8),
447 .BR lctl-snapshot-create (8),
448 .BR lctl-snapshot-destroy (8),
449 .BR lctl-snapshot-modify (8),
450 .BR lctl-snapshot-list (8),
451 .BR lctl-snapshot-mount (8),
452 .BR lctl-snapshot-umount (8),
453 .BR lctl-llog_catlist (8),
454 .BR lctl-llog_info (8),
455 .BR lctl-llog_print (8),
456 .BR lctl-network (8),
457 .BR lctl-nodemap-activate (8),
458 .BR lctl-nodemap-add-idmap (8),
459 .BR lctl-nodemap-add-range (8),
460 .BR lctl-nodemap-add (8),
461 .BR lctl-nodemap-del-idmap (8),
462 .BR lctl-nodemap-del-range (8),
463 .BR lctl-nodemap-del (8),
464 .BR lctl-nodemap-modify (8),