一种SATA设备热插拔管理方法和装置与流程

文档序号:27511554发布日期:2021-11-22 17:24阅读:262来源:国知局
一种SATA设备热插拔管理方法和装置与流程
一种sata设备热插拔管理方法和装置
技术领域
1.本发明属于磁盘连接技术领域,特别涉及一种sata设备热插拔管理方法和装置。


背景技术:

2.sata(serial ata)是一种高速串行总线,采用点对点的传输方式,内置数据/命令校验单元,纠错能力强,支持热插拔,具有管脚数量少、数据传输速率快、可靠性高、兼容性好等特性,目前被业界广泛用于存储设备和主机之间的主要i/o接口。
3.sas(串行连接scsi)作为新一代scsi技术,类似sata技术同样采用串行接口以获得更高的传输速度。同时,sas设计考虑向下兼容sata技术,通过stp协议(sata通道协议)实现sas控制器和sata设备之间的互联和数据传输。
4.典型的sas数据存储拓扑结构中,sas控制器通过一级或者多级expander(磁盘扩展器)扩展支持大规模磁盘的管理。sas expander中通常集成了stp sata桥,完成sas协议到sata协议的转换,以兼容sata磁盘设备连接。图1描述了sas控制器和多个sata设备互联时的主要组件,其中sas控制器c1是控制命令和数据读写命令的发起者,负责管理整个存储系统的拓扑结构,发出磁盘数据读写命令,接收设备响应;sas expander即c2用于扩展存储系统的拓扑结构,内部集成stp sata桥以兼容sata设备连接;stp sata桥c2.1完成sas标准中stp协议到sata协议的转换,帮助sata设备接入sas系统;sata磁盘存储设备c3用于存储业务数据;连接l1和l2分别为sas标准物理连接和sata标准物理连接。
5.在服务器级的数据存储应用中,为了保障系统数据服务的持续性和鲁棒性,通常需要整个sas系统中的sas和sata磁盘设备具备动态热插拔特性。即在整个存储系统运行时刻,希望不掉电关断的情况下,根据业务需要随时拔插、更换sas或sata磁盘设备。因此,在系统高吞吐率的i/o数据交互过程中,确保sas或sata磁盘设备的热插拔场景下数据的有效性、正确性和完整性对于数据存储业务至关重要。
6.然而现有技术的动态热插拔过程中存在着数据业务错误风险。具体地,参见图2,主机系统内部sas控制器通过两级expander扩展连接sata磁盘和sas磁盘设备。以下以更换sata磁盘设备为例,描述整个连接中典型的消息传递流程:
7.步骤s1:将sata磁盘设备a从expander l2的下游端口移除,准备替换为新的sata磁盘设备b;
8.步骤s2:下游expander l2的stp sata桥硬件物理层检测到sata磁盘设备连接丢失,通知expander内部系统固件程序。固件程序记录设备连接丢失事件的端口和详细信息,并向expander l2的上游端口发送广播(broadcast)原语;
9.步骤s3:上游expander l1接收到下游expander l2的广播原语,记录接收到广播原语的下游端口信息,并向expander l1上游端口传递广播原语;
10.步骤s4:主机内部的sas控制器收到expander l1的广播原语,感知到下游expander l2有事件发生。控制器向主机内部处理器上报中断,请求主机系统软件实施干预,查询并处理事件;
11.步骤s5:主机系统中断处理程序激活系统软件内的sas控制器管理进程;
12.步骤s6:sas控制器管理进程下发smp(sas管理协议)查询命令给expander l1,询问事件发生的端口、类型等详细信息。根据端口号、信息类型和整个存储连接的拓扑结构,管理进程感知到事件来源于下游expander l2;
13.步骤s7:sas控制器管理进程下发smp查询命令给下游expander l2。根据expander l2的smp应答消息,管理进程感知到sata磁盘设备a移除事件。
14.根据sas标准协议,每个sas设备端口都含有一个64位sas地址,用于标识设备端口的身份,而sata磁盘设备并没有类似的地址标识。为了标识存储连接拓扑内的sata设备,sas协议规定expander内部的stp sata桥拥有一个64位sas地址。sas控制器在访问sata盘之前,需要面向stp sata桥的sas地址建立逻辑连接。逻辑连接建立之后,sas控制器和sata磁盘设备通过协议定义格式的fis帧(sata传输层数据结构)来交换i/o数据信息。sata的fis帧结构内部没有地址相关的设备标识信息字段。
15.可见,只有经过多级sas链路层原语的传递和多次smp请求以及应答消息的交换,主机系统软件才能感知到sata磁盘设备移除事件的详细信息。随着expander扩展级数的增加,从sata磁盘设备a移除(步骤s1)到主机管理进程感知到此事件(步骤s7)的延迟也随之增加。另一方面,在步骤s7的expander l2返回smp应答信息之前,主机系统尚未感知到sata磁盘a已经被移除的事件,继续进行i/o数据交换业务。如果在步骤s7之前,用户迅速接入了新的sata磁盘设备b,则可能导致i/o数据内容错误。原本期望来自于sata磁盘a的数据,实际来自于磁盘b;或者原本期望写入磁盘a的数据,实际写入了磁盘b,导致数据业务失败,引发系统异常。


