Blame features.rst

Packit 2ba279
Features
Packit 2ba279
=========
Packit 2ba279
Packit 2ba279
*libblockdev* is a C library supporting GObject introspection for manipulation
Packit 2ba279
of block devices. It has a plugin-based architecture where each technology (like
Packit 2ba279
LVM, Btrfs, MD RAID, Swap,...) is implemented in a separate plugin, possibly
Packit 2ba279
with multiple implementations (e.g. using LVM CLI or the new LVM DBus
Packit 2ba279
API). Every plugin is also usable as a standalone shared library.
Packit 2ba279
Packit 2ba279
Packit 2ba279
partitions
Packit 2ba279
-----------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   MBR, GPT, partition manipulation on partitionable devices
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * mklabel
Packit 2ba279
   * create_part
Packit 2ba279
   * resize_part
Packit 2ba279
   * remove_part
Packit 2ba279
Packit 2ba279
Packit 2ba279
filesystems
Packit 2ba279
------------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   * DONE: ext2, ext3, ext4, xfs, vfat, ntfs
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * make_FSTYPE
Packit 2ba279
   * resize_FSTYPE
Packit 2ba279
   * check_FSTYPE
Packit 2ba279
   * repair_FSTYPE
Packit 2ba279
   * change_label_FSTYPE
Packit 2ba279
Packit 2ba279
   * wipefs
Packit 2ba279
   * mount
Packit 2ba279
   * unmount
Packit 2ba279
   * generic_resize
Packit 2ba279
   * freeze
Packit 2ba279
   * unfreeze
Packit 2ba279
Packit 2ba279
Packit 2ba279
LVM
Packit 2ba279
----
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   "plain LVM", LVM Thin Provisioning
Packit 2ba279
Packit 2ba279
:TODO:
Packit 2ba279
   * read-only locking and default config
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * get_global_config
Packit 2ba279
   * set_global_config
Packit 2ba279
   * get_possible_pe_sizes
Packit 2ba279
   * is_supported_pe_size
Packit 2ba279
   * get_max_lv_size
Packit 2ba279
   * round_size_to_pe
Packit 2ba279
   * get_lv_physical_size
Packit 2ba279
   * get_thpool_padding
Packit 2ba279
   * is_valid_thpool_metadata_size
Packit 2ba279
   * is_valid_thpool_chunk_size
Packit 2ba279
Packit 2ba279
   * pvcreate
Packit 2ba279
   * pvresize
Packit 2ba279
   * pvremove
Packit 2ba279
   * pvmove
Packit 2ba279
   * pvscan
Packit 2ba279
   * pvinfo
Packit 2ba279
   * pvs
Packit 2ba279
Packit 2ba279
   * vgcreate
Packit 2ba279
   * vgextend
Packit 2ba279
   * vgremove
Packit 2ba279
   * vgactivate
Packit 2ba279
   * vgdeactivate
Packit 2ba279
   * vgreduce
Packit 2ba279
   * vginfo
Packit 2ba279
   * vgs
Packit 2ba279
Packit 2ba279
   * lvorigin
Packit 2ba279
   * lvcreate
Packit 2ba279
   * lvremove
Packit 2ba279
   * lvresize
Packit 2ba279
   * lvactivate
Packit 2ba279
   * lvdeactivate
Packit 2ba279
   * lvsnapshotcreate
Packit 2ba279
   * lvsnapshotmerge
Packit 2ba279
   * lvinfo
Packit 2ba279
   * lvs
Packit 2ba279
Packit 2ba279
   * thpoolcreate
Packit 2ba279
   * thlvcreate
Packit 2ba279
   * thlvpoolname
Packit 2ba279
   * thsnapshotcreate
Packit 2ba279
Packit 2ba279
   * cache_get_default_md_size
Packit 2ba279
   * cache_get_mode_str
Packit 2ba279
   * cache_get_mode_from_str
Packit 2ba279
   * cache_create_pool
Packit 2ba279
   * cache_attach
Packit 2ba279
   * cache_detach
