Discussion:
[linux-lvm] Again: duplicate PVs - filter rules
k***@knebb.de
2017-01-14 05:41:47 UTC
Permalink
Hi all,

I thought my filter rules where fine now. But they are not.

I have in /etc/lvm/lvm.conf:

filter = [ "r|/dev/sdb|","r|/dev/sdc|" ]

I scan my PVs:

[***@backuppc ~]# pvscan --cache
WARNING: PV AvK0Vn-vAdJ-K4nf-0N1x-u1fR-dlWG-dJezdg on /dev/sdc was
already found on /dev/drbd1.
WARNING: Disabling lvmetad cache which does not support duplicate PVs.
WARNING: Not using lvmetad because duplicate PVs were found.
[***@backuppc ~]# pvscan
WARNING: PV AvK0Vn-vAdJ-K4nf-0N1x-u1fR-dlWG-dJezdg on /dev/sdc was
already found on /dev/drbd1.
WARNING: Disabling lvmetad cache which does not support duplicate PVs.
WARNING: Not using lvmetad because duplicate PVs were found.
PV /dev/sda2 VG cl lvm2 [15,00 GiB / 0 free]
PV /dev/drbd1 VG test lvm2 [3,00 GiB / 0 free]
Total: 2 [17,99 GiB] / in use: 2 [17,99 GiB] / in no VG: 0 [0 ]

So question again, why does it accept my /dev/sdc as PV discarding
filter rules?


/Greetings


Christian
Zdenek Kabelac
2017-01-14 09:26:04 UTC
Permalink
Post by k***@knebb.de
Hi all,
I thought my filter rules where fine now. But they are not.
filter = [ "r|/dev/sdb|","r|/dev/sdc|" ]
WARNING: PV AvK0Vn-vAdJ-K4nf-0N1x-u1fR-dlWG-dJezdg on /dev/sdc was
already found on /dev/drbd1.
WARNING: Disabling lvmetad cache which does not support duplicate PVs.
WARNING: Not using lvmetad because duplicate PVs were found.
WARNING: PV AvK0Vn-vAdJ-K4nf-0N1x-u1fR-dlWG-dJezdg on /dev/sdc was
already found on /dev/drbd1.
WARNING: Disabling lvmetad cache which does not support duplicate PVs.
WARNING: Not using lvmetad because duplicate PVs were found.
PV /dev/sda2 VG cl lvm2 [15,00 GiB / 0 free]
PV /dev/drbd1 VG test lvm2 [3,00 GiB / 0 free]
Total: 2 [17,99 GiB] / in use: 2 [17,99 GiB] / in no VG: 0 [0 ]
So question again, why does it accept my /dev/sdc as PV discarding
filter rules?
'pvscan --cache' is different from other lvm commands - it controls filling
of 'lvmetad' from udev rules.

So if you plan to use lvmetad - you need to have uniqueness on 'global' level.

So that's why there is global_filter.

So you should copy your filter to global_filter.

Regards


Zdenek
k***@knebb.de
2017-01-14 09:50:57 UTC
Permalink
Thanks!

To be honest, I was not aware of global filters. And not aware of using
lvmetad, but it is enabled by default (CentOS7).

So I added the global_filter and now everything is fine:

global_filter = [ "r|/dev/sdb|","r|/dev/sdc|" ]

Greetings


Christian

Loading...