We should probably add some especial case for DRBD similar to MDinto lvm code.
But for the time being, you can blacklist underlying device for DRBD,
see lvm.conf filter setting .
When you create new PV on /dev/drbdX device, lvm should see only PV on /dev/drbd and not the underlying device.
(run vgscan ; pvs and you see something like this:
# pvs
PV VG Fmt Attr PSize PFree
/dev/drbd0 vg_test lvm2 a- 1020.00M 620.00M
and no duplicate warnings like
Found duplicate PV TQrcpi4AAEzMGDHYY1cbwsByUkpLuEjj: using /dev/sdf not /dev/drbd0)
Then DRBD PV works as expected. (Your configuration is more complicated, because you are using LV for backend DRBD device - but it still should work with proper filter setting.)
Maybe for testing, explicitly name your PVs in lvm.conf.
For your config it can be:
filter = [ "a/drbd/", "a/sda/", "a/sdb/", "r/.*/" ]
(or similar rule). Then run vgscan to refresh device cache and try again.
We should probably add some especial case for DRBD similar to MDinto lvm code.
But for the time being, you can blacklist underlying device for DRBD,
see lvm.conf filter setting .
When you create new PV on /dev/drbdX device, lvm should see only PV on /dev/drbd and not the underlying device.
(run vgscan ; pvs and you see something like this:
# pvs
PV VG Fmt Attr PSize PFree
/dev/drbd0 vg_test lvm2 a- 1020.00M 620.00M
and no duplicate warnings like YY1cbwsByUkpLuE jj: using /dev/sdf not /dev/drbd0)
Found duplicate PV TQrcpi4AAEzMGDH
Then DRBD PV works as expected. (Your configuration is more complicated, because you are using LV for backend DRBD device - but it still should work with proper filter setting.)
Maybe for testing, explicitly name your PVs in lvm.conf.
For your config it can be:
filter = [ "a/drbd/", "a/sda/", "a/sdb/", "r/.*/" ]
(or similar rule). Then run vgscan to refresh device cache and try again.