.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 existing files
+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
.SH SYNOPSIS
.br
.B lfs
.br
.B lfs check <mds|osts|servers>
.br
+.B lfs data_version [-n] \fB<filename>\fR
+.br
.B lfs df [-i] [-h] [--lazy] [--pool|-p <fsname>[.<pool>] [path]
.br
.B lfs fid2path [--link <linkno>] <fsname|rootpath> <fid> ...
.br
.B lfs getname [-h]|[path ...]
.br
-.B lfs getstripe [--obd|-O <uuid>] [--quiet|-q] [--verbose|-v]
+.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[--layout|-L]
\fB[--pool|-p] [--recursive|-r] [--raw|-R] <dirname|filename> ...\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 \fB-m <mdt_index>\fR
+.IR directory
.br
-.B lfs setstripe -d <dir>
+.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
+.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
.br
.B lfs osts
.RB [ path ]
.br
-.B path2fid <path> ...
+.B lfs mdts
+.RB [ path ]
+.br
+.B lfs path2fid [--parents] <path> ...
.br
.B lfs pool_list <filesystem>[.<pool>] | <pathname>
.br
\fB<filesystem>\fR
.br
.B lfs setquota -t <-u|-g>
- \fB[--block-grace <block-grace>]
- \fB[--inode-grace <inode-grace>]
+ \fB[--block-grace <block-grace>]\fR
+ \fB[--inode-grace <inode-grace>]\fR
\fB<filesystem>\fR
.br
.B lfs setquota -t <-u|-g>
- \fB[-b <block-grace>] [-i <inode-grace>]
+ \fB[-b <block-grace>] [-i <inode-grace>]\fR
\fB<filesystem>\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[--ost-list|-o <ost_indices>] <directory|filename>\fR
.br
-.B lfs swap_layouts <filename1> <filename2>
+.B lfs setstripe -d <dir>
.br
-.B lfs data_version [-n] \fB<filename>\fR
+.B lfs --version
.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.
+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 OPTIONS
-The various options supported by lctl are listed and explained below:
+The various options supported by lfs are listed and explained below:
.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.
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
+.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]
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
+.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 ...]
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 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]
+.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[--layout | -L]
\fB[--recursive | -r ] [--raw | -R ] <dirname|filename>\fR
.br
List the striping information for a given filename or directory tree.
.BR --offset ,
.BR --layout ,
or
-.B --pool
+.B --pool
can be used to return only the specific fields.
.br
If the
.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
+ \fB[--ost-index|-o <ost_indices>] <dirname|filename>\fR
.br
-To create a new file, or set the directory default, with the specified striping parameters. The
+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
.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
+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
+.B -o
+option is used to specify the exact stripe layout on the file system.
+.I ost_indices
+is a list of OSTs referenced by their indices, which are specified in decimal
+or hex form and can be obtained using the
+.B lfs osts
+command. The list format consists of individual OST indices and index ranges
+separated by commas, e.g. 1,2-4,7. The
+.B -o
+option may be specified multiple times to stripe across the union of all listed
+OSTs. If the
+.B -c
+option is combined with
+.B -o
+the
+.I stripe_count
+must agree with the number of OSTs in
+.IR ost_indices .
+If the
+.B -i
+option is combined with
+.B -o
+the
+.I start_ost_index
+must be in the OST list, and it will be used as the index on which to start
+striping the file. Otherwise the striping will occur in the order specified in
+.IR ost_indices .
+The
.I poolname
-is the name of a predefined pool of OSTs (see
-.B lctl
-) that will be used for striping. The
+is the name of a predefined pool of OSTs (see
+.BR lctl (8))
+that will be used for striping. The
.IR stripe_count ,
.IR stripe_size ,
and
.I start_ost_index
-will be used as well; the
+will be used as well; the
.I start_ost_index
-must be part of the pool or an error will be returned.
+must be part of the pool or an error will be returned.
.TP
.B setstripe -d
Delete the default striping on the specified directory.
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 ,
checked before and after an operation to be confident the data did not change
during it.
.TP
-.B help
+.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 mv
+lfs mv is deprecated, use lfs
+.B migrate
+instead.
+.TP
+.B migrate
+See lfs-migrate(1).
+.TP
+.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 help
Provides brief help on the various arguments
.TP
-.B exit/quit
+.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
+.B $ lfs check servers
Check the status of all servers (MDT, OST)
.TP
.B $ lfs osts
List all the OSTs
.TP
-.B $ lfs df -h
+.B $ lfs mdts
+List all the MDTs
+.TP
+.B $ lfs df -h
Lists space usage per OST and MDT in human readable format.
.TP
-.B $ lfs df -i
+.B $ lfs df -i
Lists inode usage per OST and MDT
.TP
.B $ lfs df --pool <filesystem>[.<pool>] | <pathname>
.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 AUTHOR
The lfs command is part of the Lustre filesystem.
.SH SEE ALSO
.BR lfs-hsm (1),
+.BR lfs-setdirstripe (1),
+.BR lfs-getdirstripe (1),
+.BR lfs-mkdir (1),
+.BR lfs_migrate (1),
+.BR lfs-migrate (1),
.BR lctl (8),
.BR lustre (7)