数据处理方法、远程直接访存网卡和设备技术

技术编号:23024918 阅读:21 留言:0更新日期:2020-01-03 16:51
本申请提供了一种数据处理方法、RNIC和设备,该方法包括:第一RNIC接收第二RNIC发送的RDMA写请求,RDMA写请求包括第一数据和数据持久化标记,该数据持久化标记用于指示第一数据为待持久化的数据;根据该RDMA写请求,第一RNIC向第一处理器发送DMA写请求,以指示第一处理器将第一数据写入第一设备,第一RNIC与第一处理器属于第一设备,第二RNIC属于第二设备,两个设备基于RDMA方式通信;根据该数据持久化标记,第一RNIC确定该第一数据为待持久化的数据,第一RNIC指示第一处理器将第一数据保存到第一设备的非易失性存储器中。以此减小远程内存持久化过程中RDMA网络的负载。

Data processing method, remote direct access network card and equipment

【技术实现步骤摘要】
数据处理方法、远程直接访存网卡和设备
本申请涉及计算机
,尤其涉及数据处理方法、远程直接访存网卡和设备。
技术介绍
存储级存储器(storageclassmemory,SCM),例如3DXpoint,是一种新型非易失性存储器(non-volatilememory,NVM),它是一种同时结合了传统的存储介质(如机械硬盘、固态硬盘等)和存储器(如动态随机存取存储器)的复合型存储器。SCM可以像动态随机存取存储器一样嵌入主机板的插槽中,相较于动态随机存取存储器,SCM在失去电源的状态下仍然可以不间断地保存资料,具备断电保存的特性。SCM能够提供比快闪存储器更快的读写速度,在成本上比动态随机存取存储器更便宜。在一些计算设备系统架构中,SCM被用作内存使用。在一些方案中,通过以互连的方式将多个以SCM作为内存的计算设备连接形成SCM资源池以扩大SCM的容量,从而实现对数据的冗余备份。在多个以SCM作为内存的计算设备组成的SCM资源池中,任意两台计算设备之间可以基于远程直接内存访问(remotedirectmemoryaccess,RDMA)技术通信以及传输数据,远程直接内存访问可以简称为远程直接访存。与传统的网络传输技术不同,RDMA技术可以将数据直接从一台计算设备的内存传输到另一台计算设备的内存,而无需两台计算设备的操作系统或内核介入。对于基于RDMA技术进行通信以及数据传输的SCM资源池,需要解决远程内存持久化的问题。内存持久化,指的是将数据从计算设备的易失性存储介质写回到计算设备的非易失性存储介质中;而远程内存持久化,则指的是将一台计算设备的SCM中的数据写入到另一台计算设备后再令数据被保存到另一台计算设备的SCM中。在以SCM作为内存的存储系统中,计算设备A(发起远程操作请求的计算设备)的SCM中的数据要被保存至计算设备B(接收远程操作请求的计算设备)的SCM中,该数据需要经过计算设备B的处理器,而由于计算设备B的处理器中存在缓存,该数据可能会被暂时缓存在缓存中,面临掉电丢失的风险。在目前的解决方案中,计算设备A一般是在通过RDMA写(write)请求将数据写入到计算设备B中后,再通过发起一次RDMA读(read)请求或RDMA发送(send)请求,以将通过RDMA写请求写入的数据写回到计算设备B的SCM中,计算设备A发起的RDMA读请求或RDMA发送请求可以看作是远程内存持久化请求。这种方案存在以下问题:由于计算设备A在每次RDMA写请求之后都要发起一次远程内存持久化请求,增加了RDMA网络的网络负载。
技术实现思路
本申请提供数据处理方法、远程直接访存网卡和设备,解决额外发送的远程内存持久化请求所引起的网络负载较大的问题。第一方面,提供了一种数据处理方法,包括:第一远程直接访存网卡(remotedirectmemoryaccessnetworkinterfacecard,RNIC)接收第二RNIC发送的远程直接访存(remotedirectmemoryaccess,RDMA)写请求,RDMA写请求包括第一数据和数据持久化标记,该RDMA写请求用于请求将第一数据写入第一设备,该数据持久化标记用于指示第一数据为待持久化的数据,其中,第一RNIC是第一设备的RNIC,即接收RDMA请求的设备的RNIC,第二RNIC是第二设备的RNIC,即发送RDMA请求的设备的RNIC,第一设备和第二设备基于RDMA方式进行通信;根据该RDMA写请求,第一RNIC确定需要将第一数据写入第一设备,第一RNIC向第一处理器发送直接内存访问(directmemoryaccess,DMA)写请求,该DMA写请求包括第一数据,以指示第一处理器将第一数据写入第一设备,其中,第一处理器是第一设备的处理器,第一RNIC和第一处理器之间基于DMA的方式通信;根据该数据持久化标记,第一RNIC确定该第一数据为待持久化的数据,第一RNIC指示第一处理器将将第一数据保存到第一设备的非易失性存储器中。其中,非易失性存储器可以为SCM。SCM具体可以为相变式随机访问存储器(phase-changerandomaccessmemory,PRAM),PRAM例如可以为3DXpoint,电阻式随机访问存储器(resistiverandomaccessmemory,ReRAM),磁性随机访问存储器(magneticrandomaccessmemory,MRAM),等等。接收RDMA请求的设备可以称之为远端设备,发送RDMA请求的设备可以称之为本地设备。在上述方案中,远端设备的RNIC在根据RDMA写请求中的数据持久化标记确定第一数据为待持久化的数据后,直接指示远端设备的处理器将第一数据保存到第一设备的非易失性存储器中,以完成对第一数据的内存持久化,不需要本地设备的RNIC再发起远程内存持久化请求。由于本地设备不需要在发起RDMA写请求之后再发起远程内存持久化请求,减小了RDMA网络的负载;另外,将数据持久化标记携带在RDMA写请求中使得远程写操作和远程内存持久化操作成为被连续执行的操作,保证数据写入远端设备后可被保存至非易失性存储器中,避免出现数据不一致的问题。在一种可能的实现方式中,上述数据持久化标记可以为写持久化指令。在数据化标记为写持久化指令的情况下,该RDMA写请求也可以称之为RDMA写持久化请求,如rdmawritedurable。通过在原有的RDMA操作指令的基础上增加写持久化指令,远端设备的RNIC解析RDMA写请求得到该写持久化指令,远端设备的RNIC可确定该RDMA写请求中的第一数据为待持久化的数据。在另一种可能的实现方式中,上述数据持久化标记为第一数据对应的目的存储地址,该目的存储地址对应的存储空间用于存储第一数据,该目的存储地址为上述第一设备中的持久存储地址,该持久存储地址用于存储待持久化的数据。这里,第一数据对应的目的存储地址为第二设备指定的第一设备中的用于存储第一数据的存储空间所对应的存储地址。远端设备事先分配用于存储待持久化的数据的存储空间,在确定第一数据对应的目的存储地址为远端设备中事先分配的用于存储待持久化的数据的存储空间所对应的存储地址的情况下,远端设备的RNIC可确定RDMA写请求中的第一数据为待持久化的数据。在另一种可能的实现方式中,第一RNIC可以通过以下方式指示第一处理器将第一数据保存到第一设备的非易失性存储器中:第一RNIC在与第二RNIC对应的接收队列(receivequeue,SQ)中添加DMA最低有效位(leastsignificantbit,LSB)读请求;第一RNIC第一处理器发送该DMALSB读请求,该DMALSB读请求用于指示第一处理器将缓存在第一设备的外设总线链路中的所有数据写入至第一设备的非易失性存储器中。这种方式可以适用于在第一RNIC写数据的过程中,数据不经过第一处理器的最后层级缓存(lastlevelcache,LLC)的情况。由于数据不经过第一处理器的LLC,数据可能还未完成写入而缓存在处理器的输入/输出(I/O)控制器的缓存中,根据外围扩展互连本文档来自技高网
...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n第一远程直接访存网卡RNIC接收第二RNIC发送的远程直接访存RDMA写请求,所述RDMA写请求包括第一数据和数据持久化标记,所述RDMA写请求用于请求将所述第一数据写入第一设备,所述数据持久化标记用于指示所述第一数据为待持久化的数据,所述第一RNIC为所述第一设备的RNIC,所述第二RNIC为第二设备的RNIC,所述第一设备和所述第二设备基于RDMA方式通信;/n所述第一RNIC向第一处理器发送直接内存访问DMA写请求,所述DMA写请求包括所述第一数据,所述DMA写请求用于指示所述第一处理器将所述第一数据写入所述第一设备,所述第一处理器为所述第一设备的处理器,所述第一RNIC和所述第一处理器基于DMA方式通信;/n所述第一RNIC根据所述数据持久化标记指示所述第一处理器将所述第一数据存储至所述第一设备的非易失性存储器中。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
第一远程直接访存网卡RNIC接收第二RNIC发送的远程直接访存RDMA写请求,所述RDMA写请求包括第一数据和数据持久化标记,所述RDMA写请求用于请求将所述第一数据写入第一设备,所述数据持久化标记用于指示所述第一数据为待持久化的数据,所述第一RNIC为所述第一设备的RNIC,所述第二RNIC为第二设备的RNIC,所述第一设备和所述第二设备基于RDMA方式通信;
所述第一RNIC向第一处理器发送直接内存访问DMA写请求,所述DMA写请求包括所述第一数据,所述DMA写请求用于指示所述第一处理器将所述第一数据写入所述第一设备,所述第一处理器为所述第一设备的处理器,所述第一RNIC和所述第一处理器基于DMA方式通信;
所述第一RNIC根据所述数据持久化标记指示所述第一处理器将所述第一数据存储至所述第一设备的非易失性存储器中。


