一种ssp连接管理方法和装置
技术领域
1.本发明属于磁盘连接技术领域,特别涉及一种ssp连接管理方法和装置。
背景技术:
2.sas是一种高速串行总线,内置数据/命令校验单元,纠错能力强,支持热插拔,具有管脚数量少、数据传输速率快、可靠性高、兼容性好,目前被业界广泛用于存储设备和主机之间的主要i/o接口。sas通过ssp协议(串行scsi协议)实现sas控制器和sas磁盘设备之间的互联和数据传输。参见图1,典型的sas数据存储拓扑结构中,sas控制器通过一级或者多级expander(磁盘扩展器)扩展支持大规模磁盘的管理。
3.根据sas标准协议规定,针对ssp类型设备的数据通信,在sas控制器和目标sas设备之间实施有效数据交换之前,首先需要sas控制器和设备通过链路层的帧交换建立指定传输速率的ssp类型的连接(connection)。连接建立成功后,sas控制器和设备通过ssp协议规定的传输层帧(frame)进行命令、数据的交换。sas控制器管理大规模磁盘的应用场景下,为了降低数据通信的延迟,保障高效利用物理链路,提升系统的吞吐率,通常sas控制器和特定的设备完成指定的i/o交换后会及时关闭连接,释放物理链路给存储拓扑中的其他设备使用,避免链路资源浪费。因此,sas控制器在与多个ssp设备的多i/o并发交互过程中,合理地选择关闭连接的时机对于提升数据存储业务的吞吐率至关重要。
4.然而目前sas标准协议在ssp连接管理方面存在不足。以图2所示的典型的ssp读i/o的交互流程为例,sas控制器的端口层检测到当前端口在发送方向没有数据帧的传输请求时,即刻启动空闲时间计时器。当发送方向空闲的时间达到预定义的阈值,端口层请求ssp链路层关闭连接。链路层收到端口层的连接关闭请求后,发送done原语至当前连接远端的ssp设备,启动连接关闭握手程序。sas协议规定,ssp链路层发送done原语后,sas控制器的端口层禁止发送方向后续的数据帧传输,直至连接关闭握手结束。同时,由于ssp连接工作在全双工模式,sas控制器需要等待远端ssp设备返回done原语,然后交换close原语,完成连接关闭流程。需要注意的是,sas控制器发送done原语后,远端设备连续返回相应命令的ssp数据帧,直至返回当前i/o的ssp应答帧后,才返回done原语应答关闭连接。在远端设备返回done原语之前,当前ssp连接持续有效,且独占sas控制器和设备之间的物理链路,但是sas控制器端口层禁止发送方向的ssp帧传输。在此期间,即使传输层有其他i/o的ssp帧发送请求到达,也无法利用当前的ssp连接,只能等待当前连接关闭握手程序完成后,重新建立连接后再发送。可见,sas标准协议定义的ssp连接管理方法在支持多个i/o并发的场景下无法充分发挥ssp连接全双工的特性,难以最大化物理链路的使用效率,制约了系统的吞吐率。
技术实现要素:
5.本发明的目的在于一种ssp连接管理方法和装置,在保障数据通信完整性、正确性的前提下,充分发挥ssp链路全双工的通信特性,最大化物理链路的使用效率。
6.根据本发明的第一方面,提供了一种ssp连接管理方法,包括:
7.在sas控制器和目标设备之间建立ssp连接;
8.当所述ssp连接建立完成后,复位传输空闲计时器;
9.判断当前连接是否处于发送和接收的双向空闲状态;
10.如果当前连接处于发送和接收的双向空闲状态,则启动所述传输空闲计时器;
11.监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧;
12.如果未接收到所述ssp帧,则计算所述传输空闲计时器是否达到空闲时间长度阈值;
13.当所述传输空闲计时器达到所述空闲时间长度阈值时,请求关闭所述ssp连接。
14.优选地,在所述判断当前连接是否处于发送和接收的双向空闲状态之后,进一步包括:
15.如果当前连接未处于发送和接收的双向空闲状态,则返回执行所述复位传输空闲计时器的操作。
16.优选地,在所述监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧之后,进一步包括:
17.如果接收到所述ssp帧,则返回执行所述复位传输空闲计时器的操作。
18.优选地,在所述计算所述传输空闲计时器是否达到空闲时间长度阈值之后,进一步包括:
19.如果所述传输空闲计时器未达到所述空闲时间长度阈值,则继续监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。
20.优选地,所述空闲时间长度阈值由系统软件进行动态配置。
21.根据本发明的第二方面,提供了一种ssp连接管理装置,包括:
22.连接建立模块,用于在sas控制器和目标设备之间建立ssp连接;
23.计时器复位模块,用于当所述ssp连接建立完成后,复位传输空闲计时器;
24.空闲状态判断模块,用于判断当前连接是否处于发送和接收的双向空闲状态;
25.计时器启动模块,用于在当前连接处于所述双向空闲状态时,启动所述传输空闲计时器;
26.监听模块,用于监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧;
27.空闲时间计算模块,用于在未接收到所述ssp帧时,计算所述传输空闲计时器是否达到空闲时间长度阈值;
28.关闭模块,用于在所述传输空闲计时器达到所述空闲时间长度阈值时,请求关闭所述ssp连接。
29.优选地,所述计时器复位模块进一步被配置为:
30.如果所述空闲状态判断模块判断当前连接未处于发送和接收的双向空闲状态,则返回执行所述复位传输空闲计时器的操作。
31.优选地,所述计时器复位模块进一步被配置为:
32.如果接收到所述ssp帧,则返回执行所述复位传输空闲计时器的操作。
33.优选地,所述监听模块进一步被配置为:
34.如果所述传输空闲计时器未达到所述空闲时间长度阈值,则继续监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。
35.优选地,所述空闲时间长度阈值由系统软件进行动态配置。
36.相比于现有技术,本发明的ssp连接管理方法和装置,在兼容sas标准协议定义的ssp连接管理规则的基础上,结合当前连接在发送和接收两个方向的传输状态,选择最优时间点关闭连接,充分发挥ssp链路全双工的通信特性。
37.本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获取。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
39.图1示出了根据现有技术的sas控制器与多个sas设备互联的结构图。
40.图2示出了根据现有技术的ssp读i/o操作的交互过程流程图。
41.图3示出了根据本发明的ssp连接管理方法的流程图。
42.图4示出了基于本发明的ssp连接管理方法的ssp读i/o操作的交互过程流程图。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
44.为了降低通信延迟,提升整个系统的吞吐率,本发明旨在基于ssp协议数据传输业务的典型交互流程,结合当前连接在发送和接收两个方向的传输状态,选择最优时间点关闭连接,以解决sas标准协议中的ssp连接管理存在的不足,发挥ssp链路全双工的通信特性,最大程度地避免物理链路资源的浪费,提高链路的有效利用率。
45.本发明首先在第一方面提出一种ssp连接管理方法,参见图3的总体流程图,所述ssp连接管理方法包括:
46.步骤101:在sas控制器和目标设备之间建立ssp连接。
47.本发明的实施例中,首先将sas控制器和目标sas设备通过链路层opaf帧(open address frame)和open_accept原语的交换,建立ssp类型的连接。具体地,在存在expander的情况下,sas控制器发送链路层opaf帧到expander,由expander将opaf帧转发给目标sas设备,而目标sas设备反馈open_accept原语到expander,由expander将该原语转发给sas控制器。完成ssp连接的建立之后,目标sas设备也可以称为目标ssp设备。
48.步骤102:当所述ssp连接建立完成后,复位传输空闲计时器。
49.具体地,利用sas控制器端口层的硬件逻辑初始化传输空闲计时器,将该计时器进
行复位。所述传输空闲计时器用于在后续步骤中计算传输空闲时间长度。优选地,sas控制器端口层为所述传输空闲计时器设定空闲时间长度阈值。
50.步骤103:判断当前连接是否处于发送和接收的双向空闲状态。
51.所述双向空闲状态是指发送方向没有ssp帧传输的空闲状态以及接收方向没有ssp帧传输的空闲状态。如果sas控制器端口层检测到当前连接在发送和接收两个方向均没有ssp帧传输,处于发送和接收的双向空闲状态,则方法继续执行步骤104;否则,返回步骤102,重新复位传输空闲计时器。
52.步骤104:如果当前连接处于发送和接收的双向空闲状态,则启动所述传输空闲计时器。
53.本发明的实施例中,由sas控制器端口层从当前连接处于发送和接收的双向空闲状态时,启动传输空闲计时器开始计时,以便计算双向空闲状态的持续时间。
54.步骤105:监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。
55.所述ssp帧可以包括ssp命令帧和ssp数据帧。本发明的实施例中,由sas控制器端口层判断发送和接收方向是否存在ssp帧传输,即是否接收到源自目标ssp设备的ssp帧,或者源自sas控制器自身传输层的ssp帧发送请求,若接收到两者之一,则返回步骤102,重新复位传输空闲计时器;否则,继续执行步骤106。
56.步骤106:如果未接收到所述ssp帧,则计算所述传输空闲计时器是否达到空闲时间长度阈值。
57.从本发明的实施例的步骤104开始启动传输空闲计时器之后,如果传输空闲计时器计数已经到达预先设定的空闲时间长度阈值,则执行步骤107。所述空闲时间长度阈值可由系统软件进行动态配置。也就是说,在空闲时间长度阈值期间,发送和接收方向均没有出现ssp帧传输,则继续执行步骤107;否则,返回步骤105,继续监视是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。
58.步骤107:当所述传输空闲计时器达到所述空闲时间长度阈值时,请求关闭所述ssp连接。
59.如果在设定的空闲时间长度阈值期间,sas控制器传输层或目标ssp设备均没有发出ssp帧传输,则sas控制器端口层请求链路层关闭连接,通知链路层可以发送done原语至当前连接的目标ssp设备,并启动连接关闭握手程序。随后,当ssp设备返回done原语之后,双方交换close原语,即完成ssp连接关闭流程。
60.由于空闲时间长度阈值期间内没有ssp帧传输,因此启动连接关闭握手程序之后较短的时间内,ssp设备即可返回done原语,减少了sas控制器传输层和设备之间的独占物理链路的时间。在支持多个i/o并发的场景下,当传输层出现了其他i/o的ssp帧发送请求时,就可以建立新的ssp连接,因此充分体现出了ssp链路的全双工性能。
61.可见,本发明提出的ssp连接管理方法简单清晰、易于实现,在兼容sas标准协议定义的ssp连接管理规则的基础上,结合当前连接在发送和接收两个方向的传输状态,选择最优时间点关闭连接,充分发挥ssp链路全双工的通信特性。
62.在进一步的实施例中,图4以典型的ssp读i/o业务场景为例,示出了采用本发明提出的ssp连接管理方法之后,sas控制器和目标设备之间ssp帧的交换和连接关闭流程。
63.时刻t1:在sas控制器和ssp目标设备之间建立ssp连接。通过链路层opaf帧和
open_accept原语交换,sas控制器和ssp目标设备建立ssp连接,准备传输ssp帧。
64.时刻t2:在ssp连接建立完成后,复位传输空闲计时器。sas控制器端口层接收到来自传输层的传输请求,将i/o#1的ssp命令帧发送至ssp目标设备,请求ssp目标设备中的数据帧。
65.时刻t3:当ssp目标设备中i/o#1请求的数据就绪时,ssp目标设备返回i/o#1的ssp数据帧序列到sas控制器。在此期间,sas控制器持续接收ssp数据帧,端口层保持当前ssp连接活跃,同时可以接收新传输请求。
66.时刻t4:sas控制器的端口层收到来自传输层的i/o#2的发送请求,当前ssp连接仍然处于活跃状态,并且端口层下发i/o#2的ssp命令帧至ssp目标设备。
67.时刻t5:在ssp目标设备返回i/o#1的数据应答帧,并且i/o#1处理完毕之后,当前连接停止数据传输,开始处于发送和接收的双向空闲状态,启动所述传输空闲计时器。
68.时刻t6:sas控制器在发送方向仍没有新的i/o请求等待处理,同时,ssp目标设备由于磁盘机械装置的延迟,i/o#2的数据尚未准备就绪,即从ssp目标设备到sas控制器的方向也没有数据传输。由于sas控制器端口层检测到发送和接收双向空闲时间超过软件设置的空闲时间长度阈值(例如可以设置为t6-t5),开始请求链路层启动连接关闭握手程序。
69.时刻t7:sas控制器链路层发送done原语,请求关闭连接。ssp目标设备返回done原语应答连接关闭请求,sas控制器和ssp目标设备交换close原语后,当前ssp连接断开,方法结束。
70.与sas标准协议中定义的ssp连接管理方法相比较,本发明所提出的方案能够有效提高发送和接收方向的全双工特性,提高i/o请求处理的并发性,提升ssp链路的利用效率。
71.需要说明的是,以上所示的流程或时序图仅用于说明而非限定本发明的技术方案。本领域技术人员可以理解,在本发明基础上可以根据实际需要而上述方法流程细节等做出容易想到的任意调整,而不应将本发明限于上述示例的具体结构或参数。例如,本领域技术人员还可以根据ssp链路具体的i/o业务场景,增加、修改或删除相应的连接管理动作。
72.相应地,本发明在第二方面提供了一种ssp连接管理装置,包括:
73.连接建立模块,用于在sas控制器和目标设备之间建立ssp连接;
74.计时器复位模块,用于当所述ssp连接建立完成后,复位传输空闲计时器;
75.空闲状态判断模块,用于判断当前连接是否处于发送和接收的双向空闲状态;
76.计时器启动模块,用于在当前连接处于所述双向空闲状态时,启动所述传输空闲计时器;
77.监听模块,用于监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧;
78.空闲时间计算模块,用于在未接收到所述ssp帧时,计算所述传输空闲计时器是否达到空闲时间长度阈值;
79.关闭模块,用于在所述传输空闲计时器达到所述空闲时间长度阈值时,请求关闭所述ssp连接。
80.所述计时器复位模块进一步被配置为:
81.如果所述空闲状态判断模块判断当前连接未处于发送和接收的双向空闲状态,则返回执行所述复位传输空闲计时器的操作。
82.所述计时器复位模块进一步被配置为:
83.如果接收到所述ssp帧,则返回执行所述复位传输空闲计时器的操作。
84.所述监听模块进一步被配置为:
85.如果所述传输空闲计时器未达到所述空闲时间长度阈值,则继续监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。
86.所述空闲时间长度阈值由系统软件进行动态配置。
87.尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种ssp连接管理方法,其特征在于,包括:在sas控制器和目标设备之间建立ssp连接;当所述ssp连接建立完成后,复位传输空闲计时器;判断当前连接是否处于发送和接收的双向空闲状态;如果当前连接处于发送和接收的双向空闲状态,则启动所述传输空闲计时器;监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧;如果未接收到所述ssp帧,则计算所述传输空闲计时器是否达到空闲时间长度阈值;当所述传输空闲计时器达到所述空闲时间长度阈值时,请求关闭所述ssp连接。2.根据权利要求1所述的ssp连接管理方法,其特征在于,在所述判断当前连接是否处于发送和接收的双向空闲状态之后,进一步包括:如果当前连接未处于发送和接收的双向空闲状态,则返回执行所述复位传输空闲计时器的操作。3.根据权利要求1所述的ssp连接管理方法,其特征在于,在所述监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧之后,进一步包括:如果接收到所述ssp帧,则返回执行所述复位传输空闲计时器的操作。4.根据权利要求1所述的ssp连接管理方法,其特征在于,在所述计算所述传输空闲计时器是否达到空闲时间长度阈值之后,进一步包括:如果所述传输空闲计时器未达到所述空闲时间长度阈值,则继续监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。5.根据权利要求1所述的ssp连接管理方法,其特征在于,所述空闲时间长度阈值由系统软件进行动态配置。6.一种ssp连接管理装置,其特征在于,包括:连接建立模块,用于在sas控制器和目标设备之间建立ssp连接;计时器复位模块,用于当所述ssp连接建立完成后,复位传输空闲计时器;空闲状态判断模块,用于判断当前连接是否处于发送和接收的双向空闲状态;计时器启动模块,用于在当前连接处于所述双向空闲状态时,启动所述传输空闲计时器;监听模块,用于监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧;空闲时间计算模块,用于在未接收到所述ssp帧时,计算所述传输空闲计时器是否达到空闲时间长度阈值;关闭模块,用于在所述传输空闲计时器达到所述空闲时间长度阈值时,请求关闭所述ssp连接。7.根据权利要求6所述的ssp连接管理装置,其特征在于,所述计时器复位模块进一步被配置为:如果所述空闲状态判断模块判断当前连接未处于发送和接收的双向空闲状态,则返回执行所述复位传输空闲计时器的操作。8.根据权利要求6所述的ssp连接管理装置,其特征在于,所述计时器复位模块进一步被配置为:如果接收到所述ssp帧,则返回执行所述复位传输空闲计时器的操作。
9.根据权利要求6所述的ssp连接管理装置,其特征在于,所述监听模块进一步被配置为:如果所述传输空闲计时器未达到所述空闲时间长度阈值,则继续监听是否接收到来自所述sas控制器传输层或所述目标设备的ssp帧。10.根据权利要求6所述的ssp连接管理装置,其特征在于,所述空闲时间长度阈值由系统软件进行动态配置。
技术总结
本发明提供了一种SSP连接管理方法和装置,该方法包括:在SAS控制器传输层和目标设备之间建立SSP连接;当SSP连接建立完成后,复位传输空闲计时器;如果当前连接处于发送和接收的双向空闲状态,则启动传输空闲计时器;监听是否接收到来自SAS控制器传输层或目标设备的SSP帧;如果未接收到SSP帧,判断传输空闲计时器是否达到空闲时间长度阈值;如果传输空闲计时器达到空闲时间长度阈值,请求关闭所述SSP连接。本发明的方案充分利用SSP链路全双工的通信特性,最大化物理链路的使用效率,减少了数据交换的延迟,提升了整个系统的吞吐率。提升了整个系统的吞吐率。提升了整个系统的吞吐率。
技术研发人员:宫晓渊 刁永翔 李越峰 杨亮
受保护的技术使用者:无锡众星微系统技术有限公司
技术研发日:2021.11.25
技术公布日:2022/3/8