Distributed storage container scheduling method and device, electronic equipment and readable medium
By establishing a performance baseline table and an index table, and dynamically adjusting resource allocation, the problems of slow deployment, low resource utilization, and poor I/O performance in traditional distributed storage systems are solved, enabling rapid deployment and fine-grained scheduling, and improving resource utilization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA TELECOM CORP LTD
- Filing Date
- 2022-03-04
- Publication Date
- 2026-06-09
AI Technical Summary
Traditional distributed storage systems suffer from long deployment and upgrade times, low resource utilization, poor storage I/O performance, high costs for migrating data between host nodes, and resource waste or insufficient performance due to improper resource specification settings.
Establish a performance baseline table for container storage specifications, create a storage specification index table for each container host based on the baseline table, receive storage container deployment requests, select matching target hosts, and dynamically adjust resource allocation based on performance load changes.
It enables rapid deployment and fine-grained scheduling of storage containers in large-scale heterogeneous environments, improving resource utilization, avoiding resource waste and strain, and ensuring storage performance.
Smart Images

Figure CN116737310B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the fields of cloud computing containers and distributed storage, and in particular to a distributed storage container scheduling method, apparatus, electronic device, and computer-readable medium. Background Technology
[0002] Traditional physical machine-based distributed storage requires independent hardware and software configurations. The deployment and upgrade time of distributed storage systems is long and the resource utilization is low. At the same time, since computing resources and storage resources are often deployed on different racks, the storage I / O path is long and the I / O performance is poor.
[0003] Distributed container storage refers to deploying related software components of distributed storage as containers within a container cluster (such as Kubernetes), and scheduling, running, and upgrading them in a containerized manner. This allows storage containers and application containers to share the same physical servers and networks, improving the utilization of physical resources. However, unlike application containers, storage containers are stateful. They are not only bound to storage devices on the host but also store large amounts of data on these devices. Because migrating data across host nodes is very costly, storage containers cannot be migrated and scheduled across container hosts at any time like stateless application containers. Furthermore, distributed storage involves various storage software types (such as block storage, file storage, and object storage) and various storage hardware types (such as HDD, SSD, and NVMe). Different combinations of storage software and hardware result in significant differences in storage I / O performance and have significantly different requirements for non-storage resources such as CPU, memory, and network. It is difficult to reserve resources for storage containers according to standard specifications. Setting the resource specifications of storage containers too high can easily lead to resource waste, while setting them too low may fail to fully utilize the container's I / O performance.
[0004] Therefore, there is a need for a new method, apparatus, electronic device, and computer-readable medium for scheduling distributed storage containers.
[0005] The information disclosed in the background section is only intended to enhance the understanding of the background of this disclosure. Summary of the Invention
[0006] In view of this, the present disclosure provides a distributed storage container scheduling method, apparatus, electronic device, and computer-readable medium, which can realize the rapid deployment and fine-grained scheduling of storage containers in a large-scale heterogeneous container environment, and improve the resource utilization of storage containers while ensuring storage performance.
[0007] Other features and advantages of this disclosure will become apparent from the following detailed description, or may be learned in part from practice of this disclosure.
[0008] According to a first aspect of the present disclosure, a distributed storage container scheduling method is proposed. The method includes: establishing a performance baseline table for container storage specifications; establishing a container storage specification index table for each container host based on the performance baseline table; receiving a storage container deployment request; determining candidate container storage specifications and performance saturation ranges; selecting a target container host that matches the candidate container storage specifications and performance saturation ranges through the container storage specification index table; deploying the storage container on the target container host according to the storage container resource configuration parameters of the candidate container storage specifications; and dynamically adjusting the allocation of storage container resources within the performance saturation range according to changes in the performance load of the storage container.
[0009] In one exemplary embodiment of this disclosure, establishing a performance baseline table for container storage specifications and establishing a container storage specification index table for each container host based on the performance baseline table includes: performing containerized performance benchmark tests on container storage specifications with various combinations of storage hardware and software to establish a performance baseline table for container storage specifications with various combinations of storage hardware and software; collecting the allocatable container storage resources of container hosts in the container cluster, and establishing a container storage specification index table for container hosts based on the performance baseline table.
[0010] In one exemplary embodiment of this disclosure, containerized performance benchmarking is performed on container storage specifications with multiple storage hardware and software combinations to establish a performance baseline table for container storage specifications with multiple storage hardware and software combinations. This includes: adding storage hardware devices to be tested to a test server and collecting storage device information; deploying a storage container to be tested on the test server for each type of storage software and mounting the storage hardware devices to be tested into the storage containers to be tested; testing the maximum I / O performance and resource requirements of the storage containers to be tested at various performance saturation levels, and establishing a performance baseline table for container storage specifications.
[0011] In one exemplary embodiment of this disclosure, collecting the allocatable container storage resources of container hosts in a container cluster and establishing a container storage specification index table for container hosts based on the performance baseline table includes: collecting the allocatable container storage resources of container hosts in a container cluster; obtaining the container storage specifications and saturation that match the allocatable container storage resources of container hosts from the performance baseline table; and establishing a container storage specification index table for container hosts, with the index name being a combination of container storage specifications and saturation, and the index value being a list of container hosts sorted by resource sufficiency.
[0012] In one exemplary embodiment of this disclosure, receiving a storage container deployment request, determining candidate container storage specifications and performance saturation ranges, and selecting a target container host that matches the candidate container storage specifications and performance saturation ranges through the container storage specification index table includes: extracting storage software requirements, storage capacity requirements, and storage performance requirements from the storage container deployment request; searching a performance baseline table for candidate container storage specifications that match the storage software requirements, storage capacity requirements, and storage performance requirements, as well as the minimum and maximum saturation of each candidate container storage specification; querying the container storage specification index table according to the candidate container storage specifications, and selecting the container host with the highest resource sufficiency among the index values of the container storage specification with the lowest resource requirements as the target container host.
[0013] In one exemplary embodiment of this disclosure, deploying a storage container on the target container host according to the storage container resource configuration parameters of the candidate container storage specification includes: setting the configuration parameters of the storage container according to the candidate container storage specification; setting the container image to a storage container image that matches the storage software type of the candidate container storage specification; setting the lower limit of the container resource configuration to the minimum performance saturation resource requirement of the candidate container storage specification; setting the upper limit of the container resource configuration to the maximum performance saturation resource requirement of the candidate container storage specification; deploying the storage container in the target container host; loading the storage container image; and binding the required physical resources.
[0014] In one exemplary embodiment of this disclosure, deploying the storage container in the target container host, loading the storage container image, and binding the required physical resources includes: scheduling the container engine of the target container host to download the corresponding storage container image from the container image repository according to the configuration parameters of the storage container; allocating resources to the storage container on the target container host through the container engine according to the resource minimum in the configuration parameters of the storage container, the allocated resources including CPU resources, memory resources, and network resources; starting the storage container, mounting the target storage device, loading the storage service software, initializing the target storage device, and binding the storage service port.
[0015] In one exemplary embodiment of this disclosure, dynamically adjusting the allocation of storage container resources within the performance saturation range based on changes in the performance load of the storage container includes: determining the target saturation range to be adjusted and the amount of resources to be adjusted based on the current performance load of the storage container; if the storage container needs to increase the amount of resources, then requesting incremental resources through the container engine of the target container host.
[0016] In one exemplary embodiment of this disclosure, determining the target saturation range to be adjusted and the amount of resources to be adjusted based on the current performance load of the storage container includes: if the current performance load of the storage container is greater than or equal to the upper limit of the current performance saturation range, then increasing the saturation resource by one level until the maximum saturation of the storage container is reached; if the current performance load of the storage container is less than the lower limit of the current performance saturation range, then decreasing the saturation resource by one level until the minimum saturation of the storage container is reached.
[0017] In one exemplary embodiment of this disclosure, if a storage container needs to increase its resource volume, requesting incremental resources through the container engine of the target container host includes: the container engine allocating incremental resources to the storage container from the idle resource pool of the target container host; if the resources in the idle resource pool are less than the incremental resources requested by the container engine, then: resources are reclaimed from service containers with a priority lower than a first preset priority in the target container host and allocated to the storage container; and if the resources in the idle resource pool after reclamation are still less than the incremental resources requested by the container engine, then resources are reclaimed from storage containers with a priority lower than a second preset priority in the target container host and allocated to the storage container, wherein after the resources of storage containers with a priority lower than the second preset priority in the target container host are reclaimed, the remaining resources of the storage container are not less than the resource requirement of the minimum performance saturation of the storage container.
[0018] In one exemplary embodiment of this disclosure, binding the required physical resources includes binding independent physical resources to CPU resources and network resources in the storage container whose resource requirements exceed a resource requirement threshold.
[0019] In one exemplary embodiment of this disclosure, the method further includes: updating the allocatable resources of the target container host and updating the container storage specification index table after a storage container deployment or container resource change occurs on the target container host.
[0020] According to a second aspect of the present disclosure, a distributed storage container scheduling apparatus is proposed. The apparatus includes: a first module, configured to establish a performance baseline table for container storage specifications and establish a container storage specification index table for each container host based on the performance baseline table; a second module, configured to receive a storage container deployment request, determine candidate container storage specifications and performance saturation ranges, and select a target container host that matches the candidate container storage specifications and performance saturation ranges through the container storage specification index table; a third module, configured to deploy the storage container on the target container host according to the storage container resource configuration parameters of the candidate container storage specifications; and a fourth module, configured to dynamically adjust the allocation of storage container resources within the performance saturation range based on changes in the performance load of the storage container.
[0021] According to a third aspect of the present disclosure, an electronic device is provided, comprising: one or more processors; a storage device for storing one or more programs; and, when the one or more programs are executed by the one or more processors, causing the one or more processors to implement the distributed storage container scheduling method described in any of the preceding claims.
[0022] According to a fourth aspect of the present disclosure, a computer-readable medium is provided having a computer program stored thereon, which, when executed by a processor, implements the distributed storage container scheduling method as described in any of the preceding claims.
[0023] According to certain embodiments of the distributed storage container scheduling method, apparatus, electronic device, and computer-readable medium provided in this disclosure, a performance baseline table of container storage specifications and a container storage specification index table for each container host are first established. When a storage container deployment request is received, candidate container storage specifications and performance saturation ranges are determined based on the storage container deployment request. Target container hosts matching the candidate container storage specifications and performance saturation ranges are selected through the container storage specification index table. This enables fast and accurate deployment, avoiding resource waste and resource shortages. Simultaneously, the allocation of storage container resources is dynamically adjusted within the performance saturation range based on changes in storage container performance load, further enabling fine-grained resource scheduling and improving storage container resource utilization while ensuring storage performance.
[0024] It should be understood that the above general description and the following detailed description are merely exemplary and do not limit this disclosure. Attached Figure Description
[0025] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure. The drawings described below are merely some embodiments of this disclosure, and those skilled in the art will be able to derive other drawings from these drawings without any inventive effort.
[0026] Figure 1 This is a system architecture diagram illustrating a distributed storage container scheduling method and apparatus according to an exemplary embodiment.
[0027] Figure 2 This is a flowchart illustrating a distributed storage container scheduling method according to an exemplary embodiment.
[0028] Figure 3 This is a block diagram illustrating a distributed storage container scheduling device according to an exemplary embodiment.
[0029] Figure 4The diagram schematically illustrates a block diagram of an electronic device according to an exemplary embodiment of the present disclosure. Detailed Implementation
[0030] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the embodiments set forth herein; rather, they are provided so that the invention will be thorough and complete, and the concept of the exemplary embodiments will be fully conveyed to those skilled in the art. The same reference numerals in the drawings denote the same or similar parts, and therefore repeated descriptions of them will be omitted.
[0031] The described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. Numerous specific details are provided in the following description to give a full understanding of embodiments of the invention. However, those skilled in the art will recognize that the technical solutions of the invention can be practiced by omitting one or more specific details, or other methods, components, apparatuses, steps, etc. In other instances, well-known methods, apparatuses, implementations, or operations are not shown or described in detail to avoid obscuring various aspects of the invention.
[0032] The accompanying drawings are merely illustrative of the invention; the same reference numerals denote the same or similar parts, and therefore repeated descriptions of them will be omitted. Some block diagrams shown in the drawings do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.
[0033] The flowchart shown in the accompanying drawings is merely illustrative and does not necessarily include all content and steps, nor does it require execution in the described order. For example, some steps may be broken down, while others may be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.
[0034] The exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
[0035] Figure 1 This is a system architecture diagram illustrating a distributed storage container scheduling method and apparatus according to an exemplary embodiment.
[0036] The system architecture of the distributed storage container scheduling method and device may include: a storage performance baseline library 110, a storage container scheduling module 120, a storage container agent module 130, a local fourth module 140, a container engine 150, and a container cluster manager 160.
[0037] The storage performance baseline library 110 is used to store the storage I / O performance baseline (i.e., performance baseline table), container storage specification index, and storage resource requirements of various storage hardware and software combinations in a containerized environment.
[0038] The storage container scheduling module 120 is used to respond to storage container deployment requests and schedule storage containers to be deployed and run on container hosts with matching resources.
[0039] The storage container agent module 130 is used to collect storage device information and storage container performance load on the container host, and update the container storage specification index of the container host.
[0040] The local fourth module 140 is used to bind new resources or release idle resources to the storage container based on the changes in the I / O saturation level of the storage container, and to bind physical resources to the storage container in integer granularity, such as physical CPU cores or physical network interface card units (PF or physical ports).
[0041] Container Engine 150 is used to manage container resources, container status, and lifecycle on container hosts.
[0042] The Container Cluster Manager 160 is used to manage container hosts within a container cluster and to schedule container resources.
[0043] Figure 2 This is a flowchart illustrating a distributed storage container scheduling method according to an exemplary embodiment. The distributed storage container scheduling method provided in this disclosure may include steps S202 to S208.
[0044] like Figure 2 As shown, in step S202, a performance baseline table for container storage specifications is established, and a container storage specification index table is established for each container host based on the performance baseline table.
[0045] The performance baseline table for container storage specifications records the maximum I / O performance and resource overhead of various I / O performance saturation levels for different combinations of storage software and hardware in a container environment. Different combinations of storage software and hardware constitute different container storage specifications. Storage software refers to the type of storage software, and storage hardware refers to the type of storage hardware device. The performance baseline table and the container storage specification index table can be established through the following steps: performing containerized performance benchmark tests on container storage specifications with various combinations of storage software and hardware to establish a performance baseline table for container storage specifications with various combinations of storage software and hardware; collecting the allocatable container storage resources of container hosts in the container cluster, and establishing a container storage specification index table for container hosts based on the performance baseline table.
[0046] Storage hardware and software combinations refer to the combination of storage software types and hardware types. When conducting containerized performance benchmark tests on container storage specifications with various storage hardware and software combinations, and establishing a performance baseline table for container storage specifications with multiple storage hardware and software combinations, the storage hardware devices to be tested can be added to the test server, and their information collected. A separate storage container to be tested is deployed on the test server for each storage software type, and the storage hardware devices to be tested are mounted into these containers. The maximum I / O performance and resource requirements at various performance saturation levels of the storage containers to be tested are then tested, and a performance baseline table for container storage specifications is established. Storage device information refers to the device information of the storage hardware devices, which may include, but is not limited to, storage manufacturer, storage hardware model, and storage capacity information. Storage software types may include block storage, file storage, and object storage. Resource requirements include CPU resources, memory resources, and network resources.
[0047] Specifically, when testing the maximum I / O performance and resource requirements at various performance saturation levels of the storage container under test, and establishing a performance baseline table for the container storage specifications, the following steps can be taken: 1. Start the storage container under test to obtain the container resource overhead at the lowest performance saturation level (i.e., 0% I / O load); 2. Run storage performance stress testing software (such as FIO) to apply the maximum I / O load to the storage container under test to obtain the I / O performance and container resource requirements (i.e., container resource overhead) at the highest performance saturation level (i.e., 100% I / O load); 3. Adjust the I / O stress load of the storage performance stress testing software to obtain the container resource requirements at different performance saturation levels (e.g., 80%, 60%, 40%, 20%).
[0048] The performance baseline table for container storage specifications is shown in Table 1. The table fields include storage specification ID, storage device attributes (software type, hard drive type, hard drive model), storage capacity, maximum I / O performance, and resource requirements for performance saturation intervals (performance saturation, CPU resources, memory resources, network resources). Different combinations of storage software and hardware types correspond to different container storage specifications and have different storage specification IDs. The storage device attributes in Table 1 include the storage software type, hardware (i.e., hard drive) type, and hardware (i.e., hard drive model) of the container storage specification. Different performance saturation levels correspond to different performance saturation intervals in Table 1.
[0049] Table 1
[0050]
[0051]
[0052] It is important to note that the performance baseline table for container storage specifications can be implemented in several ways. It can be represented by a nested table, as shown in Table 1 above, or by a wide table (where all attributes in the nested table are converted into columns of the wide table), or by two related tables, as shown in Tables 2 and 3.
[0053] Table 2
[0054]
[0055] Table 3
[0056]
[0057]
[0058] When collecting the allocatable container storage resources of container hosts in a container cluster and establishing a container storage specification index table for container hosts based on the performance baseline table, the allocatable container storage resources of container hosts in the container cluster can be collected. The container storage specifications and saturation levels matching the allocatable container storage resources of the container hosts are obtained from the performance baseline table. A container storage specification index table is established for the container hosts, with the index name being a combination of container storage specifications and saturation levels, and the index value being a list of container hosts sorted by resource sufficiency. Allocatable container storage resources may include idle storage hardware resources (including hard drive type and hard drive model), idle CPU, memory, and network resources. The container storage specifications and saturation levels matching the allocatable container storage resources of a container host refer to the container storage specifications corresponding to the storage containers that can be built under the allocatable container storage resources of that container host and their runtime saturation.
[0059] Resource sufficiency refers to the number of storage containers that a container host can create under a certain container storage specification's saturation level. For example, container host 1 has 2 WD-HUC10 hard drives, 2 SanDisk-UltraSSD hard drives, 8 idle CPU cores (8000m), 16GB of idle memory, and 12GB of idle network bandwidth. According to the performance baseline table for the aforementioned container storage specifications (e.g., Table 1, or Table 2 combined with Table 3), we can see that:
[0060] Container host 1 can deploy: 2 storage containers of storage specification B1 with 0% saturation; 2 storage containers of storage specification B1 with 20% saturation; 2 storage containers of storage specification B1 with 40% saturation; 2 storage containers of storage specification B1 with 60% saturation; 2 storage containers of storage specification B1 with 80% saturation; 2 storage containers of storage specification B1 with 100% saturation; 2 storage containers of storage specification B2 with 0% saturation; 2 storage containers of storage specification B2 with 20% saturation; 2 storage containers of storage specification B2 with 40% saturation; 2 storage containers of storage specification B2 with 60% saturation; 1 storage container of storage specification B2 with 80% saturation; and 1 container of storage specification B2 with 100% saturation. The container storage specification index table determined by container host 1 can be recorded as follows:
[0061] B1-0{Container Host 1(2)}
[0062] B1-20{Container Host 1(2)}
[0063] B1-40{Container Host 1(2)}
[0064] …
[0065] B1-100{Container Host 1(2)}
[0066] B2-0{Container Host 1(2)}
[0067] B2-20{Container Host 1(2)}
[0068] …
[0069] B2-80{Container Host 1(1)}
[0070] B2-100{Container Host 1(1)}.
[0071] In B1-0{Container Host 1(2)}, the number 2 in “(2)” represents the number of storage containers of storage specification B1 that can be deployed on container host 1. That is, the container storage specification index table can be represented as:
[0072] Storage Specification ID - Saturation: {Host 1 (x1), Host 2 (x2) ... Host n (xn)}, where xi is the number of storage containers that can be deployed on Host i under the current container storage specification, xi>0, x1>=x2>=...>=xn.
[0073] For example, if a container cluster has four container hosts: Container Host 1, Container Host 2, Container Host 3, and Container Host 4, the following container storage specification index table can be obtained after the above processing:
[0074] B1-0{Container Host 1(2), Container Host 3(2), Container Host 4(1)}
[0075] B1-20{Container Host 1(2), Container Host 3(2), Container Host 4(1)}
[0076] B1-40{Container Host 1(2), Container Host 3(2), Container Host 4(1)}
[0077] …
[0078] B1-100{Container Host 1(2), Container Host 3(2), Container Host 2(1)}
[0079] B2-0{Container Host 1(2), Container Host 3(2), Container Host 2(1)}
[0080] B2-20{Container Host 1(2), Container Host 3(2), Container Host 2(1)}
[0081] …
[0082] B2-80{Container Host 1(1)}
[0083] B2-100{Container Host 1(1)}
[0084] In step S204, a storage container deployment request is received, the storage specifications and performance saturation range of candidate containers are determined, and a target container host that matches the storage specifications and performance saturation range of the candidate containers is selected through the container storage specification index table.
[0085] The storage container deployment request is used to request the deployment of the storage container.
[0086] In an exemplary embodiment, storage software requirements, storage capacity requirements, and storage performance requirements can be extracted from the storage container deployment request; candidate container storage specifications that match the storage software requirements, storage capacity requirements, and storage performance requirements can be found from the performance baseline table, along with the minimum and maximum saturation of each candidate container storage specification; the container storage specification index table can be queried according to the candidate container storage specifications, and the container host with the highest resource sufficiency among the index values of the container storage specification with the lowest resource requirements can be selected as the target container host from the query results.
[0087] Storage software requirements refer to the type of storage software requested in this storage container deployment request. Storage capacity requirements refer to the minimum storage capacity requested in this storage container deployment request. Storage performance requirements refer to the storage performance requirements requested in this storage container deployment request. Storage performance requirements may include minimum I / O performance requirements (default is 0) and maximum I / O performance requirements.
[0088] When determining the minimum and maximum saturation of candidate container storage specifications, the minimum saturation is the minimum saturation where the performance is not less than the minimum I / O performance requirement, and the maximum saturation is the minimum saturation where the performance is not less than the maximum I / O performance requirement. The storage specification index table of candidate container storage specifications can be sorted in ascending order of resource requirement, and one or more resource sorting fields (such as storage performance, memory resources, CPU resources, etc.) can be configured.
[0089] When querying the container storage specification index table based on candidate container storage specifications, the search can begin with the smallest specification in the candidate storage specification list and continue until the first matching container host is found. An example is shown below:
[0090] For example, suppose the storage software requirement for the storage container deployment request is block storage, the storage capacity requirement is 2T, the minimum I / O performance is 50MBs, and the maximum I / O performance is 500MBs. The candidate container storage specifications must meet the following conditions: storage software type is block storage, storage capacity is not less than 2T, minimum I / O performance is not less than 50MBs, and maximum I / O performance is not less than 500MBs. By querying the above performance baseline table (Table 1), we can find that B2 is a candidate storage specification that meets the above conditions. The minimum saturation for meeting the performance requirements is 20%, and the maximum saturation is 60%. By querying the above container storage specification index table using the storage specification index B2-20, we can find that the resources of container host 1, container host 2, and container host 3 all meet the resource requirements of the candidate storage specifications. Container host 1 has the highest resource sufficiency. Therefore, container host 1 is selected as the target container host to be deployed.
[0091] In step S206, the storage container is deployed on the target container host according to the storage container resource configuration parameters of the candidate container storage specification.
[0092] In this embodiment of the disclosure, the configuration parameters of the storage container can be set according to the candidate container storage specifications. The container image is set to a storage container image that matches the storage software type of the candidate container storage specifications. The lower limit of the container resource configuration is set to the resource requirement of the minimum performance saturation of the candidate container storage specifications, and the upper limit of the container resource configuration is set to the resource requirement of the maximum performance saturation of the candidate container storage specifications. The storage container is then deployed in the target container host, the storage container image is loaded, and the required physical resources are bound.
[0093] Following the previous example, the resource specifications for the minimum performance saturation (20%) of candidate container storage specification B2 are {Storage specification: B2; Saturation: 20; Index: B2-20; Performance: 200MBs; CPU: 0.2; Memory: 0.5G; Network: 1000Mbps}, and the resource specifications for the maximum performance saturation are {Storage specification: B2; Saturation: 60; Index: B2-60; Performance: 200MBs; CPU: 1.5; Memory: 1G; Network: 5000Mbps}. In a Kubernetes container cluster, the lower limit of requested resources is configured using the `request` parameter, and the upper limit of requested resources is configured using the `limit` parameter. Therefore, the storage container resource configuration parameters are set as follows:
[0094]
[0095] When deploying the storage container in the target container host, loading the storage container image, and binding the required physical resources, the container engine of the target container host can be scheduled to download the corresponding storage container image from the container image repository according to the configuration parameters of the storage container; the container engine allocates resources to the storage container on the target container host according to the resource minimum in the configuration parameters of the storage container, and the allocated resources include CPU resources, memory resources, and network resources; the storage container is started, the target storage device is mounted, the storage service software is loaded, the target storage device is initialized, and the storage service port is bound.
[0096] The binding of physical resources refers to binding independent physical resources to CPU and network resources in the storage container where the resource demand exceeds the resource demand threshold. The resource demand threshold can be an integer, such as 1. For example, the binding rule for CPU resources is to bind one physical core for every full core. For instance, a request for 0.5 core CPUs binds to 0 physical cores, a request for 1.5 core CPUs binds to 1 physical core, and a request for 2 core CPUs binds to 2 physical cores. The binding rule for network resources is to bind one physical function unit (PF) for every B / N of the bandwidth demand, where B is the network interface card bandwidth and N is the number of physical function units of the network interface card. For instance, for a network interface card with a total bandwidth of 10G and 4 PFs, one physical function unit is bound for every 2500Mbps of network bandwidth demand.
[0097] In step S208, the resource allocation of the storage container is dynamically adjusted within the performance saturation range according to the changes in the performance load of the storage container.
[0098] In this embodiment of the disclosure, the target saturation range and the amount of resources to be adjusted can be determined based on the current performance load of the storage container; if the storage container needs to increase the amount of resources, incremental resources can be requested through the container engine of the target container host.
[0099] Specifically, when determining the target saturation range and the amount of resources to be adjusted based on the current performance load of the storage container, the saturation resource level can be increased by one level if the current performance load is greater than or equal to the upper limit of the current performance saturation range, until the maximum saturation of the storage container is reached; conversely, if the current performance load is less than the lower limit of the current performance saturation range, the saturation resource level can be decreased by one level, until the minimum saturation of the storage container is reached. Saturation resource levels can be, for example, 0%, 20%, 40%, 60%, 80%, and 100%. For instance, if the current performance saturation range is 20%, increasing the saturation resource level by one level means adjusting the resource requirement to the level corresponding to 40% saturation. Assuming the current performance saturation of the storage container is B2-20, if the current performance load of the storage container is >= 200MB / s, then the performance saturation specification of the storage container will be adjusted to B2-40. Since the resource configuration of B2-20 is 0.5 CPU cores, 0.5GB memory, and 1000Mbps network, while the resource configuration of B2-40 is 1 CPU core (which will trigger CPU physical core binding), 1GB memory, and 2000Mbps network, it is necessary to add 0.5 CPU cores, 0.5GB memory, and 1000Mbps network bandwidth to the storage container. In this example, since it is necessary to add 0.5 CPU cores, 0.5GB memory, and 1000Mbps network bandwidth to the storage container, the storage container needs increased resource allocation.
[0100] If a storage container needs additional resources, when requesting incremental resources through the container engine of the target container host, the following can be included: the container engine allocates incremental resources (i.e., the amount of additional resources the storage container needs) to the storage container from the idle resource pool of the target container host. If the resources in the idle resource pool are less than the incremental resources requested by the container engine, then:
[0101] Resources are reclaimed from service containers on the target container host with a priority lower than a first preset priority and allocated to storage containers; and if the resources in the idle resource pool after reclamation are still less than the incremental resources requested by the container engine, resources are reclaimed from storage containers on the target container host with a priority lower than a second preset priority and allocated to the storage containers, wherein the remaining resources of the storage containers after reclamation of resources from storage containers on the target container host with a priority lower than the second preset priority are not less than the resource requirement for the minimum performance saturation of the storage containers. Service containers may have multiple priorities, and the first preset priority may be one of the priorities that a service container may have. Storage containers may have multiple priorities, and the second preset priority may be one of the priorities that a storage container may have.
[0102] According to the distributed storage container scheduling method provided in this disclosure, a performance baseline table of container storage specifications and a container storage specification index table for each container host are first established. When a storage container deployment request is received, the candidate container storage specifications and performance saturation range are determined according to the storage container deployment request. The target container host that matches the candidate container storage specifications and performance saturation range is selected through the container storage specification index table. This enables fast and accurate deployment, avoiding resource waste and resource shortages. At the same time, the storage container resource allocation is dynamically adjusted within the performance saturation range according to the changes in storage container performance load, which further enables fine-grained resource scheduling and improves storage container resource utilization while ensuring storage performance.
[0103] In another embodiment disclosed in this patent, steps S1-S5 may be included: S1, monitoring the performance saturation of the storage container; S2, determining whether the performance saturation of the storage container has changed; if yes, proceeding to S3, otherwise returning to S1; S3, adjusting the storage container resources; S4, determining whether the resource change of the storage container includes integer granularity; if yes, proceeding to S5, otherwise returning to S1; S5, adjusting the binding of physical resources. When adjusting the storage container resources, the current storage performance saturation of the target storage container can be determined; if the current storage performance saturation changes, the change in the resource requirement of the target storage container is determined based on the change in the current storage performance saturation; the target storage container is expanded or reduced in size based on the change in the resource requirement. The current storage performance saturation can be determined based on the current traffic volume of the target storage container. In related technologies, multiple service containers and storage containers share the CPU and network card resources on a host, leading to frequent switching of CPU and network contexts between different containers. This causes severe performance degradation for high I / O throughput storage containers, necessitating physical resource binding. However, the resource load of storage containers is dynamically changing; excessive binding results in resource waste, while insufficient binding leads to I / O performance loss. If the resource demand of the target storage container increases within its saturation range, vertical scaling is performed; if the resource demand decreases, vertical scaling is performed. Furthermore, if the storage capacity saturation of the target storage container exceeds a storage capacity saturation threshold, a new container host is added to the target storage container according to the storage resource specifications (i.e., the container storage specifications mentioned above).
[0104] In S5, for example, the storage I / O performance saturation and capacity saturation of storage containers can be monitored in real time. If the storage capacity of a storage container is not yet saturated, the storage container resources are vertically adjusted according to the changes in the I / O saturation level. The vertical adjustment approach can be illustrated by the following steps a) and b).
[0105] a) If the I / O saturation level increases, the storage container resource requirements (i.e., the container's resource Request parameter) will be adjusted upwards to the new saturation level resource configuration. The required incremental container resources will be requested from the idle resource pool on the node. If resources are insufficient, resources will be reclaimed by evicting low-priority business containers (i.e., those with a priority lower than the first preset priority).
[0106] b) If the I / O saturation level decreases, adjust the storage container resource requirements (Request parameter) downward to the new saturation level resource configuration, and release the reduced container resources from the storage container to the idle resource pool.
[0107] If the storage container's storage capacity is saturated (e.g., storage capacity usage exceeds 90%), horizontal scaling of the storage container is triggered. A new storage container instance of the same specifications (with the same combination of storage software and hardware tags) is deployed on a suitable container host, and new I / O write requests are routed to the new storage container instance.
[0108] When the resources of a storage container change, if the resource change involves changes to physical resources of integer granularity, the number of physical resources bound to the storage container is adjusted. The physical resources bound to a storage container can be physical CPU cores or physical network interface card (NIC) functional units. Taking CPU physical core binding as an example, the binding principle is that integer CPU cores are exclusive, and fractional CPU cores are shared. For example, if storage container B1 currently has an I / O saturation of 60% and requires 0.5 CPU cores, while storage container B2 currently has 60% bound cores and requires 1.5 CPU cores, then the local resource scheduler will bind one shared physical core to the 0.5 core requirements of both storage container B1 and storage container B2 (this physical core is only shared by B1 and B2), and bind one exclusive physical core to the 1 core requirement of storage container B2. If the I / O saturation of B2 rises to 80%, requiring 2 physical cores, then one independent physical core is added to B2, and the previously bound 0.5 physical cores to B2 are unbound.
[0109] According to the distributed storage container scheduling method provided in this disclosure, vertical scaling is prioritized to expand storage container resources, while horizontal scaling is only triggered when the performance and capacity of the storage container reach their maximum saturation, thereby reducing the overhead of cross-node scheduling of storage containers. Simultaneously, dedicated physical resources are bound to storage containers at integer granularity, reducing the number of CPU and network context switches, improving I / O performance, and resulting in lower I / O performance loss for storage containers.
[0110] In an exemplary embodiment, the distributed storage container scheduling method may further include: updating the allocatable resources of the target container host and updating the container storage specification index table after a storage container deployment or container resource change occurs on the target container host. The update strategy may be to update on a per-storage-container basis, to update on a per-container-host periodically, or to update on a per-container-cluster periodically.
[0111] It should be clearly understood that this disclosure describes how specific examples are formed and used, but the principles of this disclosure are not limited to any details of these examples. Rather, based on the teachings of this disclosure, these principles can be applied to many other embodiments.
[0112] Those skilled in the art will understand that all or part of the steps of the above embodiments are implemented as a computer program executed by a central processing unit (CPU). When the computer program is executed by the CPU, it performs the functions defined by the methods provided in this disclosure. The program can be stored in a computer-readable storage medium, such as a read-only memory, a magnetic disk, or an optical disk.
[0113] Furthermore, it should be noted that the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of this disclosure, and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Additionally, it is readily understood that these processes may be executed synchronously or asynchronously, for example, in multiple modules.
[0114] The following are embodiments of the apparatus disclosed herein, which can be used to execute embodiments of the method disclosed herein. For details not disclosed in the apparatus embodiments of this disclosure, please refer to the embodiments of the method disclosed herein.
[0115] Figure 3 This is a block diagram illustrating a distributed storage container scheduling device according to an exemplary embodiment. (Refer to...) Figure 3 The distributed storage container scheduling device 30 provided in this embodiment may include: a first module 302, a second module 304, a third module 306 and a fourth module 308.
[0116] In the distributed storage container scheduling device 30, the first module 302 can be used to establish a performance baseline table for container storage specifications, and to establish a container storage specification index table for each container host based on the performance baseline table.
[0117] The second module 304 can be used to receive storage container deployment requests, determine candidate container storage specifications and performance saturation ranges, and select a target container host that matches the candidate container storage specifications and performance saturation ranges through the container storage specification index table.
[0118] The third module 306 can be used to deploy the storage container on the target container host according to the storage container resource configuration parameters of the candidate container storage specification.
[0119] The fourth module 308 can be used to dynamically adjust the allocation of storage container resources within the performance saturation range based on changes in the performance load of the storage container.
[0120] According to the distributed storage container scheduling device provided in this disclosure, a performance baseline table of container storage specifications and a container storage specification index table for each container host are first established. When a storage container deployment request is received, the candidate container storage specifications and performance saturation range are determined according to the storage container deployment request. The target container host that matches the candidate container storage specifications and performance saturation range is selected through the container storage specification index table. This enables fast and accurate deployment, avoiding resource waste and resource shortages. At the same time, the storage container resource allocation is dynamically adjusted within the performance saturation range according to the changes in storage container performance load, which further enables fine-grained resource scheduling and improves storage container resource utilization while ensuring storage performance.
[0121] exist Figure 3 In the middle, the second module 304 can correspond to Figure 1 The middle storage container scheduling module 120, container engine 150, and container cluster manager 160. The third module 306 can correspond to... Figure 1 The container engine is 150. The fourth module corresponds to... Figure 1 The local resource scheduling module 140 and the container engine 140.
[0122] In an exemplary embodiment, the first module 302 may include: a performance baseline table unit, which can be used to perform containerized performance benchmark tests on container storage specifications of various storage hardware and software combinations, and establish a performance baseline table for container storage specifications of various storage hardware and software combinations; and a storage specification index table unit, which can be used to collect the allocatable container storage resources of container hosts in the container cluster, and establish a container storage specification index table for container hosts according to the performance baseline table.
[0123] In an exemplary embodiment, the performance baseline table unit may include: a hardware device subunit, which can be used to add the storage hardware device to be tested on the test server and collect storage device information; a device mounting subunit, which can be used to deploy a storage container to be tested on the test server for each type of storage software and mount the storage hardware device to be tested into the storage container to be tested; and a container testing subunit, which can be used to test the maximum I / O performance and resource requirements of various performance saturation levels of the storage container to be tested and establish a performance baseline table for container storage specifications.
[0124] In an exemplary embodiment, the storage specification index table unit may include: a resource acquisition subunit, which can be used to acquire the allocatable container storage resources of the container hosts in the container cluster; a resource matching subunit, which can be used to obtain the container storage specifications and saturation that match the allocatable container storage resources of the container hosts from the performance baseline table; and a storage specification index table subunit, which can be used to establish a container storage specification index table for the container hosts, with the index name being a combination of container storage specifications and saturation, and the index value being a list of container hosts sorted according to resource sufficiency.
[0125] In an exemplary embodiment, the second module 304 may include: a request extraction unit, which can be used to extract storage software requirements, storage capacity requirements, and storage performance requirements from a storage container deployment request; a candidate specification unit, which can be used to find candidate container storage specifications that match the storage software requirements, storage capacity requirements, and storage performance requirements from a performance baseline table, as well as the minimum saturation and maximum saturation of each candidate container storage specification; and a target host unit, which can be used to query a container storage specification index table according to the candidate container storage specifications, and select the container host with the highest resource sufficiency among the index values of the container storage specifications with the lowest resource requirements in the query results as the target container host.
[0126] In an exemplary embodiment, the third module 306 may include: a container configuration unit, which can be used to set the configuration parameters of the storage container according to the candidate container storage specification, set the container image to a storage container image that matches the storage software type of the candidate container storage specification, set the lower limit of container resource configuration to the minimum performance saturation resource requirement of the candidate container storage specification, and set the upper limit of container resource configuration to the maximum performance saturation resource requirement of the candidate container storage specification; and a container deployment unit, which can be used to deploy the storage container in the target container host, load the storage container image, and bind the required physical resources.
[0127] In an exemplary embodiment, the container deployment unit may include: an engine scheduling subunit, which can be used to schedule the container engine of the target container host and download the corresponding storage container image from the container image repository according to the configuration parameters of the storage container; a container resource allocation subunit, which can be used to allocate resources to the storage container on the target container host according to the resource lower limit in the configuration parameters of the storage container through the container engine, and the allocated resources include CPU resources, memory resources and network resources; and a container startup subunit, which can be used to start the storage container, mount the target storage device, load the storage service software, initialize the target storage device, and bind the storage service port.
[0128] In an exemplary embodiment, the fourth module 308 may include: a resource quantity positioning unit, which can be used to determine the target saturation range to be adjusted and the amount of resources to be adjusted based on the current performance load of the storage container; and a resource increment unit, which can be used to request incremental resources through the container engine of the target container host if the storage container needs to increase the amount of resources.
[0129] In an exemplary embodiment, the resource quantity positioning unit may include: a resource increment positioning subunit, which can be used to increase the saturation resource by one level if the current performance load of the storage container is greater than or equal to the upper limit of the current performance saturation range, until the maximum saturation of the storage container is reached; and a resource decrement positioning subunit, which can be used to decrease the saturation resource by one level if the current performance load of the storage container is less than the lower limit of the current performance saturation range, until the minimum saturation of the storage container is reached.
[0130] In an exemplary embodiment, the resource increment unit can be used for: the container engine allocating incremental resources to the storage container from the idle resource pool of the target container host; if the resources in the idle resource pool are less than the incremental resources requested by the container engine, then: resources are reclaimed from service containers with a priority lower than a first preset priority in the target container host and allocated to the storage container; and if the resources in the idle resource pool after reclamation are still less than the incremental resources requested by the container engine, then resources are reclaimed from storage containers with a priority lower than a second preset priority in the target container host and allocated to the storage container, wherein after the resources of storage containers with a priority lower than the second preset priority in the target container host are reclaimed, the remaining resources of the storage container are not less than the resource requirement of the minimum performance saturation of the storage container.
[0131] In an exemplary embodiment, when binding the required physical resources, the container deployment unit can be used to bind independent physical resources to CPU resources and network resources in the storage container whose resource requirements exceed the resource requirement threshold.
[0132] In an exemplary embodiment, the distributed storage container scheduling apparatus may further include: an index table update module, which can be used to update the allocatable resources of the target container host and update the container storage specification index table after the target container host has undergone storage container deployment or container resource changes.
[0133] The following reference Figure 4 To describe an electronic device 400 according to this embodiment of the present invention. Figure 4 The electronic device 400 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present invention.
[0134] like Figure 4As shown, the electronic device 400 is manifested in the form of a general-purpose computing device. The components of the electronic device 400 may include, but are not limited to: at least one processing unit 410, at least one storage unit 420, and a bus 430 connecting different system components (including storage unit 420 and processing unit 410).
[0135] The storage unit stores program code that can be executed by the processing unit 410, causing the processing unit 410 to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of the present invention. For example, the processing unit 410 can perform actions such as... Figure 2 The steps are shown in the figure.
[0136] Storage unit 420 may include a readable medium in the form of a volatile storage unit, such as random access memory (RAM) 4201 and / or cache memory 4202, and may further include a read-only memory (ROM) 4203.
[0137] Storage unit 420 may also include a program / utility 4204 having a set (at least one) program module 4205, such program module 4205 including but not limited to: operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.
[0138] Bus 430 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.
[0139] Electronic device 400 can also communicate with one or more external devices 500 (e.g., keyboard, pointing device, Bluetooth device, etc.), one or more devices that enable a user to interact with electronic device 400, and / or any device that enables electronic device 400 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 450. Furthermore, electronic device 400 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 460. As shown, network adapter 460 communicates with other modules of electronic device 400 via bus 430. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 400, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0140] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the methods according to the embodiments of this disclosure.
[0141] In exemplary embodiments of this disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible embodiments, various aspects of the invention may also be implemented as a program product comprising program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps of the various exemplary embodiments of the invention described in the "Exemplary Methods" section of this specification.
[0142] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0143] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.
[0144] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.
[0145] Program code for performing the operations of this invention can be written in any combination of one or more programming languages, including object-oriented programming languages such as Java and C++, and conventional procedural programming languages such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0146] Furthermore, the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of the present invention, and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Additionally, it is readily understood that these processes may be executed synchronously or asynchronously, for example, in multiple modules.
[0147] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and concept of this disclosure are indicated by the claims.
Claims
1. A distributed storage container scheduling method, characterized in that, include: Establish a performance baseline table for container storage specifications, and based on the performance baseline table, establish a container storage specification index table for each container host. Receive storage container deployment requests, determine candidate container storage specifications and performance saturation ranges, and select target container hosts that match the candidate container storage specifications and performance saturation ranges through the container storage specification index table; Based on the storage container resource configuration parameters of the candidate container storage specifications, deploy the storage container on the target container host; The storage container resource allocation is dynamically adjusted within the performance saturation range based on changes in the storage container performance load.
2. The method as described in claim 1, characterized in that, Establish a performance baseline table for container storage specifications, and based on the performance baseline table, establish a container storage specification index table for each container host, including: Containerization performance benchmark tests were conducted on container storage specifications with various combinations of storage hardware and software, and a performance baseline table for container storage specifications with various combinations of storage hardware and software was established. Collect the allocatable container storage resources of the container hosts in the container cluster, and establish a container storage specification index table for the container hosts based on the performance baseline table.
3. The method as described in claim 2, characterized in that, Containerization performance benchmark tests were conducted on container storage specifications with various storage hardware and software combinations, and a performance baseline table for container storage specifications with various storage hardware and software combinations was established, including: Add the storage hardware device to be tested to the test server and collect storage device information; Deploy a separate storage container for each type of storage software on the test server, and mount the storage hardware device to be tested into the storage container. Test the maximum I / O performance and resource requirements of the storage container under test at various performance saturation levels, and establish a performance baseline table for the container storage specifications.
4. The method as described in claim 3, characterized in that, Collect the allocatable container storage resources of container hosts in the container cluster, and establish a container storage specification index table for the container hosts based on the performance baseline table, including: Collect the allocatable container storage resources of the container hosts in the container cluster; Obtain the container storage specifications and saturation that match the allocatable container storage resources of the container host from the performance baseline table; Create a container storage specification index table for container hosts. The index name is a combination of container storage specification and saturation, and the index value is a list of container hosts sorted by resource sufficiency.
5. The method as described in claim 4, characterized in that, Receiving a storage container deployment request, determining candidate container storage specifications and performance saturation ranges, and selecting a target container host that matches the candidate container storage specifications and performance saturation ranges through the container storage specification index table includes: Extract storage software requirements, storage capacity requirements, and storage performance requirements from storage container deployment requests; Find candidate container storage specifications that match the storage software requirements, storage capacity requirements, and storage performance requirements from the performance baseline table, as well as the minimum and maximum saturation for each candidate container storage specification; Based on the candidate container storage specifications, the container storage specification index table is queried. From the query results, the container host with the highest sufficiency of allocable resources among the index values of the container storage specification with the lowest resource requirements is selected as the target container host.
6. The method as described in claim 5, characterized in that, Deploying the storage container on the target container host according to the storage container resource configuration parameters of the candidate container storage specification includes: The configuration parameters of the storage container are set according to the candidate container storage specifications. The container image is set to a storage container image that matches the storage software type of the candidate container storage specifications. The lower limit of the container resource configuration is set to the resource requirement of the minimum performance saturation of the candidate container storage specifications. The upper limit of the container resource configuration is set to the resource requirement of the maximum performance saturation of the candidate container storage specifications. The storage container is deployed in the target container host, the storage container image is loaded, and the required physical resources are bound.
7. The method as described in claim 6, characterized in that, Deploy the storage container on the target container host, load the storage container image, and bind the required physical resources, including: The target container host's container engine is scheduled to download the corresponding storage container image from the container image repository according to the storage container's configuration parameters; The container engine allocates resources to the storage container on the target container host according to the resource minimum in the storage container's configuration parameters. The allocated resources include CPU resources, memory resources, and network resources. Start the storage container, mount the target storage device, load the storage service software, initialize the target storage device, and bind the storage service port.
8. The method as described in claim 1, characterized in that, Dynamically adjusting storage container resource allocation within the performance saturation range based on changes in storage container performance load includes: Determine the target saturation range and the amount of resources to be adjusted based on the current performance load of the storage container. If the storage container needs to increase its resource volume, it requests incremental resources through the container engine of the target container host.
9. The method as described in claim 8, characterized in that, Based on the current performance load of the storage container, determine the target saturation range and the amount of resources that need to be adjusted, including: If the current performance load of the storage container is greater than or equal to the upper limit of the current performance saturation range, then increase the saturation resource by one level until the maximum saturation of the storage container is reached. If the current performance load of the storage container is less than the lower limit of the current performance saturation range, then reduce the saturation resource by one level until the minimum saturation of the storage container is reached.
10. The method as described in claim 8, characterized in that, If the storage container needs to increase its resource volume, the incremental resources requested through the container engine of the target container host include: The container engine allocates incremental resources to the storage container from the idle resource pool of the target container host. If the resources in the idle resource pool are less than the incremental resources requested by the container engine, then... Resources are reclaimed from service containers on the target container host with a priority lower than a first preset priority and allocated to storage containers; and If the resources in the idle resource pool after reclamation are still less than the incremental resources requested by the container engine, then resources are reclaimed from storage containers in the target container host with a priority lower than the second preset priority and allocated to the storage containers. In this case, after the resources of the storage containers in the target container host with a priority lower than the second preset priority are reclaimed, the remaining resources of the storage containers are not less than the resource requirements for the minimum performance saturation of the storage containers.
11. The method as described in claim 6, characterized in that, The physical resources required for binding include: Bind independent physical resources to CPU and network resources in the storage container whose resource demand exceeds the resource demand threshold.
12. The method as described in claim 4, characterized in that, Also includes: When a storage container is deployed or container resources are changed on the target container host, update the allocatable resources of the target container host and update the container storage specification index table.
13. A distributed storage container scheduling device, characterized in that, include: The first module is used to establish a performance baseline table for container storage specifications, and to establish a container storage specification index table for each container host based on the performance baseline table. The second module is used to receive storage container deployment requests, determine candidate container storage specifications and performance saturation ranges, and select target container hosts that match the candidate container storage specifications and performance saturation ranges through the container storage specification index table. The third module is used to deploy the storage container on the target container host according to the storage container resource configuration parameters of the candidate container storage specifications. The fourth module is used to dynamically adjust the allocation of storage container resources within the performance saturation range based on changes in the performance load of the storage container.
14. An electronic device, characterized in that, include: At least one processor; Storage device for storing at least one program; When the at least one program is executed by the at least one processor, the at least one processor implements the method as described in any one of claims 1-12.
15. A computer-readable medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the method as described in any one of claims 1-12.