[发明专利]一种存储双控制器间scsi命令同步方法有效
申请号: | 201510509850.9 | 申请日: | 2015-08-19 |
公开(公告)号: | CN105183568B | 公开(公告)日: | 2018-08-07 |
发明(设计)人: | 吴登勇;李丽;刘维霞 | 申请(专利权)人: | 山东超越数控电子有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 张靖 |
地址: | 250100 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种存储双控制器间scsi命令同步方法,通过在控制器收到scsi命令及执行scsi命令之前,对scsi命令进行重排序,保证对同一lun的scsi命令的有序执行。其实现分为scsi命令预处理及scsi命令执行两部分:scsi命令预处理部分根据多路径软件的io队列对scsi命令进行编号,然后将该编号封装至scsi命令的第一个数据包传输至target端,从而保证了由scsi initiator端发出的io请求统一编号和有效传输。控制器收到scsi命令之后进行scsi命令的同步并记录相关scsi命令供scsi命令执行使用;scsi命令执行部分:在执行scsi命令之前,先查找相关的scsi命令是否完成,如果未完成则触发相关命令执行并阻塞,等待相关命令执行完成后再执行当前命令。本发明解决了对双控制器对称式双活方案中的scsi命令同步问题。 | ||
搜索关键词: | 一种 存储 控制器 scsi 命令 同步 机制 | ||
【主权项】:
1.一种存储双控制器间scsi命令同步方法,其特征在于:所述同步方法在双控制器间加入scsi命令同步模块,该模块在控制器收到scsi命令及执行scsi命令之前,对scsi命令进行重排序以保证对同一lun的scsi命令的有序执行;所述同步方法的实现分为scsi命令预处理及scsi命令执行两部分,其中:scsi命令预处理部分:根据多路径软件的io队列对scsi命令进行编号,然后将该编号封装至scsi命令的第一个数据包传输至target端,通过该方式保证由scsi initiator端发出的io请求统一编号;控制器收到scsi命令之后首先发送至对端一份,并接收对端scsi命令,接收后加入到本地scsi命令链表并标记为对端命令;控制器获取总的scsi命令链表后,检查总命令链表中是否有未到达的scsi命令,如果有未到达的scsi命令需阻塞等待,此处必须等到所有scsi命令到达,否则无法确认未到达命令是否与当前scsi命令有次序问题;控制器获取到总的scsi命令后,比较当前scsi命令与之前的scsi命令的lun号是否一致,然后由LBA号及length计算当前及之前scsi命令操作的扇区范围,比较当前与之前scsi命令操作的扇区是否有重叠,通过此方式找出相关scsi命令并记录供scsi命令执行使用;scsi命令执行部分:在执行scsi命令之前,先查找相关的scsi命令是否完成,如果未完成则触发相关命令执行并阻塞,等待相关命令执行完成后再执行当前命令,从而保证对同一lun的scsi命令的有序执行的处理方式。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东超越数控电子有限公司,未经山东超越数控电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510509850.9/,转载请声明来源钻瓜专利网。