.TH lfs 1 "2009 Jan 29" Lustre "user utilities"
.SH NAME
-lfs \- Lustre utility to create a file with specific striping pattern, find the striping pattern of exiting files
+lfs \- Lustre utility to create a file with specific striping pattern, find the striping pattern of existing files
.SH SYNOPSIS
.br
.B lfs
.br
.B lfs check <mds|osts|servers>
.br
-.B lfs df [-i] [-h] [path]
+.B lfs df [-i] [-h] [--pool|-p <fsname>[.<pool>] [path]
.br
.B lfs find [[!] --atime|-A [-+]N] [[!] --mtime|-M [-+]N]
\fB[[!] --ctime|-C [-+]N] [--maxdepth|-D N] [--name|-n pattern]
- \fB[--print|-p] \fB[--print0|-P] [--obd|-O <uuid[s]>]
+ \fB[--print|-p] \fB[--print0|-P] [[!] --obd|-O <uuid[s]>]
\fB[[!] --size|-S [-+]N[kMGTPE]] [--type |-t {bcdflpsD}]
- \fB[[!] --gid|-g N] [[!] --group|-G <name>]
- \fB[[!] --uid|-u N] [[!] --user|-U <name>]
+ \fB[[!] --gid|-g|--group|-G <gname>|<gid>]
+ \fB[[!] --uid|-u|--user|-U <uname>|<uid>]
\fB<dirname|filename>\fR
.br
.B lfs osts
.br
.B lfs getstripe [--obd|-O <uuid>] [--quiet|-q] [--verbose|-v]
+ \fB[--count | -c ] [--size | -s ] [--index | -i ]
+ \fB[--offset | -o ] [--pool | -p ] [--directory | -d ]
\fB[--recursive|-r] <dirname|filename>\fR
.br
.B lfs setstripe [--size|-s stripe-size] [--count|-c stripe-cnt]
- \fB[--offset|-o start-ost] [--pool|-p pool-name]
+ \fB[--offset|-o start-ost] [--pool|-p <pool>]
\fB<dir|filename>\fR
.br
.B lfs setstripe -d <dir>
.br
.B lfs poollist <filesystem>[.<pool>] | <pathname>
.br
-.B lfs quota [-v] [-o obd_uuid|-I ost_idx|-i mdt_idx] [-u|-g] <username|groupname> <filesystem>
+.B lfs quota [-v] [-o obd_uuid|-I ost_idx|-i mdt_idx] [-u <uname>| -u <uid>|-g <gname>| -g <gid>] <filesystem>
.br
-.B lfs quota <filesystem>
-.br
-.B lfs quota -t [-u|-g] <filesystem>
+.B lfs quota -t <-u|-g> <filesystem>
.br
.B lfs quotacheck [-ug] <filesystem>
.br
.br
.B lfs quotainv [-ug] [-f] <filesystem>
.br
-.B lfs setquota [-u|--user|-g|--group] <username|groupname>
+.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
.br
-.B lfs setquota [-u|--user|-g|--group] <username|groupname>
+.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
.br
-.B lfs setquota -t [-u|-g]
+.B lfs setquota -t <-u|-g>
\fB[--block-grace <block-grace>]
\fB[--inode-grace <inode-grace>]
\fB<filesystem>\fR
.br
-.B lfs setquota -t [-u|-g]
+.B lfs setquota -t <-u|-g>
\fB[-b <block-grace>] [-i <inode-grace>]
\fB<filesystem>\fR
.br
.B check
Display the status of MDS or OSTs (as specified in the command) or all the servers (MDS and OSTs)
.TP
-.B df
-Report filesystem disk space usage or inodes usage of each MDT/OST.
+.B df [-i] [-h] [--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.
.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). 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.
.B osts
List all the OSTs for the filesystem
.TP
-.B getstripe
-To list the striping info for a given filename or files in a directory, optionally recursively, for all files in a directory tree: \fB--quiet\fR (don't print object IDs), \fB--verbose\fR (print striping parameters), \fB--recursive\fR (recurse into subdirectories).
+.B getstripe [--obd|-O <uuid>] [--quiet|-q] [--verbose|-v]
+ \fB[--count | -c ] [--size | -s ] [--index | -i ]
+ \fB[--offset | -o ] [--pool | -p ] [--directory | -d ]
+ \fB[--recursive|-r] <dirname|filename>\fR
+.br
+To list the striping information for a given filename or directory. By default the stripe count, size, and offset will be returned. If you only want specific striping information then the options of \fB--count\fR,\fB--size\fR,\fB--index\fR or \fB--offset\fR plus various combinations of these options can be used to retrieve only what you want. What pools a file belong to can also be obtained with \fB--pool\fR. In the case where you only want details about the files object id information then the \fB--quiet\fR option is used. Additional information available about striping can be displayed with \fB--verbose\fR. The default behavior of lfs getstripe used to retrieve data about a directory is to list all the contents of that directory. If you wish to inquire only about that directory then \fB--directory\fR,can be used to list directory entries instead of its contents in the same manner as ls -d. This can be expanded with \fB--recursive\fR which will recurse into all subdirectories. You can filter the search to return only files that has a object on a specific OST with \fB--obd\fR.
.TP
.B setstripe [--size stripe-size] [--count stripe-cnt]
- \fB[--offset start-ost] [--pool pool-name]\fR
+ \fB[--offset start-ost] [--pool <pool>]\fR
.br
To create a new file, or set the directory default, with the specified striping parameters. The
.I stripe-count
is the OST index (base 10, starting at 0) on which to start striping for this file. A
.I start-ost
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 pool-name
+.I pool
is the name of a predefined pool of OSTs (see
.I lctl
) that will be used for striping. The
.B poollist <filesystem>[.<pool>] | <pathname>
List the pools in \fBfilesystem\fR or \fBpathname\fR, or the OSTs in \fBfilesystem.pool\fR
.TP
-.B quota [-v] [-o obd_uuid|-i mdt_idx|-I ost_idx] [-u|-g] <username|groupname> <filesystem>
-To display disk usage and limits, either for the full filesystem, or for objects on a specific obd. A user or group name 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.
+.B quota [-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.
.TP
-.B quota -t [-u|-g] <filesystem>
+.B quota -t <-u|-g> <filesystem>
To display block and inode grace times for user (-u) or group (-g) quotas
.TP
.B quotachown
.B quotainv [-ug] [-f] <filesystem>
Clear quota files (administrative quota files if used without -f, operational quota files otherwise), all of their quota entries, for (-u) users or (-g) groups; after quotainv one must use quotacheck before using quotas. DO NOT USE THIS COMMAND UNLESS YOU REALLY KNOW WHAT IT DOES. IT IS MAINLY FOR INTERNAL PURPOSES.
.TP
-.B setquota [-u|-g] <name> [--block-softlimit <block-softlimit>] [--block-hardlimit <block-hardlimit>] [--inode-softlimit <inode-softlimit>] [--inode-hardlimit <inode-hardlimit>] <filesystem>
+.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>
.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
+.TP
.B $ lfs quota -u bob /mnt/lustre
List quotas of user `bob'
.TP