1VDO(8)                      System Manager's Manual                     VDO(8)
2
3
4

NAME

6       vdo - manage kernel VDO devices and related configuration information
7

SYNOPSIS

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

DESCRIPTION

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                      --maxDiscardSize=size
61                      --sparseIndex={  enabled  |  disabled  }
62                      --vdoAckThreads=thread count
63                      --vdoBioRotationInterval=I/O count
64                      --vdoBioThreads=thread count
65                      --vdoCpuThreads=thread count
66                      --vdoHashZoneThreads=thread count
67                      --vdoLogicalThreads=thread count
68                      --vdoLogLevel=level
69                      --vdoLogicalSize=size
70                      --vdoPhysicalThreads=thread count
71                      --vdoSlabSize=size
72                      --writePolicy={  sync  |  async  |  auto }
73                      --confFile=file
74                      --logfile=file
75                      --verbose
76
77       deactivate
78              Deactivates one or more VDO volumes. Deactivated volumes  cannot
79              be  started  by the start command. Deactivating a currently run‐
80              ning volume does not stop it. Once  stopped  a  deactivated  VDO
81              volume  must  be  activated before it can be started again. This
82              command must be run with root  privileges.   Applicable  options
83              include:
84                      { --all | --name=volume } (required)
85                      --confFile=file
86                      --logfile=file
87                      --verbose
88
89       disableCompression
90              Disables compression on one or more VDO volumes. If the VDO vol‐
91              ume is running, takes effect immediately.  If the VDO volume  is
92              not  running  compression will be disabled the next time the VDO
93              volume is started. This command must be  run  with  root  privi‐
94              leges. Applicable options include:
95                      { --all | --name=volume } (required)
96                      --confFile=file
97                      --logfile=file
98                      --verbose
99
100       disableDeduplication
101              Disables  deduplication  on  one or more VDO volumes. If the VDO
102              volume is running, takes effect immediately. If the  VDO  volume
103              is  not running deduplication will be disabled the next time the
104              VDO volume is started. This command must be run with root privi‐
105              leges. Applicable options include:
106                      { --all | --name=volume } (required)
107                      --confFile=file
108                      --logfile=file
109                      --verbose
110
111       enableCompression
112              Enables  compression on one or more VDO volumes. If the VDO vol‐
113              ume is running, takes effect immediately. If the VDO  volume  is
114              not  running  compression  will be enabled the next time the VDO
115              volume is started. This command must be  run  with  root  privi‐
116              leges.  Applicable options include:
117                      { --all | --name=volume } (required)
118                      --confFile=file
119                      --logfile=file
120                      --verbose
121
122       enableDeduplication
123              Enables  deduplication  on  one  or more VDO volumes. If the VDO
124              volume is running, takes effect immediately. If the  VDO  volume
125              is  not  running deduplication will be enabled the next time the
126              VDO volume is started. This command must be run with root privi‐
127              leges. Applicable options include:
128                      { --all | --name=volume } (required)
129                      --confFile=file
130                      --logfile=file
131                      --verbose
132
133       growLogical
134              Grows  the  logical  size of a VDO volume. The volume must exist
135              and must be running. This command must be run with  root  privi‐
136              leges. Applicable options include:
137                      --name=volume (required)
138                      --vdoLogicalSize=size (required)
139                      --confFile=file
140                      --logfile=file
141                      --verbose
142
143       growPhysical
144              Grows  the  physical size of a VDO volume. The volume must exist
145              and must be running. This command must be run with  root  privi‐
146              leges. Applicable options include:
147                      --name=volume (required)
148                      --confFile=file
149                      --verbose
150                      --logfile=file
151
152       list   Displays a list of started VDO volumes. If --all is specified it
153              displays both started and non-started volumes. This command must
154              be run with root privileges. Applicable options include:
155                      --all
156                      --confFile=file
157                      --logfile=file
158                      --verbose
159
160       modify Modifies  configuration  parameters  of  one or all VDO volumes.
161              Changes take effect the next time the  VDO  device  is  started;
162              already-running  devices  are  not  affected. Applicable options
163              include:
164                      { --all | --name=volume } (required)
165                      --blockMapCacheSize=size
166                      --blockMapPeriod=period
167                      --maxDiscardSize=size
168                      --vdoAckThreads=thread count
169                      --vdoBioThreads=thread count
170                      --vdoCpuThreads=thread count
171                      --vdoHashZoneThreads=thread count
172                      --vdoLogicalThreads=thread count
173                      --vdoPhysicalThreads=thread count
174                      --confFile=file
175                      --logfile=file
176                      --verbose
177
178       printConfigFile
179              Prints the configuration file to stdout. This command  does  not
180              require root privileges. Applicable options include:
181                      --confFile=file
182                      --logfile=file
183                      --verbose
184
185       remove Removes  one or more stopped VDO volumes and associated indexes.
186              This command must  be  run  with  root  privileges.   Applicable
187              options include:
188                      { --all | --name=volume } (required)
189                      --force
190                      --confFile=file
191                      --logfile=file
192                      --verbose
193
194       start  Starts one or more stopped, activated VDO volumes and associated
195              services. This command must be run with root privileges.  Appli‐
196              cable options include:
197                      { --all | --name=volume } (required)
198                      --forceRebuild
199                      --confFile=file
200                      --logfile=file
201                      --verbose
202
203       status Reports  VDO  system and volume status in YAML format. This com‐
204              mand does not require root privileges though information will be
205              incomplete if run without.  Applicable options include:
206                      { --all | --name=volume }
207                      --confFile=file
208                      --logfile=file
209                      --verbose
210              See below for the output provided.
211
212       stop   Stops  one  or more running VDO volumes and associated services.
213              This command  must  be  run  with  root  privileges.  Applicable
214              options include:
215                      { --all | --name=volume } (required)
216                      --force
217                      --confFile=file
218                      --logfile=file
219                      --verbose
220
221       The  status  command  returns the following information in YAML format,
222       divided into keys as follows:
223
224       VDO Status
225              Information in this key covers the name of the host and date and
226              time  at  which  the  status  inquiry  is being made. Parameters
227              reported in this area include:
228
229              Node   The host name of the system on which VDO is running.
230
231              Date   The date and time at which the vdo status command is run.
232
233       Kernel Module
234              Information in this key covers the configured kernel.
235
236              Loaded Whether or not the  kernel  module  is  loaded  (True  or
237                     False).
238
239              Version Information
240                     Information on the version of kvdo that is configured.
241
242       Configuration
243              Information  in  this  key covers the location and status of the
244              VDO configuration file.
245
246              File   Location of the VDO configuration file.
247
248              Last modified
249                     The last-modified date of the VDO configuration file.
250
251       VDOs   Provides configuration information for all VDO volumes.  Parame‐
252              ters reported for each VDO volume include:
253
254              Block size
255                     The block size of the VDO volume, in bytes.
256
257              Emulate 512 byte
258                     Indicates  whether the volume is running in 512-byte emu‐
259                     lation mode.
260
261              Deduplication
262                     Whether deduplication is enabled for the volume.
263
264              Logical size
265                     The logical size of the VDO volume.
266
267              Physical size
268                     The size of a VDO volume's underlying physical storage.
269
270              Configured write policy
271                     The configured value of the write policy (sync, async  or
272                     auto).
273
274              VDO Statistics
275                     Output of the vdostats utility.
276

