To fix this i restricted lvm to only use sda (documented in lvm.conf). If you are stuck at the vgscan stage
Reading all physical volumes. This may take a while...
Then you probably need to do something similar to this.
devices {
dir = "/dev"
scan = [ "/dev" ]
preferred_names = [ ]
filter = [ "a|/dev/sda.*|", "r|.*|" ]
}
The filter line is the important one. After that you'll need to rebuild initrd to pickup the modified lvm.conf. I usually cheat and use the kernel's method for that.
[root@server0 lvm]# rpm -q kernel --scripts |grep mkinitrd
/sbin/new-kernel-pkg --package kernel --mkinitrd --depmod --install 2.6.18-128.1.16.el5 || exit $?
[root@server0 lvm]#
Hope that helps.
On our kvm hypervisor we have several vm's using fibre channel for storage. The hypervisor has to see all the devices, but each device has it's own lvm so when the hypervisor boots, it tries to read all of them.