数据传输方法及装置与流程

文档序号:16880348发布日期:2019-02-15 22:04阅读:170来源:国知局
数据传输方法及装置与流程

本申请涉及通信技术领域,尤其涉及一种数据传输方法及装置。



背景技术:

目前的双控存储系统通常包含应用服务器、两个完全独立且相同的存储控制器、磁盘柜。其中,应用服务器通过san(storageareanetwork,存储区域网络)网络分别连接到两个存储控制器,存储控制器的后端通过交换模块与磁盘柜相连接,两个存储控制器之间通过内部互联总线进行通信(包括数据通信和控制通信)。为了保证双控存储系统的性能,在两个存储控制器之间需要进行数据交互时,需要互联总线具有高带宽、低延时的数据传输能力。

然而,由于存储控制器的cpu在控制互联总线进行数据传输的同时,还需要执行其他任务,例如任务调度、心跳检测、处理应用服务器的访问等任务,从而无法保证两个存储控制器之间的数据传输效率。



技术实现要素:

有鉴于此,本申请提供一种数据传输方法及装置,以解决相关技术中两个存储控制器之间的数据传输效率低的问题。

根据本申请实施例的第一方面,提供一种数据传输方法,所述方法应用于存储控制器,所述存储控制器上设有fpga,所述fpga与对端存储控制器中的fpga通过xaui互联,所述方法包括:

获取待下刷数据,将所述待下刷数据写入第一内存;

通过所述fpga,以dma方式读取所述第一内存中的待下刷数据,并将读取的待下刷数据通过所述xaui发送至对端存储控制器中的fpga。

根据本申请实施例的第二方面,提供一种数据传输装置,所述装置应用于存储控制器,所述存储控制器上设有fpga,所述fpga与对端存储控制器中的fpga通过xaui互联,所述装置包括:

获取并写入模块,用于获取待下刷数据,将所述待下刷数据写入第一内存;

读取并发送模块,用于通过所述fpga,以dma方式读取所述第一内存中的待下刷数据,并将读取的待下刷数据通过所述xaui发送至对端存储控制器中的fpga。

应用本申请实施例,通过在存储控制器中设置用于控制数据传输的fpga,cpu在获取到待下刷数据时,可以直接将待下刷数据写入第一内存,由fpga从第一内存中读取待下刷数据,并通过xaui通道将读取的待下刷数据发送至对端存储控制器的fpga中,从而无需经过cpu控制实现两个存储控制器之间的数据传输,并且由于存储控制器中的fpga只用于进行数据传输,因此可以提高两个存储控制器之间的数据传输效率,又由于两个存储控制器中的fpga是通过xaui实现的数据传输,而xaui具有高带宽、低延时的数据传输特点,因此可以进一步提高两个存储控制器之间的数据传输效率。

附图说明

图1为本申请根据一示例性实施例示出的一种双控数据交互结构图;

图2为本申请根据一示例性实施例示出的一种数据传输方法的实施例流程图;

图3为本申请根据一示例性实施例示出的一种存储控制器的硬件结构图;

图4为本申请根据一示例性实施例示出的一种数据传输装置的实施例结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

图1为本申请根据一示例性实施例示出的一种双控数据交互结构图,图1中的存储控制器a和存储控制器b为双控存储系统中的两个完全独立且相同的存储控制器,两个存储控制器之间的fpga(fieldprogrammablegatearray,现场可编程门阵列)通过xaui(10gigabitattachmentunitinterface,10g附属单元接口)实现互联,fpga与内存之间通过dma方式进行读写。

当有数据从存储控制器a向存储控制器b发送时,存储控制器a中的cpu将数据下刷到内存中,当存储控制器a中的fpga发现内存中有数据下刷时,通过dma方式从内存中读取下刷的数据,并将该数据通过xaui发送至存储控制器b中的fpga,存储控制器b中的fpga通过dma方式,将接收到的数据作为上报数据写入内存,当存储控制器b中的cpu发现内存中有上报数据写入时,从内存中读取上报数据,并对该上报数据进行业务处理。

