## org.freedesktop.UDisks2.Block.VDO

org.freedesktop.UDisks2.Block.VDO — block object interface for managing a running VDO volume

## Methods

    Deactivate          (IN  a{sv} options);
    EnableCompression   (IN  b     enable,
                         IN  a{sv} options);
    EnableDeduplication (IN  b     enable,
                         IN  a{sv} options);
    ChangeWritePolicy   (IN  s     write_policy,
                         IN  a{sv} options);
    Remove              (IN  b     force,
                         IN  a{sv} options);
    Stop                (IN  b     force,
                         IN  a{sv} options);
    GrowLogical         (IN  t     size,
                         IN  a{sv} options);
    GrowPhysical        (IN  a{sv} options);
    GetStatistics       (IN  a{sv} options,
                         OUT a{ss} stats);

## Properties

    Name           readable   s
    Active         readable   b
    Compression    readable   b
    Deduplication  readable   b
    LogicalSize    readable   t
    PhysicalSize   readable   t
    IndexMemory    readable   t
    WritePolicy    readable   s

## Description

This interface is exposed for block objects that represent existing and running VDO volumes.

Due to the VDO design not every change trigerred outside of udisks gets propagated via `udev` and may go unnoticed. It's guaranteed that changes made via udisks are properly reflected in the object properties though.

Since 2.8.0

## Method Details

### The Deactivate() method

    Deactivate (IN  a{sv} options);

Deactivates the VDO volume. Deactivating a currently running volume does not stop it. Once a volume is deactivated it needs to be activated again using the ActivateVolumeByName() method call on the manager object.

`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The EnableCompression() method

    EnableCompression (IN  b     enable,
                       IN  a{sv} options);

Enables or disables compression on the VDO volume. If the VDO volume is running, takes effect immediately.

`IN b `enable``: | A boolean value indicating whether compression should be enabled.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The EnableDeduplication() method

    EnableDeduplication (IN  b     enable,
                         IN  a{sv} options);

Enables or disables deduplication on the VDO volume. If the VDO volume is running, takes effect immediately.

`IN b `enable``: | A boolean value indicating whether deduplication should be enabled.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The ChangeWritePolicy() method

    ChangeWritePolicy (IN  s     write_policy,
                       IN  a{sv} options);

Modifies the write policy of the running VDO volume. 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 `write_policy``: | The desired write policy.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The Remove() method

    Remove (IN  b     force,
            IN  a{sv} options);

Removes the VDO volume and associated indexes.

`IN b `force``: | A boolean value indicating whether an unmount attempt should be performed first.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The Stop() method

    Stop (IN  b     force,
          IN  a{sv} options);

Stops a running VDO volume and associated services. Once a volume is stopped it needs to be started again using the StartVolumeByName() method call on the manager object.

`IN b `force``: | A boolean value indicating whether an unmount attempt should be performed first.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The GrowLogical() method

    GrowLogical (IN  t     size,
                 IN  a{sv} options);

Grows the logical size of a VDO volume to a size specified by the `size` argument. The volume must be running.

