CN115934624B - Method, equipment and medium for managing multi-host remote direct memory access network - Google Patents

Method, equipment and medium for managing multi-host remote direct memory access network Download PDF

Info

Publication number
CN115934624B
CN115934624B CN202310238369.5A CN202310238369A CN115934624B CN 115934624 B CN115934624 B CN 115934624B CN 202310238369 A CN202310238369 A CN 202310238369A CN 115934624 B CN115934624 B CN 115934624B
Authority
CN
China
Prior art keywords
memory access
direct memory
remote direct
host
access 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.)
Active
Application number
CN202310238369.5A
Other languages
Chinese (zh)
Other versions
CN115934624A (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.)
Zhuhai Xingyun Zhilian Technology Co Ltd
Original Assignee
Zhuhai Xingyun Zhilian Technology 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 Zhuhai Xingyun Zhilian Technology Co Ltd filed Critical Zhuhai Xingyun Zhilian Technology Co Ltd
Priority to CN202310238369.5A priority Critical patent/CN115934624B/en
Publication of CN115934624A publication Critical patent/CN115934624A/en
Application granted granted Critical
Publication of CN115934624B publication Critical patent/CN115934624B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The application provides a method, equipment and medium for managing a multi-host remote direct memory access network. The method comprises the following steps: providing a plurality of hosts, wherein the hosts comprise a first host and at least one second host, the second hosts are respectively connected with a PCIE switch of the first host through PCIE interfaces, and the second hosts are connected with a data processing unit comprising a management module and a port connected with an RDMA network through the PCIE switch; managing, by a management module, registration of RDMA devices for each host and RDMA resources for registered devices; allocating, by the data processing unit, bandwidth of the port to the service demand using the multi-level scheduling control in response to RDMA service demand of the given host; and a given device of a given host utilizing the bandwidth of the allocated port to achieve traffic demands by the data processing unit interacting with the RDMA network. This reduces complexity and increases resource allocation flexibility.

Description