技术实现要素:

16.本发明的目的在于一种sata设备热插拔管理方法和装置,在设备连接异常中断的场景下,主动禁止异常端口物理层链路的oob协商功能,避免由于消息传递和事件处理的延迟导致主机系统i/o数据传输错误。
17.根据本发明的第一方面,提供了一种sata设备热插拔管理方法,该方法包括:
18.检测与磁盘扩展器相连接的sata磁盘设备的连接状态;
19.在确定检测到sata磁盘设备连接丢失时,主动禁止物理层链路的oob接收和协商功能;
20.向主机发送广播原语消息,并等待所述主机的oob协商使能命令;
21.如果接收到来自所述主机的所述oob协商使能命令,则允许所述物理层链路的oob协商;
22.基于所述物理层链路的oob协商,重新执行sata磁盘设备的识别。
23.优选地,所述确定检测到sata磁盘设备连接丢失,进一步包括:
24.通过所述磁盘扩展器的内部stp sata桥的物理层硬件逻辑识别到sata设备移除事件。
25.优选地,所述主动禁止物理层链路的oob接收和协商功能,进一步包括:
26.通过所述磁盘扩展器的内部stp sata桥的物理层硬件逻辑主动禁止物理层链路的oob接收和协商功能,而无需主机系统软件和所述磁盘扩展器内部系统固件的干预,同时
上报事件到所述磁盘扩展器固件的应用层。
27.优选地,所述向主机发送广播原语消息,进一步包括:
28.通过所述磁盘扩展器内部系统固件记录sata设备连接丢失的详细信息,所述详细信息包括sata设备的类型和连接丢失的端口号。
29.优选地,所述oob协商使能命令为smp命令,并且所述允许物理层链路的oob协商,进一步包括:
30.通过所述磁盘扩展器内部系统固件接收到主机系统允许oob协商的smp命令后,重新启动stp sata桥的物理层链路oob协商流程。
31.根据本发明的第二方面,提供了一种sata设备热插拔管理装置。该装置包括:
32.检测模块,用于检测与磁盘扩展器相连接的sata磁盘设备的连接状态;
33.禁止模块,用于在确定检测到sata磁盘设备连接丢失时,主动禁止物理层链路的oob接收和协商功能;
34.发送模块,用于向主机发送广播原语消息,并等待所述主机的oob协商使能命令;
35.使能模块,用于在接收到来自主机的所述oob协商使能命令时,允许物理层链路的oob协商;
36.识别模块,用于基于所述物理层链路的oob协商,重新执行sata磁盘设备的识别。
37.优选地,所述检测模块进一步配置为:
38.通过所述磁盘扩展器的内部stp sata桥的物理层硬件逻辑识别到sata设备移除事件。
39.优选地,所述禁止模块进一步配置为:
40.通过所述磁盘扩展器的内部stp sata桥的物理层硬件逻辑主动禁止物理层链路的oob接收和协商功能,而无需主机系统软件和所述磁盘扩展器内部系统固件的干预,同时上报事件到所述磁盘扩展器固件的应用层。
41.优选地,所述发送模块进一步配置为:
42.通过所述磁盘扩展器内部系统固件记录sata设备连接丢失的详细信息,所述详细信息包括sata设备的类型和连接丢失的端口号。
43.优选地,所述oob协商使能命令为smp命令,并且所述允许物理层链路的oob协商进一步配置为:
44.通过所述磁盘扩展器内部系统固件接收到主机系统允许oob协商的smp命令后,重新启动stp sata桥的物理层链路oob协商流程。
45.相比于现有技术,本发明的方案流程简单清晰、易于实现,能够有效兼容sas应用场景下的各种连接结构,结合sas协议物理层链路建立的机制,在设备连接异常中断的场景下,通过及时地主动禁止端口的oob协商功能,能够有效确保i/o数据传输的正确性、完整性,避免了热插拔期间的数据丢失或者内容错误。
46.本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获取。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
48.图1示出了根据现有技术的sas控制器与多个sata设备互联的结构图。
49.图2是根据现有技术的sas控制器扩展连接sata和sas设备的消息传递流程示意图。
50.图3是根据本发明的sata设备的热插拔管理方法流程图。
51.图4是根据本发明的基于图2的sas控制器扩展连接结构的热插拔管理方法的时序图。
具体实施方式
52.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
53.本发明在第一方面结合典型的sas存储系统结构,提出一种面向sata设备的热插拔管理方法,当expander内部stp sata桥的物理层硬件逻辑检测到设备移除事件后,主动禁止相关端口的物理层链路oob(out of band signal,sas物理层链路信号序列)协商功能,以防止由于事件上报延迟引发的i/o数据内容错乱,保障业务数据的正确性和完整性,从而提升整个存储系统的鲁棒性。
54.如图3所示,首先以单级expander为例,将本发明的sata设备的热插拔管理方法的总体方案描述如下:
55.步骤101、确定检测到与磁盘扩展器相连接的sata磁盘设备连接丢失。
56.具体地,expander内部stp sata桥的物理层硬件逻辑可以检测物理连接的sata磁盘设备的状态。当检测到物理连接的sata磁盘设备连接丢失或连接异常时,stp sata桥的物理层能够确定物理连接的sata磁盘设备处于丢失状态。
57.步骤102、在确定检测到sata磁盘设备连接丢失时,主动禁止物理层链路的oob接收和协商功能。
58.当检测到sata磁盘设备连接丢失时,expander内部stp sata桥的物理层硬件逻辑主动禁止物理层链路的oob接收和协商功能,即自动执行oob禁用操作,而无需主机系统软件和expander内部系统固件干预,同时上报事件到expander固件的应用层。在禁止oob协商功能后,即使新接入的sata磁盘设备发出oob请求,物理层硬件逻辑也不予应答,双方无法完成物理层链路的建立。
59.步骤103、向上游端口发送广播原语消息。
60.expander内部系统固件记录sata设备连接丢失的详细信息,如连接丢失的端口号、sata设备的类型等,同时向上游端口发送broadcast广播原语,提示下游有事件发生。
61.步骤104、确定是否接收到来自主机的oob协商使能命令。
62.在发送broadcast广播消息之后,expander等待来自主机系统的smp命令,当出现smp命令时,确认主机系统允许oob协商和新设备的接入或识别。主机系统软件获取sata设备连接丢失的事件信息,撤销系统内部队列面向被移除sata设备的所有i/o数据传输任务,启动异常处理进程。
63.步骤105、如果接收到来自主机的oob协商使能命令,则允许物理层链路的oob协商。
64.在确认接收到来自主机的oob协商使能命令之后,expander内部系统固件通过对stp sata桥的物理层硬件逻辑进行配置,解除禁止物理层链路的oob协商程序。
65.如果未接收到来自主机的oob协商使能命令,则采用轮询方法,expander持续等待来自主机的消息。
66.步骤106、基于所述物理层链路的oob协商,重新执行设备识别。
67.通过物理层链路的oob协商程序的运行,expander内部stp sata桥的物理层硬件逻辑开始新一轮的设备识别程序。
68.本发明提出的所述sata设备热插拔管理方法,流程简单清晰、易于实现,能够有效兼容sas应用场景下的各种连接结构,适用于多种不同物理速率,结合sas协议物理层链路建立的机制,在设备连接异常中断的场景下,主动禁止物理层链路的oob接收和协商功能,避免由于消息传递延迟造成的数据传输错误。
69.结合前述图2的结构,在主机系统内部sas控制器通过两级expander扩展连接sata磁盘的结构中,本发明进一步提供了一种热插拔管理方法的示例流程,如图4所示:
70.步骤201、第二级expander l2下游端口的sata设备a产生设备移除事件,例如准备替换为新的sata设备b;
71.步骤202、当expander l2的物理层硬件逻辑检测到设备移除事件时,主动禁止当前端口的oob协商功能;
72.步骤203、expander l2固件程序记录事件信息,并向上游端口发送broadcast广播原语;
73.步骤204、第一级expander l1下游端口接收到来自expander l2的broadcast广播原语;
74.步骤205、expander l1固件程序记录事件信息,并向上游端口转发broadcast广播原语;
75.步骤206、主机系统的sas控制器端口接收到来自expander l1的broadcast广播原语,感知到下游连接有事件需要关注,上报中断到主机系统处理器;
76.步骤207、主机系统中断处理程序激活系统软件内的sas控制器管理进程,sas控制器管理进程发送第一smp查询命令到第一级expander l1,询问事件信息;
77.步骤208、expander l1返回第一smp应答消息,在第一smp应答消息中携带事件发生的下游端口、类型信息等;
78.步骤209、系统软件感知到事件源于第二级expander l2,并发送第二smp查询命令到expander l2;
79.步骤210、expander l2返回第二smp应答消息,在第二smp应答消息中携带事件发生的stp sata桥端口和事件的类型信息;
80.步骤211、根据expander l2返回的第二smp应答消息,主机系统软件感知到expander l2的stp sata桥端口发生sata磁盘设备a移除事件,撤销系统内部队列中面向sata磁盘设备a的所有i/o传输指令,执行数据业务异常处理程序;
81.步骤212、主机系统发送第一smp使能命令到expander l2,允许expander l2相应端口的oob协商功能;
82.步骤213、expander l2返回第三smp应答消息,确认接收到主机系统的用于允许物理层链路的oob协商功能的第一smp使能命令;
83.步骤214、expander l2内部系统固件配置相应端口的stp sata桥的物理层硬件逻辑,允许物理层链路的oob协商功能,开始新一轮oob协商和设备接入识别流程。
84.从以上实施例中可以看出,采用本发明提出的sata设备热插拔管理方法,expander l2内部stp sata桥的物理层硬件逻辑检测到sata设备a移除后,主动禁止相关端口的物理层链路oob协商功能,直至主机系统软件识别到sata设备a移除的事件并完成异常处理任务。通过及时地主动禁止端口的oob协商功能,能够有效确保i/o数据传输的正确性、完整性,避免数据丢失或者内容错误。
85.需要说明的是,图3和图4所示的流程或时序图仅用于说明而非限定本发明的技术方案。本领域技术人员可以理解,在本发明基础上可以根据实际需要而对磁盘阵列的结构以及方法流程细节等做出容易想到的任意调整,而不应将本发明限于上述示例的具体结构或参数。例如,本发明的设计同样适用于sas控制器直连sata盘设备的场景下的热插拔管理。
86.根据本发明的另一方面,相应地,提供了一种sata设备热插拔管理装置,该装置包括:
87.检测模块,用于检测与磁盘扩展器相连接的sata磁盘设备的连接状态;
88.禁止模块,用于在确定检测到sata磁盘设备连接丢失时,主动禁止物理层链路的oob接收和协商功能;
89.发送模块,用于向主机发送广播原语消息,并等待所述主机的oob协商使能命令;
90.使能模块,用于在接收到来自主机的所述oob协商使能命令时,允许物理层链路的oob协商;
91.识别模块,用于基于所述物理层链路的oob协商,重新执行sata磁盘设备的识别。
92.所述检测模块进一步配置为:通过所述磁盘扩展器的内部stp sata桥的物理层硬件逻辑识别到sata设备移除事件。
93.所述禁止模块进一步配置为:通过所述磁盘扩展器的内部stp sata桥的物理层硬件逻辑主动禁止物理层链路的oob接收和协商功能,而无需主机系统软件和所述磁盘扩展器内部系统固件的干预,同时上报事件到所述磁盘扩展器固件的应用层。
94.所述发送模块进一步配置为:通过所述磁盘扩展器内部系统固件记录sata设备连接丢失的详细信息,所述详细信息包括sata设备的类型和连接丢失的端口号。
95.所述oob协商使能命令为smp命令,并且所述允许物理层链路的oob协商进一步配置为:通过所述磁盘扩展器内部系统固件接收到主机系统允许oob协商的smp命令后,重新启动stp sata桥的物理层链路oob协商流程。
96.尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理
解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1