]> sourceware.org Git - lvm2.git/commit
Allow dm-cache cache device to be standard LV
authorDavid Teigland <teigland@redhat.com>
Fri, 17 Aug 2018 20:45:52 +0000 (15:45 -0500)
committerDavid Teigland <teigland@redhat.com>
Tue, 6 Nov 2018 19:44:54 +0000 (13:44 -0600)
commitcac4a9743acb826d785c0e51e9a752d8959ced80
tree2ada17ff904271acb359530aaae015e214287758
parent8c9d9a744605e37799a2475932ae7dfd43831d08
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)
23 files changed:
device_mapper/all.h
device_mapper/libdm-deptree.c
lib/activate/dev_manager.c
lib/activate/dev_manager.h
lib/cache_segtype/cache.c
lib/format_text/flags.c
lib/locking/lvmlockd.c
lib/metadata/cache_manip.c
lib/metadata/lv.c
lib/metadata/lv_manip.c
lib/metadata/merge.c
lib/metadata/metadata-exported.h
lib/report/report.c
test/shell/cache-single-options.sh [new file with mode: 0644]
test/shell/cache-single-thin.sh [new file with mode: 0644]
test/shell/cache-single-types.sh [new file with mode: 0644]
test/shell/cache-single-usage.sh [new file with mode: 0644]
test/shell/lvconvert-cache-raid.sh
test/shell/lvconvert-cache.sh
test/shell/lvrename-cache-thin.sh
tools/lvchange.c
tools/lvconvert.c
tools/vgsplit.c
This page took 0.038144 seconds and 5 git commands to generate.