[linux-lvm] Question about vgreduce on raid lvm cache

Heming Zhao heming.zhao at suse.com
Fri Nov 29 08:35:12 UTC 2019


Hello list,

I met a lvm cache issue recently.

The machine had an LVM VG configured with:
  dev1 + dev2 -> data_lv with raid 1 mirror
  dev3 + dev4 -> data_cache_lv with raid 1 mirror and type cache

These were assembled to a cached volume with:
"lvconvert --type cache --cachemode writeback --cachepool data/data_cache_lv data/data_lv"

The device dev4 then died and was removed from the system.

When attempting to remove the device using "vgreduce --removemissing", lvm removed both data_cache_lv and data_lv from the data vg.

This is unexpected behaviour, as dev1, dev2, dev3 were all still present.
The expected behaviour should:
```
vgreduce --removemissing
lvconvert -m0 system/lv
```

When it's a non-cached type, and you performe vgreduce, lvs are NOT removed.

the (reproduced) command list:
```
pvcreate /dev/mapper/dev1 /dev/mapper/dev2 /dev/mapper/dev3 /dev/mapper/dev4
vgcreate VG /dev/mapper/dev1 /dev/mapper/dev2 /dev/mapper/dev3 /dev/mapper/dev4
lvcreate --type raid1 -m 1 -L150 -n data_lv VG /dev/mapper/dev1 /dev/mapper/dev2
lvcreate --type raid1 -m 1 -L150 -n data_cache_lv VG /dev/mapper/dev3 /dev/mapper/dev4
lvconvert --type cache --cachemode writeback --cachepool VG/data_cache_lv VG/data_lv
dmsetup remove -f dev4
vgreduce --removemissing --force VG
```

Thanks.




More information about the linux-lvm mailing list