Storage resource management method and system

By building a virtual ring queue for storage quality of service scheduling in the edge computing platform and dynamically allocating storage resources, the problem of storage resource contention is solved, stable and differentiated storage quality of service is achieved, and resource allocation flexibility and application service quality are improved.

CN120602434AActive Publication Date: 2025-09-05SHANDONG FUTURE NETWORK RES INST (PURPLE MOUNTAIN LAB IND INTERNET INNOVATION APPL BASE)
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202510721286.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-30
Publication Date
2025-09-05
Estimated Expiration
2045-05-30

AI Technical Summary

Technical Problem

Existing edge computing platforms built on K3s cannot provide stable and differentiated storage service quality when storage resource demand exceeds the storage system capacity, resulting in storage resource contention and unstable performance.

Method used

By defining a cluster storage resource controller, monitoring and allocating storage resources, building a virtual ring queue for storage quality of service scheduling, and using pointer scheduling and time cycle segmentation, storage resources are dynamically allocated to ensure the storage resource priority of different applications and directories.

Benefits of technology

It realizes the flexible allocation of storage resources, improves the flexibility and concurrency of storage resource allocation between different applications, ensures the service quality of key applications, enhances adaptability and scalability, and meets the storage resource requirements of different levels of business.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120602434A_ABST
    Figure CN120602434A_ABST
Patent Text Reader

Abstract

The invention belongs to the technical field of storage, and discloses a storage resource management method and system, and the method comprises the steps: defining a cluster storage resource controller, storing the bandwidth information of each resource, and carrying out the full-dimensional event monitoring of the cluster resources; deploying an adjusting unit in each node through a cluster storage resource controller, and allocating a local resource space by using the adjusting units; according to the bandwidth information in the cluster storage resource controller, the global reference weight of each scheduling unit is calculated and obtained according to the weight priority in each resource, and normalization processing is carried out; adding the metadata information of the storage resources of each scheduling unit into an annular queue, constructing a storage service quality scheduling virtual annular queue, and dynamically allocating the storage resources of the scheduling units by utilizing pointer scheduling and time period segmentation. According to the invention, the flexibility of storage resource allocation among different applications is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of storage technology, and in particular to a storage resource management method and system. Background Art

[0002] Edge computing is a product of the evolution of networks and cloud computing technologies. It provides computing, storage, and networking infrastructure close to users. By deploying and running applications on this infrastructure, it delivers edge cloud services to users. The edge computing market continues to grow rapidly. With the surge in application scale and data transmission volume, network bandwidth and throughput have become performance bottlenecks for applications.

[0003] The construction of an edge computing platform involves multiple technical areas, including computing, storage, networking, and security. Kubernetes (K8S for short) is an open-source container orchestration system that automates the deployment, scaling, and management of containerized applications. In an edge computing architecture, K8S can be used to manage containerized applications on edge nodes, enabling better management and scheduling of edge computing resources. The application of K8S in edge computing architecture primarily includes edge node management, edge node auto-scaling, edge node high availability, edge node security, and edge computing application management and control. The application of K8S in an edge computing architecture can improve the efficiency, stability, and reliability of the edge computing platform.

[0004] K3S is a highly available, CNCF-certified Kubernetes distribution designed for production workloads in unattended, resource-constrained environments, remote locations, or within IoT devices. It features simple installation, a compact footprint, minimal dependencies, strong scalability, and support for heterogeneous resources. These features make K3S ideal for building edge computing infrastructure.

[0005] When it comes to storage resources, users expect throughput to meet the needs of applications such as video playback, cloud desktop office work, and large-scale gaming, and that throughput remains stable and intermittent. Therefore, providing efficient and stable storage service quality has become a core expectation of users for storage service systems.

[0006] Storage Quality of Service (QoS) is a technology that ensures that storage performance reaches a certain level. For example, a database server's disk IOPS must reach a specific value to guarantee high performance. Storage Quality of Service ensures that workload storage resources maintain appropriate performance levels. Although hard disk controllers can process multiple requests simultaneously, this does not mean that they are truly parallel. The physical structure of a hard disk (such as the head and disk) is usually single-threaded, meaning that only one physical operation (such as read or write) can be processed at a time. Concurrency is achieved through rapid switching, not true parallelism.

[0007] SSDs are incredibly fast, so technologies like storage quality of service (QoS) were previously unnecessary. Early SSDs also had very small storage capacities, which meant they couldn't be shared across multiple workloads. But things are different now. SSD capacity has steadily increased over the past few years, and shared workloads have become the new normal. This is especially true for environments like cloud computing, edge computing platforms, and microservices. Storage resources are the most fundamental public infrastructure for applications. As applications grow in size and complexity, multiple workloads compete for IOPS. To ensure the availability of storage resources for mission-critical applications, technologies like storage quality of service are now essential.