OPTIONS

278       The  options  supported  by  some  or  all of the commands listed above
279       include:
280
281       --activate={  enabled  |  disabled  }
282              Indicates if the VDO volume should, in addition  to  being  cre‐
283              ated, be activated and started. The default is enabled.
284
285       --all
286       -a
287              Indicates  that  the command should be applied to all configured
288              VDO volumes. May not be used with --name.
289
290       --blockMapCacheSize=megabytes
291              Specifies the amount of memory allocated for caching  block  map
292              pages; the value must be a multiple of 4096.  Using a value with
293              a B (bytes), K (kilobytes),  M  (megabytes),  G  (gigabytes),  T
294              (terabytes),  P  (petabytes) or E (exabytes) suffix is optional.
295              If no suffix is supplied,  the  value  will  be  interpreted  as
296              megabytes.  The  value  must be at least 128M and less than 16T.
297              The cache must be at least 16MB per logical  thread.  Note  that
298              there is a memory overhead of 15%. The default is 128M.
299
300       --blockMapPeriod=period
301              Tunes  the  quantity  of  block  map updates that can accumulate
302              before cache pages are flushed to disk. The value must at  least
303              1  and  less than or equal to 16380. A lower value means shorter
304              recovery time but lower performance. The default value is 16380.
305
306       --compression={  enabled  |  disabled  }
307              Enables or disables compression when creating a VDO volume.  The
308              default  is enabled. Compression may be disabled if necessary to
309              maximize performance or to speed  processing  of  data  that  is
310              unlikely to compress.
311
312       --confFile=file
313       -ffile
314              Specifies  an  alternate  configuration  file;  the  default  is
315              /etc/vdoconf.yml.
316
317       --deduplication={  enabled  |  disabled  }
318              Enables or disables deduplication when creating  a  VDO  volume.
319              The  default  is  enabled.  Deduplication  may  be  disabled  in
320              instances where data is not expected to have good  deduplication
321              rates but compression is still desired.
322
323       --device=absolute_path
324              Specifies an absolute path of the device to use for VDO storage.
325              This might not be the path that gets used to access the  storage
326              device  by future command invocations; see the DEVICE NAMES sec‐
327              tion below.
328
329       --emulate512={  enabled  |  disabled  }
330              Specifies that the VDO volume is to emulate  a  512  byte  block
331              device. The default is disabled.
332
333       --force
334              When  creating a volume, ignores any existing file system or VDO
335              signature already present in the storage device.  When  stopping
336              or  removing a VDO volume, first unmounts the file system stored
337              on the device if mounted.
338
339       --forceRebuild
340              Forces an offline rebuild of a read-only VDO's  metadata  before
341              starting  so  that it may be brought back online and made avail‐
342              able. This option may result in data loss or corruption.
343
344       --indexMem=gigabytes
345              Specifies the amount of index memory in gigabytes;  the  default
346              is currently 0.25 GB. The special decimal values 0.25, 0.5, 0.75
347              can be used, as can any integer value at least 1 and  less  than
348              or  equal  to  1024.  (The special decimal values are matched as
349              exact strings; "0.5" works but "0.50" is not accepted.)
350
351              Larger values will require more disk space. For a  dense  index,
352              each  gigabyte  of  index memory will use approximately 11 GB of
353              storage. For a sparse index, each gigabyte of index memory  will
354              use approximately 100 GB of storage.
355
356       --help
357       -h
358              If  specified  with vdo only, displays documentation for the vdo
359              utility.  If specified with a  command,  displays  documentation
360              for that command.
361
362       --logfile=pathname
363              Specify the path of the file to which log messages are directed.
364              If unspecified, log messages will  go  to  syslog.  Warning  and
365              error messages are always logged to syslog.
366
367       --name=volume
368       -nvolume
369              Operates  on  the  specified  VDO  volume.  May not be used with
370              --all.
371
372       --maxDiscardSize=megabytes
373              Specifies the maximum discard size VDO can receive. This is used
374              for  performance  tuning  and  support  of devices above us. The
375              value must be a multiple of 4K. Using a value  with  a  S  (sec‐
376              tors), B (bytes), K (kilobytes), M (megabytes), G (gigabytes), T
377              (terabytes), P (petabytes) or E (exabytes) suffix  is  optional.
378              If  no  suffix  is  supplied,  the  value will be interpreted as
379              megabytes.  The value must be at least 4K and less than 4G.  The
380              default is 4K.
381
382       --sparseIndex={  enabled  |  disabled  }
383              Enables sparse indexing. The default is disabled.
384
385       --vdoAckThreads=thread count
386              Specifies the number of threads to use for acknowledging comple‐
387              tion of requested VDO I/O operations. The value must be at least
388              0 and less than or equal to 100. The default is 1.
389
390       --vdoBioRotationInterval=I/O count
391              Specifies  the number of I/O operations to enqueue for each bio-
392              submission thread before directing work to the next.  The  value
393              must  be  at least 1 and less than or equal to 1024. The default
394              is 64.
395
396       --vdoBioThreads=thread count
397              Specifies the number of threads to use for submitting I/O opera‐
398              tions  to  the  storage device. The value must be at least 1 and
399              less than or equal to 100.  Each  additional  thread  after  the
400              first will use an additional 18 MB of RAM, The default is 4.
401
402       --vdoCpuThreads=thread count
403              Specifies  the  number  of threads to use for CPU-intensive work
404              such as hashing or compression. The value must be at least 1 and
405              less than or equal to 100. The default is 2.
406
407       --vdoHashZoneThreads=thread count
408              Specifies  the number of threads across which to subdivide parts
409              of the VDO processing based on the hash value computed from  the
410              block  data. The value must be at least 0 and less than or equal
411              to 100.  vdoHashZonesThreads,  vdoLogicalThreads  and  vdoPhysi‐
412              calThreads  must be either all zero or all non-zero. The default
413              is 1.
414
415       --vdoLogicalThreads=thread count
416              Specifies the number of threads across which to subdivide  parts
417              of  the VDO processing based on the hash value computed from the
418              block data. The value must be at least 0 and less than or  equal
419              to  60. A logical thread count of 9 or more will require explic‐
420              itly specifying a sufficiently large block map  cache  size,  as
421              well.    vdoHashZonesThreads,  vdoLogicalThreads  and  vdoPhysi‐
422              calThreads must be either all zero or all non-zero. The  default
423              is 1.
424
425       --vdoLogicalSize=megabytes
426              Specifies  the  logical  VDO  volume size in megabytes.  Using a
427              value  with  a  S  (sectors),  B  (bytes),  K   (kilobytes),   M
428              (megabytes),  G  (gigabytes),  T (terabytes), P (petabytes) or E
429              (exabytes) suffix is optional. Used for  over-provisioning  vol‐
430              umes.  The maximum size supported is 4P. The default is the size
431              of the storage device.
432
433       --vdoLogLevel=level
434              Specifies the VDO driver log level:  critical,  error,  warning,
435              notice,  info,  or debug. Levels are case sensitive; the default
436              is info.
437
438       --vdoPhysicalThreads=thread count
439              Specifies the number of threads across which to subdivide  parts
440              of  the  VDO  processing  based on physical block addresses. The
441              value must be at least 0 and less than  or  equal  to  16.  Each
442              additional  thread  after the first will use an additional 10 MB
443              of RAM.  vdoPhysicalThreads,  vdoHashZonesThreads  and  vdoLogi‐
444              calThreads  must be either all zero or all non-zero. The default
445              is 1.
446
447       --vdoSlabSize=megabytes
448              Specifies the size of the increment by which  a  VDO  is  grown.
449              Using  a smaller size constrains the total maximum physical size
450              that can be accommodated.  Must be a power of two  between  128M
451              and  32G.  Using a value with a S (sectors), B (bytes), K (kilo‐
452              bytes),  M  (megabytes),  G  (gigabytes),   T   (terabytes),   P
453              (petabytes)  or E (exabytes) suffix is optional. If no suffix is
454              used, the value will be interpreted as megabytes. The default is
455              2G.
456
457       --verbose
458              Prints commands before executing them.
459
460       --writePolicy={  sync  |  async  |  auto }
461              Specifies the write policy:
462
463              sync   Writes  are  acknowledged only after data is stably writ‐
464                     ten. This policy is not supported if the underlying stor‐
465                     age is not also synchronous.
466
467              async  Writes  are  acknowledged  after data has been cached for
468                     writing to  stable  storage.  Data  which  has  not  been
469                     flushed is not guaranteed to persist in this mode.
470
471              auto   VDO  will  check the storage device and determine whether
472                     it supports flushes. If it does, VDO will  run  in  async
473                     mode,  otherwise  it  will  run in sync mode. This is the
474                     default.
475

