1VDO(8) System Manager's Manual VDO(8)
2
3
4
6 vdo - manage kernel VDO devices and related configuration information
7
9 vdo { activate | changeWritePolicy | create | deactivate |
10 disableCompression | disableDeduplication | enableCompression |
11 enableDeduplication | growLogical | growPhysical | list | modify
12 | printConfigFile | remove | start | status | stop } [ options...
13 ]
14
16 The commands available are:
17
18 activate
19 Activates one or more VDO volumes. Activated volumes can be
20 started using the start command. This command must be run with
21 root privileges. Applicable options include:
22 { --all | --name=volume } (required)
23 --confFile=file
24 --logfile=file
25 --verbose
26
27 changeWritePolicy
28 Modifies the write policy of one or all running VDO volumes.
29 This command must be run with root privileges. Applicable
30 options include:
31 { --all | --name=volume } (required)
32 --writePolicy={ sync | async | auto } (required)
33 --confFile=file
34 --logfile=file
35 --verbose
36
37 create Creates a VDO volume and its associated index and makes it
38 available. If --activate=disabled is specified the VDO volume is
39 created but not made available.
40
41 If the specified device is already in use by a VDO volume (as
42 determined from the configuration file) the create will always
43 be rejected, even if --force is specified. If the device is not
44 so in use but is formatted as a VDO volume or contains an exist‐
45 ing file system the create will be rejected unless --force is
46 given.
47
48 This command must be run with root privileges.
49
50 Applicable options include:
51 --name=volume (required)
52 --device=device (required)
53 --activate={ enabled | disabled }
54 --blockMapCacheSize=size
55 --blockMapPeriod=period
56 --compression={ enabled | disabled }
57 --deduplication={ enabled | disabled }
58 --emulate512={ enabled | disabled }
59 --indexMem=size
60 --readCache={ enabled | disabled }
61 --readCacheSize=size
62 --sparseIndex={ enabled | disabled }
63 --vdoAckThreads=thread count
64 --vdoBioRotationInterval=I/O count
65 --vdoBioThreads=thread count
66 --vdoCpuThreads=thread count
67 --vdoHashZoneThreads=thread count
68 --vdoLogicalThreads=thread count
69 --vdoLogLevel=level
70 --vdoLogicalSize=size
71 --vdoPhysicalThreads=thread count
72 --vdoSlabSize=size
73 --writePolicy={ sync | async | auto }
74 --confFile=file
75 --logfile=file
76 --verbose
77
78 deactivate
79 Deactivates one or more VDO volumes. Deactivated volumes cannot
80 be started by the start command. Deactivating a currently run‐
81 ning volume does not stop it. Once stopped a deactivated VDO
82 volume must be activated before it can be started again. This
83 command must be run with root privileges. Applicable options
84 include:
85 { --all | --name=volume } (required)
86 --confFile=file
87 --logfile=file
88 --verbose
89
90 disableCompression
91 Disables compression on one or more VDO volumes. If the VDO vol‐
92 ume is running, takes effect immediately. If the VDO volume is
93 not running compression will be disabled the next time the VDO
94 volume is started. This command must be run with root privi‐
95 leges. Applicable options include:
96 { --all | --name=volume } (required)
97 --confFile=file
98 --logfile=file
99 --verbose
100
101 disableDeduplication
102 Disables deduplication on one or more VDO volumes. If the VDO
103 volume is running, takes effect immediately. If the VDO volume
104 is not running deduplication will be disabled the next time the
105 VDO volume is started. This command must be run with root privi‐
106 leges. Applicable options include:
107 { --all | --name=volume } (required)
108 --confFile=file
109 --logfile=file
110 --verbose
111
112 enableCompression
113 Enables compression on one or more VDO volumes. If the VDO vol‐
114 ume is running, takes effect immediately. If the VDO volume is
115 not running compression will be enabled the next time the VDO
116 volume is started. This command must be run with root privi‐
117 leges. Applicable options include:
118 { --all | --name=volume } (required)
119 --confFile=file
120 --logfile=file
121 --verbose
122
123 enableDeduplication
124 Enables deduplication on one or more VDO volumes. If the VDO
125 volume is running, takes effect immediately. If the VDO volume
126 is not running deduplication will be enabled the next time the
127 VDO volume is started. This command must be run with root privi‐
128 leges. Applicable options include:
129 { --all | --name=volume } (required)
130 --confFile=file
131 --logfile=file
132 --verbose
133
134 growLogical
135 Grows the logical size of a VDO volume. The volume must exist
136 and must be running. This command must be run with root privi‐
137 leges. Applicable options include:
138 --name=volume (required)
139 --vdoLogicalSize=size (required)
140 --confFile=file
141 --logfile=file
142 --verbose
143
144 growPhysical
145 Grows the physical size of a VDO volume. The volume must exist
146 and must be running. This command must be run with root privi‐
147 leges. Applicable options include:
148 --name=volume (required)
149 --confFile=file
150 --verbose
151 --logfile=file
152
153 list Displays a list of started VDO volumes. If --all is specified it
154 displays both started and non-started volumes. This command must
155 be run with root privileges. Applicable options include:
156 --all
157 --confFile=file
158 --logfile=file
159 --verbose
160
161 modify Modifies configuration parameters of one or all VDO volumes.
162 Changes take effect the next time the VDO device is started;
163 already-running devices are not affected. Applicable options
164 include:
165 { --all | --name=volume } (required)
166 --blockMapCacheSize=size
167 --blockMapPeriod=period
168 --readCache={ enabled | disabled }
169 --readCacheSize=size
170 --vdoAckThreads=thread count
171 --vdoBioThreads=thread count
172 --vdoCpuThreads=thread count
173 --vdoHashZoneThreads=thread count
174 --vdoLogicalThreads=thread count
175 --vdoPhysicalThreads=thread count
176 --confFile=file
177 --logfile=file
178 --verbose
179
180 printConfigFile
181 Prints the configuration file to stdout. This command does not
182 require root privileges. Applicable options include:
183 --confFile=file
184 --logfile=file
185 --verbose
186
187 remove Removes one or more stopped VDO volumes and associated indexes.
188 This command must be run with root privileges. Applicable
189 options include:
190 { --all | --name=volume } (required)
191 --force
192 --confFile=file
193 --logfile=file
194 --verbose
195
196 start Starts one or more stopped, activated VDO volumes and associated
197 services. This command must be run with root privileges. Appli‐
198 cable options include:
199 { --all | --name=volume } (required)
200 --forceRebuild
201 --confFile=file
202 --logfile=file
203 --verbose
204
205 status Reports VDO system and volume status in YAML format. This com‐
206 mand does not require root privileges though information will be
207 incomplete if run without. Applicable options include:
208 { --all | --name=volume }
209 --confFile=file
210 --logfile=file
211 --verbose
212 See below for the output provided.
213
214 stop Stops one or more running VDO volumes and associated services.
215 This command must be run with root privileges. Applicable
216 options include:
217 { --all | --name=volume } (required)
218 --force
219 --confFile=file
220 --logfile=file
221 --verbose
222
223 The status command returns the following information in YAML format,
224 divided into keys as follows:
225
226 VDO Status
227 Information in this key covers the name of the host and date and
228 time at which the status inquiry is being made. Parameters
229 reported in this area include:
230
231 Node The host name of the system on which VDO is running.
232
233 Date The date and time at which the vdo status command is run.
234
235 Kernel Module
236 Information in this key covers the configured kernel.
237
238 Loaded Whether or not the kernel module is loaded (True or
239 False).
240
241 Version Information
242 Information on the version of kvdo that is configured.
243
244 Configuration
245 Information in this key covers the location and status of the
246 VDO configuration file.
247
248 File Location of the VDO configuration file.
249
250 Last modified
251 The last-modified date of the VDO configuration file.
252
253 VDOs Provides configuration information for all VDO volumes. Parame‐
254 ters reported for each VDO volume include:
255
256 Block size
257 The block size of the VDO volume, in bytes.
258
259 Emulate 512 byte
260 Indicates whether the volume is running in 512-byte emu‐
261 lation mode.
262
263 Deduplication
264 Whether deduplication is enabled for the volume.
265
266 Logical size
267 The logical size of the VDO volume.
268
269 Physical size
270 The size of a VDO volume's underlying physical storage.
271
272 Configured write policy
273 The configured value of the write policy (sync, async or
274 auto).
275
276 VDO Statistics
277 Output of the vdostats utility.
278
280 The options supported by some or all of the commands listed above
281 include:
282
283 --activate={ enabled | disabled }
284 Indicates if the VDO volume should, in addition to being cre‐
285 ated, be activated and started. The default is enabled.
286
287 --all
288 -a
289 Indicates that the command should be applied to all configured
290 VDO volumes. May not be used with --name.
291
292 --blockMapCacheSize=megabytes
293 Specifies the amount of memory allocated for caching block map
294 pages; the value must be a multiple of 4096. Using a value with
295 a B (bytes), K (kilobytes), M (megabytes), G (gigabytes), T
296 (terabytes), P (petabytes) or E (exabytes) suffix is optional.
297 If no suffix is supplied, the value will be interpreted as
298 megabytes. The value must be at least 128M and less than 16T.
299 The cache must be at least 16MB per logical thread. Note that
300 there is a memory overhead of 15%. The default is 128M.
301
302 --blockMapPeriod=period
303 Tunes the quantity of block map updates that can accumulate
304 before cache pages are flushed to disk. The value must at least
305 1 and less than or equal to 16380. A lower value means shorter
306 recovery time but lower performance. The default value is 16380.
307
308 --compression={ enabled | disabled }
309 Enables or disables compression when creating a VDO volume. The
310 default is enabled. Compression may be disabled if necessary to
311 maximize performance or to speed processing of data that is
312 unlikely to compress.
313
314 --confFile=file
315 -ffile
316 Specifies an alternate configuration file; the default is
317 /etc/vdoconf.yml.
318
319 --deduplication={ enabled | disabled }
320 Enables or disables deduplication when creating a VDO volume.
321 The default is enabled. Deduplication may be disabled in
322 instances where data is not expected to have good deduplication
323 rates but compression is still desired.
324
325 --device=absolute_path
326 Specifies an absolute path of the device to use for VDO storage.
327 This might not be the path that gets used to access the storage
328 device by future command invocations; see the DEVICE NAMES sec‐
329 tion below.
330
331 --emulate512={ enabled | disabled }
332 Specifies that the VDO volume is to emulate a 512 byte block
333 device. The default is disabled.
334
335 --force
336 When creating a volume, ignores any existing file system or VDO
337 signature already present in the storage device. When stopping
338 or removing a VDO volume, first unmounts the file system stored
339 on the device if mounted.
340
341 --forceRebuild
342 Forces an offline rebuild of a read-only VDO's metadata before
343 starting so that it may be brought back online and made avail‐
344 able. This option may result in data loss or corruption.
345
346 --indexMem=gigabytes
347 Specifies the amount of index memory in gigabytes; the default
348 is currently 0.25 GB. The special decimal values 0.25, 0.5, 0.75
349 can be used, as can any integer value at least 1 and less than
350 or equal to 1024. (The special decimal values are matched as
351 exact strings; "0.5" works but "0.50" is not accepted.)
352
353 --help
354 -h
355 If specified with vdo only, displays documentation for the vdo
356 utility. If specified with a command, displays documentation
357 for that command.
358
359 --logfile=pathname
360 Specify the path of the file to which log messages are directed.
361 If unspecified, log messages will go to syslog. Warning and
362 error messages are always logged to syslog.
363
364 --name=volume
365 -nvolume
366 Operates on the specified VDO volume. May not be used with
367 --all.
368
369 --readCache={ enabled | disabled }
370 Enables or disables the read cache within the VDO device. The
371 cache should be enabled if write workloads are expected to have
372 high levels of deduplication, or for read intensive workloads of
373 highly compressible data. The default is disabled.
374
375 --readCacheSize=megabytes
376 Specifies the extra VDO device read cache size in megabytes.
377 This space is in addition to a system-defined minimum. Using a
378 value with a B (bytes), K (kilobytes), M (megabytes), G (giga‐
379 bytes), T (terabytes), P (petabytes) or E (exabytes) suffix is
380 optional. The value must be at least 0 and less than 16T. 1.12
381 MB of memory will be used per MB of read cache specified, per
382 bio thread. The default is 0.
383
384 --sparseIndex={ enabled | disabled }
385 Enables sparse indexing. The default is disabled.
386
387 --vdoAckThreads=thread count
388 Specifies the number of threads to use for acknowledging comple‐
389 tion of requested VDO I/O operations. The value must be at least
390 0 and less than or equal to 100. The default is 1.
391
392 --vdoBioRotationInterval=I/O count
393 Specifies the number of I/O operations to enqueue for each bio-
394 submission thread before directing work to the next. The value
395 must be at least 1 and less than or equal to 1024. The default
396 is 64.
397
398 --vdoBioThreads=thread count
399 Specifies the number of threads to use for submitting I/O opera‐
400 tions to the storage device. The value must be at least 1 and
401 less than or equal to 100. Each additional thread after the
402 first will use an additional 18 MB of RAM, plus 1.12 MB of RAM
403 per megabyte of configured read cache size. The default is 4.
404
405 --vdoCpuThreads=thread count
406 Specifies the number of threads to use for CPU-intensive work
407 such as hashing or compression. The value must be at least 1 and
408 less than or equal to 100. The default is 2.
409
410 --vdoHashZoneThreads=thread count
411 Specifies the number of threads across which to subdivide parts
412 of the VDO processing based on the hash value computed from the
413 block data. The value must be at least 0 and less than or equal
414 to 100. vdoHashZonesThreads, vdoLogicalThreads and vdoPhysi‐
415 calThreads must be either all zero or all non-zero. The default
416 is 1.
417
418 --vdoLogicalThreads=thread count
419 Specifies the number of threads across which to subdivide parts
420 of the VDO processing based on the hash value computed from the
421 block data. The value must be at least 0 and less than or equal
422 to 100. A logical thread count of 9 or more will require explic‐
423 itly specifying a sufficiently large block map cache size, as
424 well. vdoHashZonesThreads, vdoLogicalThreads and vdoPhysi‐
425 calThreads must be either all zero or all non-zero. The default
426 is 1.
427
428 --vdoLogicalSize=megabytes
429 Specifies the logical VDO volume size in megabytes. Using a
430 value with a S (sectors), B (bytes), K (kilobytes), M
431 (megabytes), G (gigabytes), T (terabytes), P (petabytes) or E
432 (exabytes) suffix is optional. Used for over-provisioning vol‐
433 umes. The maximum size supported is 4P. The default is the size
434 of the storage device.
435
436 --vdoLogLevel=level
437 Specifies the VDO driver log level: critical, error, warning,
438 notice, info, or debug. Levels are case sensitive; the default
439 is info.
440
441 --vdoPhysicalThreads=thread count
442 Specifies the number of threads across which to subdivide parts
443 of the VDO processing based on physical block addresses. The
444 value must be at least 0 and less than or equal to 16. Each
445 additional thread after the first will use an additional 10 MB
446 of RAM. vdoPhysicalThreads, vdoHashZonesThreads and vdoLogi‐
447 calThreads must be either all zero or all non-zero. The default
448 is 1.
449
450 --vdoSlabSize=megabytes
451 Specifies the size of the increment by which a VDO is grown.
452 Using a smaller size constrains the total maximum physical size
453 that can be accommodated. Must be a power of two between 128M
454 and 32G. Using a value with a S (sectors), B (bytes), K (kilo‐
455 bytes), M (megabytes), G (gigabytes), T (terabytes), P
456 (petabytes) or E (exabytes) suffix is optional. If no suffix is
457 used, the value will be interpreted as megabytes. The default is
458 2G.
459
460 --verbose
461 Prints commands before executing them.
462
463 --writePolicy={ sync | async | auto }
464 Specifies the write policy:
465
466 sync Writes are acknowledged only after data is stably writ‐
467 ten. This policy is not supported if the underlying stor‐
468 age is not also synchronous.
469
470 async Writes are acknowledged after data has been cached for
471 writing to stable storage. Data which has not been
472 flushed is not guaranteed to persist in this mode.
473
474 auto VDO will check the storage device and determine whether
475 it supports flushes. If it does, VDO will run in async
476 mode, otherwise it will run in sync mode. This is the
477 default.
478
480 Device recognition order can change at boot time, and devices can be
481 added to or removed from a system, both possibly affecting device nam‐
482 ing at boot time, so a device recognized as /dev/sda at one time may be
483 /dev/sdb after a reboot.
484
485 In the directory /dev/disk/by-id, udev normally creates symbolic links
486 after booting when devices are identified, and are named based on
487 device serial numbers, UUIDs, WWNs, etc., so they should be more stable
488 names across reboots for referring to the device in question.
489
490 When a VDO device is created, vdo will look for links in /dev/disk/by-
491 id that refer to the same block device as the one supplied on the com‐
492 mand line, and if some are found, use one of those instead. This name
493 will be written into the config file for future use. If no such links
494 are found, the device name as supplied is used.
495
496 This may cause problems if a VDO storage volume needs to be copied from
497 a failing device to a replacement, or from a small device to a larger
498 one to allow for expansion. In cases like these, the config file may
499 need to be edited to refer to the new device; there is currently no
500 automated way to make this change with the administrative tools. (If a
501 logical volume is used as the VDO storage volume, VDO will find the
502 storage via the volume's UUID; the standard LVM tools can be used to
503 manage the migration or growth of the volume.)
504
505 If a multipath device is used, udev should be configured to either not
506 create any /dev/disk/by-id symbolic links for any of the devices used,
507 or to only create a link for the multipath device itself.
508
510 /etc/vdoconf.yml
511 The default configuration file; used if the --confFile option is
512 not provided.
513
515 Creation of a VDO device named vdo0, with a 10 terabyte thinly-provi‐
516 sioned logical address size:
517
518 # vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T
519 Creating VDO vdo0
520 Starting VDO vdo0
521 Starting compression on VDO vdo0
522 VDO instance 1 volume is ready at /dev/mapper/vdo0
523 #
524
525 Of course, as with any thinly-provisioned device, it may not hold 10
526 terabytes of user data even after deduplication and compression unless
527 the underlying storage has sufficient space available for the resulting
528 compressed, unique data blocks plus metadata overhead.
529
531 The following are exit statuses that may be encountered during normal
532 operation. Any other exit status is an abnormal occurrence.
533
534 0 Success.
535
536 1 Non-specific failure.
537
538 2 Pre-processing argument parsing failure.
539
540 3 Non-specific processing failure.
541
542 5 Incorrect state for requested action; e.g., attempting to per‐
543 form a growPhysical on a stopped vdo.
544
545 6 A requested operation from the system failed; e.g., error from
546 dmsetup(8).
547
548 7 User error; e.g., attempting to create a vdo with the same name
549 as one already existing.
550
552 udev(7), vdostats(8).
553
554
555
556Red Hat 2018-07-19 VDO(8)