[0008] Another benefit of Storage Quality of Service is that it makes storage performance more predictable. Without Storage Quality of Service to limit workloads' storage resource usage, it's possible that one application's storage I / O generation could degrade the I / O performance of other applications. Storage Quality of Service prioritizes available storage bandwidth, ensuring that mission-critical applications receive the bandwidth they need even when competition for storage resources is high.

[0009] Storage Quality of Service (QoS) is a technology used to guarantee specified storage performance for applications, ensuring that specific applications or workloads consistently receive the specified access performance. QoS is an effective means of resolving storage resource contention, primarily addressing storage resource contention between different services and internal storage resource contention (for example, resource preemption during failures, between internal data recovery and normal business access), as well as properly allocating storage resources across different directories within the same application.

[0010] The existing edge computing platform built on K3s has serious deficiencies in the control and support of storage service quality. Especially when the demand for storage resources exceeds the capacity of the storage system, the platform cannot provide stable and differentiated storage service quality for specific applications.

[0011] Therefore, how to provide a storage resource management method and system is a problem that needs to be solved urgently. Summary of the Invention

[0012] Embodiments of the present invention provide a storage resource management method and system to address the serious lack of control and support for storage service quality by edge computing platforms in the prior art, especially the problem that the platform is unable to provide stable and differentiated storage service quality for specific applications when the storage resource demand exceeds the storage system capacity.

[0013] To provide a basic understanding of some aspects of the disclosed embodiments, the following is a brief summary. This summary is not intended to be a comprehensive review, identify key or essential elements, or delineate the scope of these embodiments. Its sole purpose is to present some concepts in a simplified form as a prelude to the detailed description that follows.

[0014] According to a first aspect of an embodiment of the present invention, a storage resource management method is provided.

[0015] In one embodiment, the storage resource management method includes:

[0016] Define a cluster storage resource controller to store bandwidth information for each resource and perform full-dimensional event monitoring of cluster resources;

[0017] Through the cluster storage resource controller, a regulation unit is deployed in each node, and the regulation unit is used to allocate local resource space;

[0018] Based on the bandwidth information in the cluster storage resource controller and the weight priority of each resource, the global reference weight of each scheduling unit is calculated and normalized.

[0019] The metadata information of each scheduling unit storage resource is added to the ring queue to build a storage quality of service scheduling virtual ring queue, and the scheduling unit storage resources are dynamically allocated using pointer scheduling and time cycle segmentation.

[0020] In one embodiment, defining a cluster storage resource controller, storing bandwidth information for each resource, and performing full-dimensional event monitoring of cluster resources includes:

[0021] storing the pre-acquired bandwidth information in the cluster storage resource controller;

[0022] The cluster storage resource controller monitors the creation and destruction of scheduling units and the mounting / unmounting of storage volumes.

[0023] Based on the cluster storage resource controller, monitor changes in namespaces and directories in the scheduling unit;

[0024] The bandwidth information includes: application storage volume information, storage volume bandwidth information, application owner weight, application namespace weight, adjustment unit storage volume list and weight, and weight of the read and write priority directory in the storage volume.

[0025] In one embodiment, a cluster storage resource controller is used to deploy a regulation unit in each node, and the regulation unit is used to allocate local resource space, including:

[0026] Through the cluster storage resource controller, storage resource proxy is performed using the adjustment unit deployed on each node;

[0027] The resource space allocation of local hard disks and quasi-local hard disk spaces in physical nodes is managed through the adjustment units in each node.

[0028] In one embodiment, according to the bandwidth information in the cluster storage resource controller and the weight priority of each resource, a global reference weight of each scheduling unit is calculated and normalized, including:

[0029] Calculate the global reference weight of each scheduling unit based on the priority of each weight type in the bandwidth information;

[0030] The weight of database and storage service scheduling units is set higher than that of non-disk drive read / write applications as the basis for calculation.

[0031] In one embodiment, the calculation expression of the scheduling unit global reference weight is:

[0032]

[0033] α+β+γ+ε=1;

[0034] Where Q p Represents the comprehensive reference weight of the scheduling unit at this node, W u Indicates the basic weight of the user who created the application, W r Indicates the weight of each role in the role list for creating the user, W n Indicates the weight of the namespace to which the scheduling unit belongs, W p Represents the weight value of the scheduling unit, W v Indicates the weight of the storage volume, W d Indicates the weight of the directory of the storage volume mounted by the scheduling unit, V p Indicates the storage volume mounted by the scheduling unit, D v Indicates the directory of the storage volume mounted by the scheduling unit, ∑δ p It indicates the impact of the directory setting in the storage disk volume of the scheduling unit on the storage service quality, and R indicates the role list of the user who created it.