Method, equipment and medium for managing multi-host remote direct memory access network
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to a method, an apparatus, and a medium for managing a multi-host remote direct memory access network.
Background
With the development of network communication technology and virtualization technology, multiple hosts, such as server hosts, are often deployed on a single computing node or data center, where the number of network devices that can be supported by the hosts is limited by the number of ethernet ports of the installed network card, for example, where the network card supports two ethernet ports and the host on which the network card is installed can support two network devices. To increase data processing speed, remote direct memory access (Remote Direct Memory Access, RDMA) techniques are often applied to quickly move data from one machine into the memory of a remote machine and the data transfer does not involve the system kernel. Thus, in a multi-host business scenario, such as a compute node or data center that includes multiple hosts, RDMA network functionality may be provided by installing RDMA enabled network cards. An auxiliary card is installed on each host, and is connected with the shared RDMA-supporting network card through the auxiliary card, so that the RDMA network function of the RDMA-supporting network card is extended to each host. However, in this manner, the auxiliary card is used to share the RDMA-capable network card between the multiple hosts, so that each host is still required to be connected to the shared RDMA-capable network card through the respective auxiliary card, thereby increasing hardware complexity, and in addition, when multiple virtual machines are deployed on the host, it is difficult to allocate the shared RDMA-capable network card to the multiple virtual machines, so that it is difficult for the virtual machines on the host to utilize RDMA technology to improve system efficiency.
To this end, the present application provides a method, apparatus, and medium for multi-host remote direct memory access network management to address the above challenges.
Disclosure of Invention
The embodiment of the application provides a method, equipment and medium for managing a multi-host remote direct memory access network, which are used for solving the problems in the prior art.
In a first aspect, the present application provides a method for multi-host remote direct memory access network management. The method comprises the following steps: providing a plurality of hosts, wherein the hosts comprise a first host and at least one second host, the at least one second host is respectively connected with a high-speed peripheral component interconnection standard switch of the first host through respective high-speed peripheral component interconnection standard interfaces, the first host is connected with a data processing unit through the high-speed peripheral component interconnection standard switch, and the data processing unit comprises a management module and a port connected with a remote direct memory access network; the management module is used for managing the registration of the remote direct memory access device of each host and the remote direct memory access resources of the registered remote direct memory access device of the host; allocating, by the data processing unit, bandwidth of the port to a remote direct memory access traffic demand of a given host of the plurality of hosts in response to the remote direct memory access traffic demand, with a multi-level scheduling control, a given registered remote direct memory access device of the given host's registered remote direct memory access devices being associated with the remote direct memory access traffic demand, the multi-level scheduling control being based at least on a priority of the given host and a priority of remote direct memory access resources of the given registered remote direct memory access device; and the given registered remote direct memory access device of the given host utilizing the bandwidth allocated by the data processing unit to the port of the remote direct memory access service requirement to fulfill the remote direct memory access service requirement by the data processing unit interacting with the remote direct memory access network.
According to the first aspect of the application, the connection with the physical network card by the aid of the auxiliary card to share the physical network card is omitted, the connection with the high-speed peripheral component interconnection standard switch is realized through the high-speed peripheral component interconnection standard interface, the connection with the data processing unit is realized through the high-speed peripheral component interconnection standard switch, the device registration, the resource management and the bandwidth allocation by utilizing the multi-level scheduling control are realized through the data processing unit, the hardware complexity is reduced, the complex and changeable requirements of a service scene of a plurality of hosts such as a computing node or a data center and the like are met, and the application of the virtualization technology to increase the flexibility in resource allocation is facilitated.
In a possible implementation manner of the first aspect of the present application, the given registered remote direct memory access device of the given host uses remote direct memory access resources of the given registered remote direct memory access device to interact with the remote direct memory access network through the data processing unit.
In a possible implementation manner of the first aspect of the present application, the given host belongs to the at least one second host, and the given registered remote direct memory access device of the given host interacts with the remote direct memory access network through a peripheral component interconnect standard interface of the given host, a peripheral component interconnect standard switch of the first host, and the port.
In a possible implementation manner of the first aspect of the present application, the multi-level scheduling control is further based on a priority of the physical function device of the given host.
In a possible implementation manner of the first aspect of the present application, the given host includes at least one virtual machine, and the given registered remote direct memory access device is deployed on the at least one virtual machine.
In a possible implementation manner of the first aspect of the present application, the method further includes: providing a plurality of virtual remote direct memory access network cards through the data processing unit; and distributing the virtual remote direct memory access network cards to the virtual machines of the hosts.
In a possible implementation manner of the first aspect of the present application, for each of the plurality of hosts, a remote direct memory access resource of a registered remote direct memory access device of the host includes: the virtual function identification of the registered remote direct memory access device, the queue pair resource of the registered remote direct memory access device, and the segment descriptor resource of the registered remote direct memory access device.
In a possible implementation manner of the first aspect of the present application, the virtual function identifier of the registered remote direct memory access device is used by the data processing unit to determine a register corresponding to the registered remote direct memory access device, the register being located inside the data processing unit, the register being used to store a remote direct memory access configuration associated with the registered remote direct memory access device.
In a possible implementation manner of the first aspect of the present application, managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts includes: the remote direct memory access device to be registered applies for registration to the management module, and the management module distributes unoccupied virtual function identifiers to the remote direct memory access device to be registered from a virtual function identifier pool of the data processing unit and sets the unoccupied virtual function identifiers to be occupied.
In a possible implementation manner of the first aspect of the present application, the queue pair resource of the registered remote direct memory access device is used for the registered remote direct memory access device to interact with the remote direct memory access network through the data processing unit.
In a possible implementation manner of the first aspect of the present application, managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts includes: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates unoccupied queue pair resources to the remote direct memory access device to be registered from a queue pair resource pool of the data processing unit and sets the unoccupied queue pair resources to be occupied.
In a possible implementation manner of the first aspect of the present application, the segment descriptor resource of the registered remote direct memory access device is used for pointing to the memory of the host for caching a queue pair resource of the registered remote direct memory access device and a context of the queue pair resource of the registered remote direct memory access device.
In a possible implementation manner of the first aspect of the present application, managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts includes: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates unoccupied segment descriptor resources from a segment descriptor resource pool of the data processing unit to the remote direct memory access device to be registered and sets the unoccupied segment descriptor resources to be occupied.
In a possible implementation manner of the first aspect of the present application, the memory of the host for caching the queue pair resource of the registered remote direct memory access device and the context of the queue pair resource of the registered remote direct memory access device is a direct memory access memory of the host.
In a possible implementation manner of the first aspect of the present application, the data processing unit includes a virtual function identification pool shared by the plurality of hosts, a queue pair resource pool, and a segment descriptor resource pool, where, by the management module, managing registration of remote direct memory access devices of each of the plurality of hosts includes: the remote direct memory access device to be registered applies for registration to the management module, and the management module respectively distributes unoccupied virtual function identifiers, unoccupied queue pair resources and unoccupied segment descriptor resources to the remote direct memory access device to be registered from the virtual function identifier pool, the queue pair resource pool and the segment descriptor resource pool, wherein the unoccupied segment descriptor resources are determined based on the sizes of the unoccupied queue pair resources and the context of the unoccupied queue pair resources.
In a possible implementation manner of the first aspect of the present application, the priority of the remote direct memory access resource of the given registered remote direct memory access device is a queue-to-resource priority of the given registered remote direct memory access device included in the remote direct memory access resource of the given registered remote direct memory access device.
In a possible implementation manner of the first aspect of the present application, allocating the bandwidth of the port to the remote direct memory access service requirement by using the multi-level scheduling control includes: determining a traffic priority of the remote direct memory access traffic demand based on the priority of the given host, the priority of the physical function device of the given host, and the queue-to-resource priority of the given registered remote direct memory access device of the given host associated with the remote direct memory access traffic demand, and determining a bandwidth allocated to the port of the remote direct memory access traffic demand based on the traffic priority.
In a possible implementation manner of the first aspect of the present application, the method further includes: when a new host is added, the new host is connected with a high-speed peripheral component interconnection standard switch of the first host through a high-speed peripheral component interconnection standard interface of the new host, and the registration of a remote direct memory access device of the new host and the remote direct memory access resource of the registered remote direct memory access device of the new host are managed through the management module; when a third host of the plurality of hosts exits, reclaiming, by the management module, remote direct memory access resources of the registered remote direct memory access device of the third host and reclaiming bandwidth allocated to the port of the registered remote direct memory access device of the third host.
In a second aspect, embodiments of the present application further provide a computer device, where the computer device includes a memory, a processor, and a computer program stored on the memory and executable on the processor, where the processor implements a method according to any implementation manner of any one of the foregoing aspects when the computer program is executed.
In a third aspect, embodiments of the present application also provide a computer-readable storage medium storing computer instructions that, when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
In a fourth aspect, embodiments of the present application also provide a computer program product comprising instructions stored on a computer-readable storage medium, which when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings needed in the description of the embodiments will be briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present application, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a schematic diagram of a multi-host shared remote direct memory access network card based on an auxiliary card;
FIG. 2 is a schematic diagram of a remote direct memory access network with multiple hosts based on a data processing unit according to an embodiment of the present application;
FIG. 3 is a flow chart of a method for multi-host remote direct memory access network management according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of a computing device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
The embodiment of the application provides a method, equipment and medium for managing a multi-host remote direct memory access network, which are used for solving the problems in the prior art. The method and the device provided in the embodiments of the present application are based on the same inventive concept, and because the principles of solving the problems by the method and the device are similar, the embodiments, implementations, examples or implementation of the method and the device may refer to each other, and the repetition is not repeated.
It should be understood that in the description of this application, "at least one" means one or more than one, and "a plurality" means two or more than two. In addition, the words "first," "second," and the like, unless otherwise indicated, are used solely for the purposes of description and are not to be construed as indicating or implying a relative importance or order.
Fig. 1 is a schematic diagram of a multi-host shared remote direct memory access network card based on an auxiliary card. As shown in fig. 1, the first network host 100 includes a first motherboard 102, a first processor 104 thereon, and a first network adapter (network interface controller, NIC) 106. The first network adapter 106 supports remote direct memory access (Remote Direct Memory Access, RDMA), i.e., it can be used to quickly move data from one machine to the memory of a remote machine and the data transfer does not involve the system kernel. The first network adapter 106 is coupled to a first remote direct memory access network 152 through a switch 150. Also shown in fig. 1, the second network host 110 includes a second motherboard 112, a second processor 114 thereon, and a second auxiliary card 116, the third network host 120 includes a third motherboard 122, a third processor 124 thereon, and a third auxiliary card 126, and the fourth network host 130 includes a fourth motherboard 132, a fourth processor 134 thereon, and a fourth auxiliary card 136. The second network host 110 is connected to the first network adapter 106 through the second auxiliary card 116, the third network host 120 is connected to the first network adapter 106 through the third auxiliary card 126, and the fourth network host 130 is connected to the first network adapter 106 through the fourth auxiliary card 136. The second network host 110, the third network host 120, and the fourth network host 130 implement sharing network functions of the first network adapter 106, including RDMA network functions provided by the first network adapter 106 of the first network host 100, through respective auxiliary cards, namely through the second auxiliary card 116, the third auxiliary card 126, and the fourth auxiliary card 136, respectively. Thus, the second network host 110, the third network host 120, and the fourth network host 130 may access the first remote direct memory access network 152 and perform RDMA related tasks through the shared first network adapter 106. The scenario illustrated in fig. 1 in which multiple hosts share a remote direct memory access network card, i.e., the scenario in which the second network host 110, the third network host 120, and the fourth network host 130 share the first network adapter 106, represents a multi-host traffic scenario, such as a computing node or data center that includes multiple hosts. In a multi-host business scenario or similar application, RDMA network functionality is typically provided by installing RDMA enabled network cards, and an auxiliary card is installed on each host, through which the RDMA network functionality of the RDMA enabled network card is extended to each host, connected to the shared RDMA enabled network card. The first network adapter 106 in fig. 1, extending its RDMA network functions to other network hosts where the auxiliary cards connected thereto are located, may be considered as a multi-host network card. In other words, the first network host 100, as well as the second network host 110, the third network host 120, and the fourth network host 130, shown in FIG. 1, appear externally, for example, to the first remote direct memory access network 152 as multiple hosts RDMA-related communications and data transfers over the same network card, i.e., the first network adapter 106. Taking the manner in which multiple auxiliary card-based hosts share a remote direct memory access network card as exemplified in fig. 1, for example, the second network host 110 shares network functions provided by the first network adapter 106 based on the second auxiliary card 116 to connect with the first remote direct memory access network 152, requires an auxiliary card to be installed on each host and shares a physical network card through the installed auxiliary card, thus introducing complexity in hardware. In addition, with the development of virtualization technology, a plurality of virtual machines, such as virtual clients, are typically deployed on a host computer, and it is difficult for the virtual machines on the host computer to implement RDMA acceleration using an auxiliary card installed on the host computer, so a physical network card, such as the first network adapter 106 on the first network host 100, is typically virtualized into a plurality of virtual network cards, and then the plurality of virtual network cards are allocated to the virtual machines on the host computer. However, since the host is not directly connected to the physical network card but needs to be connected to the physical network card through the auxiliary card, a plurality of virtual network cards obtained by virtualizing the physical network card are limited when the virtual network cards are allocated to the virtual machines on the host. In addition, in a multi-host business scenario, such as a computing node or a data center that includes multiple hosts, devices may be subject to addition, deletion, and replacement, e.g., devices mounted on a host or deployed virtual machines need to be subject to addition, deletion, or replacement upgrades, which may mean that existing architectures that implement RDMA network functions through shared physical network cards and auxiliary cards are affected, such as reconfiguration and reconnection, and may be subject to new hosts or exiting of existing hosts, which may result in the insertion and removal of auxiliary cards and affect the connection with shared physical network cards. In the manner of sharing the remote direct memory access network card by multiple hosts based on the auxiliary card illustrated in fig. 1, it is difficult to efficiently and flexibly cope with the demands of adding and deleting devices or hosts because of complexity in hardware and limitation of connection between the auxiliary card and the physical card, and it is also difficult to apply the virtualization technology to increase flexibility in resource configuration. The following detailed description is provided in connection with other embodiments of the present application, which provide a method, apparatus, and medium for managing a multi-host remote direct memory access network.
Fig. 2 is a schematic diagram of a multi-host remote direct memory access network based on a data processing unit according to an embodiment of the present application. As shown in fig. 2, the fifth network host 200 includes a fifth processor 202, a fifth memory 204, and a fifth peripheral component interconnect express (Peripheral Component Interconnect Express, PCIE) switch 206. The sixth network host 210 includes a sixth processor 212, a sixth memory 214, and a sixth peripheral component interconnect standard interface 216. The seventh network host 220 comprises a seventh processor 222, a seventh memory 224 and a seventh peripheral component interconnect standard interface 226. The eighth network host 230 includes an eighth processor 232, an eighth memory 234, and an eighth PCI express standard interface 236. It can be seen that the sixth network host 210 is connected to the fifth hpc standard switch 206 of the fifth network host 200 through the sixth hpc standard interface 216, the seventh network host 220 is connected to the fifth hpc standard switch 206 of the fifth network host 200 through the seventh hpc standard interface 226, and the eighth network host 230 is connected to the fifth hpc standard switch 206 of the fifth network host 200 through the eighth hpc standard interface 236. Accordingly, the sixth network host 210, the seventh network host 220, and the eighth network host 230 are respectively connected to the fifth peripheral component interconnect standard switch 206 of the fifth network host 200 through respective peripheral component interconnect standard interfaces. The fifth network host 200 is connected to a data processing unit (data processing unit, DPU) 250 via a fifth peripheral component interconnect standard switch 206, the data processing unit 250 comprising a management module 252 and a port 254 connected to a second remote direct memory access network 260. The multiple hosts shown in fig. 2, namely fifth network host 200, sixth network host 210, seventh network host 220, and eighth network host 230, appear externally, e.g., to second remote direct memory access network 260, to RDMA-related communications and data transfers through port 254 of data processing unit 250. Unlike the manner in which the multiple hosts based on the auxiliary card share the remote direct memory access network card shown in fig. 1, the multiple hosts remote direct memory access network based on the data processing unit shown in fig. 2, the sixth network host 210, the seventh network host 220 and the eighth network host 230 are respectively connected to the fifth peripheral component interconnect standard switch 206 of the fifth network host 200 through respective peripheral component interconnect standard interfaces, where the fifth peripheral component interconnect standard switch 206 provides an extended or aggregated capability based on the peripheral component interconnect standard (Peripheral Component Interconnect Express, PCIE), and can be used to implement interconnection between peripheral component interconnect standard devices, i.e., PCIE devices. The sixth network host 210, the seventh network host 220, and the eighth network host 230 may also respectively install software drivers, for example, drivers for implementing RDMA network functions, and then transmit messages to the management module 252 of the data processing unit 250 through the PCIE fabric, thereby implementing functions such as device registration, resource application, and the like, and further implementing the port 254 of the data processing unit 250 shared by multiple hosts, including sharing bandwidth and interacting with the second remote direct memory access network 260 through the port 254. Thus, by omitting to connect with the physical network card by means of the auxiliary card to share the physical network card, but connecting with the fifth hpc standard switch 206 of the fifth network host 200 by means of the respective hpc standard interface, and implementing device registration, resource application, etc. by means of the data processing unit 250, and interacting with the second remote direct memory access network 260 by sharing the port 254 and network bandwidth of the data processing unit 250, it helps to reduce hardware complexity and cope with complex and varied demands of a multi-host traffic scenario, such as a compute node or a data center comprising multiple hosts, and also helps to apply virtualization technology to increase flexibility in resource allocation. These improvements are described in detail below in connection with the embodiment of fig. 3.
Fig. 3 is a flowchart of a method for managing a multi-host remote direct memory access network according to an embodiment of the present application. As shown in fig. 3, the method includes the following steps.
Step S310: providing a plurality of hosts, wherein the hosts comprise a first host and at least one second host, the at least one second host is respectively connected with a high-speed peripheral component interconnection standard switch of the first host through respective high-speed peripheral component interconnection standard interfaces, the first host is connected with a data processing unit through the high-speed peripheral component interconnection standard switch, and the data processing unit comprises a management module and a port connected with a remote direct memory access network.
Step S320: and managing, by the management module, registration of the remote direct memory access device of each of the plurality of hosts and remote direct memory access resources of the registered remote direct memory access device of the host.
Step S330: allocating, by the data processing unit, bandwidth of the port to a remote direct memory access traffic demand of a given host of the plurality of hosts in response to the remote direct memory access traffic demand, using a multi-level scheduling control, a given registered remote direct memory access device of the given host's registered remote direct memory access devices being associated with the remote direct memory access traffic demand, the multi-level scheduling control being based at least on a priority of the given host and a priority of remote direct memory access resources of the given registered remote direct memory access device.
Step S340: the given registered remote direct memory access device of the given host utilizes the bandwidth allocated by the data processing unit to the port of the remote direct memory access service requirement to fulfill the remote direct memory access service requirement by the data processing unit interacting with the remote direct memory access network.
Referring to the above steps, in step S310, a plurality of hosts are provided, including a first host and at least one second host, where the at least one second host is connected to a peripheral component interconnect standard switch of the first host through a respective peripheral component interconnect standard interface, the first host is connected to a data processing unit through the peripheral component interconnect standard switch, and the data processing unit includes a management module and a port connected to a remote direct memory access network. In this way, similar to the multi-host remote direct memory access network based on the data processing unit shown in fig. 2, the connection with the physical network card by the aid of the auxiliary card to share the physical network card is omitted, and the connection with the high-speed peripheral component interconnect standard switch is realized through the high-speed peripheral component interconnect standard interface, so that the port sharing the data processing unit and the network bandwidth can be realized to interact with the remote direct memory access network. Next, in step S320, the registration of the remote direct memory access device of each host and the remote direct memory access resources of the registered remote direct memory access device of the host are managed by the management module on the data processing unit, so that uniform resource management is facilitated, the remote direct memory access resources are flexibly allocated, and the processing capability of the data processing unit is also efficiently utilized. In addition, the management module on the data processing unit is used for managing the registration of the remote direct memory access device of each host and managing the remote direct memory access resources of the registered remote direct memory access device, the connection between the remote direct memory access device and the high-speed peripheral component interconnection standard switch through the high-speed peripheral component interconnection standard interface can be combined to further realize the interaction between the port and the network bandwidth of the shared data processing unit and the remote direct memory access network, so that the data processing unit can perform unified planning and regulation on the registration of the device, the resource management and the bandwidth control, the hardware complexity is reduced, the multi-host architecture can be flexibly expanded, for example, the device can be conveniently added or deleted, the new host or the host can be conveniently withdrawn through the data processing unit, the system efficiency can be further improved through the data processing unit in a software upgrading mode, and the like, and the efficient scheduling control on the bandwidth used by the multi-host through the data processing unit is also facilitated. Further, the multi-host remote direct memory access network based on data processing units described above may be used to interact with a remote direct memory access network to meet remote direct memory access related needs and facilitate application of virtualization techniques. In step S330, the data processing unit, in response to the remote direct memory access traffic demand of a given host of the plurality of hosts, allocates bandwidth of the port to the remote direct memory access traffic demand using multi-level scheduling control. Here, the multi-level scheduling control means that the data processing unit performs fine control on specific services, such as the remote direct memory access service requirement, and allocates bandwidth of ports of the data processing unit. Wherein a given registered remote direct memory access device of the given host's registered remote direct memory access devices is associated with the remote direct memory access traffic demand, the multi-level scheduling control being based at least on a priority of the given host and a priority of a remote direct memory access resource of the given registered remote direct memory access device. This means that the fine control is performed based on the specific traffic to allocate bandwidth of the ports of the data processing unit, i.e. the multi-level scheduling control, based at least on the priority of said given host and the priority of the remote direct memory access resources of said given registered remote direct memory access device, and thus based at least on the priority of the host and the priority of the remote direct memory access resources of the device associated with said remote direct memory access traffic demand. The management module on the data processing unit is used for managing the registration of the remote direct memory access device of each host and the remote direct memory access resources of the registered remote direct memory access device of the host, so that the multi-level scheduling control can be combined with the management function of the management module of the data processing unit, particularly the function of managing the remote direct memory access resources of the registered device and the device, and unified planning and regulation on resource management and bandwidth control aiming at specific remote direct memory access service requirements are realized. For example, it is provided that the specific device on the specific host is associated with the remote direct memory access service requirement, e.g. the specific device on the specific host is used for performing a remote direct memory access read operation or a remote direct memory access write operation, and the specific device belongs to a registered remote direct memory access device on the specific host, so that the data processing unit manages the remote direct memory access resource of the specific device through the management module. In this way, the data processing unit utilizes a multi-level scheduling control to allocate bandwidth for the ports based at least on the priority of a particular host and the remote direct memory access resources of a particular device, thus embodying a finer granularity of scheduling. For a particular service, there are multiple levels of scheduling including at least two levels, namely, based on the priority of the host and the priority of the remote direct memory access resource of the device associated with the remote direct memory access service requirement. This facilitates the operation of different priority classes of traffic on the same host (different priority classes of traffic may each correspond to a different device on the same host, and the priorities of the remote direct memory access resources of the different devices may be different), as well as the operation of different priority classes of traffic on different hosts (different hosts may have different priorities). And the priority of the service is also embodied on bandwidth control, namely, the bandwidth of the port is allocated by utilizing multi-level scheduling control, so that the requirements of different services on the priority and the bandwidth can be realized. For example, a service requiring a higher network bandwidth, such as video live broadcast, large-sized data access, game, etc., or tasks of high-performance computing, encryption and decryption computing, etc., may be set with a higher priority for the service requiring the higher network bandwidth, and by using a management function of the data processing unit, a corresponding adjustment is made on a priority of a host and/or a priority of a remote direct memory access resource of a specific device, for example, a priority of the higher host is set, and more remote direct memory access resources of the specific device are allocated, so that a limited network bandwidth of the data processing unit and a limited remote direct memory access resource of the whole are better mobilized on a global level to meet a differential requirement of the service on the bandwidth of different hosts, which is also beneficial to maximizing the whole network bandwidth and improving the bandwidth and resource utilization efficiency. In addition, the given registered remote direct memory access device of the given host utilizes the bandwidth allocated by the data processing unit to the port of the remote direct memory access traffic demand to fulfill the remote direct memory access traffic demand by the data processing unit interacting with the remote direct memory access network. This means that on the basis of the above described macro-level adjustment of the resource management and bandwidth control of the data processing unit, a given registered remote direct memory access device of the registered remote direct memory access devices of the given host associated with the remote direct memory access service requirement, i.e. a specific device on a specific host for fulfilling the remote direct memory access service requirement, uses the bandwidth of the ports allocated by the data processing unit to interact with the remote direct memory access network to fulfill the remote direct memory access service requirement by means of the data processing unit (e.g. the second host is connected to the first host's PCI express standard switch via the PCI express standard interface and to the data processing unit via the PCI express standard switch). It should be appreciated that a given registered remote direct memory access device of the given host's registered remote direct memory access devices, i.e., a particular device on a particular host that is specifically configured to fulfill the remote direct memory access traffic requirements, may be a physical device, such as a physical function device on the given host, or may be a virtual device or virtual machine. Since the host is connected to the data processing unit through the high-speed peripheral component interconnect standard interface or the high-speed peripheral component interconnect standard switch, which is equivalent to a direct connection between the host and the physical network card, it is helpful to apply various virtualization technologies, such as providing multiple virtual machines on multiple hosts. In addition, the operations of adding, deleting and replacing devices, such as adding, deleting or replacing and upgrading the devices mounted on a certain host or deployed virtual machines, and exiting of a new host or existing hosts, can conveniently recover the allocated bandwidth and the allocated resources through the management function of the data processing unit, and can allocate unoccupied bandwidth and resources for the new host and the new devices, so that the requirements of adding, deleting and the like of the devices or the hosts can be effectively and flexibly met. In summary, the method for multi-host remote direct memory access network management shown in fig. 3, in combination with the multi-host remote direct memory access network based on the data processing unit shown in fig. 2, omits to connect with the physical network card by means of the auxiliary card to share the physical network card, connects with the high-speed peripheral component interconnect standard switch by the high-speed peripheral component interconnect standard interface, connects with the data processing unit by the high-speed peripheral component interconnect standard switch, and realizes device registration, resource management and bandwidth allocation by using multi-level scheduling control by the data processing unit, thereby being beneficial to reducing hardware complexity and meeting complex and changeable requirements of multi-host service scenarios such as computing nodes or data centers comprising a plurality of hosts, and being beneficial to applying virtualization technology to increase flexibility in resource allocation.
In one possible implementation, the given registered remote direct memory access device of the given host utilizes remote direct memory access resources of the given registered remote direct memory access device to interact with the remote direct memory access network through the data processing unit. In some embodiments, the given host belongs to the at least one second host, and the given registered remote direct memory access device of the given host interacts with the remote direct memory access network through a peripheral component interconnect standard interface of the given host, a peripheral component interconnect standard switch of the first host, and the port. Thus, the resource management and bandwidth control functions of the data processing unit are beneficial to reducing the complexity of hardware and improving the bandwidth utilization efficiency.
In one possible implementation, the multi-level scheduling control is further based on the priority of the physical function device of the given host. In this way, the data processing unit allocates the bandwidth of the port using a multi-level scheduling control, which is based at least on the priority of the particular host and the remote direct memory access resource of the particular device, and also the priority of the physical function device of the given host, i.e. at least three levels of multi-level scheduling control, thus embodying a finer granularity of scheduling.
In one possible implementation, the given host includes at least one virtual machine, and the given registered remote direct memory access device is deployed at the at least one virtual machine. This facilitates the application of virtualization techniques.
In one possible embodiment, the method further comprises: providing a plurality of virtual remote direct memory access network cards through the data processing unit; and distributing the virtual remote direct memory access network cards to the virtual machines of the hosts. It should be appreciated that since the host is connected to the data processing unit via the PCI express standard interface or the PCI express standard switch, this is equivalent to a direct connection between the host and the physical network card, which facilitates the application of various virtualization technologies such as providing multiple virtual machines on multiple hosts. Here, the data processing unit provides a plurality of virtual remote direct memory access network cards, for example, virtualizes a physical network card into a plurality of virtual network cards, so that the plurality of virtual remote direct memory access network cards can be allocated to respective virtual machines of the plurality of hosts, and flexibility in resource configuration is improved.
In one possible implementation, for each of the plurality of hosts, a remote direct memory access resource of a registered remote direct memory access device of the host includes: a virtual function identification (Virtual Function Identify) of the registered remote direct memory access device, a Queue Pair (QP) resource of the registered remote direct memory access device, and a segment descriptor (Segment Descriptor, SD) resource of the registered remote direct memory access device. Each of the plurality of hosts may also deploy a software driver supporting remote direct memory access for interacting with the management module of the data processing unit to complete device registration and resource management on the host. Specifically, the remote direct memory access resource of the registered remote direct memory access device of the host includes a virtual function identifier of the registered remote direct memory access device. The virtual function identification is used to provide an index to identify a particular device that supports remote direct memory access, such as a particular device on a particular host. There may be multiple remote direct memory access devices on the same host and all of these multiple remote direct memory access devices may have completed registration through the data processing unit, and thus may have multiple virtual function identities, each for determining one of the remote direct memory access devices that has already been registered. Thus, when the remote direct memory access device of the host side is initialized, the corresponding virtual function identifier can be utilized to apply for resources and the like to the data processing unit. In addition, when the remote direct memory access device at the host side is to exit, for example, the device is deleted, the recovery of the resources and the bandwidth can also be completed by using the corresponding virtual function identifier. Thus, the virtual function identification is used to distinguish between different registered remote direct memory access devices within the data processing unit. The data processing unit supports limited remote direct memory access devices, so that the total number of virtual function identifiers which can be provided is limited, virtual function identifiers corresponding to the withdrawn devices need to be recovered, and the virtual function identifiers corresponding to newly added devices are ensured not to be occupied currently. The remote direct memory access resource of the registered remote direct memory access device of the host also comprises a queue pair resource of the registered remote direct memory access device, wherein the queue pair is a work queue for interaction between devices, generally comprises a pair of a sending queue and a receiving queue, and can be also understood as a virtual interface between hardware and software. The data processing unit supports limited queue pair resources, or the total number of the queue pairs which can be allocated is limited, the queue pair resources corresponding to the withdrawn equipment need to be recovered, and the newly added queue pair resources corresponding to the equipment are ensured not to be occupied currently. The remote direct memory access resource of the registered remote direct memory access device of the host further comprises: the segment descriptor resources of the registered remote direct memory access device. The segment descriptor resource is used to store addresses to host-side memory that is used to cache the context of the queue pair and associated queue pair. When the device is initialized, segment descriptor resources are applied to the data processing unit, and the number of segment descriptors needing to be occupied is calculated according to the size of the queue pair allocated for the device, the size of the context of each queue pair and the size of the memory pointed by the segment descriptors. The total number of segment descriptors that can be supported by the data processing unit is limited, so that it is necessary to reclaim segment descriptor resources corresponding to the exited device and to ensure that segment descriptor resources corresponding to the newly added device are not currently occupied. The segment descriptor resources of the registered remote direct memory access device facilitate subsequent hardware lookups, such as retrieving a queue pair and context of the associated queue pair based on a memory address to which the segment descriptor resources are directed. In some embodiments, after the remote direct memory access device applies for the segment descriptor resource, multiple pieces of direct memory access memory are applied for the operating system in the host, and then these direct memory access memories are issued to the data processor for storage, so as to store the queue pair context created by the subsequent user.
It should be appreciated that for each of the plurality of hosts, the remote direct memory access resources of the registered remote direct memory access device of that host may further comprise: source address information tables, statistics, etc. other resources that facilitate macro resource management and bandwidth control by the data processing unit.
In one possible implementation, the virtual function identification of the registered remote direct memory access device is used by the data processing unit to determine a register corresponding to the registered remote direct memory access device, the register being located within the data processing unit, the register being used to store a remote direct memory access configuration associated with the registered remote direct memory access device. In some embodiments, managing, by the management module, registration of the remote direct memory access device for each of the plurality of hosts includes: the remote direct memory access device to be registered applies for registration to the management module, and the management module distributes unoccupied virtual function identifiers to the remote direct memory access device to be registered from a virtual function identifier pool of the data processing unit and sets the unoccupied virtual function identifiers to be occupied. Thus, the resource management of the virtual function identification is realized.
In one possible implementation, queue pair resources of the registered remote direct memory access device are used by the registered remote direct memory access device to interact with the remote direct memory access network through the data processing unit. Managing, by the management module, registration of a remote direct memory access device for each of the plurality of hosts, comprising: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates unoccupied queue pair resources to the remote direct memory access device to be registered from a queue pair resource pool of the data processing unit and sets the unoccupied queue pair resources to be occupied. Thus, the resource management of the queue to the resource is realized.
In one possible implementation, the segment descriptor resources of the registered remote direct memory access device are used to point to the host's memory for caching the queue pair resources of the registered remote direct memory access device and the context of the queue pair resources of the registered remote direct memory access device. Managing, by the management module, registration of a remote direct memory access device for each of the plurality of hosts, comprising: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates unoccupied segment descriptor resources from a segment descriptor resource pool of the data processing unit to the remote direct memory access device to be registered and sets the unoccupied segment descriptor resources to be occupied. In some embodiments, the memory of the host that is used to cache the queue pair resources of the registered remote direct memory access device and the context of the queue pair resources of the registered remote direct memory access device is direct memory access memory of the host. In this way, resource management of segment descriptor resources is achieved.
In one possible implementation, the data processing unit includes a virtual function identification pool, a queue pair resource pool, and a segment descriptor resource pool shared by the plurality of hosts, wherein managing, by the management module, registration of remote direct memory access devices of each of the plurality of hosts includes: the remote direct memory access device to be registered applies for registration to the management module, and the management module respectively distributes unoccupied virtual function identifiers, unoccupied queue pair resources and unoccupied segment descriptor resources to the remote direct memory access device to be registered from the virtual function identifier pool, the queue pair resource pool and the segment descriptor resource pool, wherein the unoccupied segment descriptor resources are determined based on the sizes of the unoccupied queue pair resources and the context of the unoccupied queue pair resources. In this way, the shared virtual function identification pool, the queue pair resource pool and the segment descriptor resource pool are provided by the data processing unit, so that the resource management is realized macroscopically. In addition, in some embodiments, the designated host side may support the use of the remaining real-time query resources, such as the queue's use of the resource pool and segment descriptor resource pool. When a new host joins and initializes, the remaining condition of the resource is inquired from the management module, and the smaller value is taken as the resource specification of the new host to use according to the comparison between the resource application number specified by the user and the remaining number of the resource, thereby avoiding the initialization failure caused by the fact that the new host cannot apply for the resource specification. In addition, if no residual resources are available when the new host joins and initializes, the idle host which has initialized to run can be forced to exit at the moment, and the occupied resources are released for the new host side to use. Therefore, the resource pooling is realized through the data processor, the resources are dynamically allocated for each host, and the application resources and the recovery resources are provided, so that the resource multiplexing is realized to the greatest extent.
In one possible implementation, the priority of the remote direct memory access resource of the given registered remote direct memory access device is a queue-to-resource priority of the given registered remote direct memory access device that is included in the remote direct memory access resource of the given registered remote direct memory access device. In some embodiments, allocating bandwidth of the port to the remote direct memory access traffic demand using the multi-level scheduling control comprises: determining a traffic priority of the remote direct memory access traffic demand based on the priority of the given host, the priority of the physical function device of the given host, and the queue-to-resource priority of the given registered remote direct memory access device of the given host associated with the remote direct memory access traffic demand, and determining a bandwidth allocated to the port of the remote direct memory access traffic demand based on the traffic priority. In this way, the data processing unit allocates bandwidth of the ports using multi-level scheduling control, embodying finer granularity scheduling.
In one possible embodiment, the method further comprises: when a new host is added, the new host is connected with a high-speed peripheral component interconnection standard switch of the first host through a high-speed peripheral component interconnection standard interface of the new host, and the registration of a remote direct memory access device of the new host and the remote direct memory access resource of the registered remote direct memory access device of the new host are managed through the management module; when a third host of the plurality of hosts exits, reclaiming, by the management module, remote direct memory access resources of the registered remote direct memory access device of the third host and reclaiming bandwidth allocated to the port of the registered remote direct memory access device of the third host. Therefore, the resource pooling is realized through the data processor, the resources are dynamically allocated for each host, and the application resources and the recovery resources are provided, so that the resource multiplexing is realized to the greatest extent.
Referring to fig. 4, fig. 4 is a schematic structural diagram of a computing device provided in an embodiment of the present application, where the computing device 400 includes: one or more processors 410, a communication interface 420, and a memory 430. The processor 410, communication interface 420, and memory 430 are interconnected by a bus 440. Optionally, the computing device 400 may further include an input/output interface 450, where the input/output interface 450 is connected to an input/output device for receiving parameters set by a user, etc. The computing device 400 can be used to implement some or all of the functionality of the device embodiments or system embodiments described above in the embodiments of the present application; the processor 410 can also be used to implement some or all of the operational steps of the method embodiments described above in the embodiments of the present application. For example, specific implementations of the computing device 400 performing various operations may refer to specific details in the above-described embodiments, such as the processor 410 being configured to perform some or all of the steps of the above-described method embodiments or some or all of the operations of the above-described method embodiments. For another example, in the present embodiment, the computing device 400 may be configured to implement some or all of the functions of one or more components of the apparatus embodiments described above, and the communication interface 420 may be configured to implement communication functions and the like necessary for the functions of the apparatuses, components, and the processor 410 may be configured to implement processing functions and the like necessary for the functions of the apparatuses, components.
It should be appreciated that the computing device 400 of fig. 4 may include one or more processors 410, and that the processors 410 may cooperatively provide processing power in a parallelized connection, a serialized connection, a serial-parallel connection, or any connection, or that the processors 410 may constitute a processor sequence or processor array, or that the processors 410 may be separated into primary and secondary processors, or that the processors 410 may have different architectures such as heterogeneous computing architectures. In addition, the computing device 400 shown in FIG. 4, the associated structural and functional descriptions are exemplary and not limiting. In some example embodiments, computing device 400 may include more or fewer components than shown in fig. 4, or combine certain components, or split certain components, or have a different arrangement of components.
The processor 410 may have various specific implementations, for example, the processor 410 may include one or more of a central processing unit (central processing unit, CPU), a graphics processor (graphic processing unit, GPU), a neural network processor (neural-network processing unit, NPU), a tensor processor (tensor processing unit, TPU), or a data processing unit (data processing unit, DPU), which are not limited in this embodiment. Processor 410 may also be a single-core processor or a multi-core processor. Processor 410 may be comprised of a combination of a CPU and hardware chips. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof. The PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (field-programmable gate array, FPGA), general-purpose array logic (generic array logic, GAL), or any combination thereof. The processor 410 may also be implemented solely with logic devices incorporating processing logic, such as an FPGA or digital signal processor (digital signal processor, DSP) or the like. The communication interface 420 may be a wired interface, which may be an ethernet interface, a local area network (local interconnect network, LIN), etc., or a wireless interface, which may be a cellular network interface, or use a wireless local area network interface, etc., for communicating with other modules or devices.
The memory 430 may be a nonvolatile memory such as a read-only memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an electrically Erasable EPROM (EEPROM), or a flash memory. Memory 430 may also be volatile memory, which may be random access memory (random access memory, RAM) used as external cache. By way of example, and not limitation, many forms of RAM are available, such as Static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous DRAM (SLDRAM), and direct memory bus RAM (DR RAM). Memory 430 may also be used to store program code and data such that processor 410 invokes the program code stored in memory 430 to perform some or all of the operational steps of the method embodiments described above, or to perform corresponding functions in the apparatus embodiments described above. Moreover, computing device 400 may contain more or fewer components than shown in FIG. 4, or may have a different configuration of components.
The bus 440 may be a peripheral component interconnect express (peripheral component interconnect express, PCIe) bus, or an extended industry standard architecture (extended industry standard architecture, EISA) bus, a unified bus (Ubus or UB), a computer quick link (compute express link, CXL), a cache coherent interconnect protocol (cache coherent interconnect for accelerators, CCIX), or the like. The bus 440 may be divided into an address bus, a data bus, a control bus, and the like. The bus 440 may include a power bus, a control bus, a status signal bus, and the like in addition to a data bus. But is shown with only one bold line in fig. 4 for clarity of illustration, but does not represent only one bus or one type of bus.
Embodiments of the present application also provide a system that includes a plurality of computing devices, where each computing device may have a structure that refers to the structure of the computing device described above. The functions or operations that may be implemented by the system may refer to specific implementation steps in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein. Embodiments of the present application also provide a computer-readable storage medium having stored therein computer instructions which, when executed on a computer device (e.g., one or more processors), may implement the method steps in the above-described method embodiments. The specific implementation of the processor of the computer readable storage medium in executing the above method steps may refer to specific operations described in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein again. Embodiments of the present application also provide a computer program product comprising instructions stored on a computer-readable storage medium, which when run on a computer device, cause the computer device to perform the method steps in the method embodiments described above.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. The present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any other combination. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The present application may take the form of a computer program product embodied on one or more computer-usable storage media having computer-usable program code embodied therein. The computer program product includes one or more computer instructions. When loaded or executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital subscriber line), or wireless (e.g., infrared, wireless, microwave, etc.). Computer readable storage media can be any available media that can be accessed by a computer or data storage devices, such as servers, data centers, etc. that contain one or more collections of available media. Usable media may be magnetic media (e.g., floppy disks, hard disks, tape), optical media, or semiconductor media. The semiconductor medium may be a solid state disk, or may be a random access memory, flash memory, read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, register, or any other form of suitable storage medium.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. Each flow and/or block of the flowchart and/or block diagrams, and combinations of flows and/or blocks in the flowchart and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In the foregoing embodiments, the descriptions of the embodiments are emphasized, and for parts of one embodiment that are not described in detail, reference may be made to the related descriptions of other embodiments. It will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. The steps in the method of the embodiment of the application can be sequentially adjusted, combined or deleted according to actual needs; the modules in the system of the embodiment of the application can be divided, combined or deleted according to actual needs. Such modifications and variations of the embodiments of the present application are intended to be included herein, if they fall within the scope of the claims and their equivalents.

