/ dev / disk / by-id / scsi- *链接指向sdX而不是多path设备

我们有两台类似的SLES10SP2服务器,它们在同一个存储arrays的相同设备上使用多path

在一台服务器上,/ dev / disk / by-id / scsi- *设备正确指向多path设备:

server1:/dev/disk/by-id # ls -l scsi-* | awk '{print $9,$10,$11;}' scsi-3600a0b80005047d80000050c4933f22c -> ../../dm-1 scsi-3600a0b80005047d80000050c4933f22c-part1 -> ../../dm-2 scsi-3600a0b80005047d80000050c4933f22c-part2 -> ../../dm-3 scsi-3600a0b80005047d80000b0a14dbb20e4 -> ../../dm-0 

另一方面,/ dev / disk / by-id / scsi- *磁盘设备指向其中一个path而不是多pathdm设备:

 server2:/dev/disk/by-id # ls -l scsi-* | awk '{print $9,$10,$11;}' scsi-3600a0b80005047d80000a3464a07f6ee -> ../../dm-1 scsi-3600a0b8000505008000004f84933e183 -> ../../sda scsi-3600a0b8000505008000004f84933e183-part1 -> ../../dm-4 scsi-3600a0b8000505008000004f84933e183-part2 -> ../../dm-5 scsi-3600a0b80005050080000057749352a81 -> ../../sdd scsi-3600a0b80005050080000057749352a81-part1 -> ../../dm-6 scsi-3600a0b80005050080000a7cd4dbb2498 -> ../../sdg 

这会导致问题,因为某些磁盘被configuration为将整个磁盘用作pv。

我们需要在server2上进行更改,让系统将所有scsi- *链接设置为指向多path设备而不是单个path?

从文档 :

在SUSE Linux Enterprise Server 10中,在/etc/init.d/boot.multipath中使用kpartx软件,以将任何新创build的分区的符号链接添加到multipath.confconfiguration文件中的/ dev / dm- *行,而无需重启。 这会触发udevd来填充/ dev / disk / by- *符号链接。

所以,我会的

  1. 检查是否在第二台服务器上运行boot.multipath
  2. 检查两台服务器上的udevconfiguration是否相同
  3. 检查udevd是否在第二台服务器上运行

如果所有这一切都是真的,您可以尝试在多path设备上运行kpartx -a ,以查看/ dev / disk / by-id /中的条目是否已更新。

把这个理清之后,你仍然需要编辑lvm.conf。 再次,从文档 :

默认情况下,LVM2不识别多path设备。 要使LVM2将多path设备识别为可能的物理卷,您必须修改/etc/lvm/lvm.conf。 修改它是非常重要的,以便它不扫描和使用物理path,而只通过多pathI / O层访问多pathI / O存储。 如果使用用户友好的名称,请确保指定path,以便在多path处理后仅扫描设备的设备映射程序名称(/ dev / disk / by-id / dm-uuid -。-mpath-。 )configuration。

事实certificate,这是SLES10SP2中的一个已知问题。

它在SLES10SP3中使用软件包udev-085-30.58.3.6.x86_64.rpm

我会在lvm.conf设置一个过滤规则

 filter =[ "a|/dev/dm|", "a|^/dev/sda2$|", "r|/dev/sd|"] 

在这个例子中,lvm使用所有/ dev / md * / dev / sda2并删除所有其他的/ dev / sd *设备。