[0035] In one embodiment, metadata information of each scheduling unit storage resource is added to a ring queue to construct a storage quality of service scheduling virtual ring queue, and pointer scheduling and time period segmentation are used to dynamically allocate the scheduling unit storage resources, including:

[0036] The storage quality of service scheduling virtual ring queue node scheduling unit, combined with pointer scheduling, to process storage resource read and write requests;

[0037] Set the corresponding pointer according to the number of CPU cores, combine the storage quality of service to schedule the virtual ring queue, and perform complex processing on the read and write requests of storage resources;

[0038] The metadata information includes: storage resource weight of the scheduling unit, weight ratio, storage volume list and weight, directory in the storage volume and weight.

[0039] In one embodiment, processing storage resource read and write requests by scheduling a scheduling unit of a node in a virtual ring queue using storage quality of service in combination with pointer scheduling includes:

[0040] Based on the cluster storage resource controller, the pointer points to the starting node in the storage quality of service scheduling virtual ring queue, and the scheduling unit of the node is used to process the read and write requests of the storage resource;

[0041] After a preset time has passed, the pointer is moved to the next node of the storage quality of service scheduling virtual ring queue in combination with the busyness of the current storage operation.

[0042] In one embodiment, the expression for the busyness of the storage operation is:

[0043]

[0044] Where, IO c Indicates the disk of the current database server, IO max Indicates the maximum disk supported by the database server, B c Indicates the current bandwidth usage, B max represents the maximum bandwidth, λ represents the disk adjustment factor, μ represents the bandwidth adjustment factor, and L represents the busyness of the current storage operation.

[0045] In one embodiment, the corresponding pointer is set according to the number of CPU cores, and the virtual ring queue is scheduled in combination with storage quality of service to perform multiple processing on the read and write requests of the storage resource, including:

[0046] Set multiple pointers according to the number of CPU cores, and the number of pointers does not exceed the number of CPU cores;

[0047] By creating a new scheduling unit, calculating the global reference weight for the new scheduling unit, adding it to the ring queue, updating the storage quality of service scheduling virtual ring queue, and controlling the storage resources of the new node.

[0048] According to a second aspect of an embodiment of the present invention, a storage resource management system is provided.

[0049] In one embodiment, the storage resource management system includes:

[0050] The resource storage module is used to define the cluster storage resource controller, store the bandwidth information of each resource, and perform full-dimensional event monitoring of cluster resources;

[0051] The deployment allocation module is used to deploy the adjustment unit in each node through the cluster storage resource controller and use the adjustment unit to allocate local resource space;

[0052] The weight normalization module is used to calculate the global reference weight of each scheduling unit based on the bandwidth information in the cluster storage resource controller and the weight priority of each resource, and perform normalization processing;

[0053] The resource management module is used to add the metadata information of each scheduling unit storage resource to the ring queue, build a storage quality of service scheduling virtual ring queue, and dynamically allocate the scheduling unit storage resources using pointer scheduling and time cycle segmentation.

[0054] According to a third aspect of an embodiment of the present invention, a computer device is provided.

[0055] In some embodiments, the computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the steps of the above method when executing the computer program.

[0056] According to a fourth aspect of embodiments of the present invention, a computer-readable storage medium is provided.

[0057] In one embodiment, the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the above method are implemented.

[0058] The technical solution provided by the embodiment of the present invention may have the following beneficial effects:

[0059] 1. The present invention sets storage resource priorities based on edge computing platform users, namespaces, Pod categories, storage volumes, and directories, thereby improving the flexibility of storage resource allocation between different applications.

[0060] 2. The present invention allocates different storage request processing times to Pods by constructing a storage resource scheduling loop and combining it with a pointer scheduling mechanism. At the same time, the multi-pointer scheduling mechanism further improves the concurrency and speed of resource scheduling. When reading and writing Pods, a preemptible time slice allocation mode is adopted to prioritize the service quality of storage resource-sensitive applications.

[0061] 3. When a new Pod is added or scheduled to a cluster node, the algorithm of the present invention can quickly recalculate the weight and update the virtual ring to ensure that the new Pod can obtain the required storage resources in a timely manner, thereby enhancing the scalability and adaptability of the system.

