iSCSI 设备映射到不同的 SCSI 设备

iSCSI 设备映射到不同的 SCSI 设备

我有一个连接到服务器(Ubuntu)的 iSCSI 磁盘阵列。当我登录时

iscsiadm -m node --login -p 192.168.1.240

该设备过去显示为 /dev/sdb。我使用 /dev/sdb 使用 LVM 创建了一个卷组,并最终在其上创建了 ext4 分区。重新启动后,设备显示为 /dev/sdd,并且我无法再挂载我创建的任何分区。 vgscan 可以看到 VG(称为 a),但映射到分区的设备给出错误:

vgscan
...
/dev/dm-9: read failed after 0 of 4096 at 4096: Input/output error
Found volume group "a" using metadata type lvm2

我本以为系统能够自行应对这样的变化(通过设备的 uuid),但我显然错过了一些东西。所以我的问题是:

  • 有没有办法强制我的 iSCSI 设备返回到 /dev/sdb?
  • 如果没有,有没有办法让我的 dev/dm-n 设备使用 /dev/sdd
  • 什么是有效的方法呢?我今天学会了如何让我的 iSCSI 设备以相同的名称出现(例如 /dev/iscsi/array):这是我应该做的吗?据我所知,iSCSI 设备没有出现在同一个 /dev/sdx 设备上的问题没有在任何地方提到,所以也许我遗漏了其他东西。

添加: 重启机器即可达到预期效果。该设备重新出现在正确的位置。问题仍然存在:如果有人有任何指示以便能够回答他们,我将不胜感激。

答案1

经过进一步研究后,我正在回答我自己的问题。

  • 首先,据我所知,无法影响给定 SCSI 设备将出现在哪个 sdx 设备上。该决定由内核做出。正如 Andreas Florath 指出的,一种解决方案是使用更永久的名称。所以第一个问题的答案是否定的。
  • 如果设备已更改名称并且出现 dm-n 错误,请刷新卷组,vgchange VGNAME --refresh错误就会消失。现在您可以像以前一样安装逻辑卷。
  • 解决该问题的一种可靠方法是在开始使用 LVM 之前识别持久设备 ID。然而,uuid 类型的名称并不是最方便使用的。然后按照此处给出的食谱进行操作http://jablonskis.org/2011/persistent-iscsi-lun-device-name/让 udev 创建一个类似 /dev/iscsi/NAME 的名称。

答案2

不要使用/dev/sdX此类用途的驱动器名称。正如您所发现的,它们可能(并且将会)一次又一次地改变。

看一下/dev/disk/by-id目录。这里的条目是唯一的,并且即使在重新启动后也保持不变,因为信息仅从磁盘获取。

相关内容