Whamcloud - gitweb
LU-930 man: better describe conf_parm -d in lctl.8
[fs/lustre-release.git] / lustre / doc / lctl.8
1 .TH lctl 8 "2017 Jan 12" Lustre "configuration utilities"
2 .SH NAME
3 lctl \- Low level Lustre filesystem configuration utility
4 .SH SYNOPSIS
5 .br
6 .B lctl
7 .br
8 .B lctl --device <devno> <command [args]>
9 .br
10 .B lctl --version
11 .br
12 .B lctl --list-commands
13 .br
14 .SH DESCRIPTION
15 .B lctl
16 is used to directly control Lustre via an ioctl interface, allowing
17 various configuration, maintenance, and debugging features to be accessed.
18
19 .B lctl
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
21 .BR dl ,
22 .BR dk ,
23 .BR device ,
24 .B network
25 .IR <up/down> ,
26 .BR list_nids ,
27 .B ping
28 .IR nid ,
29 .BR help ,
30 .BR quit .
31
32 To get a complete listing of available commands, type
33 .B --list-commands
34 at the lctl prompt.  To get basic help on the meaning and syntax of a
35 command, type
36 .B help
37 .I command
38 .  Command completion is activated with the TAB key, and command history is available via the up- and down-arrow keys.
39
40 For non-interactive use, one uses the second invocation, which runs command after connecting to the device.
41
42 .SS System Configuration
43 The on-line tool set for backup or removal of Lustre system configuration. For detail, please see:
44 .PP
45 \fBlctl-lcfg\fR(8)
46 .RS 4
47
48 .SS Network Configuration
49 .TP
50 .BR network " <" up / down >|< tcp / o2ib >
51 Start or stop LNET, or select a network type for other
52 .I lctl
53 LNET commands
54 .TP
55 .BI list_nids
56 Print all Network Identifiers on the local node. LNET must be running.
57 .TP
58 .BI which_nid " <nidlist>"
59 From a list of nids for a remote node, show which interface communication
60 will take place on.
61 .TP
62 .BI replace_nids " <devicename> <nid1>[,nid2,nid3 ...]"
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 .TP
72 .BI ping " <nid> timeout"
73 Check LNET connectivity via an LNET ping. This will use the fabric
74 appropriate to the specified NID. By default lctl will attempt to
75 reach the remote node up to 120 seconds and then timeout. To disable
76 the timeout just specify an negative timeout value.
77 .TP
78 .BI interface_list
79 Print the network interface information for a given
80 .B network
81 type.
82 .TP
83 .BI peer_list
84 Print the known peers for a given
85 .B network
86 type.
87 .TP
88 .BI conn_list
89 Print all the connected remote NIDs for a given
90 .B network
91 type.
92 .TP
93 .BI route_list
94 Print the complete routing table.
95 .PP
96 .SS Device Selection
97 .TP
98 .BI device " <devname> "
99 This will select the specified OBD device.  All other commands depend on the device being set.
100 .TP
101 .BI device_list
102 Show all the local Lustre OBDs. AKA
103 .B dl
104 .PP
105 .SS Device Operations
106 .TP
107 .BI list_param " [-F|-R] <param_search ...>"
108 List the Lustre or LNet parameter name
109 .B -F
110 Add '/', '@' or '=' for dirs, symlinks and writeable files, respectively.
111 .br
112 .B -R
113 Recursively list all parameters under the specified parameter search string. If
114 .I param_search
115 is unspecified, all the parameters will be shown.
116 .br
117 .B Examples:
118 .br
119 .B
120 # lctl list_param ost.*
121 .br
122   ost.OSS
123 .br
124   ost.num_refs
125 .br
126 .B
127 # lctl list_param -F ost.* debug
128 .br
129   ost.OSS/
130 .br
131   ost.num_refs
132 .br
133   debug=
134 .br
135 .B
136 # lctl list_param -R mdt
137 .br
138   mdt
139 .br
140   mdt.lustre-MDT0000
141 .br
142   mdt.lustre-MDT0000.capa
143 .br
144   mdt.lustre-MDT0000.capa_count
145 .br
146   mdt.lustre-MDT0000.capa_key_timeout
147 .br
148   mdt.lustre-MDT0000.capa_timeout
149 .br
150   mdt.lustre-MDT0000.commit_on_sharing
151 .br
152   mdt.lustre-MDT0000.evict_client
153 .br
154   ...
155 .TP
156 .BI get_param " [-F|-n|-N|-R] <parameter ...>"
157 Get the value of Lustre or LNET parameter.
158 .br
159 .B -F
160 When -N specified, add '/', '@' or '=' for directories, symlinks and writeable files, respectively.
161 .br
162 .br
163 .B -n
164 Print only the value and not parameter name.
165 .br
166 .B -N
167 Print only matched parameter names and not the values. (Especially useful when using patterns.)
168 .br
169 .B -R
170 Print all of the parameter names below the specified name.
171 .br
172 .B Examples:
173 .br
174 .B
175 # lctl get_param ost.*
176 .br
177   ost.OSS
178 .br
179   ost.num_refs
180 .br
181 .B
182 # lctl get_param -n debug timeout
183 .br
184   super warning dlmtrace error emerg ha rpctrace vfstrace config console
185 .br
186   20
187 .br
188 .B
189 # lctl get_param -N ost.* debug
190 .br
191   ost.OSS
192 .br
193   ost.num_refs
194 .br
195   debug
196 .br
197 lctl "get_param -NF" is equivalent to "list_param -F".
198 .TP
199 .BI set_param " [-n] [-P] [-d] <parameter=value ...>"
200 Set the value of Lustre or LNET parameter.
201 .br
202 .B -n
203 Disable printing of the key name when printing values.
204 .br
205 .B -P
206 Set the parameter permanently, filesystem-wide.
207 This parameters are only visible to 2.5.0 and later clients, older clients will not see these parameters.
208 .br
209 .B -d
210 Remove the permanent setting (only with -P option)
211 .br
212 .B Examples:
213 .br
214 .B
215 # lctl set_param fail_loc=0 timeout=20
216 .br
217   fail_loc=0
218 .br
219   timeout=20
220 .br
221 .B
222 # lctl set_param -n fail_loc=0 timeout=20
223 .br
224   0
225 .br
226   20
227 .br
228 .B
229 # lctl set_param -P osc.*.max_dirty_mb=32
230 .br
231 .TP
232 .BI conf_param " [-d] <device|fsname>.<parameter>=<value>"
233 Set a permanent configuration parameter for any device via the MGS.  This
234 command must be run on the MGS node.
235 .br
236 .B -d <device|fsname>.<parameter>
237 Delete a parameter setting (use the default value at the next restart).
238 A null value for <value> also deletes the parameter setting.  This is
239 useful if an incorrect or obsolete parameter is in the configuration.
240 .br
241 .B Parameters:
242 .br
243 All of the writable parameters under
244 .B lctl list_param
245 (e.g.
246 .I lctl list_param -F osc.*.* | grep =
247 ) can be permanently set using
248 .B lctl conf_param
249 , but the format is slightly different.  For conf_param, the device is specified first, then the obdtype. (See examples below.)  Wildcards are not supported.
250 .br
251 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.
252 .br
253 .B Examples:
254 .br
255 # lctl conf_param testfs.sys.at_max=1200
256 .br
257 # lctl conf_param testfs.llite.max_read_ahead_mb=16
258 .br
259 # lctl conf_param testfs-MDT0000.lov.stripesize=2M
260 .br
261 # lctl conf_param lustre-OST0001.osc.active=0
262 .br
263 # lctl conf_param testfs-OST0000.osc.max_dirty_mb=29.15
264 .br
265 # lctl conf_param testfs-OST0000.ost.client_cache_seconds=15
266 .br
267 # lctl conf_param testfs-OST0000.failover.node=1.2.3.4@tcp1
268 .br
269 # lctl conf_param -d testfs-OST0000.bad_param
270 .TP
271 .BI activate
272 Reactivate an import after deactivating, below.  This setting is only effective until the next restart (see
273 .B conf_param
274 ).
275 .TP
276 .BI deactivate
277 Deactivate an import, in particular meaning do not assign new file stripes
278 to an OSC.  This command should be used on the OSC in the MDT LOV
279 corresponding to a failed OST device, to prevent further attempts at
280 communication with the failed OST.
281 .TP
282 .BI abort_recovery
283 Abort the recovery process on a restarting MDT or OST device
284 .PP
285 .SS Changelogs
286 .TP
287 .BI changelog_register " [-n]"
288 Register a new changelog user for a particular device.  Changelog entries
289 will not be purged beyond any registered users' set point. (See lfs changelog_clear.)
290 .br
291 .B -n
292 Print only the ID of the newly registered user.
293 .TP
294 .BI changelog_deregister " <id>"
295 Unregister an existing changelog user.  If the user's "clear" record number
296 is the minimum for the device, changelog records will be purged until the
297 next minimum.
298 .PP
299 .SS Nodemap
300 An identity mapping feature that facilitates mapping of client UIDs and GIDs to
301 local file system UIDs and GIDs, while maintaining POSIX ownership, permissions,
302 and quota.
303
304 While the nodemap feature is enabled, all client file system access is subject
305 to the nodemap identity mapping policy, which consists of the 'default' catchall
306 nodemap, and any user-defined nodemaps. The 'default' nodemap maps all client
307 identities to 99:99 (nobody:nobody). Administrators can define nodemaps for a
308 range of client NIDs which map identities, and these nodemaps can be flagged as
309  'trusted' so identities are accepted without translation, as well as flagged
310 as 'admin' meaning that root is not squashed for these nodes.
311
312 Note: In the current phase of implementation, to use the nodemap functionality
313 you only need to enable and define nodemaps on the MDS. The MDSes must also be
314 in a nodemap with the admin and trusted flags set. To use quotas with nodemaps,
315 you must also use set_param to enable and define nodemaps on the OSS (matching
316 what is defined on the MDS). Nodemaps do not currently persist, unless you
317 define them with set_param and use the -P flag. Note that there is a hard limit
318 to the number of changes you can persist over the lifetime of the file system.
319
320 See also:
321
322 .PP
323 \fBlctl-nodemap-activate\fR(8)
324 .RS 4
325 Activate/deactivate the nodemap feature.
326 .RE
327 .PP
328 \fBlctl-nodemap-add\fR(8)
329 .RS 4
330 Add a new nodemap, to which NID ranges, identities, and properties can be added.
331 .RE
332 .PP
333 \fBlctl-nodemap-del\fR(8)
334 .RS 4
335 Delete an existing nodemap.
336 .RE
337 .PP
338 \fBlctl-nodemap-add-range\fR(8)
339 .RS 4
340 Define a range of NIDs for a nodemap.
341 .RE
342 .PP
343 \fBlctl-nodemap-del-range\fR(8)
344 .RS 4
345 Delete an existing NID range from a nodemap.
346 .RE
347 .PP
348 \fBlctl-nodemap-add-idmap\fR(8)
349 .RS 4
350 Add a UID or GID mapping to a nodemap.
351 .RE
352 .PP
353 \fBlctl-nodemap-del-idmap\fR(8)
354 .RS 4
355 Delete an existing UID or GID mapping from a nodemap.
356 .RE
357 .PP
358 \fBlctl-nodemap-modify\fR(8)
359 .RS 4
360 Modify a nodemap property.
361 .RE
362
363 .SS LFSCK
364 An on-line Lustre consistency check and repair tool. It is used for totally
365 replacing the old lfsck tool for kinds of Lustre inconsistency verification,
366 including: corrupted or lost OI mapping, corrupted or lost link EA, corrupted
367 or lost FID in name entry, dangling name entry, multiple referenced name entry,
368 unmatched MDT-object and name entry pairs, orphan MDT-object, incorrect
369 MDT-object links count, corrupted namespace, corrupted or lost lov EA, lost
370 OST-object, multiple referenced OST-object, unmatched MDT-object and OST-object
371 pairs, orphan OST-object, and so on.
372
373 See also:
374
375 .PP
376 \fBlctl-lfsck-start\fR(8)
377 .RS 4
378 Start LFSCK on the specified MDT or OST device with specified parameters.
379 .RE
380 .PP
381 \fBlctl-lfsck-stop\fR(8)
382 .RS 4
383 Stop LFSCK on the specified MDT or OST device.
384 .RE
385 .PP
386 \fBlctl-lfsck-query\fR(8)
387 .RS 4
388 Get the LFSCK global status via the specified MDT device.
389 .RE
390
391 .SS BARRIER
392 The tools set for write (modify) barrier on all MDTs. For detail, please see:
393 .PP
394 \fBlctl-barrier\fR(8)
395 .RS 4
396
397 .SS SNAPSHOT
398 ZFS backend based snapshot tools set. The tool loads system configuration
399 from the file
400 .B /etc/ldev.conf
401 on the MGS, and call related ZFS commands to
402 maintain Lustre snapshot pieces on all targets (MGS/MDT/OST).
403 The configuration file
404 .B /etc/ldev.conf
405 is not only for snapshot, but also
406 for other purpose. The format is:
407   <host> foreign/- <label> <device> [journal-path]/- [raidtab]
408
409 The format of
410 .I <label>
411 is:
412   fsname-<role><index> or <role><index>
413
414 The format of
415 .I <device>
416 is:
417   [md|zfs:][pool_dir/]<pool>/<filesystem>
418
419 Snapshot only uses the fields <host>, <label> and <device>.
420
421 .br
422 .B Example:
423 .br
424 .B
425 # cat /etc/ldev.conf
426 .br
427  host-mdt1 - myfs-MDT0000 zfs:/tmp/myfs-mdt1/mdt1
428  host-mdt2 - myfs-MDT0001 zfs:myfs-mdt2/mdt2
429  host-ost1 - OST0000 zfs:/tmp/myfs-ost1/ost1
430  host-ost2 - OST0001 zfs:myfs-ost2/ost2
431
432 See also:
433
434 .PP
435 \fBlctl-snapshot-create\fR(8)
436 .RS 4
437 Create snapshot with the given name.
438 .RE
439 .PP
440 \fBlctl-snapshot-destroy\fR(8)
441 .RS 4
442 Destroy the specified snapshot.
443 .RE
444 .PP
445 \fBlctl-snapshot-modify\fR(8)
446 .RS 4
447 Modify the specified snapshot.
448 .RE
449 .PP
450 \fBlctl-snapshot-list\fR(8)
451 .RS 4
452 Query the snapshot information.
453 .RE
454 .PP
455 \fBlctl-snapshot-mount\fR(8)
456 .RS 4
457 Mount the specified snapshot.
458 .RE
459 .PP
460 \fBlctl-snapshot-umount\fR(8)
461 .RS 4
462 Umount the specified snapshot.
463 .RE
464
465 .SS Debug
466 .TP
467 .BI debug_daemon
468 Start and stop the debug daemon, and control the output filename and size.
469 .TP
470 .BI debug_kernel " [file] [raw]"
471 Dump the kernel debug buffer to stdout or file.
472 .TP
473 .BI debug_file " <input> [output]"
474 Convert kernel-dumped debug log from binary to plain text format.
475 .TP
476 .BI clear
477 Clear the kernel debug buffer.
478 .TP
479 .BI mark " <text>"
480 Insert marker text in the kernel debug buffer.
481 .TP
482 .BI filter " <subsystem id/debug mask>"
483 Filter kernel debug messages by subsystem or mask.
484 .TP
485 .BI show " <subsystem id/debug mask>"
486 Show specific type of messages.
487 .TP
488 .BI debug_list " <subs/types>"
489 List all the subsystem and debug types.
490 .TP
491 .BI modules " <path>"
492 Provide gdb-friendly module information.
493
494 .SH OPTIONS
495 The following options can be used to invoke lctl.
496 .TP
497 .B --device
498 The device to be used for the operation. This can be specified by name or
499 number. See
500 .B device_list
501 .TP
502 .B --ignore_errors | ignore_errors
503 Ignore errors during script processing
504 .TP
505 .B lustre_build_version
506 Output the build version of the Lustre kernel modules
507 .TP
508 .B --version
509 Output the build version of the lctl utility
510 .TP
511 .B --list-commands
512 Output a list of the commands supported by the lctl utility
513 .TP
514 .B help
515 Provides brief help on the various arguments
516 .TP
517 .B exit/quit
518 Quit the interactive lctl session
519
520 .SH EXAMPLES
521 # lctl
522 .br
523 lctl > dl
524   0 UP mgc MGC192.168.0.20@tcp bfbb24e3-7deb-2ffa-eab0-44dffe00f692 5
525   1 UP ost OSS OSS_uuid 3
526   2 UP obdfilter testfs-OST0000 testfs-OST0000_UUID 3
527 .br
528 lctl > dk /tmp/log
529 Debug log: 87 lines, 87 kept, 0 dropped.
530 .br
531 lctl > quit
532
533 .SH AVAILABILITY
534 .B lctl
535 is part of the
536 .BR lustre (7)
537 filesystem package.
538 .SH SEE ALSO
539 .BR lustre (7),
540 .BR mkfs.lustre (8),
541 .BR mount.lustre (8),
542 .BR lctl (8),
543 .BR lctl-lfsck-start (8),
544 .BR lctl-lfsck-stop (8),
545 .BR lctl-lfsck-query (8),
546 .BR lctl-lcfg (8),
547 .BR lctl-barrier (8),
548 .BR lctl-snapshot-create (8),
549 .BR lctl-snapshot-destroy (8),
550 .BR lctl-snapshot-modify (8),
551 .BR lctl-snapshot-list (8),
552 .BR lctl-snapshot-mount (8),
553 .BR lctl-snapshot-umount (8),
554 .BR lctl-llog_catlist (8),
555 .BR lctl-llog_info (8),
556 .BR lctl-llog_print (8),
557 .BR lctl-network (8),
558 .BR lctl-nodemap-activate (8),
559 .BR lctl-nodemap-add-idmap (8),
560 .BR lctl-nodemap-add-range (8),
561 .BR lctl-nodemap-add (8),
562 .BR lctl-nodemap-del-idmap (8),
563 .BR lctl-nodemap-del-range (8),
564 .BR lctl-nodemap-del (8),
565 .BR lctl-nodemap-modify (8),
566 .BR lfs (1)