Print this page
Use the LZ4 algorithm to compress metadata when the corresponding feature is enabled
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/man/man5/zpool-features.5
+++ new/usr/src/man/man5/zpool-features.5
1 1 '\" te
2 2 .\" Copyright (c) 2013 by Delphix. All rights reserved.
3 3 .\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
4 4 .\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
5 5 .\" The contents of this file are subject to the terms of the Common Development
6 6 .\" and Distribution License (the "License"). You may not use this file except
7 7 .\" in compliance with the License. You can obtain a copy of the license at
8 8 .\" usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
9 9 .\"
10 10 .\" See the License for the specific language governing permissions and
11 11 .\" limitations under the License. When distributing Covered Code, include this
12 12 .\" CDDL HEADER in each file and include the License file at
13 13 .\" usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this
14 14 .\" CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your
15 15 .\" own identifying information:
16 16 .\" Portions Copyright [yyyy] [name of copyright owner]
17 17 .TH ZPOOL-FEATURES 5 "Aug 27, 2013"
18 18 .SH NAME
19 19 zpool\-features \- ZFS pool feature descriptions
20 20 .SH DESCRIPTION
21 21 .sp
22 22 .LP
23 23 ZFS pool on\-disk format versions are specified via "features" which replace
24 24 the old on\-disk format numbers (the last supported on\-disk format number is
25 25 28). To enable a feature on a pool use the \fBupgrade\fR subcommand of the
26 26 \fBzpool\fR(1M) command, or set the \fBfeature@\fR\fIfeature_name\fR property
27 27 to \fBenabled\fR.
28 28 .sp
29 29 .LP
30 30 The pool format does not affect file system version compatibility or the ability
31 31 to send file systems between pools.
32 32 .sp
33 33 .LP
34 34 Since most features can be enabled independently of each other the on\-disk
35 35 format of the pool is specified by the set of all features marked as
36 36 \fBactive\fR on the pool. If the pool was created by another software version
37 37 this set may include unsupported features.
38 38 .SS "Identifying features"
39 39 .sp
40 40 .LP
41 41 Every feature has a guid of the form \fIcom.example:feature_name\fR. The reverse
42 42 DNS name ensures that the feature's guid is unique across all ZFS
43 43 implementations. When unsupported features are encountered on a pool they will
44 44 be identified by their guids. Refer to the documentation for the ZFS
45 45 implementation that created the pool for information about those features.
46 46 .sp
47 47 .LP
48 48 Each supported feature also has a short name. By convention a feature's short
49 49 name is the portion of its guid which follows the ':' (e.g.
50 50 \fIcom.example:feature_name\fR would have the short name \fIfeature_name\fR),
51 51 however a feature's short name may differ across ZFS implementations if
52 52 following the convention would result in name conflicts.
53 53 .SS "Feature states"
54 54 .sp
55 55 .LP
56 56 Features can be in one of three states:
57 57 .sp
58 58 .ne 2
59 59 .na
60 60 \fB\fBactive\fR\fR
61 61 .ad
62 62 .RS 12n
63 63 This feature's on\-disk format changes are in effect on the pool. Support for
64 64 this feature is required to import the pool in read\-write mode. If this
65 65 feature is not read-only compatible, support is also required to import the pool
66 66 in read\-only mode (see "Read\-only compatibility").
67 67 .RE
68 68
69 69 .sp
70 70 .ne 2
71 71 .na
72 72 \fB\fBenabled\fR\fR
73 73 .ad
74 74 .RS 12n
75 75 An administrator has marked this feature as enabled on the pool, but the
76 76 feature's on\-disk format changes have not been made yet. The pool can still be
77 77 imported by software that does not support this feature, but changes may be made
78 78 to the on\-disk format at any time which will move the feature to the
79 79 \fBactive\fR state. Some features may support returning to the \fBenabled\fR
80 80 state after becoming \fBactive\fR. See feature\-specific documentation for
81 81 details.
82 82 .RE
83 83
84 84 .sp
85 85 .ne 2
86 86 .na
87 87 \fBdisabled\fR
88 88 .ad
89 89 .RS 12n
90 90 This feature's on\-disk format changes have not been made and will not be made
91 91 unless an administrator moves the feature to the \fBenabled\fR state. Features
92 92 cannot be disabled once they have been enabled.
93 93 .RE
94 94
95 95 .sp
96 96 .LP
97 97 The state of supported features is exposed through pool properties of the form
98 98 \fIfeature@short_name\fR.
99 99 .SS "Read\-only compatibility"
100 100 .sp
101 101 .LP
102 102 Some features may make on\-disk format changes that do not interfere with other
103 103 software's ability to read from the pool. These features are referred to as
104 104 "read\-only compatible". If all unsupported features on a pool are read\-only
105 105 compatible, the pool can be imported in read\-only mode by setting the
106 106 \fBreadonly\fR property during import (see \fBzpool\fR(1M) for details on
107 107 importing pools).
108 108 .SS "Unsupported features"
109 109 .sp
110 110 .LP
111 111 For each unsupported feature enabled on an imported pool a pool property
112 112 named \fIunsupported@feature_guid\fR will indicate why the import was allowed
113 113 despite the unsupported feature. Possible values for this property are:
114 114
115 115 .sp
116 116 .ne 2
117 117 .na
118 118 \fB\fBinactive\fR\fR
119 119 .ad
120 120 .RS 12n
121 121 The feature is in the \fBenabled\fR state and therefore the pool's on\-disk
122 122 format is still compatible with software that does not support this feature.
123 123 .RE
124 124
125 125 .sp
126 126 .ne 2
127 127 .na
128 128 \fB\fBreadonly\fR\fR
129 129 .ad
130 130 .RS 12n
131 131 The feature is read\-only compatible and the pool has been imported in
132 132 read\-only mode.
133 133 .RE
134 134
135 135 .SS "Feature dependencies"
136 136 .sp
137 137 .LP
138 138 Some features depend on other features being enabled in order to function
139 139 properly. Enabling a feature will automatically enable any features it
140 140 depends on.
141 141 .SH FEATURES
142 142 .sp
143 143 .LP
144 144 The following features are supported on this system:
145 145 .sp
146 146 .ne 2
147 147 .na
148 148 \fB\fBasync_destroy\fR\fR
149 149 .ad
150 150 .RS 4n
151 151 .TS
152 152 l l .
153 153 GUID com.delphix:async_destroy
154 154 READ\-ONLY COMPATIBLE yes
155 155 DEPENDENCIES none
156 156 .TE
157 157
158 158 Destroying a file system requires traversing all of its data in order to
159 159 return its used space to the pool. Without \fBasync_destroy\fR the file system
160 160 is not fully removed until all space has been reclaimed. If the destroy
161 161 operation is interrupted by a reboot or power outage the next attempt to open
162 162 the pool will need to complete the destroy operation synchronously.
163 163
164 164 When \fBasync_destroy\fR is enabled the file system's data will be reclaimed
165 165 by a background process, allowing the destroy operation to complete without
166 166 traversing the entire file system. The background process is able to resume
167 167 interrupted destroys after the pool has been opened, eliminating the need
168 168 to finish interrupted destroys as part of the open operation. The amount
169 169 of space remaining to be reclaimed by the background process is available
170 170 through the \fBfreeing\fR property.
171 171
172 172 This feature is only \fBactive\fR while \fBfreeing\fR is non\-zero.
173 173 .RE
174 174
175 175 .sp
176 176 .ne 2
177 177 .na
178 178 \fB\fBempty_bpobj\fR\fR
179 179 .ad
180 180 .RS 4n
181 181 .TS
182 182 l l .
183 183 GUID com.delphix:empty_bpobj
184 184 READ\-ONLY COMPATIBLE yes
185 185 DEPENDENCIES none
186 186 .TE
187 187
188 188 This feature increases the performance of creating and using a large
189 189 number of snapshots of a single filesystem or volume, and also reduces
190 190 the disk space required.
191 191
192 192 When there are many snapshots, each snapshot uses many Block Pointer
193 193 Objects (bpobj's) to track blocks associated with that snapshot.
194 194 However, in common use cases, most of these bpobj's are empty. This
195 195 feature allows us to create each bpobj on-demand, thus eliminating the
196 196 empty bpobjs.
197 197
198 198 This feature is \fBactive\fR while there are any filesystems, volumes,
199 199 or snapshots which were created after enabling this feature.
200 200 .RE
201 201
202 202 .sp
203 203 .ne 2
204 204 .na
205 205 \fB\fBfilesystem_limits\fR\fR
206 206 .ad
207 207 .RS 4n
208 208 .TS
209 209 l l .
210 210 GUID com.joyent:filesystem_limits
211 211 READ\-ONLY COMPATIBLE yes
212 212 DEPENDENCIES extensible_dataset
213 213 .TE
214 214
215 215 This feature enables filesystem and snapshot limits. These limits can be used
216 216 to control how many filesystems and/or snapshots can be created at the point in
217 217 the tree on which the limits are set.
218 218
219 219 This feature is \fBactive\fR once either of the limit properties has been
220 220 set on a dataset. Once activated the feature is never deactivated.
221 221 .RE
222 222
223 223 .sp
224 224 .ne 2
225 225 .na
226 226 \fB\fBlz4_compress\fR\fR
227 227 .ad
228 228 .RS 4n
229 229 .TS
230 230 l l .
231 231 GUID org.illumos:lz4_compress
232 232 READ\-ONLY COMPATIBLE no
233 233 DEPENDENCIES none
234 234 .TE
235 235
↓ open down ↓ |
235 lines elided |
↑ open up ↑ |
236 236 \fBlz4\fR is a high-performance real-time compression algorithm that
237 237 features significantly faster compression and decompression as well as a
238 238 higher compression ratio than the older \fBlzjb\fR compression.
239 239 Typically, \fBlz4\fR compression is approximately 50% faster on
240 240 compressible data and 200% faster on incompressible data than
241 241 \fBlzjb\fR. It is also approximately 80% faster on decompression, while
242 242 giving approximately 10% better compression ratio.
243 243
244 244 When the \fBlz4_compress\fR feature is set to \fBenabled\fR, the
245 245 administrator can turn on \fBlz4\fR compression on any dataset on the
246 -pool using the \fBzfs\fR(1M) command. Please note that doing so will
247 -immediately activate the \fBlz4_compress\fR feature on the underlying
248 -pool (even before any data is written), and the feature will not be
249 -deactivated. Since this feature is not read-only compatible, this
250 -operation will render the pool unimportable on systems without support
251 -for the \fBlz4_compress\fR feature. Booting off of \fBlz4\fR-compressed
252 -root pools is supported.
246 +pool using the \fBzfs\fR(1M) command. Also, all newly written metadata
247 +will be compressed with \fBlz4\fR algorithm. Since this feature is not
248 +read-only compatible, this operation will render the pool unimportable
249 +on systems without support for the \fBlz4_compress\fR feature. Booting
250 +off of \fBlz4\fR-compressed root pools is supported.
251 +
252 +This feature becomes \fBactive\fR as soon as it is enabled and will
253 +never return to being \fBenabled\fB.
253 254 .RE
254 255
255 256 .sp
256 257 .ne 2
257 258 .na
258 259 \fB\fBspacemap_histogram\fR\fR
259 260 .ad
260 261 .RS 4n
261 262 .TS
262 263 l l .
263 264 GUID com.delphix:spacemap_histogram
264 265 READ\-ONLY COMPATIBLE yes
265 266 DEPENDENCIES none
266 267 .TE
267 268
268 269 This features allows ZFS to maintain more information about how free space
269 270 is organized within the pool. If this feature is \fBenabled\fR, ZFS will
270 271 set this feature to \fBactive\fR when a new space map object is created or
271 272 an existing space map is upgraded to the new format. Once the feature is
272 273 \fBactive\fR, it will remain in that state until the pool is destroyed.
273 274 .RE
274 275
275 276 .sp
276 277 .ne 2
277 278 .na
278 279 \fB\fBmulti_vdev_crash_dump\fR\fR
279 280 .ad
280 281 .RS 4n
281 282 .TS
282 283 l l .
283 284 GUID com.joyent:multi_vdev_crash_dump
284 285 READ\-ONLY COMPATIBLE no
285 286 DEPENDENCIES none
286 287 .TE
287 288
288 289 This feature allows a dump device to be configured with a pool comprised
289 290 of multiple vdevs. Those vdevs may be arranged in any mirrored or raidz
290 291 configuration.
291 292
292 293 When the \fBmulti_vdev_crash_dump\fR feature is set to \fBenabled\fR,
293 294 the administrator can use the \fBdumpadm\fR(1M) command to configure a
294 295 dump device on a pool comprised of multiple vdevs.
295 296 .RE
296 297
297 298 .sp
298 299 .ne 2
299 300 .na
300 301 \fB\fBextensible_dataset\fR\fR
301 302 .ad
302 303 .RS 4n
303 304 .TS
304 305 l l .
305 306 GUID com.delphix:extensible_dataset
306 307 READ\-ONLY COMPATIBLE no
307 308 DEPENDENCIES none
308 309 .TE
309 310
310 311 This feature allows more flexible use of internal ZFS data structures,
311 312 and exists for other features to depend on.
312 313
313 314 This feature will be \fBactive\fR when the first dependent feature uses it,
314 315 and will be returned to the \fBenabled\fR state when all datasets that use
315 316 this feature are destroyed.
316 317
317 318 .RE
318 319
319 320 .sp
320 321 .ne 2
321 322 .na
322 323 \fB\fBbookmarks\fR\fR
323 324 .ad
324 325 .RS 4n
325 326 .TS
326 327 l l .
327 328 GUID com.delphix:bookmarks
328 329 READ\-ONLY COMPATIBLE yes
329 330 DEPENDENCIES extensible_dataset
330 331 .TE
331 332
332 333 This feature enables use of the \fBzfs bookmark\fR subcommand.
333 334
334 335 This feature is \fBactive\fR while any bookmarks exist in the pool.
335 336 All bookmarks in the pool can be listed by running
336 337 \fBzfs list -t bookmark -r \fIpoolname\fR\fR.
337 338
338 339 .RE
339 340
340 341 .sp
341 342 .ne 2
342 343 .na
343 344 \fB\fBenabled_txg\fR\fR
344 345 .ad
345 346 .RS 4n
346 347 .TS
347 348 l l .
348 349 GUID com.delphix:enabled_txg
349 350 READ\-ONLY COMPATIBLE yes
350 351 DEPENDENCIES none
351 352 .TE
352 353
353 354 Once this feature is enabled ZFS records the transaction group number
354 355 in which new features are enabled. This has no user-visible impact,
355 356 but other features may depend on this feature.
356 357
357 358 This feature becomes \fBactive\fR as soon as it is enabled and will
358 359 never return to being \fBenabled\fB.
359 360
360 361 .RE
361 362
362 363 .sp
363 364 .ne 2
364 365 .na
365 366 \fB\fBhole_birth\fR\fR
366 367 .ad
367 368 .RS 4n
368 369 .TS
369 370 l l .
370 371 GUID com.delphix:hole_birth
371 372 READ\-ONLY COMPATIBLE no
372 373 DEPENDENCIES enabled_txg
373 374 .TE
374 375
375 376 This feature improves performance of incremental sends ("zfs send -i")
376 377 and receives for objects with many holes. The most common case of
377 378 hole-filled objects is zvols.
378 379
379 380 An incremental send stream from snapshot \fBA\fR to snapshot \fBB\fR
380 381 contains information about every block that changed between \fBA\fR and
381 382 \fBB\fR. Blocks which did not change between those snapshots can be
382 383 identified and omitted from the stream using a piece of metadata called
383 384 the 'block birth time', but birth times are not recorded for holes (blocks
384 385 filled only with zeroes). Since holes created after \fBA\fR cannot be
385 386 distinguished from holes created before \fBA\fR, information about every
386 387 hole in the entire filesystem or zvol is included in the send stream.
387 388
388 389 For workloads where holes are rare this is not a problem. However, when
389 390 incrementally replicating filesystems or zvols with many holes (for
390 391 example a zvol formatted with another filesystem) a lot of time will
391 392 be spent sending and receiving unnecessary information about holes that
392 393 already exist on the receiving side.
393 394
394 395 Once the \fBhole_birth\fR feature has been enabled the block birth times
395 396 of all new holes will be recorded. Incremental sends between snapshots
396 397 created after this feature is enabled will use this new metadata to avoid
397 398 sending information about holes that already exist on the receiving side.
398 399
399 400 This feature becomes \fBactive\fR as soon as it is enabled and will
400 401 never return to being \fBenabled\fB.
401 402
402 403 .RE
403 404
404 405
405 406 .SH "SEE ALSO"
406 407 \fBzpool\fR(1M)
↓ open down ↓ |
144 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX