Whamcloud - gitweb
LU-12159 utils: improve lfs getname functionality
[fs/lustre-release.git] / lustre / doc / lfs.1
index 1d5d9fb..5b1177b 100644 (file)
-.TH lfs 1 "2009 Jan 29" Lustre "user utilities"
+.TH lfs 1 "2018-01-24" Lustre "user utilities"
 .SH NAME
-lfs \- Lustre utility to create a file with specific striping pattern, find the striping pattern of existing files, do certain quota operations, and manage distributed namespace options for directories
+lfs \- client utility for Lustre-specific file layout and other attributes
 .SH SYNOPSIS
 .br
-.B lfs
+.B lfs changelog \fR[\fB--follow\fR] <\fImdtname\fR> [\fIstartrec \fR[\fIendrec\fR]]
 .br
-.B lfs changelog [--follow] <mdtname> [startrec [endrec]]
+.B lfs changelog_clear <\fImdtname\fR> <\fIid\fR> <\fIendrec\fR>
 .br
-.B lfs changelog_clear <mdtname> <id> <endrec>
+.B lfs check \fR<\fBmgts\fR|\fBmdts\fR|\fBosts\fR|\fBall\fR>
 .br
-.B lfs check <mds|osts|servers>
+.B lfs data_version \fR[\fB-nrw\fR] \fB<\fIfilename\fR>
 .br
-.B lfs df [-i] [-h] [--lazy] [--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 <directory|filename>
-        \fB[[!] --atime|-A [-+]N] [[!] --mtime|-M [-+]N] [[!] --ctime|-C [+-]N]
-        \fB[--maxdepth|-D N] [[!] --mdt|-m <uuid|index,...>] [--name|-n pattern]
-        \fB[[!] --ost|-O <uuid|index,...>] [--print|-p] [--print0|-P]
-        \fB[[!] --size|-s [-+]N[kMGTPE]]
-        \fB[[!] --stripe-count|-c [+-]<stripes>]
-        \fB[[!] --stripe-index|-i <index,...>]
-        \fB[[!] --stripe-size|-S [+-]N[kMG]]
-        \fB[[!] --layout|-L raid0,released]
-        \fB[--type |-t {bcdflpsD}] [[!] --gid|-g|--group|-G <gname>|<gid>]
-        \fB[[!] --uid|-u|--user|-U <uname>|<uid>] [[!] --pool <pool>]\fR
+.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\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--maxdepth\fR|\fB-D\fI n\fR]
+      [[\fB!\fR] \fB--mdt\fR|\fB--mdt-index\fR|\fB-m\fR <\fIuuid\fR|\fIindex\fR,...>]
+      [[\fB!\fR] \fB--mdt-count\fR|\fB-T\fR [\fB+-\fR]\fIn\fR]
+[[\fB!\fR] \fB--mdt-hash\fR|\fB-H \fI<hashtype>\fR]
+      [[\fB!\fR] \fB--name\fR|\fB-n \fI<pattern>\fR]
+[[\fB!\fR] \fB--ost\fR|\fB-O\fR <\fIuuid\fR|\fIindex\fR,...>]
+      [[\fB!\fR] \fB--pool\fR <\fIpool\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\fR|\fB-c\fR [\fB+-\fR]\fIn\fR]
+      [[\fB!\fR] \fB--stripe-index\fR|\fB-i\fR \fIn\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
+\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 [--obd|-O <uuid>] [--quiet|-q] [--verbose|-v] 
-        \fB[--stripe-count|-c ] [--stripe-index|-i] [--mdt-index|-M]
-        \fB[--stripe-size|-S] [--directory|-d]
-       \fB[--layout|-L]
-        \fB[--pool|-p] [--recursive|-r] [--raw|-R] <dirname|filename> ...\fR
+.B lfs getstripe
+[\fB--component-count\fR|\fB--comp-count\fR]
+        [\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|\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--layout\fR|\fB-L\fR]
+[\fB--mdt\fR|\fB--mdt-index\fR|\fB-m\fR]
+[\fB--ost\fR|\fB-O\fR <\fIuuid\fR>]
+        [\fB--pool\fR|\fB-p\fR]
+[\fB--quiet\fR|\fB-q\fR]
+[\fB--recursive\fR|\fB-r\fR]
+        [\fB--raw\fR|\fB-R\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--yaml\fR|\fB-y\fR]
+        <\fIdirname\fR|\fIfilename\fR> ...
 .br
-.B lfs setstripe [--stripe-size|-S stripe_size] [--stripe-count|-c stripe_count]
-        \fB[--stripe-index|-i start_ost_index ] [--pool|-p <poolname>]
-        \fB<directory|filename>\fR
+.B lfs migrate \fR{\fB--mdt-index\fR|\fB-m\fR} <\fImdt_index\fR> \fIdirectory\fR
 .br
-.B lfs setstripe -d <dir>
+.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 osts
-.RB [ path ]
+.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 \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 \fR[<\fIpath\fR>]
+.br
+.B lfs mdts \fR[<\fIpath\fR>]
 .br
-.B path2fid <path> ...
+.B lfs path2fid \fR[\fB--parents\fR] <\fIpath\fR> ...
 .br
-.B lfs pool_list <filesystem>[.<pool>] | <pathname>
+.B lfs pool_list \fR<\fIfilesystem\fR>[\fB.\fR<\fIpool\fR>] | <\fIpathname\fR>
 .br
-.B lfs quota [-q] [-v] [-o obd_uuid|-I ost_idx|-i mdt_idx] [-u <uname>| -u <uid>|-g <gname>| -g <gid>] <filesystem>
+.B lfs quota \fR[\fB-qv\fR] [\fB-o \fIobd_uuid\fR|\fB-I \fIost_idx\fR|\fB-i \fImdt_idx\fR]
+          [\fB-u <\fIuname\fR|\fIuid\fR>|\fB-g <\fIgname\fR|\fIgid\fR>]
+[\fB-p <\fIprojid\fR>] <\fIfilesystem\fR>
 .br
-.B lfs quota -t <-u|-g> <filesystem>
+.B lfs quota -t \fR<\fB-u\fR|\fB-g\fR|\fB-p\fR> <\fIfilesystem\fR>
 .br
-.B lfs quotacheck [-ug] <filesystem>
+.B lfs quotacheck \fR[\fB-ug\fR] <\fIfilesystem\fR>
 .br
-.B lfs quotaon [-ugf] <filesystem>
+.B lfs quota \fR<\fB-U\fR|\fB-G\fR|\fB-P\fR> <\fIfilesystem\fR>
 .br
-.B lfs quotaoff [-ug] <filesystem>
+.B lfs quotaon \fR[\fB-ugf\fR] <\fIfilesystem\fR>
 .br
-.B lfs setquota <-u|--user|-g|--group> <uname|uid|gname|gid>
-             \fB[--block-softlimit <block-softlimit>]
-             \fB[--block-hardlimit <block-hardlimit>]
-             \fB[--inode-softlimit <inode-softlimit>]
-             \fB[--inode-hardlimit <inode-hardlimit>]
-             \fB<filesystem>\fR
+.B lfs quotaoff \fR[\fB-ug\fR] <\fIfilesystem\fR>
 .br
-.B lfs setquota <-u|--user|-g|--group> <uname|uid|gname|gid>
-             \fB[-b <block-softlimit>] [-B <block-hardlimit>]
-             \fB[-i <inode-softlimit>] [-I <inode-hardlimit>]
-             \fB<filesystem>\fR
+.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--ost-list\fR|\fB-o <\fIost_indices\fR>] <\fIdirectory\fR|\fIfilename\fR>
 .br
