两个独立的 Linux SCST 设置生成相同的 UUID

两个独立的 Linux SCST 设置生成相同的 UUID

我已经在两个不同的 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 可能会比复制大量小文件更快。

相关内容