【问题标题】:Regarding SCSI Reservations关于 SCSI 预留
【发布时间】:2015-05-26 14:18:48
【问题描述】:

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

在 SCSI 2 保留中,LUN 是否可以由具有不同路径的同一主机保留,或者 I-T-L 关系只是一个路径。

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

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

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

【问题讨论】:

  • 我刚刚注意到您的编辑,并在下面回复。通常在 StackOverflow 上,如果您有其他问题 - 即使是同一领域的问题 - 最好将它们作为他们自己的(个人)问题发布。一旦问题的范围太广,答案对其他人就没有那么有用了。当问题和答案具有激光焦点时效果最佳。不过谢谢,请继续提问!

标签: linux storage scsi


【解决方案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 任务管理函数执行 通过任何启动器、硬重置条​​件或通电循环。

【讨论】:

  • 一次只能激活一个路径。听起来不错。但是假设主机从 Target1 Port1 保留了 SCSI 2,如果主机再次尝试从 Target1 Port2 保留相同的 LUN,会导致保留冲突吗?
  • 是的,对于 SCSI-2 (SPC-2) 保留,它会导致冲突。这是一个不同的 I_T_L 关系。这种配置是促使在 SPC-3 中设计持久保留的原因之一。查看 T10 上的此电子邮件线程以获得更多说明:t10.org/t10/t10r/2007/r0701022.htm
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多