Claims (18)

1. A method for multi-host remote direct memory access network management, the method comprising:
providing a plurality of hosts, wherein the hosts comprise a first host and at least one second host, the at least one second host is respectively connected with a high-speed peripheral component interconnection standard switch of the first host through respective high-speed peripheral component interconnection standard interfaces, the first host is connected with a data processing unit through the high-speed peripheral component interconnection standard switch, and the data processing unit comprises a management module and a port connected with a remote direct memory access network;
The management module is used for managing the registration of the remote direct memory access device of each host and the remote direct memory access resources of the registered remote direct memory access device of the host;
allocating, by the data processing unit, bandwidth of the port to a remote direct memory access traffic demand of a given host of the plurality of hosts in response to the remote direct memory access traffic demand, with a multi-level scheduling control, a given registered remote direct memory access device of the given host's registered remote direct memory access devices being associated with the remote direct memory access traffic demand, the multi-level scheduling control being based at least on a priority of the given host and a priority of remote direct memory access resources of the given registered remote direct memory access device; and
the given registered remote direct memory access device of the given host utilizes the bandwidth allocated by the data processing unit to the port of the remote direct memory access traffic demand and utilizes remote direct memory access resources of the given registered remote direct memory access device to fulfill the remote direct memory access traffic demand by the data processing unit interacting with the remote direct memory access network,
For each of the plurality of hosts, a remote direct memory access resource of a registered remote direct memory access device of the host, comprising: the virtual function identification of the registered remote direct memory access device, the queue pair resource of the registered remote direct memory access device, and the segment descriptor resource of the registered remote direct memory access device.
2. The method of claim 1, wherein the given host belongs to the at least one second host, and wherein the given registered remote direct memory access device of the given host interacts with the remote direct memory access network through a peripheral component interconnect standard interface of the given host, a peripheral component interconnect standard switch of the first host, and the port.
3. The method of claim 1, wherein the multi-level scheduling control is further based on a priority of a physical function device of the given host.
4. The method of claim 1, wherein the given host comprises at least one virtual machine, the given registered remote direct memory access device being deployed at the at least one virtual machine.
5. The method according to claim 1, wherein the method further comprises:
providing a plurality of virtual remote direct memory access network cards through the data processing unit;
and distributing the virtual remote direct memory access network cards to the virtual machines of the hosts.
6. The method of claim 1, wherein the virtual function identification of the registered remote direct memory access device is used by the data processing unit to determine a register corresponding to the registered remote direct memory access device, the register being located within the data processing unit, the register being used to store a remote direct memory access configuration associated with the registered remote direct memory access device.
7. The method of claim 6, wherein managing, by the management module, registration of the remote direct memory access device of each of the plurality of hosts comprises: the remote direct memory access device to be registered applies for registration to the management module, and the management module distributes unoccupied virtual function identifiers to the remote direct memory access device to be registered from a virtual function identifier pool of the data processing unit and sets the unoccupied virtual function identifiers to be occupied.
8. The method of claim 1, wherein queue pair resources of the registered remote direct memory access device are used by the registered remote direct memory access device to interact with the remote direct memory access network through the data processing unit.
9. The method of claim 8, wherein managing, by the management module, registration of the remote direct memory access device of each of the plurality of hosts comprises: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates unoccupied queue pair resources to the remote direct memory access device to be registered from a queue pair resource pool of the data processing unit and sets the unoccupied queue pair resources to be occupied.
10. The method of claim 1, wherein the segment descriptor resources of the registered remote direct memory access device are used to point to memory of the host for caching a queue pair resource of the registered remote direct memory access device and a context of the queue pair resource of the registered remote direct memory access device.
11. The method of claim 10, wherein managing, by the management module, registration of the remote direct memory access device of each of the plurality of hosts comprises: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates unoccupied segment descriptor resources from a segment descriptor resource pool of the data processing unit to the remote direct memory access device to be registered and sets the unoccupied segment descriptor resources to be occupied.
12. The method of claim 10, wherein the memory of the host that is used to cache the queue pair resources of the registered remote direct memory access device and the context of the queue pair resources of the registered remote direct memory access device is direct memory access memory of the host.
13. The method of claim 1, wherein the data processing unit comprises a virtual function identification pool, a queue pair resource pool, and a segment descriptor resource pool shared by the plurality of hosts, wherein managing, by the management module, registration of remote direct memory access devices of each of the plurality of hosts comprises: the remote direct memory access device to be registered applies for registration to the management module, and the management module respectively distributes unoccupied virtual function identifiers, unoccupied queue pair resources and unoccupied segment descriptor resources to the remote direct memory access device to be registered from the virtual function identifier pool, the queue pair resource pool and the segment descriptor resource pool, wherein the unoccupied segment descriptor resources are determined based on the sizes of the unoccupied queue pair resources and the context of the unoccupied queue pair resources.
14. The method of claim 1, wherein the priority of the remote direct memory access resource of the given registered remote direct memory access device is a queue-to-resource priority of the given registered remote direct memory access device included in the remote direct memory access resource of the given registered remote direct memory access device.
15. The method of claim 14, wherein allocating bandwidth of the port to the remote direct memory access traffic demand using the multi-level scheduling control comprises: determining a traffic priority of the remote direct memory access traffic demand based on the priority of the given host, the priority of the physical function device of the given host, and the queue-to-resource priority of the given registered remote direct memory access device of the given host associated with the remote direct memory access traffic demand, and determining a bandwidth allocated to the port of the remote direct memory access traffic demand based on the traffic priority.
16. The method according to claim 1, wherein the method further comprises:
When a new host is added, the new host is connected with a high-speed peripheral component interconnection standard switch of the first host through a high-speed peripheral component interconnection standard interface of the new host, and the registration of a remote direct memory access device of the new host and the remote direct memory access resource of the registered remote direct memory access device of the new host are managed through the management module;
when a third host of the plurality of hosts exits, reclaiming, by the management module, remote direct memory access resources of the registered remote direct memory access device of the third host and reclaiming bandwidth allocated to the port of the registered remote direct memory access device of the third host.
17. A computer device, characterized in that it comprises a memory, a processor and a computer program stored on the memory and executable on the processor, which processor implements the method according to any of claims 1 to 16 when executing the computer program.
18. A computer readable storage medium storing computer instructions which, when run on a computer device, cause the computer device to perform the method of any one of claims 1 to 16.
CN202310238369.5A 2023-03-14 2023-03-14 Method, equipment and medium for managing multi-host remote direct memory access network Active CN115934624B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310238369.5A CN115934624B (en) 2023-03-14 2023-03-14 Method, equipment and medium for managing multi-host remote direct memory access network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310238369.5A CN115934624B (en) 2023-03-14 2023-03-14 Method, equipment and medium for managing multi-host remote direct memory access network

