lfs \- client utility for Lustre-specific file layout and other attributes
.SH SYNOPSIS
.br
-.B lfs changelog [--follow] <mdtname> [startrec [endrec]]
+.B lfs changelog \fR[\fB--follow\fR] <\fImdtname\fR> [\fIstartrec \fR[\fIendrec\fR]]
.br
-.B lfs changelog_clear <mdtname> <id> <endrec>
+.B lfs changelog_clear <\fImdtname\fR> <\fIid\fR> <\fIendrec\fR>
.br
-.B lfs check <mgts|mdts|osts|all>
+.B lfs check \fR<\fBmgts\fR|\fBmdts\fR|\fBosts\fR|\fBall\fR>
.br
-.B lfs data_version [-nrw] \fB<filename>\fR
+.B lfs data_version \fR[\fB-nrw\fR] \fB<\fIfilename\fR>
.br
-.B lfs df [-ihlv] [--pool|-p <fsname>[.<pool>]] [path]
+.B lfs df \fR[\fB-ihlv\fR] [\fB--pool\fR|\fB-p \fR<\fIfsname\fR>[.<\fIpool\fR>]] [\fIpath\fR]
.br
-.B lfs fid2path [--link <linkno>] <fsname|rootpath> <fid> ...
+.B lfs fid2path \fR[\fB--link \fR<\fIlinkno\fR>] <\fIfsname\fR|\fIrootpath\fR> <fid\fR> ...
.br
.B lfs find \fR<\fIdirectory\fR|\fIfilename \fR...>
[[\fB!\fR] \fB--atime\fR|\fB-A\fR [\fB-+\fR]\fIn\fR]
[[\fB!\fR] \fB--ctime\fR|\fB-C\fR [\fB+-\fR]\fIn\fR]
[[\fB!\fR] \fB--mtime\fR|\fB-M\fR [\fB-+\fR]\fIn\fR]
- [[\fB!\fR] \fB--component-count|\fB--comp-count\fR [\fB+-\fR]\fIn\fR]
- [[\fB!\fR] \fB--component-flags|\fB--comp-flags\fR <[\fB^\fR]\fIflag\fB,\fR...>]
- [[\fB!\fR] \fB--component-end|\fB--comp-end\fR|\fB-E\fR [\fB+-\fR]\fIn\fR[\fBKMGTPE\fR]]
- [[\fB!\fR] \fB--component-start|\fB--comp-start\fR [\fB+-\fR]\fIn\fR[\fBKMGTPE\fR]]
- [[\fB!\fR] \fB--mirror-count|\fB-N\fR [\fB+-\fR]\fIn\fR]
+ [[\fB!\fR] \fB--component-count\fR|\fB--comp-count\fR [\fB+-\fR]\fIn\fR]
+ [[\fB!\fR] \fB--component-flags\fR|\fB--comp-flags\fR <[\fB^\fR]\fIflag\fB,\fR...>]
+ [[\fB!\fR] \fB--component-end\fR|\fB--comp-end\fR|\fB-E\fR [\fB+-\fR]\fIn\fR[\fBKMGTPE\fR]]
+ [[\fB!\fR] \fB--component-start\fR|\fB--comp-start\fR [\fB+-\fR]\fIn\fR[\fBKMGTPE\fR]]
+ [[\fB!\fR] \fB--mirror-count\fR|\fB-N\fR [\fB+-\fR]\fIn\fR]
[[\fB!\fR] \fB--mirror-state\fR <[^]\fIstate\fR>]
[[\fB!\fR] \fB--gid\fR|\fB-g\fR|\fB--group\fR|\fB-G\fR <\fIgname\fR>|<\fIgid\fR>]
[[\fB!\fR] \fB--layout\fR|\fB-L mdt\fR,\fBraid0\fR,\fBreleased\fR]
[\fB--print\fR|\fB-P\fR] [\fB--print0\fR|\fB-0\fR]
[[\fB!\fR] \fB--projid\fR |<\fIprojid\fR>]
[[\fB!\fR] \fB--size|\fB-s\fR [\fB-+\fR]\fIn\fR[\fBKMGTPE\fR]]
- [[\fB!\fR] \fB--stripe-count|\fB-c\fR [\fB+-\fR]\fIn\fR]
- [[\fB!\fR] \fB--stripe-index|\fB-i\fR \fIn\fR,...]
- [[\fB!\fR] \fB--stripe-size|\fB-S\fR [\fB+-\fR]\fIn\fR[\fBKMG\fR]]
+ [[\fB!\fR] \fB--stripe-count\fR|\fB-c\fR [\fB+-\fR]\fIn\fR]
+ [[\fB!\fR] \fB--stripe-index\fR|\fB-i\fR \fIn\fR,...]
+ [[\fB!\fR] \fB--extension-size\fR|\fB-ext-size\fR|\fB-z\fR [\fB+-\fR]\fIn\fR[\fBKMG\fR]]
+ [[\fB!\fR] \fB--stripe-size\fR|\fB-S\fR [\fB+-\fR]\fIn\fR[\fBKMG\fR]]
[[\fB!\fR] \fB--type\fR|\fB-t\fR {\fBbcdflps\fR}]
[[\fB!\fR] \fB--uid\fR|\fB-u\fR|\fB--user\fR|\fB-U
-<\fIuname\fR>|<\fIuid>\fR]
+\fR<\fIuname\fR>|<\fIuid\fR>]
.br
-.B lfs getname [-h]|[path ...]
+.B lfs getname
+.RB [ --help | -h "] [" --instance | -i "] [" --fsname | -n "] ["
+.IR path ...]
.br
.B lfs getstripe
[\fB--component-count\fR|\fB--comp-count\fR]
- [\fB--component-end\fR[=[\fB+-\fR]\fIN\fR[kMGTPE]]|\fB-E\fR[[+-]\fIN\fR[kMGTPE]]]
+ [\fB--component-end\fR|\fB-E\fR[=[\fB+-\fR]\fIN\fR[\fBKMGTPE\fR]]
[\fB--component-flags\fR[=[\fB^\fR]\fIflag\fB,\fR...]]
- [\fB--component-id\fR[=\fIcomp_id\fR]|\fB-I\fR[<\fIcomp_id\fR>]]
- [\fB--component-start\fR[=[\fB+-\fR]\fIN\fR[kMGTPE]]]
+ [\fB--component-id\fR|\fB-I \fR[=\fIcomp_id\fR]]
+ [\fB--component-start\fR[=[\fB+-\fR]\fIN\fR[\fBKMGTPE\fR]]]
[\fB--directory\fR|\fB-d\fR]
[\fB--fid\fR|\fB-F\fR]
[\fB--generation\fR|\fB-g\fR]
[\fB--stripe-count\fR|\fB-c\fR]
[\fB--stripe-index\fR|\fB-i\fR]
[\fB--stripe-size\fR|\fB-S\fR]
-[\fB--verbose\fR|\fB-v\fR]
+[\fB--extension-size\fR|\fB--ext-size\fR|\fB-z\fR]
+ [\fB--verbose\fR|\fB-v\fR]
[\fB--yaml\fR|\fB-y\fR]
<\fIdirname\fR|\fIfilename\fR> ...
.br
-.B lfs migrate { --mdt-index | -m } \fI<mdt_index>\fR
-.IR directory
+.B lfs migrate \fR{\fB--mdt-index\fR|\fB-m\fR} <\fImdt_index\fR> \fIdirectory\fR
.br
-.B lfs migrate [\fB-c | --stripe-count <stripe_count>\fR]
- [\fB-i | --stripe-index <start_ost_idx>\fR]
- [\fB-S | --stripe-size <stripe_size>\fR]
- [\fB-p | --pool <pool_name>\fR]
- [\fB-o | --ost-list <ost_indices>\fR]
- [\fB-b | --block\fR]
- [\fB-n | --non-block\fR]
-.IR file|directory
+.B lfs migrate \fR[\fB--stripe-count\fR|\fB-c\fR \fR<\fIstripe_count\fR>]
+ [\fB--stripe-index\fR|\fB-i\fR \fR<\fIstart_ost_idx\fR>]
+ [\fB--stripe-size\fR|\fB-S\fR \fR<\fIstripe_size\fR>]
+[\fB--pool\fR|\fB-p\fR \fR<\fIpool_name\fR>]
+ [\fB-o\fR|\fB--ost-list \fR<\fIost_indices\fR>]
+[\fB--block\fR|\fB-b\fR]
+ [\fB--non-block\fR|\fB-n\fR] <\fIfile\fR|\fIdirectory\fR>
.br
-.B lfs migrate <\fB-E | --component-end comp_end1\fR> [\fBSTRIPE_OPTIONS\fR]
- <\fB-E | --component-end comp_end2\fR> [\fBSTRIPE_OPTIONS\fR]
- \fB...\fR
-.IR filename
+.B lfs migrate \fR<\fB--component-end\fR|\fB-E\fR \fIcomp_end1\fR>
+[\fISTRIPE_OPTIONS\fR]
+ <\fB--component-end\fR|\fB-E\fR \fIcomp_end2\fR>
+[\fISTRIPE_OPTIONS\fR]
+ ... \fIfilename\fR
.br
-.B lfs mkdir [\fB-c | --count <stripe_count>\fR]
- [\fB-i | --index <mdt_idx>\fR]
- [\fB-h | --hash-type <hash_name>\fR]
- [\fB-m | --mode <mode>\fR]
- [\fB-D | --default\fR]
-.IR directory
+.B lfs mkdir \fR[\fB-c\fR|\fB--count \fR<\fIstripe_count\fR>]
+[\fB-i\fR|\fB--index \fR<\fImdt_idx\fR>]
+ [\fB-h\fR|\fB--hash-type \fR<\fIhash_name\fR>]
+[\fB-m\fR|\fB--mode \fR<\fImode\fR>]
+ [\fB-D\fR|\fB--default\fR] \fIdirectory\fR
.br
-.B lfs osts
-.RB [ path ]
-.br
-.B lfs mdts
-.RB [ path ]
-.br
-.B lfs path2fid [--parents] <path> ...
-.br
-.B lfs pool_list <filesystem>[.<pool>] | <pathname>
-.br
-.B lfs quota [-q] [-v] [-o obd_uuid|-I ost_idx|-i mdt_idx] [-u <uname>| -u <uid>|-g <gname>| -g <gid>] [-p <projid>] <filesystem>
+.B lfs osts \fR[<\fIpath\fR>]
.br
-.B lfs quota -t <-u|-g|-p> <filesystem>
+.B lfs mdts \fR[<\fIpath\fR>]
.br
-.B lfs quotacheck [-ug] <filesystem>
+.B lfs path2fid \fR[\fB--parents\fR] <\fIpath\fR> ...
.br
-.B lfs quota <-U|-G|-P> <filesystem>
+.B lfs pool_list \fR<\fIfilesystem\fR>[\fB.\fR<\fIpool\fR>] | <\fIpathname\fR>
.br
-.B lfs quotaon [-ugf] <filesystem>
+.B lfs setstripe \fR[\fB--stripe-size\fR|\fB-S <\fIsize\fR>] [\fB--stripe-count\fR|-c <\fIcount\fR>]
+ [\fB--stripe-index\fR|\fB-i <\fIstart_ost_index\fR>] [\fB--pool\fR|\fB-p \fR<\fIpoolname\fR>]
+ [\fB--extension-size\fR|\fB--ext-size\fR|\fB-z <\fIext_size\fR>]
+ [\fB--ost-list\fR|\fB-o <\fIost_indices\fR>] <\fIdirectory\fR|\fIfilename\fR>
.br
-.B lfs quotaoff [-ug] <filesystem>
+.B lfs setstripe -d \fR<\fIdir\fR>
.br
-.B lfs setstripe [--stripe-size|-S <size>] [--stripe-count|-c <count>]
- \fB[--stripe-index|-i <start_ost_index>] [--pool|-p <poolname>]
- \fB[--ost-list|-o <ost_indices>] <directory|filename>\fR
+.B lfs setstripe --component-end\fR|\fB-E <\fIend1> [\fISTRIPE_OPTIONS\fR]
+ [\fB--component-end\fR|\fB-E \fR<\fIend2\fR> [\fISTRIPE_OPTIONS\fR]]
+ ... <\fIfilename>\fR
.br
-.B lfs setstripe -d <dir>
+.B lfs setstripe --component-add \fB-E\fR <\fIend1> [\fISTRIPE_OPTIONS]
+ [\fB--component-end\fR|\fB-E \fR<\fIend2\fR> [\fISTRIPE_OPTIONS\fR]]
+ ... <\fIfilename\fR>
.br
-.B lfs setstripe --component-end|-E <end1> [STRIPE_OPTIONS]
- [\fB--component-end|-E <end2> [STRIPE_OPTIONS]] ... <filename>\fR
+.B lfs setstripe --component-del \fR{\fB--component-id\fR|\fB-I \fR<\fIid\fR> |
+ \fB--component-flags \fR<\fIflags\fR>}
+<\fIfilename\fR>
.br
-.B lfs setstripe --component-add --component-end|-E <end1> [STRIPE_OPTIONS]
- \fB<--component-end|-E <end2>> [STRIPE_OPTIONS]] ... <filename>\fR
-.br
-.B lfs setstripe --component-del {--component-id|-I id |
- \fB--component-flags <flags>} <filename>
-.br
-.B lfs setstripe --yaml=<yaml_template_file> <filename>
+.B lfs setstripe --yaml=\fR<\fIyaml_template_file\fR> <\fIfilename\fR>
.br
.B lfs --version
.br
the default striping pattern, gather the extended attributes (object numbers
and location) for a specific file. It can be invoked interactively without any
arguments or in a non-interactive mode with one of the arguments supported.
-.SH OPTIONS
-The various options supported by lfs are listed and explained below:
+.SH COMMANDS
+A number of sub-commands supported by lfs are listed below. Other commands
+are described in separate man pages of the form
+.BI lfs- command
+as listed in the
+.B SEE ALSO
+section at the end.
.TP
.B changelog
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.
operation, and by OST migration, primarily for verifying that file data has not
been changed during a data copy, when done in non-blocking mode.
.TP
-.B getname [-h]|[path ...]
-Report all the Lustre mount points and the corresponding Lustre filesystem
-instance. If one or more \fBpath\fR entries are provided, then only the
-Lustre instance for these mount points is returned. If the path given is not on
-a Lustre instance 'No such device' is reported.
-.TP
.B osts
.RB [ path ]
List all the OSTs for all mounted filesystems. If a \fBpath\fR is provided
that is located on a lustre mounted file system then only the OSTs belonging
to that filesystem are displayed.
.TP
-.B fid2path [--link <linkno>] <fsname|rootpath> <fid> ...
-Print out the pathname(s) for the specified \fIfid\fR(s) from the filesystem
-mounted at \fBrootpath\fR or named \fBfsname\fR. If a file has multiple
-hard links, then all of the pathnames for that file are printed, unless
-\fB--link\fR limits the printing to only the specified link number (starting
-at 0, in no particular order). If multiple fids are specified, but only a
-single pathname is needed for each file, use \fB--link 0\fR.
-.TP
-.B path2fid [--parents] <path> ...
-Print out the FIDs for the specified \fBpath(s)\fR. If multiple pathnames
-are given, then they will be printed one per line with the path as prefix.
-The \fB--parents\fR switch makes it output the parent FID and name(s) of the
-given entries. If an entry has multiple links, these are displayed on a single
-line, tab-separated.
-.TP
.B pool_list
.RI { filesystem }[ .poolname "] | {" pathname }
List the pools in
or the OSTs in
.IR filesystem.pool .
.TP
-.B quota [-q] [-v] [-o obd_uuid|-i mdt_idx|-I ost_idx] [-u|-g|-p <uname>|<uid>|<gname>|<gid>|<projid>] <filesystem>
-To display disk usage and limits, either for the full filesystem, or for objects on a specific obd. A user or group name or an ID can be specified. If user group and project are omitted quotas for current uid/gid/projid are shown. -v provides more verbose (with per-obd statistics) output. -q disables printing of additional descriptions (including column titles).
-.TP
-.B quota -t <-u|-g|-p> <filesystem>
-To display block and inode grace times for user (-u) or group (-g) or project (-p) quotas
-.TP
-.B quotacheck [-ugf] <filesystem> (deprecated as of 2.4.0)
-To scan the specified filesystem for disk usage, and create or update quota files. Options specify quota for users (-u) groups (-g) and force (-f). Not useful anymore with servers >= 2.4.0 since space accounting is always turned on.
-.TP
-.B quotaon [-ugf] <filesystem> (deprecated as of 2.4.0)
-To turn filesystem quotas on. Options specify quota for users (-u) groups (-g) and force (-f). Not used anymore in lustre 2.4.0 where quota enforcement must be enabled via conf_param (e.g. lctl conf_param ${FSNAME}.quota.<ost|mdt>=<u|g|ug>)
-.TP
-.B quotaoff [-ugf] <filesystem> (deprecated as of 2.4.0)
-To turn filesystem quotas off. Options specify quota for users (-u) groups (-g) and force (-f). Not used anymore in lustre 2.4.0 where quota enforcement can be turned off (for inode or block) by running the following command on the MGS: lctl conf_param ${FSNAME}.quota.<ost|mdt>=""
-.TP
.B swap_layouts <filename1> <filename2>
Swap the data (layout and OST objects) of two regular files. The
two files have to be in the same filesystem, owned by the same user,
.B $ lfs mdts
List all the MDTs
.TP
-.B $ lfs quota -u bob /mnt/lustre
-List quotas of user `bob'
-.TP
-.B $ lfs quota -U /mnt/lustre
-List user quotas of system default setting
-.TP
-.B $ lfs quota -t -u /mnt/lustre
-Show grace times for user quotas on /mnt/lustre
-.TP
-.B $ lfs quotachown -i /mnt/lustre
-Change file owner and group
-.TP
-.B $ lfs quotacheck -ug /mnt/lustre
-Quotacheck for user and group - will turn on quotas after making the check.
-.TP
-.B $ lfs quotaon -ug /mnt/lustre
-Turn quotas of user and group on
-.TP
.B $ lfs quotaoff -ug /mnt/lustre
Turn quotas of user and group off
.SH NOTES
.SH SEE ALSO
.BR lctl (8),
.BR lfs-df (1),
+.BR lfs-fid2path (1),
.BR lfs-find (1),
-.BR lfs-getstripe (1),
.BR lfs-getdirstripe (1),
+.BR lfs-getname (1),
+.BR lfs-getstripe (1),
.BR lfs-hsm (1),
.BR lfs-mkdir (1),
.BR lfs-migrate (1),
.BR lfs_migrate (1),
.BR lfs-project (1),
+.BR lfs-path2fid (1),
+.BR lfs-quota (1),
.BR lfs-setdirstripe (1),
.BR lfs-setquota (1),
.BR lfs-setstripe (1),
+.BR lfs-pcc (1),
.BR lustre (7)