分布式节点间的数据传输方法及分布式节点设备技术

技术编号:10976445 阅读:205 留言:0更新日期:2015-01-30 11:47
本发明专利技术公开了一种分布式节点间的数据传输方法及分布式节点设备,用以在尽量减少占用的CPU资源的前提下,提高数据传输的安全性。该方法为:源节点的CPU获得待写入数据以及校验数据,所述校验数据与所述待写入数据中的从所述待写入数据末端向前的设定长度的数据部分相同,通过目的节点的网络IO设备将所述待写入数据写入所述目的节点的非易失性存储器中;源节点的CPU通过目的节点的网络IO设备获取目的节点的非易失性存储器中、已经写入的数据中的设定长度的数据,该设定长度的数据为从所述已经写入的数据末端向前的设定长度的数据;源节点的CPU确定从目的节点获取的所述设定长度的数据与所述校验数据相同时,确定数据备份成功。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种分布式节点间的数据传输方法及分布式节点设备,用以在尽量减少占用的CPU资源的前提下,提高数据传输的安全性。该方法为:源节点的CPU获得待写入数据以及校验数据,所述校验数据与所述待写入数据中的从所述待写入数据末端向前的设定长度的数据部分相同,通过目的节点的网络IO设备将所述待写入数据写入所述目的节点的非易失性存储器中;源节点的CPU通过目的节点的网络IO设备获取目的节点的非易失性存储器中、已经写入的数据中的设定长度的数据,该设定长度的数据为从所述已经写入的数据末端向前的设定长度的数据;源节点的CPU确定从目的节点获取的所述设定长度的数据与所述校验数据相同时,确定数据备份成功。【专利说明】分布式节点间的数据传输方法及分布式节点设备
本专利技术涉及计算机
,尤其涉及一种分布式节点间的数据传输方法及分布式节点设备。
技术介绍
目前,分布式存储系统中,数据分布于多个分布式节点,为了保证数据的可靠性,数据采用多副本的保存方式,即一份数据需要保存在多个分布式节点,这就导致分布式节点之间需要频繁进行大量的数据拷贝。如图1所示的分布式存储系统中,将分布式节点A中的数据的副本保存至分布式节点C中,将分布式节点B中的数据的副本保存至分布式节点D中。 为了达到高端存储所要求的吞吐量和低延时的要求,普通以太网在进行数据传输时,发送端和接收端均需要中央处理器(CPU)参与数据的搬移,且需要操作系统在内核态和用户态之间进行频繁上下文切换。无限带宽(Infiniband,简称IB)网络则可以提供远程直接数据获取(RDMA)技术,采用RDMA技术在发送端和接收端进行数据传输过程中无需CPU的参与,极大的提高了数据传输的速度。 RDMA技术允许数据从一个计算机内存直接传输到另一个计算机内存,基本原理如图2所示,CPU无需参与数据传输过程(图2中的步骤2和步骤4),仅需参与数据传输前期的控制(图2中的步骤I)和数据传输完成之后的通知过程(图2中的步骤5)。 RDMA在节点之间主要有以下几种通信操作:发送(Send)操作、写(Write)操作、读(Read)操作和原子(Atomic)操作。各通信操作的数据传输均是由IB硬件完成,数据发送和数据接收过程中主机无需参与,但在发起数据传输和完成数据传输后的处理上有所不同,具体如图3所示。 其中,发送操作按照步骤I?4执行,发送操作中在发起数据传输过程和接收数据之前需要发送端和接收端的主机参与协商,并且在发送数据和接收数据完成时,发送端和接收端都需要一个通知消息(Notify)来通知主机中的应用; 写操作按照步骤I?4执行,接收端的主机无需进行任何操作,也就是说接收端主机不需要参与数据传输过程,也无需参与数据传输之前的协商和数据传输完成之后的通知过程,而发送端主机需要参与数据发送之前的通知和数据发送完成之后的通知过程; 读操作按照步骤I?4执行,接收端从发送端读取数据,发送端无需参与整个数据传输过程,也无需参与数据读取之前的通知和数据读取完成之后的通知过程,而接收端需要发起读操作,并在数据读取完成之后需要通知主机; 原子(Atomic)操作按照步骤I?3执行,原子操作中一端需要传输64比特(bite)的数据到对端,并对对端固定位置的64bite数据进行操作,例如原子增加、原子减小或原子替换的操作,此时接收端无需参数数据传输过程,而发送端需要进行通知操作。 在现有的分布式系统中,分布式节点之间需要传输数据时,一般采用如图4所示的流程,具体如下: 发送端准备需要发送的缓存(BufT)信息(如缓存区的地址、长度、权限等),并将Buff信息通过RDMA的发送操作发送到接收端,并硬件通知应用消息已成功发送; 接收端硬件收到通知消息后,通知本端应用根据发送端的Buff信息发起一次RDMA读操作,接收端硬件完成读操作,将位于发送端的内存中的数据读取到本端的内存中,并通知接收端应用; 接收端应用接收到通知消息后,确定数据已经成功写入非易失性存储器,发送已读取到数据的应答消息给发送端; 发送端硬件接收到应答消息后,通知本端的应用,本端应用获得该应答消息后确定对端已经成功读取到数据,可以通知客户端输入输出完成。 该过程中,接收端CPU需要参与数据传输的控制和通知,接收端和发送端之间需要进行多次交互才能完成数据传输过程,且该交互过程无法确定数据是否完全备份至接收端的非易失性存储器,如果在数据备份不完全的情况下,系统发起后续的数据处理过程,会影响系统的安全性。
技术实现思路
本专利技术实施例提供一种分布式节点间的数据传输方法及分布式节点设备,用以在减少占用的CPU资源的前提下,提高数据传输的安全性。 本专利技术实施例提供的具体技术方案如下: 第一方面,提供了一种分布式节点间的数据传输方法,包括: 源节点的中央处理器CPU获得待写入数据以及用于验证所述待写入数据是否备份完全的校验数据,所述校验数据与所述待写入数据中的从所述待写入数据末端向前的设定长度的数据部分相同; 所述源节点的CPU通过目的节点的网络输入输出1设备将所述待写入数据写入所述目的节点的非易失性存储器中; 所述源节点的CPU通过所述目的节点的网络1设备获取所述目的节点的非易失性存储器中、已经写入的数据中的、设定长度的数据,所述设定长度的数据为从所述已经写入的数据末端向前的设定长度的数据; 所述源节点的CPU确定从所述目的节点获取的所述设定长度的数据与所述校验数据相同时,确定数据备份成功。 结合第一方面,在第一种可能的实现方式中,所述源节点的中央处理器CPU获得待写入数据以及用于验证所述待写入数据是否备份完全的校验数据,包括: 所述源节点的CPU获得待写入的原始数据以及预设的用于验证所述原始数据是否备份完全的、具有设定长度的标记位,在所述待写入的原始数据末端增加所述标记位,将增加所述标记位后得到的数据作为所述待写入数据,将所述标记位作为所述校验数据; 所述源节点的CPU确定从所述目的节点获取的所述设定长度的数据与所述校验数据相同时,确定数据备份成功,包括: 所述源节点的CPU确定所述标记位包含的字节数与所述设定长度的数据包含的字节数相同,且所述设定长度的数据的每个字节的内容均与所述标记位中的同一位置对应的字节的内容相同,确定数据备份成功。 结合第一方面,在第二种可能的实现方式中,所述源节点的CPU获得待写入数据以及用于验证所述待写入数据是否备份完全的校验数据,包括: 所述源节点的CPU获得待写入的原始数据,将所述待写入的原始数据作为所述待写入数据,将所述待写入的原始数据中的从所述待写入的原始数据末端向前的设定长度的数据部分作为所述校验数据; 所述源节点的CPU确定从所述目的节点获取的所述设定长度的数据与所述校验数据相同时,确定数据备份成功,包括: 所述源节点的CPU确定所述标记位包含的字节数与所述设定长度的数据包含的字节数相同,且所述设定长度的数据的每个字节的内容均与所述校验数据中的同一位置对应的字节的内容相同,确定数据备份成功。 结合第一方面至第二种可能的实现方式中的任意一种,在第三种可能的实现方式中,所述源节点的CPU通过所述目的节点本文档来自技高网
...

【技术保护点】
一种分布式节点间的数据传输方法,其特征在于,包括:源节点的中央处理器CPU获得待写入数据以及用于验证所述待写入数据是否备份完全的校验数据,所述校验数据与所述待写入数据中的从所述待写入数据末端向前的设定长度的数据部分相同;所述源节点的CPU通过目的节点的网络输入输出IO设备将所述待写入数据写入所述目的节点的非易失性存储器中;所述源节点的CPU通过所述目的节点的网络IO设备获取所述目的节点的非易失性存储器中、已经写入的数据中的、设定长度的数据,所述设定长度的数据为从所述已经写入的数据末端向前的设定长度的数据;所述源节点的CPU确定从所述目的节点获取的所述设定长度的数据与所述校验数据相同时,确定数据备份成功。

【技术特征摘要】

【专利技术属性】
技术研发人员:熊四兵倪小珂李显才
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1