一种基于SAS技术的数据传输的方法与装置与流程

文档序号:12034529阅读:373来源:国知局
一种基于SAS技术的数据传输的方法与装置与流程

本发明涉及存储技术领域,特别是涉及一种基于sas技术的数据传输的方法与装置。



背景技术:

当前的存储后端串行scsi(serialattachedscsi,sas)接口速率已经发展到12gbps,而串行ata(serailata,sata)接口速率目前最高只有6gbps。导致了当存储系统连接sata硬盘的时候,无法完美发挥12gbps的带宽性能。因为每一个数据的传输(input/output,io)都是基于一条物理链路。尽管sas芯片提供的链路是12gbps,但是sas芯片到sata硬盘之间只能以6gbps的速率传输,因此这段链路的速率便成了数据传输的短板。

可见,如何提高数据传输的速率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种基于sas技术的数据传输的方法与装置,可以提高数据传输的速率。

为解决上述技术问题,本发明实施例提供一种基于sas技术的数据传输的方法,包括:

触发sasexpander开启多路复用功能;

接收用户发送的数据获取指令,并将所述数据获取指令发送至对应的sata硬盘;

当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。

可选的,还包括:

统计所述sasexpander中包含的所有通信链路被占用的情况;

当所述sasexpander中包含的每一个通信链路均被对应的两个sata硬盘占用时,则停止向所述sata硬盘发送所述数据获取指令。

可选的,还包括:

判断在预设时间内是否接收到所述sata硬盘发送的目标数据;

若否,则向所述sata硬盘重新发送所述数据获取指令。

可选的,还包括:

统计向所述sata硬盘发送所述数据获取指令的次数;

当所述次数超过预设阈值,则停止向所述sata硬盘发送所述数据获取指令。

本发明实施例还提供了一种基于sas技术的数据传输的装置,包括开启单元、接收单元、发送单元和合并单元,

所述开启单元,用于触发sasexpander开启多路复用功能;

所述接收单元,用于接收用户发送的数据获取指令,并触发所述发送单元,所述发送单元,用于将所述数据获取指令发送至对应的sata硬盘;

所述合并单元,用于当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。

可选的,还包括统计单元和停止单元,

所述统计单元,用于统计所述sasexpander中包含的所有通信链路被占用的情况;

所述停止单元,用于当所述sasexpander中包含的每一个通信链路均被对应的两个sata硬盘占用时,则停止向所述sata硬盘发送所述数据获取指令。

可选的,还包括判断单元,

所述判断单元,用于判断在预设时间内是否接收到所述sata硬盘发送的目标数据;

若否,则触发所述发送单元,向所述sata硬盘重新发送所述数据获取指令。

可选的,所述统计单元还用于统计向所述sata硬盘发送所述数据获取指令的次数;

当所述次数超过预设阈值,则触发所述停止单元,停止向所述sata硬盘发送所述数据获取指令。

由上述技术方案可以看出,系统开机后自动触发sasexpander开启多路复用功能;当接收到用户发送的数据获取指令后,将所述数据获取指令发送至对应的sata硬盘。在sasexpander中包含有多个通信链路,每个sata硬盘可以通过其中的一个通信链路实现数据的传输,当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。可见,通过开启sasexpander的多路复用功能,可以在不改变存储系统硬件的前提下,提高通信链路的利用率,提升一倍sata硬盘的io总带宽,在不增加存储设备成本的同时,使存储设备性能翻倍。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于sas技术的数据传输的系统示意图;

图2为本发明实施例提供的一种基于sas技术的数据传输的方法的流程图;

图3为本发明实施例提供的一种基于sas技术的数据传输的装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

传统方式中,一个sata硬盘发送的数据通过sasexpander中的一条数据链路传输。但是,一条数据链路可以达到12gbps,而sata接口速率目前最高只有6gbps,导致数据链路无法发挥12gbps的宽带性能。

为此,本发明实施例提供了一种基于sas技术的数据传输的方法与装置,通过开启sasexpander的多路复用(multiplexing)功能,可以将两个sata硬盘的数据整合到一条数据链路上传输,从而节省了sasexpander中链路的开销,成倍的提升了存储后端io的性能。