DEVICE NAMES

477       Device recognition order can change at boot time, and  devices  can  be
478       added  to or removed from a system, both possibly affecting device nam‐
479       ing at boot time, so a device recognized as /dev/sda at one time may be
480       /dev/sdb after a reboot.
481
482       In  the directory /dev/disk/by-id, udev normally creates symbolic links
483       after booting when devices are  identified,  and  are  named  based  on
484       device serial numbers, UUIDs, WWNs, etc., so they should be more stable
485       names across reboots for referring to the device in question.
486
487       When a VDO device is created, vdo will look for links in  /dev/disk/by-
488       id  that refer to the same block device as the one supplied on the com‐
489       mand line, and if some are found, use one of those instead.  This  name
490       will  be  written into the config file for future use. If no such links
491       are found, the device name as supplied is used.
492
493       This may cause problems if a VDO storage volume needs to be copied from
494       a  failing  device to a replacement, or from a small device to a larger
495       one to allow for expansion. In cases like these, the  config  file  may
496       need  to  be  edited  to refer to the new device; there is currently no
497       automated way to make this change with the administrative tools. (If  a
498       logical  volume  is  used  as the VDO storage volume, VDO will find the
499       storage via the volume's UUID; the standard LVM tools can  be  used  to
500       manage the migration or growth of the volume.)
501
502       If  a multipath device is used, udev should be configured to either not
503       create any /dev/disk/by-id symbolic links for any of the devices  used,
504       or to only create a link for the multipath device itself.
505