Publications (2)

Publication Number Publication Date
CN115934624A CN115934624A (en) 2023-04-07
CN115934624B true CN115934624B (en) 2023-05-16

Family

ID=85825491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310238369.5A Active CN115934624B (en) 2023-03-14 2023-03-14 Method, equipment and medium for managing multi-host remote direct memory access network

Country Status (1)

Country Link
CN (1) CN115934624B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116560803B (en) * 2023-07-06 2023-10-20 珠海星云智联科技有限公司 Resource management method and related device based on SR-IOV

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880771B2 (en) * 2012-10-25 2014-11-04 Plx Technology, Inc. Method and apparatus for securing and segregating host to host messaging on PCIe fabric
US10657095B2 (en) * 2017-09-14 2020-05-19 Vmware, Inc. Virtualizing connection management for virtual remote direct memory access (RDMA) devices
CN114050998A (en) * 2022-01-07 2022-02-15 阿里巴巴(中国)有限公司 Method, device, electronic equipment and medium for realizing remote direct memory access
CN115658311A (en) * 2022-10-31 2023-01-31 北京百度网讯科技有限公司 Resource scheduling method, device, equipment and medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XenServer资源池构建及远程接入访问控制部署;陈刚;电信快报(第10期);第25-27、41页 *

Also Published As