Packit 2ba279
   * cache_create_cached_lv
Packit 2ba279
   * cache_pool_name
Packit 2ba279
   * cache_stats
Packit 2ba279
Packit 2ba279
   * data_lv_name
Packit 2ba279
   * metadata_lv_name
Packit 2ba279
Packit 2ba279
   * thpool_convert
Packit 2ba279
   * cache_pool_convert
Packit 2ba279
Packit 2ba279
BTRFS
Packit 2ba279
------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   btrfs as both filesystem and multi-device volume, subvolumes, snapshots
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * create_volume
Packit 2ba279
   * add_device
Packit 2ba279
   * remove_device
Packit 2ba279
   * list_devices
Packit 2ba279
   * create_subvolume
Packit 2ba279
   * delete_subvolume
Packit 2ba279
   * list_subvolumes
Packit 2ba279
   * get_default_subvolume
Packit 2ba279
   * set_default_subvolume
Packit 2ba279
   * create_snapshot
Packit 2ba279
   * filesystem_info
Packit 2ba279
   * mkfs
Packit 2ba279
   * resize
Packit 2ba279
   * check
Packit 2ba279
   * repair
Packit 2ba279
   * change_label
Packit 2ba279
Packit 2ba279
Packit 2ba279
SWAP
Packit 2ba279
-----
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   swap partitions/LVs, swap files
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * mkswap
Packit 2ba279
   * swapon
Packit 2ba279
   * swapoff
Packit 2ba279
   * swapstatus
Packit 2ba279
Packit 2ba279
Packit 2ba279
MDRAID
Packit 2ba279
-------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   all RAID levels supported by the MD RAID
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * get_superblock_size
Packit 2ba279
   * create
Packit 2ba279
   * destroy
Packit 2ba279
   * activate
Packit 2ba279
   * deactivate
Packit 2ba279
   * run
Packit 2ba279
   * nominate
Packit 2ba279
   * denominate
Packit 2ba279
   * add
Packit 2ba279
   * remove
Packit 2ba279
   * examine
Packit 2ba279
   * canonicalize_uuid
Packit 2ba279
   * get_md_uuid
Packit 2ba279
   * detail
Packit 2ba279
   * node_from_name
Packit 2ba279
   * name_from_node
Packit 2ba279
Packit 2ba279
Packit 2ba279
CRYPTO/LUKS
Packit 2ba279
------------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   LUKS1 and LUKS2 encrypted devices, TrueCrypt/VeraCrypt devices (open/close only)
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * generate_backup_passphrase
Packit 2ba279
   * device_is_luks
Packit 2ba279
   * luks_uuid
Packit 2ba279
   * luks_status
Packit 2ba279
   * luks_format
Packit 2ba279
   * luks_open
Packit 2ba279
   * luks_close
Packit 2ba279
   * luks_add_key
Packit 2ba279
   * luks_remove_key
Packit 2ba279
   * luks_change_key
Packit 2ba279
   * luks_resize
Packit 2ba279
   * luks_suspend
Packit 2ba279
   * luks_resume
Packit 2ba279
   * luks_header_backup
Packit 2ba279
   * luks_header_restore
Packit 2ba279
   * luks_kill_slot
Packit 2ba279
   * luks_info
Packit 2ba279
   * integrity_info
Packit 2ba279
   * escrow_device
Packit 2ba279
   * tc_open
Packit 2ba279
   * tc_close
Packit 2ba279
Packit 2ba279
Packit 2ba279
MULTIPATH
Packit 2ba279
----------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   just very basic functionality
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * flush_mpaths
Packit 2ba279
   * device_is_mpath_member
Packit 2ba279
   * get_mpath_members
Packit 2ba279
   * set_friendly_names
Packit 2ba279
Packit 2ba279
Packit 2ba279
LOOP
Packit 2ba279
-----
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   basic operations with loop devices
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * get_backing_file
Packit 2ba279
   * get_loop_name
Packit 2ba279
   * loop_setup
Packit 2ba279
   * loop_teardown
