Resource scheduling method, related device and medium
By scheduling persistent storage and the processors used by container groups within the same non-consistent memory access architecture region in cloud computing systems, the problem of low data access efficiency caused by container groups accessing storage volumes in different regions is solved, and efficient data access by the processor is achieved.
Patent Information
- Application Number
- CN202210114098.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-30
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2042-01-30
AI Technical Summary
In cloud computing systems, when container groups access persistent storage volumes in regions with different non-consistent memory access architectures, it leads to a decrease in processor data access efficiency.
By obtaining the resource scheduling request of the container group, the persistent storage device information on the worker node is obtained, and based on the preset allocation conditions, the target persistent storage and the processor used by the container group are scheduled to be located in the same non-consistent memory access architecture region.
This reduces the latency of the processor accessing persistent memory and improves the processor's data access efficiency.
Smart Images

Figure CN114510321B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the field of chips, and in particular, to a resource scheduling method, related apparatus and medium. BACKGROUND
[0002] Cloud technology refers to a kind of hosting technology that unifies a series of resources such as hardware, software and network to realize data calculation, storage, processing and sharing in a wide area network or a local area network. A cloud computing system often uses containers to realize mutual isolation between various applications, and realizes a running environment and a running application program in the containers. A physical machine (PM) that deploys the containers can be divided into one or more Non Uniform Memory Access Architecture (NUMA) regions, and each NUMA region includes part or all resources of the physical machine, which can include processing cores, memories or network bandwidths, etc. When a container group requests a Persistent Volume, a CSI (a storage driver that supports creating and deleting storage volumes and mounting and unmounting storage volumes) can listen to the demand of the container group for the storage volume, create a Persistent Volume corresponding to the container group, and mount the Persistent Volume to the container group for use by the container group. Thus, the CSI may, in many cases, mount the Persistent Volume corresponding to the container group to the container group, where the Persistent Volume is different from a processor (i.e., a processor for use by the container group) corresponding to the container group and belongs to a NUMA region. The processor corresponding to the container group needs to access the Persistent Volume located in another NUMA region. Each processor in a NUMA region has different time delays in accessing memories at different locations, and thus, this increases the time delay of the processor in accessing the Persistent Volume and reduces the data access efficiency of the processor. SUMMARY
[0003] In view of this, one object of the present disclosure is to reduce the time delay of a processor in accessing a Persistent Volume of a container group, thereby improving the data access efficiency of the processor.
[0004] In a first aspect, an embodiment of the present disclosure provides a resource scheduling method, comprising:
[0005] obtaining a resource scheduling request for a container group, the resource scheduling request including a target storage space size of a Persistent Volume requested by the container group;
[0006] obtaining device information of at least one Persistent Volume on a worker node that deploys the container group, the Persistent Volume including a plurality of Persistent storage devices;
[0007] determine allocation information of a target persistent storage for the container group in the worker node based on the preset allocation condition and the target storage size, the target persistent storage being located in a same non-uniform memory access architecture region as a processor used by the container group;
[0008] store the allocation information into configuration information of the container group, so that the worker node obtains the allocation information from the configuration information and schedules the target persistent storage to the container group based on the allocation information.
[0009] Optionally, the device information of the at least one persistent storage includes device names, device identifiers and non-uniform memory access architecture region identifiers to which the persistent storage devices belong, and before the obtaining the device information of the at least one persistent storage on the worker node on which the container group is deployed, the resource scheduling method further includes:
[0010] dividing the at least one persistent storage into a plurality of persistent storage devices respectively, each of the persistent storage devices having a certain storage size;
[0011] After the obtaining the device information of the at least one persistent storage on the worker node on which the container group is deployed, the resource scheduling method further includes:
[0012] registering the device information of the at least one persistent storage to a control node.
[0013] Optionally, the preset allocation condition includes:
[0014] the idle storage size of the target persistent storage is not less than the target storage size;
[0015] the target persistent storage has a same non-uniform memory access architecture region identifier as a processor used by the container group.
[0016] Optionally, the storage sizes of the plurality of persistent storage devices are equal, and the determining the allocation information of the target persistent storage for the container group in the worker node based on the preset allocation condition and the target storage size includes:
[0017] determining a target number of requested persistent storage devices according to the target storage size and the storage size of the persistent storage device;
[0018] obtaining first persistent storage devices of the target number and having a same non-uniform memory access architecture region identifier as a processor used by the container group;
[0019] Based on a one-to-one correspondence between the device identification of the persistent storage device and the persistent memory, when the target number of the first persistent storage devices are located in the same persistent memory, the persistent memory is taken as the target persistent memory.
[0020] Optionally, after storing the allocation information into the configuration information of the container group, the resource scheduling method further comprises:
[0021] In the case that the container group is destroyed, the configuration information of the container group is emptied.
[0022] In a second aspect, the embodiments of the present disclosure provide a resource scheduling device, comprising:
[0023] A scheduling request acquisition unit is configured to acquire a resource scheduling request for a container group, wherein the resource scheduling request comprises a target storage space size of a persistent memory requested by the container group.
[0024] A device information acquisition unit is configured to acquire device information of at least one persistent memory on a worker node where the container group is deployed, wherein the persistent memory comprises a plurality of persistent storage devices.
[0025] An allocation information determination unit is configured to determine allocation information of a target persistent memory for the container group in the worker node based on a preset allocation condition and the target storage space size, wherein the target persistent memory and a processor used by the container group are located in the same non-uniform memory access architecture region.
[0026] An allocation information storage unit is configured to store the allocation information into configuration information of the container group, so that the worker node acquires the allocation information from the configuration information and schedules the target persistent memory to the container group based on the allocation information.
[0027] In a third aspect, the embodiments of the present disclosure provide a persistent memory device plug-in, comprising:
[0028] A listening unit is configured to acquire a resource scheduling request for a container group, wherein the resource scheduling request comprises a target storage space size of a persistent memory requested by the container group.
[0029] A device detection unit is configured to acquire device information of at least one persistent memory on a worker node where the container group is deployed, wherein the persistent memory comprises a plurality of persistent storage devices.
[0030] The device specifying unit is configured to determine allocation information of a target persistent storage to be allocated to the container group in the worker node based on a preset allocation condition and the target storage space size, the target persistent storage being located in a same non-uniform memory access architecture region as a processor used by the container group.
[0031] The device specifying unit is further configured to store the allocation information into configuration information of the container group, so that the worker node obtains the allocation information from the configuration information and schedules the target persistent storage to the container group based on the allocation information.
[0032] In a fourth aspect, an embodiment of the present disclosure provides a computing device, comprising:
[0033] a processor;
[0034] a persistent storage;
[0035] The persistent storage device plug-in is configured to schedule a target persistent storage to a container group, the target persistent storage being located in a same non-uniform memory access architecture region as a processor used by the container group.
[0036] In a fifth aspect, an embodiment of the present disclosure provides a system on chip, comprising:
[0037] a processor;
[0038] a persistent storage;
[0039] The persistent storage device plug-in is configured to schedule a target persistent storage to a container group, the target persistent storage being located in a same non-uniform memory access architecture region as a processor used by the container group.
[0040] In a sixth aspect, an embodiment of the present disclosure provides a computing device, comprising:
[0041] a memory configured to store computer executable code;
[0042] a processor configured to execute the computer executable code, so that the processor performs the resource scheduling method described in any one of the preceding embodiments.
[0043] In a seventh aspect, an embodiment of the present disclosure provides a computer storage medium having computer executable code stored thereon, the computer executable code being executed by a processor to implement the resource scheduling method described in any one of the preceding embodiments.
[0044] In the embodiments of the present disclosure, each persistent memory on the work node where the container group is deployed includes a plurality of persistent storage devices, which is equivalent to logically virtualizing each persistent memory into a plurality of persistent storage devices. Thus, based on the preset allocation condition and the target storage space size of the persistent memory requested by the container group, the allocation information of the target persistent memory allocated to the container group in the work node can be determined, the allocation information is stored in the configuration information of the container group, so that the work node can obtain the allocation information from the configuration information, and the target persistent memory is scheduled to the container group based on the allocation information. In this way, the mechanism that the container orchestration management tool can manage device resources is ingeniously used, so that the container group applies for a persistent storage volume becomes to apply for a persistent storage device, and the target persistent memory belonging to the same non-uniform memory access architecture region as the processor for the container group is allocated to the container group for use. In this way, the processor for the container group can access the persistent memory belonging to the same non-uniform memory access architecture region, which reduces the time delay of the processor accessing the persistent memory and improves the data access efficiency of the processor. BRIEF DESCRIPTION OF DRAWINGS
[0045] The above and other objects, features and advantages of the present disclosure will become more apparent from the following description of the embodiments of the present disclosure, taken in conjunction with the accompanying drawings, in which:
[0046] Figure 1 is a structural diagram of a data center to which an embodiment of the present disclosure is applied;
[0047] Figure 2 is a structural diagram of a data center to which an embodiment of the present disclosure is applied;
[0048] Figure 3 is an internal structural diagram of a computing device according to an embodiment of the present disclosure;
[0049] Figure 4 is a flowchart of a resource scheduling method according to an embodiment of the present disclosure;
[0050] Figure 5 is an interaction diagram of a work node and a control node according to an embodiment of the present disclosure;
[0051] Figure 6 shows a structural diagram of a resource scheduling apparatus according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0052] The present disclosure is described below based on examples, but the present disclosure is not limited to only these examples. In the following detailed description of the present disclosure, some specific details are described in detail. The present disclosure can also be fully understood without the description of these details by those skilled in the art. In order to avoid confusion of the essence of the present disclosure, the well-known methods, processes, and procedures are not described in detail. In addition, the drawings are not necessarily drawn to scale.
[0053] The following terms are used herein.
[0054] Computing device: a device with computing or processing capability, which can be embodied in the form of a terminal such as an Internet of Things device, a mobile terminal, a desktop computer, a laptop computer, etc., or a server or a cluster of servers. In the environment of a data center to which the present disclosure is applied, the computing device is a server in the data center.
[0055] Processor: the operation core and control core of a computing device, whose main functions are to execute computer instructions and process data in computer software.
[0056] Memory: a physical structure in a computer device for storing information. According to different purposes, memory can be divided into main memory (also known as internal memory, or simply referred to as memory / main memory) and auxiliary memory (also known as external memory, or simply referred to as auxiliary storage / external storage). The main memory is used to store instruction information and / or data information represented by data signals, for example, to store data provided by the processor, and can also be used to realize the exchange of information between the processor and the external storage. The information provided by the external storage needs to be called into the main memory before it can be accessed by the processor, so the memory referred to herein generally refers to the main memory, and the storage device referred to herein generally refers to the external storage.
[0057] Persistent Memory (PMEM): a new type of non-volatile memory (NVM), which is a composite memory combining traditional storage devices (such as mechanical hard disks, solid state disks, etc.) and memory (such as dynamic random access memory). The persistent memory can be embedded in the slot of the host board like dynamic random access memory. Compared with dynamic random access memory, the persistent memory has the characteristic of data retention after power failure. The persistent memory has super large capacity and can provide faster read and write speed than flash memory, and is cheaper than dynamic random access memory. At present, the persistent memory supports the following usage modes: 1. Memory mode, in this mode, the persistent memory is used as a volatile storage medium, the normal memory is used as the cache of the persistent memory, and the persistent memory is operated by the firmware on the memory controller, which is transparent to the user and the operating system. 2. Storage mode, in this mode, the persistent memory is used as a non-volatile storage medium, and the persistent memory is used as a block device, which is equivalent to a high-speed SSD, and the access exists page cache, which is transparent to the user and has demand for the operating system (needs to be supported by the driver). 3. AD (app direct) mode, in this mode, the persistent memory is used as a volatile medium and used as a block device, but the access does not pass through the page cache.
[0058] Container: As a lightweight virtualization technology, it is a set of processes that are limited in resources and isolated from each other. Container technology creates an independent running environment for different applications, realizes resource isolation, configuration and security protection, and can meet the resource demand of application on-demand allocation and guarantee the isolation and availability of the application. The application carried in the container is called container instance, or also called containerized application. In order to meet the needs of large-scale applications, many containers are often deployed in computer clusters for unified management and external service in practice, so container orchestration management tools are needed. Container orchestration tools use container services and orchestrate them to decide how to interact between containers, extend the life cycle management capability to complex, multi-container workloads deployed on a large number of computer clusters, and provide an abstraction layer for developers and infrastructure teams to handle large-scale containerized deployment. Container orchestration tools, such as K8s (full name is Kubernetes, a system that runs and coordinates containerized applications), are open source systems for automatically deploying, scaling and managing containerized applications. Docker is an open source application container engine, which is a tool for starting and stopping containers, allowing developers to package their applications and dependent packages into a portable container, and then publishing them to any popular machine. It can also achieve virtualization. Containers are completely using sandbox mechanism and will not have any interface with each other.
[0059] Pod: It is the basic operation unit of container orchestration tools (for example, K8s) and the smallest deployable, debuggable and manageable unit. All containers in the same pod share the same IP address, IPC, host name and other resources. The pod abstracts the network and storage from the underlying containers, so it can be more easily moved in the cluster. One or more containers for carrying applications can be encapsulated in each pod. The containers of the pod are scheduled and run as a whole on a worker node.
[0060] Volume: It is a logical abstraction of the place where the data in the container needs to be persisted, which can be extended to different storage media through plugins, such as cloud disks, NAS, etc., and can be shared between multiple containers in the same pod.
[0061] Environment of application of the present disclosure
[0062] Embodiments of the present disclosure propose a resource scheduling scheme. The entire resource scheduling scheme is relatively general, and can be used for various hardware devices deployed with persistent storage and container orchestration management using a container orchestration tool, for example, for data centers, for AI (artificial intelligence) acceleration units, for GPUs (graphics processing units), for IOT (Internet of Things) devices capable of executing deep learning models, embedded devices, etc. The resource scheduling scheme is independent of the hardware in which the computing device executing the scheme is finally deployed. However, for illustrative description, the following will mainly be described in the application scenario of a data center. Those skilled in the art should understand that the embodiments of the present disclosure can also be applicable to other application scenarios.
[0063] Data center
[0064] A data center is a specific network of devices for global collaboration, used to deliver, accelerate, display, compute, and store data information on the Internet network infrastructure. In future development, the data center will also become an asset for enterprise competition. With the wide application of data centers, artificial intelligence and other technologies are increasingly applied to data centers. As an important technology of artificial intelligence, neural networks have been widely applied to data center big data analysis and operation.
[0065] In a traditional large data center, the network structure is usually as shown in Figure 1 , that is, a hierarchical inter-networking model. This model includes the following parts:
[0066] Servers 140: Each server 140 is a processing and storage entity of the data center, and the processing and storage of a large amount of data in the data center are completed by these servers 140. In some embodiments, in the data center, one or more virtual machines can be constructed on the servers 140 using virtualization technology, and multiple virtual machines share the physical resources of the same physical host, such as processors, memories, disks, and network devices, etc. Thus, the physical resources of a physical host can be shared by multiple tenants in the granularity of virtual machines, so that multiple tenants can conveniently and flexibly use the physical resources under the premise of security isolation, greatly improving the utilization rate of physical resources.
[0067] In some embodiments, the data center can be applied in various application scenarios such as a content delivery network (CDN), e-commerce, games, audio and video, Internet of Things, logistics, industrial brain, city brain, etc., and provide computing services for terminal users in various scenarios. Specifically, for each application scenario, an application program that can provide computing services in the application scenario can be deployed in the servers of the data center. Considering that a large number of applications may need to be deployed in the data center, a container technology can be used to construct one or more containers on the server 140, carry the application program through the container, and then deploy the application program in units of containers, and by running the container instances deployed on the server 140, the corresponding computing services can be provided for terminal users. In some embodiments, a persistent memory (not shown in the figure) can be deployed on the server 140. The persistent memory on the server 140 can work in an AD (app direct, application direct) mode, in which mode, a plurality of servers 140 with the persistent memory as the memory can be connected to form a memory resource pool (also referred to as a memory database, such as Tair) through interconnection. As an example, containers carrying the memory database application program can be deployed on the server 140, and by running the container instances deployed on the server 140, the corresponding computing of viewing, deleting, modifying, adding, etc. of data in the persistent memory can be provided for terminal users. In some embodiments, the server 140 can be divided into one or more non-uniform memory access architecture regions, and each non-uniform memory access architecture region includes part or all resources of a physical machine, which can include processing cores, memories, persistent memories, network bandwidths, etc.
[0068] Access switches 130: Access switches 130 are switches used to let servers 140 access the data center. One access switch 130 accesses multiple servers 140. Access switches 130 are usually located at the top of racks, so they are also called Top of Rack switches, and they are physically connected to servers.
[0069] Aggregation switches 120: Each aggregation switch 120 connects multiple access switches 130, and at the same time provides other services such as firewall, intrusion detection, network analysis, etc.
[0070] Core switches 110: Core switches 110 provide high-speed forwarding for packets in and out of the data center, and provide connectivity for aggregation switches 120. The network of the entire data center is divided into an L3 layer routing network and an L2 layer routing network, and the core switches 110 usually provide a resilient L3 layer routing network for the entire network of the data center.
[0071] Generally, the aggregation switches 120 are the boundary of L2 and L3 layer routing network, below the aggregation switches 120 is L2 network, above is L3 network. Each group of aggregation switches manages a delivery point (POD, Point Of Delivery), and each POD is an independent VLAN network. The server migration within a POD does not need to modify IP address and default gateway, because one POD corresponds to one L2 broadcast domain.
[0072] Generally, the spanning tree protocol (STP) is used between the aggregation switches 120 and the access switches 130. The STP makes only one aggregation layer switch 120 available for a VLAN network, and other aggregation switches 120 are used only when a failure occurs (dashed line in the figure). That is, at the level of the aggregation switches 120, horizontal expansion cannot be achieved, because even if multiple aggregation switches 120 are added, only one is in operation.
[0073] Figure 2 is a structure diagram of a data center to which an embodiment of the present disclosure is applied. As shown in Figure 2 for convenience of description, Figure 2 only the control node 210 and the worker node 220 are shown. In implementation, the control node 210 or the worker node 220 can be a server 140, or a virtual machine on the server 140. It should be understood that although Figure 2 only a limited number of worker nodes 220 are shown in
[0074] In some embodiments, multiple container groups can run on worker node 220. Control node 210 can run container orchestration tools (e.g., Kubernetes) to orchestrate and manage container instances within its data center. This orchestration and management includes at least one of the following: container instance creation, elastic scaling, rolling updates, rebuilding, migration, and shutdown. In some embodiments, in addition to container orchestration and management functions, control node 210 can also be responsible for other management operations within its data center, such as monitoring and management of operations, logs, and network status. Commands can be sent from control node 210 to each worker node 220. Simply put, control node 210 is the manager, and worker nodes 220 are the managed. The background services running on control node 210 typically include an Application Programming Interface server (API server) 211 and a scheduler 212. Application Programming Interface (API) server 211 serves as the front-end interface for container orchestration tools (e.g., Kubernetes). Various client tools and other components of container orchestration tools (e.g., Kubernetes) can manage various resources of the data center cluster through API server 211. Scheduler 212 can determine which worker node to place the container group on and the resources to allocate to the container group.
[0075] In some embodiments, such as Figure 2 As shown, the client can send a resource scheduling request (e.g., a processor scheduling request or a persistent memory scheduling request) for the container group to the control node 210. In some embodiments, the application interface server 211 can receive the processor scheduling request, and the scheduler 212 can schedule the container group to run on the worker node 220 based on the processor scheduling request received by the application interface server 211, and allocate the processor on the target worker node 220 for use by the container group. It should be noted that the scheduler 212 can also allocate the processing cores on the worker node 220 for use by the container group on a per-core basis. In some embodiments, the application interface server 211 can receive a persistent memory scheduling request, and the scheduler 212 can allocate the target persistent memory belonging to the same non-consistent memory access architecture region as the processor used by the container group according to the persistent memory scheduling request received by the application interface server 211 and the allocation information of the target persistent memory. In this way, the processor used by the container group can access persistent memory belonging to the same non-consistent memory access architecture region, which reduces the latency of processor access to persistent memory and improves the data access efficiency of the processor. Since the specific process of scheduling target persistent storage to a container group will be described in detail below, it will not be repeated here.
[0076] Computing device
[0077] Since the server 140 is the real processing device of the data center, Figure 3 An internal structure diagram of the server 140 (the computing device 141 or the system on chip 142 or the worker node 220) of one embodiment of the present disclosure is shown. In some embodiments, by using virtualization technology, one or more virtual machines can be constructed in the computing device 141, and in this case, the virtual machine can be the worker node 220 of the data center. The computing device 141 can include a plurality of processors 32. As an example, as shown, the computing device 141 can include a processor 0, a processor 1, a processor 2, and a processor 3, but it should be understood that the number of processors 32 should not be limited thereto. Figure 3
[0078] As shown, the computing device 141 can also include a memory 33. The memory 33 in the computing device 141 can be a main memory (referred to as main memory or memory for short) for storing instruction information and / or data information represented by a data signal, such as storing data provided by the processor 32 (e.g., as an operation result), and can also be used to realize data exchange between the processor 32 and an external storage device 37 (or referred to as auxiliary storage or external memory). It should be noted that the memory 33 is, for example, a dynamic random access memory (DRAM). Figure 3
[0079] In some cases, the processor 32 can need to access the memory 33 to obtain data in the memory 33 or modify data in the memory 33. Since the access speed of the memory 33 is slow, in order to alleviate the speed gap between the processor 32 and the memory 33, the computing device 141 further includes a cache memory 38 coupled with the bus 31, and the cache memory 38 is used to cache some program data or message data in the memory 33 that can be repeatedly called. The cache memory 38 is implemented by a storage device such as a static random memory (SRAM) for example. The cache memory 38 can be a multi-level structure, such as a three-level cache structure with a first-level cache (L1 Cache), a second-level cache (L2 Cache), and a third-level cache (L3 Cache), or a cache structure of more than three levels or other types of cache structures. In some embodiments, a part of the cache memory 38 (such as the first-level cache, or the first-level cache and the second-level cache) can be integrated inside the processor 32 or integrated in the same system on chip as the processor 32.
[0080] The information exchange between the memory 33 and the cache 38 is usually organized in blocks. In some embodiments, the cache 38 and the memory 33 can be divided into data blocks in the same spatial size, which can be the minimum unit of data exchange between the cache 38 and the memory 33 (including one or more data of a preset length). For the sake of brevity and clarity, each data block in the cache 38 is referred to as a cache block (which can be referred to as a cacheline or cache line) below, and different cache blocks have different cache block addresses; each data block in the memory 33 is referred to as a memory block, and different memory blocks have different memory block addresses. The cache block address includes, for example, a physical address tag for locating the data block.
[0081] Due to the limitation of space and resources, the cache 38 cannot cache all the contents in the memory 33, i.e., the storage capacity of the cache 38 is usually smaller than that of the memory 33, and each cache block address provided by the cache 38 cannot correspond to all the memory block addresses provided by the memory 33. When the processor 32 needs to access the memory, it first accesses the cache 38 via the bus 31 to determine whether the content to be accessed has been stored in the cache 38. If so, the cache 38 hits, and the processor 32 directly calls the content to be accessed from the cache 38. If the content to be accessed by the processor 32 is not in the cache 38, the processor 32 needs to access the memory 33 via the bus 31 to find the corresponding information in the memory 33. Because the access rate of the cache 38 is very fast, the efficiency of the processor 32 can be significantly improved when the cache 38 hits, and thus the performance and efficiency of the entire computing device 141 are improved.
[0082] As shown in the figure, the processor 32, the cache 38, and the memory 33 are packaged in a system on chip (SoC) 301. Designers can configure the SoC architecture so that the communication between the elements in the computing device 141 is secure.
[0083] In some embodiments, as Figure 3As shown, the computing device 141 can also include a persistent memory 35. In some embodiments, the persistent memory 35 can work in an AD (app direct) mode, in which multiple computing devices 141 with persistent memory as memory can be connected to form a memory resource pool (i.e., a memory database, such as Tair) through interconnection. The persistent memory 35 is, for example, an AEP (Apache Pass), Optane (a kind of super-speed memory), etc. In some embodiments, according to a non-uniform memory access architecture (i.e., a multi-processor computer architecture), the computing device 141 can be divided into one or more non-uniform memory access architecture regions 36, in which each processor 32 is equipped with a memory 33 and a persistent memory 35. In addition to accessing the memory 33 and the persistent memory 35 equipped by itself, each processor 32 can also access the memories 33 and the persistent memories 35 of other processors. In some embodiments, when the computing device 141 starts, the memory 33 and the persistent memory 35 closest to the processor 32 are set as local memory (i.e., the memory 33 and the persistent memory 35 equipped for the processor 32 in the non-uniform memory access architecture region 36), and the memories 33 and the persistent memories 35 farther away from the processor 32 are set as remote memory. Since the local memory is closer to the processor 32 and has a faster access speed, the local memory can be set as the memory to be accessed preferentially, so as to improve the data access efficiency of the processor. As an example, Figure 3 The non-uniform memory access architecture region 0, the non-uniform memory access architecture region 1, the non-uniform memory access architecture region 2, and the non-uniform memory access architecture region 3 are shown in FIG. 2. Taking the non-uniform memory access architecture region 2 as an example, the processor 2 is equipped with the memory 2 and the persistent memory 2. In addition to accessing the memory 2 and the persistent memory 2 equipped by itself, the processor 2 can also access the memory 0, the memory 1, and the memory 3, and the persistent memory 0, the persistent memory 1, and the persistent memory 3. The processor 2 preferentially accesses the memory 2 and the persistent memory 2.
[0084] In this example, the computing device 141 can also include various software. In some embodiments, as shown in FIG. 3, the computing device 141 can include an operating system 31, a database management system 32, and an application program 33. The operating system 31 can be, for example, a Linux operating system, a Windows operating system, etc. The database management system 32 can be, for example, a MySQL database management system, a Redis database management system, etc. The application program 33 can be, for example, a web server, a file server, etc. Figure 3As shown, on top of the underlying hardware (i.e., the system on chip 301) is set an operating system 306, a container support 307, and a container group 303. The operating system 306 is, for example, a UNIX operating system, a Linux operating system, or the like, which is a commonly used operating system on servers. The container support 307 is various underlying implementations needed to support the containers running thereon. For example, for docker, the container support 307 needs to implement two technologies of cgroup (short for control groups) and namespace, the cgroup implements resource quota, and the namespace implements resource isolation. Docker lets developers package their application and its dependencies into a portable container that can be run on any computing device 141. As Figure 3 As shown, based on the container support 307, multiple container groups 303 can be run, and within each container of the container group 303, a runtime environment and a running application program are implemented, and isolation and non-interference between the various application programs are achieved through the container technology. The application programs can include, but are not limited to, programs for controlling or responding to external devices (e.g., biometric sensors, printers, microphones, speakers, flow valves, or other I / O components, sensors, actuators, or devices), programs for various I / O tasks, security programs, authentication programs, various computing modules, communication programs, communication support protocols, or other programs, or combinations thereof. As one example, the application program can be an application program for controlling or responding to an in-memory database (i.e., the persistent memory 35).
[0085] In some embodiments, as Figure 3As shown, a persistent memory device plugin 302 and a kubelet 304 for container orchestration tools (e.g., Kubernetes) on the computing device 141 are also provided above the underlying hardware (i.e., system-on-a-chip 301). In implementation, the persistent memory device plugin 302 and the kubelet 304 can be software program modules or hardware, such as those based on FPGAs or CPLDs. In some embodiments, the persistent memory device plugin 302 is used to schedule target persistent memory located in the same non-uniform memory access architecture region as the processor used by the container group to the container group. This reduces the latency of the processor accessing the persistent memory of the container group, thereby improving the processor's data access efficiency. The specific process of scheduling target persistent memory to the container group will be detailed below and will not be repeated here. In some embodiments, the kubelet 304 can receive and execute instructions from the control node 210 to manage the container group and the containers within it. Service agent 304 can register information about the computing device 141 on the application interface server 211 of control node 210, periodically report the resource usage of the computing device 141 to control node 210, and monitor the resources of computing device 141 and containers. In some embodiments, such as Figure 3 As shown, a garbage collection (GC) module 305 can also be set on top of the underlying hardware (i.e., system-on-chip 301). In implementation, the garbage collection (GC) module 305 can be a software program module or hardware, such as based on an FPGA or CPLD. In some embodiments, the garbage collection (GC) module 305 can establish a garbage collection process for each container and clear the configuration information of the container group when the container group is destroyed.
[0086] Further, the computing device 141 can also include hardware devices such as a storage device 37, a display device (not shown), an audio device (not shown), an input / output device (not shown), and the like. The storage device 37 is, for example, a solid state drive (SSD), a hard disk drive (HDD), an optical disk, a universal serial bus flash disk (U) disk, and the like for information access, coupled with the bus 31 through a corresponding interface. The input / output device can be, for example, an input / output device of text, audio, and video. The display device is, for example, coupled with the bus 31 through a corresponding display card, for display according to the display signal provided by the bus 31. The computing device 141 usually also includes a communication device (not shown), so it can communicate with a network or other devices in various ways. The communication device can include one or more communication modules, for example. The communication device can include a wireless communication module suitable for a specific wireless communication protocol, for example. The communication device can include a WLAN module for implementing Wi-Fi™ communication conforming to the 802.11 standard formulated by the Institute of Electrical and Electronics Engineers (IEEE), for example. The communication device can also include a WWAN module for implementing wireless wide area communication conforming to a cellular or other wireless wide area protocol, for example. The communication device can also include a Bluetooth module and the like for communication modules using other protocols, or other custom types of communication modules, for example. The communication device can also be a port for serial transmission of data.
[0087] Of course, different computer systems can vary in structure according to differences in motherboard, operating system, and instruction set architecture.
[0088] Resource scheduling method according to embodiments of the present disclosure
[0089] According to one embodiment of the present disclosure, a resource scheduling method is provided. The method can be executed by the persistent memory device plugin 302. In the case of the computing device 141 being a single computer, the persistent memory device plugin 302 is part of the single computer, and the resource scheduling method is executed by the part of the single computer. In the case of the computing device 141 being a collection of multiple computers, the persistent memory device plugin 302 is a single computer, and the resource scheduling method is executed by the single computer. In the case of the computing device 141 being in the form of a cloud, the persistent memory device plugin 302 is part of a series of computers or computers in the cloud, and the resource scheduling method is executed by the part of the series of computers or computers in the cloud.
[0090] As Figure 4As shown, the resource scheduling method according to one embodiment of the present disclosure includes: step S410, obtaining a resource scheduling request for a container group, the resource scheduling request including a target storage space size of persistent storage requested by the container group; step S420, obtaining device information of at least one persistent storage on a worker node deploying the container group, the persistent storage including a plurality of persistent storage devices; step S430, determining allocation information of target persistent storage allocated to the container group in the worker node based on a preset allocation condition and the target storage space size, the target persistent storage being located in a same non-coherent memory access architecture region as a processor used by the container group; and step S440, storing the allocation information into configuration information of the container group, so that the worker node obtains the allocation information from the configuration information and schedules the target persistent storage to the container group based on the allocation information.
[0091] The above steps are described in detail below.
[0092] In step S410, a resource scheduling request for a container group is obtained, the resource scheduling request including a target storage space size of persistent storage requested by the container group.
[0093] In some embodiments, a plurality of container groups run on a worker node (also referred to as a computing device), and a running environment and a running application program are implemented in each container of the container group, and isolation and mutual non-influence between the application programs are achieved through container technology. As an example, the application program running in the container can be an application program for controlling or responding to an in-memory database (i.e., persistent storage). In some embodiments, by running these container instances deployed on the worker node, the client can be provided with corresponding calculations for viewing, deleting, modifying, adding, etc. of data in the persistent storage. Therefore, the client can send a resource scheduling request for a container group, such as a persistent storage scheduling request, to the control node. The application program interface server of the control node can send the resource scheduling request to the service agent of the worker node, and the service agent can send the resource scheduling request to the persistent storage device plugin of the worker node, so that the persistent storage device plugin can obtain the target storage space size of the persistent storage requested by the container group.
[0094] In step S420, device information of at least one persistent storage on a worker node deploying the container group is obtained, the persistent storage including a plurality of persistent storage devices.
[0095] In some embodiments, when the persistent memory device plugin on the worker node is started, it can be determined whether the persistent memory is set on the worker node. If not, the worker node can be reported to the control node as not supporting the persistent memory (e.g., a message can be reported to the application interface server of the control node through the service agent that the worker node does not support the persistent memory). If yes, the number of persistent memories on the worker node can be read, as well as the storage space size of each persistent memory and the non-uniform memory access architecture region to which it belongs. Then, the persistent memory device plugin can logically divide at least one persistent memory on the worker node into a plurality of persistent storage devices, and can assign a device identifier (ID) to each persistent storage device, each persistent storage device having a certain storage space size. In some embodiments, the at least one persistent memory is logically divided into a plurality of persistent storage devices with equal storage space size. The device information of the persistent memory can include the device name of the persistent storage device (i.e., it can be the device identifier of the persistent memory to which the persistent storage device corresponds), the device identifier, and the non-uniform memory access architecture region identifier to which it belongs. In some embodiments, the persistent memory device plugin can also store a one-to-one correspondence between the device identifier of the persistent storage device and the persistent memory. The non-uniform memory access architecture region identifier to which the persistent storage device belongs is the non-uniform memory access architecture region identifier to which the persistent memory corresponding to the persistent storage device belongs. For example, taking persistent memory 0 and persistent memory 1 as an example, persistent memory 0 is located in non-uniform memory access architecture region 0, and persistent memory 1 is located in non-uniform memory access architecture region 1. The storage space size of persistent memory 0 and persistent memory 1 is 100G. The persistent memory 0 and the persistent memory 1 can be logically divided into 200 persistent storage devices, each persistent storage device having a storage space size of 1G. The 200 persistent storage devices have unique device identifiers (IDs), of which 100 persistent storage devices belong to persistent memory 0, and the other 100 persistent storage devices belong to persistent memory 1. The device information of persistent memory 0 and persistent memory 2 can be represented as:
[0096]
[0097] In some embodiments, after obtaining the device information of at least one persistent memory on the worker node of the deployed container group, the persistent memory device plugin on the worker node can also register the device information of the at least one persistent memory to the control node (e.g., register the device information of the at least one persistent memory to the application interface server of the control node through the service agent).
[0098] In step S430, based on the preset allocation condition and the target storage space size, allocation information of a target persistent storage in the worker node for the container group is determined, and the target persistent storage is located in the same non-uniform memory access architecture region as the processor used by the container group.
[0099] In some embodiments, the preset allocation condition can include that the idle storage space size of the target persistent storage is not less than the target storage space size, and the target persistent storage has the same non-uniform memory access architecture region identifier as the processor used by the container group. Based on the preset allocation condition and the target storage space size, the persistent storage device plugin can determine the target persistent storage and the allocation information of the target persistent storage. The allocation information can include relevant information of the target persistent storage allocated to the container group, such as the storage directory of the target persistent storage and the storage directory of the container group. In some embodiments, the persistent storage device plugin can determine the target number of requested persistent storage devices according to the target storage space size and the storage space size of the persistent storage device. For example, the target storage space size is 20G, and the storage space size of each persistent storage device is 1G, so the target number of requested persistent storage devices is 20. Then, the persistent storage device plugin can obtain the first persistent storage device of the target number, which has the same non-uniform memory access architecture region identifier as the processor used by the container group. In some embodiments, the container orchestration tool (for example, K8s) has a topology management function on the computing device 141, and when the topology management function is enabled, the persistent storage device plugin can obtain the first persistent storage device of the target number, which has the same non-uniform memory access architecture region identifier as the processor used by the container group and is located in the same persistent storage. For example, the container group uses processor 2, and the non-uniform memory access architecture region identifier of processor 2 is NUMA2, so the non-uniform memory access architecture region identifier of the first persistent storage device of the target number is also NUMA2 and is located in persistent storage 2. Then, in some embodiments, the persistent storage device plugin can determine whether the first persistent storage device of the target number is located in the same persistent storage based on the one-to-one correspondence between the device identifier of the persistent storage device and the persistent storage, and when the first persistent storage device of the target number is located in the same persistent storage, the persistent storage is used as the target persistent storage, and when the first persistent storage device of the target number is not located in the same persistent storage, the topology management function of the container orchestration tool (for example, K8s) on the computing device 141 can be enabled to obtain the allocation information of the target persistent storage again.
[0100] In step S440, the allocation information is stored into the configuration information of the container group, so that the worker node obtains the allocation information from the configuration information, and schedules the target persistent memory to the container group based on the allocation information.
[0101] In some embodiments, a file system can be provided on the worker node where the container group is deployed, and the allocation information of the target persistent memory and the configuration information of the container group can be stored in the file system. A storage file of the allocation information of the target persistent memory can be mounted in a storage file of the configuration information of the container group. In this way, according to the storage path of the storage file of the allocation information of the target persistent memory, the worker node can obtain the allocation information of the target persistent memory from the configuration information of the container group. In some embodiments, the scheduler of the control node can schedule the target persistent memory to the container group according to the allocation information of the target persistent memory, that is, the storage directory of the target persistent memory can be mounted under the storage directory of the container group. Based on this, the persistent memory device plugin schedules the target persistent memory located in the same non-uniform memory access architecture region as the processor used by the container group to the container group, so that the processor can access the target persistent memory belonging to the same non-uniform memory access architecture region, reduces the latency of the processor accessing the persistent memory of the container group, and thus improves the data access efficiency of the processor.
[0102] Figure 5 is an interaction diagram of a worker node and a control node according to an embodiment of the present disclosure. In some embodiments, as shown in Figure 5 the interaction process of the worker node 220 and the control node 210 specifically includes the following steps:
[0103] In step S501, the persistent memory device plugin 302 in the worker node 220 obtains device information of at least one persistent memory on the worker node where the container group is deployed, and the persistent memory includes a plurality of persistent storage devices.
[0104] In step S502, the persistent memory device plugin 302 in the worker node 220 registers the device information of the at least one persistent memory on the worker node where the container group is deployed to the service agent 304, and then the service agent 304 registers the device information of the at least one persistent memory on the worker node where the container group is deployed to the application program interface server 211 of the control node 210.
[0105] In step S503, the persistent memory device plugin 302 in the worker node 220 listens to a resource scheduling request for the container group.
[0106] In step S504, the client sends a resource scheduling request for the container group to the application interface server 211 of the control node 210, the resource scheduling request including a target storage space size of the requested persistent memory. Then, the resource scheduling request for the container group can be sent to the service agent 304 by the application interface server 211, and then sent to the persistent memory device plugin 302 by the service agent 304.
[0107] In step S505, the persistent memory device plugin 302 determines allocation information of the target persistent memory allocated to the container group in the worker node based on the preset allocation condition and the target storage space size, the target persistent memory being located in the same non-uniform memory access architecture region as the processor used by the container group.
[0108] In step S506, the persistent memory device plugin 302 stores the allocation information into the configuration information of the container group, so that the worker node obtains the allocation information from the configuration information.
[0109] In step S507, the scheduler 212 of the control node 210 schedules the target persistent memory to the container group based on the allocation information.
[0110] Since the step of scheduling the target persistent memory belonging to the same non-uniform memory access architecture region as the processor of the container group to the container group has been described in detail in the above device embodiment and method embodiment, it will not be repeated here.
[0111] Figure 6 is a structural diagram of a resource scheduling device according to one embodiment of the present disclosure. As shown in Figure 6 The resource scheduling device includes a scheduling request obtaining unit 610, a device information obtaining unit 620, an allocation information determining unit 630, and an allocation information storing unit 640.
[0112] The scheduling request acquisition unit 610 is configured to acquire a resource scheduling request for a container group, the resource scheduling request comprising a target storage space size of persistent storage requested by the container group; the device information acquisition unit 620 is configured to acquire device information of at least one persistent storage on a worker node where the container group is deployed, the persistent storage comprising a plurality of persistent storage devices; the allocation information determination unit 630 is configured to determine, based on a preset allocation condition and the target storage space size, allocation information of target persistent storage allocated to the container group in the worker node, the target persistent storage being located in a same non-uniform memory access architecture region as a processor used by the container group; and the allocation information storage unit 640 is configured to store the allocation information into configuration information of the container group, so that the worker node acquires the allocation information from the configuration information and schedules the target persistent storage to the container group based on the allocation information.
[0113] Since the step of scheduling the target persistent storage belonging to the same non-uniform memory access architecture region as the processor of the container group to the container group has been described in detail in the above apparatus embodiment and method embodiment, it will not be repeated here.
[0114] Commercial value of embodiments of the present disclosure
[0115] In the computing device provided by the embodiment of the present disclosure, the target persistent storage belonging to the same non-uniform memory access architecture region as the processor used by the container group is allocated to the container group, so that the processor used by the container group can access the persistent storage belonging to the same non-uniform memory access architecture region, which reduces the latency of the processor accessing the persistent storage and improves the data access efficiency of the processor. In this scenario, the data access efficiency of the processor is improved, thereby reducing the data computing cost of the computing device and further reducing the operation cost of the entire data center. The embodiment of the present disclosure reduces the operation cost of the entire data center, and thus has good commercial value and economic value.
[0116] Those skilled in the art can understand that the present disclosure can be implemented as a system, a method and a computer program product. Therefore, the present disclosure can be embodied in the form of entire hardware, entire software (including firmware, resident software, microcode), and also can be embodied in the form of software and hardware combination. In addition, in some embodiments, the present disclosure can also be embodied in the form of a computer program product in one or more computer readable media, which contains computer readable program code.
[0117] Any combination of one or more computer readable medium can be utilized. The computer readable medium can be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a computer readable storage medium can include, but are not limited to, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In this context, a computer readable storage medium can be any tangible medium that can contain or store a program for use by or in connection with a processing system, apparatus, or device.
[0118] A computer readable signal medium can include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal can take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium can be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
[0119] Program code embodied on a computer readable medium can be transmitted using any appropriate medium, including but not limited to wireless, wire line, optical fiber cable, RF, etc., and any suitable combination of the foregoing.
[0120] Computer program code for carrying out operations of embodiments of the present disclosure can be written in any combination of one or more programming languages, including an object oriented programming language such as JAVA, C++, or a conventional procedural programming language, such as the C programming language. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In an embodiment, multiple computing devices can be used, for example, client and server. Data can be stored on or transmitted across some or all of the aforementioned computer readable medium and computer readable storage media and can include any suitable data in one example, the database can include data structures stored as tables, records, or other retrieval structures suitable for the storage and retrieval of data relating to the present disclosure.
[0121] The above merely provides preferred embodiments of the present disclosure, and is not used to limit the present disclosure. For those skilled in the art, the present disclosure can have various modifications and changes. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present disclosure shall fall into the protective scope of the present disclosure.
Claims
1. A resource scheduling method, comprising: dividing at least one persistent memory into a plurality of persistent storage devices respectively, each of the persistent storage devices having a certain storage space size, the persistent memory being a composite memory combining a traditional storage device and a memory; in a case where a work node deploying a container group is provided with a persistent memory, obtaining device information of at least one persistent memory on the work node, the persistent memory comprising a plurality of persistent storage devices; registering, by at least one persistent memory device plug-in, the device information of the at least one persistent memory to a service agent of a control node, the device information comprising a device name, a device identifier of the persistent storage device and a non-uniform memory access architecture region identifier to which the persistent storage device belongs; obtaining, by the service agent, a resource scheduling request for a container group, the resource scheduling request comprising a target storage space size of a persistent memory requested by the container group; determining, based on a preset allocation condition and the target storage space size, allocation information of a target persistent memory for the container group in the work node, the target persistent memory being located in a same non-uniform memory access architecture region as a processor used by the container group; storing the allocation information into configuration information of the container group, so that the work node obtains the allocation information from the configuration information and schedules the target persistent memory to the container group based on the allocation information.
2. The resource scheduling method of claim 1, wherein, the preset allocation condition comprises: an idle storage space size of the target persistent memory is not less than the target storage space size; and the target persistent memory and the processor used by the container group have a same non-uniform memory access architecture region identifier.
3. The resource scheduling method of claim 2, wherein, the storage space sizes of the plurality of persistent storage devices are equal, and the determining, based on the preset allocation condition and the target storage space size, of the allocation information of the target persistent memory for the container group in the work node comprises: determining, according to the target storage space size and the storage space size of the persistent storage device, a target number of requested persistent storage devices; obtaining first persistent storage devices of the target number and having a same non-uniform memory access architecture region identifier as the processor used by the container group; based on a one-to-one correspondence between a device identifier of a persistent storage device and a persistent memory, when the first persistent storage devices of the target number are located in a same persistent memory, taking the persistent memory as the target persistent memory.
4. The method of claim 1, wherein, after the storing of the allocation information into the configuration information of the container group, the resource scheduling method further comprises: in a case where the container group is destroyed, clearing the configuration information of the container group. 5.A resource scheduling apparatus, comprising: a device information obtaining unit, configured to divide at least one persistent memory into a plurality of persistent storage devices respectively, each of the persistent storage devices having a certain storage space size; In a case where it is determined that the work node deploying the container group is provided with the persistent memory, device information of at least one persistent memory on the work node is acquired, the persistent memory comprising a plurality of persistent storage devices, and the persistent memory being a composite memory combining a traditional storage device and a memory; The scheduling request acquisition unit is configured to register, through at least one persistent memory device plug-in, device information of the at least one persistent memory to a service agent of a control node, the device information comprising a device name, a device identifier and a non-uniform memory access architecture region identifier to which the persistent storage device belongs; and acquire, through the service agent, a resource scheduling request for a container group, the resource scheduling request comprising a target storage space size of the persistent memory requested by the container group. The allocation information determination unit is configured to determine, based on a preset allocation condition and the target storage space size, allocation information of a target persistent memory allocated to the container group in the work node, the target persistent memory being located in a same non-uniform memory access architecture region as a processor used by the container group. The allocation information storage unit is configured to store the allocation information into configuration information of the container group, so that the work node acquires the allocation information from the configuration information and schedules the target persistent memory to the container group based on the allocation information.
6. A persistent memory device plug-in, comprising: The device detection unit is configured to divide at least one persistent memory into a plurality of persistent storage devices respectively, each of the persistent storage devices having a certain storage space size, and the persistent memory being a composite memory combining a traditional storage device and a memory. In a case where it is determined that the work node deploying the container group is provided with the persistent memory, device information of at least one persistent memory on the work node is acquired, the persistent memory comprising a plurality of persistent storage devices; The listening unit is configured to register, through at least one persistent memory device plug-in, device information of the at least one persistent memory to a service agent of a control node, the device information comprising a device name, a device identifier and a non-uniform memory access architecture region identifier to which the persistent storage device belongs; and acquire, through the service agent, a resource scheduling request for a container group, the resource scheduling request comprising a target storage space size of the persistent memory requested by the container group. The device designation unit is configured to determine, based on a preset allocation condition and the target storage space size, allocation information of a target persistent memory allocated to the container group in the work node, the target persistent memory being located in a same non-uniform memory access architecture region as a processor used by the container group. The device designation unit is further configured to store the allocation information into configuration information of the container group, so that the work node acquires the allocation information from the configuration information and schedules the target persistent memory to the container group based on the allocation information.
7. A computing device comprising: a processor; a persistent memory; the persistent memory device plugin of claim 6 for scheduling target persistent memory to a container group, the target persistent memory being in the same non-uniform memory access architecture region as the processor used by the container group.
8. A system on chip comprising: a processor; a persistent memory; the persistent memory device plugin of claim 6 for scheduling target persistent memory to a container group, the target persistent memory being in the same non-uniform memory access architecture region as the processor used by the container group.
9. A computing device comprising: a memory for storing computer executable code; a processor for executing the computer executable code, causing the processor to perform the resource scheduling method of any one of claims 1-4.
10. A computer storage medium having stored thereon computer executable code which, when executed by a processor, implements the resource scheduling method of any one of claims 1-4.
11. A computer program product having stored thereon computer executable code which, when executed by a processor, implements the resource scheduling method of any one of claims 1-4.
Citation Information
Patent Citations
Persistent volume allocation method and device, computer equipment and storage medium
CN111966305A
Virtual machine resource allocation method and device, electronic equipment and storage medium
CN113760457A