我正在使用 RHEL 7.9(Maipo),需要为所有 iSCSI 客户端设置相同的设备名称,例如 /dev/sdb 或 /dev/thiscustomname。
我可以通过使用多路径共享源磁盘来实现这一点,但对于 Db2 pureScale,它不能是符号链接。这是它在客户端 A 和 B 中显示的方式:
Client A:
/dev/sdb mpath_me
└─/dev/mapper/db2data
/dev/sdc mpath_me
└─/dev/mapper/db2tieb
Client B (has 2 more disks than Client A):
/dev/sdd mpath_me
└─/dev/mapper/db2data
/dev/sde mpath_me
└─/dev/mapper/db2tieb
对于 Db2 purScale,当我使用以下命令发出实例创建时:
/opt/ibm/db2/V115fp8ps/instance/db2icrt \
-m n1.local -mnet n1 \
-cf c1.local -cfnet c1 \
-instance_shared_dev /dev/mapper/db2data \
-tbdev /dev/mapper/db2tieb \
-u db2fenc1 db2inst1
错误是
DBI20013E The database product installer detected that the given device path
"/dev/mapper/db2data" is a symbolic link on the host "c1.local".
Db2 pureScale 实例创建抱怨符号链接,所以我不能使用 /dev/disk 中的任何其他条目,因为它们都是符号链接并引发相同的错误:
/dev/disk/by-id
/dev/disk/by-label
/dev/disk/by-partlabel
/dev/disk/by-partuuid
/dev/disk/by-path
/dev/disk/by-uuid
这就是我需要使用设备名称(而不是映射器名称/符号链接)的原因。
是否有可能所有客户端都为这些 iSCSI 远程磁盘设置相同的设备名称,当然,我可以自己设置这些名称/dev/sfa或者与内核为本地磁盘(sda,sdb,sdc 等)设置的磁盘相距甚远的东西?
答案1
您尝试修复的名称不应该在任何现代 Linux 环境中保留。您不应尝试修复它们,而应考虑使用、 或/dev/disk/by-label
中/dev/disk/by-uuid
的任意一个,具体取决于您使用哪种 SAN 来支持此存储。/dev/disk/by-id
/dev/disk/by-path
答案2
似乎我查看了错误的文档和错误的虚拟化选项。IBM Db2 pureScale 功能使用 WWN 编号(在lsblk -a -o WWN
命令中显示)。因此,iSCSI 磁盘是否获得与 /dev/sda 或 /dev/sdb 中相同的设备名称/编号实际上并不重要。
VMWare Workstation Pro 16/17 虚拟化中也存在另一个错误,默认情况下不允许磁盘具有一致的 UUID,因此所有 VM 上的 WWN 编号都相同。要解决此问题,请关闭 VM 并在主 VM 文件(扩展名为 .vmx 的文件)中添加此行:
disk.enableuuid = "TRUE"
保存文件然后重新启动虚拟机。
由于我为每个虚拟机从头创建了所有磁盘,因此我的问题得到了解决。如果您已经克隆了虚拟机和磁盘,则需要找到 VMWare 支持来更改磁盘 UUID。
所以这个问题原来的问题……其实不是一个问题。