一种SAS存储系统磁盘异常处理方法和装置与流程

文档序号:36647783发布日期:2024-01-06 23:31阅读:24来源:国知局
一种SAS存储系统磁盘异常处理方法和装置与流程

本发明属于磁盘存储设计领域,特别涉及一种sas存储系统磁盘异常处理方法。


背景技术:

1、在sas(串行连接scsi)存储系统架构中,sas i/o控制器与软件配合,用于完成存储系统的磁盘管理、i/o的管理和收发、sas协议的处理等事务。sas i/o控制器可以实现在hba/raid卡。hba(host bus adapter,总线适配器)和raid(磁盘冗余阵列)通常作为主机和外围存储设备之间连接的桥梁,不仅可以扩展服务器外围存储设备连接的数量,而且能够支持不同接口协议之间的转换,丰富了服务器系统的功能,同时满足了多样化系统应用场景。典型的sas存储系统如图1所示。磁盘阵列系统中的expander即扩展器,负责路由交换以及业务转发的功能。

2、如图2所示,在sas存储系统中,sas i/o控制器从软件构造命令开始到经过sas控制器将i/o下发到磁盘,然后从磁盘返回响应再回到软件,整个数据通路需要经过多级模块的处理。为了提高性能,sas i/o都是并发设计的,所以在sas i/o数据通路上的多个处理环节都设置有i/o缓存,用于保存执行中的i/o信息,包括磁盘侧,也存在很多待执行的i/o指令。同时,sas控制器中还管理系统中的所有磁盘设备信息。

3、在sas i/o执行过程中,可能会因为链路异常或者其他原因发生异常。在sas协议中,定义了abort task和abort task set两种指令。当某个i/o出现异常时,软件可通过abort task来执行异常处理,磁盘收到abort task指令时,将磁盘中残留的异常目标指令清除,i/o通路上的各个环节也需要将异常目标指令执行清除动作,然后将abort task应答给应用层软件;当磁盘的某个task set发生异常时,通过abort task set来执行异常处理,处理流程与abort task类似,区别在于针对的磁盘task set内对应的所有i/o。在这个过程中,需要回收对应异常i/o的相关资源,包括相应的iptt号(initiator port transfertag,即command id,表示i/o的标记)、上下文缓存、i/o缓存等资源,最后恢复对磁盘的正常访问。

4、然而,通过上述两条指令执行异常处理必须满足的前提条件是,磁盘还能与hba卡进行正常通信。如果发生拔盘或者换盘的动作,则无法通过abort task和abort task set来执行i/o资源的回收。因此在执行磁盘热插拔或者换盘操作时,软件需要执行一些操作来满足两个关键的要求。第一,需要避免旧的i/o下发到新的磁盘上。第二,缓存在数据通路上的原磁盘的所有i/o资源都需要回收。

5、针对第一个要求,现有技术中,在软件检测到掉盘之后,将目标磁盘置为无效的方式来避免旧磁盘的i/o继续下发到链路上。针对第二个要求,传统的sas协议没有定义回收磁盘i/o的指令,通常做法是等待链路上的i/o都按照正常流程执行完成,通过自然排空的方式完成i/o回收。但是这种方法存在的以下不足。首先是效率太低,等待i/o自然排空的时间较长,且无法预测。其次,在盘侧的i/o可能无法自然回收,需要等待i/o超时。图3示出了以上常规处理流程。

6、鉴于以上问题,软件处理该异常时,处理流程将会比较复杂和被动。


技术实现思路

1、本发明的目的在于提供一种sas存储系统磁盘异常处理方法和装置,旨在解决磁盘异常情况下的i/o回收效率较低和处理流程复杂的问题。

2、根据本发明的第一方面,提供了一种sas存储系统磁盘异常处理方法,包括:

3、检测sas存储设备的状态,当满足发起sas存储设备终止指令的条件时,通过应用层软件将所述sas存储设备终止指令下发到所述hba;

4、响应于所述hba接收到所述sas存储设备终止指令,清空所述sas存储设备对应的i/o缓存,回收所述sas存储设备对应i/o的硬件资源,并向所述应用层软件返回所述sas存储设备终止指令的执行结果。

5、优选地,所述sas存储设备终止指令是目标磁盘终止指令,并且所述发起sas存储设备终止指令的条件包括以下任一项:

6、当目标磁盘发生异常,应用层软件需要对已经下发的所述目标磁盘对应的所有i/o执行abort操作时;