FILES

507       /etc/vdoconf.yml
508              The default configuration file; used if the --confFile option is
509              not provided.
510

EXAMPLES

512       Creation of a VDO device named vdo0, with a 10  terabyte  thinly-provi‐
513       sioned logical address size:
514
515       # vdo create --name=vdo0 --device=/dev/sdb1 --vdoLogicalSize=10T
516       Creating VDO vdo0
517       Starting VDO vdo0
518       Starting compression on VDO vdo0
519       VDO instance 1 volume is ready at /dev/mapper/vdo0
520       #
521
522       Of  course,  as  with any thinly-provisioned device, it may not hold 10
523       terabytes of user data even after deduplication and compression  unless
524       the underlying storage has sufficient space available for the resulting
525       compressed, unique data blocks plus metadata overhead.
526

EXIT STATUS

528       The following are exit statuses that may be encountered  during  normal
529       operation.  Any other exit status is an abnormal occurrence.
530
531       0      Success.
532
533       1      Non-specific failure.
534
535       2      Pre-processing argument parsing failure.
536
537       3      Non-specific processing failure.
538
539       5      Incorrect  state  for requested action; e.g., attempting to per‐
540              form a growPhysical on a stopped vdo.
541
542       6      A requested operation from the system failed; e.g.,  error  from
543              dmsetup(8).
544
545       7      User  error; e.g., attempting to create a vdo with the same name
546              as one already existing.
547

SEE ALSO

549       udev(7), vdostats(8).
550
551
552
553Red Hat                           2018-07-19                            VDO(8)
Impressum