Whamcloud - gitweb
6d8d54f7e2ba960f19fecbbe8a59d830f45e45b4
[fs/lustre-release.git] / lustre / doc / lfs.1
1 .TH lfs 1 "2018-01-24" Lustre "user utilities"
2 .SH NAME
3 lfs \- client utility for Lustre-specific file layout and other attributes
4 .SH SYNOPSIS
5 .br
6 .B lfs changelog \fR[\fB--follow\fR] <\fImdtname\fR> [\fIstartrec \fR[\fIendrec\fR]]
7 .br
8 .B lfs changelog_clear <\fImdtname\fR> <\fIid\fR> <\fIendrec\fR>
9 .br
10 .B lfs check \fR<\fBmgts\fR|\fBmdts\fR|\fBosts\fR|\fBall\fR>
11 .br
12 .B lfs data_version \fR[\fB-nrw\fR] \fB<\fIfilename\fR>
13 .br
14 .B lfs df \fR[\fB-ihlv\fR] [\fB--pool\fR|\fB-p \fR<\fIfsname\fR>[.<\fIpool\fR>]] [\fIpath\fR]
15 .br
16 .B lfs fid2path \fR[\fB--link \fR<\fIlinkno\fR>] <\fIfsname\fR|\fIrootpath\fR> <fid\fR> ...
17 .br
18 .B lfs find \fR<\fIdirectory\fR|\fIfilename \fR...>
19       [[\fB!\fR] \fB--atime\fR|\fB-A\fR [\fB-+\fR]\fIn\fR]
20 [[\fB!\fR] \fB--ctime\fR|\fB-C\fR [\fB+-\fR]\fIn\fR]
21       [[\fB!\fR] \fB--mtime\fR|\fB-M\fR [\fB-+\fR]\fIn\fR]
22       [[\fB!\fR] \fB--component-count\fR|\fB--comp-count\fR [\fB+-\fR]\fIn\fR]
23       [[\fB!\fR] \fB--component-flags\fR|\fB--comp-flags\fR <[\fB^\fR]\fIflag\fB,\fR...>]
24       [[\fB!\fR] \fB--component-end\fR|\fB--comp-end\fR|\fB-E\fR [\fB+-\fR]\fIn\fR[\fBKMGTPE\fR]]
25       [[\fB!\fR] \fB--component-start\fR|\fB--comp-start\fR [\fB+-\fR]\fIn\fR[\fBKMGTPE\fR]]
26       [[\fB!\fR] \fB--mirror-count\fR|\fB-N\fR [\fB+-\fR]\fIn\fR]
27       [[\fB!\fR] \fB--mirror-state\fR <[^]\fIstate\fR>]
28       [[\fB!\fR] \fB--gid\fR|\fB-g\fR|\fB--group\fR|\fB-G\fR <\fIgname\fR>|<\fIgid\fR>]
29       [[\fB!\fR] \fB--layout\fR|\fB-L mdt\fR,\fBraid0\fR,\fBreleased\fR]
30 [\fB--maxdepth\fR|\fB-D\fI n\fR]
31       [[\fB!\fR] \fB--mdt\fR|\fB--mdt-index\fR|\fB-m\fR <\fIuuid\fR|\fIindex\fR,...>]
32       [[\fB!\fR] \fB--mdt-count\fR|\fB-T\fR [\fB+-\fR]\fIn\fR]
33 [[\fB!\fR] \fB--mdt-hash\fR|\fB-H \fI<hashtype>\fR]
34       [[\fB!\fR] \fB--name\fR|\fB-n \fI<pattern>\fR]
35 [[\fB!\fR] \fB--ost\fR|\fB-O\fR <\fIuuid\fR|\fIindex\fR,...>]
36       [[\fB!\fR] \fB--pool\fR <\fIpool\fR>]
37 [\fB--print\fR|\fB-P\fR] [\fB--print0\fR|\fB-0\fR]
38       [[\fB!\fR] \fB--projid\fR |<\fIprojid\fR>]
39 [[\fB!\fR] \fB--size|\fB-s\fR [\fB-+\fR]\fIn\fR[\fBKMGTPE\fR]]
40       [[\fB!\fR] \fB--stripe-count\fR|\fB-c\fR [\fB+-\fR]\fIn\fR]
41       [[\fB!\fR] \fB--stripe-index\fR|\fB-i\fR \fIn\fR,...]
42       [[\fB!\fR] \fB--stripe-size\fR|\fB-S\fR [\fB+-\fR]\fIn\fR[\fBKMG\fR]]
43 [[\fB!\fR] \fB--type\fR|\fB-t\fR {\fBbcdflps\fR}]
44       [[\fB!\fR] \fB--uid\fR|\fB-u\fR|\fB--user\fR|\fB-U
45 \fR<\fIuname\fR>|<\fIuid\fR>]
46 .br
47 .B lfs getname
48 .RB [ --help | -h "] [" --instance | -i "] [" --fsname | -n "] ["
49 .IR path ...]
50 .br
51 .B lfs getstripe
52 [\fB--component-count\fR|\fB--comp-count\fR]
53         [\fB--component-end\fR|\fB-E\fR[=[\fB+-\fR]\fIN\fR[\fBKMGTPE\fR]]
54         [\fB--component-flags\fR[=[\fB^\fR]\fIflag\fB,\fR...]]
55         [\fB--component-id\fR|\fB-I \fR[=\fIcomp_id\fR]]
56         [\fB--component-start\fR[=[\fB+-\fR]\fIN\fR[\fBKMGTPE\fR]]]
57         [\fB--directory\fR|\fB-d\fR]
58 [\fB--fid\fR|\fB-F\fR]
59 [\fB--generation\fR|\fB-g\fR]
60         [\fB--layout\fR|\fB-L\fR]
61 [\fB--mdt\fR|\fB--mdt-index\fR|\fB-m\fR]
62 [\fB--ost\fR|\fB-O\fR <\fIuuid\fR>]
63         [\fB--pool\fR|\fB-p\fR]
64 [\fB--quiet\fR|\fB-q\fR]
65 [\fB--recursive\fR|\fB-r\fR]
66         [\fB--raw\fR|\fB-R\fR]
67 [\fB--stripe-count\fR|\fB-c\fR]
68 [\fB--stripe-index\fR|\fB-i\fR]
69         [\fB--stripe-size\fR|\fB-S\fR]
70 [\fB--verbose\fR|\fB-v\fR]
71 [\fB--yaml\fR|\fB-y\fR]
72         <\fIdirname\fR|\fIfilename\fR> ...
73 .br
74 .B lfs migrate \fR{\fB--mdt-index\fR|\fB-m\fR} <\fImdt_index\fR> \fIdirectory\fR
75 .br
76 .B lfs migrate \fR[\fB--stripe-count\fR|\fB-c\fR \fR<\fIstripe_count\fR>]
77             [\fB--stripe-index\fR|\fB-i\fR \fR<\fIstart_ost_idx\fR>]
78             [\fB--stripe-size\fR|\fB-S\fR \fR<\fIstripe_size\fR>]
79 [\fB--pool\fR|\fB-p\fR \fR<\fIpool_name\fR>]
80             [\fB-o\fR|\fB--ost-list \fR<\fIost_indices\fR>]
81 [\fB--block\fR|\fB-b\fR]
82             [\fB--non-block\fR|\fB-n\fR] <\fIfile\fR|\fIdirectory\fR>
83 .br
84 .B lfs migrate \fR<\fB--component-end\fR|\fB-E\fR \fIcomp_end1\fR>
85 [\fISTRIPE_OPTIONS\fR]
86             <\fB--component-end\fR|\fB-E\fR \fIcomp_end2\fR>
87 [\fISTRIPE_OPTIONS\fR]
88             ... \fIfilename\fR
89 .br
90 .B lfs mkdir \fR[\fB-c\fR|\fB--count \fR<\fIstripe_count\fR>]
91 [\fB-i\fR|\fB--index \fR<\fImdt_idx\fR>]
92           [\fB-h\fR|\fB--hash-type \fR<\fIhash_name\fR>]
93 [\fB-m\fR|\fB--mode \fR<\fImode\fR>]
94           [\fB-D\fR|\fB--default\fR] \fIdirectory\fR
95 .br
96 .B lfs osts \fR[<\fIpath\fR>]
97 .br
98 .B lfs mdts \fR[<\fIpath\fR>]
99 .br
100 .B lfs path2fid \fR[\fB--parents\fR] <\fIpath\fR> ...
101 .br
102 .B lfs pool_list \fR<\fIfilesystem\fR>[\fB.\fR<\fIpool\fR>] | <\fIpathname\fR>
103 .br
104 .B lfs setstripe \fR[\fB--stripe-size\fR|\fB-S <\fIsize\fR>] [\fB--stripe-count\fR|-c <\fIcount\fR>]
105         [\fB--stripe-index\fR|\fB-i <\fIstart_ost_index\fR>] [\fB--pool\fR|\fB-p \fR<\fIpoolname\fR>]
106         [\fB--ost-list\fR|\fB-o <\fIost_indices\fR>] <\fIdirectory\fR|\fIfilename\fR>
107 .br
108 .B lfs setstripe -d \fR<\fIdir\fR>
109 .br
110 .B lfs setstripe --component-end\fR|\fB-E <\fIend1> [\fISTRIPE_OPTIONS\fR]
111              [\fB--component-end\fR|\fB-E \fR<\fIend2\fR> [\fISTRIPE_OPTIONS\fR]]
112              ... <\fIfilename>\fR
113 .br
114 .B lfs setstripe --component-add \fB-E\fR <\fIend1> [\fISTRIPE_OPTIONS]
115              [\fB--component-end\fR|\fB-E \fR<\fIend2\fR> [\fISTRIPE_OPTIONS\fR]]
116              ... <\fIfilename\fR>
117 .br
118 .B lfs setstripe --component-del \fR{\fB--component-id\fR|\fB-I \fR<\fIid\fR> |
119                                \fB--component-flags \fR<\fIflags\fR>}
120 <\fIfilename\fR>
121 .br
122 .B lfs setstripe --yaml=\fR<\fIyaml_template_file\fR> <\fIfilename\fR>
123 .br
124 .B lfs --version
125 .br
126 .B lfs --list-commands
127 .br
128 .B lfs help
129 .SH DESCRIPTION
130 .B lfs
131 can be used to create a new file with a specific striping pattern, determine
132 the default striping pattern, gather the extended attributes (object numbers
133 and location) for a specific file. It can be invoked interactively without any
134 arguments or in a non-interactive mode with one of the arguments supported.
135 .SH COMMANDS
136 A number of sub-commands supported by lfs are listed below.  Other commands
137 are described in separate man pages of the form
138 .BI lfs- command
139 as listed in the
140 .B SEE ALSO
141 section at the end.
142 .TP
143 .B changelog
144 Show the metadata changes on an MDT.  Start and end points are optional.  The --follow option will block on new changes; this option is only valid when run direclty on the MDT node.
145 .TP
146 .B changelog_clear
147 Indicate that changelog records previous to <endrec> are no longer of
148 interest to a particular consumer <id>, potentially allowing the MDT to
149 free up disk space. An <endrec> of 0 indicates the current last record.
150 Changelog consumers must be registered on the MDT node using \fBlctl\fR.
151 .TP
152 .B check <mgts|mdts|osts|all>
153 Display the status of the MGTs, MDTs or OSTs (as specified in the command) or
154 all the servers (MGTs, MDTs and OSTs).
155 .TP
156 .B data_version [-nrw] <filename>
157 Display the current version of file data. If -n is specified, the data version
158 is read without taking a lock. As a consequence, the data version could be
159 outdated if there are dirty caches on filesystem clients, but this option will
160 not force data flushes and has less of an impact on the filesystem. If -r is
161 specified, the data version is read after dirty pages on clients are flushed. If
162 -w is specified, the data version is read after all caching pages on clients are
163 flushed.
164
165 Even with -r or -w, race conditions are possible and the data version should be
166 checked before and after an operation to be confident the data did not change
167 during it.
168
169 The data version is the sum of the last committed transaction numbers of all
170 data objects of a file. It is used by HSM policy engines for verifying that file
171 data has not been changed during an archive operation or before a release
172 operation, and by OST migration, primarily for verifying that file data has not
173 been changed during a data copy, when done in non-blocking mode.
174 .TP
175 .B osts
176 .RB [ path ]
177 List all the OSTs for all mounted filesystems. If a \fBpath\fR is provided
178 that is located on a lustre mounted file system then only the OSTs belonging
179 to that filesystem are displayed.
180 .TP
181 .B pool_list
182 .RI { filesystem }[ .poolname "] | {" pathname }
183 List the pools in
184 .I filesystem
185 or
186 .IR pathname ,
187 or the OSTs in
188 .IR filesystem.pool .
189 .TP
190 .B swap_layouts <filename1> <filename2>
191 Swap the data (layout and OST objects) of two regular files. The
192 two files have to be in the same filesystem, owned by the same user,
193 reside on the same MDT and writable by the user.
194
195 Swapping the layout of two directories is not permitted.
196 .TP
197 .B mkdir
198 lfs mkdir is documented in the man page: lfs-mkdir(1). NOTE:
199 .B lfs setdirstripe
200 is an alias of the command
201 .B lfs mkdir
202 .TP
203 .B mv
204 lfs mv is deprecated, use lfs
205 .B migrate
206 instead.
207 .TP
208 .B migrate
209 See lfs-migrate(1).
210 .TP
211 .B setstripe
212 See lfs-setstripe(1).
213 .TP
214 .B --version
215 Output the build version of the lfs utility. Use "lctl lustre_build_version" to get the version of the Lustre kernel modules
216 .TP
217 .B --list-commands
218 Output a list of the commands supported by the lfs utility
219 .TP
220 .B help
221 Provides brief help on the various arguments
222 .TP
223 .B exit/quit
224 Quit the interactive lfs session
225 .SH EXAMPLES
226 .TP
227 .B $ lfs check all
228 Check the status of all servers (MGT, MDT, OST)
229 .TP
230 .B $ lfs osts
231 List all the OSTs
232 .TP
233 .B $ lfs mdts
234 List all the MDTs
235 .TP
236 .B $ lfs quotaoff -ug /mnt/lustre
237 Turn quotas of user and group off
238 .SH NOTES
239 The usage of \fBlfs find\fR, \fBlfs getstripe\fR, \fBlfs hsm_*\fR,
240 \fBlfs setstripe\fR, \fBlfs migrate\fR, \fBlfs getdirstripe\fR,
241 \fBlfs setdirstripe\fR, \fBlfs mkdir\fR, and \fBlfs project\fR are explained
242 in separate man pages.
243 .SH AUTHOR
244 The lfs command is part of the Lustre filesystem.
245 .SH SEE ALSO
246 .BR lctl (8),
247 .BR lfs-df (1),
248 .BR lfs-fid2path (1),
249 .BR lfs-find (1),
250 .BR lfs-getdirstripe (1),
251 .BR lfs-getname (1),
252 .BR lfs-getstripe (1),
253 .BR lfs-hsm (1),
254 .BR lfs-mkdir (1),
255 .BR lfs-migrate (1),
256 .BR lfs_migrate (1),
257 .BR lfs-project (1),
258 .BR lfs-path2fid (1),
259 .BR lfs-quota (1),
260 .BR lfs-setdirstripe (1),
261 .BR lfs-setquota (1),
262 .BR lfs-setstripe (1),
263 .BR lfs-pcc (1),
264 .BR lustre (7)