[0062] 4. In response to the requirements of application storage service quality, the present invention implements bandwidth QoS (read bandwidth, write bandwidth, total bandwidth) and IOPS (read IOPS, write IOPS, total IOPS) of storage resources, and can flexibly combine appropriate control methods to ensure that different applications have different read and write priorities for storage resources, and the same application has different read and write priorities for different directories.

[0063] 5. The present invention can configure higher storage QoS for high-priority services, lower QoS for low-priority services, higher QoS for high-priority directories, and lower QoS for low-priority directories, so as to reasonably allocate storage resources and meet the needs of different levels of services.

[0064] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0065] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.

[0066] Figure 1 is a flow chart showing a storage resource management method according to an exemplary embodiment;

[0067] Figure 2 is a principle block diagram of a storage resource management system according to an exemplary embodiment;

[0068] Figure 3 The figure is a schematic diagram showing the structure of a computer device according to an exemplary embodiment. DETAILED DESCRIPTION

[0069] The following description and accompanying drawings sufficiently illustrate the specific embodiments herein to enable those skilled in the art to practice them. Portions and features of some embodiments may be included in or substituted for portions and features of other embodiments. The scope of the embodiments herein includes the entire scope of the claims, including all available equivalents thereof. Herein, the terms "first," "second," and the like are used solely to distinguish one element from another and do not require or imply any actual relationship or order between these elements. In practice, the first element can also be referred to as the second element, and vice versa. Furthermore, the terms "comprise," "comprising," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a structure, device, or apparatus comprising a list of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such structure, device, or apparatus. Without further limitation, an element defined by the phrase "comprising a..." does not preclude the presence of other identical elements in the structure, device, or apparatus comprising the element. The various embodiments herein are described in a progressive manner, with each embodiment focusing on its differences from the other embodiments. Similar or identical parts between the various embodiments can be referenced to each other.

[0070] The terms "longitudinal", "transverse", "up", "down", "front", "back", "left", "right", "vertical", "horizontal", "top", "bottom", "inside", "outside" and the like used herein to indicate orientations or positional relationships based on the orientations or positional relationships shown in the accompanying drawings, are intended only to facilitate the description of this document and simplify the description, and are not intended to indicate or imply that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore should not be construed as a limitation on the present invention. In the description herein, unless otherwise specified and limited, the terms "installed", "connected", and "connected" should be understood in a broad sense, for example, they can be mechanical or electrical connections, or they can be internal connections between two elements, they can be directly connected, or they can be indirectly connected through an intermediate medium. For those of ordinary skill in the art, the specific meanings of the above terms can be understood according to the specific circumstances.

[0071] As used herein, unless otherwise specified, the term "plurality" means two or more.

[0072] In this document, the character " / " indicates that the preceding and following objects are in an "or" relationship. For example, A / B means: A or B.

[0073] In this article, the term "and / or" is used to describe the association relationship between objects, indicating that three relationships can exist. For example, A and / or B means: A or B, or, A and B.

[0074] It should be understood that although the various steps in the flowchart are shown in sequence as indicated by the arrows, these steps are not necessarily performed in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the figure may include multiple sub-steps or multiple stages, and these sub-steps or stages are not necessarily performed at the same time, but can be performed at different times. The execution order of these sub-steps or stages is not necessarily to be performed in sequence, but can be performed in turn or alternately with other steps or at least a portion of the sub-steps or stages of other steps.

[0075] Each module in the device or system of the present application can be implemented in whole or in part by software, hardware, or a combination thereof. The above modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software so that the processor can call and execute the operations corresponding to the above modules.

[0076] In the absence of conflict, the embodiments of the present invention and the features thereof may be combined with each other.

[0077] Figure 1 An embodiment of a storage resource management method of the present invention is shown.

[0078] In this optional embodiment, the storage resource management method includes:

[0079] Step S101: define a cluster storage resource controller, store bandwidth information of each resource, and perform full-dimensional event monitoring of cluster resources;

[0080] Step S102: deploying a regulation unit in each node through the cluster storage resource controller, and using the regulation unit to allocate local resource space;

[0081] Step S103: Calculate the global reference weight of each scheduling unit based on the bandwidth information in the cluster storage resource controller and the weight priority of each resource, and perform normalization processing;

[0082] Step S104: adding metadata information of storage resources of each scheduling unit to a ring queue, constructing a storage quality of service scheduling virtual ring queue, and dynamically allocating storage resources of the scheduling units by using pointer scheduling and time cycle segmentation.

