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

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

我们有两台类似的 SLES10SP2 服务器,它们都在同一存储阵列的同一设备上使用多路径。

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

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-* 磁盘设备指向其中一条路径,而不是多路径 dm 设备:

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

这会导致问题,因为某些磁盘配置为使用整个磁盘作为 pv。

我们需要在 server2 上进行哪些更改才能让系统设置所有 scsi-* 链接指向多路径设备而不是单一路径?

答案1

来自文档

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

所以,我会

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

如果所有这些都是真的,您可以尝试kpartx -a在多路径设备上运行,以查看/dev/磁盘/按 ID/已更新。

理顺这些之后,你仍然需要编辑 lvm.conf。同样,从文档

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

答案2

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

这个问题在 SLES10SP3 中通过软件包得到修复udev-085-30.58.3.6.x86_64.rpm

答案3

我将设置过滤规则lvm.conf

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

在此示例中,lvm 使用所有 /dev/md* /dev/sda2 并删除所有其他 /dev/sd* 设备。

相关内容