Device allocation control device, device allocation control method and program
The device allocation control system optimally allocates hardware resources to containers based on performance requirements and topology, addressing resource constraints in edge computing environments.
Patent Information
- Application Number
- JP2024531775
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-07-04
- Publication Date
- 2025-10-01
- Estimated Expiration
- 2042-07-04
AI Technical Summary
Current methods for scheduling devices to containers fail to adequately allocate hardware resources to meet the performance requirements of applications, especially in resource-constrained environments such as edge computing.
A device allocation control system that determines optimal device allocation by considering application performance requirements, device configuration, topology, and usage status across multiple container orchestration platforms, using an optimization algorithm to minimize cost and ensure performance constraints are met.
Enables efficient allocation of devices to meet application performance needs, supporting flexible deployment in resource-poor environments and reducing equipment costs.
Smart Images

Figure 0007747212000001 
Figure 0007747212000002 
Figure 0007747212000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a device allocation control device, a device allocation control method, and a program. [Background technology]
[0002] On a container orchestration platform with Kubernetes (Non-Patent Document 1) as the de facto standard, it is possible to assign accelerators such as GPUs, FPGAs, smart NICs (e.g., RDMA-compatible NICs), and SoCs to containers in order to offload the processing of application logic within containers to hardware and speed it up.
[0003] The container control unit on the container orchestration platform has a meta-plugin function (Non-Patent Document 2) that enables the allocation of various devices (hardware resources) to containers. By linking this meta-plugin function with a dedicated device plug-in for each device, it becomes possible to register and manage devices.
[0004] When allocating a device to a container, as shown in Figure 1, a scheduler (Non-Patent Document 3) in the Master node receives the application deployment manifest from the user via the API server in the Master node. The scheduler determines the Worker node (physical server or virtual machine) to allocate the device to based on the device request amount in the deployment manifest. The container control unit in the Worker node selects an allocatable device, and the device is allocated to the container.
[0005] It should be noted that one node (Master node or Worker node) corresponds to one physical server or one logical server. [Prior art documents] [Non-patent literature]
[0006] [Non-Patent Document 1] "What is Kubernetes, Kubernetes", [online], Internet<URL:https: / / kubernetes.io / docs / concepts / overview / what-is-kubernetes / > [Non-patent document 2] "Device Plugins, Kubernetes", [online], Internet<URL:https: / / kubernetes.io / docs / concepts / extend-kubernetes / compute-storage-net / device-plugins / > [Non-patent document 3] "Kubernetes Scheduler, Kubernetes", [online], Internet<URL:https: / / kubernetes.io / docs / concepts / scheduling-eviction / kube-scheduler / > Summary of the Invention [Problem to be solved by the invention]
[0007] In the current method of scheduling devices to containers, worker nodes and devices (hardware resources) with sufficient allocatable resources are determined based on a simple device request from the user.
[0008] In the future, with the development of 5G, it is expected that applications will be deployed not only on the cloud, where hardware resources are abundant, but also on the edge. Therefore, the challenge will be to allocate appropriate devices (hardware resources) to containers that meet the performance requirements of the application.
[0009] The present invention has been made in view of the above points, and has an object to make it possible to allocate devices to containers so as to satisfy the performance requirements of applications. [Means for solving the problem]
[0010] In order to solve the above problem, the device allocation control device has: a required performance receiving unit configured to receive information indicating the required performance of an application; a device allocation determination unit configured to determine, based on information indicating the configuration and topology of devices in a plurality of container orchestration platforms, information estimating the performance of the application, and information indicating device usage statuses in the plurality of container orchestration platforms, a container orchestration platform on which a container that starts the application is to be deployed, a node on which the container is to be deployed, and an allocation amount of each device for each node, so as to minimize a cost calculated by an optimization algorithm from the allocation amount for each device, with the usage status and the required performance as constraints; and a device allocation instruction unit configured to instruct the container orchestration platform determined as the deployment destination by the device allocation determination unit to allocate the devices determined by the device allocation determination unit. [Effects of the Invention]
[0011] It is possible to allocate devices to containers so as to meet the performance requirements of the applications. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 10 is a diagram illustrating allocation of devices to containers. [Figure 2] 1 is a diagram illustrating an example of a functional configuration of a device allocation control system according to an embodiment of the present invention. [Figure 3] FIG. 1 is a diagram illustrating an example of the hardware configuration of a computer that functions as a heterogeneous computing design control unit 1 in an embodiment of the present invention. [Figure 4] FIG. 10 is a diagram illustrating an example of a processing procedure executed in the device allocation control system. DETAILED DESCRIPTION OF THE INVENTION
[0013] In this embodiment, optimal hardware resource design and control are performed by combining the required performance of each application with device configuration and topology configuration information. Also, by constructing a transport device control collaborator 17, when offloaded data spans multiple devices and also crosses physical or logical servers, collaboration with a transport control device manager 3 that manages a transport device resource pool 4 such as a router or switch is performed.
[0014] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 2 is a diagram showing an example of the functional configuration of a device allocation control system according to an embodiment of the present invention. In FIG. 2, each of a plurality of container orchestration platforms 2 can communicate with a heterogeneous computing design control unit 1. The heterogeneous computing design control unit 1 can communicate with a transport control device management unit 3. The transport control device management unit 3 can communicate with a transport device resource pool 4.
[0015] The container orchestration platform 2, the heterogeneous computing design control unit 1, and the transport control device management unit 3 may be realized using the same computer, or any one of these three may be realized using a different computer, or each of these three may be realized using a different computer.
[0016] The container orchestration platform 2 is a container orchestration platform such as Kubernetes. As shown in FIG. 1, the container orchestration platform 2 includes a Master node and a Worker node. The Master node includes an API server 21. The Worker node includes one or more containers. Each node is configured on a different physical server or logical server. When each node is configured on a logical server, each node may be configured on the same physical server.
[0017] The transport device resource pool 4 is a group of transport devices and information that consists of resources within the network that connect physical or logical servers that are candidates for container deployment (routers or switches in the forwarding system, optical transmission devices in the transmission system, and information managed by these devices (VLAN IDs, optical wavelengths, etc.)).
[0018] The transport control device management unit 3 manages resources (routers, switches, etc.) in the transport device resource pool 4 and performs control to provide a virtual private network between physical or logical servers when connecting devices across physical or logical servers.
[0019] The heterogeneous computing design control unit 1 includes a required performance reception unit 11, a device information acquisition unit 12, a performance estimation model acquisition unit 13, a device allocation determination unit 14, a device information monitoring unit 15, a device allocation instruction unit 16, and a transport device control cooperation unit 17. Each of these units may be realized using the same computer, or some or all of them may be realized using different computers.
[0020] The required performance receiving unit 11 receives an application required performance profile for one or more applications (hereinafter referred to as "target applications") that the user wants to run on a container, and transmits the application required performance profile to the device allocation determining unit 14. An application required performance profile is a profile in which required performance information for each of one or more applications is described. The required performance information includes, for example, internal processing delay time, throughput, and other performance indicators specific to the application. The internal processing delay time is an average delay or an allowable delay (tail delay, percentile delay), etc., and the indicator may differ depending on the application.
[0021] In response to a request from the device allocation determination unit 14, the device information acquisition unit 12 acquires information (hereinafter referred to as "device information") indicating the configuration and topology (connection relationship) of devices (hardware resources) deployed and managed in each container orchestration platform 2 from the device information storage unit 121, and transmits the acquired device information to the device allocation determination unit 14. The device information storage unit 121 stores device information. The device information includes, for example, the device type and identifier, the type and identifier of the physical or logical server on which the device is deployed, the internal topology configuration, the location of the physical or logical server, and physical or logical network connection information within or between locations.
[0022] In response to a request from the device allocation determination unit 14, the performance estimation model acquisition unit 13 acquires information indicating a model for estimating each performance indicator of an application (hereinafter referred to as "model information"), which is created for each application, from the performance estimation model repository 122, and transmits the acquired model information to the device allocation determination unit 14. The performance estimation model repository 122 stores the model information created for each application.
[0023] In response to a request from the device allocation determination unit 14, the device information monitoring unit 15 acquires information (hereinafter referred to as "device usage information") on the usage status of devices deployed and managed in each container orchestration platform 2 (hardware resources such as GPUs, FPGAs, smart NICs (e.g., RDMA-compatible NICs), and SoCs deployed and managed in each Worker node) from each container orchestration platform 2, and transmits the acquired device usage information to the device allocation determination unit 14. The device usage information is information that includes, for each device, information indicating whether the device has already been assigned to a specific container, the usage rate of the device, etc.
[0024] The device allocation determination unit 14 determines the container orchestration platform 2 on which each container (hereinafter referred to as an "application container") that launches each target application (hereinafter referred to as an "application container") is deployed, the physical or logical server (worker node) on which the application container is deployed, and the type of device, allocated device identifier, and number of devices to be allocated for each physical or logical server, based on information acquired from the required performance reception unit 11, the device information acquisition unit 12, the performance estimation model acquisition unit 13, and the device information monitoring unit 15. The device allocation determination unit 14 notifies the device allocation instruction unit 16 of the container orchestration platform 2 on which the application container is deployed, the physical or logical server (worker node) on which the application container is deployed, and the type of device, allocated device identifier, and number of devices to be allocated for each physical or logical server.
[0025] The logic for determining the allocation may be a grid search or an existing optimization algorithm. For example, the device allocation determination unit 14 uses device information and model information to derive estimates of each performance indicator of the application associated with the application container to be deployed for a large number of input patterns of allocation amounts for each device (e.g., CPU, memory, other devices, etc.) (i.e., a large number of patterns of device types, device identifiers, and device quantities allocated for each physical or logical server to which the application is deployed). For each derived performance estimate, the device allocation determination unit 14 uses the application required performance profile and device usage information as constraints, and the cost (equipment cost and power consumption) calculated by an optimization algorithm from the allocation amount for each device (e.g., CPU, memory, other devices, etc.) as an objective function. The device allocation determination unit 14 searches for an input pattern that minimizes the objective function while satisfying the constraints. Based on the optimization calculation results, multiple deployment destinations (destinations for device control instructions) are determined when the same application container is deployed across multiple locations (when there are multiple replicas of the container) or when multiple devices are assigned to a single application container.
[0026] The device allocation determination unit 14 also instructs the transport device control cooperation unit 17 to provide a virtual private network when it has determined that multiple devices are to be assigned to a single application container and that the multiple devices are to be connected across physical or logical servers (when the devices assigned to a single container are connected across multiple physical or logical servers). When instructing the transport device control cooperation unit 17, the device allocation determination unit 14 transmits device information for each of the connection source device and the connection destination device to the transport device control cooperation unit 17. In this embodiment, devices that can be assigned to a container are not limited to devices deployed on the worker node on which the container is started, but devices on other clusters and other worker nodes can also be assigned. Note that when the connection between the multiple devices does not span physical or logical servers, the device allocation determination unit 14 instructs the transport device control cooperation unit 17 not to provide a virtual private network.
[0027] Based on the notification from the device allocation determination unit 14, the device allocation instruction unit 16 instructs the API server 21 of each deployment destination container orchestration platform 2 to reserve and allocate the device type, device identifier, and device quantity within each target physical or logical server (worker node managed by the deployment destination container orchestration platform 2).When the same application container is deployed to multiple locations in a distributed manner (when there are multiple replicas of the container) or when multiple devices are assigned to a single application container, the device allocation instruction unit 16 instructs the API server 21 of each deployment destination container orchestration platform 2.
[0028] Based on an instruction from the device allocation determination unit 14 (device information on the source device and the destination device), the transport device control collaboration unit 17 instructs the transport control device management unit 3 to provide a virtual private network when connecting devices across physical or logical servers. At this time, the transport device control collaboration unit 17 also transmits device information on the source device and the destination device to the transport control device management unit 3. Based on the device information, the transport control device management unit 3 searches for a "route with the minimum delay" from among multiple candidate routes for virtual private networks connecting devices, and controls resources in the transport device resource pool 4 to generate a virtual private network on the corresponding route.
[0029] 3 is a diagram showing an example of the hardware configuration of a computer that functions as the heterogeneous computing design control unit 1 in an embodiment of the present invention. The computer 10 in FIG. 3 includes a drive device 100, an auxiliary storage device 102, a memory device 103, a processor 104, and an interface device 105, all of which are interconnected via a bus B.
[0030] A program that causes the computer 10 to function as the heterogeneous computing design control unit 1 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 storing the program is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100. However, the program does not necessarily have to be installed from the recording medium 101, but may be downloaded from another computer via a network. The auxiliary storage device 102 stores the installed program as well as necessary files, data, etc.
[0031] When an instruction to start a program is received, the memory device 103 reads the program from the auxiliary storage device 102 and stores it. The processor 104 is a CPU or a GPU (Graphics Processing Unit), or a CPU and a GPU, and executes functions related to the computer 10 in accordance with the program stored in the memory device 103. The interface device 105 is used as an interface for connecting to a network.
[0032] In addition, the container orchestration platform 2 and the transport control device management unit 3 may also be realized by processing executed by one or more programs installed on a computer similar to the computer 10 shown in Figure 3.
[0033] The following describes the processing procedure executed in the device allocation control system: Fig. 4 is a diagram for explaining an example of the processing procedure executed in the device allocation control system.
[0034] In step S101, the required performance receiving unit 11 receives an application required performance profile transmitted from a user (a terminal used by the user).
[0035] Next, the required performance receiving unit 11 transmits the application required performance profile to the device allocation determination unit 14. Upon receiving the application required performance profile, the device allocation determination unit 14 requests device information, model information, and device usage status information from the device information acquisition unit 12, the performance estimation model acquisition unit 13, and the device information monitoring unit 15, respectively.
[0036] In response to a request from the device allocation determination unit 14, the device information acquisition unit 12 acquires device information from the device information storage unit 121 (S103), and transmits the device information to the device allocation determination unit 14 (S104).
[0037] In response to a request from the device allocation determination unit 14, the performance estimation model acquisition unit 13 acquires model information for each application from the performance estimation model repository 122 (S105), and transmits the model information to the device allocation determination unit 14 (S106).
[0038] In response to a request from the device allocation determination unit 14, the device information monitoring unit 15 acquires device usage status information from each container orchestration platform 2 (S107) and transmits the acquired device usage status information to the device allocation determination unit 14 (S108). Note that the device information monitoring unit 15 may constantly (for example, periodically) acquire device usage status information from each container orchestration platform 2. In this case, in step S107, the device information monitoring unit 15 may transmit the device usage status information last acquired from each container orchestration platform 2 to the device allocation determination unit 14.
[0039] Next, the device allocation determination unit 14 determines the container orchestration platform 2 on which the application container will be deployed, the physical or logical server (Worker node) on which the application container will be deployed, and the allocated device type, allocated device identifier, and allocated device quantity for each physical or logical server on which the application container will be deployed, based on the application required performance profile, device information, model information, and device information (S109).
[0040] Next, the device allocation determination unit 14 notifies the device allocation instruction unit 16 of the container orchestration platform 2 on which the application container is to be deployed, the physical or logical server (worker node) on which the application container is to be deployed, and the device type, allocated device identifier, and allocated device quantity for each physical or logical server on which the application container is to be deployed (S110).The device allocation determination unit 14 also instructs the transport device control cooperation unit 17 to provide a virtual private network when connecting multiple devices across physical or logical servers (when devices allocated to a container span multiple physical or logical servers) (S111).
[0041] Based on the notification from the device allocation determination unit 14, the device allocation instruction unit 16 instructs the API server 21 of each deployment destination container orchestration platform 2 to reserve and allocate the device type, device identifier, and device quantity in each target physical or logical server (Worker node managed by the deployment destination container orchestration platform 2) (S112). Each deployment destination container orchestration platform 2 executes device allocation to the deployment destination container as instructed.
[0042] Based on an instruction from the device allocation determination unit 14 (device information on the source device and the destination device), the transport device control cooperation unit 17 instructs the transport control device management unit 3 to provide a virtual private network when connecting devices across physical or logical servers, and transmits the device information on the source device and the destination device to the transport control device management unit 3 (S113).
[0043] Next, the transport control device management unit 3 searches for a "route with minimum delay" among route candidates for a plurality of virtual private network connecting devices based on information from the transport device control cooperation unit 17, and controls resources in the transport device resource pool 4 to generate a virtual private network along the selected route (S114). As a result, the virtual private network is provided.
[0044] As described above, according to this embodiment, by utilizing device configuration, topology configuration information, etc., it is possible to allocate devices to containers so as to satisfy the performance requirements of the application (end-to-end performance requirements). Depending on the use case or application, data processing offloading may occur not only on a single device but across multiple devices. Therefore, the device configuration and topology configuration within a single physical or logical server when spanning devices, and the virtual network connection configuration between multiple physical or logical servers, will have a significant impact on performance.
[0045] To address this issue, this embodiment enables remote device allocation through on-demand transport collaboration, enabling flexible application deployment that is not limited to local devices within a specific domain (cluster or server). This allows rapid application deployment in resource-poor environments such as edge environments, reducing equipment costs.
[0046] The computer 10 functioning as the heterogeneous computing design control unit 1 is an example of a device allocation control device.
[0047] Although the embodiments of the present invention have been described in detail above, the present invention is not limited to such specific embodiments, and various modifications and variations are possible within the scope of the gist of the present invention as described in the claims. [Explanation of symbols]
[0048] 1 Heterogeneous Computing Design and Control 2. Container Orchestration Platform 3 Transport Control Device Management Unit 4 Transport Device Resource Pool 11. Performance requirements reception department 12 Device information acquisition unit 13 Performance estimation model acquisition unit 14 Device allocation decision unit 15 Device Information Monitoring Unit 16 Device allocation instruction section 17 Transport Equipment Control Linkage Section 100 Drive device 101 Recording media 102 Auxiliary storage device 103 Memory Device 104 processors 105 Interface Device 121 Device information storage unit 122 Performance Estimation Model Repository B Bus
Claims
1. a required performance receiving unit configured to receive information indicating required performance of an application; a device allocation determination unit configured to determine, based on information indicating the configuration and topology of devices in a plurality of container orchestration platforms, information estimating the performance of the application, and information indicating device usage status in the plurality of container orchestration platforms, a container orchestration platform on which a container that starts the application is to be deployed, a node on which the container is to be deployed, and an allocation amount for each device for each node, so as to minimize a cost calculated by an optimization algorithm from the allocation amount for each device, with the usage status and the required performance as constraints; a device allocation instruction unit configured to instruct the container orchestration platform determined as a deployment destination by the device allocation determination unit to allocate the device determined by the device allocation determination unit; A device allocation control device comprising:
2. a transport device control cooperation unit configured to perform control for providing a virtual private network connecting the nodes when the device allocation determination unit determines that a plurality of devices are to be allocated to a single container and that the plurality of devices are to be connected across the nodes; 2. The device allocation control device according to claim 1, further comprising:
3. a required performance reception procedure for receiving information indicating required performance of an application; a device allocation determination procedure for determining, based on information indicating the configuration and topology of devices in a plurality of container orchestration platforms, information estimating the performance of the application, and information indicating the usage status of devices in the plurality of container orchestration platforms, a container orchestration platform on which a container that launches the application is to be deployed, a node on which the container is to be deployed, and an allocation amount for each device for each node, so as to minimize a cost calculated by an optimization algorithm from the allocation amount for each device, with the usage status and the required performance as constraints; a device allocation instruction procedure for instructing the container orchestration platform determined as a deployment destination by the device allocation determination procedure to allocate the device determined by the device allocation determination procedure; A device allocation control method characterized by being executed by a computer.
4. a control procedure for performing control to provide a virtual private network connecting the nodes when the device allocation determination procedure determines that a plurality of devices are to be allocated to a single container and that the plurality of devices are to be connected across the nodes; 4. The device allocation control method according to claim 3, wherein the method is executed by a computer.
5. a required performance reception procedure for receiving information indicating required performance of an application; a device allocation determination procedure for determining, based on information indicating the configuration and topology of devices in a plurality of container orchestration platforms, information estimating the performance of the application, and information indicating the usage status of devices in the plurality of container orchestration platforms, a container orchestration platform on which a container that launches the application is to be deployed, a node on which the container is to be deployed, and an allocation amount for each device for each node, so as to minimize a cost calculated by an optimization algorithm from the allocation amount for each device, with the usage status and the required performance as constraints; a device allocation instruction procedure for instructing the container orchestration platform determined as a deployment destination by the device allocation determination procedure to allocate the device determined by the device allocation determination procedure; A program characterized by causing a computer to execute the above.
6. a control procedure for performing control to provide a virtual private network connecting the nodes when the device allocation determination procedure determines that a plurality of devices are to be allocated to a single container and that the plurality of devices are to be connected across the nodes; 6. The program according to claim 5, wherein the program is executed by a computer.
Citation Information
Patent Citations
Data driven bin packing implementation for data centers with variable node capabilities
US20180359338A1
Methods and apparatus to coordinate edge platforms
US20210014133A1