Whamcloud - gitweb
LU-11376 lmv: new foreign LMV format
[fs/lustre-release.git] / lustre / doc / lfs-setdirstripe.1
1 .TH LFS-SETDIRSTRIPE 1 2017-11-07 "Lustre" "Lustre Utilities"
2 .SH NAME
3 lfs setdirstripe, mkdir \- set striping pattern of a directory.
4 .SH SYNOPSIS
5 .B lfs setdirstripe [\fR-cdDHioTx\fR] \fIDIR\fR...
6 .br
7 .SH DESCRIPTION
8 Create a striped directory with specified striping pattern. This lfs utility
9 is similar to
10 .BR lfs setstripe
11 , but is used to create striped directory.
12 Can also be used to create directory with a foreign (free format) striping pattern (see
13 .BR --foreign
14 and
15 .BR --xattr
16 options).
17 .B lfs mkdir
18 is an alias for this command.
19 .SH OPTIONS
20 .TP
21 .BR \-c ", " \-T ", " \-\-mdt\-count =\fICOUNT\fR
22 Stripe the new directory over
23 .I COUNT
24 MDTs.
25 .TP
26 .BR \-i ", " \-\-mdt\-index =\fISTART_MDT_INDEX\fR[,\fIMDT_INDEX ...]
27 Use the MDT whose index is
28 .I START_MDT_INDEX
29 as the master/starting MDT for the directory. If multiple
30 .I MDT_INDEX
31 values are given, then the stripes will be allocated on the specified
32 MDT indices.  If index -1 (default) is used, it will randomly pick
33 .I COUNT
34 less full MDTs.
35 .TP
36 .BR \-H ", " \-\-mdt-hash =\fIHASH_TYPE\fR
37 Use
38 .I hash_type
39 for the striped directory.
40 .RS 1.2i
41 .TP
42 .B fnv_1a_64
43 Fowler-Noll-Vo (FNV-1a) hash algorithm.  This provides
44 reasonably uniform, but not cryptographically strong,
45 hashing of the filename. (default)
46 .TP
47 .B all_char
48 Sum of ASCII characters modulo number of MDTs. This
49 provides weak hashing of the filename, and is suitable
50 for only testing or when the input is known to have
51 perfectly uniform distribution (e.g. sequential numbers).
52 .RE
53 .TP
54 .BR \-d ", " \-\-delete
55 Delete the default striping layout from the directory.  New subdirectories
56 created in this directory will inherit the global default directory layout
57 (by default they will not be striped).
58 .TP
59 .BR \-D ", " \-\-default
60 Set the default striping pattern of subdirectories. Newly created
61 sub-directories will use the new default striping pattern,
62 but existing sub-directories will not be affected.  The newly
63 created sub-directories will also inherit the specified default
64 striping pattern. Only default stripe count is supported for now.
65
66 Note that striping all directories across all MDTs by default is not
67 recommended at this time, as the clients will have to do more RPCs to
68 create and access each directory, hurting performance rather than
69 improving it.  Default striped directories are preferred for cases
70 where large subdirectories will be created (e.g. file-per-process
71 job output directories).
72 .TP
73 .BR \-o ", " \-\-mode =\fIMODE\fR
74 Set the file access permissions of the new directory to the specified
75 numeric
76 .I MODE
77 (typically octal), as with
78 .BR chmod (1).
79 It is not affected by the current
80 .BR umask (1p).
81 .TP
82 .BR \-\-foreign[=type]
83 Create a directory with a foreign (non-Lustre/free format, see
84 .BR \-\-xattr
85 option) striping. Where
86 .BR type
87 specifies a known foreign type (like
88 .BR none
89 ,
90 .BR daos
91 , ...) or a 32-bit numeric type.
92 .TP
93 .BR \-\-flags =\fI<hex>\fR
94 Specify a bitmask of flags.
95 .TP
96 .BR \-x ", " \-\-xattr =\fISTRING\fR
97 Specify a string to be used as a foreign (free format) striping.
98 .SH NOTE
99 .PP
100 The
101 .B lfs setdirstripe
102 command is only executable by root unless
103 .B "mdt.*.enable_remote_dir_gid"
104 is set on the MDS via
105 .B lctl set_param
106 to be either a non-zero GID to limit it to a single group
107 (e.g. "operator" or "admin"), or "-1" to allow any group
108 to create remote directories.
109
110 The root of the file system is on MDT0000, and directories and files inherit the
111 MDT of their parent directory unless a different MDT is specified with this
112 command.
113
114 By default, only directories on MDT0000 can contain directories that are not on
115 the same MDT.  However, if "mdt.*.enable_remote_dir" is set non-zero on an MDT
116 then it will allow creating remote directories that have parents other than
117 MDT0000. This is restricted to avoid creating directory trees that have
118 intermediate path components on a series different MDTs and become unavailable
119 if any of the intermediate MDTs are offline.
120 .SH EXAMPLES
121 .TP
122 .B $ lfs setdirstripe -c 2 -i 1 -H all_char /mnt/lustre/dir1
123 This creates a directory striped on two MDTs, whose first stripe is on
124 .B MDT0001
125 (MDT index 1), and whose hash type is
126 .BR all_char .
127 .TP
128 .B $ lfs mkdir --foreign=daos --xattr PUUID:CUUID /mnt/lustre/dir1
129 This creates
130 .B dir1
131 with foreign (non-lustre/free format)
132 .B PUUID:CUUID
133 striping/LMV EA.
134 .SH AVAILABILITY
135 The
136 .B lfs setdirstripe
137 command is part of the Lustre filesystem.
138 .SH SEE ALSO
139 .BR lctl (8),
140 .BR lfs (1),
141 .BR lfs-getdirstripe (1),
142 .BR lfs-setstripe (1),
143 .BR lustre (7)