一种存储集群系统、数据传输方法和装置

文档序号:1771676 发布日期:2019-12-03 浏览:18次 >En<

阅读说明:本技术 一种存储集群系统、数据传输方法和装置 (A kind of storage cluster system, data transmission method and device ) 是由 王孝鹏 于 2019-08-21 设计创作,主要内容包括:本申请实施例公开了一种存储集群系统,包括多个存储控制器、PCIe接口卡和PCIe线缆。其中,多个存储控制器中的每个存储控制器具有PCIe插槽,PCIe接口卡插在存储控制器的PCIe插槽上。PCIe接口卡上提供PCIe插口,PCIe插口与PCIe线缆连接,这样便可利用PCIe线缆通过PCIe插口将分别具有PCIe接口卡的两个存储控制器连接,形成PCIe链路。与通过板载PCIe芯片建立存储控制器间的PCIe链路相比,通过PCIe接口卡提供对外接口,两个存储控制器具有PCIe接口卡,便可通过PCIe线缆将两个存储控制器连接形成PCIe链路,以提高存储控制器间数据传输速率,优化存储集群系统整体性能。(The embodiment of the present application discloses a kind of storage cluster system, including multiple storage controls, PCIe interface card and PCIe cable.Wherein, each storage control in multiple storage controls has PCIe slot, and PCIe interface card insertion is on the PCIe slot of storage control.PCIe socket is provided on PCIe interface card, and PCIe socket is connect with PCIe cable, two storage controls for being respectively provided with PCIe interface card can be connected by PCIe socket using PCIe cable in this way, be formed PCIe link.Compared with the PCIe link established between storage control by onboard PCIe chip, external interface is provided by PCIe interface card, two storage controls have PCIe interface card, two storage controls can be connected to form PCIe link by PCIe cable, to improve message transmission rate between storage control, optimize storage cluster system overall performance.)

一种存储集群系统、数据传输方法和装置

技术领域

本申请涉及通信技术领域,特别是涉及一种存储集群系统、数据传输方法和装置。

背景技术

为了满足用户对存储需求的不断提高,集群存储系统应运而生,提高了存储资源的容量、可靠性及可用性。集群存储系统中包括控制器机箱,控制器机箱中包括存储控制器,用于按照一定的时序规则对存储器的访问进行必要控制。

为了提高数据传输的速率,保障存储控制器的稳定,目前的存储控制器大多采用双控方案,即一个控制器机箱中安装两个存储控制器,两个存储控制器互为备份,同一控制器机箱中的两个存储控制器间的数据传输都是采用板载扩展组件互联总线(PeripheralComponent Interconnect Express,PCIe)芯片来进行承载。

然而,如果存储集群系统中包括多个控制器机箱,这些控制器机箱之间的链路为光纤信道(Fibre Channel,FC)。由于FC链路的带宽限制,在大数据量的场景下,FC链路的数据传输速率低,控制器机箱之间的FC链路往往会成为存储集群系统整体性能的瓶颈。

发明内容

为了解决上述技术问题,本申请提供了存储集群系统、数据传输方法和装置,提高存储控制器间数据传输速率,优化了存储集群系统整体性能。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供了一种存储集群系统,所述系统包括多个存储控制器、PCIe接口卡和PCIe线缆:

所述多个存储控制器中的每个存储控制器具有PCIe插槽;

所述PCIe接口卡,用于插在存储控制器的PCIe插槽上;所述PCIe接口卡上提供PCIe插口;

所述PCIe线缆,用于通过所述PCIe插口将分别具有PCIe接口卡的两个存储控制器连接,形成PCIe链路。

可选的,所述分别具有PCIe接口卡的两个存储控制器包括第一存储控制器和第二存储控制器,所述第一存储控制器位于第一控制器机箱,所述第二存储控制器位于第二控制器机箱。

可选的,所述系统还包括PCIe交换机:

