## org.freedesktop.UDisks2.Manager.VDO

org.freedesktop.UDisks2.Manager.VDO — VDO volume management

## Methods

    CreateVolume         (IN  s     name,
                          IN  o     device,
                          IN  t     logical_size,
                          IN  t     index_memory,
                          IN  b     compression,
                          IN  b     deduplication,
                          IN  s     write_policy,
                          IN  a{sv} options,
                          OUT o     vdo);
    ActivateVolumeByName (IN  s     name,
                          IN  a{sv} options);
    StartVolumeByName    (IN  s     name,
                          IN  b     force_rebuild,
                          IN  a{sv} options,
                          OUT o     vdo);

## Description

This interface provides a way to create new and activate or start existing VDO volumes. Once a volume has been started an additional org.freedesktop.UDisks2.Block.VDO interface will be exported on the related block object.

There are several limitations introduced by the backing `vdo` tool that are reflected in the org.freedesktop.UDisks2.Manager.VDO interface. The `vdo` tool operates on VDO names and can't take block device path as an identifier. Volumes that are in stopped state don't expose any `udev` attribute containing VDO name or any other information that can be used for identification. That means that some of the org.freedesktop.UDisks2.Block.VDO interface methods take VDO volume name as an argument instead of an object path to the backing block device.

For the moment the VDO configuration file is not used to retrieve any extra information.

Since 2.8.0

## Method Details

### The CreateVolume() method

    CreateVolume (IN  s     name,
                  IN  o     device,
                  IN  t     logical_size,
                  IN  t     index_memory,
                  IN  b     compression,
                  IN  b     deduplication,
                  IN  s     write_policy,
                  IN  a{sv} options,
                  OUT o     vdo);

Creates a VDO volume from `device` and its associated index and makes it available.

Known `write_policy` values include:

sync | Writes are acknowledged only after data is on stable storage. 'sync' policy is not supported if the underlying storage is not also synchronous.
async | Writes are acknowledged when data has been cached for writing to stable storage; data which has not been flushed is not guaranteed to persist in this mode.
auto | VDO will check the storage device and determine whether it supports flushes. If it does, VDO will run in async mode, otherwise it will run in sync mode.

`IN s `name``: | The VDO volume name.
`IN o `device``: | Object path to an object implementing the #org.freedesktop.UDisks2.Block interface, used as an underlying storage device.
`IN t `logical_size``: | Logical VDO volume size in bytes or 0 for default (size of `device`)
`IN t `index_memory``: | Amount of index memory in bytes or 0 for default. Note that only some sizes are valid here (0.25, 0.5 and 0.75 GB and integer multiples of 1 GB). Invalid sizes will be rounded DOWN to nearest GB (or one of the allowed decimal values).
`IN b `compression``: | Enables or disables compression when creating a VDO volume.
`IN b `deduplication``: | Enables or disables deduplication when creating a VDO volume.
`IN s `write_policy``: | Specifies the write policy.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).
`OUT o `vdo``: | An object path to the object implementing the org.freedesktop.UDisks2.Block.VDO interface.

Since 2.8.0

### The ActivateVolumeByName() method

    ActivateVolumeByName (IN  s     name,
                          IN  a{sv} options);

Activates existing VDO volume. Activated volume can be started using the StartVolumeByName() method call.

`IN s `name``: | Name of an existing VDO volume to activate.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The StartVolumeByName() method

    StartVolumeByName (IN  s     name,
                       IN  b     force_rebuild,
                       IN  a{sv} options,
                       OUT o     vdo);

Starts a stopped, activated VDO volume and associated services. Deactivated volumes need to be activated using the ActivateVolumeByName() method call prior to starting. Since a volume index rebuild may be required a job object will be exposed for this operation.

`IN s `name``: | The VDO volume name.
`IN b `force_rebuild``: | Forces an offline rebuild of a read-only VDO's metadata before starting so that it may be brought back online and made available. This option may result in data loss or corruption.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).
`OUT o `vdo``: | An object path to the object implementing the org.freedesktop.UDisks2.Block.VDO interface.

Since 2.8.0