[0083] In this optional embodiment, a cluster storage resource controller is defined to store bandwidth information of each resource, and full-dimensional event monitoring of cluster resources is performed, including: storing pre-acquired bandwidth information in the cluster storage resource controller; monitoring the creation and destruction of scheduling units and the mount / unmount events of storage volumes through the cluster storage resource controller; and monitoring changes in namespaces and directories in the scheduling units based on the cluster storage resource controller; wherein the bandwidth information includes: application storage volume information, storage volume bandwidth information, application owner weight, application namespace weight, adjustment unit storage volume list and weight, and weight of the read / write priority directory in the storage volume.

[0084] It should be noted that the regulation unit is Pod, which is the smallest scheduling unit in k8s and contains one or more containers.

[0085] In this optional embodiment, an adjustment unit is deployed in each node through a cluster storage resource controller, and the adjustment unit is used to allocate local resource space, including: performing storage resource agency through a cluster storage resource controller using the adjustment unit deployed in each node; and managing the resource space allocation of local hard disks and quasi-local hard disk spaces in physical nodes through the adjustment unit in each node.

[0086] In this optional embodiment, based on the bandwidth information in the cluster storage resource controller and the weight priority in each resource, the global reference weight of each scheduling unit is calculated and normalized, including: calculating the global reference weight of each scheduling unit based on the priority of each type of weight in the bandwidth information; setting the weight of database and storage service scheduling units higher than the weight of hard disk-free read and write applications as the basis for calculation.

[0087] In this optional embodiment, the calculation expression of the scheduling unit global reference weight is:

[0088]

[0089] α+β+γ+ε=1;

[0090] Where Q p Represents the comprehensive reference weight of the scheduling unit at this node, W u Indicates the basic weight of the user who created the application, W r Indicates the weight of each role in the role list for creating the user, W n Indicates the weight of the namespace to which the scheduling unit belongs, W p Represents the weight value of the scheduling unit, W v Indicates the weight of the storage volume, W d Indicates the weight of the directory of the storage volume mounted by the scheduling unit, Vp Indicates the storage volume mounted by the scheduling unit, D v Indicates the directory of the storage volume mounted by the scheduling unit, ∑δ p It indicates the impact of the directory setting in the storage disk volume of the scheduling unit on the storage service quality, and R indicates the role list of the user who created it.

[0091] In this optional embodiment, the metadata information of the storage resources of each scheduling unit is added to a circular queue to construct a storage service quality scheduling virtual circular queue, and pointer scheduling and time period segmentation are used to dynamically allocate the storage resources of the scheduling unit, including: processing storage resource read and write requests through the scheduling unit of the node in the storage service quality scheduling virtual circular queue combined with pointer scheduling; setting corresponding pointers according to the number of CPU cores, combining the storage service quality scheduling virtual circular queue, and performing multiple processing on the storage resource read and write requests at the same time; wherein, the metadata information includes: the storage resource weight of the scheduling unit, the weight ratio, the storage volume list and weight, the directory in the storage volume and the weight.

[0092] In this optional embodiment, the storage resource read and write requests are processed by the scheduling unit of the node in the storage quality of service scheduling virtual ring queue, combined with pointer scheduling, including: based on the cluster storage resource controller, pointing the pointer to the starting node in the storage service quality of service scheduling virtual ring queue, and using the scheduling unit of the node to process the storage resource read and write requests; after a preset time, combined with the busyness of the current storage operation, the pointer is moved to the next node in the storage service quality of service scheduling virtual ring queue.

[0093] In this optional embodiment, the expression for the busyness of the storage operation is:

[0094]

[0095] Where, IO c Indicates the disk of the current database server, IO max Indicates the maximum disk supported by the database server, B c Indicates the current bandwidth usage, B max represents the maximum bandwidth, λ represents the disk adjustment factor, μ represents the bandwidth adjustment factor, and L represents the busyness of the current storage operation.

[0096] In this optional embodiment, corresponding pointers are set according to the number of CPU cores, combined with the storage service quality scheduling virtual ring queue, and multiple read and write requests for storage resources are processed at the same time, including: setting multiple pointers according to the number of CPU cores, and the number of pointers does not exceed the number of CPU cores; by creating a new scheduling unit, calculating the global reference weight for the new scheduling unit, adding it to the ring queue, updating the storage service quality scheduling virtual ring queue, and controlling the storage resources of the new node.

[0097] Figure 2 An embodiment of a storage resource management system of the present invention is shown.

[0098] In this optional embodiment, the storage resource management system includes:

[0099] Resource storage module 201, used to define the cluster storage resource controller, store the bandwidth information of each resource, and perform full-dimensional event monitoring of cluster resources;

[0100] The deployment allocation module 202 is used to deploy the adjustment unit in each node through the cluster storage resource controller and use the adjustment unit to allocate local resource space;