2.根据权利要求1所述的方法,其特征在于,所述数据持久化标记为写持久化指令。


3.根据权利要求1所述的方法,其特征在于,所述数据持久化标记为所述第一数据对应的目的存储地址,所述目的存储地址对应的存储空间用于存储所述第一数据,所述目的存储地址为所述第一设备中的持久存储地址,所述持久存储地址对应的存储空间用于存储待持久化的数据。


4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一RNIC根据所述数据持久化标记指示所述第一处理器将所述第一数据存储至所述第一设备的非易失性存储器中包括:
所述第一RNIC根据所述数据持久化标记在与所述第二RNIC对应的接收队列中添加DMA最低有效位读请求;
所述第一RNIC向所述第一处理器发送所述DMA最低有效位读请求,所述DMA最低有效位读请求用于指示所述第一处理器将缓存在所述第一设备的外设总线链路中的所有数据存储至所述第一设备的非易失性存储器中。


5.根据权利要求1-3任一项所述的方法,其特征在于,所述第一RNIC根据所述数据持久化标记指示所述第一处理器将所述第一数据存储至所述第一设备的非易失性存储器中包括:
所述第一RNIC在根据所述数据持久化标记以及所述第一数据生成RDMA接收请求对应的工作队列项WQE之后,清除所述WQE,所述RDMA接收请求用于接收所述第二设备发起的RDMA发送请求;
所述第一RNIC生成所述RDMA接收请求对应的完成队列项CQE,所述RDMA接收请求对应的CQE用于指示所述第一处理器将缓存在所述第一处理器的易失性存储介质中的第一数据存储至所述第一设备的非易失性存储器中。