-.B lfs setquota -t <-u|-g>
-             \fB[--block-grace <block-grace>]
-             \fB[--inode-grace <inode-grace>]
-             \fB<filesystem>\fR
+.B lfs setstripe -d \fR<\fIdir\fR>
 .br
-.B lfs setquota -t <-u|-g>
-             \fB[-b <block-grace>] [-i <inode-grace>]
-             \fB<filesystem>\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 --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 swap_layouts <filename1> <filename2>
+.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 data_version [-n] \fB<filename>\fR
+.B lfs setstripe --yaml=\fR<\fIyaml_template_file\fR> <\fIfilename\fR>
+.br
+.B lfs --version
+.br
+.B lfs --list-commands
 .br
 .B lfs help
 .SH DESCRIPTION
 .B lfs
-can be used to create a new file with a specific striping pattern, determine 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 arguements supported. 
-.SH OPTIONS
-The various options supported by lctl are listed and explained below:
+can be used to create a new file with a specific striping pattern, determine
+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 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.
@@ -100,112 +163,35 @@ interest to a particular consumer <id>, potentially allowing the MDT to
 free up disk space. An <endrec> of 0 indicates the current last record.
 Changelog consumers must be registered on the MDT node using \fBlctl\fR.
 .TP
-.B check 
-Display the status of MDS or OSTs (as specified in the command) or all the servers (MDS and OSTs)
-.TP
-.B df [-i] [-h] [--lazy] [--pool|-p <fsname>[.<pool>] [path]
-Report filesystem disk space usage or inodes usage (with \fB-i\fR) of each
-MDT/OST, or a subset of OSTs if a pool is specified with \fB-p\fR.  By default
-print the usage of all mounted Lustre filesystems, otherwise if \fBpath\fR is
-specified print only the usage of that filesystem.  If \fB-h\fR is given, the
-output is printed in \fIh\fRuman readable format, using SI base-2 suffixes
-for \fBM\fRega-, \fBG\fRiga-, \fBT\fRera-, \fBP\fReta-, or \fBE\fRxabytes.
-The \fB--lazy\fR/\fB-l\fR option skips any OST that is currently disconnected
-from the client.  This avoids blocking the \fBdf\fR output if an OST is down,
-and only returns the space on the OSTs that can currently be accessed.
-.TP
-.B find 
-To search the directory tree rooted at the given dir/file name for the files that match the given parameters: \fB--atime\fR (file was last accessed N*24 hours ago), \fB--ctime\fR (file's status was last changed N*24 hours ago), \fB--mtime\fR (file's data was last modified N*24 hours ago), \fB--obd\fR (file has an object on a specific OST or OSTs), \fB--size\fR (file has size in bytes, or \fBk\fRilo-, \fBM\fRega-, \fBG\fRiga-, \fBT\fRera-, \fBP\fReta-, or \fBE\fRxabytes if a suffix is given), \fB--type\fR (file has the type: \fBb\fRlock, \fBc\fRharacter, \fBd\fRirectory, \fBp\fRipe, \fBf\fRile, sym\fBl\fRink, \fBs\fRocket, or \fBD\fRoor (Solaris)), \fB--uid\fR (file has specific numeric user ID), \fB--user\fR (file owned by specific user, numeric user ID allowed), \fB--gid\fR (file has specific group ID), \fB--group\fR (file belongs to specific group, numeric group ID allowed), \fB--layout\fR (file has a raid0 layout or is released). The option \fB--maxdepth\fR limits find to decend at most N levels of directory tree. The options \fB--print\fR and \fB--print0\fR print full file name, followed by a newline or NUL character correspondingly.  Using \fB!\fR before an option negates its meaning (\fIfiles NOT matching the parameter\fR).  Using \fB+\fR before a numeric value means \fIfiles with the parameter OR MORE\fR, while \fB-\fR before a numeric value means \fIfiles with the parameter OR LESS\fR.
-.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 
+.B check <mgts|mdts|osts|all>
+Display the status of the MGTs, MDTs or OSTs (as specified in the command) or
+all the servers (MGTs, MDTs and OSTs).
+.TP
+.B data_version [-nrw] <filename>
+Display the current version of file data. If -n is specified, the data version
+is read without taking a lock. As a consequence, the data version could be
+outdated if there are dirty caches on filesystem clients, but this option will
+not force data flushes and has less of an impact on the filesystem. If -r is
+specified, the data version is read after dirty pages on clients are flushed. If
+-w is specified, the data version is read after all caching pages on clients are
+flushed.
+
+Even with -r or -w, race conditions are possible and the data version should be
+checked before and after an operation to be confident the data did not change
+during it.
+
+The data version is the sum of the last committed transaction numbers of all
+data objects of a file. It is used by HSM policy engines for verifying that file
+data has not been changed during an archive operation or before a release
+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 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 getstripe [--obd|-O <uuid>] [--quiet|-q] [--verbose|-v] 
-        \fB[--count | -c ] [--index | -i | --offset | -o  ]
-        \fB[--pool | -p ] [--size | -s ] [--directory | -d ]
-       \fB[--layout | -L]
-        \fB[--recursive | -r ] [--raw | -R ] <dirname|filename>\fR
-.br
-List the striping information for a given filename or directory tree.
-By default the stripe count, size, and offset will be returned. If you
-only want specific striping information then the options of
-.BR --count ,
-.BR --size ,
-.BR --index ,
-.BR --offset ,
-.BR --layout ,
-or
-.B --pool  
-can be used to return only the specific fields.
-.br
-If the
-.B --raw
-option is specified, the stripe information is printed without substituting the
-filesystem's default values for unspecified fields. If the striping EA is not
-set, 0, 0, and -1 will be printed for the stripe count, size, and offset
-respectively.
-In the case where you only want details about the files' object id
-information then the
-.B --quiet
-option is used. Additional information available about striping can be
-displayed with
-.BR --verbose .
-The default behavior when a directory is specified is to list the striping
-information for all files within the specified directory (like
-.RB ' "ls -l" ') .
-This can be expanded with
-.B --recursive
-which will recurse into all subdirectories.
-If you wish to get striping information for only the specified directory, then
-.B --directory
-can be used to limit the information, like
-.RB ' "ls -d" ').
-You can limit the returned files to those with objects on a specific OST with
-.BR --obd .
-.TP
-.B setstripe [--stripe-count|-c stripe_count] [--stripe-size|-S stripe_size]
-        \fB[--stripe-index|-i start_ost_index] [--pool <poolname>]
-        \fB<dirname|filename>\fR
-.br
-To create a new file, or set the directory default, with the specified striping parameters.  The
-.I stripe_count
-is the number of OSTs to stripe a file over. A
-.I stripe_count
-of 0 means to use the filesystem-wide default stripe count (default 1), and a
-.I stripe_count
-of -1 means to stripe over all available OSTs.  The
-.I stripe_size
-is the number of bytes to store on each OST before moving to the next OST.  A
-.I stripe_size
-of 0 means to use the filesystem-wide default stripe_size (default 1MB).  The
-.I start_ost_index
-is the OST index (starting at 0) on which to start striping for this file.  A
-.I start_ost_index
-of -1 allows the MDS to choose the starting index and it is strongly recommended, as this allows space and load balancing to be done by the MDS as needed.  The
-.I poolname
-is the name of a predefined pool of OSTs (see 
-.B lctl
-) that will be used for striping. The 
-.IR stripe_count ,
-.IR stripe_size ,
-and
-.I start_ost_index
-will be used as well; the 
-.I start_ost_index
-must be part of the pool or an error will be returned. 
-.TP
-.B setstripe -d
-Delete the default striping on the specified directory.
-.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
@@ -214,24 +200,27 @@ hard links, then all of the pathnames for that file are printed, unless
 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 <path> ...