基于上述思想,本发明实施例主要通过sas中的通道卡(hostbridgeadapter,hba)和扩展卡(sasexpander)与sata硬盘的交互实现,其系统示意图如图1所示,系统主要通过hba以及sasexpander的中转实现与sata硬盘的信息交互。其中,hba与sasexpander之间的数据传输速率可以达到12gbps,在sasexpander中可以包含有多条数据链路,图1中以一条数据链路为例,一个sata硬盘传输数据的速率最高只有6gbps,因此,可以将两个sata硬盘与一条数据链路连接,实现数据的传输。

接下来,详细介绍本发明实施例所提供的一种基于sas技术的数据传输的方法。图2为本发明实施例提供的一种基于sas技术的数据传输的方法的流程图,该方法包括:

s201:触发sasexpander开启多路复用功能。

sas协议支持多路复用功能,可以在sasexpander配置好多路复用功能,在具体实现中,可以将系统开机作为开启多路复用功能的触发条件,也即系统开机后,sasexpander配置的多路复用功能会被自动开启。

除此之外,也可以是用户输入特定指令的方式开启sasexpander多路复用功能,当系统未接收到用户输入的特定指令时,sasexpander中的多路复用功能处于关闭状态;当需要利用sasexpander中的多路复用功能时,用户便可以在系统相关界面上输入特定指令,当系统接收到用户输入的特定指令后,便可以触发该sasexpander开启多路复用功能。

s202:接收用户发送的数据获取指令,并将所述数据获取指令发送至对应的sata硬盘。

系统接收到用户发送的数据获取指令后,便可以通过hba和sasexpander的中转将该数据获取指令发送至指定的sata硬盘,sata硬盘依据该指令,通过sasexpander中的数据链路向系统发送目标数据。

系统可以连接有多个sata硬盘,为了便于区分不同的sata硬盘,在本发明实施例中,可以对各个sata硬盘设置相应的编号值,用户发送的数据获取指令中可以携带有相应的编号值,以便于系统可以识别需要获取哪个或哪些sata硬盘的数据。

s203:当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。

sasexpander开启多路复用功能后,在数据链路充足的情况下,可以一条数据链路用于传输一个sata硬盘的目标数据;当每条数据链路均有其对应的一个sata硬盘后,如果有新的sata硬盘的数据需要传输,则可以从只对应有一个sata硬盘的数据链路中选取其中一条数据链路,来传输新的sata硬盘的数据,此时该条数据链路可以用于同时传输两个sata硬盘的数据。

例如,在sasexpander中包含有4条数据链路,分别为1-4,有4个sata硬盘需要向系统传输数据,则每个sata硬盘可以对应1条数据链路,来实现数据的传输,当有第5个sata硬盘需要向系统传输数据时,则可以从这4条数据链路中选取一条数据链路如选取第1条数据链路来传输第5个sata硬盘的数据;当又有第6个sata硬盘需要向系统传输数据时,则可以从剩余的3条数据链路即2-4中选取一条数据链路如选取第2条数据链路来传输第6个sata硬盘的数据,依次类推,从而实现sasexpander中数据链路的多路复用功能。

由上述技术方案可以看出,系统开机后自动触发sasexpander开启多路复用功能;当接收到用户发送的数据获取指令后,将所述数据获取指令发送至对应的sata硬盘。在sasexpander中包含有多个通信链路,每个sata硬盘可以通过其中的一个通信链路实现数据的传输,当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。可见,通过开启sasexpander的多路复用功能,可以在不改变存储系统硬件的前提下,提高通信链路的利用率,提升一倍sata硬盘的io总带宽,在不增加存储设备成本的同时,使存储设备性能翻倍。

sasexpander包含的通信链路有限,当所有的通信链路均被两个sata硬盘占用时,此时,若在有新的sata硬盘传输数据时,则需要等待通信链路空闲后,才仍传输新的数据,为了降低数据传输的等待时间,可以统计所述sasexpander中包含的所有通信链路被占用的情况;当所述sasexpander中包含的每一个通信链路均被对应的两个sata硬盘占用时,则停止向所述sata硬盘发送所述数据获取指令。