Publication number Publication date
CN115934624A (en) 2023-04-07

Similar Documents

Publication Publication Date Title
US10095645B2 (en) Presenting multiple endpoints from an enhanced PCI express endpoint device
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
CN110809760B (en) Resource pool management method and device, resource pool control unit and communication equipment
US20200133909A1 (en) Writes to multiple memory destinations
KR102204670B1 (en) Technologies for proxy-based multi-threaded message passing communication
CN104636186A (en) Virtual machine memory management method, physical host, PCIE equipment, configuration method thereof and migration management equipment
CN115934624B (en) Method, equipment and medium for managing multi-host remote direct memory access network
CN115858103B (en) Method, device and medium for virtual machine hot migration of open stack architecture
CN104636185A (en) Service context management method, physical host, PCIE equipment and migration management equipment
CN115858102A (en) Method for deploying virtual machine supporting virtualization hardware acceleration
US11343176B2 (en) Interconnect address based QoS regulation
CN106844263B (en) Configurable multiprocessor-based computer system and implementation method
CN113535319A (en) Method, equipment and storage medium for realizing multiple RDMA network card virtualization
Guleria et al. EMF: Disaggregated GPUs in datacenters for efficiency, modularity and flexibility
US20220413910A1 (en) Execution job compute unit composition in computing clusters
US20220283866A1 (en) Job target aliasing in disaggregated computing systems
DE112016007292T5 (en) TECHNOLOGIES FOR PARAVIRTUALIZED NETWORK DEVICES AND MEMORY MANAGEMENT
CN115269174A (en) Data transmission method, data processing method and related products
KR20220118756A (en) Disaggrated data center resource management method and apparatus
CN113535370A (en) Method and equipment for realizing multiple RDMA network card virtualization of load balancing
CN117519908B (en) Virtual machine thermomigration method, computer equipment and medium
CN117041147B (en) Intelligent network card equipment, host equipment, method and system
CN117493237B (en) Computing device, server, data processing method, and storage medium
CN116303154B (en) Base address register resource allocation method and medium for data processing unit
US11868301B1 (en) Symmetrical multi-processor serial links

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
GR01 Patent grant
GR01 Patent grant