所述PCIe交换机通过所述PCIe线缆与具有PCIe接口卡的存储控制器连接。

可选的,一个所述PCIe插槽中***多个所述PCIe接口卡。

可选的,所述PCIe接口卡上包括至少一个PCIe端口。

第二方面,本申请实施例提供了一种数据传输方法,所述方法应用于第一方面所述的存储集群系统,所述方法包括:

获取待传输数据;所述待传输数据为需要被第一存储控制器传输的数据;

若所述第一存储控制器与第二存储控制器之间存在PCIe链路,通过所述PCIe链路传输所述待传输数据,所述第二存储控制器为所述存储集群系统除所述第一存储控制器的其他存储控制器。

可选的,若存在多个所述第二存储控制器,所述PCIe链路为多个PCIe链路,所述通过所述PCIe链路传输所述待传输数据,包括:

采用轮询方式从所述多个PCIe链路中确定目标PCIe链路;

通过所述目标PCIe链路传输所述待传输数据。

可选的,PCIe接口卡上包括至少一个PCIe端口,所述通过所述PCIe链路传输所述待传输数据之前,所述方法还包括:

检查所述PCIe链路所对应端口的端口资源是否被占用;

通过所述PCIe链路传输所述待传输数据,包括:

从端口资源未被占用的端口发送所述待传输资源。

可选的,所述方法还包括:

若所述PCIe链路对应的所有端口的端口资源都被占用,将所述待传输数据存放入待发送队列。

可选的,所述方法还包括:

若所述PCIe链路的目标端口的端口资源被释放,且所述待发送队列中包括待传输数据,通过所述目标端口发送所述待传输数据。

可选的,所述方法还包括:

若所述PCIe链路发生故障,获取所述PCIe链路断开的通知信息。

第三方面,本申请实施例提供一种数据传输装置,所述装置应用于第一方面所述的存储集群系统,所述装置包括:

第一获取单元,用于获取待传输数据;所述待传输数据为需要被第一存储控制器传输的数据;

传输单元,用于若所述第一存储控制器与第二存储控制器之间存在PCIe链路,通过所述PCIe链路传输所述待传输数据,所述第二存储控制器为所述存储集群系统除所述第一存储控制器的其他存储控制器。

可选的,若存在多个所述第二存储控制器,所述PCIe链路为多个PCIe链路,所述传输单元,用于:

采用轮询方式从所述多个PCIe链路中确定目标PCIe链路;

通过所述目标PCIe链路传输所述待传输数据。

可选的,PCIe接口卡上包括至少一个PCIe端口,所述装置还包括:

检查单元,用于检查所述PCIe链路所对应端口的端口资源是否被占用;

所述传输单元,用于:

从端口资源未被占用的端口发送所述待传输资源。

可选的,所述装置还包括:

存放单元,用于若所述PCIe链路对应的所有端口的端口资源都被占用,将所述待传输数据放入待发送队列。

可选的,所述装置还包括:

发送单元,用于若所述PCIe链路的目标端口的端口资源被释放,且所述待发送队列中包括待传输数据,通过所述目标端口发送所述待传输数据。

可选的,所述装置还包括:

第二获取单元,用于若所述PCIe链路发生故障,获取所述PCIe链路断开的通知信息。

由上述技术方案可以看出,本申请实施例具有以下优点:

本申请提供的存储集群系统包括多个存储控制器、PCIe接口卡和PCIe线缆。其中,多个存储控制器中的每个存储控制器具有PCIe插槽,PCIe接口卡可以插在存储控制器的PCIe插槽上。PCIe接口卡上提供PCIe插口,PCIe插口可以与PCIe线缆连接,这样便可以利用PCIe线缆通过PCIe插口将分别具有PCIe接口卡的两个存储控制器连接,形成PCIe链路。与传统存储集群系统相比,传统方式中的板载PCIe芯片不提供对外接口,通过板载PCIe芯片无法在位于不同控制器机箱中的存储控制器间建立PCIe链路。而本申请通过PCIe接口卡提供对外接口,若两个存储控制器具有PCIe接口卡,便可以通过PCIe线缆将两个存储控制器连接形成PCIe链路,以便提高存储控制器间数据传输速率,优化存储集群系统整体性能。

