如何使 dmsetup 更改永久生效?

如何使 dmsetup 更改永久生效?

完整案例如下:

  • 我从 SAN 盒连接了一个 LUN(iscsi 配置已正确完成)
  • 一旦我重新启动 open-iscsi 守护程序,LUN 就会连接,并且它的名称将显示在/dev/mapper类似于以下字符串的位置:360060e80104dac0004f349c800000001

现在我不想使用这个字母数字,我需要一个合适的助记符。因此,我使用 dmsetup 命令如下: # dmsetup rename 360060e80104dac0004f349c800000001 datastore

并且datastore/dev/mapper 下会出现一个指向 dm 设备的链接。问题解决了,直到下次重新启动。助记符datastore消失了,上面的字母数字再次出现在 /dev/mapper 下。

我如何使此更改永久生效?

答案1

考虑通过引用 LUN,/dev/disk/by-{id,path,uuid}而不是每次都尝试重命名 WWN。

或者,您可以制定一条 udev(7) 规则,根据与您的 WWN 相关的属性,创建一个/dev代表块设备的静态节点。您可以使用 udevadm(8) 获取所有属性。一个好的起点是ID_WWN_WITH_EXTENSION

ENV{ID_WWN_WITH_EXTENSION}=="360060e80104dac0004f349c800000001", SYMLINK+="iscsi/datastore"

这会在 /dev/iscsi/datastore 创建一个指向您的 iscsi LUN 的符号链接。

答案2

在以下位置添加 dmsetup 重命名条目/etc/rc.local

echo "dmsetup rename 360060e80104dac0004f349c800000001 datastore" >> /etc/rc.local

答案3

您没有提供操作系统的具体信息。但是,大多数现代操作系统都支持 udev,这是完成您尝试操作的一种非常好的方法。

将 lun 分配给系统后,只需获取磁盘的 scsi_id。您需要安装 sg3_utils 包。我说的是 Red Hat 和衍生术语。

/sbin/scsi_id --page=0x83 --whitelisted /dev/sdX

将 sdx 替换为 sda 或 sdb 或其他。

现在,您有了 scsi_id,请在/etc/udev/ruls.d目录中写入 udev 规则。

KERNEL="sd*", BUS=="SCSI", PROGRAM=="/sbin/scsi_id -gus /dev/sd*", RESULT=="XXXX", SYMLINK+="datastore", OWNER=="username", GROUP=="groupname", MODE="0664"

我根据记忆想出了这个规则,但语法应该是正确的。

此后重新启动 udev,或者更好的办法是重新启动。

相关内容