我已经在两个不同的 Linux 设置中设置了 SCST。配置文件 1:
HANDLER vdisk_fileio {
DEVICE disk01 {
# create mdisk using "fallocate -l 1G test.img"
filename /root/test.bin
}
}
HANDLER vdisk_nullio {
DEVICE disk_null
}
TARGET_DRIVER iscsi {
enabled 1
TARGET iqn.1994-05.com.redhat:867231fb5ac {
# Local IP on which listen to start
allowed_portal 192.168.57.30
allowed_portal 192.168.57.23
QueuedCommands 128
LUN 0 disk01
enabled 1
}
}
配置文件2:
HANDLER vdisk_fileio {
DEVICE disk01 {
filename /root/hello.img
nv_cache 1
}
}
TARGET_DRIVER iscsi {
enabled 1
TARGET iqn.1994-05.com.redhat:831de6212b18 {
allowed_portal 192.168.57.21
QueuedCommands 128
LUN 0 disk01
enabled 1
}
}
当启动器登录到两个设置时,不同设置返回的磁盘的 UUID 相同,启动器将映射的磁盘视为单个磁盘。是否有任何方法可以通过在 scst.conf 文件中添加一些参数来更改 SCST 磁盘的 UUID。我尝试使用 blkid/uuidgen API 更改 UUID,但这要求设备位于 /dev 目录中。
我已经使用 dd 命令来创建两个磁盘。
答案1
文件系统 UUID 在您正在提供服务的两个块设备上都是相同的。这与 SCST 无关(因为您的问题比 SCST 关心的问题高一层),并且在两个卷上都是相同的,因为您使用 1:1 复制了它们的文件系统dd
。
它们被格式化为哪种文件系统类型确实很重要,因为您可以在创建后更改大多数文件系统的 UUID。BTRFS 是一个不支持此操作的文件系统示例,因为它的高级功能广泛使用 UUID。
但是,可以像我上面描述的那样使用类似这样的命令更改 ext4(离线时):。sudo tune2fs /dev/sde5 -U $(uuidgen)
如果您无法对 SCST 端的块设备执行此操作(您必须关闭目标才能解锁块设备),请在启动器上执行此操作。
如果您不想在将来处理这个问题,则需要重新考虑您的dd
方法,并考虑使用基于文件的复制之类的方法来完成您要完成的任务。但是,块复制然后重新标记/重新 uuid 可能会比复制大量小文件更快。