我的服务器是一个在惠普刀片(x64)上的OracleEnterpriseLinux5.4(X64),它的qlogic连接到EMC clariion上。
我们正在从多路径迁移到powerpath,因为emc和公司存储团队将不支持多路径。
目前,我的3个lvm卷组正在使用设备映射器/多路径创建的/dev/dm设备:
(实验1)我关闭multipathd并在check配置中禁用它,然后将以下过滤器添加到lvm.conf中。
filter = [ "a|/dev/emc.*|", "a|/dev/cciss.*|", "r/.*/" ]当我重启时:
vg01在其emcpower磁盘上未被检测到,尽管我可以看到带有dd的lvm头内容。另外两个VGs被检测到了。此外,所有dm设备仍然在/dev/中。
(2)因此,我删除了过滤器,并启用了multipath.conf中的所有黑名单:
blacklist {
devnode "*"
}现在,在重新引导时,/dev/中不再有dm设备,并且在它们的emcpower设备上可以找到vg02和vg03,但是vg01仍然无法检测到。
(3)我使用过滤器和黑名单重新启动,结果表明vg01是无法检测的,但是vg02和vg03很好。
有人能帮我找出为什么如果没有设备映射器/多路径,这个卷组似乎是无法检测的吗?
有人能解释一下lvm、设备映射器和多路径之间的关系吗?
发布于 2012-05-19 02:18:03
我目前无法访问EMC设备来验证这一点,但我必须在以前的几个工作中设置它。如果我没记错的话,您必须使用以下过滤行: filter=“R/sd. /”、“A/.” this移除任何sd设备(sda、sdb等),然后允许所有其他设备。当然,如果您从一个显示为/dev/sda的内部磁盘启动,那么您必须指定: filter=["r/sdb-z./“、"a/./"]或类似的东西。
编辑:我在我以前的笔记中找到了一个配置行(我认为这是针对RHEL 4的,但应该仍然有效);这个过滤器是针对一个从内部raid控制器(cciss)启动的HP服务器的,并且有用于数据驱动器的Powerpath:
filter = [ "a|^/dev/cciss/.*|", "a|^/dev/emcpower.*|", "a|^/dev/loop.*|", "r /.*/" ]
因此,这将接受cciss设备、emcpower、任何回送设备,并拒绝所有其他(regex规则适用于这里)。
要回答问题的最后一部分,当LVM进行扫描时,它会在/proc/分区中查找与其接受/拒绝过滤器匹配的任何设备,并扫描那些块设备以查找LVM头。它为特定的LVM卷头找到的第一个块设备是使用的。现在,对于SAN,/dev/sda和/dev/sdg (例如)都映射到相同的数据,/dev/emcpowera也是如此(命令“”应该为您提供适当的映射)。希望这能帮上忙。
https://serverfault.com/questions/387172
复制相似问题