附图说明

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

图1为本申请实施例提供的一种存储集群系统的结构示例图;

图2为本申请实施例提供的一种数据传输方法的流程图;

图3为本申请实施例提供的一种数据传输装置的结构框图。

具体实施方式

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

传统的存储集群系统中,同一控制器机箱中的两个存储控制器间的数据传输采用板载PCIe芯片来进行承载,但是现有的板载PCIe芯片不提供对外接口,无法用于控制器机箱间的存储控制器的互联,故,不同控制器机箱之间的链路为FC链路。由于FC链路的带宽限制,在大数据量的场景下,FC链路的数据传输速率低,控制器机箱之间的FC链路往往会成为存储集群系统整体性能的瓶颈。

为了解决上述技术问题,本申请实施例提供一种存储集群系统,该系统包括多个存储控制器、PCIe接口卡和PCIe线缆。其中,多个存储控制器中的每个存储控制器具有PCIe插槽,PCIe接口卡可以插在存储控制器的PCIe插槽上。PCIe接口卡上提供PCIe插口,PCIe插口可以与PCIe线缆连接,这样便可以利用PCIe线缆通过PCIe插口将分别具有PCIe接口卡的两个存储控制器连接,形成PCIe链路。与传统存储集群系统相比,传统方式中的板载PCIe芯片不提供对外接口,通过板载PCIe芯片无法在位于不同控制器机箱中的存储控制器间建立PCIe链路。而本申请通过PCIe接口卡提供对外接口,只要两个存储控制器具有PCIe接口卡,便可以通过PCIe线缆将两个存储控制器连接形成PCIe链路,提高存储控制器间数据传输速率,优化了存储集群系统整体性能。

接下来,将结合附图对本申请实施例提供的一种存储集群系统进行介绍。参见图1,图1示出了一种存储集群系统的结构图。所述系统包括多个存储控制器101、PCIe接口卡102和PCIe线缆103,图1以系统中包括的2个存储控制器101为例进行介绍。

所述多个存储控制器101中的每个存储控制器具有PCIe插槽。

所述PCIe接口卡102,用于插在存储控制器101的PCIe插槽上,所述PCIe接口卡102上提供PCIe插口。

所述PCIe线缆103,用于通过所述PCIe插口将分别具有PCIe接口卡102的两个存储控制器101连接,形成PCIe链路。

如图1所示,图1中两个存储控制器101分别具有PCIe接口卡102,这两个存储控制器101通过PCIe线缆103连接,从而在这两个存储控制器101之间形成PCIe链路。

需要说明的是,具有PCIe接口卡102的两个存储控制器101可以位于同一个控制器机箱,也可以位于不同的控制器机箱。

例如,分别具有PCIe接口卡的两个存储控制器包括第一存储控制器和第二存储控制器,第一存储控制器可以位于第一控制器机箱,第二存储控制器可以位于第二控制器机箱,从而在位于不同控制器机箱的存储控制器间建立PCIe链路。

在一些情况下,存储集群系统中可能包括很多控制器机箱,不同控制器机箱中的存储控制器需要进行互联。例如,存储集群系统中包括4个控制器机箱,每个控制器机箱中的存储控制器需要与其他控制器机箱中的存储控制器建立PCIe链路,从而导致4个控制器机箱之间需要部署很多PCIe线缆。为了避免由于PCIe线缆过多而造成的布线混乱,在一些可能的实现方式中,所述系统还包括PCIe交换机,PCIe交换机通过所述PCIe线缆与具有PCIe接口卡的存储控制器连接。

