CN115934624A - Method, apparatus and medium for multi-host remote direct memory access network management - Google Patents

Method, apparatus and medium for multi-host remote direct memory access network management Download PDF

Info

Publication number
CN115934624A
CN115934624A CN202310238369.5A CN202310238369A CN115934624A CN 115934624 A CN115934624 A CN 115934624A CN 202310238369 A CN202310238369 A CN 202310238369A CN 115934624 A CN115934624 A CN 115934624A
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.)
Granted
Application number
CN202310238369.5A
Other languages
Chinese (zh)
Other versions
CN115934624B (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 multi-host remote direct memory access network management. The method comprises the following steps: providing a plurality of hosts, including a first host and at least one second host, wherein the second host is respectively connected with a PCIE switch of the first host through a PCIE interface, and is connected with a data processing unit including a management module and a port connected with an RDMA network through the PCIE switch; managing, by a management module, registration of the RDMA devices of each host and RDMA resources of the registered devices; allocating, by the data processing unit, bandwidth of the port to a service demand using a multi-level scheduling control in response to an RDMA service demand of a given host; and a given device of a given host utilizes the allocated bandwidth of the port to interact with the RDMA network through the data processing unit to fulfill the service requirement. This reduces complexity and increases resource configuration flexibility.

Description

Method, apparatus and medium for multi-host remote direct memory access network management
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method, an apparatus, and a medium for multi-host remote direct memory access network management.
Background
With the development of network communication technology and virtualization technology, a plurality of hosts, such as server hosts, are often deployed on a single computing node or data center, the number of network devices that these hosts can support is limited by the number of ethernet ports of an installed network card, for example, a host that installs a network card can support two network devices if the network card supports two ethernet ports. To increase data processing speed, remote Direct Memory Access (RDMA) technology is often applied to move data from one machine to the Memory of a Remote machine quickly and without involving the system kernel for data transmission. 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 an RDMA-capable network card. An auxiliary card is installed on each host and connected with the shared RDMA-capable network card through the auxiliary card, so that the RDMA network function of the RDMA-capable network card is extended to each host. However, in such a manner that the auxiliary card is used to share the RDMA-supporting network card among the multiple hosts, each host is still required to be connected to the shared RDMA-supporting network card through its own auxiliary card, thereby increasing hardware complexity, and in addition, when the multiple virtual machines are deployed on the host, it is difficult to allocate the shared RDMA-supporting network card to the multiple virtual machines, which makes it difficult for the virtual machines on the host to improve system efficiency by using the RDMA technology.
To this end, the present application provides a method, apparatus, and medium for multi-host remote direct memory access network management, which are used 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 a respective high-speed peripheral component interconnection standard interface, 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; managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts and remote direct memory access resources of a 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 using a multi-level scheduling control, a given registered remote direct memory access device of the registered remote direct memory access devices of the given host being associated with the remote direct memory access traffic demand, the multi-level scheduling control being based on at least 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 said given registered remote direct memory access device of said given host utilizing bandwidth allocated by said data processing unit to said port of said remote direct memory access transaction request to fulfill said remote direct memory access transaction request through said data processing unit interacting with said remote direct memory access network.
According to the first aspect of the application, the situation that the physical network card is connected with the physical network card by means of the auxiliary card to share the physical network card is omitted, the high-speed peripheral component interconnection standard switch is connected with the high-speed peripheral component interconnection standard interface, the high-speed peripheral component interconnection standard switch is connected with the data processing unit, the data processing unit is used for realizing equipment registration, resource management and bandwidth allocation by utilizing multilevel scheduling control, the hardware complexity is reduced, the requirements of complex and changeable service scenes of multiple hosts, such as computing nodes or data centers comprising the multiple hosts, are met, and the flexibility of resource allocation is improved by applying a virtualization technology.
In one possible implementation of the first aspect of the present application, the given registered remote direct memory access device of the given host utilizes a remote direct memory access resource 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 dma device of the given host interacts with the remote dma network through the peripheral component interconnect express standard interface of the given host, the peripheral component interconnect express switch of the first host, and the port.
In one possible implementation of the first aspect of the present application, the multi-level scheduling control is further based on a priority of a physical function device of the given host.
In one 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 in the at least one virtual machine.
In one 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 allocating the virtual remote direct memory access network cards to the respective 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: a virtual function identifier of the registered remote direct memory access device, a queue pair resource of the registered remote direct memory access device, and a 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, where the register is located inside the data processing unit, and the register is 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 allocates an unoccupied virtual function identifier 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 identifier as 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 the 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 to point to a memory of the host, where the memory is used to cache 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 the 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 that is used 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 one possible implementation manner of the first aspect of the present application, the managing, by the management module, registration of the 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, the management module allocates unoccupied virtual function identifiers, unoccupied queue pair resources and unoccupied segment descriptor resources from the virtual function identifier pool, the queue pair resource pool and the segment descriptor resource pool to the remote direct memory access device to be registered, and the unoccupied segment descriptor resources are determined based on the size 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 priority of a queue pair resource 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 a bandwidth of the port to the remote dma service requirement by using the multi-stage scheduling control includes: determining a service priority of the remote direct memory access service requirement according to the priority of the given host, the priority of the physical function device of the given host, and the priority of the queue pair resource of the given registered remote direct memory access device of the given host associated with the remote direct memory access service requirement, and determining the bandwidth of the port allocated to the remote direct memory access service requirement according to the service priority.
In one 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 the 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 the 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 computer in the plurality of host computers exits, recovering, by the management module, remote direct memory access resources of the registered remote direct memory access device of the third host computer and recovering bandwidth allocated to the port of the registered remote direct memory access device of the third host computer.
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 in the memory and executable on the processor, and the processor implements the method according to any one of the implementation manners of the foregoing aspects when executing the computer program.
In a third aspect, embodiments of the present application further provide a computer-readable storage medium storing computer instructions that, when executed on a computer device, cause the computer device to perform the method according to any one of the implementation manners of any one of the above aspects.
In a fourth aspect, the present application further provides a computer program product, which includes instructions stored on a computer-readable storage medium, and when the instructions are run on a computer device, the computer device is caused to execute the method according to any one of the implementation manners 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 to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are some embodiments of the present application, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without creative efforts.
FIG. 1 is a schematic diagram of an auxiliary card-based multi-host shared remote direct memory access network card;
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;
fig. 3 is a flowchart illustrating a method for multi-host remote dma network management according to an embodiment of the present disclosure;
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 by the embodiment of the application are based on the same inventive concept, and because the principles of solving the problems of the method and the device are similar, the embodiments, the implementation modes, the examples or the implementation modes of the method and the device can be mutually referred, and repeated parts are not described again.
It should be understood that, in the description of the present application, "at least one" means one or more than one, and "a plurality" means two or more than two. Additionally, the terms "first," "second," and the like, unless otherwise indicated, are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or order.
Fig. 1 is a schematic diagram of an auxiliary card-based multi-host shared remote direct memory access network 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 (NIC) 106. The first network adapter 106 supports Remote Direct Memory Access (RDMA), i.e., memory that can be used to move data from one machine to a Remote machine quickly and without involving the system kernel for data transfer. The first network adapter 106 is connected 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 and a second auxiliary card 116 thereon, the third network host 120 includes a third motherboard 122, a third processor 124 and a third auxiliary card 126 thereon, and the fourth network host 130 includes a fourth motherboard 132, a fourth processor 134 and a fourth auxiliary card 136 thereon. The second network host 110 is connected to the first network adapter 106 via a second auxiliary card 116, the third network host 120 is connected to the first network adapter 106 via a third auxiliary card 126, and the fourth network host 130 is connected to the first network adapter 106 via a fourth auxiliary card 136. The second network host 110, the third network host 120, and the fourth network host 130 enable sharing of network functions of the first network adapter 106, including the RDMA network functions provided thereby, by the first network adapter 106 of the first network host 100 via respective auxiliary cards, that is, via 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. Fig. 1 illustrates a scenario in which multiple hosts share a remote direct memory access network card, that is, a 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, which represents a business scenario of multiple hosts, such as a computing node or a data center including multiple hosts. In a multi-host service scenario or similar application, RDMA network functionality is typically provided by installing an RDMA-capable network card, and an auxiliary card is installed on each host, connected to the shared RDMA-capable network card by the auxiliary card, thus extending the RDMA network functionality of the RDMA-capable network card to each host. The first network adapter 106 in fig. 1 may be regarded as a multi-host network card that extends its RDMA network functions to other network hosts where the auxiliary card connected thereto is located. 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 are externally represented, for example, by the first remote direct memory access network 152, in which multiple hosts perform RDMA-related communication and data transmission through the same network card, i.e., the first network adapter 106. Taking the auxiliary card-based multi-host sharing remote dma network card as an example in fig. 1, for example, the second network host 110 shares the network function provided by the first network adapter 106 based on the second auxiliary card 116 to connect to the first remote dma network 152, and requires an auxiliary card to be installed on each host and a physical network card to be shared by the installed auxiliary card, which brings about complexity in hardware. In addition, with the development of virtualization technology, multiple virtual machines, such as virtual clients, are generally deployed on a host through virtualization technology, and it is difficult for the virtual machines on the host to implement RDMA acceleration by using auxiliary cards installed on the host, so a physical network card, such as the first network adapter 106 on the first network host 100, is generally virtualized into multiple virtual network cards, and then the multiple virtual network cards are allocated to the virtual machines on the host. 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, the allocation of the virtual network cards obtained by virtualizing the physical network card to the virtual machines on the host is limited. In addition, in a service scenario with multiple hosts, for example, a computing node or a data center including multiple hosts, may face addition, deletion, and replacement of devices, for example, a device mounted on a certain host or a deployed virtual machine needs to face operations such as addition, deletion, or replacement upgrade, which may mean that an existing architecture that implements RDMA network functions through a shared physical network card and an auxiliary card is affected, such as reconfiguration and reconnection, and may also face exit of a newly added host or an existing host, which may cause unplugging and plugging of the auxiliary card and affect connection with the shared physical network card. However, in the manner of sharing the remote dma network card by multiple hosts based on the auxiliary card as illustrated in fig. 1, it is difficult to efficiently and flexibly meet the requirements of adding and deleting devices or hosts due to the complexity of hardware and the limitation of the connection between the auxiliary card and the physical card, and it is also difficult to apply the virtualization technology to increase the flexibility of resource configuration. In the following, details will be given, with reference to other embodiments of the present application, how to provide a method, an apparatus, and a medium for multi-host remote dma network management, which address the above challenges.
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 disclosure. 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 (PCIE) switch 206. The sixth network host 210 includes a sixth processor 212, a sixth memory 214, and a sixth high-speed peripheral component interconnect standard interface 216. The seventh network host 220 includes a seventh processor 222, a seventh memory 224, and a seventh peripheral component interconnect express interface 226. The eighth network host 230 includes an eighth processor 232, an eighth memory 234, and an eighth peripheral component interconnect express interface 236. It can be seen that the sixth network host 210 is connected to the fifth high speed peripheral component interconnect standard switch 206 of the fifth network host 200 via the sixth high speed peripheral component interconnect standard interface 216, the seventh network host 220 is connected to the fifth high speed peripheral component interconnect standard switch 206 of the fifth network host 200 via the seventh high speed peripheral component interconnect standard interface 226, and the eighth network host 230 is connected to the fifth high speed peripheral component interconnect standard switch 206 of the fifth network host 200 via the eighth high speed peripheral component interconnect standard interface 236. Therefore, the sixth network host 210, the seventh network host 220, and the eighth network host 230 are respectively connected to the fifth high-speed peripheral component interconnect standard switch 206 of the fifth network host 200 through respective high-speed peripheral component interconnect standard interfaces. The fifth network host 200 is connected to a Data Processing Unit (DPU) 250 through a fifth high-speed peripheral component interconnect standard switch 206, and the DPU 250 includes 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 the fifth network host 200, the sixth network host 210, the seventh network host 220, and the eighth network host 230, appear externally, for example to the second remote direct memory access network 260, as multiple hosts performing RDMA-related communications and data transfers through ports 254 of the data processing unit 250. Different from the manner of sharing the remote direct memory access network card by the auxiliary card-based multi-host shown in fig. 1, in the multi-host 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 high-speed Peripheral Component Interconnect standard switch 206 of the fifth network host 200 through respective high-speed Peripheral Component Interconnect standard interfaces, where the fifth high-speed Peripheral Component Interconnect standard switch 206 provides an expansion or aggregation capability based on a Peripheral Component Interconnect Express (PCIE), and may be used to implement interconnection between Peripheral Component Interconnect standard high-speed devices, that is, PCIE devices. The sixth network host 210, the seventh network host 220, and the eighth network host 230 may further respectively install software drivers, for example, a driver for implementing an RDMA network function, and then transmit a message to the management module 252 of the data processing unit 250 through a PCIE architecture, so as to implement functions of device registration, resource application, and the like, and further implement that multiple hosts share the port 254 of the data processing unit 250, including sharing bandwidth and interacting with the second remote direct memory access network 260 through the port 254. Therefore, by omitting the connection with the physical network card by an auxiliary card to share the physical network card, but connecting with the fifth high-speed peripheral component interconnect standard switch 206 of the fifth network host 200 through the respective high-speed peripheral component interconnect standard interfaces, and implementing device registration, resource application, etc. through the data processing unit 250, and interacting with the second remote direct memory access network 260 through the port 254 and the network bandwidth of the shared data processing unit 250, it is helpful to reduce the hardware complexity and to meet the complex and diverse requirements of the business scenario of multiple hosts, such as a computing node or a data center including multiple hosts, and it is also helpful to apply virtualization technology to increase the flexibility in resource configuration. These modifications are described in detail below in connection with the embodiment of fig. 3.
Fig. 3 is a flowchart illustrating a method for multi-host remote dma network management according to an embodiment of the present disclosure. As shown in fig. 3, the method includes the following steps.
Step S310: the method comprises the steps that a plurality of hosts are provided, the hosts comprise a first host and at least one second host, the at least one second host is connected with a high-speed peripheral component interconnection standard switch of the first host through a respective high-speed peripheral component interconnection standard interface, 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 registered remote direct memory access devices of the given host being associated with the remote direct memory access traffic demand, the multi-level scheduling control being based on at least 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 bandwidth allocated by the data processing unit to the port of the remote direct memory access transaction request to fulfill the remote direct memory access transaction request through interaction of the data processing unit with the remote direct memory access network.
Referring to the above steps, in step S310, a plurality of hosts are provided, where the hosts include a first host and at least one second host, the at least one second host is connected to the high-speed peripheral component interconnect standard switch of the first host through a respective high-speed peripheral component interconnect standard interface, the first host is connected to a data processing unit through the high-speed 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. Thus, similar to the multi-host remote direct memory access network based on the data processing unit shown in fig. 2, the physical network card is not connected to share the physical network card by means of an auxiliary card, but is connected to the high-speed peripheral component interconnect standard switch through the high-speed peripheral component interconnect standard interface, so that the port and the network bandwidth of the shared data processing unit 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 of the plurality of hosts and the remote direct memory access resource of the registered remote direct memory access device of the host are managed by the management module on the data processing unit, which is helpful for implementing uniform resource management, flexibly allocating the remote direct memory access resource, and also efficiently utilizing the processing capability of the data processing unit. In addition, the registration of the remote direct memory access device of each host and the management of the remote direct memory access resource of the registered remote direct memory access device are managed through a management module on the data processing unit, and the above-mentioned connection with the high-speed peripheral component interconnect standard switch through the high-speed peripheral component interconnect standard interface can be combined to realize the interaction of the port and the network bandwidth of the shared data processing unit and the remote direct memory access network, which means that the data processing unit can perform unified planning and regulation on device registration, resource management and bandwidth control, not only reduces the hardware complexity, but also can flexibly expand the multi-host architecture, for example, the data processing unit can conveniently add or delete devices, newly add hosts or host exits, further improve the system efficiency in the modes of software upgrading and the like, and is favorable for performing efficient scheduling control on the bandwidth used by the multi-host through the data processing unit. Further, the multi-host remote dma network described above can be used to interact with a remote dma network to meet remote dma related requirements and facilitate application of virtualization technologies. In step S330, allocating, by the data processing unit, a bandwidth of the port to a remote direct memory access service requirement of a given host of the plurality of hosts by using a multi-level scheduling control in response to the remote direct memory access service requirement. Here, the multi-level scheduling control means that a data processing unit performs fine control on specific services, such as the remote direct memory access service requirement, and allocates bandwidth of a port of the data processing unit. Wherein a given registered remote direct memory access device of the registered remote direct memory access devices of the given host is associated with the remote direct memory access traffic demand, the multi-level scheduling control being based on at least a priority of the given host and a priority of remote direct memory access resources of the given registered remote direct memory access device. This means that the refined control to allocate bandwidth to ports of the data processing unit based on specific traffic, i.e. the multi-level scheduling control, is based on at least the priority of the given host and the priority of the remote direct memory access resource of the given registered remote direct memory access device, and thus at least 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 traffic demand. As mentioned above, the registration of the remote dma device of each of the plurality of hosts and the remote dma resource of the registered remote dma device of the host are managed by the management module on the data processing unit, 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 dma resource of the device registration and the registered device, thereby realizing uniform planning and control on resource management and bandwidth control according to specific remote dma service requirements. For example, if a specific device on a specific host is associated with the remote dma service requirement, such as the specific device on the specific host is used for performing a remote dma read operation or a remote dma write operation, and the specific device belongs to a registered remote dma device on the specific host, the data processing unit manages the remote dma resource of the specific device through the management module. Thus, the data processing unit allocates the bandwidth of the port by using the multi-level scheduling control based on at least the priority of the specific host and the remote direct memory access resource of the specific device, which also embodies finer-grained scheduling. For a particular service, there are multiple levels of scheduling, including at least two levels, that is, based on the priority of the host and the priority of the remote direct memory access resources of the device associated with the remote direct memory access service requirements. This is advantageous for implementing services with different priorities running on the same host (the services with different priorities may correspond to different devices on the same host, and the priorities of the remote direct memory access resources of different devices may be different), and for implementing services with different priorities running on different hosts (the priorities of different hosts may be different). Moreover, the priority of the service is also embodied in bandwidth control, that is, the bandwidth of the port is allocated by using multi-level scheduling control, so that the requirements of different services on the priority and the bandwidth can be realized. For example, a higher priority may be set for services requiring a higher network bandwidth, such as applications of live video, large-scale data access, games, or tasks of high-performance computation, encryption/decryption computation, and a higher priority may be set for the services requiring a higher network bandwidth, and through a management function of the data processing unit, corresponding adjustments may be made on the priority of the host and/or the priority of the remote direct memory access resource of the specific device, such as setting the priority of the higher host, allocating more remote direct memory access resources of the specific device, and the like, so that the limited network bandwidth of the data processing unit and the overall limited remote direct memory access resource are better invoked on a global level to meet the difference requirements of the services on the bandwidths on different hosts, and it is also beneficial to maximize the entire network bandwidth, and improve the bandwidth and the resource utilization efficiency. Additionally, the given registered remote direct memory access device of the given host utilizes bandwidth allocated by the data processing unit to the port of the remote direct memory access transaction request to fulfill the remote direct memory access transaction request through interaction of the data processing unit with the remote direct memory access network. This means that, on the basis of the above-mentioned macro-level adjustment of 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, that is, a specific device on a specific host specifically for fulfilling the remote direct memory access service requirement, utilizes the bandwidth of the port allocated by the data processing unit to interact with the remote direct memory access network through the data processing unit (for example, the second host is connected with the high-speed peripheral component interconnect standard switch of the first host through the high-speed peripheral component interconnect standard interface and then connected with the data processing unit through the high-speed peripheral component interconnect standard switch). It should be understood that a given registered remote direct memory access device of the registered remote direct memory access devices of the given host, i.e. a particular device on a particular host specifically adapted to fulfill the remote direct memory access service requirements, may be a physical device, e.g. a physical functional device on the given host, and may also be a virtual device or a virtual machine. The host is connected with the data processing unit through the high-speed peripheral component interconnection standard interface or the high-speed peripheral component interconnection standard switch, and the direct connection between the host and the physical network card is equivalent, so that various virtualization technologies such as providing a plurality of virtual machines on a plurality of hosts are facilitated. In addition, in the face of addition, deletion, and replacement of devices, for example, a device mounted on a host or a deployed virtual machine needs to face operations such as addition, deletion, or replacement upgrade, and faces exiting of a newly added host or an existing host, it is convenient to recover allocated bandwidth and allocated resources through the management function of the data processing unit, and also allocate unoccupied bandwidth and resources for a new host and a new device, thereby efficiently and flexibly responding to the needs of addition, deletion, and the like of devices or hosts. In summary, the method for multi-host remote dma network management shown in fig. 3 is combined with the multi-host remote dma network based on the data processing unit shown in fig. 2, which omits the connection with the physical network card by an auxiliary card to share the physical network card, connects with the high-speed peripheral component interconnect standard switch through the high-speed peripheral component interconnect standard interface, connects with the data processing unit through the high-speed peripheral component interconnect standard switch, and implements device registration, resource management and bandwidth allocation by using multi-level scheduling control through the data processing unit, thereby being helpful for reducing hardware complexity and meeting the complex and diverse requirements of the service scenarios of the multi-host, such as computing nodes or data centers including multiple hosts, and also being helpful for applying virtualization technology to increase flexibility in resource configuration.
In one possible implementation, the given registered remote direct memory access device of the given host utilizes a remote direct memory access resource 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 the peripheral component interconnect express standard interface of the given host, the peripheral component interconnect express standard switch of the first host, and the port. Thus, through the resource management and bandwidth control functions of the data processing unit, the hardware complexity is reduced, and the bandwidth utilization efficiency is improved.
In one possible implementation, the multi-level scheduling control is further based on a priority of a physical function device of the given host. In this way, the data processing unit allocates the bandwidth of the port using multi-level scheduling control based on at least the priority of the particular host and the remote direct memory access resources 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, which also embodies finer grained 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 in the at least one virtual machine. This facilitates 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 allocating the virtual remote direct memory access network cards to the respective virtual machines of the hosts. It should be appreciated that since the host is connected to the data processing unit via 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 techniques 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, and further may allocate the plurality of virtual remote direct memory access network cards to respective virtual machines of the plurality of hosts, thereby improving flexibility in resource configuration.
In one possible embodiment, for each of the plurality of hosts, the remote direct memory access resource of the registered remote direct memory access device of the host includes: a Virtual Function identity (Virtual Function identity) 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 (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 identifier 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 dma devices on the same host and the multiple remote dma devices may have been registered by the data processing unit, so that there may be multiple virtual function identifiers, each virtual function identifier being used to determine one of the registered remote dma devices. Thus, when the remote direct memory access device on the host side is initialized, the corresponding virtual function identifier can be used for carrying out operations such as resource application and the like on the data processing unit. In addition, when the remote dma device on the host side is to exit, for example, the device is deleted, the corresponding virtual function identifier may also be used to complete the recovery of resources and bandwidth. Thus, the virtual function identification is used to distinguish 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 the virtual function identifiers which can be provided is limited, and the virtual function identifiers corresponding to the exited devices need to be recycled and the virtual function identifiers corresponding to the 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 a queue pair is a work queue for interaction between devices, generally comprises a pair of a sending queue and a receiving queue, and can also be 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, and the queue pair resources corresponding to the exited device need to be recycled and the queue pair resources corresponding to the newly added device 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: segment descriptor resources of the registered remote direct memory access device. The segment descriptor resources are used to store addresses pointing to host-side memory used to cache queue pairs and the context of the associated queue pair. When the equipment is initialized, the segment descriptor resources are applied to the data processing unit, and the number of the segment descriptors to be occupied is calculated according to the queue pair specification distributed for the equipment, the size of the context of each queue pair and the size of the memory pointed by the segment descriptor. The total number of segment descriptors that can be supported by the data processing unit is limited, and therefore, it is necessary to reclaim the segment descriptor resources corresponding to the exited device and to ensure that the 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 obtaining a queue pair and context of the associated queue pair based on the memory address pointed to by the segment descriptor resources. In some embodiments, after the remote dma device applies for the segment descriptor resource, it applies for multiple dma memories in the host to the operating system, and then sends the dma memories to the data processor for storage, where the memory is used to store the queue pair context created by the subsequent user.
It should be understood that, for each of the plurality of hosts, the remote direct memory access resource of the registered remote direct memory access device of the host may further include: source address information table, statistical information, and other resources that contribute to the macroscopic resource management and bandwidth control of the data processing unit.
In one possible implementation, 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, where the register is located inside the data processing unit, and the register is 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 comprises: the remote direct memory access device to be registered applies for registration to the management module, and the management module allocates an unoccupied virtual function identifier 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 identifier as occupied. Thus, resource management of the virtual function identifier is realized.
In one possible embodiment, 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. Managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts, including: 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, resource management of the queue to the resource is realized.
In one possible implementation, the segment descriptor resource of the registered remote direct memory access device is used to point to memory of the host for caching context of the queue pair resource of the registered remote direct memory access device and the queue pair resource of the registered remote direct memory access device. Managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts, including: 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 as occupied. In some embodiments, the memory of the host that buffers 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 the direct memory access memory of the host. In this way, resource management of segment descriptor resources is achieved.
In one possible embodiment, 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 the 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, the management module allocates 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 respectively, and the unoccupied segment descriptor resources are determined based on the size of the unoccupied queue pair resources and the context of the unoccupied queue pair resources. Therefore, 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 in a macroscopic view. Additionally, in some embodiments, the designated host side may support real-time query resource usage residual, such as queue versus resource pool and segment descriptor resource pool usage residual. When a new host is added and initialized, the management module is inquired about the residual condition of resources, and the smaller value is taken as the resource specification of the new host for use according to the comparison between the resource application number specified by a user and the residual resource number, thereby avoiding the initialization failure caused by the fact that the new host cannot apply the resource specification. In addition, if no residual resources are available when the new host is added and initialized, the idle host which is initialized to operate can be forcibly quitted, and the resources occupied by the idle host are released to be used by the new host side. Therefore, the data processor realizes resource pooling, dynamically allocates resources for each host, provides application resources and recovery resources, and achieves resource reuse to the maximum 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 priority of a queue pair resource 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 some embodiments, allocating bandwidth of the port to the remote direct memory access traffic demand using the multi-level scheduling control comprises: determining a service priority of the remote direct memory access service requirement according to the priority of the given host, the priority of the physical function device of the given host, and the priority of the queue pair resource of the given registered remote direct memory access device of the given host associated with the remote direct memory access service requirement, and determining the bandwidth of the port allocated to the remote direct memory access service requirement according to the service priority. Thus, the data processing unit allocates the bandwidth of the port by using multi-level scheduling control, and embodies finer-grained scheduling.
In one possible embodiment, the method further comprises: when a new host is added, the new host is connected with the 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 the 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 computer in the plurality of host computers exits, recovering, by the management module, remote direct memory access resources of the registered remote direct memory access device of the third host computer and recovering bandwidth allocated to the port of the registered remote direct memory access device of the third host computer. Therefore, the data processor realizes resource pooling, dynamically allocates resources for each host, provides application resources and resource recovery, and achieves resource reuse to the maximum 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, and the input/output interface 450 is connected with an input/output device for receiving parameters set by a user, and the like. 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 this 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 to perform 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 or some or all of the operations in the above-described method embodiments. For another example, in this embodiment of the application, the computing device 400 may be used to implement part or all of the functions of one or more components in the above-described apparatus embodiments, and the communication interface 420 may be specifically used to implement the communication functions and the like necessary for the functions of these apparatuses and components, and the processor 410 may be specifically used to implement the processing functions and the like necessary for the functions of these apparatuses and components.
It should be understood that the computing device 400 of fig. 4 may include one or more processors 410, and the processors 410 may cooperatively provide processing capabilities in a parallelized, serialized, deserialized, or any connection, or the processors 410 may form a processor sequence or an array of processors, or the processors 410 may be separated into a main processor and an auxiliary processor, or the processors 410 may have different architectures such as employing heterogeneous computing architectures. Further, the computing device 400 shown in FIG. 4, the associated structural and functional descriptions are exemplary and non-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 implementation forms, for example, the processor 410 may include one or more combinations of a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a neural-Network Processing Unit (NPU), a Tensor Processing Unit (TPU), or a Data Processing Unit (DPU), and the embodiments of the present application are not limited in particular. Processor 410 may also be a single core processor or a multicore processor. The 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 (PLD), or a combination thereof. The PLD may be a Complex Programmable Logic Device (CPLD), a field-programmable gate array (FPGA), a General Array Logic (GAL), or any combination thereof. The processor 410 may also be implemented as a single logic device with built-in processing logic, such as an FPGA or a Digital Signal Processor (DSP). The communication interface 420 may be a wired interface, such as an ethernet interface, a Local Interconnect Network (LIN), or the like, or a wireless interface, such as a cellular network interface or a wireless lan interface, for communicating with other modules or devices.
The memory 430 may be a non-volatile memory, such as a read-only memory (ROM), a Programmable ROM (PROM), an erasable programmable PROM (EPROM), an Electrically Erasable Programmable ROM (EEPROM), or a flash memory. The memory 430 may also be volatile memory, which may be Random Access Memory (RAM), which acts as external cache memory. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), synchronous Dynamic Random Access Memory (SDRAM), double data rate SDRAM, enhanced SDRAM, SLDRAM, synchronous Link DRAM (SLDRAM), and direct rambus RAM (DR RAM). The memory 430 may also be used to store program codes and data for the processor 410 to call the program codes stored in the memory 430 to perform some or all of the operation steps of the above-described method embodiments, or to perform the corresponding functions in the above-described apparatus embodiments. Moreover, computing device 400 may contain more or fewer components than shown in FIG. 4, or have a different arrangement of components.
The bus 440 may be a peripheral component interconnect express (PCIe) bus, an Extended Industry Standard Architecture (EISA) bus, a unified bus (UBs or UBs), a computer express link (CXL), a cache coherent interconnect protocol (CCIX) bus, 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. However, for clarity, only one thick line is shown in FIG. 4, but this does not represent only one bus or one type of bus.
Embodiments of the present application further provide a system, where the system includes a plurality of computing devices, and the structure of each computing device may refer to the structure of the computing device described above. The functions or operations that can 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 in detail herein. Embodiments of the present application also provide a computer-readable storage medium, in which computer instructions are stored, and when the computer instructions are executed on a computer device (such as one or more processors), the method steps in the above method embodiments may be implemented. The specific implementation of the processor of the computer-readable storage medium in executing the above method steps may refer to the specific operations described in the above method embodiments and/or the specific functions described in the above apparatus embodiments, which are not described herein again. Embodiments of the present application further provide a computer program product, which includes instructions stored on a computer-readable storage medium, and when the instructions are run on a computer device, the computer device is caused to execute the method steps in the above method embodiments.
As will be appreciated by one skilled in the art, 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 combination thereof. 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 in the media. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, the procedures or functions described in accordance with the embodiments of the present application are wholly or partially generated. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another, 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 wire (e.g., coaxial cable, fiber optic, digital subscriber line) or wirelessly (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more collections of available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium, or a semiconductor medium. 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 in the flow charts and/or block diagrams, and combinations of flows and/or blocks in the flow charts 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 above embodiments, the descriptions of the respective embodiments have respective emphasis, and for parts that are not described in detail in a certain embodiment, reference may be made to related descriptions of other embodiments. It will be apparent to those skilled in the art that various changes and modifications can be made in 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. If these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, then the present application is intended to include these modifications and variations as well.

Claims (20)

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;
managing, by the management module, registration of a remote direct memory access device of each of the plurality of hosts and remote direct memory access resources of a 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 using a multi-level scheduling control, a given registered remote direct memory access device of the registered remote direct memory access devices of the given host being associated with the remote direct memory access traffic demand, the multi-level scheduling control being based on at least 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 bandwidth allocated by the data processing unit to the port of the remote direct memory access transaction request to fulfill the remote direct memory access transaction request through interaction of the data processing unit with the remote direct memory access network.
2. The method of claim 1, wherein the given registered remote direct memory access device of the given host utilizes a remote direct memory access resource of the given registered remote direct memory access device to interact with the remote direct memory access network through the data processing unit.
3. The method of claim 2, 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 the peripheral component interconnect express standard interface of the given host, the peripheral component interconnect express switch of the first host, and the port.
4. 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.
5. The method of claim 1, wherein the given host comprises at least one virtual machine, and wherein the given registered remote direct memory access device is deployed in the at least one virtual machine.
6. The method of claim 1, further comprising:
providing a plurality of virtual remote direct memory access network cards through the data processing unit;
and allocating the virtual remote direct memory access network cards to the respective virtual machines of the hosts.
7. The method of claim 1, wherein for each of the plurality of hosts, the remote direct memory access resource of the registered remote direct memory access device of the host comprises: a virtual function identifier of the registered remote direct memory access device, a queue pair resource of the registered remote direct memory access device, and a segment descriptor resource of the registered remote direct memory access device.
8. The method of claim 7, wherein 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, wherein the register is located within the data processing unit, and wherein the register is used to store a remote direct memory access configuration associated with the registered remote direct memory access device.
9. The method of claim 8, wherein managing, by the management module, registration of the remote direct memory access device for 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 an unoccupied virtual function identifier 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 identifier as occupied.
10. The method of claim 7, wherein 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.
11. The method of claim 10, wherein managing, by the management module, registration of the remote direct memory access device for 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 as occupied.
12. The method of claim 7, wherein the segment descriptor resource of the registered remote DMA device is used to point to memory of the host that is used to cache the queue pair resource of the registered remote DMA device and the context of the queue pair resource of the registered remote DMA device.
13. The method of claim 12, wherein managing, by the management module, registration of the remote direct memory access device for 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 the 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.
14. The method of claim 12, wherein the memory of the host that caches 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 the direct memory access memory of the host.
15. The method of claim 7, 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 registration of the remote direct memory access device of each of the plurality of hosts by the management module comprises: the remote direct memory access device to be registered applies for registration to the management module, the management module allocates 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 respectively, and the unoccupied segment descriptor resources are determined based on the size of the unoccupied queue pair resources and the context of the unoccupied queue pair resources.
16. The method of claim 7, wherein the priority of the remote direct memory access resource of the given registered remote direct memory access device is a priority of a queue pair resource 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.
17. The method of claim 16, wherein allocating bandwidth of the port to the remote dma traffic demand using the multi-level scheduling control comprises: determining a service priority of the remote direct memory access service requirement according to the priority of the given host, the priority of the physical function device of the given host, and the priority of the queue pair resource of the given registered remote direct memory access device of the given host associated with the remote direct memory access service requirement, and determining the bandwidth of the port allocated to the remote direct memory access service requirement according to the service priority.
18. The method of claim 1, further comprising:
when a new host is added, the new host is connected with the peripheral component interconnect express switch of the first host through a peripheral component interconnect express standard interface of the new host, and the registration of the 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 computer in the plurality of host computers exits, recovering, by the management module, remote direct memory access resources of the registered remote direct memory access device of the third host computer and recovering bandwidth allocated to the port of the registered remote direct memory access device of the third host computer.
19. A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the method of any one of claims 1 to 18 when executing the computer program.
20. A computer readable storage medium, having stored thereon computer instructions, which, when run on a computer device, cause the computer device to perform the method according to any one of claims 1 to 18.
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 true CN115934624A (en) 2023-04-07
CN115934624B 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)

Cited By (1)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905426A (en) * 2012-10-25 2014-07-02 Plx科技公司 Method and apparatus for securing and segregating host to host messaging on pcie fabric
US20190079896A1 (en) * 2017-09-14 2019-03-14 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905426A (en) * 2012-10-25 2014-07-02 Plx科技公司 Method and apparatus for securing and segregating host to host messaging on pcie fabric
US20190079896A1 (en) * 2017-09-14 2019-03-14 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资源池构建及远程接入访问控制部署", 电信快报 *

Cited By (2)

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

Also Published As

Publication number Publication date
CN115934624B (en) 2023-05-16

Similar Documents

Publication Publication Date Title
CN107690622B (en) Method, equipment and system for realizing hardware acceleration processing
CN107995129B (en) NFV message forwarding method and device
CN110809760B (en) Resource pool management method and device, resource pool control unit and communication equipment
CN109445905B (en) Virtual machine data communication method and system and virtual machine configuration method and device
AU2016414391A1 (en) Packet processing method in cloud computing system, host, and system
KR102204670B1 (en) Technologies for proxy-based multi-threaded message passing communication
US10067900B2 (en) Virtualized I/O device sharing within a distributed processing node system
US10404800B2 (en) Caching network fabric for high performance computing
US11474853B2 (en) Storage device operation method and physical server
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
CN115858102A (en) Method for deploying virtual machine supporting virtualization hardware acceleration
WO2023020010A1 (en) Process running method, and related device
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
US20210311767A1 (en) Storage system, storage device therefor, and operating method thereof
Shim et al. Design and implementation of initial OpenSHMEM on PCIe NTB based cloud computing
CN107683593B (en) Communication device and related method
KR20220118756A (en) Disaggrated data center resource management method and apparatus
CN114428757A (en) Computing device with reconfigurable architecture and reconfiguration method thereof
CN115269174A (en) Data transmission method, data processing method and related products
CN113535370A (en) Method and equipment for realizing multiple RDMA network card virtualization of load balancing
CN117331861B (en) Direct memory mapping method, device, equipment, cluster and medium
CN115442239B (en) Bandwidth resource allocation method, PCIe channel switcher and electronic device
CN117519908B (en) Virtual machine thermomigration method, computer equipment and medium

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