[0101] The weight normalization module 203 is used to calculate the global reference weight of each scheduling unit according to the bandwidth information in the cluster storage resource controller and the weight priority of each resource, and perform normalization processing;

[0102] The resource management module 204 is used to add metadata information of each scheduling unit storage resource to a ring queue, build a storage quality of service scheduling virtual ring queue, and dynamically allocate scheduling unit storage resources using pointer scheduling and time cycle segmentation.

[0103] In order to facilitate understanding of the above technical solutions of the present invention, the above technical solutions of the present invention are further explained from the perspective of architecture and principle as follows:

[0104] The keywords and their English expressions, abbreviations and key terms used for the search are defined as follows:

[0105] K8S, a container management engine (Kubernetes).

[0106] K3S is a streamlined version of K8S, retaining only core functions.

[0107] Pod, the smallest scheduling unit in k8s, contains one or more containers.

[0108] PV, k8s provides persistent storage data volume resources for Pod.

[0109] DaemonSet, a Pod that runs on each node in k8s.

[0110] Deployment is a resource object that schedules a group of Pods in k8s.

[0111] The specific steps for implementing this plan are as follows:

[0112] 1) Define the cluster storage resource controller storage-qos-controller. This controller is a deployment resource with three Pod replicas. It mainly stores QoS information for various resources on the storage platform, such as the weight of the application owner, the weight of the application namespace, the list and weight of the Pod's storage volumes, and the weight of the directories in each storage volume that need to be read and written according to priority. It also monitors Pod creation and destruction, storage volume mount / unmount events, namespace changes, directory changes, etc.

[0113] 2) Each node of the platform deploys the daemonset resource storage agent storage-qos-agent, whose main function is to directly manage the resource space allocation of the local hard disk / local hard disk-like space of the physical node (supporting underlying file interfaces such as ext4, xfs, btrfsd, etc.); each data volume has three copies, distributed on different physical nodes; when an application needs to read or write a storage volume, the storage-qos-agent will request the storage resource QoS configuration of the application from the storage-qos-controller, and then select the node with the lowest operating system disk io load among the three data volume copies as the master node for this read or write request, and then schedule it according to the following method. After the master node completes the reading and writing, the Raft protocol is used to synchronize the data to the other two replica data volumes.

[0114] 3) Assume that the edge computing platform application namespace is N i , the namespace storage resource weight is W n , namespace N i The storage resource weights of the Pods in p , the storage resource weight of the Pod mounted data volume is set to W v , the weight of the directory that needs priority control in the data volume is set to W d .

[0115] The weight of each category ranges from 1 to 10. The larger the value, the higher the priority. Database and storage service pods are set to high weights, while non-disk read-write applications such as HTTP front-end and back-end applications are set to low weights.

[0116] 4) Calculate the global reference weight Q of each Podp , which is expressed as follows:

[0117]

[0118] α+β+γ+ε=1;

[0119] Where Q p Represents the comprehensive reference weight of the scheduling unit at this node, W u Indicates the basic weight of the user who created the application, W r Indicates the weight of each role in the role list for creating the user, W n Indicates the weight of the namespace to which the scheduling unit belongs, W p Represents the weight value of the scheduling unit, W v Indicates the weight of the storage volume, W d Indicates the weight of the directory of the storage volume mounted by the scheduling unit, V p Indicates the storage volume mounted by the scheduling unit, D v Indicates the directory of the storage volume mounted by the scheduling unit, ∑δ p It indicates the impact of the directory setting in the storage disk volume of the scheduling unit on the storage service quality, and R indicates the role list of the user who created it.

[0120] Among them, α+β+γ+ε=1, which determines the impact of users, namespaces, pods, and pod storage volumes on the QoS of the final storage resources; ∑δ p =1, determines the impact of the directory set in the Pod's storage disk volume on the storage resource QoS.

[0121] 5) Q p Perform normalization processing, Among them, G i represents the weight ratio of the i-th Pod, n represents the number of Pods on the node, Qp i represents the global reference weight of the Pod described in step 4) of the i-th step, Represents the sum of the global reference weights of each Pod in the node.

[0122] 6) Set up a virtual ring queue for storage resource QoS scheduling and add the metadata information of each Pod’s storage resources to the ring queue; the metadata information mainly includes: Pod storage resource weight Q p , weight ratio G i , storage volume list and weight, storage volume directory and weight, etc.

[0123] 7) Set pointer p to the start node of the storage resource QoS scheduling virtual ring queue, set the time period window to T, and the processing time allocated to each Pod to T*G i, when the processing time of the current Pod is reached T*G i When , the pointer moves to the next node of the storage resource QoS scheduling virtual ring queue.