Packit 2ba279
Packit 2ba279
Packit 2ba279
DEVICE MAPPER
Packit 2ba279
--------------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   basic operations with raw device mapper and DM RAID sets
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * create_linear
Packit 2ba279
   * remove
Packit 2ba279
   * node_from_name
Packit 2ba279
   * name_from_node
Packit 2ba279
   * map_exists
Packit 2ba279
   * get_member_raid_sets
Packit 2ba279
   * activate_raid_set
Packit 2ba279
   * deactivate_raid_set
Packit 2ba279
   * get_raid_set_type
Packit 2ba279
Packit 2ba279
Packit 2ba279
s390
Packit 2ba279
-----
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   DASD, zFCP
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * s390_dasd_format
Packit 2ba279
   * s390_dasd_needs_format
Packit 2ba279
   * s390_dasd_online
Packit 2ba279
   * s390_dasd_is_ldl
Packit 2ba279
   * s390_dasd_is_fba
Packit 2ba279
   * s390_sanitize_dev_input
Packit 2ba279
   * s390_zfcp_sanitize_wwpn_input
Packit 2ba279
   * s390_zfcp_sanitize_lun_input
Packit 2ba279
   * s390_zfcp_online
Packit 2ba279
   * s390_zfcp_scsi_offline
Packit 2ba279
   * s390_zfcp_offline
Packit 2ba279
Packit 2ba279
Packit 2ba279
KBD (Kernel Block Devices)
Packit 2ba279
---------------------------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   bcache, zram
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * bcache_create
Packit 2ba279
   * bcache_destroy
Packit 2ba279
   * bcache_attach
Packit 2ba279
   * bcache_detach
Packit 2ba279
   * bcache_status
Packit 2ba279
   * bcache_set_mode
Packit 2ba279
   * bcache_get_mode
Packit 2ba279
   * bcache_get_backing_device
Packit 2ba279
   * bcache_get_cache_device
Packit 2ba279
Packit 2ba279
   * zram_create_devices
Packit 2ba279
   * zram_destroy_devices
Packit 2ba279
   * zram_get_stats
Packit 2ba279
Packit 2ba279
NVDIMM
Packit 2ba279
-------
Packit 2ba279
Packit 2ba279
:supported technologies:
Packit 2ba279
   namespaces
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * namespace_enable
Packit 2ba279
   * namespace_disable
Packit 2ba279
   * namespace_info
Packit 2ba279
   * namespace_reconfigure
Packit 2ba279
   * list_namespaces
Packit 2ba279
Packit 2ba279
VDO
Packit 2ba279
---
Packit 2ba279
Packit 2ba279
Standalone VDO plugin is deprecated since 2.24 and will be removed in upcoming 3.0.
Packit 2ba279
Deduplication and compression support is now provided by LVM VDO volumes and pools with
Packit 2ba279
support for these added in 2.23.
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * info
Packit 2ba279
   * create
Packit 2ba279
   * remove
Packit 2ba279
   * change_write_policy
Packit 2ba279
   * enable_compression
Packit 2ba279
   * disable_compression
Packit 2ba279
   * enable_deduplication
Packit 2ba279
   * disable_deduplication
Packit 2ba279
   * activate
Packit 2ba279
   * deactivate
Packit 2ba279
   * start
Packit 2ba279
   * stop
Packit 2ba279
   * grow_logical
Packit 2ba279
   * grow_physical
Packit 2ba279
   * get_statistics
Packit 2ba279
Packit 2ba279
utils
Packit 2ba279
------
Packit 2ba279
Packit 2ba279
Library (not a plugin) providing utility functions usable for multiple plugins
Packit 2ba279
and any third-party code.
Packit 2ba279
Packit 2ba279
:functions:
Packit 2ba279
   * exec_and_report_error
Packit 2ba279
   * exec_and_capture_output
Packit 2ba279
   * size_human_readable
Packit 2ba279
   * size_from_spec
Packit 2ba279
   * init_logging
Packit 2ba279
   * version_cmp
Packit 2ba279
   * check_util_version