1 .TH LFS-SETDIRSTRIPE 1 2017-11-07 "Lustre" "Lustre Utilities"
3 lfs setdirstripe, mkdir \- set striping pattern of a directory.
5 .B lfs setdirstripe [\fR-cdDhHioTxX\fR] \fIDIR\fR...
8 Create a striped directory with specified striping pattern. This
10 sub-command is similar to
12 but is used to create a striped directory or set the default layout for
14 Can also be used to create directory with a foreign (free format) striping pattern (see
20 is an alias for this command.
23 .BR \-c ", " \-T ", " \-\-mdt\-count =\fICOUNT\fR
24 Stripe the new directory over
31 .BR \-i ", " \-\-mdt\-index =\fISTART_MDT_INDEX\fR[,\fIMDT_INDEX ...]
32 Use the MDT whose index is
34 as the master/starting MDT for the directory. If multiple
36 values are given, then the stripes will be allocated on the specified
39 (default) is used, the client will round-robin subdirectory creation
40 across all MDTs if their free space is within
41 .B lod.*.mdt_qos_threshold_rr
42 percent of each other, otherwise the client will prefer to select
44 MDT(s) proportional to the free space and inodes on each.
46 .BR \-H ", " \-\-mdt-hash =\fIHASH_TYPE\fR
49 for the striped directory.
53 CRUSH hash algorithm. This is a consistent hash
54 algorithm, so minimum sub files need to relocate
55 during directory restripe.
58 Fowler-Noll-Vo (FNV-1a) hash algorithm. This provides
59 reasonably uniform, but not cryptographically strong,
60 hashing of the filename. (default)
63 Sum of ASCII characters modulo number of MDTs. This
64 provides weak hashing of the filename, and is suitable
65 for only testing or when the input is known to have
66 perfectly uniform distribution (e.g. sequential numbers).
69 .BR \-d ", " \-\-delete
70 Delete the default striping layout from the directory. New subdirectories
71 created in this directory will inherit the global default directory layout
72 (by default they will not be striped).
74 .BR \-D ", " \-\-default
75 Set the default striping pattern of subdirectories. Newly created
76 sub-directories will use the new default striping pattern,
77 but existing sub-directories will not be affected. The newly
78 created sub-directories will also inherit the specified default
81 Note that striping all directories across all MDTs by default is
83 recommended at this time, as the clients will have to do more RPCs to
84 create and access each directory, hurting performance rather than
85 improving it. Default striped directories are preferred only for
86 parent directories where large subdirectories will be created
87 (e.g. file-per-process job output directories). Instead, using
89 on top-level directories balances mkdir therein over MDTs automatically
90 without causing all subdirectories to be remote by default.
92 .BR \-o ", " \-\-mode =\fIMODE\fR
93 Set the file access permissions of the new directory to the specified
96 (typically octal), as with
98 It is not affected by the current
101 .BR \-\-foreign[=type]
102 Create a directory with a foreign (non-Lustre/free format, see
104 option) striping. Where
106 specifies a known foreign type (like
110 , ...) or a 32-bit numeric type.
112 .BR \-\-flags =\fI<hex>\fR
113 Specify a numeric bitmask of type-specific layout flags for the foreign layout.
115 .BR \-x ", " \-\-xattr =\fISTRING\fR
116 Specify a string to be used as a foreign (free format) striping.
118 .BR \-X ", " \-\-max-inherit = \fIMAX_INHERIT
119 Set the inherit depth of default directory layout. If non-zero, then
121 is the number of subdirectory levels for which this default layout is inherited,
122 up to a maximum of 250 levels, and is decremented by one when copying the
123 default layout to each new subdirectory, until zero and the default layout is
126 of -1 means the default layout is inherited for all subdirectories.
128 .BR \-\-max-inherit-rr = \fIMAX_INHERIT_RR
129 Set the round-robin inherit depth of the default directory layout, only when
133 is zero (unset), then new subdirectories are preferentially created on MDTs
134 with more free space and inodes if the MDTs are imbalanced. If non-zero, then
136 is the number of subdirectory levels, up to a maximum of 250 levels, for which
137 new subdirectories will be created in a round-robin manner across all available
138 MDTs, rather than using MDT space balancing for new subdirectories. Otherwise,
140 is decremented by one when copying the default layout to each new subdirectory,
141 until zero and round-robin is no longer used. It may be useful to set
143 to 2 or 3 when setting the default directory layout on the root of a
145 filesystem, so that top-level subdirectories are immediately spread
146 across MDTs, rather than waiting for the MDTs to become imbalanced.
147 Round-robin subdirectory creation is unlikely to be useful for existing
148 filesystems that already have many files and imbalanced MDTs, since space
149 balancing will already happen, and this will unnecessarily increase the number
150 of remote subdirectories (increasing overhead) without any benefit.
161 and create the directory on an MDT that is less full than the others.
165 command is only usable by root unless the
166 .B "mdt.*.enable_remote_dir_gid"
167 is set on the MDS via
169 to be either a non-zero numeric GID to limit it to a single group (e.g. the
170 .BR "operator " or " admin"
173 to allow any user/group to create remote directories. By default, it is
175 to limit remote/striped directories to only the root user.
177 The root directory of the file system is on MDT0000, and a filesystem-wide
178 default directory layout is set on it by default:
179 .B lfs setdirstripe -D -i -1 -c 1 --max-inherit -1 --max-inherit-rr 3
180 , which is a space balanced directory layout, therefore new directories will be
181 created on all MDTs by inode and space usage, and the top three level of new
182 directories will be created in roundrobin mode if system is balanced. If user
183 doesn't want automatic space balance, deleting this default directory layout
184 won't work, because it will be recreated if not set, instead user can run
185 .B lfs setdirstripe -D -i -1 -c 1 --max-inherit 1 <mountpoint>
186 to limit space balance in the top level, or run
187 .B lfs setdirstripe -D -i 0 -c 1 --max-inherit 1 <mountpoint>
192 .B $ lfs setdirstripe -c 2 -i 1 -H all_char /mnt/lustre/dir1
193 This creates a directory striped on two MDTs, whose first stripe is on
195 (MDT index 1), and whose hash type is
198 .B $ lfs mkdir --foreign=symlink --xattr PUUID/CUUID /mnt/lustre/dir1
201 with foreign (non-lustre/free format)
203 striping/LMV EA value (symlink type).
207 command is part of the Lustre filesystem.
211 .BR lfs-getdirstripe (1),
212 .BR lfs-setstripe (1),