这样,需要建立PCIe链路的控制器机箱中的存储控制器通过PCIe线缆与PCIe交换机即可,减少了部署PCIe线缆的数量。

在一种可能的实现方式中,一个PCIe插槽中可以***多个PCIe接口卡,从而连通多条PCIe链路。

在一种可能的实现方式中,所述PCIe接口卡上包括至少一个PCIe端口,每一条PCIe链路具有对应的PCIe端口。针对一个PCIe链路,可以通过对应的PCIe端口发送数据,从而通过该PCIe链路实现数据的传输。

本申请提供的存储集群系统包括多个存储控制器、PCIe接口卡和PCIe线缆。其中,多个存储控制器中的每个存储控制器具有PCIe插槽,PCIe接口卡可以插在存储控制器的PCIe插槽上。PCIe接口卡上提供PCIe插口,PCIe插口可以与PCIe线缆连接,这样便可以利用PCIe线缆通过PCIe插口将分别具有PCIe接口卡的两个存储控制器连接,形成PCIe链路。与传统存储集群系统相比,传统方式中的板载PCIe芯片不提供对外接口,通过板载PCIe芯片无法在位于不同控制器机箱中的存储控制器间建立PCIe链路。而本申请通过PCIe接口卡提供对外接口,若两个存储控制器具有PCIe接口卡,便可以通过PCIe线缆将两个存储控制器连接形成PCIe链路,以便提高存储控制器间数据传输速率,优化存储集群系统整体性能。

基于图1对应实施例所述的存储集群系统,本申请实施例还提供一种数据传输方法。参见图2所示,所述方法包括:

S201、获取待传输数据。

可以理解的是,当存储集群系统中的存储控制器例如第一存储控制器启动后,底层驱动上报PCIe链路信息给通信层。PCIe链路信息用于反映可用的PCIe链路,包括PCIe链路所连接的存储控制器的标识、PCIe接口卡的标识、端口的标识等。通信层可以记录PCIe链路信息,为链路传输分配端口资源。

当有数据例如待传输数据需要被传输时,通信层可以获取待传输数据。其中,待传输数据为需要被第一存储控制器传输的数据。

S202、若所述第一存储控制器与第二存储控制器之间存在PCIe链路,通过所述PCIe链路传输所述待传输数据。

其中,所述第二存储控制器为所述存储集群系统除所述第一存储控制器的其他存储控制器。

第一存储控制器可以位于同一控制器机箱中,也可以位于不同的控制器机箱中。这样,由于位于不同的控制器机箱中的存储控制器间也可以建立PCIe链路,从而可以通过PCIe链路实现不同控制器机箱中的存储控制器间数据传输,提高了数据传输的效率。

可以理解的是,若第一存储控制器与其他存储控制器之间不存在PCIe链路,才使用其它类型的链路传输所述待传输数据,例如通过FC链路传输所述待传输数据等。

在一些情况下,若存在多个所述第二存储控制器,所述PCIe链路为多个PCIe链路,即连接第一存储控制器的PCIe链路存在多个。在这种情况下,需要从多个PCIe链路中选择出一条PCIe链路进行数据传输,实现多个PCIe链路间的负载均衡。故,S202中通过所述PCIe链路传输所述待传输数据的一种可能的实现方式为采用轮询方式从所述多个PCIe链路中确定目标PCIe链路;通过所述目标PCIe链路传输所述待传输数据。当然,还可以采用偏好+轮询的方式从多个PCIe链路中确定目标PCIe链路。

在一种可能的实现方式中,PCIe接口卡上包括至少一个PCIe端口,在S202中通过所述PCIe链路传输所述待传输数据之前,通信层还可以遍历PCIe链路,检查所述PCIe链路所对应端口的端口资源是否被占用。若检查到某个端口的端口资源为被占用,则从端口资源未被占用的端口发送所述待传输资源。若检查到某个端口的端口资源被占用,则检查下一个端口的端口资源是否被占用,依次类推。