7、当应用层软件需要将所述目标磁盘从存储系统中删除时;或

8、当应用层软件需要执行换盘操作时。

9、优选地,所述清空所述sas存储设备对应的i/o缓存,回收所述sas存储设备对应i/o的硬件资源,进一步包括:

10、扫描sas控制器内部缓存,清空所述目标磁盘的所有i/o,回收对应于所述目标磁盘的每个i/o的硬件资源;

11、将所述目标磁盘的所有i/o状态应答给应用层软件,以通知应用层软件回收对应于所述目标磁盘的所有i/o的软件资源;

12、判断所述目标磁盘的所有i/o是否清空完毕,若否,返回继续执行清空操作。

13、优选地,所述sas存储设备终止指令是目标端口终止指令,并且所述发起sas存储设备终止指令的条件包括以下任一项:

14、当目标端口发生异常,应用层软件需要对已经下发的所述目标端口下所有磁盘对应的所有i/o进行终止执行和回收操作时;

15、当应用层软件需要将所述目标端口从存储系统中删除时;或

16、当应用层软件需要执行端口切换操作时。

17、优选地,所述清空所述sas存储设备对应的i/o缓存,回收所述sas存储设备对应i/o的硬件资源,进一步包括:

18、扫描sas控制器内部缓存,清空所述目标端口下所有磁盘的对应i/o,回收对应于所述目标端口下所有磁盘的每个i/o的硬件资源;

19、将所述目标端口的所有i/o状态应答给应用层软件,以通知应用层软件回收对应于所述目标端口下所有磁盘的所有i/o的软件资源;

20、判断所述目标端口下的所有i/o是否清空完毕,若否,返回继续执行清空操作。

21、根据本发明的第二方面,提供了一种sas存储系统磁盘异常处理装置,包括:

22、终止指令下发单元,用于检测sas存储设备的状态,当满足发起sas存储设备终止指令的条件时,通过应用层软件将所述sas存储设备终止指令下发到所述hba;

23、异常处理单元,用于响应于所述hba接收到所述sas存储设备终止指令,清空所述sas存储设备对应的i/o缓存,回收所述sas存储设备对应i/o的硬件资源,并向所述应用层软件返回所述sas存储设备终止指令的执行结果。

24、优选地,所述sas存储设备终止指令是目标磁盘终止指令,并且所述发起sas存储设备终止指令的条件包括以下任一项:

25、当目标磁盘发生异常,应用层软件需要对已经下发的所述目标磁盘对应的所有i/o执行abort操作时;

26、当应用层软件需要将所述目标磁盘从存储系统中删除时;或

27、当应用层软件需要执行换盘操作时。

28、优选地,所述异常处理单元进一步用于:

29、扫描sas控制器内部缓存,清空所述目标磁盘的所有i/o,回收对应于所述目标磁盘的每个i/o的硬件资源;

30、将所述目标磁盘的所有i/o状态应答给应用层软件,以通知应用层软件回收对应于所述目标磁盘的所有i/o的软件资源;

31、判断所述目标磁盘的所有i/o是否清空完毕,若否,返回继续执行清空操作。

32、优选地,所述sas存储设备终止指令是目标端口终止指令,并且所述发起sas存储设备终止指令的条件包括以下任一项:

33、当目标端口发生异常,应用层软件需要对已经下发的所述目标端口下所有磁盘对应的所有i/o进行终止执行和回收操作时;

34、当应用层软件需要将所述目标端口从存储系统中删除时;或

35、当应用层软件需要执行端口切换操作时。

36、优选地,所述异常处理单元进一步用于:

37、扫描sas控制器内部缓存,清空所述目标端口下所有磁盘的对应i/o,回收对应于所述目标端口下所有磁盘的每个i/o的硬件资源;

38、将所述目标端口的所有i/o状态应答给应用层软件,以通知应用层软件回收对应于所述目标端口下所有磁盘的所有i/o的软件资源;

39、判断所述目标端口下的所有i/o是否清空完毕,若否,返回继续执行清空操作。

40、相比于现有技术,本发明的技术方案通过自定义abort local by disk和abortlocal by port的硬件处理方式,基于磁盘或者基于端口的i/o异常处理时间由秒级提升到最大为毫秒级,使得异常处理效率显著提高,而且可以保证目标设备的i/o已经完全清理,不需要通过超时和扫描查询的方式来处理异常i/o,显著简化了软件处理流程。

41、本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1