6.一种数据处理方法,其特征在于,包括:
第二远程直接访存网卡RNIC接收第二处理器发送的远程直接访存RDMA写持久化请求,所述RDMA写持久化请求包括数据持久化标记,所述RDMA写持久化请求用于请求将第一数据存储至第一设备的非易失性存储器中,所述数据持久化标记用于指示所述第一数据为待持久化的数据,所述第二RNIC为第二设备的RNIC,所述第二处理器为所述第二设备的处理器,所述第一设备和所述第二设备基于RDMA方式通信,所述第二RNIC和所述第二处理器基于DMA方式通信;
所述第二RNIC根据所述RDMA写持久化请求生成RDMA写请求,所述RDMA写请求包括所述第一数据和所述数据持久化标记;
所述第二RNIC向第一RNIC发送所述RDMA写请求,所述RDMA写请求用于请求将所述第一数据写入所述第一设备,所述第一RNIC为所述第一设备的RNIC。


7.根据权利要求6所述的方法,其特征在于,所述数据持久化标记为写持久化指令。


8.根据权利要求6所述的方法,其特征在于,所述数据持久化标记为所述第一数据对应的目的存储地址,所述目的存储地址对应的存储空间用于存储所述第一数据,所述目的存储地址为所述第一设备中的持久存储地址,所述持久存储地址对应的存储空间用于存储待持久化的数据。


9.根据权利要求6-8任一项所述的方法,其特征在于,所述第二RNIC向第一RNIC发送所述RDMA写请求之后,还包括:
当接收到所述第一RNIC发送的所述第一数据对应的接收确认消息时,所述第二RNIC缓存所述第一数据对应的接收确认消息,所述第一数据对应的接收确认消息包括第一数据包序列号PSN,所述第一PSN为所述第一数据的序列号,所述第一数据对应的接收确认消息用于指示所述第一RNIC接收到所述第一数据;
所述第二RNIC接收所述第一RNIC发送的第一确认消息,所述第一确认消息包括第二PSN;
当所述第一PSN与所述第二PSN相同时,所述第二RNIC生成所述RDMA写持久化请求对应的完成项CQE,所述RDMA写持久化请求对应的CQE用于通知所述第二处理器所述第一数据已经存储至所述第一设备的非易失性存储器中。


10.根据权利要求6-8任一项所述的方法,其特征在于,所述第二RNIC向第一RNIC发送所述RDMA写请求之后,还包括:
当接收到所述第一RNIC发送的所述第一数据对应的接收确认消息时,所述第二RNIC缓存所述第一数据对应的接收确认消息,所述第一数据对应的接收确认消息包括第一PSN,所述第一PSN为所述第一数据的序列号,所述第一数据对应的接收确认消息用于指示所述第一RNIC接收到所述第一数据;
所述第二RNIC生成所述RDMA写持久化请求对应的CQE,所述RDMA写持久化请求对应的CQE用于通知所述第二处理器所述第一数据已经写入所述第一设备;
所述第二RNIC接收所述第二处理器发送的RDMA接收请求;
所述第二RNIC接收所述第一RNIC发送的第一确认消息,所述第一确认消息包括第二PSN;
当所述第二PSN与所述第一PSN相同时,所述第二RNIC生成所述RDMA接收请求对应的CQE,所述RDMA接收请求对应的CQE用于通知所述第二处理器所述第一数据已经存储至所述第一设备的非易失性存储器中。


11.一种远程直接访存网卡RNIC,其特征在于,包括:
接收模块,用于接收第二...

【专利技术属性】
技术研发人员:孙贝磊周超李涛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1