若检查完PCIe链路所对应所有端口后,发现所述PCIe链路对应的所有端口的端口资源都被占用,则将所述待传输数据存放入待发送队列,等待端口的端口资源被释放。

若所述PCIe链路的某个端口例如目标端口的端口资源被释放,可以检测待发送队列中是否包括待传输数据,若待发送队列中包括待传输数据,则通过所述目标端口发送所述待传输数据。

在一种可能的实现方式中,某个或某些PCIe链路可能发生故障,如果通信层不知晓哪个或哪些PCIe链路发生了故障,那么,通信层依旧可能通过该PCIe链路传输待传输数据,而该PCIe链路由于故障而无法传输待传输数据,从而需要重新选择用于传输待传输数据的PCIe链路。在这种情况下,为了避免由于选择发生了故障的PCIe链路传输待传输数据,导致需要重新选择用于传输待传输数据的PCIe链路,而造成的资源浪费,当PCIe链路发生故障时,可以获取所述PCIe链路断开的通知信息,例如驱动层向通信层发送通知信息,从而在选择用于传输待传输数据的PCIe链路时,直接排除故障的PCIe链路的干扰,避免资源的浪费。

本申请实施例提供的方法可以应用到存储集群系统中,该系统包括多个存储控制器、PCIe接口卡和PCIe线缆。其中,多个存储控制器中的每个存储控制器具有PCIe插槽,PCIe接口卡可以插在存储控制器的PCIe插槽上。PCIe接口卡上提供PCIe插口,PCIe插口可以与PCIe线缆连接,便可以利用PCIe线缆通过PCIe插口将分别具有PCIe接口卡的两个存储控制器连接,形成PCIe链路。这样,当获取到待传输数据时,若第一存储控制器与第二存储控制器之间存在PCIe链路,可以通过所述PCIe链路传输待传输数据。由于PCIe链路是通过PCIe接口卡和PCIe线缆建立的,PCIe接口卡具有对外接口,只要两个存储控制器分别具有PCIe接口卡,便具有建立PCIe链路的能力,尤其是当两个存储控制器分别位于不同的控制器机箱的情况下,从而可以通过PCIe链路实现不同控制器机箱中的存储控制器间数据传输,提高了数据传输的效率。

基于图2对应实施例提供的数据传输方法,本实施例还提供一种数据传输装置,所述装置应用于图1对应实施例所述的存储集群系统。参见图3,所述装置包括:

第一获取单元301,用于获取待传输数据;所述待传输数据为需要被第一存储控制器传输的数据;

传输单元302,用于若所述第一存储控制器与第二存储控制器之间存在PCIe链路,通过所述PCIe链路传输所述待传输数据,所述第二存储控制器为所述存储集群系统除所述第一存储控制器的其他存储控制器。

在一种实现方式中,若存在多个所述第二存储控制器,所述PCIe链路为多个PCIe链路,所述传输单元,用于:

采用轮询方式从所述多个PCIe链路中确定目标PCIe链路;

通过所述目标PCIe链路传输所述待传输数据。

在一种实现方式中,PCIe接口卡上包括至少一个PCIe端口,所述装置还包括:

检查单元,用于检查所述PCIe链路所对应端口的端口资源是否被占用;

所述传输单元,用于:

从端口资源未被占用的端口发送所述待传输资源。

在一种实现方式中,所述装置还包括:

存放单元,用于若所述PCIe链路对应的所有端口的端口资源都被占用,将所述待传输数据放入待发送队列。

在一种实现方式中,所述装置还包括:

发送单元,用于若所述PCIe链路的目标端口的端口资源被释放,且所述待发送队列中包括待传输数据,通过所述目标端口发送所述待传输数据。

在一种实现方式中,所述装置还包括:

第二获取单元,用于若所述PCIe链路发生故障,获取所述PCIe链路断开的通知信息。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种NAND复位方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!