[0124] 8) When processing the storage resource read and write requests of each Pod, the time period T*G i Divide into time slices ΔT; calculate the relative weight ratio of each read-write directory Among them, V p Indicates the storage volume mounted by the Pod, D v Represents the directory of the storage volume mounted by the Pod. The basic time slice obtained by each directory is Ni = Di * ΔT. During each scheduling, time slices are preferentially allocated to directories under high-weight storage volumes, while allowing them to preempt the time slices originally obtained by directories under low-weight storage volumes. The expression using load L to quantify the busyness of the current storage operation is as follows:

[0125]

[0126] Where, IO c Indicates the disk of the current database server, IO max Indicates the maximum disk supported by the database server, B c Indicates the current bandwidth usage, B max represents the maximum bandwidth, λ represents the disk adjustment factor, μ represents the bandwidth adjustment factor, and L represents the busyness of the current storage operation.

[0127] Where λ+μ=1, with the default values ​​of λ=0.6 and μ=0.4. When L<0.8, scheduling is performed normally according to the weight ratio. When L≥0.8, it indicates that the current load is high and time slice preemption may occur. The scheduling time slice interval of the low-priority storage volume directory needs to be extended. The number of time slices n=L / L0, where L0 is the baseline load and defaults to 0.5. The continuous unservice tolerance time of any storage volume shall not exceed 3*T*G. i (i.e., three complete Pod storage resource scheduling cycles). When the waiting time of low-priority storage volumes and directories reaches the tolerance time, a compensation time slice will be forcibly inserted in the next Pod storage resource scheduling cycle to schedule read and write requests for the directory.

[0128] 9) Multiple pointers p can be set according to the number of CPU cores i ~p n The number of pointers is less than or equal to the number of node CPU cores. The interval between the rotation cycles of each pointer is T. The processing is performed according to the processing described in step 7) and step 8).

[0129] 10) When a new Pod is created or scheduled to the current cluster node, repeat steps 4) to 8) to reconstruct the virtual ring and implement priority control of application storage resources.

[0130] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 3 As shown. The computer device includes a processor, a memory, and a network interface connected via a system bus. The processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and computer program in the non-volatile storage medium. The database of the computer device is used to store static information and dynamic information data. The network interface of the computer device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, the steps of the above-mentioned method embodiment are implemented.

[0131] Those skilled in the art will understand that Figure 3 The structure shown in the figure is merely a block diagram of a portion of the structure related to the solution of the present invention and does not constitute a limitation on the computer device to which the solution of the present invention is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.

[0132] In addition, the present invention also provides a computer device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiment when executing the computer program.

[0133] In addition, the present invention also provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps in the above method embodiment are implemented.

[0134] Those skilled in the art will appreciate that all or part of the processes in the above-mentioned embodiment methods can be implemented by instructing the relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided by the present invention can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory or optical memory, etc. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).

[0135] The present invention is not limited to the structures described above and shown in the drawings, and various modifications and changes can be made without departing from the scope thereof. The scope of the present invention is limited only by the appended claims.

Claims

1. A storage resource management method, characterized in that: include: Define a cluster storage resource controller to store bandwidth information for each resource and perform full-dimensional event monitoring of cluster resources; Through the cluster storage resource controller, a regulation unit is deployed in each node, and the regulation unit is used to allocate local resource space; Based on the bandwidth information in the cluster storage resource controller and the weight priority of each resource, the global reference weight of each scheduling unit is calculated and normalized. The metadata information of each scheduling unit storage resource is added to the ring queue to build a storage quality of service scheduling virtual ring queue, and the scheduling unit storage resources are dynamically allocated using pointer scheduling and time cycle segmentation.

2. The storage resource management method according to claim 1, wherein: Defining a cluster storage resource controller, storing bandwidth information for each resource, and performing full-dimensional event monitoring of cluster resources includes: storing the pre-acquired bandwidth information in the cluster storage resource controller; The cluster storage resource controller monitors the creation and destruction of scheduling units and the mounting / unmounting of storage volumes. Based on the cluster storage resource controller, monitor changes in namespaces and directories in the scheduling unit; The bandwidth information includes: application storage volume information, storage volume bandwidth information, application owner weight, application namespace weight, adjustment unit storage volume list and weight, and weight of the read and write priority directory in the storage volume.

3. The storage resource management method according to claim 1, wherein: The step of deploying a regulation unit in each node through the cluster storage resource controller and allocating local resource space using the regulation unit includes: Through the cluster storage resource controller, storage resource proxy is performed using the adjustment unit deployed on each node; The resource space allocation of local hard disks and quasi-local hard disk spaces in physical nodes is managed through the adjustment units in each node.

