Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1882626
  • 博文数量: 1000
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7921
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-20 09:23
个人简介

storage R&D guy.

文章分类

全部博文(1000)

文章存档

2019年(5)

2017年(47)

2016年(38)

2015年(539)

2014年(193)

2013年(178)

分类: 服务器与存储

2014-09-29 14:18:18

原文地址:ErrorRecovery之任务重置 作者:kgd7558

    在 Initiator 处理一个任务时,任务未完成,但中间数据有误了(如CRC失败),可以通过任务重置来本connection 上的该任务分配置到一个新的 connection 中,然后继续完成乘下的数据,免得整个任务重新执行。任务重置属于commond recovery,涉及到多 connection。

    将一个 command 重新分配到一个connection上时,target应该从当前状态继续执行该command。例如,重置read command时, Target应当利用TestManageRequest中ExpDataSN(无数据传送时置0)值,来激活read command发送乘下的数据以及status. ExpDataSN 表示所有已经发送成功的数据pdu号(读时为Data-In中的DataSN, 写时为R2T中的R2TSN),但不包括DataSN等于ExpDataSN 的Data-In PDU,或R2TSN等于ExpDataSN的R2T。Target可以在重新分配的connect上发送或接收所有乘下的数据,当然,如果target无法得到一个准确的任务状态时,可以选择发送或接收所有的数据。Initiator不允许通过Snack请求重传PDU号小于
ExpDataSN的数据。对于所有类型的command,一个重置请求,表明了该任务仍在被initiator处理中,如果Target返回'Function Complete' response时,Target 必须正确地完成该任务,如果须要,可以调用Data/R2T/status 重传,但必须要传输/重传 status PDU.

Read Command 重置过程:

Connect-1:  Read cmd      ---------------->
                          <---------------  Data-In(DataSn=0)
                          <---------------  Data-In(DataSn=1)
           CRC-Error      <---------------  Data-In(DataSn=2)
Connect-2:  Login(MC/s)   ---------------->
                          <---------------  LoginResponse
            Logout        ----------------> Remove connect-1 for recovery
           TaskManagement ----------------> Reassign task (ExpDataSN=2)
                          <---------------  TaskManagementRsp(complete)
                          <---------------  Data-In(DataSn=2)
                          <---------------  Data-In(ststud)

Write Command 重置过程:

Connect-1:  Write cmd     ---------------->
                          <---------------  R2T(R2TSN=0)
            DataOut(SN=0) ---------------->
            DataOut(SN=1) ---------------->
            DataOut(SN=2) ---------------->  CRC-Error
                          <---------------  Reject
Connect-2:  Login(MC/s)   ---------------->
                          <---------------  LoginResponse
            Logout        ----------------> Remove connect-1 for recovery
           TaskManagement ----------------> Reassign task (ExpDataSN=0)
                          <---------------  TaskManagementRsp(complete)
                          <---------------  R2T(R2TSN=0)
            DataOut(SN=0) ---------------->
            DataOut(SN=1) ---------------->
            DataOut(SN=2) ---------------->
            DataOut(SN=3) ---------------->
            DataOut(F)    ---------------->
                          <---------------  Scsi Response
                          <---------------  Data-In(DataSn=2)
                          <---------------  Data-In(ststud)

阅读(1078) | 评论(0) | 转发(0) |
0

上一篇:iSCSI錯誤恢複

下一篇:Windows中MPIO配置

给主人留下些什么吧!~~