1

我正在尝试编写一个程序来阻止使用 SCSI 2 保留的 LUN。

在 SCSI 2 保留中,LUN 是否可以由具有不同路径的同一主机保留,或者 ITL 连接只是单个路径。

例如:假设主机尝试从同一目标保留已保留的 LUN,但使用目标的不同端口。这可能吗?

基本上,LUN 保留仍然是同一台主机,但来自不同的路径。

[编辑] 对于上述问题,我已经得到了所需的答复,但还有另一个问题。假设主机在 LUN X 上有保留,连接断开或主机发出注销。预订会发生什么?是依靠主机驱动程序来清除保留并清除其数据,还是保留保留与其他主机尝试保留相同的 LUN 时会发生冲突。我尝试用谷歌搜索,但找不到与此问题相关的规格。

4

1 回答 1

1

每个 I_T_L 联结都是一条路径。当您使用 SPC-2 中描述的 RESERVE(6) 或 RESERVE(10) 命令时,这就是您要保留的内容。因此,一次只能激活一条路径。如果这就是你想要的,那么你很好!(编辑:需要明确的是,第二个发出 RESERVE 的 I_T_L 关系会发生预留冲突。)

如果您的启动器和目标可以处理它,SPC-3 中的 PERSISTENT RESERVE/RELEASE 命令会提供更大的灵活性。您可以向 LU 注册每个关联,然后设置“仅限注册人的独占访问权限”保留,阻止其他所有人访问,但允许已注册的关联。

这方面的一个例子可以在 Redhat 集群软件中使用的 SCSI 围栏脚本中的错误描述中看到。现有解决方案无法与多路径 I/O 互操作,因为冗余路径不断遇到预留冲突。解决方案是注册所有路径: https ://bugzilla.redhat.com/show_bug.cgi?id=661134

[编辑] 回答您的附加问题:如果连接断开,则仍保留预订。来自 SPC-2:

该命令应请求保留整个逻辑单元以供发起者独占使用,直到该保留被来自同一发起者的另一个有效 RESERVE 命令取代,或直到被来自作出保留的同一发起者的 RELEASE 命令释放,由TARGET RESET 任务管理功能由任何启动器、硬复位条件或通电循环执行。

于 2015-05-27T14:31:48.493 回答