CN112788079A - 一种数据传输方法、网络设备、网络***及芯片 - Google Patents

一种数据传输方法、网络设备、网络***及芯片 Download PDF

Info

Publication number
CN112788079A
CN112788079A CN201911083122.0A CN201911083122A CN112788079A CN 112788079 A CN112788079 A CN 112788079A CN 201911083122 A CN201911083122 A CN 201911083122A CN 112788079 A CN112788079 A CN 112788079A
Authority
CN
China
Prior art keywords
data
written
write request
destination
network device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911083122.0A
Other languages
English (en)
Inventor
游俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911083122.0A priority Critical patent/CN112788079A/zh
Priority to PCT/CN2020/127446 priority patent/WO2021089036A1/zh
Publication of CN112788079A publication Critical patent/CN112788079A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据传输方法、网络设备、网络***及芯片。当所述网络设备被配置为目的端网络设备时,会接收源端设备的写请求,并执行所述写请求以将所述写请求中的待写数据写入目的端设备。在所述待写数据写入所述目的端设备后,从所述目的端设备中读取已写入数据。将所述写请求中的待写数据与所述读取的已写入数据进行比较;当所述待写数据与所述读取的已写入数据相同,返回写成功响应给所述源端设备;当所述待写数据与所述读取的已写入数据不同,返回写失败响应给所述源端设备。采用本申请的方法,通过目的端网络设备对写入的数据进行校验,无需再将数据传输至源端设备进行校验,从而减少了对网络传输资源的消耗,而且降低了数据传输的时延。

Description