基于上述描述可知,当两个存储控制器之间有数据传输时,直接由存储控制器中的fpga实现了两个存储控制器数据传输,无需经过cpu控制实现数据传输,由于存储控制器中的fpga只用于进行数据的传输,因此可以提高两个存储控制器之间的数据传输效率,又由于两个存储控制器中的fpga是通过xaui实现的数据传输,而xaui具有高带宽、低延时的数据传输特点,因此可以进一步提高两个存储控制器之间的数据传输效率。

下面以具体实施例对本申请的技术方案进行详细阐述。

图2为本申请根据一示例性实施例示出的一种数据传输方法的实施例流程图,该数据传输方法的实施例可以应用于上述图1中的任一存储控制器(以下简称本端存储控制器),如果实施例应用于存储控制器a上,则对端存储控制器为存储控制器b,如果实施例应用于存储控制器b上,则对端存储控制器对存储控制器a。如图2所示,该数据传输方法包括如下步骤:

步骤201:获取待下刷数据,将所述待下刷数据写入第一内存。

在一实施例中,针对获取待下刷数据的过程,在对端存储控制器出现故障,恢复对端存储控制器的业务时,可以将本端存储控制器中的数据确定为待下刷数据;或者本端存储控制器接收到外部输入的数据时,可以将该数据也确定为待下刷数据。

在一实施例中,针对将所述待下刷数据写入第一内存的过程,本端存储控制器可以从第一内存中分配一段存储空间,并将待下刷数据写入分配的存储空间中。

其中,本端存储控制器可以预先将内存划分为第一内存和第二内存,第一内存只用于存储cpu写入的数据,第二内存只用于存储fpga写入的数据,由于待下刷数据属于cpu要写入的数据,因此需要写入第一内存中。

步骤202:通过所述fpga,以dma方式读取所述第一内存中的待下刷数据。

在一实施例中,本端存储控制器在将待下刷数据写入第一内存之后,可以将写入位置通知给fpga,从而所述fpga可以根据该写入位置,以dma方式读取所述第一内存中的待下刷数据。

其中,写入位置可以是上述步骤201中所述的分配的存储空间的起始地址和偏移量,本领域技术人员可以理解的是,dma方式可以通过相关技术实现,本申请在此不再详述。

需要说明的是,在fpga从第一内存中将待下刷数据读走之后,可以为第一内存设置第一标记,从而当检测到第一内存设置有第一标记时,释放第一内存,并删除第一标记。

其中,基于上述步骤201所述,可以为从第一内存中分配的存储空间设置第一标记,用于表示该段存储空间中的数据已经被fpga读走,从而当本端存储控制器的cpu检测到该段存储空间设置有第一标记时,可以释放该段存储空间,并删除第一标记,使得该段存储空间可以继续使用。

步骤203:通过所述fpga,将读取的待下刷数据通过所述xaui发送至对端存储控制器中的fpga。

在一实施例中,本端存储控制器可以通过fpga将所述待下刷数据封装为以太网帧后,再将所述以太网帧通过xaui发送至对端存储控制器中的fpga。

其中,由于xaui通道为一种光纤通道,而光纤通道要求数据以以太网帧的格式传输,因此需要先将待下刷数据封装为以太网帧后,再发送至对端存储控制器中的fpga,如表1所示,为一种示例性的以太网帧结构,其中的前导码(preamble)用7个字节表示,用于数据传输过程中发送与接收的速率同步;帧开始符(sfd)用1个字节表示,表示下一个字节开始是真实数据;目的mac地址(dstmac)用6个字节表示,表示帧的接收者的地址;源mac地址(srcmac)用6个字节表示,表示帧的发送者的地址;长度(length)用2个字节表示,表示该帧数据字段可用长度;类型(type)用2个字节表示,表示该帧数据的协议类型;数据与填充(dataandpad)属于数据字段,用46~1500个字节表示,如果加入数据字段后以太网帧长度不到64个字节,会在数据字段加入“填充”,直至达到64个字节;帧校验序列(fcs)用4个字节表示,用于接收者判断该以太网帧是否传输错误,如果错误,则丢弃该以太网帧。