4. The storage resource management method according to claim 1, wherein: The step of calculating the global reference weight of each scheduling unit based on the bandwidth information in the cluster storage resource controller and the weight priority of each resource, and performing normalization processing includes: Calculate the global reference weight of each scheduling unit based on the priority of each weight type in the bandwidth information; The weight of database and storage service scheduling units is set higher than that of non-disk drive read / write applications as the basis for calculation.

5. The storage resource management method according to claim 4, characterized in that: The calculation expression of the global reference weight of the scheduling unit is: α+β+γ+ε=1; Where Q p Represents the comprehensive reference weight of the scheduling unit at this node, W u Indicates the basic weight of the user who created the application, W r Indicates the weight of each role in the role list for creating the user, W n Indicates the weight of the namespace to which the scheduling unit belongs, W p Represents the weight value of the scheduling unit, W v Indicates the weight of the storage volume, W d Indicates the weight of the directory of the storage volume mounted by the scheduling unit, V p Indicates the storage volume mounted by the scheduling unit, D v Indicates the directory of the storage volume mounted by the scheduling unit, Σδ p It indicates the impact of the directory setting in the storage disk volume of the scheduling unit on the storage service quality, and R indicates the role list of the user who created it.

6. The storage resource management method according to claim 1, wherein: The step of adding metadata information of storage resources of each scheduling unit to a ring queue, constructing a storage quality of service scheduling virtual ring queue, and dynamically allocating storage resources of the scheduling unit by using pointer scheduling and time period segmentation includes: The storage quality of service scheduling virtual ring queue node scheduling unit, combined with pointer scheduling, to process storage resource read and write requests; Set the corresponding pointer according to the number of CPU cores, combine the storage quality of service to schedule the virtual ring queue, and perform complex processing on the read and write requests of storage resources; The metadata information includes: storage resource weight of the scheduling unit, weight ratio, storage volume list and weight, directory in the storage volume and weight.

7. The storage resource management method according to claim 6, wherein: The processing of the storage resource read and write request by the scheduling unit of the node in the virtual ring queue by the storage quality of service scheduling combined with pointer scheduling includes: Based on the cluster storage resource controller, the pointer points to the starting node in the storage quality of service scheduling virtual ring queue, and the scheduling unit of the node is used to process the read and write requests of the storage resource; After a preset time has passed, the pointer is moved to the next node of the storage quality of service scheduling virtual ring queue in combination with the busyness of the current storage operation.

8. The storage resource management method according to claim 7, wherein: The expression of the busyness of the storage operation is: Where, IO c Indicates the disk of the current database server, IO max Indicates the maximum disk supported by the database server, B c Indicates the current bandwidth usage, B max represents the maximum bandwidth, λ represents the disk adjustment factor, μ represents the bandwidth adjustment factor, and L represents the busyness of the current storage operation.

9. The storage resource management method according to claim 6, wherein: The method of setting the corresponding pointer according to the number of CPU cores, scheduling the virtual ring queue in combination with the storage quality of service, and performing multiple processing on the read and write requests of the storage resources includes: Set multiple pointers according to the number of CPU cores, and the number of pointers does not exceed the number of CPU cores; By creating a new scheduling unit, calculating the global reference weight for the new scheduling unit, adding it to the ring queue, updating the storage quality of service scheduling virtual ring queue, and controlling the storage resources of the new node.

10. A storage resource management system, characterized in that: include: The resource storage module is used to define the cluster storage resource controller, store the bandwidth information of each resource, and perform full-dimensional event monitoring of cluster resources; The deployment allocation module is used to deploy the adjustment unit in each node through the cluster storage resource controller and use the adjustment unit to allocate local resource space; The weight normalization module is used to calculate the global reference weight of each scheduling unit based on the bandwidth information in the cluster storage resource controller and the weight priority of each resource, and perform normalization processing; The resource management module is used to add the metadata information of each scheduling unit storage resource to the ring queue, build a storage quality of service scheduling virtual ring queue, and dynamically allocate the scheduling unit storage resources using pointer scheduling and time cycle segmentation.

Citation Information

Patent Citations

  • Multi-dimensional resource scheduling method under Kubernetes cluster architecture system

    CN111522639A

  • Kubernetes scheduling method and device and storage medium

    CN114064296A

  • Scheduling method and device, scheduler and readable storage medium

    CN117492929A

  • Application resource scheduling method and device based on kubernetes cluster and distributed system

    CN117492956A

  • Method for optimal resource selection based on available GPU resource analysis in large-scale container platform

    US20230155958A1