一种数据传输方法、网络设备、网络***及芯片
技术领域
本申请涉及存储领域,尤其涉及一种数据传输方法、网络设备、网络***及芯片。
背景技术
为了减少数据传输过程中对设备的计算资源的占用,一般采用远程直接数据存取(Remote Direct Memory Access,RDMA)的方式传输数据,例如,当需要把源端设备的数据传输至目的端设备时,源端设备的数据首先传输至目的端设备的网卡,而目的端设备的网卡中设置有RDMA芯片,这样,可通过网卡中的RDMA芯片直接将数据写入目的端设备的内存,而不需要目的端设备的处理器的参与,从而节省了目的端设备的计算资源。
另外,为了保证传输数据的可靠性,当数据写入目的端设备后,还需要对所写入的数据进行校验,由于通过RDMA的方式传输数据时,不需要目的端设备的处理器的参与,则目的端设备不能对所写入的数据进行校验,需要通过源端设备进行校验,而通过源端设备校验时,需要将写入目的端设备内存中的数据读取至源端设备,这样不但消耗网络资源,而且增加了数据传输的时延。
发明内容
本发明提供一种数据传输方法、网络设备、网络***、及芯片,用于在目的端设备的网络设备执行数据校验,不仅节省了网络传输资源,而且减少了数据传输的时延。
本发明第一方面提供一种网络设备,所述网络设备被配置为目的端网络设备(如:目的端设备的网卡)。所述网络设备接收来自于源端设备(如:源端计算设备)的写请求,执行所述写请求以将所述写请求中的待写数据写入目的端设备(如:目的端计算设备);在所述待写数据写入所述目的端设备后,从所述目的端设备中读取已写入数据;将所述写请求中的待写数据与所述读取的已写入数据进行比较;当所述待写数据与所述读取的已写入数据相同,返回写成功响应给所述源端设备;当所述待写数据与所述读取的已写入数据不同,返回写失败响应给所述源端设备。
采用本发明提供的网络设备,可以将源端设备(如:源端计算设备)传输至目的端设备(如:目的端计算设备)的数据经过目的端设备的网络设备(简称为:目的端网络设备)写入目的端设备后,由所述目的端设备的网络设备(目的端设备的网卡)对写入的数据进行校验,而无需将数据传输至源端设备(如:源端计算设备)进行校验,从而减少了现有技术中对网络传输资源的消耗,在目的端设备的网络设备对已写入的数据进行校验后,直接返回数据写成功的响应给源端设备,避免了现有技术的通信开销,从而整体上降低了数据传输的时延。
在本发明第一方面的一种可能的实现中,所述网络设备被配置为目的端网络设备还用于在接收所述源端设备的写请求之后,缓存所述写请求中的待写数据。在具体实现中,可以在目的端网络设备的缓存中分配一块区域,用来缓存写请求中的待写数据。
在本发明第一方面的另一种可能的实现中,所述网络设备被配置为目的端网络设备用于具体执行:解析所述写请求,获得所述待写数据以及所述待写数据的目的地址;及将所述待写数据写入所述目的端设备(如:目的端计算设备)中以所述目的地址标识的存储空间中。在具体实现中,上述的存储空间是目的端设备的内存。
在本发明第一方面的另一种可能的实现中,所述网络设备被配置为源端网络设备(如:源端计算设备的网卡)以用于执行:接收所述源端设备(如:源端计算设备)发送的包含至少两个分条数据的条带数据,所述条带数据包含的各个分条数据的写入地址及至少一个校验数据的写入地址;根据所述至少两个分条数据生成所述至少一个校验数据;针对每一个分条数据,根据所述分条数据以及所述分条数据的写入地址生成一个写请求;针对每一个校验数据,根据所述校验数据以及所述校验数据的写入地址生成一个写请求;将上述生成的每个写请求分别发送至一个目的端设备。
在上面这种可能的实现方式中,将校验数据的生成从源端设备(如:源端计算设备)卸载(Offload)到源端网络设备上(如:源端计算设备的网卡),可以降低源端设备的负载,节省源端设备(如:源端计算设备)的计算资源,从而整体上提高源端设备的数据处理效率。
在本发明第一方面的另一种可能的实现中,所述网络设备被配置为源端网络设备以用于执行:接收所述源端设备发送的待写数据,及存储所述待写数据的至少一个逻辑副本的至少一个逻辑地址;锁定所述至少一个逻辑地址;针对每一个逻辑地址,根据所述待写数据及所述逻辑地址生成一个写请求;将所述生成的至少一个写请求中的每个写请求分别发送至一个目标网络设备。
在上面这种可能的实现方式中,将副本数据的生成从源端设备(如:源端计算设备)卸载(Offload)到源端网络设备上(如:源端计算设备的网卡),,可以降低源端设备的负载,节省源端设备(如:源端计算设备)的计算资源,从而整体上提高源端设备的数据处理效率。
在本发明第一方面的再一种可能的实现方式中,所述网络设备被配置为源端网络设备以用于:并行将所述生成的至少一个写请求中的每个写请求分别发送至一个目标网络设备。
在上面这种可能的实现方式中,通过并行地将多个写请求发送至目标网络设备,增强了源端网络设备(如:源端计算设备的网卡)数据发送的并发性,从而提高数据的传输效率。
本发明第二方面提供一种数据传输的方法,所述方法可由目的网络设备执行。其中该方法包括:
接收来自于源端设备的写请求,执行所述写请求以将该写请求中的待写数据写入目的端设备;
在所述待写数据写入所述目的端设备后,从所述目的端设备中读取已写入数据;
将所述写请求中的待写数据与所读取的已写入数据比较;
当所述待写数据与所述读取的已写入数据相同,返回写成功响应给源端设备;
当所述待写数据与所述读取的已写入数据不同,返回写失败响应给源端设备。
采用本发明第二方面所提供的数据传输方法,可以将源端设备传输至目的端设备的数据经过目的端设备的网络设备(简称为:目的端网络设备)写入所述目的端设备后,由所述目的端设备的网络设备对写入的数据进行校验,而无需将数据传输至源端设备进行校验,从而减少了现有技术中对网络资源的消耗,在目的端设备的网络设备对已写入的数据进行校验后,直接返回数据写成功的响应给源端设备,避免了现有技术的通信开销,从而整体上降低了数据传输的时延。
在本发明第二方面的一种可能的实现中,所述方法由目的端网络设备执行,且还包括:在所述接收写请求后,缓存所述写请求中的待写数据。
在本发明第二方面另一种可能的实现中,所述写请求还包括所述待写数据的目的地址,所述执行所述写请求以将所述写请求中的待写数据写入目的端设备包括:将所述写请求中的待写数据,按照所述写请求中的目的地址写入所述目的端设备的存储单元。
在本发明第二方面的另一种可能的实现中,所述方法由源网络设备执行。该方法还包括:
接收源端设备发送的条带数据以及所述构成所述条带数据的多个分条数据的写入地址及至少一个校验数据的写入地址;
根据所述多个分条数据生成所述至少一个校验数据;
根据所述多个分条数据的写入地址,所述至少一个校验数据的写入地址,所述多个分条数据及所述至少一个校验数据生成多个写请求,其中每个分条数据对应一个写请求,每个校验数据对应一个写请求;
将所述多个写请求中的每个写请求分别发送至一个目的端设备。
在上面这种可能的实现方式中,将校验数据的生成从源端设备(如:源端计算设备)卸载(Offload)到源端网络设备上(如:源端计算设备的网卡),可以降低源端设备的负载,节省源端设备(如:源端计算设备)的计算资源,从而提高源端设备的数据处理效率。
在本发明第二方面的另一种可能的实现中,所述方法还包括:
所述源网络设备接收所述源端设备发送的待写数据,及所述待写数据的逻辑地址;
获取所述逻辑地址对应存储所述待写数据的多个副本的副本地址;
锁定所述逻辑地址;
根据所述待写数据及每个副本地址生成多个写请求;
将所述多个写请求中的每个写请求分别发送至一个目标网络设备。
在上面这种可能的实现方式中,将副本数据的生成从源端设备(如:源端计算设备)卸载(Offload)到源端网络设备上(如:源端计算设备的网卡),可以降低源端设备的负载,节省源端设备(如:源端计算设备)的计算资源,从而整体上提高源端设备的数据处理效率。
在本发明第二方面再一种可能的实现中,将所述多个写请求中的每个写请求分别并行发送至一个目标网络设备。
在上面这种可能的实现方式中,通过并行地将多个写请求发送至目标网络设备,增强了源端网络设备(如:源端计算设备的网卡)数据发送的并发性,从而提高数据的传输效率。
本发明第三方面提供一种网络***。所述网络***包括源端设备(如:源端计算设备)、目的端设备(如:目的端计算设备)、以及和所述目的端设备相连的如第一方面或第一方面任意一种可能的实现所提供的目的端网络设备(如:目的端计算设备的网卡)。
本发明第四方面提供一种芯片,包括接口及处理器,所述接口用于为所述处理器提供输入及输出数据;所述处理器,用于执行本发明第二方面或第二方面任意一种可能的实现提供的方法。在具体实现过程中,该芯片可以以CPU(Central processing unit,中央处理器)、MCU(Micro controller Unit,微控制器)、MPU(Micro processing unit,微处理器)、DSP(Digital signal processing,数字信号处理器)、SoC(System on Chip,片上***)、ASIC(application-specific integrated circuit,专用集成电路)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)或PLD(Programmable Logic Device,可编辑逻辑器件)的形式实现。
本发明第五方面提供一种网络设备,所述网络设备包括处理器及存储器,所述存储器中存储有程序指令,所述处理器执行所述存储器中的程序指令以执行本发明第二方面或第二方面任意一种可能的实现所提供的方法。
本发明第六方面提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本发明第二方面或第二方面任意一种可能的实现所提供的方法。这些计算机可读存储包括但不限于如下的一个或者多个:ROM(Read-Only Memory,只读存储器)、PROM(Programmable ROM,可编程ROM)、EPROM(Erasable PROM,可擦除的PROM)、Flash存储器、EEPROM(Electrically EPROM,电EPROM)和硬盘驱动器(Harddrive)。
第七方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明第二方面或第二方面任意一种可能的实现所提供的方法。
可以理解,本发明的第三方面和第三方面的任意一种可能的实现方式和第一方面和第一方面的任意一种可能的实现方式分别对应,第四、五、六、七方面和它们任意一种可能的实现方式和第二方面以及第二方面任意一种可能的实现方式分别对应,其实现的技术效果不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的数据传输***的架构图。
图2为本发明实施例提供的数据传输方法的流程图。
图3为本发明实施例提供的网络设备的模块图。
图4为本发明实施例提供的网络设备的硬件结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1所示,为一种网络传输***的架构图。源端设备10与目的端设备20之间通过网络30连接。本发明实施例的一种适用场景为:源端设备10及目的端设备20可以为存储阵列,在主机(图未示)发送写请求至源端设备10后,源端设备10根据预设的可靠性策略,源端设备10会将写请求中的待写数据写入多个目的端设备20。为了方便描述,本发明实施例仅以一个目的端设备20为例进行说明。
源端设备10包括处理单元101、存储单元102及网络设备103。网络设备103中包括远程直接数据存取(Remote Direct Memory Access,RDMA)芯片1031。目的端设备20包括处理单元201、存储单元202及网络设备203。网络设备203中包括RDMA芯片2031。存储单元102与存储单元202分别为源端设备10及目的端设备20的内存,可以为动态随机存取存储器(Dynamic Random Access Memory,DRAM),也可以为存储级内存(storage class memory,SCM)。
处理单元101与处理单元201可以有多种具体实现形式,例如可以为中央处理器(central processing unit,CPU)或图像处理器(graphics processing unit,GPU),可以是单核处理器或多核处理器,如果实现为多核处理器,处理器的数目不做限定。
存储单元102与存储单元202分别为源端设备10及目的端设备20的内存,可以为动态随机存取存储器(Dynamic Random Access Memory,DRAM),也可以为存储级内存(storage class memory,SCM)。存储单元102与存储单元202用于存储程序代码和数据,以便于处理单元调用执行以实现相关功能。
在本发明实施例中,网络设备103与网络设备203分别为属于源端设备10及目的端设备20的网卡,但在其他实施例中,所述网络设备103与网络设备203为分别连接至源端设备10及目的端设备20的交换机。
本发明实施例中,在将数据从源端设备10传输至目的端设备20时,采用RDMA的方式,具体为:源端设备10的处理单元101将写请求先发送至源端设备10的网络设备103,网络设备103的RDMA芯片1031将写请求转发至目的端设备20的网络设备203,网络设备203的RDMA2031将写请求中的数据写入目的端设备20的存储单元202。在通过RDMA将数据由源端设备10写入目的端设备20时,目的端设备20的处理单元201是不需要参与的,所以节省了目的端设备20的计算资源。
一般为了防止数据写入存储单元时出错,都要对写入的数据进行校验,但在采用RDMA进行数据传输时,由于目的端设备20的处理单元201不参与数据的传输,所以无法通过目的端设备进行数据的校验。目前常用的方法是采用源端设备10的处理单元101对写入目的端设备20的存储单元202的数据进行校验,校验的过程包括:
(1)在数据写入目的端设备20的存储单元202后,目的端设备20发送响应信息给源端设备10。
(2)源端设备10的处理单元101再发起一次读请求,将写入目的端设备20的存储单元202的数据读取至源端设备10,由源端设备10的处理单元101比较写请求中的数据与从目的端设备20的存储单元202中读取的数据是否一致。
(3)如果比较结果显示两者一致,则数据校验成功,则将写完成的响应发给产生所述写请求的应用。
上述现有技术中的这种校验方法,已写入的数据需要从目的端设备20读取至源端设备10,增加了网络带宽的消耗,由于需要源端设备发送读取目的端设备已写入数据的指令,增加了数据传输过程的通信开销,从而整体上也增加了数据写入操作的时延。
为了解决上述问题,本发明提供一种数据传输方法,源端设备10传输至目的端设备20的数据经过目的端设备20的网络设备203写入所述目的端设备的存储单元202后,由所述目的端设备20的网络设备203对写入的数据进行校验,而无需将数据传输至源端设备10进行校验,从而减少了对网络资源的消耗,在目的端设备的网络设备对已写入的数据进行校验后,直接返回数据写成功的响应给源端设备,避免了现有技术中的通信开销,从而整体上降低了数据传输的时延。下面结合图2,将源端设备10产生的数据写入目的端设备20的为例介绍本发明实施例所提供的数据传输方法。
如图2所示,为本发明实施例中将数据从源端设备10写入目的端设备20的方法的流程图。
步骤S201,源端设备10接收主机发送的写请求,所述写请求目的端设备中携带待写数据及待写数据的逻辑地址。
在执行本步骤时,源端设备10作为存储设备时,接收主机的写请求后,会对写请求中的待写数据进行存储。具体实现中,主机的写请求,可能是运行在主机的应用程序或者运行在主机虚拟机中的应用程序发出的。
步骤S202,源端设备10的处理单元101确定源端设备10的可靠性策略,如果该源端设备10所支持的是纠删码(erasure code,EC)或者磁盘冗余阵列(Redundant Arrays ofIndependent Drives,RAID)策略,则执行步骤S203,如果该源端设备10所支持的是多副本的可靠性策略,则执行步骤S205。
在数据传输过程中有可能产生数据丢失,另外,由于存储设备的故障,也有可能产生数据的丢失,所以为了保障数据的可靠性,需要设置一些可靠性策略并执行这些可靠性策略(如:对冗余数据的存储),以在数据丢失时,可利用这些冗余数据进行数据恢复。目前主要有两种可靠性策略,一种为纠删码(erasure code,EC)或者磁盘冗余阵列(RedundantArrays of Independent Drives,RAID)策略,这两种方式都为将写请求中的待写数据凑成一个条带数据,再将一个条带数据分成多个分条数据,计算多个分条数据校验数据,并将多个分条数据和校验数据分开存储,这样,在任意一个分条数据丢失之后,可以通过其他分条数据和校验数据恢复所丢失的分条数据,例如,对于RAID 5,一个条带数据可以分为三个分条数据,并为三个分条数据计算一个校验数据,对于RAID6,一个条带数据可以分为三个分条数据,并为三个分条数据计算两个校验数据;另外一种为多副本策略,这种方式是在写数据的时候,为待写数据生成多个备份数据,并将不同的备份数据写入不同的目的端设备,这样当数据损坏之后,则可以通过读取备份数据恢复数据。一般应用会预先设置好可靠性策略,所述处理单元101在产生写请求后,会查看应用预设的可靠性策略,并根据不同的可靠性策略做不同的处理。
步骤S203,如果在步骤S202中,确定应用所支持的可靠性策略为EC或者RAID策略,则源端设备10的处理器101确定待写数据构成条带数据时,将构成条带数据的待写数据及相关的地址信息发送至源端设备的网络设备(又称为:源端网络设备)103。
当源端设备10采用EC或者Raid策略保证数据的可靠性时,需要将待写数据凑成条带数据,每个条带数据由多个分条数据组成,源端设备10会预先设置好每个条带数据的大小及构成条带数据的分条数据的数量,等接收到的待写数据凑够所设置的条带数据的大小时,则将所凑成的条带数据发送至目的端设备网络设备103。例如当源端设备10采用的是RAID5时,则需要将待写入数据凑满由3个分条数据构成的条带数据后再发送至网络设备130。另外,根据RAID算法,不同的分条数据会写入不同的位置,另外,还需要生成分条数据的校验数据,所以所述源端设备10还会将每个分条数据及校验数据所写入位置的地址及校验数据的地址发送至源端设备的网络设备103。在本发明实施例中,虽然不会在源端设备10中为条带数据生成校验数据,但会将校验数据存储的地址发送至网络设备103。
步骤S204,网络设备(即:源端网络设备)103在接收到所述条带数据后,为所述条带数据计算校验数据。
为了保证数据的可靠性,在RAID算法中,会为条带化后的数据生成校验数据,这样,在其中一个分条损坏之后,可通过校验数据进行恢复。目前,一般的做法是源端设备的处理单元在构成条带数据后,再生成校验数据,这样会占用源端设备的处理单元的计算资源,从而影响IO的处理。在本发明实施例中,可在网络设备103中计算条带数据的校验数据,这样,可以节省源端设备10的计算资源。具体实现可以为在网络设备103中增加一个专用芯片,专门用来生成校验数据,另外一种为在网络设备103中安装一段程序指令,由网络设备103中的微处理器调用所述程序指令以生成所述校验数据。另外,在网络设备103接收到所述条带数据后,会先将所述条带数据缓存在所述网络设备的缓存中,然后再计算校验数据。
步骤S205,所述网络设备(即:源端网络设备)103生成多个子写请求,将所述子写请求根据子写请求的地址并行发送至不同的目的端设备。
在校验数据生成后,所述源端设备10的处理器进一步根据源端设备处理器101传输的条带数据即每个分条的地址及校验数据的地址生成多个子写请求,其中一个分条对应一个子写请求,一个校验数据对应一个子写请求。在本发明实施例中,网络设备103可以并行地将多个子写请求发送至不同的目的端设备,跟通过源端设备串行发送的方式相比,提升了数据发送的效率。
步骤S206,如果在步骤S202中确定应用所支持的可靠性策略为多副本策略,源端设备10的处理单元101将所述写请求转发至所述源端设备10的网络设备103,所述写请求中携带待写数据即待写数据的逻辑地址。
步骤S207,所述源端设备的网络设备103锁定所述写请求中携带的所述待写数据的逻辑地址。
一般情况下,在源端设备10中会为每个应用生成一个持久化日志(persistencelog,Plog),该日志中记录了源端设备10为每个应用所分配的逻辑空间,并根据为该应用的数据设置的备份数据的数量及备份地址,为应用的逻辑空间设置存储备份数据的目的端设备20中的存储单元的物理地址。在源端设备10接收到写请求后,就会锁定plog中记录的该写请求所携带的逻辑地址,以免该逻辑地址被分配给其他写请求,当逻辑地址锁定之后,则该逻辑地址对应的其他目的端设备20中的存储单元202的物理地址也会被锁定,如此保证了数据的可靠性。但通过源端设备10进行Plog的空间分配,会增加源端设备10的负载,所以在本发明实施例中,该功能卸载(Offload)到网络设备103中。即将Plog转移至源端设备10存储,在网络设备103接收到源端设备10发送的写请求后,锁定Plog中写请求的逻辑地址,以免该逻辑地址被分配给其他写请求。另外,在网络设备103接收到所述写请求后,会先将所述写请求中的待写数据缓存在所述网络设备的缓存中,然后再执行后续的处理。
步骤S208,所述源端设备10的网络设备103获取所述写请求携带的待写数据的多个副本的写入地址,并根据所述多个副本的写入地址及待写数据生成多个子写请求。
由于plog中记录了逻辑地址空间与多个目的端设备20的存储单元202的物理地址的映射关系,则可以根据待写数据的逻辑地址确定多个副本数据的写入地址。如此,可以根据待写数据和多个副本的写入地址生成多个子写请求。在生成子写请求时,将待写数据和每个副本的写入地址携带在每个子写请求中。
步骤S209,所述源端设备的网络设备103将所述多个子写请求根据每个子写请求的地址发送至不同的目的端设备20。
在本发明实施例中,为了实现更好的可靠性,一般将条带化的数据中的每个分条或者不同的副本数据存储至不同的目的端设备,但将条带化的分条数据或者不同的副本数据存储至同一目的端设备的不同地址也在本发明所保护的范围之内。
步骤S210,目的端设备20的网络设备203在接收到子写请求后,通过RDMA将数据写入所述目的端设备20的存储单元202中,在数据成功写入存储单元202后,存储单元202产生写成功的响应。
步骤S211,网络设备203在收到写入成功的响应后,通过RDMA从所述存储单元202中所述子写请求所指示的地址处读取数据,并将所读取的数据与子写请求中的待写数据进行比较。
在数据写入存储单元202的时候,有可能发生地址写偏等错误,所以为了及时发现这类错误,在数据写入存储单元202后,还需要对其进行校验,本发明实施例采用的校验方法为由网络设备203将待写数据写入存储单元202后,在从写入的地址处读取写入的地址,这样,如果发生地址写偏,则从写入地址处读取的数据就会与写入的数据不同,从而可以发现地址写偏的错误。
步骤S212,如果数据一致,则所述目的端设备20的网络设备203返回写成功的响应至源端设备10。
步骤S213,如果数据不一致,则所述目的端设备20的网络设备203返回写失败的响应至源端设备10。
跟传统的数据校验方法相比,在本发明实施例中,通过目的端设备20网络设备203对写入目的端设备20的存储单元202的数据进行校验,不用消耗网络带宽,也减少了数据写入的延迟。
如图3所示,为本发明实施例中的网络设备的架构图,该网络设备可以为图1中的源端设备10的网络设备103,也可以为目的端设备20的网络设备203。
所述网络设备包括校验数据生成模块301、地址锁定模块302、并发模块303、RDMA模块304、及写后校验模块305。其中,校验数据生成模块301、地址锁定模块302、并发模块303、RDMA模块304在所述网络设备作为源端设备10的网络设备时使用,而RDMA模块304和写后校验模块305为在所述网络设备作为目的端设备时使用。
如果源端设备10中所采用的可靠性策略是EC/RAID策略,则源端设备10会将条带数据发送至源网络设备,则所述校验数据生成模块301就会为所述条带数据生成校验数据,具体请参考图2中的步骤S204的描述。在生成校验数据后,所述并发模块会根据条带数据中的分条数量及校验数据及每个分条数据及校验数据的地址,针对每个分条数据及校验数据分别生成多个子写请求,并将所生成的多个子写请求按照地址并发发送至不同的目的端设备20。具体请参考图2中的步骤S205的描述。
如果源端设备10中所采用的可靠性策略多副本策略,则源端设备会将写请求发送至源端设备的网络设备的同时,将多个副本写入的地址发送至源端设备的网络设备,则所述地址锁定模块302会根据源端设备发送的各个副本的地址对目的端设备中的存储单元中的地址进行锁定,以保证多个副本的一致性,具体请参考图2中的步骤S 207的描述。在地址锁定之后,所述并发模块根据写请求中的待写数据即每个副本的地址针对每个副本生成一个子写请求,并将多个子写请求根据子写请求中的地址并行发送至不同的目的端设备20。
当所述网络设备作为目的端设备的网络设备时,则当接收到源端设备的网络设备发送的子写请求时,则所述RDMA模块首先将所述子写请求中的待写数据写入目的端设备的存储单元中,具体请参考图2中的步骤S210的描述。数据写入之后,则由所述写后校验模块305校验所写入的数据是否正确,关于校验的具体描述请参考图2中的步骤S211-S213。
所述网络设备中的各个模块可以以软件、硬件或二者结合来实现。
当以上任一模块或单元以软件实现的时候,所述软件以计算机程序指令的方式存在,并被存储在存储器中,处理器可以用于执行所述程序指令以实现以上方法流程。所述处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,CPU)、微处理器、数字信号处理器(DSP)、微控制器(microcontroller unit,MCU)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。该处理器可以是个单独的半导体芯片,也可以跟其他电路一起集成为一个半导体芯片,例如,可以跟其他电路(如编解码电路、硬件加速电路或各种总线和接口电路)构成一个SoC(片上***),或者也可以作为一个ASIC的内置处理器集成在所述ASIC当中,该集成了处理器的ASIC可以单独封装或者也可以跟其他电路封装在一起。该处理器除了包括用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmable gate array,FPGA)、PLD(可编程逻辑器件)、或者实现专用逻辑运算的逻辑电路。
当以上模块以硬件电路实现的时候,所述硬件电路可能以通用CPU(Centralprocessing unit,中央处理器)、MCU(Micro controller Unit,微控制器)、MPU(Microprocessing unit,微处理器)、DSP(Digital signal processing,数字信号处理器)、SoC(System on Chip,片上***)来实现,当然也可以采用专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合,其可以运行必要的软件或不依赖于软件以执行以上方法流程。
如图4所示,为本发明一实施例中所述网络设备的硬件架构图。所述网络设备包括处理器410、存储器420、接口430及RDMA芯片。所述存储器中存储有程序指令,当图3中的校验数据生成模块301、地址锁定模块302、并发模块303、及写后校验模块305以软件实现的时候,则上述模块对应的程序存储在存储器420中,由处理器410调用执行这些程序以实现校验数据生成模块301、地址锁定模块302、并发模块303、及写后校验模块305所执行的功能。所述接口430用于从源端设备或者目的端设备接收数据或者发送数据至源端设备或者目的端设备。所述RDMA芯片用于将从源端设备接收的数据直接写入目的端设备的存储单元中。所述处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,处理单元)、微处理器、数字信号处理器(DSP)、微控制器(microcontroller unit,MCU)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。
图3中的校验数据生成模块301、地址锁定模块302、并发模块303、及写后校验模块305也可以通过硬件实现,当通过硬件实现时,这些模块作为网络设备的芯片中的硬件模块集成在所述网络设备的芯片中。在通过硬件实现时,网络设备的处理器为专用集成电路(application specific integrated circuit,ASIC),也可是一个独立的半导体芯片。该处理器内处理用于执行软件指令以进行运算或处理的核外,还可进一步包括必要的硬件加速器,如现场可编程门阵列(field programmable gate array,FPGA)、PLD(可编程逻辑器件)、或者实现专用逻辑运算的逻辑电路。
在本发明另一实施例中,在应用与源端设备与目的端设备之间的数据迁移的时候,则只需要执行步骤S209至S213。在步骤S209中,所发送的写请求中携带的数据为需要从源端设备10迁移至目的端设备20的数据。而其他步骤与S210与S213相同,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种网络设备,其特征在于,所述网络设备被配置为目的端网络设备以用于执行:
接收来自于源端设备的写请求,执行所述写请求以将所述写请求中的待写数据写入目的端设备;
在所述待写数据写入所述目的端设备后,从所述目的端设备中读取已写入数据;
将所述写请求中的待写数据与所述读取的已写入数据进行比较;
当所述待写数据与所述读取的已写入数据相同,返回写成功响应给所述源端设备;
当所述待写数据与所述读取的已写入数据不同,返回写失败响应给所述源端设备。
2.如权利要求1所述的网络设备,其特征在于,所述网络设备被配置为目的端网络设备还用于执行:
在接收所述源端设备的写请求之后,缓存所述写请求中的待写数据。
3.如权利要求1或2所述的网络设备,其特征在于,所述网络设备被配置为目的端网络设备以用于具体执行:
解析所述写请求,获得所述待写数据以及所述待写数据的目的地址;
将所述待写数据写入所述目的端设备中以所述目的地址标识的存储空间中。
4.如权利要求1-3任一所述的网络设备,其特征在于,所述网络设备被配置为源端网络设备以用于执行:
接收所述源端设备发送的包含至少两个分条数据的条带数据,所述条带数据包含的至少两个分条数据的写入地址及至少一个校验数据的写入地址;
根据所述至少两个分条数据生成所述至少一个校验数据;
针对每一个分条数据,根据所述分条数据以及所述分条数据的写入地址生成一个写请求;
针对每一个校验数据,根据所述校验数据以及所述校验数据的写入地址生成一个写请求;
将所述生成的每个写请求分别发送至一个目的端设备。
5.如权利要求1-3任一所述的网络设备,其特征在于,所述网络设备被配置为源端网络设备以用于执行:
接收所述源端设备发送的待写数据,及存储所述待写数据的至少一个逻辑副本的至少一个逻辑地址;
锁定所述至少一个逻辑地址;
针对每一个逻辑地址,根据所述待写数据及所述逻辑地址生成一个写请求;
将所述生成的至少一个写请求中的每个写请求分别发送至一个目标网络设备。
6.如权利要求4或5所述网络设备,其特征在于,所述网络设备被配置为源端网络设备以用于:
并行将所述生成的至少一个写请求中的每个写请求分别发送至一个目标网络设备。
7.一种数据传输的方法,其特征在于,所述方法包括:
接收来自于源端设备的写请求,执行所述写请求以将所述写请求中的待写数据写入目的端设备;
在所述待写数据写入所述目的端设备后,从所述目的端设备中读取已写入数据;
将所述写请求中的待写数据与所读取的已写入数据比较;
当所述待写数据与所述读取的已写入数据相同,返回写成功响应给所述源端设备;
当所述待写数据与所述读取的已写入数据不同,返回写失败响应给所述源端设备。
8.如权利要求7所述的数据传输方法,其特征在于,所述方法还包括:
在所述接收写请求后,缓存所述写请求中的待写数据。
9.如权利要求7或8所述的数据传输方法,其特征在于,所述写请求还包括所述待写数据的目的地址,所述执行所述写请求以将所述写请求中的待写数据写入目的端设备包括:
将所述写请求中的待写数据,按照所述写请求中的目的地址写入所述目的端设备的存储单元。
10.一种网络***,包括:源端设备、目的端设备、以及和所述目的端设备相连的如权利要求1-3任一项所述的目的端网络设备。
11.一种芯片,包括接口及处理器,所述接口用于为所述处理器提供输入及输出数据;
所述处理器,用于执行权利要求7-9任一项所述的数据传输的方法。
CN201911083122.0A 2019-11-07 2019-11-07 一种数据传输方法、网络设备、网络***及芯片 Pending CN112788079A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911083122.0A CN112788079A (zh) 2019-11-07 2019-11-07 一种数据传输方法、网络设备、网络***及芯片
PCT/CN2020/127446 WO2021089036A1 (zh) 2019-11-07 2020-11-09 一种数据传输方法、网络设备、网络***及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911083122.0A CN112788079A (zh) 2019-11-07 2019-11-07 一种数据传输方法、网络设备、网络***及芯片