+.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 
+List the pools in
 .I filesystem
 or
 .IR pathname ,
 or the OSTs in
 .IR filesystem.pool .
 .TP
-.B quota [-q] [-v] [-o obd_uuid|-i mdt_idx|-I ost_idx] [-u|-g <uname>|<uid>|<gname>|<gid>] <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 both user and group are omitted quotas for current uid/gid are shown. -v provides more verbose (with per-obd statistics) output. -q disables printing of additional descriptions (including column titles).
+.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> <filesystem>
-To display block and inode grace times for user (-u) or group (-g) quotas
+.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.
@@ -242,12 +231,6 @@ To turn filesystem quotas on. Options specify quota for users (-u) groups (-g) a
 .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 setquota  <-u|-g> <uname>|<uid>|<gname>|<gid> [--block-softlimit <block-softlimit>] [--block-hardlimit <block-hardlimit>] [--inode-softlimit <inode-softlimit>] [--inode-hardlimit <inode-hardlimit>] <filesystem>
-To set filesystem quotas for users or groups. Limits can be specified with -b, -k, -m, -g, -t, -p suffixes which specify units of 1, 2^10, 2^20, 2^30, 2^40 and 2^50 accordingly. Block limits unit is kilobyte (1024) by default and block limits are always kilobyte-grained (even if specified in bytes), see EXAMPLES
-.TP
-.B setquota -t [-u|-g] [--block-grace <block-grace>] [--inode-grace <inode-grace>] <filesystem>
-To set filesystem quota grace times for users or groups. Grace time is specified in "XXwXXdXXhXXmXXs" format or as an integer seconds value, see EXAMPLES
-.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,
@@ -255,78 +238,51 @@ reside on the same MDT and writable by the user.
 
 Swapping the layout of two directories is not permitted.
 .TP