`IN t `size``: | The logical VDO volume size in bytes. The maximum size supported is 4P.
`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The GrowPhysical() method

    GrowPhysical (IN  a{sv} options);

Grows the physical size of a VDO volume to the size of underlying block device. The volume must be running.

`IN a{sv} `options``: | Additional options (currently unused except for standard options).

Since 2.8.0

### The GetStatistics() method

    GetStatistics (IN  a{sv} options,
                   OUT a{ss} stats);

Retrieves statistics for the specified VDO volume. Statistics are collected from the values exposed by the kernel `kvdo` module.

List of known keys:

writeAmplificationRatio | The average number of block writes to the underlying storage per block written to the VDO device.
oneKBlocks | The total number of 1K blocks allocated for a VDO volume (= physical volume size * block size / 1024).
oneKBlocksUsed | The total number of 1K blocks used on a VDO volume (= physical blocks used * block size / 1024).
oneKBlocksAvailable | The total number of 1K blocks available on a VDO volume (= physical blocks free * block size / 1024).
usedPercent | The percentage of physical blocks used on a VDO volume (= used blocks / allocated blocks * 100).
savings, savingPercent | The percentage of physical blocks saved on a VDO volume (= [logical blocks used - physical blocks used] / logical blocks used).
fiveTwelveByteEmulation | Indicates whether 512 byte emulation is on or off for the volume.
allocator_slab_count | The total number of slabs.
allocator_slabs_opened | The total number of slabs from which blocks have ever been allocated.
allocator_slabs_reopened | The number of times slabs have been re-opened since the VDO was started.
bios_acknowledged_discard, bios_acknowledged_flush, bios_acknowledged_fua, bios_acknowledged_read, bios_acknowledged_write | The number of block I/O requests acknowledged by VDO.
bios_acknowledged_partial_discard, bios_acknowledged_partial_flush, bios_acknowledged_partial_fua, bios_acknowledged_partial_read, bios_acknowledged_partial_write | The number of partial block I/O requests acknowledged by VDO. Applies only to 512-byte emulation mode.
bios_in_discard, bios_in_flush, bios_in_fua, bios_in_read, bios_in_write | The number of block I/O requests received by VDO.
bios_in_partial_discard, bios_in_partial_flush, bios_in_partial_fua, bios_in_partial_read, bios_in_partial_write | The number of partial block I/O requests received by VDO. Applies only to 512-byte emulation mode.
bios_in_progress_discard, bios_in_progress_flush, bios_in_progress_fua, bios_in_progress_read, bios_in_progress_write | The number of bios submitted to the VDO which have not yet been acknowledged.
bios_journal_completed_discard, bios_journal_completed_flush, bios_journal_completed_fua, bios_journal_completed_read, bios_journal_completed_write | The number of recovery journal block I/O requests completed by the storage device.
bios_journal_discard, bios_journal_flush, bios_journal_fua, bios_journal_read, bios_journal_write | The number of recovery journal block I/O requests submitted by VDO to the storage device.
bios_meta_completed_discard, bios_meta_completed_flush, bios_meta_completed_fua, bios_meta_completed_read, bios_meta_completed_write | The number of metadata block I/O requests completed by the storage device.
bios_meta_discard, bios_meta_flush, bios_meta_fua, bios_meta_read", bios_meta_write | The number of metadata block I/O requests submitted by VDO to the storage device.
bios_out_completed_discard, bios_out_completed_flush, bios_out_completed_fua, bios_out_completed_read, bios_out_completed_write | The number of non-metadata block I/O requests completed by the storage device.
bios_out_discard, bios_out_flush, bios_out_fua, bios_out_read, bios_out_write | The number of non-metadata block I/O requests submitted by VDO to the storage device.
bios_page_cache_completed_discard, bios_page_cache_completed_flush, bios_page_cache_completed_fua, bios_page_cache_completed_read, bios_page_cache_completed_write | The number of block map I/O requests completed by the storage device.
bios_page_cache_discard, bios_page_cache_flush, bios_page_cache_fua, bios_page_cache_read, bios_page_cache_write | The number of block map I/O requests submitted by VDO to the storage device.
block_map_cache_pressure | The number of times a free page was not available when needed.
block_map_cache_size | The size of the block map cache, in bytes.
block_map_clean_pages | The number of clean pages in the block map cache.
block_map_dirty_pages | The number of dirty pages in the block map cache.
block_map_discard_required | The total number of block map requests that required a page to be discarded.
block_map_failed_pages | The number of block map cache pages that have write errors.
block_map_failed_reads | The total number of block map read errors.
block_map_failed_writes | The total number of block map write errors.
block_map_fetch_required | The total number of requests that required a page fetch.
block_map_flush_count | The total number of flushes issued by the block map.
block_map_found_in_cache | The total number of block map cache hits.
block_map_free_pages | The number of free pages in the block map cache.
block_map_incoming_pages | The number of block map cache pages that are being read into the cache.
block_map_outgoing_pages | The number of block map cache pages that are being written.
block_map_pages_loaded | The total number of page fetches.
block_map_pages_saved | The total number of page saves.
block_map_read_count | The total number of block map page reads.
block_map_read_outgoing | The total number of block map reads for pages that were being written.
block_map_reclaimed | The total number of block map pages that were reclaimed.
block_map_wait_for_page | The total number of requests that had to wait for a page.
block_map_write_count | The total number of block map page writes.
block_size | The block size of a VDO volume, in bytes.
complete_recoveries | The number of times a VDO volume has recovered from an unclean shutdown.
currentVIOs_in_progress | The number of I/O requests the VDO is current processing.
data_blocks_used | The number of physical blocks currently in use by a VDO volume to store data.
dedupe_advice_timeouts | The number of times deduplication queries timed out.
errors_invalid_advicePBNCount | The number of times the index returned invalid advice.
errors_no_space_error_count | The number of write requests which failed due to the VDO volume being out of space.
errors_read_only_error_count | The number of write requests which failed due to the VDO volume being in read-only mode.
flush_out | The number of flush requests submitted by VDO to the underlying storage.
hash_lock_concurrent_data_matches |
hash_lock_concurrent_hash_collisions |
hash_lock_dedupe_advice_stale | The number of times deduplication advice was incorrect.
hash_lock_dedupe_advice_valid | The number of times deduplication advice was correct.
index_curr_dedupe_queries | The number of deduplication queries currently in flight.
index_entries_indexed |
index_max_dedupe_queries | The maximum number of in-flight deduplication queries.
index_posts_found |
index_posts_not_found |
index_queries_found |
index_queries_not_found |
index_updates_found |
index_updates_not_found |
in_recovery_mode |
instance | The VDO instance.
journal_blocks_batching | The number of journal block writes started minus the number of journal blocks written.
journal_blocks_committed | The number of journal blocks written to storage.
journal_blocks_started | The number of journal blocks which have been touched in memory.
journal_blocks_writing | The number of journal blocks written (with metadatata in active memory) minus the number of journal blocks committed.
journal_blocks_written | The total number of journal blocks for which a write has been issued.
journal_disk_full | The number of times a request could not make a recovery journal entry because the recovery journal was full.
journal_entries_batching | The number of journal entry writes started minus the number of journal entries written.
journal_entries_committed | The number of journal entries written to storage.
journal_entries_started | The number of journal entries which have been made in memory.
journal_entries_writing | The number of journal entries in submitted writes minus the number of journal entries committed to storage.
journal_entries_written | The total number of journal entries for which a write has been issued.
journal_slab_journal_commits_requested | The number of times the recovery journal requested slab journal commits.
logical_blocks | The maximum number of logical blocks that can be mapped by a VDO volume.
logical_block_size |
logical_blocks_used | The number of logical blocks currently mapped.
maxVIOs | The maximum number of simultaneous I/O requests the VDO has processed.
memory_usage_bios_used | KVDO module bios use.
memory_usage_bytes_used | KVDO module bytes use.
memory_usage_peak_bio_count | KVDO module peak bio coun.
memory_usage_peak_bytes_used | KVDO module peak bytes use.
mode | Indicates whether a VDO volume is operating normally, is in recovery mode, or is in read-only mode.
overhead_blocks_used | The number of physical blocks currently in use by a VDO volume to store VDO metadata.
packer_compressed_blocks_written | The number of physical blocks of compressed data that have been written since the VDO volume was last restarted. The remaining fields are primarily intended for software support and are subject to change in future releases; management tools should not rely upon them.
packer_compressed_fragments_in_packer | The number of compressed fragments being processed that have not yet been written.
packer_compressed_fragments_written | The number of compressed fragments that have been written since the VDO volume was last restarted.
physical_blocks | The total number of physical blocks allocated for a VDO volume.
read_cache_accesses | The number of times VDO searched the read cache.
read_cache_data_hits | The number of times VDO found an entry in the read cache for the desired data block, where the block's contents had been read into memory.
read_cache_hits | The number of times VDO found an entry in the read cache for the desired data block, whether or not the block's contents had yet been read into memory.
read_only_recoveries | The number of times a VDO volume has been recovered from read-only mode.
recovery_percentage | Indicates online recovery progress (\``), or N/A if the volume is not in recovery mode.
ref_counts_blocks_written | The number of reference block writes issued.
slab_journal_blocked_count | The number of times an entry was added to a slab journal that was over the blocking threshold.
slab_journal_blocks_written | The number of slab journal block writes issued.
slab_journal_disk_full_count | The number of times an on-disk slab journal was full.
slab_journal_flush_count | The number of times an entry was added to a slab journal that was over the flush threshold.
slab_journal_tail_busy_count | The number of times write requests blocked waiting for a slab journal write.
slab_summary_blocks_written | The number of slab summary block writes issued.
write_policy | The write policy (sync or async).

`IN a{sv} `options``: | Additional options (currently unused except for standard options).
`OUT a{ss} `stats``: | Array of key-value string pairs

Since 2.8.0

## Property Details

### The "Name" property

    Name  readable   s

The name of the VDO device.

Since 2.8.0

### The "Active" property

    Active  readable   b

Indicates whether the device is active.

Since 2.8.0

### The "Compression" property

    Compression  readable   b

Indicates whether compression is enabled.

Since 2.8.0

### The "Deduplication" property

    Deduplication  readable   b

Indicates whether deduplication is enabled.

Since 2.8.0

### The "LogicalSize" property

    LogicalSize  readable   t

The logical size of the VDO volume.

Since 2.8.0

### The "PhysicalSize" property

    PhysicalSize  readable   t

The physical size of the VDO volume.

Since 2.8.0

### The "IndexMemory" property

    IndexMemory  readable   t

The index memory size of the VDO volume.

Since 2.8.0

### The "WritePolicy" property

    WritePolicy  readable   s

The current write policy of the VDO volume.

Known 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.

Since 2.8.0