表1

需要说明的是,基于上述步骤201所述的第二内存是用于存储fpga写入的数据,因此当本端存储控制器检测到第二内存设置有第二标记时,从第二内存中读取待上报数据,并删除第二标记,所述第二标记是fpga在将对端存储控制器发送的待上报数据以dma方式写入第二内存后添加的标记,并对读取的待上报数据进行业务处理。

其中,第二标记用于表示第二内存中的数据已经被cpu读走,可以将数据占用的空间释放掉,并删除第二标记,以方便循环使用。

本申请实施例中,通过在存储控制器中设置用于控制数据传输的fpga,cpu在获取到待下刷数据时,可以直接将待下刷数据写入第一内存,由fpga从第一内存中读取待下刷数据,并通过xaui通道将读取的待下刷数据发送至对端存储控制器的fpga中,从而无需经过cpu控制实现两个存储控制器之间的数据传输,并且由于存储控制器中的fpga只用于进行数据传输,因此可以提高两个存储控制器之间的数据传输效率,又由于两个存储控制器中的fpga是通过xaui实现的数据传输,而xaui具有高带宽、低延时的数据传输特点,因此可以进一步提高两个存储控制器之间的数据传输效率。

图3为本申请根据一示例性实施例示出的一种存储控制器的硬件结构图,该存储控制器包括:通信接口301、处理器302、机器可读存储介质303和总线304;其中,通信接口301、处理器302和机器可读存储介质303通过总线304完成相互间的通信。处理器302通过读取并执行机器可读存储介质302中与数据传输方法的控制逻辑对应的机器可执行指令,可执行上文描述的数据传输方法,该方法的具体内容参见上述实施例,此处不再累述。

本申请中提到的机器可读存储介质303可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质303可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

图4为本申请根据一示例性实施例示出的一种数据传输装置的实施例结构图,所述数据传输装置应用于上述图1中的任一存储控制器,如图4所示,所述数据传输装置包括:

获取并写入模块410,用于获取待下刷数据,将所述待下刷数据写入第一内存;

读取并发送模块420,用于通过所述fpga,以直接内存存取dma方式读取所述第一内存中的待下刷数据,并将读取的待下刷数据通过所述xaui发送至对端存储控制器中的fpga。

在一可选实现方式中,所述装置还包括(图4中未示出):

通知模块,用于在所述获取并写入模块将所述待下刷数据写入第一内存之后,将写入位置通知给所述fpga;

所述读取并发送模块420,具体用于在通过所述fpga以dma方式读取所述第一内存中的待下刷数据过程中,根据所述写入位置,以dma方式读取所述第一内存中的待下刷数据。

在一可选实现方式中,所述装置还包括(图4中未示出):

标记并释放模块,用于在所述读取并发送模块420通过所述fpga,以dma方式读取所述第一内存中的待下刷数据之后,通过所述fpga为所述第一内存设置第一标记;当检测到所述第一内存设置有第一标记时,释放所述第一内存,并删除所述第一标记。

在一可选实现方式中,所述读取并发送模块420,具体用于在通过所述fpga,将读取的待下刷数据通过所述xaui发送至对端存储控制器中的fpga的过程中,将所述待下刷数据封装为以太网帧;将所述以太网帧通过所述xaui发送至对端存储控制器中的fpga。

在一可选实现方式中,所述装置还包括(图4中未示出):

上报数据获取并处理模块,用于当检测到第二内存设置有第二标记时,从所述第二内存中读取待上报数据,并删除所述第二标记,所述第二标记是所述fpga在将对端存储控制器发送的待上报数据以dma方式写入第二内存后添加的标记;对读取的待上报数据进行业务处理。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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