-.B data_version [-n] <filename>
-Display current version of file data. If -n is specified, data version is read
-without taking lock. As a consequence, data version could be outdated if there
-is dirty caches on filesystem clients, but this will not force data flushes and
-has less impact on filesystem.
-
-Even without -n, race conditions are possible and data version should be
-checked before and after an operation to be confident the data did not change
-during it.
+.B mkdir
+lfs mkdir is documented in the man page: lfs-mkdir(1). NOTE:
+.B lfs setdirstripe
+is an alias of the command
+.B lfs mkdir
 .TP
-.B mkdir <--index|-i mdt_index> <dir>
-Allocate a new directory on a specified MDT.  
-
-The "lfs mkdir" command is only executable by root unless
-"mdt.*.enable_remote_dir_gid" is set via "lctl set_param" to be either a
-non-zero GID to limit it to a single group (e.g. "operator" or "admin"),
-or "-1" to allow any group to create remote directories.
-
-The root of the file system is on MDT0000, and directories and files inherit the
-MDT of their parent directory unless a different MDT is specified with this
-command.
-
-By default, only directories on MDT0000 can contain directories that are not on
-the same MDT.  However, if "mdt.*.enable_remote_dir" is set non-zero on an MDT
-then it will allow creating remote directories that have parents other than
-MDT0000. This is restricted to avoid creating directory trees that have
-intermediate path components on a series different MDTs and become unavailable
-if any of the intermediate MDTs are offline.
-.TP
-.B help 
-Provides brief help on the various arguments
+.B mv
+lfs mv is deprecated, use lfs
+.B migrate
+instead.
 .TP