通过统计sasexpander中所有通信链路的占用情况,可以更加合理的安排sata硬盘传输数据,有效降低数据传输的等待时间。

考虑到受网络等外部因素的影响,可以能会出现系统无法接收到sata硬盘传输的数据,针对该种情况,具体的,可以判断在预设时间内是否接收到所述sata硬盘发送的目标数据;若否,则向所述sata硬盘重新发送所述数据获取指令。

预设时间可以根据数据传输时花费的时间确定。

在具体实现中,可以从系统向sata硬盘发送数据获取指令时开始计时,当到达该预设时间后,仍为收到sata硬盘发送的目标数据,则可以再次向sata硬盘发送数据获取指令。

通过重新发送数据获取指令的方式,可以有效避免因为外界因素影响,导致数据传输失败的情况发生,保证了数据传输的有效进行。

针对所述传输失败的情况,也可能是由于硬件的损坏导致无法正常传输数据,此时,无论系统向sata硬盘重新发送多少次数据获取指令,也可能无法接收到目标数据,为了避免系统执行无用功,在具体实现中,可以统计向所述sata硬盘发送所述数据获取指令的次数;当所述次数超过预设阈值,则停止向所述sata硬盘发送所述数据获取指令。

预设阈值可以是系统发送数据获取指令次数的上限值。其具体取值可以根据实际情况设置,在此不做限定。

当系统发送同一个数据获取指令的次数超过预设阈值时,则说明可以能是因为硬件的损坏导致数据传输的失败,此时系统再重新发送数据获取指令已经意义不大,故此,可以控制系统停止向sata硬盘发送数据获取指令。

需要说明的是,针对于不同的sata硬盘,系统发送的数据获取指令也会存在差异。统计发送数据获取指令的次数,是针对于向同一个sata硬盘发送的数据获取指令。

图3为本发明实施例提供的一种基于sas技术的数据传输的装置的结构示意图,包括开启单元31、接收单元32、发送单元33和合并单元34,

所述开启单元31,用于触发sasexpander开启多路复用功能;

所述接收单元32,用于接收用户发送的数据获取指令,并触发所述发送单元33,所述发送单元33,用于将所述数据获取指令发送至对应的sata硬盘;

所述合并单元34,用于当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。

可选的,还包括统计单元和停止单元,

所述统计单元,用于统计所述sasexpander中包含的所有通信链路被占用的情况;

所述停止单元,用于当所述sasexpander中包含的每一个通信链路均被对应的两个sata硬盘占用时,则停止向所述sata硬盘发送所述数据获取指令。

可选的,还包括判断单元,

所述判断单元,用于判断在预设时间内是否接收到所述sata硬盘发送的目标数据;

若否,则触发所述发送单元,向所述sata硬盘重新发送所述数据获取指令。

可选的,所述统计单元还用于统计向所述sata硬盘发送所述数据获取指令的次数;

当所述次数超过预设阈值,则触发所述停止单元,停止向所述sata硬盘发送所述数据获取指令。

图3所对应实施例中特征的说明可以参见图2所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,系统开机后自动触发sasexpander开启多路复用功能;当接收到用户发送的数据获取指令后,将所述数据获取指令发送至对应的sata硬盘。在sasexpander中包含有多个通信链路,每个sata硬盘可以通过其中的一个通信链路实现数据的传输,当所述sasexpander中包含的每一个通信链路均被对应的一个sata硬盘占用时,则将两个所述sata硬盘发送的目标数据通过同一个通信链路传输。可见,通过开启sasexpander的多路复用功能,可以在不改变存储系统硬件的前提下,提高通信链路的利用率,提升一倍sata硬盘的io总带宽,在不增加存储设备成本的同时,使存储设备性能翻倍。

以上对本发明实施例所提供的一种基于sas技术的数据传输的方法与装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

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