【问题标题】:SCSI persistent reservation in iSCSIiSCSI 中的 SCSI 持久保留
【发布时间】:2015-11-16 22:10:05
【问题描述】:

在 iSCSI 中,启动器端口 ID 定义为: iSCSI_Name,i,Initiator_Session_Id

目标端口id定义为: iSCSI_Name,t,Target_Portal_Group_Tag

在发起者发出“PR In - Reserve”SCSI 命令后,与 I_T 关系相关的上述信息将被永久保存。如果服务器发生崩溃,发起者重新登录后,发起者很可能会得到一个新的 Initiator_Session_Id。如果是这样,发起者(或任何已注册的发起者)将如何清除保留?

谢谢你, 艾哈迈德。

【问题讨论】:

    标签: scsi iscsi


    【解决方案1】:

    如果“服务器崩溃”是目标端崩溃,那么 iSCSI 启动器通常会使用相同的会话 ID 重新建立会话。Linux 和 Windows 启动器的行为是这样的。很大一部分iSCSI 的弹性在于它能够独立于传输协议恢复会话状态。在这种情况下,不需要清除保留;发起者保留它。

    如果崩溃发生在发起方,那么您是对的,除非会话被持久记录(在 Linux 上不是),否则会话会获得一个新的会话 ID。此时,PERSISTENT RESERVE OUT - PREEMPTPREEMPT AND ABORT 命令就派上用场了。使用持久保留作为协调对共享存储的访问的一种方式的集群都必须处理需要接管由另一个发起人。这是 SPC-4 草案中关于命令的内容:

    应用程序客户端可以抢占持久保留 通过发出 PERSISTENT RESERVE OUT 的另一个持久保留 带有 PREEMPT 服务操作或 PREEMPT AND ABORT 服务的命令 具有以下参数的操作:

    a) RESERVATION KEY 字段设置为保留键的值 向 I_T 关系的逻辑单元注册;

    b) SERVICE ACTION RESERVATION KEY 字段设置为 要被抢占的持久保留的保留键;和

    c) 设置 TYPE 字段和 SCOPE 字段来定义一个新的持久化 预订。创建的持久保留的范围和类型 抢占式 I_T 关系可能不同于 永久保留被抢占。

    在这里,您的发起者会出现,并执行PERSISTENT RESERVE OUT - REGISTER 命令来注册其关系。然后,它调用PERSISTENT RESERVE IN - READ RESERVATIONREAD KEYS 或者只是READ FULL STATUS 来检索持有保留的发起者的密钥。最后,它执行PREEMPT AND ABORT 将旧保留移至其新关系。

    来源:(需要注册)http://www.t10.org/cgi-bin/ac.pl?t=f&f=spc4r35a.pdf(如果您在网上搜索 spc4.pdf,您无疑会找到无需注册的版本。)

    【讨论】:

    • 这也取决于您最初的预订类型。如果您有一个组预留,那么如果他知道密钥,那么“新”发起者(重新启动后)可以操纵预留。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    相关资源
    最近更新 更多