-.B exit/quit 
-Quit the interactive lfs session
-.SH EXAMPLES
+.B migrate
+See lfs-migrate(1).
 .TP
-.B $ lfs setstripe -s 128k -c 2 /mnt/lustre/file1
-This creates a file striped on two OSTs with 128kB on each stripe.
+.B setstripe
+See lfs-setstripe(1).
 .TP
-.B $ lfs setstripe -d /mnt/lustre/dir
-This deletes a default stripe pattern on dir. New files will use the default striping pattern created therein.
+.B --version
+Output the build version of the lfs utility. Use "lctl lustre_build_version" to get the version of the Lustre kernel modules
 .TP
-.B $ lfs getstripe -v /mnt/lustre/file1
-Lists the detailed object allocation of a given file
+.B --list-commands
+Output a list of the commands supported by the lfs utility
 .TP
-.B $ lfs find /mnt/lustre
-Efficiently lists all files in a given directory and its subdirectories
+.B help
+Provides brief help on the various arguments
 .TP
-.B $ lfs find /mnt/lustre -mtime +30 -type f -print
-Recursively list all regular files in given directory more than 30 days old
+.B exit/quit
+Quit the interactive lfs session
+.SH EXAMPLES
 .TP
-.B $ lfs find --obd OST2-UUID /mnt/lustre/
-Recursively list all files in a given directory that have objects on OST2-UUID.
-.tP
-.B $ lfs check servers 
-Check the status of all servers (MDT, OST)
+.B $ lfs check all
+Check the status of all servers (MGT, MDT, OST)
 .TP
 .B $ lfs osts
 List all the OSTs
 .TP
-.B $ lfs df -h 
-Lists space usage per OST and MDT in human readable format.
-.TP
-.B $ lfs df -i 
-Lists inode usage per OST and MDT
-.TP
-.B $ lfs df --pool <filesystem>[.<pool>] | <pathname>
-List space or inode usage for a specific OST pool
+.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
@@ -341,21 +297,26 @@ Turn quotas of user and group on
 .TP
 .B $ lfs quotaoff -ug /mnt/lustre
 Turn quotas of user and group off
-.TP
-.B $ lfs setquota -u bob --block-softlimit 2000000 --block-hardlimit 1000000 /mnt/lustre
-Set quotas of user `bob': 1GB block quota hardlimit and 2 GB block quota softlimit
-.TP
-.B $ lfs setquota -t -u --block-grace 1000 --inode-grace 1w4d /mnt/lustre
-Set grace times for user quotas: 1000 seconds for block quotas, 1 week and 4 days for inode quotas
-.TP
-.SH BUGS
-The \fBlfs find\fR command isn't as comprehensive as \fBfind\fR(1).
+.SH NOTES
+The usage of \fBlfs find\fR, \fBlfs getstripe\fR, \fBlfs hsm_*\fR,
+\fBlfs setstripe\fR, \fBlfs migrate\fR, \fBlfs getdirstripe\fR,
+\fBlfs setdirstripe\fR, \fBlfs mkdir\fR, and \fBlfs project\fR are explained
+in separate man pages.
 .SH AUTHOR
 The lfs command is part of the Lustre filesystem.
 .SH SEE ALSO
-.BR lfs-hsm (1),
-.BR lfs-setdirstripe (1),
+.BR lctl (8),
+.BR lfs-df (1),
+.BR lfs-find (1),
 .BR lfs-getdirstripe (1),
+.BR lfs-getname (1),
+.BR lfs-getstripe (1),
+.BR lfs-hsm (1),
 .BR lfs-mkdir (1),
-.BR lctl (8),
+.BR lfs-migrate (1),
+.BR lfs_migrate (1),
+.BR lfs-project (1),
+.BR lfs-setdirstripe (1),
+.BR lfs-setquota (1),
+.BR lfs-setstripe (1),
 .BR lustre (7)