Publications (1)

Publication Number Publication Date
CN112788079A true CN112788079A (zh) 2021-05-11

Family

ID=75747961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911083122.0A Pending CN112788079A (zh) 2019-11-07 2019-11-07 一种数据传输方法、网络设备、网络***及芯片

Country Status (2)

Country Link
CN (1) CN112788079A (zh)
WO (1) WO2021089036A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023030013A1 (zh) * 2021-09-01 2023-03-09 华为技术有限公司 一种数据处理方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672431B (zh) * 2021-07-29 2023-12-22 济南浪潮数据技术有限公司 实现分布式存储的加速芯片纠删码插件的优化方法及装置
CN115904210A (zh) * 2021-08-09 2023-04-04 华为技术有限公司 一种数据发送的方法、网卡和计算设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874054B2 (en) * 2002-12-19 2005-03-29 Emulex Design & Manufacturing Corporation Direct memory access controller system with message-based programming
CN101577716B (zh) * 2009-06-10 2012-05-23 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和***
CN103034559B (zh) * 2012-12-18 2016-06-08 无锡众志和达数据计算股份有限公司 基于rdma架构设计的pq检验模块及检验方法
CN105450588B (zh) * 2014-07-31 2019-02-12 华为技术有限公司 一种基于rdma的数据传输方法及rdma网卡
CN105487937A (zh) * 2015-11-27 2016-04-13 华为技术有限公司 一种rdma实现方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023030013A1 (zh) * 2021-09-01 2023-03-09 华为技术有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
WO2021089036A1 (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
WO2021089036A1 (zh) 一种数据传输方法、网络设备、网络***及芯片
US7035974B2 (en) RAID-5 disk having cache memory implemented using non-volatile RAM
US11086525B2 (en) Resilient external memory
US11593000B2 (en) Data processing method and apparatus
US11003606B2 (en) DMA-scatter and gather operations for non-contiguous memory
US11436086B2 (en) Raid storage-device-assisted deferred parity data update system
US20230163789A1 (en) Stripe management method, storage system, stripe management apparatus, and storage medium
CN114860329A (zh) 动态一致性偏置配置引擎及方法
CA3129982A1 (en) Method and system for accessing distributed block storage system in kernel mode
CN113535611A (zh) 数据处理方法及装置、异构***
JP2024500785A (ja) リモート実行デバイスにおけるホストベースのエラー検出能力の提供
US20240086113A1 (en) Synchronous write method and device, storage system and electronic device
US11366608B2 (en) Method, electronic device and computer readable storage medium for i/o management
CN110121874B (zh) 一种存储器数据替换方法、服务器节点和数据存储***
CN111273862A (zh) 数据存储方法及其装置、可读介质和***
CN112463032A (zh) 一种存储***的重删模块的性能优化方法、***及装置
US11354233B2 (en) Method and system for facilitating fast crash recovery in a storage device
US11256439B2 (en) System and method for parallel journaling in a storage cluster
CN115904795A (zh) 存储***中的数据存储方法及装置
CN116361063A (zh) 字节可寻址存储器的简化raid实施方式
CN111061591B (zh) 基于存储器完整性检查控制器实现数据完整性检查的***和方法
CN112445413A (zh) 一种数据存储的方法、装置及相关设备
US20220269567A1 (en) Scale-out storage system and storage control method
WO2022199155A1 (zh) 一种数据传输的***、方法以及网络设备
US11392295B2 (en) Front-end offload of storage system processing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination