RDMA device allocation method, computing device and storage medium
By providing an RDMA device allocation method in a cloud computing environment, the problems of low allocation efficiency and resource waste in the prior art are solved, and efficient equipment resource utilization and low latency data processing are achieved.
Patent Information
- Application Number
- CN202110897274.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-08-05
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2041-08-05
AI Technical Summary
The existing technology has problems such as low allocation efficiency of RDMA equipment, wasted resources and complex TCP/IP protocol processing in the cloud computing environment, which is difficult to meet the needs of high-performance computing and big data analysis.
A method of allocating an RDMA device is provided, by receiving an allocation request, determining an available host, and allocating a matching RDMA device according to configuration parameters, configuring it to an execution device.
It realizes flexible allocation of RDMA devices, improves the efficiency of device resources, saves resources, and reduces the delay in network transmission and data processing.
Smart Images

Figure CN113760798B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to an RDMA device allocation method, a computing device, and a storage medium. Background Art
[0002] With the rapid development of technologies such as high-performance computing, big data analysis, artificial intelligence, and the Internet of Things, and the popularization of centralized storage, distributed storage, and cloud databases, application services need to obtain more and more data from the network, which places higher and higher requirements on the network's exchange speed and performance.
[0003] Traditional TCP / IP (Transmission Control Protocol / Internet Protocol) software and hardware architecture and applications have problems such as excessive delays in network transmission and data processing, multiple data copies and interrupt processing, and complex TCP / IP protocol processing.
[0004] In the cloud computing environment, in order to reduce the delay of network transmission and data processing, RDMA (Remote Direct Memory Access) devices are generated. How to better allocate such devices is also very important. Summary of the invention
[0005] Multiple aspects of the present application provide a method for allocating an RDMA device, a computing device, and a storage medium, so as to flexibly allocate the RDMA device as needed.
[0006] An embodiment of the present application provides a method for allocating an RDMA device, comprising: receiving an allocation request, and determining an available host machine according to the allocation request; allocating an RDMA device that matches the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machine; and configuring the allocated RDMA device to a corresponding execution device in the available host machine.
[0007] An embodiment of the present application also provides a computing device, including: a memory and a processor; the memory is used to store a computer program; the processor executes the computer program to: receive an allocation request, and determine an available host machine according to the allocation request; allocate an RDMA device that matches the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machine; and configure the allocated RDMA device to a corresponding execution device in the available host machine.
[0008] An embodiment of the present application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by one or more processors, the one or more processors implement the steps in the above method.
[0009] In an embodiment of the present application, an allocation request is received, and an available host machine is determined based on the allocation request; an RDMA device matching the corresponding configuration parameters is allocated based on the configuration parameters in the allocation request and the available host machines; and the allocated RDMA device is configured to a corresponding execution device in the available host machines.
[0010] Among them, by allocating RDMA devices that match the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines, it is possible to allocate RDMA devices on demand according to the configuration parameters. This allows for flexible allocation according to demand, saves corresponding device resources, and improves the efficiency of device resource use. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0012] Figure 1 A schematic diagram of a flow chart of a method for allocating an RDMA device according to an exemplary embodiment of the present application;
[0013] Figure 2 A schematic diagram of allocation of RDMA devices according to an exemplary embodiment of the present application;
[0014] Figure 3 A schematic diagram of the structure of an allocation system for an RDMA device according to an exemplary embodiment of the present application;
[0015] Figure 4 A schematic diagram of the structure of an allocation device for an RDMA device provided by an exemplary embodiment of the present application;
[0016] Figure 5 A schematic diagram of the structure of a computing device provided for an exemplary embodiment of the present application. DETAILED DESCRIPTION
[0017] In order to make the purpose, technical solution and advantages of the present application clearer, the technical solution of the present application will be clearly and completely described below in combination with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.
[0018] As mentioned above, in the cloud computing environment, in order to reduce the delay of network transmission and data processing, RDMA (Remote Direct Memory Access) devices are generated. How to better allocate such devices is also very important.
[0019] Based on this, the embodiments of the present application provide a method for allocating an RDMA device, a computing device, and a storage medium, which can flexibly allocate RDMA devices as needed.
[0020] The following is a detailed description of the allocation process of the RDMA device in conjunction with the method embodiment.
[0021] Figure 1 The flowchart of a method for allocating RDMA devices according to an exemplary embodiment of the present application is shown in FIG. The method 100 provided in the embodiment of the present application is executed by a computing device, such as a cloud server. The method 100 includes the following steps:
[0022] 101: receiving an allocation request, and determining an available host machine according to the allocation request.
[0023] 102: Allocate an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines.
[0024] 103: Configure the allocated RDMA device to the corresponding execution device in the available host machine.
[0025] It should be noted that the execution subject of the embodiment of the present application may be a cloud server, more specifically a host machine, or even a container cluster in the host machine.
[0026] The following is a detailed description of the above steps:
[0027] 101: receiving an allocation request, and determining an available host machine according to the allocation request.
[0028] The allocation request may be a request for allocating an RDMA device, or an allocation request for an execution device (eg, a container), and the execution device needs to be configured with a corresponding RDMA device.
[0029] The RDMA device includes an elastic RDMA device, which refers to a dynamically adjustable RDMA virtual device. The elastic RDMA device may refer to a virtual RDMA device generated by virtualizing the resources of a smart NIC (which has computing, storage and communication capabilities) supporting the RDMA protocol.
[0030] Elastic RDMA devices are created in cloud computing environments to reduce the communication overhead between distributed nodes and improve end-to-end performance while maintaining the elasticity of network devices. One of the main scenarios for elastic RDMA is cloud-native scenarios, and container cluster-related technologies are key technologies for cloud-native, so elastic RDMA devices can be used in container clusters to give full play to elastic RDMA devices in an elastic way.
[0031] In addition, the RDMA device may also include a non-elastic RDMA device, that is, a physical RDMA device, which may be implemented by a common network card supporting the RDMA protocol.
[0032] A host machine refers to a computing device that can be used to mount or allocate an RDMA device. Processes on different host machines can communicate through RDMA devices, and the network protocol stack for communication can be an RDMA network protocol stack or a TCP / IP network protocol stack. Among them, an available host machine refers to a host machine that can be used to allocate an RDMA device.
[0033] For example, a user can access the login interface of the cloud server through a browser of a smart terminal (such as a computer), and send an allocation request directly to the cloud server according to the login interface, or jump to other interfaces (such as the allocation interface) through the login interface to send the request. The user can also send a request by calling an API (Application Programming Interface). After receiving the request, the cloud server can select an available host from multiple host machines according to the request, wherein multiple host machines can be marked to indicate whether they are available, so as to search according to the mark.
[0034] It should be noted that in addition to the physical user, other devices can also automatically send the request. For example, other host machines in the cloud server send the request according to demand, which will not be elaborated here.
[0035] Specifically, receiving an allocation request and determining an available host machine according to the allocation request include: receiving the allocation request through a request receiving component and sending the allocation request to a scheduler; searching for an available host machine that meets the allocation request from multiple hosts through the scheduler and according to the allocation request.
[0036] The request receiving component may be an execution component or module unit, or a framework structure, etc., running on a host container in a cloud server.
[0037] The scheduler may also be a scheduler running on a host container in a cloud server to implement the scheduling function.
[0038] The allocation request may carry configuration parameters, such as the number of allocations.
[0039] For example, according to the above, if Figure 2 As shown, after the user sends an allocation request through a computer, the request receiving component 205 in the cloud server can perform step 201: receiving the allocation request. After the request receiving component 205 receives the request, step 202 is performed: sending the allocation request to the scheduler 206. After the scheduler 206 receives the request, it can select an available host from multiple host machines according to the request, wherein the multiple host machines can be marked to indicate whether they are available, so as to search according to the mark.
[0040] It should be noted that the number of allocated RDMA devices in the default configuration parameters may be 1.
[0041] In order to facilitate the search for available hosts, the data carried in the request can be used to determine the available hosts that meet the requirements.
[0042] Specifically, searching for an available host machine that meets the allocation request from multiple host machines according to the allocation request includes: searching for an available host machine that can allocate the number of RDMA devices (or elastic RDMA devices) from multiple host machines through a scheduler according to the allocation number in the allocation request.
[0043] For example, according to the above, after receiving the allocation request through the scheduler, the allocation request may carry the allocation number, which may refer to the allocation number of elastic RDMA devices or non-elastic RDAM devices, such as 2. Then, the scheduler searches for an available host machine with an allocation number of 2 elastic RDMA devices or non-elastic RDAM devices from multiple host machines. The corresponding available host machine may be determined by marking the allocation number of elastic RDMA devices or non-elastic RDAM devices that are allocated to the host machine.
[0044] It should be noted that, for non-elastic RDAM devices, each host machine may have pre-set corresponding non-elastic RDAM devices, and the number of non-elastic RDAM devices may be fixed. However, since each host machine can allocate its pre-set non-elastic RDAM devices to its own execution devices, such as containers, the number of non-elastic RDAM devices that can be allocated can be changed, so the number of non-elastic RDAM devices of each host machine may not necessarily meet the configuration parameters, that is, for non-elastic RDAM devices, the host machine also needs to be selected.
[0045] 102: Allocate an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines.
[0046] According to the foregoing, the RDMA device may include a flexible RDMA device, which refers to a dynamically adjustable RDMA device, such as the number of RDMA devices, the number of queues of the RDMA device, and the number of queue pairs.
[0047] Configuration parameters refer to parameters used to configure elastic RDMA devices or non-elastic RDMA devices. Configuration parameters of elastic RDMA devices may include but are not limited to the number of allocations, queue parameters of elastic RDMA devices, etc. Configuration parameters of non-elastic RDMA devices include but are not limited to the number of allocations.
[0048] For example, as described above, the cloud server can create an elastic RDMA device that meets the number of queues and queue pairs based on the number of allocations in the request, which can default to 1 (or multiple requests, such as two), and the number of queues and queue pairs of the elastic RDMA device.
[0049] In addition, according to the allocation number in the request, such as 2 non-elastic RDMA devices, and the corresponding available host, two non-elastic RDMA devices can be selected from the allocatable non-elastic RDMA devices preset on the host for allocation to subsequent execution devices, such as containers.
[0050] Specifically, allocating an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines includes: allocating an RDMA device matching the corresponding configuration parameters on the available host machines according to the configuration parameters in the allocation request.
[0051] More specifically, according to the configuration parameters in the allocation request, an RDMA device matching the corresponding configuration parameters is allocated on the available host, including: sending the allocation request to the configuration plug-in in the available host through the scheduler; through the configuration plug-in and according to the queue parameters in the configuration parameters, requesting the RDMA device management service to create (or allocate) an RDMA device matching the queue parameters on the available host.
[0052] The queue parameters may include the number of queues and the number of queue pairs of the elastic RDMA device.
[0053] Requesting the RDMA device management service may refer to a cloud service or cloud product deployed on a cloud server for managing and allocating RDMA devices.
[0054] For example, according to the above, if Figure 2As shown, after determining the available host 207 through the scheduler 206, the cloud server sends an allocation request to the configuration plug-in 208 of the available host 207, that is, executes step 203: sending an allocation request to the configuration plug-in 208. After receiving the request, the configuration plug-in 208 executes step 204 to the elastic RDMA device management service 209 according to the number of queues and the number of queue pairs of the elastic RDMA device in the request: requesting to create an elastic RMDA device on the available host 207. For example, the configuration plug-in 208 can send an allocation request or a creation request to the elastic RDMA device management service 209, and the request carries configuration parameters, such as queue parameters, and can also carry identity information of the available host 207, such as an identification ID. After receiving the request, the elastic RDMA device management service 209 creates or allocates an elastic RDMA device for the available host 207 on the available host 207 according to the queue parameters. After the creation is completed, the elastic RDMA device management service 209 may send information indicating successful allocation to the configuration plug-in 208 .
[0055] It should be noted that the configuration plug-in 208 can send an allocation request or a creation request to the elastic RDMA device management service 209, and the request can also carry a configuration parameter of the number of allocations. So that the elastic RDMA device management service 209 can create or allocate elastic RDMA devices according to the number of allocations. It should be understood that for multiple elastic RDMA devices that need to be created or allocated, the request can indicate a corresponding queue parameter for each of the number of allocations, so that the elastic RDMA device management service 209 can create or allocate a corresponding number of elastic RDMA devices, and each device also meets the queue parameters.
[0056] Therefore, different elastic RDMA devices can dynamically configure parameters to meet the needs of different scenarios without wasting queue resources and queue pair resources, thereby improving resource utilization efficiency and saving costs.
[0057] In order to facilitate the scheduler to find the corresponding available host machine, the elastic RDMA devices (or non-elastic RDMA devices) that can be allocated to the multiple host machines may be determined first.
[0058] Specifically, the method 100 also includes: requesting the RDMA device management service by configuring the plug-in, determining the RDMA device that can be allocated to the corresponding host machine among multiple host machines, and sending the first information to the scheduler, the first information indicating the RDMA device that can be allocated to the corresponding host machine among multiple host machines, so that the scheduler can record and search.
[0059] For example, according to the foregoing, before allocating elastic RDMA devices (or non-elastic RDMA devices), the scheduler can request the corresponding configuration plug-in to determine the number of elastic RDMA devices (or available non-elastic RDMA devices) that can be allocated to the corresponding host or each elastic RDMA device (or each available non-elastic RDMA device) that is allocated. Thus, the configuration plug-in of each host can send a request to the elastic RDMA device management service in the manner described above, and the request is used to determine the number of elastic RDMA devices that can be currently allocated to the corresponding host or each elastic RDMA device that is allocated. After the elastic RDMA device management service receives the request, according to the identity information of the host carried by the request, it can determine the number of elastic RDMA devices that can be allocated or each elastic RDMA device that is allocated according to the current resources of the host. Then, the number of elastic RDMA devices that can be allocated or each elastic RDMA device that is allocated is returned to the corresponding configuration plug-in. The configuration plug-in can then return the number of elastic RDMA devices that can be allocated or each elastic RDMA device that is allocated to the scheduler, that is, send the first information representing the content to the scheduler. Therefore, the scheduler can store the number of elastic RDMA devices that can be allocated to the corresponding host machine or each allocated elastic RDMA device according to the first information, so as to facilitate the above-mentioned search and determine which host machine or hosts are available.
[0060] For non-elastic RDMA devices, since the host machine has already pre-configured the corresponding non-elastic RDMA devices, the above configuration plug-in can also be used to send information to the scheduler so that the scheduler knows the non-elastic RDMA devices available on each host machine.
[0061] Specifically, by configuring the plug-in, the non-elastic RDMA device available to the corresponding host among the multiple hosts is determined, and the fourth information is sent to the scheduler, where the fourth information indicates the non-elastic RDMA device available to the corresponding host among the multiple hosts, so that the scheduler can record and search.
[0062] The specific implementation method is similar to that described above, so it will not be repeated here. It is only explained that the configuration plug-in can query the non-elastic RDMA device available on the corresponding host machine, and then send a corresponding message to the scheduler, which will not be repeated here.
[0063] It should be noted that, in the above manner, when the scheduler searches for an available host, it can determine whether it is an available host according to whether there are elastic RDMA devices (or available non-elastic RDMA devices) that can be allocated among the multiple hosts, or the number of elastic RDMA devices (or available non-elastic RDMA devices) that are allocated. Then, the scheduler can search for an available host that meets the number of allocations carried in the allocation request, thereby determining an available host. If multiple available hosts are determined, the multiple hosts determined can also be scored according to other strategies, such as scoring based on host performance or resources, or scoring based on whether the elastic RDMA devices (or available non-elastic RDMA devices) that can be allocated just meet the number of allocations. For example, if the number of allocations is 1, and the elastic RDMA device (or available non-elastic RDMA device) that can be allocated to host 1 is also 1, then host 1 is a qualified available host.
[0064] In addition, under the premise of having multiple schedulers, there may be a preemptive relationship between the determination of multiple hosts by multiple schedulers, or after the scheduler determines the available host, the host cannot continue to support the current number of allocations due to other circumstances, or cannot support the allocated RDMA devices (such as elastic RDMA devices), so the scheduler may fail to allocate elastic RDMA devices to available hosts (or all non-elastic RDMA devices of available hosts no longer meet the configuration parameters). At this time, the scheduler needs to re-determine the available host according to the method described above, and then allocate elastic RDMA devices (or non-elastic RDMA devices), which will not be repeated in detail.
[0065] It should also be noted that, for elastic RDMA devices, in addition to determining available hosts according to the above method, other factors can also be considered to determine available hosts, such as the resources of the current host, such as GPU (graphics processing unit), CPU (central processing unit), memory and other resources, and allocation is performed. This will not be overly elaborated here.
[0066] Since the scheduler needs to search for available hosts based on the elastic RDMA devices that can be allocated to the corresponding hosts (or all the non-elastic RDMA devices that the available hosts have) that it records, when the elastic RDMA device (or non-elastic RDMA device) is created or allocated to the corresponding host, the scheduler needs to be informed to update the record.
[0067] Specifically, after allocating the RDMA device that matches the corresponding configuration parameters, the method 100 also includes: sending second information to the scheduler through the configuration plug-in, the second information indicating that the RDMA device that matches the corresponding configuration parameters is allocated on the available host machine; and updating the RDMA devices that can be allocated to the available host machine through the scheduler.
[0068] For example, according to the above, after receiving the information indicating successful allocation sent by the elastic RDMA device management service, the configuration plug-in can send a second message to the scheduler, and the second message indicates that an elastic RDMA device matching the corresponding configuration parameters is created on an available host. Then, after receiving the information, the scheduler can mark one (or more, determined by the number of allocations) idle elastic RDMA devices of the corresponding available host as occupied or reduce the number of elastic RDMA devices that can be allocated to the available host by one.
[0069] For non-elastic RDMA devices, specifically, after allocating RDMA devices that match corresponding configuration parameters, the method 100 further includes: sending fifth information to the scheduler through the configuration plug-in, the fifth information indicating that RDMA devices that match corresponding configuration parameters are allocated through available hosts; and updating RDMA devices available to available hosts through the scheduler.
[0070] The specific implementation method is similar to that described above and will not be elaborated on herein.
[0071] 103: Configure the allocated RDMA device to the corresponding execution device in the available host machine.
[0072] The execution device may be a container or a virtual machine of a cloud server.
[0073] For example, according to the above, if Figure 2 As shown, after receiving the information indicating successful allocation sent by the elastic RDMA device management service 209 through the configuration plug-in 208, the elastic RDMA device management service 209 can also send information of the elastic RDMA device, such as ID, etc. Therefore, the elastic RDMA device can be found through the configuration plug-in 208, and the elastic RDMA device can be pulled up to the isolation area where the corresponding container A 210 is located, so that the container A 210 can find the elastic RDMA device and use it, thereby completing the configuration of the elastic RDMA device.
[0074] For non-elastic RDMA devices, the available host has a default network namespace (networknamespace), and the container also has a network namespace (which can be created accordingly). The network namespace to which the non-elastic RDMA device belongs is modified by configuring the plug-in, from the default host network namespace to the container network namespace.
[0075] Specifically, configuring the allocated RDMA device to a corresponding execution device in an available host includes: configuring the allocated RDMA device to a corresponding container in the available host by configuring a plug-in.
[0076] Since this has been explained in the previous article, I will not repeat it here.
[0077] It should be noted that since the elastic RDMA device (or non-elastic RDMA device) needs to be configured in the execution device, the allocation request not only needs to allocate the elastic RDMA device (or non-elastic RDMA device), but also needs to create or allocate the corresponding execution device, such as a container or a virtual machine. The execution device can be allocated or created in an available host machine.
[0078] Specifically, the method 100 further includes: sending an allocation request to a configuration plug-in in an available host through a scheduler; and requesting a container management service in the available host to create a container through the configuration plug-in, so as to configure the created RDMA device to the container.
[0079] Among them, the container management service can be a service deployed on an available host of a cloud server, which is used to create and manage containers. The service can call the kubernetes orchestration management tool to create containers.
[0080] For example, according to the above, the allocation request is sent to the configuration plug-in in the available host through the scheduler; through the configuration plug-in, a container creation request is sent to the container management service of the available host, and the service calls the kubernetes orchestration management tool based on the request to create a container. In the available host, the service will send the information of the created container to the configuration plug-in at the same time. So that after the elastic RDMA device is created (or the non-elastic RDMA device is allocated) in the host, the configuration plug-in can configure the elastic RDMA device (or the allocated non-elastic RDMA device) to the corresponding container.
[0081] like Figure 2As shown, container A 210 and container B 211 are created in the available host 207, and the two containers belong to different users or the same user. Each container is configured with a corresponding elastic RDMA device (or non-elastic RDMA device), and each container can communicate or interact with each other through its own elastic RDMA device (or non-elastic RDMA device), that is, it can perform step 212: data interaction through its own elastic RDMA device (or non-elastic RDMA device). In addition, a container can be configured with multiple elastic RDMA devices.
[0082] In addition, elastic RDMA devices can be allocated based on the user's identity identification ID, which can be carried in the allocation request. The elastic RDMA device can open up the user's isolated network space and combine the strong isolation of the secure container to enable a single host to support multiple users.
[0083] In addition to allocating elastic RDMA devices (or non-elastic RDMA devices), you can also release elastic RDMA devices (or non-elastic RDMA devices) (for non-elastic RDMA devices, release means that the current non-elastic RDMA device no longer provides network card services for the current execution device and is returned to the corresponding host machine). The following is an explanation of the release content:
[0084] Specifically, the method 100 further includes: receiving a release request, and determining a corresponding available host machine according to the release request; moving the RDMA device configured in the execution device to the available host machine, and releasing the moved RDMA device.
[0085] It should be noted that the release process is similar to the allocation process described above, and can be said to be the reverse process of the allocation process.
[0086] For example, according to the above, the user can send a release request to the cloud server by calling the API interface method on the computer (or by the interface method described above), and the request can carry the identifier of the released container and the identifier of the elastic RDMA device (or non-elastic RDMA device). Then, after receiving the request, the cloud server can first determine the corresponding available host, move the elastic RDMA device configured in the container to the available host, and release the moved elastic RDMA device. Finally, the container can be released.
[0087] For a non-elastic RDMA device, specifically, the method 100 further includes: receiving a release request, determining a corresponding available host machine according to the release request; and restoring the RDMA device configured in the execution device to the available host machine.
[0088] For example, according to the above description, the network namespace to which the non-elastic RDMA device belongs is modified by configuring the plug-in, and the network namespace of the container is modified to the network namespace of the default host, so that the container returns the non-elastic RDMA device to the corresponding host.
[0089] Specifically, receiving a release request and determining a corresponding available host according to the release request includes: receiving the release request through a request receiving component, determining an available host according to the release request, so that the request receiving component sends the release request to a configuration plug-in in the available host.
[0090] For example, as described above, the cloud server may receive the release request through a request receiving component, determine a corresponding available host machine according to the request, and then send the release request directly to the configuration plug-in of the corresponding available host machine.
[0091] Specifically, the RDMA device configured in the execution device is moved out to the available host machine, and the moved RDMA device is released, including: receiving a release request sent by a request receiving component through a configuration plug-in; according to the release request, moving the RDMA device in the corresponding container out to the available host machine through the configuration plug-in; and requesting the RDMA device management service to release the RDMA device moved out of the host machine through the configuration plug-in.
[0092] For example, according to the foregoing, a release request is received through the configuration plug-in of the available host, and the corresponding elastic RDMA device is searched according to the ID of the elastic RDMA device in the request, and then the elastic RDMA device is moved out of the isolation area where its corresponding container is located to the available host. Then the configuration plug-in can send a release request to the elastic RDMA device management service to request the elastic RDMA device management service to release the elastic RDMA device. After receiving the release request, the elastic RDMA device management service finds the available host according to the identifier of the released elastic RDMA device and the ID of the available host in the request, and releases the corresponding elastic RDMA device in the host.
[0093] For a non-elastic RDMA device, specifically, the RDMA device configured in the execution device is restored to an available host machine, including: receiving a release request sent by a request receiving component through a configuration plug-in; and restoring the RDMA device in the corresponding container to the available host machine through the configuration plug-in according to the release request.
[0094] For example, as described above, a release request is received through the configuration plug-in of the available host, and the corresponding non-elastic RDMA device is found according to the ID of the non-elastic RDMA device in the request, and then the network namespace to which the non-elastic RDMA device belongs is modified from the network namespace of the container to the network namespace of the default host, so that the container returns the non-elastic RDMA device to the corresponding host.
[0095] It should be noted that after the configuration plug-in receives the release request, it can send a container suspension request to the container management service of the available host. The service calls the kubernetes orchestration management tool to suspend the container based on the request and the container identifier carried in the request. After the container is suspended, the configuration plug-in moves the elastic RDMA device corresponding to the container to the available host (or restores the non-elastic RDMA device to the host). Then request the elastic RDMA device management service to release the elastic RDMA device (or non-elastic RDMA device). After releasing the elastic RDMA device, the elastic RDMA device management service sends a release success message to the configuration plug-in. Then the configuration plug-in can send a container release request to the container management service of the available host (or after restoring the non-elastic RDMA device to the host, the configuration plug-in can send a container release request to the container management service of the available host), and the service calls the kubernetes orchestration management tool to release the container based on the request and the container identifier carried in the request.
[0096] After releasing the elastic RDMA device (or restoring the non-elastic RDMA device), you need to update the information recorded in the scheduler.
[0097] Specifically, the method 100 further includes: sending third information to the scheduler through the configuration plug-in, where the third information indicates releasing the RDMA device removed from the available host; and updating the RDMA device that can be allocated to the available host through the scheduler.
[0098] For example, according to the above, after receiving the release success information sent by the elastic RDMA device management service, the configuration plug-in sends information to the scheduler through the configuration plug-in, which releases the elastic RDMA device removed from the available host, and the information indicates the identifier of the corresponding available host, such as ID, and the number of released elastic RDMA devices. After receiving this information, the scheduler can add one to the number of elastic RDMA devices that can be allocated to the corresponding available host, or mark one (or more, determined by the number of allocations) idle elastic RDMA devices of the available host as unoccupied.
[0099] For the non-elastic RDMA device, specifically, the method 100 further includes: sending sixth information to the scheduler through the configuration plug-in, the sixth information indicating restoring the RDMA device to the available host; and updating the RDMA device available to the available host through the scheduler.
[0100] The specific implementation method is similar to that described above and will not be elaborated on herein.
[0101] The embodiment of the present application can also support multiple tenants or users to deploy services on the same host machine, and multiple host machines can be used as a shared resource allocation pool. The larger the scale of the resource pool (which can include the number of host machines, the number of elastic RDMA devices (or non-elastic RDMA devices), and the number of containers, etc.), the more users with different needs are covered, forming a scenario of staggered satisfaction of needs, which can improve the utilization rate of the resource pool and save costs. This can support the ability to dynamically provide elastic RDMA devices (or flexibly allocate non-elastic RDMA devices) in the container cluster scenario in the cloud server, supply and release elastic RDMA devices on demand (or supply and flexibly return non-elastic RDMA devices on demand), and can allocate elastic RDMA devices that open up the tenant's isolated network space based on the tenant's identity identification ID, combined with the strong isolation of the secure container, so that a single host can support multiple tenants.
[0102] In addition to the above-mentioned process of dynamically allocating elastic RDMA devices (or flexibly allocating inelastic RDMA devices), multiple elastic RDMA devices (or inelastic RDMA devices) that can be mounted on one or more host machines can also be mounted on the corresponding host machine in advance, and configured inside the container for use by the container (the specific implementation method is similar to that described above and will not be repeated here). First, through the elastic RDMA device (or inelastic RDMA device) console or the operation method of the open API, multiple elastic RDMA devices (or inelastic RDMA devices) are mounted on the host machine. Since they are mounted in the host machine in advance, multiple elastic RDMA devices (or inelastic RDMA devices) are provided with the host machine and are already statically mounted. The release (or restoration) process is also similar. You only need to move the elastic RDMA device out of the container from the host machine. There is no need to release (or restore the inelastic RDMA device to the corresponding host machine), so it will not be repeated here. However, this method of allocating elastic RDMA devices (or non-elastic RDMA devices) is limited, and focuses more on static allocation, which is not flexible enough. In addition, since elastic RDMA devices (or non-elastic RDMA devices) are configured in advance, too much dynamic configuration or flexible configuration cannot be performed. Therefore, a single host machine can only support one user, and there is no way to support scenarios where a single host machine on a cloud server has multiple users.
[0103] Figure 3The following is a schematic diagram of a structure of an RDMA device allocation system provided by an exemplary embodiment of the present application. Figure 3 As shown, the system 300 may include: a first device 301 and a second device 302 .
[0104] Among them, the first device 301 can be a device with certain computing capabilities, which can realize the function of sending data to the second device 302, and can also receive data sent by the second device 302. The basic structure of the first device 301 may include: at least one processor. The number of processors may depend on the configuration and type of the device with certain computing capabilities. The device with certain computing capabilities may also include a memory, which may be volatile, such as RAM, or non-volatile, such as read-only memory (ROM), flash memory, etc., or may include both types at the same time. The memory usually stores an operating system (OS), one or more application programs, and may also store program data, etc. In addition to the processing unit and the memory, the device with certain computing capabilities also includes some basic configurations, such as a network card chip, an IO bus, a display component, and some peripheral devices, etc. Optionally, some peripheral devices may include, for example, a keyboard, an input pen, etc. Other peripheral devices are well known in the art and will not be described in detail here. Optionally, the first device 301 may be an intelligent terminal, such as a mobile phone, a desktop computer, a notebook, a tablet computer, etc.
[0105] The second device 302 refers to a device that can provide computing and processing services in a network virtual environment, and can refer to a device that uses the network to perform RDMA device allocation. In physical implementation, the second device 302 can be any device that can provide computing services, respond to service requests, and obtain data, and can also perform RDMA device allocation, such as a cloud server, a cloud host, a virtual center, a conventional server, etc. The second device 302 mainly includes a processor, a hard disk, a memory, a system bus, etc., which is similar to a general computer architecture.
[0106] Specifically, the second device 302 receives an allocation request, determines an available host machine according to the allocation request; allocates an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines; and configures the allocated RDMA device to a corresponding execution device in the available host machines.
[0107] In addition, the first device 301 sends an allocation request to the second device 302 .
[0108] Specifically, the second device 302 receives the allocation request through the request receiving component and sends the allocation request to the scheduler; through the scheduler, and according to the allocation request, searches for an available host machine that meets the allocation request from multiple host machines.
[0109] Specifically, the second device 302 searches for an available host machine that can allocate the number of RDMA device allocations from multiple host machines through a scheduler according to the number of allocations in the allocation request.
[0110] Specifically, the second device 302 sends an allocation request to the configuration plug-in in the available host through the scheduler; through the configuration plug-in and according to the queue parameters in the configuration parameters, requests the RDMA device management service to create an RDMA device matching the queue parameters on the available host.
[0111] In addition, the second device 302 requests the RDMA device management service by configuring the plug-in, determines the RDMA device that can be allocated to the corresponding host machine among multiple host machines, and sends the first information to the scheduler, the first information indicating the RDMA device that can be allocated to the corresponding host machine among multiple host machines, so that the scheduler can record and search.
[0112] In addition, after allocating the RDMA device that matches the corresponding configuration parameters, the second device 302 sends second information to the scheduler through the configuration plug-in, and the second information indicates that the RDMA device that matches the corresponding configuration parameters is allocated on the available host machine; through the scheduler, the RDMA device that can be allocated to the available host machine is updated.
[0113] Specifically, the second device 302 configures the allocated RDMA device in a corresponding container in the available host machine by configuring the plug-in.
[0114] In addition, the second device 302 receives the release request, determines a corresponding available host machine according to the release request, moves the RDMA device configured in the execution device to the available host machine, and releases the moved RDMA device.
[0115] The RDMA device includes an elastic RDMA device, and the elastic RDMA device refers to an RDMA virtual device that can be dynamically adjusted.
[0116] It should be noted that for the contents that are not fully explained in the system 300, please refer to the contents of the method 100 described above, and for its specific implementation, please refer to the specific implementation of the method 100 described above, which will not be repeated here.
[0117] In the allocation scenario of the elastic RDMA device in the embodiment of the present application, Figure 3As shown, a user can log in to a second device 302, such as a cloud server, through a web browser of a first device 301, such as a computer, and the login interface jumps to other interfaces, such as an allocation interface to send a request, that is, execute step 303: send an allocation request. Step 201 can be executed through the request receiving component 205 in the cloud server: receiving the allocation request. After the request receiving component 205 receives the request, step 202 is executed: sending the allocation request to the scheduler 206. After the scheduler 206 receives the request, it can select an available host from multiple host machines according to the request. After the cloud server determines the available host 207 through the scheduler 206, the allocation request is sent to the configuration plug-in 208 (also called the elastic RDMA configuration plug-in) of the available host 207, that is, step 203 is executed: sending the allocation request to the configuration plug-in 208. After receiving the request, the configuration plug-in 208 performs step 204 to the elastic RDMA device management service 209 according to the number of queues and the number of queue pairs of the elastic RDMA device in the request: requesting to create an elastic RMDA device on the available host 207. After receiving the request, the elastic RDMA device management service 209 creates or allocates an elastic RDMA device on the available host 207 (the available host 207) according to the queue parameters for the available host 207. After the creation is completed, the elastic RDMA device management service 209 can send information indicating successful allocation to the configuration plug-in 208.
[0118] The configuration plug-in 208 can directly execute step 305 by requesting the receiving component 205: sending the allocation success information. Then the computer executes step 304: receiving the allocation success information. After receiving the allocation success information sent by the elastic RDMA device management service 209, the configuration plug-in 208 can send information to the scheduler 206, and the information indicates that an elastic RDMA device matching the corresponding configuration parameters is created on the available host 207. Then, after receiving the information through the scheduler 206, one (or more, determined according to the number of allocations) idle elastic RDMA devices corresponding to the available host 207 can be marked as occupied or the number of elastic RDMA devices that can be allocated on the available host 207 can be reduced by one.
[0119] Container A 210 and container B 211 are created in the available host 207, and the two containers belong to different users or the same user. Each container is configured with a corresponding elastic RDMA device, and each container can communicate or interact with each other through its own elastic RDMA device, that is, step 212: data interaction can be performed through its own elastic RDMA device.
[0120] The user can send a release request to the cloud server by calling the API interface method on the computer (or by the interface method described above), and the request can carry the identifier of the released container and the identifier of the elastic RDMA device. Then, the release request can be received by the request receiving component 205, and the corresponding available host 207 can be determined according to the request, and then the release request can be directly sent to the configuration plug-in 208 of the corresponding available host 207. The release request is received by the configuration plug-in 208, and the corresponding elastic RDMA device is found according to the ID of the elastic RDMA device in the request, and then the elastic RDMA device is moved out of the isolation area where the corresponding container is located to the available host 207. Then the configuration plug-in 208 can send a release request to the elastic RDMA device management service 209 to request the elastic RDMA device management service 209 to release the elastic RDMA device. After releasing the elastic RDMA device, after receiving the release success information sent by the elastic RDMA device management service 209, the configuration plug-in 208 sends information to the scheduler 206, which releases the elastic RDMA device removed from the available host 207. The information indicates the identifier of the corresponding available host 207, such as ID, and the number of released elastic RDMA devices. After receiving this information, the scheduler 206 can increase the number of elastic RDMA devices that can be allocated to the corresponding available host 207 by one, or mark one (or more, determined by the number of allocations) idle elastic RDMA devices of the available host as unoccupied.
[0121] In the above embodiment, the first device 301 and the second device 302 are connected to the network. If the first device 301 and the second device 302 are connected for communication, the network standard of the mobile network can be any one of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), WiMax, 5G, etc.
[0122] Figure 4 A schematic diagram of the structure framework of an allocation device for an RDMA device provided as an exemplary embodiment of the present application. The device 400 can be applied to a cloud server. The device 400 includes: a determination module 401, an allocation module 402, and a configuration module 403; the functions of each module are described in detail below:
[0123] The determination module 401 is used to receive an allocation request and determine an available host machine according to the allocation request.
[0124] The allocation module 402 is used to allocate an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines.
[0125] The configuration module 403 is used to configure the allocated RDMA device to the corresponding execution device in the available host machine.
[0126] Specifically, the determination module 401 includes: a first sending unit, used to receive an allocation request through a request receiving component and send the allocation request to a scheduler; a search unit, used to search for an available host machine that meets the allocation request from multiple host machines through the scheduler and according to the allocation request.
[0127] Specifically, the search unit is used to search, through the scheduler, for an available host machine that can allocate the number of RDMA device allocations from multiple host machines according to the number of allocations in the allocation request.
[0128] Specifically, the allocation module 402 includes: a second sending unit, which is used to send the allocation request to the configuration plug-in in the available host machine through the scheduler; a creation unit, which is used to request the RDMA device management service to create an RDMA device matching the queue parameters on the available host machine through the configuration plug-in and according to the queue parameters in the configuration parameters.
[0129] In addition, the determination module 401 is also used to: request the RDMA device management service by configuring the plug-in, determine the RDMA device that can be allocated to the corresponding host machine among multiple host machines, and send the first information to the scheduler, the first information indicating the RDMA device that can be allocated to the corresponding host machine among multiple host machines, so that the scheduler can record and search.
[0130] In addition, after allocating the RDMA device that matches the corresponding configuration parameters, the device 400 also includes: a first sending module, which is used to send second information to the scheduler through the configuration plug-in, and the second information indicates that the RDMA device that matches the corresponding configuration parameters is allocated on the available host machine; an update module, which is used to update the RDMA device that can be allocated to the available host machine through the scheduler.
[0131] In addition, the configuration module 403 is further used to configure the allocated RDMA device in a corresponding container in the available host machine by configuring the plug-in.
[0132] In addition, the device 400 also includes: a second sending module, which is used to send the allocation request to the configuration plug-in in the available host machine through the scheduler; the allocation module 402 is also used to request the container management service in the available host machine to create a container through the configuration plug-in, so as to configure the created RDMA device to the container.
[0133] In addition, the determination module 401 is also used to receive a release request and determine the corresponding available host machine according to the release request; the device 400 also includes: a removal module, which is used to remove the RDMA device configured in the execution device to the available host machine and release the removed RDMA device.
[0134] Specifically, the determination module 401 is used to: receive a release request through a request receiving component, determine an available host machine according to the release request, so that the request receiving component sends the release request to the configuration plug-in in the available host machine.
[0135] Specifically, the removal module includes: a receiving unit, which is used to receive a release request sent by a request receiving component through a configuration plug-in; a removal unit, which is used to move the RDMA device in the corresponding container to an available host machine through the configuration plug-in according to the release request; and a release unit, which is used to request the RDMA device management service to release the RDMA device removed from the host machine through the configuration plug-in.
[0136] In addition, the first sending module is also used to send third information to the scheduler through the configuration plug-in, and the third information indicates the release of the RDMA device removed from the available host machine; the update module is also used to update the RDMA devices that can be allocated to the available host machine through the scheduler.
[0137] The RDMA device includes an elastic RDMA device, and the elastic RDMA device refers to an RDMA virtual device that can be dynamically adjusted.
[0138] The above describes Figure 4 The internal functions and structure of the device 400 shown, in one possible design, Figure 4 The structure of the device 400 shown can be implemented as a computing device, such as a cloud server. Figure 5 As shown, the device 500 may include: a memory 501, a processor 502;
[0139] The memory 501 is used to store computer programs.
[0140] The processor 502 is used to execute a computer program to: receive an allocation request, determine an available host machine according to the allocation request; allocate an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machines; and configure the allocated RDMA device to a corresponding execution device in the available host machines.
[0141] Specifically, the processor 502 is specifically configured to: receive an allocation request through a request receiving component and send the allocation request to a scheduler; and search for an available host machine that satisfies the allocation request from multiple host machines through the scheduler and according to the allocation request.
[0142] Specifically, the processor 502 is specifically configured to: search, through the scheduler, for an available host machine that can allocate the number of RDMA device allocations from multiple host machines according to the number of allocations in the allocation request.
[0143] Specifically, the processor 502 is specifically used to: send an allocation request to the configuration plug-in in the available host machine through the scheduler; and request the RDMA device management service to create an RDMA device matching the queue parameters on the available host machine through the configuration plug-in and according to the queue parameters in the configuration parameters.
[0144] In addition, the processor 502 is also used to: request the RDMA device management service by configuring the plug-in, determine the RDMA device that can be allocated to the corresponding host machine among the multiple host machines, and send the first information to the scheduler, the first information indicating the RDMA device that can be allocated to the corresponding host machine among the multiple host machines, so that the scheduler can record and search.
[0145] In addition, after allocating the RDMA device that matches the corresponding configuration parameters, the processor 502 is also used to: send second information to the scheduler through the configuration plug-in, the second information indicating that the RDMA device that matches the corresponding configuration parameters is allocated on the available host machine; and update the RDMA devices that can be allocated to the available host machine through the scheduler.
[0146] In addition, the processor 502 is further configured to configure the allocated RDMA device in a corresponding container in the available host machine by configuring the plug-in.
[0147] In addition, the processor 502 is further configured to: send an allocation request to a configuration plug-in in an available host through a scheduler; and request a container management service in the available host to create a container through the configuration plug-in, so as to configure the created RDMA device to the container.
[0148] In addition, the processor 502 is further configured to: receive a release request, determine a corresponding available host machine according to the release request; move the RDMA device configured in the execution device to the available host machine, and release the moved RDMA device.
[0149] Specifically, the processor 502 is specifically configured to: receive a release request through a request receiving component, determine an available host machine according to the release request, and send the release request to a configuration plug-in in the available host machine through the request receiving component.
[0150] Specifically, the processor 502 is specifically used to: receive a release request sent by a request receiving component by configuring a plug-in; according to the release request, move the RDMA device in the corresponding container to an available host machine by configuring a plug-in; and request the RDMA device management service to release the RDMA device moved out of the host machine by configuring a plug-in.
[0151] In addition, the processor 502 is further configured to: send third information to the scheduler through the configuration plug-in, where the third information indicates releasing the RDMA device removed from the available host; and update the RDMA device that can be allocated to the available host through the scheduler.
[0152] In addition, an embodiment of the present invention provides a computer storage medium, when the computer program is executed by one or more processors, causing the one or more processors to implement Figure 1-2 The method embodiment provides steps of a method for allocating an RDMA device.
[0153] In addition, in some of the processes described in the above embodiments and the accompanying drawings, multiple operations that appear in a specific order are included, but it should be clearly understood that these operations may not be executed in the order in which they appear in this article or executed in parallel, and the sequence numbers of the operations, such as 201, 202, 203, etc., are only used to distinguish between different operations, and the sequence numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the descriptions of "first", "second", etc. in this article are used to distinguish different messages, devices, modules, etc., do not represent the order of precedence, and do not limit the "first" and "second" to be different types.
[0154] The device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.
[0155] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by adding a necessary general hardware platform, and of course can also be implemented by combining hardware and software. Based on such an understanding, the above technical solution is essentially or the part that contributes to the prior art can be embodied in the form of a computer product, and the present invention can be in the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
[0156] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable multimedia data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable multimedia data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0157] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable multimedia data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0158] These computer program instructions may also be loaded onto a computer or other programmable multimedia data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0159] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0160] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.
[0161] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
[0162] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for allocating an RDMA device, characterized in that: include: receiving the allocation request through the request receiving component and sending the allocation request to the scheduler; By configuring the plug-in, requesting the RDMA device management service, determining the RDMA device that can be allocated to the corresponding host machine among the multiple host machines, and sending first information to the scheduler, wherein the first information indicates the RDMA device that can be allocated to the corresponding host machine among the multiple host machines, so that the scheduler can record and search; Searching, by the scheduler and according to the allocation request, from a plurality of host machines for an available host machine that satisfies the allocation request; Allocate an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machine; The allocated RDMA device matching the corresponding configuration parameter is configured to the corresponding execution device in the available host machine.
2. The method according to claim 1, characterized in that The step of searching, according to the allocation request, a plurality of host machines for an available host machine that satisfies the allocation request comprises: The scheduler searches, according to the allocation number in the allocation request, for an available host machine that can allocate the allocation number of RDMA devices from multiple host machines.
3. The method according to claim 1, characterized in that The allocating an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machine includes: Sending the allocation request to the configuration plug-in in the available host machine through the scheduler; Through the configuration plug-in and according to the queue parameters in the configuration parameters, the RDMA device management service is requested to create an RDMA device matching the queue parameters on an available host machine.
4. The method according to claim 1, characterized in that: After allocating the RDMA device matching the corresponding configuration parameters, the method further includes: Sending second information to the scheduler by configuring the plug-in, wherein the second information indicates allocating an RDMA device matching the corresponding configuration parameter on the available host; The RDMA devices that can be allocated to the available host machines are updated through the scheduler.
5. The method according to claim 1, characterized in that The step of configuring the allocated RDMA device matching the corresponding configuration parameters to the corresponding execution device in the available host machine includes: By configuring the plug-in, the allocated RDMA device matching the corresponding configuration parameters is configured in the corresponding container in the available host machine.
6. The method according to claim 5, characterized in that The method further comprises: Sending the allocation request to the configuration plug-in in the available host machine through the scheduler; Through the configuration plug-in, a container management service in the available host is requested to create a container, so as to configure the created RDMA device to the container.
7. The method according to claim 1, characterized in that The method further comprises: receiving a release request, and determining the corresponding available host machine according to the release request; The RDMA device configured in the execution device is moved out to the available host machine, and the moved RDMA device is released.
8. The method according to claim 7, characterized in that The receiving the release request and determining the corresponding available host machine according to the release request includes: The release request is received by a request receiving component, and the available host is determined according to the release request, so that the release request is sent to the configuration plug-in in the available host by the request receiving component.
9. The method according to claim 7, characterized in that: The step of moving the RDMA device configured in the execution device out to the available host machine and releasing the moved RDMA device includes: By configuring the plug-in, receiving the release request sent by the request receiving component; According to the release request, the RDMA device in the corresponding container is moved out to the available host machine by configuring the plug-in; By configuring the plug-in, the RDMA device management service is requested to release the RDMA device removed from the host machine.
10. The method according to any one of claims 1 to 9, characterized in that: The RDMA device includes an elastic RDMA device, and the elastic RDMA device refers to a dynamically adjustable RDMA virtual device.
11. A computing device, characterized in that: include: Memory, processor; The memory is used to store computer programs; The processor executes the computer program to: Receiving an allocation request through a request receiving component and sending the allocation request to a scheduler; requesting an RDMA device management service through a configuration plug-in, determining an RDMA device that can be allocated to a corresponding host machine among a plurality of host machines, and sending first information to the scheduler, wherein the first information indicates an RDMA device that can be allocated to a corresponding host machine among the plurality of host machines, so that the scheduler can record and search; Searching, by the scheduler and according to the allocation request, from a plurality of host machines for an available host machine that satisfies the allocation request; Allocate an RDMA device matching the corresponding configuration parameters according to the configuration parameters in the allocation request and the available host machine; The allocated RDMA device matching the corresponding configuration parameter is configured to the corresponding execution device in the available host machine.
12. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by one or more processors, the one or more processors are caused to implement the steps of the method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Resource allocation method and resource management platform
CN102958166A
RDMA parameter configuration method and device and storage medium
CN112532447A