summaryrefslogtreecommitdiff
path: root/device_mapper/all.h
diff options
context:
space:
mode:
authorDavid Teigland <teigland@redhat.com>2018-08-17 15:45:52 -0500
committerDavid Teigland <teigland@redhat.com>2018-11-06 13:44:54 -0600
commitcac4a9743acb826d785c0e51e9a752d8959ced80 (patch)
tree2ada17ff904271acb359530aaae015e214287758 /device_mapper/all.h
parent8c9d9a744605e37799a2475932ae7dfd43831d08 (diff)
downloadlvm2-cac4a9743acb826d785c0e51e9a752d8959ced80.tar.gz
Allow dm-cache cache device to be standard LV
If a single, standard LV is specified as the cache, use it directly instead of converting it into a cache-pool object with two separate LVs (for data and metadata). With a single LV as the cache, lvm will use blocks at the beginning for metadata, and the rest for data. Separate dm linear devices are set up to point at the metadata and data areas of the LV. These dm devs are given to the dm-cache target to use. The single LV cache cannot be resized without recreating it. If the --poolmetadata option is used to specify an LV for metadata, then a cache pool will be created (with separate LVs for data and metadata.) Usage: $ lvcreate -n main -L 128M vg /dev/loop0 $ lvcreate -n fast -L 64M vg /dev/loop1 $ lvs -a vg LV VG Attr LSize Type Devices main vg -wi-a----- 128.00m linear /dev/loop0(0) fast vg -wi-a----- 64.00m linear /dev/loop1(0) $ lvconvert --type cache --cachepool fast vg/main $ lvs -a vg LV VG Attr LSize Origin Pool Type Devices [fast] vg Cwi---C--- 64.00m linear /dev/loop1(0) main vg Cwi---C--- 128.00m [main_corig] [fast] cache main_corig(0) [main_corig] vg owi---C--- 128.00m linear /dev/loop0(0) $ lvchange -ay vg/main $ dmsetup ls vg-fast_cdata (253:4) vg-fast_cmeta (253:5) vg-main_corig (253:6) vg-main (253:24) vg-fast (253:3) $ dmsetup table vg-fast_cdata: 0 98304 linear 253:3 32768 vg-fast_cmeta: 0 32768 linear 253:3 0 vg-main_corig: 0 262144 linear 7:0 2048 vg-main: 0 262144 cache 253:5 253:4 253:6 128 2 metadata2 writethrough mq 0 vg-fast: 0 131072 linear 7:1 2048 $ lvchange -an vg/min $ lvconvert --splitcache vg/main $ lvs -a vg LV VG Attr LSize Type Devices fast vg -wi------- 64.00m linear /dev/loop1(0) main vg -wi------- 128.00m linear /dev/loop0(0)
Diffstat (limited to 'device_mapper/all.h')
-rw-r--r--device_mapper/all.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/device_mapper/all.h b/device_mapper/all.h
index e56bae979..0f01075ac 100644
--- a/device_mapper/all.h
+++ b/device_mapper/all.h
@@ -912,6 +912,10 @@ int dm_tree_node_add_cache_target(struct dm_tree_node *node,
const char *origin_uuid,
const char *policy_name,
const struct dm_config_node *policy_settings,
+ uint64_t metadata_start,
+ uint64_t metadata_len,
+ uint64_t data_start,
+ uint64_t data_len,
uint32_t data_block_size);
/*