CN116260778A - 一种外接内存装置、外接内存访问方法及网络系统 - Google Patents
一种外接内存装置、外接内存访问方法及网络系统 Download PDFInfo
- Publication number
- CN116260778A CN116260778A CN202111510715.8A CN202111510715A CN116260778A CN 116260778 A CN116260778 A CN 116260778A CN 202111510715 A CN202111510715 A CN 202111510715A CN 116260778 A CN116260778 A CN 116260778A
- Authority
- CN
- China
- Prior art keywords
- server
- external memory
- rdma
- memory device
- memory
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种外接内存装置以及外接内存访问方法。本申请使用可编辑电路作为外接内存装置,该外接内存装置包括远程直接内存访问RDMA模块和内存模块。该RDMA模块接收来自服务器的RDMA报文,确定该RDMA报文对应的存储单元,该存储单元属于该内存模块。该RDMA模块根据该RDMA报文访问该存储单元。本申请可以在服务器内存不足时为服务器扩展内存,使得服务器无需使用固态硬盘提供的虚拟内存,减少了服务器的处理时延。
Description
技术领域
本申请实施例涉及通信领域,尤其涉及一种外接内存装置、外接内存访问方法及网络系统。
背景技术
当前数据通信网络(data communication network,DCN)内数据流量呈指数级急剧增长,需要大容量的内存才可以避免应用程序的使用受到影响,而内存的成本又随着内存容量的增长呈指数型增长,由于成本限制,内存容量无法跟上大规模集群计算需求。
当前服务器在确定本地内存不够时,会使用固态硬盘(solid state disk,SSD)提供的虚拟内存进行数据处理,但是,由于SSD的处理时延高,会影响处理性能。
发明内容
本申请提供了一种外接内存装置、外接内存访问方法以及网络系统,用于为服务器提供扩展内存且减少服务器处理时延。
本申请第一方面提供了一种外接内存装置,包括远程直接内存访问(remotedirect memory access,RDMA)模块和内存模块,其中,RDMA模块用于:接收来自服务器的RDMA报文;确定RDMA报文对应的存储单元,存储单元属于内存模块;根据RDMA报文访问存储单元;外接内存装置为可编程电路。
上述方面中,使用可编辑电路作为外接内存装置,该外接内存装置可以通过RDMA模块与服务器进行RDMA通信,根据服务器发送的RDMA报文访问该外接内存装置中的内存模块,在服务器内存不足时为服务器扩展内存,使得服务器无需使用固态硬盘提供的虚拟内存,减少了服务器的处理时延。
在一个可能的实施方式中,外接内存装置还包括高速外围部件互连(PeripheralComponent Interconnect Express,PCIe)接口或计算快速链路(compute express link,CXL)接口,PCIe接口或CXL接口用于将来自服务器的RDMA报文转发给RDMA模块。
上述可能的实施方式中,外接内存装置通过PCIe接口或CXL接口接收来自服务器的RDMA报文,提高数据传输的灵活性。
在一个可能的实施方式中,PCIe接口或CXL接口还用于接收控制外接内存装置运行的参数。
上述可能的实施方式中,外接内存装置可以通过PCIe接口或CXL接口还可以接收控制外接内存装置运行的参数,并根据该参数调节内存的分配等,提高外接内存装置的可调性。
在一个可能的实施方式中,外接内存装置还包括以太接口,以太接口用于将来自服务器的RDMA报文转发给RDMA模块。
上述可能的实施方式中,外接内存装置还可以配置以太接口接收通过以太网络传输的RDMA报文,提高数据传输的灵活性。
在一个可能的实施方式中,以太接口连接接入设备,服务器连接接入设备,以太接口具体用于通过接入设备接收来自服务器的RDMA报文。
上述可能的实施方式中,外接内存装置可以装在接入设备上,并接收接入设备转发的来自服务器的RDMA报文,可以通过接入设备为多个服务器提供内存,提高外接内存装置的内存的使用率。
在一个可能的实施方式中,外接内存装置还包括控制模块,控制模块用于为服务器分配内存空间,内存空间包括存储单元。
上述可能的实施方式中,外接内存装置由控制模块控制内存的分配,为申请内存的服务器分配相应的内存空间,服务器根据该内存空间选择存储单元访问,提高空间分配的灵活性。
在一个可能的实施方式中,可编程电路为可插拔的现场可编程门阵列FPGA或特定应用集成电路ASIC。
上述可能的实施方式中,可插拔的外接内存装置具有便携性。
本申请第二方面提供了一种外接内存访问方法,应用于外接内存装置,外接内存装置为可编程电路,该方法包括:接收来自服务器的远程直接内存访问RDMA报文;从本地内存中确定RDMA报文对应的存储单元;根据RDMA报文访问存储单元。其中,本地内存指外接内存装置所提供的内存。
上述方面中,服务器确定内存不足时,可以通过RDMA网卡向外接内存装置发送RDMA报文,外接内存装置接收到该RDMA报文后,可以对该RDMA报文进行解析,例如解析协议头,处理协议头中的信息,即可获得目标地址,该目标地址即为在本地内存中该RDMA报文对应的存储单元,然后针对该存储单元在本地内存中的对应位置执行相应的操作,服务器不需要使用固态硬盘的虚拟地址,减少服务器数据处理时延。
在一个可能的实施方式中,该方法还包括:接收控制外接内存装置运行的参数,参数来自服务器或接入设备。
上述可能的实施方式中,外接内存装置还可以接收控制该外接内存装置运行的参数,该参数可以控制外接内存装置中内存的分配等,此处不作限定。该参数可以由服务器或接入设备提供,便于调节外接内存装置的内存分配。
在一个可能的实施方式中,上述步骤接收来自服务器的RDMA报文包括:通过接入设备接收来自服务器的RDMA报文。
上述可能的实施方式中,服务器确定内存不足时,可以通过RDMA网卡向接入设备发送RDMA报文,接入设备在接收到该RDMA报文后,可以将RDMA报文转发给外接内存装置,外接内存装置可以为多个服务器提供内存,提高外接内存装置的内存使用率。
在一个可能的实施方式中,该方法还包括:接收服务器的查询请求;根据该查询请求向服务器发送本地内存的容量。
上述可能的实施方式中,服务器与外接内存装置之间通过RDMA交互,进而服务器可以知道外接内存装置可以提供多大内存,具体的,服务器可以向外接内存装置发送查询请求,以查询外接内存装置可以提供多少内存或者能不能提供额外内存,外接内存装置在接收到该查询请求后,可以基于本地内存的容量向服务器发送发送信息,在外接内存装置的内存不足时,服务器无需发送申请内存,节省传输资源。
在一个可能的实施方式中,该方法还包括:接收服务器的内存申请请求;根据该内存申请请求向服务器发送内存空间,内存空间包括存储单元。
上述可能的实施方式中,当服务器基于发送信息确认外接内存装置可以提供额外内存后,可以向该外接内存装置申请内存,例如发起内存申请请求,外接内存装置可以依据该内存申请请求向服务器发送可以存储的内存空间,该内存空间可以是外接内存装置发送的空间大小以及分配的空间的起始地址构成的,服务器在向外接内存装置申请的内存空间后基于该内存空间确定存储单元作为访问外接内存装置的地址,提高方案的可行性。
本申请第三方面提供了一种接入设备,包括前述第一方面或第一方面任一种可选方式提供的外接内存装置。
本申请第四方面提供了一种网络系统,该网络系统包括服务器和前述第一方面或第一方面任一种可选方式提供的外接内存装置,外接内存装置用于为服务器提供外接内存。
在一种可能的实施方式中,网络系统还包括接入设备,外接内存装置集成在该接入设备上,或外接内存装置通过以太接口连接该接入设备。
附图说明
图1为本申请实施例提供的一种服务器的结构示意图;
图2为本申请实施例提供的一种外接内存装置的结构示意图;
图3为本申请实施例提供的另一种外接内存装置的结构示意图;
图4为本申请实施例提供的另一种外接内存装置的结构示意图;
图5为本申请实施例提供的另一种外接内存装置的结构示意图;
图6为本申请实施例提供的一种外接内存访问方法的流程示意图;
图7为本申请实施例提供的外接内存装置插在接入设备上提供内存的示意图;
图8为本申请实施例提供的一种接入设备的结构示意图;
图9为本申请实施例提供的一种网络系统的结构示意图;
图10为本申请实施例提供的另一种网络系统的结构示意图;
图11为本申请实施例提供的再一种网络系统的结构示意图。
具体实施方式
本申请实施例提供了一种外接内存装置、外接内存访问方法及网络系统,用于为服务器扩展内存,减少服务器处理时延。
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
首先对本申请实施例提供的一些概念做解释说明。
远程直接内存访问(remote direct memory access,RDMA)是一种为了解决网络传输中服务器端数据处理延迟而产生的技术。RDMA通过网络将数据从一个设备的内存快速传输到远程另一个设备的内存中,消除了传输过程中在一个设备内部的多次数据复制操作,无需双方设备的操作系统和协议栈的介入,降低了中央处理器(central processingunit,CPU)的负载。目前RDMA支持多种数据读写方式:发送/接收(Send/Receive),RDMA读取(RDMA read),RDMA写(RDMA write)等。
RDMA提供了基于消息队列的点对点通信。消息服务建立在通信双方之间创建的信道连接之上。当通信双方之间需要通信时,就会创建一条信道连接,每条信道的首尾端点是两个队列对(queue pair,QP)。每个QP由发送队列(send queue,SQ)和接收队列(receivequeue,RQ)构成。除了QP描述的两种基本队列之外,RDMA还提供一种完成队列(completequeue,CQ),CQ用来记录SQ中信息的发送结果和RQ中信息的接收结果。
高速外围部件互连(Peripheral Component Interconnect Express,PCIe)是一种高速串行计算机扩展总线标准,用于高速串行点对点双通道高带宽传输。PCIe为所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(quality of service,QoS)等功能。
计算快速链路(compute express link,CXL)是一种开放式互连技术,该技术可以使主机内存和设备内存可以相互访问,并实现主机和设备间的缓存一致性,还可以使廉价的设备作为主机内存的扩展,降低内存的单位价格。
现场可编辑门阵列(field programmable gate array,FPGA)是包括逻辑单元阵列(logic cell array,LCA)的集成电路。从功能上划分,FPGA主要包括用于实现逻辑功能的可配置逻辑块(configurable logic block,CLB)、用于实现片外连接的输入输出块(input output block,IOB)和用于连接CLBs和IOBs的内部连线(interconnect)三个部分。现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
特定应用集成电路(application-specific integrated circuit,ASIC)是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
请参考图1,图1为本申请实施例提供的一种服务器的结构示意图,如图1所示,该服务器1包括内存11、网卡12和处理器13。其中,网卡12可以是局域网中连接服务器和传输介质的接口,可以实现内存与局域网传输介质之间的物理连接和电信号匹配,也可以实现帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。处理器13可以使用内存11的存储空间处理数据,网卡12可以将内存11中的数据封装成报文传输给其他设备。
当前数据通信网络(data communication network,DCN)内数据流量呈指数级急剧增长,内存的成本又随着内存容量的增长呈指数型增长,内存容量无法跟上大规模集群计算需求。当前服务器在本地内存不足时,对于没有远端服务器的场景,服务器会使用固态硬盘(solid state disk,SSD)提供的虚拟内存进行数据处理,但是,由于SSD的处理时延高,会影响处理性能。
为了解决上述问题,本申请实施例提供了一种外接内存装置,下面对该外接内存装置的结构进行描述。
请参阅图2,如图2所示为本申请实施例提供的外接内存装置2的结构示意图,该外接内存装置2为可编程电路,其中,该外接内存装置2包括远程直接内存访问(remotedirect memory access,RDMA)模块21和内存模块22,基于该RDMA模块21,服务器可以与该外接内存装置2进行RDMA通信。
其中,RDMA模块21与内存模块22连接,该RDMA模块21可以接收来自服务器1的RDMA报文,并对该RDMA报文进行解析,也可以将来自内存模块22的数据进行封装,以构造RDMA报文发送给服务器1。RDMA模块21接收到的RDMA报文可以是RDMA写请求或RDMA读请求,RDMA模块21可以根据该RDMA报文访问内存模块22。示例性的,如果RDMA模块21接收到的RDMA报文是RDMA写请求,RDMA模块21可以直接对该报文进行解封装,如解析协议头,处理协议头中的信息获得数据的存储单元的地址作为写入地址,然后取出净荷中的数据。RDMA模块21可以将该数据和写入地址发送给内存模块22,使得内存模块22从该存储单元(即该写入地址对应的存储单元)开始存储该数据,待存储成功后,内存模块22通知RDMA模块21生成确认(acknowledgement,ACK)报文发送给服务器1。如果RDMA模块21接收到的RDMA报文是RDMA读请求,则RDMA模块21可以对该报文进行解析,提取其中包括的存储单元,然后将该存储单元发送给内存模块22,内存模块22可以基于该存储单元在存储介质中的相应位置读取数据,并将读取的数据发送给RDMA模块21,RDMA模块21将该数据封装成RDMA报文发送给服务器1。在一个实施方式中,该存储位置可以是虚拟地址(virtual address,VA)和远程秘钥(remote key,rkey)的结合,当内存模块22接收rkey时才可以使用该VA,此处不作限定。
内存模块22用于存储数据,其可以为双倍速率同步动态随机存储器(double datarate synchronous dynamic random access memory,DDR SDRAM)模块,存储介质可以全由动态随机存取存储器(dynamic random access memory,DRAM)组成;也可以全由储存级内存(storage class memory,SCM)(例如,非易失性内存(non-volatile memory,NVM)、相变化内存(phase-change memory,PCM)、因特尔持久化内存(apache pass,AEP)等)组成;还可以由高带宽内存(high bandwidth memory,HBM)、DRAM、SCM等混合组成,本申请对每个主机中存储单元的类型以及组成方式不做限定。可选的,内存模块22中还可以包括内存管理单元(未示出),该内存管理单元可以管理存储介质的使用,此处不作赘述。
请参阅图3所示的另一种外接内存装置2的结构示意图,外接内存装置2还包括PCIe接口或CXL接口23,其中,PCIe接口或CXL接口23可以用来接收来自服务器1的RDMA报文,并将该RDMA报文转发给RDMA模块21。
其中,外接内存装置2可以插在服务器1上或者接入设备3上,该接入设备3可以是交换机,路由器或另外的服务器等,此处不作限定。
当该外接内存装置2插在服务器1上时,服务器的网卡12可以将缓存(内存11的部分存储介质)的数据封装成RDMA报文,然后通过PCIe接口或CXL接口23向外接内存装置2传输。PCIe接口或CXL接口23还可以接收服务器1控制外接内存装置2运行的参数,示例性的,该参数可以控制内存模块22中内存的分配等,此处不作限定。
当该外接内存装置2插在接入设备3时,接入设备3从服务器1接收RDMA报文,并通过PCIe接口或CXL接口23将该RDMA报文发送给外接内存装置2。PCIe接口或CXL接口23还可以从接入设备3接收控制外接内存装置2运行的参数,可以为该接入设备3连接的多个服务器分配内存。
请参阅图4所示的另一种外接内存装置2的结构示意图,外接内存装置2还包括以太接口24,当外接内存装置2单独使用时,外接内存装置2可以通过以太接口24与服务器1进行网络通信,即通过以太接口24接收来自服务器1的RDMA报文,由以太接口24将该RDMA报文转发给RDMA模块21。可选的,外接内存装置2也可以根据以太接口24的数量为相应数量的服务器提供共享内存,即外接内存装置2可以包括多个以太接口24,每个以太接口24连接一个服务器,此处不作限定。
外接内存装置2还可以通过以太接口24与接入设备3进行网络通信,其中,接入设备3连接多个服务器,当多个服务器向接入设备3发送RDMA报文时,接入设备3可以通过接入设备3的以太接口(图中未示出)将RDMA报文通过网络发送给外接内存装置的以太接口24。
当外接内存装置2包括以太接口24时,外接内存装置2可以包括PCIe接口或CXL接口23,外接内存装置2也可以不包括PCIe接口或CXL接口23。
请参阅图5所示的另一种外接内存装置2的结构示意图,外接内存装置2还包括控制模块25,该控制模块25可以为服务器1分配在内存模块22内的内存空间,具体的,服务器1向外接内存装置发送内存申请请求,以以太接口24接收该内存申请请求为例,以太接口24将该内存申请请求发送给RDMA模块21,RMDA模块21解析该内存申请请求,当确定是服务器1申请内存空间时,通知该控制模块25,控制模块25可以从内存模块22中为服务器1分配内存空间,然后将分配好的内存空间(例如1G的内存空间)告知RDMA模块21,RDMA模块21再封装发送给以太接口24,以太接口24发送给服务器1。其中,该内存空间可以是外接内存装置2发送的空间大小以及分配的空间的起始地址构成的。服务器1在确定内存空间后,服务器1可以在该内存空间中选择存储单元进行访问。进一步的,图4中的PCIe接口或CXL接口23接收的控制外接内存装置2运行的参数可以转发给控制模块25,由该控制模块25控制RDMA模块21和内存模块22的运行。
本实施例中,可编程电路可以是FPGA或ASIC,便于插拔使用,灵活性高。
本申请实施例通过使用可编辑电路作为外接内存装置,该外接内存装置可以通过RDMA模块与服务器进行RDMA通信,根据服务器的RDMA报文中的存储单元访问该外接内存装置中的内存模块,在服务器内存不足时为服务器扩展内存,服务器无需使用固态硬盘提供的虚拟内存,减少了服务器的处理时延。
请参阅图6,图6为本申请实施例提供的一种外接内存访问方法的流程示意图,该方法包括步骤601-603。
步骤601.服务器1向外接内存装置2发送RDMA报文,相应的,外接内存装置2接收RDMA报文。
本实施例中,对于外接内存装置装在服务器上或者与服务器进行网络通信的场景,服务器确定内存不足时,服务器可以通过RDMA网卡向外接内存装置发送RDMA报文,以使用外接内存装置提供的额外内存,相应的,外接内存装置可以接收该RDMA报文。服务器也可以通过缓存向外接内存装置发送访问内存的报文,此处不作限定。
对于服务器通过接入设备使用外接内存装置的场景,其中,该接入设备可以是交换机,路由器或另外的服务器等,服务器确定内存不足时,可以通过RDMA网卡向接入设备发送RDMA报文,接入设备在接收到该RDMA报文后,可以将RDMA报文转发给外接内存装置。示例性的,请参阅图7,如图7所示为本申请实施例提供的服务器通过接入设备使用外接内存装置的示意图,多个服务器(例如服务器1、服务器2、…、服务器N-1、服务器N)连接接入设备。外接内存装置可以与接入设备进行网络通信,通过RDMA网络获取接入设备转发的RDMA报文,与该接入设备连接的任意一个服务器都可以使用该外接内存装置内的内存,外接内存装置也可以插在接入设备上,直接无需通过外界的RDMA网络传输报文,图7中以外接内存装置也可以插在接入设备上为例。当报文经过接入设备时,接入设备可以通过访问控制列表(access control lists,ACL)匹配RDMA报文(例如用户数据报协议(User DatagramProtocol,UDP)报文,目的端口(port)为4791),当时匹配到RDMA报文时,交换机会将该RDMA报文转发给外接内存装置,由外接内存装置处理与RDMA相关的报文。
本实施例中,服务器在与外接内存装置进行RDMA通信之前,还需要先与该外接内存装置进行连接管理(connection management,CM)建链,示例性的,服务器向外接内存装置发起建链请求,外接内存装置在接收到该建链请求后,可以向服务器发送连接建立响应,该连接建立响应可以用于告知服务器可以建立连接,然后可以创建通信的上下文,为服务器和外接内存装置之间建立通信。
建链之后,服务器与外接内存装置之间通过RDMA交互,进而服务器可以知道外接内存装置可以提供多大内存,具体的,服务器可以向外接内存装置发送查询请求,以查询外接内存装置可以提供多少内存或者能不能提供额外内存,外接内存装置在接收到该查询请求后,可以基于本地内存的容量向服务器发送发送信息。
当服务器基于发送信息确认外接内存装置可以提供额外内存后,可以向该外接内存装置申请内存,例如发起内存申请请求,外接内存装置解析该内存申请请求,从本地内存中为服务器分配内存空间,然后向服务器发送可以存储的内存空间,示例性的,外接内存装置可以向服务器发送空间大小和起始地址,服务器可以从该起始地址开始使用该内存空间。其中,外接内存装置还可以设定每次发送给服务器的存储空间的大小,例如1G、2G或3G等,此处不作限定。本实施例以1G为例,当服务器申请的1G内存空间的使用率达到预设阈值(例如90%)时,则服务器可以重新向外接内存装置申请内存空间。如果外接内存装置没有可用内存则通告服务器没有内存,服务器可以使用SSD提供的虚拟内存。当服务器短期内不再需要使用外接内存装置的内存,服务器可以通告外接内存装置释放掉已经在存储介质中分配好的内存,外接内存装置在释放内存完成后则向服务器发送完成响应。并且,如果服务器彻底不用外接内存装置的内存时,服务器可以通过拆链操作,与外接内存装置结束建立好的通信连接,外接内存装置会删除与之对应的上下文,释放已分配好的内存,然后向服务器发送拆链答复。
本实施例中,外接内存装置还可以接收控制该外接内存装置运行的参数,该参数可以控制外接内存装置中内存的分配等,此处不作限定。该参数可以由服务器或接入设备提供,具体的,当外接内存装置装在服务器上时,该参数由服务器提供,当外接内存装置装在接入设备时,该参数由接入设备提供。
步骤602.外接内存装置从本地内存中确定RDMA报文对应的存储单元。
本实施例中,外接内存装置接收到该RDMA报文后,可以对该RDMA报文进行解析,例如解析协议头,处理协议头中的信息,即可获得目标地址,该目标地址即为RDMA报文对应的在本地内存中的存储单元,当RDMA报文为写入报文时,存储单元为写入地址,当RDMA报文为读取报文时,存储单元为读取地址。其中,该存储单元为服务器在向外接内存装置申请的内存空间后基于该内存空间确定的。
步骤603.外接内存装置根据RDMA报文访问存储单元。
本实施例中,外接内存装置在从本地内存中确定RDMA报文对应的存储单元后,可以针对该存储单元在外接内存装置的本地内存中的对应位置执行相应的操作,例如当RDMA报文为写入报文时,在对应位置写入数据,当RDMA报文为读取报文时,在对应位置读取数据。具体的,当服务器确定内存不足时,该RDMA报文为写入报文,其中,外接内存装置对该写入报文进行解析,除了可以获得包头中的存储单元外,还可以获得净荷中的数据,并在外接内存装置的本地内存中该存储单元的对应位置存储该数据。当服务器需要使用该数据时,该RDMA报文可以是读取报文,外接内存装置对该读取报文进行解析,可以获得协议头中的存储单元,然后根据该存储单元读取在本地内存中的对应位置上的数据,然后将读取的数据封装成RDMA报文发送给服务器。
本申请实施例通过为使用可编辑电路作为外接内存装置,使用可编辑电路作为外接内存装置,该外接内存装置可以通过RDMA模块与服务器进行RDMA通信,根据服务器发送的RDMA报文访问该外接内存装置中的内存模块,在服务器内存不足时为服务器扩展内存,使得服务器无需使用固态硬盘提供的虚拟内存,减少了服务器的处理时延。
图8所示,为本申请的实施例提供的一种接入设备80的结构示意图。该接入设备80可以集成外接内存装置81,即可以直接在接入设备80中配置外接内存装置2所能提供的功能模块,该外接内存装置81可以是如图2至图5所示的任一外接内存装置2。
在本申请的另一个实施例中,还提供一种网络系统,如图9所示,为本申请的实施例提供的一种网络系统90的结构示意图。该网络系统90包括服务器91和外接内存装置92,其中,该外接内存装置92可以为该服务器91提供外接内存,该外接内存装置92可以是如图2至图5所示的任一外接内存装置2。
可选的,如图10所示,为本申请的实施例提供的另一种网络系统的结构示意图,该网络系统90还包括接入设备93,外接内存装置92集成在该接入设备93上,或如图11所示的另一种网络系统的结构示意图,该外接内存装置92通过以太接口921连接该接入设备93。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述装置的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个装置或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或装置的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的装置可以是或者也可以不是物理上分开的,作为装置显示的部件可以是或者也可以不是物理装置,即可以位于一个地方,或者也可以分布到多个网络装置上。可以根据实际的需要选择其中的部分或者全部装置来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能装置可以集成在一个处理装置中,也可以是各个装置单独物理存在,也可以两个或两个以上装置集成在一个装置中。上述集成的装置既可以采用硬件的形式实现,也可以采用软件功能装置的形式实现。
所述集成的装置如果以软件功能装置的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器1,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (15)
1.一种外接内存装置,其特征在于,包括远程直接内存访问RDMA模块和内存模块,其中,所述RDMA模块用于:
接收来自服务器的RDMA报文;
确定所述RDMA报文对应的存储单元,所述存储单元属于所述内存模块;
根据所述RDMA报文访问所述存储单元;
所述外接内存装置为可编程电路。
2.根据权利要求1所述的装置,其特征在于,所述外接内存装置还包括高速外围部件互连PCIe接口或计算快速链路CXL接口,所述PCIe接口或所述CXL接口用于将来自所述服务器的所述RDMA报文转发给所述RDMA模块。
3.根据权利要求2所述的装置,其特征在于,所述PCIe接口或所述CXL接口还用于接收控制所述外接内存装置运行的参数。
4.根据权利要求1所述的装置,其特征在于,所述外接内存装置还包括以太接口,所述以太接口用于将来自所述服务器的所述RDMA报文转发给所述RDMA模块。
5.根据权利要求4所述的装置,其特征在于,所述以太接口连接接入设备,所述服务器连接所述接入设备,所述以太接口具体用于通过所述接入设备接收来自所述服务器的所述RDMA报文。
6.根据权利要求1-5中任意一项所述的装置,其特征在于,所述外接内存装置还包括控制模块,所述控制模块用于为所述服务器分配内存空间,所述内存空间包括所述存储单元。
7.根据权利要求1-6中任意一项所述的装置,其特征在于,所述可编程电路为可插拔的现场可编程门阵列FPGA或特定应用集成电路ASIC。
8.一种接入设备,其特征在于,包括权利要求1-4中任意一项所述的外接内存装置。
9.一种网络系统,其特征在于,包括服务器和根据权利要求1-4中任意一项所述的外接内存装置,所述外接内存装置用于为所述服务器提供外接内存。
10.根据权利要求9所述的网络系统,其特征在于,所述网络系统还包括接入设备,所述外接内存装置集成在所述接入设备上,或所述外接内存装置通过以太接口连接所述接入设备。
11.一种外接内存访问方法,其特征在于,应用于外接内存装置,所述外接内存装置为可编程电路,所述方法包括:
接收来自服务器的远程直接内存访问RDMA报文;
从本地内存中确定所述RDMA报文对应的存储单元;
根据所述RDMA报文访问所述存储单元;
所述外接内存装置包括所述本地内存。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收控制所述外接内存装置运行的参数,所述参数来自所述服务器或接入设备。
13.根据权利要求11所述的方法,其特征在于,所述接收来自服务器的RDMA报文包括:
通过接入设备接收来自所述服务器的所述RDMA报文。
14.根据权利要求11-13任意一项所述的方法,其特征在于,所述方法还包括:
接收所述服务器的查询请求;
根据所述查询请求向所述服务器发送所述本地内存的容量。
15.根据权利要求11-14任意一项所述的方法,其特征在于,所述方法还包括:
接收所述服务器的内存申请请求;
根据所述内存申请请求向所述服务器发送内存空间,所述内存空间包括所述存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111510715.8A CN116260778A (zh) | 2021-12-10 | 2021-12-10 | 一种外接内存装置、外接内存访问方法及网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111510715.8A CN116260778A (zh) | 2021-12-10 | 2021-12-10 | 一种外接内存装置、外接内存访问方法及网络系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116260778A true CN116260778A (zh) | 2023-06-13 |
Family
ID=86686717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111510715.8A Pending CN116260778A (zh) | 2021-12-10 | 2021-12-10 | 一种外接内存装置、外接内存访问方法及网络系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116260778A (zh) |
-
2021
- 2021-12-10 CN CN202111510715.8A patent/CN116260778A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018137217A1 (zh) | 一种数据处理的系统、方法及对应装置 | |
CN103902486B (zh) | 一种远端直接内存访问实现方法、装置及系统 | |
US8571848B2 (en) | System and method of network emlation for test of on-line server processing heavy traffic | |
WO2017114091A1 (zh) | 一种nas数据访问的方法、系统及相关设备 | |
US11411892B2 (en) | Packet fragment processing method and apparatus and system | |
CN101409675A (zh) | 网络分组净荷压缩 | |
US10728335B2 (en) | Data processing method, storage system, and switching device | |
US20220244861A1 (en) | Data Access Method and Apparatus, and First Computing Device | |
US11782869B2 (en) | Data transmission method and related device | |
US20230080588A1 (en) | Mqtt protocol simulation method and simulation device | |
US20240039995A1 (en) | Data access system and method, device, and network adapter | |
EP4195760A1 (en) | Roce network congestion control method and related apparatus | |
EP4030293A1 (en) | Solid state disk access method and storage device | |
US11231983B2 (en) | Fault tolerance processing method, apparatus, and server | |
CN105141603A (zh) | 通信数据传输方法及系统 | |
CN105264869A (zh) | 一种ip地址分配的系统和方法 | |
EP2699030B1 (en) | Route switching device, network switching system and route switching method | |
WO2018107433A1 (zh) | 信息处理方法和装置 | |
CN104038550A (zh) | 数据通信方法及其装置、存储系统 | |
WO2023125380A1 (zh) | 一种数据管理的方法及相应装置 | |
WO2015055008A1 (zh) | 一种存储控制芯片及磁盘报文传输方法 | |
WO2023030195A1 (zh) | 缓存管理方法和装置、控制程序及控制器 | |
CN116260778A (zh) | 一种外接内存装置、外接内存访问方法及网络系统 | |
WO2022089352A1 (zh) | 数据传输方法、设备、网络系统及存储介质 | |
CN116346720A (zh) | 一种传输信息的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |