Method for building a distributed storage cluster
By constructing multiple subgroups in a distributed storage cluster and adjusting storage capacity between them, the problem of uneven distribution of storage capacity between nodes is solved, and dynamic adjustment of storage capacity and efficiency of task execution are achieved.
Patent Information
- Application Number
- CN202410474091.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-19
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2044-04-19
AI Technical Summary
There is a lack of a solution in the prior art to allocate storage capacity reasonably according to demand between different nodes. Especially when dynamic storage space capacity fluctuates, how nodes adapt and perform related tasks is an urgent problem.
By building a distributed storage cluster, multiple subgroups are used to manage storage nodes. Each subgroup contains multiple storage nodes, and storage capacity is adjusted between subgroups to adapt to changes in storage capacity requirements of different subgroups. When the flag nodes of multiple subgroups are gathered in a common subgroup, the storage nodes of the common subgroup perform data operation tasks synchronously.
It achieves dynamic adjustment and optimization of storage capacity, ensures the capacity utilization of the storage cluster and the efficiency of task execution, and adapts to the dynamic storage needs of different nodes.
Smart Images

Figure CN118250293B_ABST
Abstract
Description
Technical Field
[0001] The present invention mainly relates to the technical field of data storage, and more specifically, to a method for supporting storage of distributed nodes and building a distributed storage cluster in the storage field. Background Art
[0002] Unified storage and distributed storage have always been the two main directions in the storage field. Unified storage refers to a storage architecture that integrates multiple storage technologies and storage protocols, supports file, block and object storage, and can store and access data on a centrally managed platform. The advantage of unified storage is that it simplifies storage management operations, improves data centralization and the associated data availability and flexibility.
[0003] Compared with unified storage, distributed storage refers to an architecture that stores data in multiple nodes. It advocates dividing data into multiple data blocks and performing distributed storage and backup on different nodes. The distributed deployment feature of data provides higher scalability and fault tolerance, and fault tolerance allows a certain error rate. The advantage of distributed data storage is that it can meet the needs of large-scale data processing and high concurrent access.
[0004] In distributed storage, there is currently a lack of solutions to reasonably allocate capacity between different nodes according to demand. For example, different nodes face dynamic demands for their space, and how to adjust storage capacity between different nodes is almost not covered in current technology. What's more, the storage capacity demand of storage nodes is not only dynamic, but also in the case of continuous fluctuations in the capacity of dynamic storage space, how should the series of nodes adapt to the floating changes in storage capacity and choose the time to perform related tasks; in particular, how active nodes and relatively static nodes respectively adapt to the floating changes in storage capacity and choose the time to perform task operations is a technical problem that needs to be solved urgently. Summary of the invention
[0005] The present application relates to a method for constructing a distributed storage cluster, which is characterized by comprising:
[0006] A storage cluster is constructed using a plurality of subgroups, each of which includes a plurality of storage nodes; at least one storage node is defined as a marker node in each of the plurality of selected subgroups;
[0007] In response to the dynamic changes in storage capacity requirements of different subgroups, storage capacity is adjusted between subgroups within the storage cluster to build a distributed storage cluster in which the storage capacity of subgroups changes with the trend of space demand;
[0008] When the marker nodes of each selected subgroup are gathered together in a common subgroup, the storage nodes of the common subgroup are triggered to synchronously execute the specified data operation tasks, thereby allowing at least a part of the subgroups to traverse or implement the data operation tasks once or multiple times during one or more rounds of storage capacity adjustment between multiple subgroups in the storage cluster.
[0009] In the above method, the storage node includes a cloud storage system (cloud storage) or the storage node includes a network attached storage (network attached storage) or the storage node includes storage servers (servers).
[0010] The above method adjusts the storage capacity between each subgroup to build a distributed storage cluster model, including: the storage capacity of any single subgroup itself increases and changes with the growth trend of the space demand of any single subgroup, and one or more storage nodes are deployed from the remaining subgroups to any single subgroup.
[0011] The above method adjusts the storage capacity between each subgroup to build a distributed storage cluster model, including: the storage capacity of any single subgroup itself decreases as the space demand of any single subgroup decreases, and one or more storage nodes are deployed from any single subgroup to the remaining subgroups.
[0012] In the above method, the specified data operation task includes at least one of data backup, data snapshot, data replication, and data recovery, or includes other data storage operations not listed.
[0013] According to the above method, once the current actual storage capacity of any subgroup is within a proportional range of the total capacity of the storage cluster, the marker node allocated to the subgroup will stay there and will not be transferred away; and only when the current actual storage capacity of any subgroup is not within the proportional range of the total capacity of the storage cluster, the marker node previously allocated to the subgroup is allowed to be transferred away (that is, the parked marker node is transferred away).
[0014] In the above method, if any subgroup with a marker node needs to deploy its own storage nodes to the remaining subgroups in the storage cluster, the deployment event is limited to meet the following conditions: for example, the marker node is preferentially transferred from any subgroup to the remaining subgroups with a high priority, while the regular storage nodes other than the marker nodes are delayed or lagging in being transferred from any subgroup to the remaining subgroups with a low priority.
[0015] According to the above method, for a static subgroup whose storage capacity change scale is lower than a certain threshold, the marker node (i.e., the parked marker node) that has been relocated from any subgroup with storage capacity within the ratio range is guided to switch to the static subgroup: after the static subgroup is triggered to perform a data operation task, the marker node immediately rebounds to other subgroups of the storage cluster, thereby maintaining the storage capacity change scale of the static subgroup lower than a certain threshold.
[0016] The present application relates to a method for constructing a distributed storage cluster, which is characterized by comprising:
[0017] A storage cluster is constructed by multiple subgroups, each of which includes multiple storage nodes; at least one storage node is defined as a marker node in each of the selected subgroups; in response to the dynamic change requirements of storage capacity of different subgroups, the storage capacity is adjusted between the subgroups in the storage cluster to construct a distributed storage cluster in which the storage capacity of the subgroup changes with the trend of space demand; wherein, in the stage of adjusting the storage capacity between the subgroups:
[0018] As the space requirements of the storage capacity of each subgroup fluctuate dynamically, different landmark nodes are guided to gather towards the subgroup with the largest storage capacity (equivalent to stopping);
[0019] Until different marker nodes are guided to gather together in the same common subgroup, so that each storage node of the common subgroup is triggered to synchronously execute the specified data operation task;
[0020] Thereby, during one or more rounds of storage capacity adjustment between multiple sub-groups in the storage cluster, at least a part of the sub-groups is allowed to perform the data operation task once or multiple times.
[0021] The above method, wherein, at the stage of adjusting the storage capacity between the subgroups: for the static subgroup whose storage capacity change scale is lower than a certain threshold, the marker node that is readjusted from the subgroup whose storage capacity tends to change to the largest (i.e., the marker node that was previously gathered and parked) is guided to switch to the static subgroup: after the static subgroup is triggered to perform a data operation task, the marker node immediately rebounds to other subgroups of the storage cluster, maintaining the storage capacity change scale of the static subgroup below a certain threshold.
[0022] In the above method, the storage node includes a cloud storage system (cloud storage) or the storage node includes storage servers (servers) or includes a network attached storage (network attached storage).
[0023] The above method adjusts the storage capacity between each subgroup to build a distributed storage cluster model, including: the storage capacity of any single subgroup itself increases and changes with the growth trend of the space demand of any single subgroup, and one or more storage nodes are deployed from the remaining subgroups to any single subgroup.
[0024] The above method adjusts the storage capacity between each subgroup to build a distributed storage cluster model, including: the storage capacity of any single subgroup itself decreases as the space demand of any single subgroup decreases, and one or more storage nodes are deployed from any single subgroup to the remaining subgroups.
[0025] In the above method, the specified data operation task includes at least one of data backup, data snapshot, data replication, and data recovery, or includes other unlisted data storage operations.
[0026] In the above method, when the current actual storage capacity of any subgroup is within a proportional range of the total capacity of the storage cluster, the marker node allocated to the subgroup will stay there and will not be transferred away; and only when the current actual storage capacity of any subgroup is not within the proportional range of the total capacity of the storage cluster, the marker node previously allocated to the subgroup is allowed to be transferred away again.
[0027] In the above method, if any subgroup with a marker node needs to deploy its own storage nodes to the remaining subgroups in the storage cluster, the deployment event is limited to meet the following conditions: the marker node is transferred from any subgroup to the remaining subgroups with high priority, and the regular storage nodes other than the marker node are transferred from any subgroup to the remaining subgroups with low priority.
[0028] The present application relates to a method for constructing a distributed storage cluster, which is characterized by comprising:
[0029] A storage cluster is constructed by multiple subgroups, each of which includes multiple storage nodes; at least one storage node is defined as a marker node in each of the selected subgroups; in response to the dynamic change requirements of storage capacity of different subgroups, the storage capacity is adjusted between the subgroups in the storage cluster to construct a distributed storage cluster in which the storage capacity of the subgroup changes with the trend of space demand; wherein, in the stage of adjusting the storage capacity between the subgroups:
[0030] As the space requirements of the storage capacity of each subgroup fluctuate dynamically, different marker nodes are guided to gather towards a subgroup with the highest frequency of storage capacity changes (for example, the subgroup with the highest frequency of storage capacity changes often represents the hot subgroup corresponding to data operations rather than the static subgroup of data operations, which is an example of subgroup division by frequency band);
[0031] Until different marker nodes are guided to gather together in the same common subgroup, so that each storage node of the common subgroup is triggered to synchronously execute the specified data operation task;
[0032] Thereby, during one or more rounds of storage capacity adjustment between multiple sub-groups in the storage cluster, at least a part of the sub-groups is allowed to perform the data operation task once or multiple times.
[0033] One of the advantages of the example introduced in the context of this application is that it is based on the technology of distributing and storing data objects on discrete storage nodes, for example, dividing data objects into many data blocks, thereby performing distributed storage and backup on different storage nodes. Backup can be used as a reliance on redundancy and data recovery, and the distributed deployment solution of data provides higher scalability and fault tolerance. Scalability allows the system to expand new nodes on a large scale, or keep the original number of nodes unchanged while performing internal capacity reduction or expansion adjustments on certain nodes, and fault tolerance allows for data error rates. The advantage of distributed data storage is that it can meet the needs of large-scale data processing and data errors and recovery during it, and easily cope with the pressure of high concurrent access caused by external multiple access paths, and solve the access bandwidth mismatch problem caused by excessive data concentration.
[0034] The second advantage of the example introduced in the context of this application is that distributed storage can fully focus on the stability and robustness of data. Stability and robustness are reflected in the fact that the data distributed storage solution naturally supports data backup and recovery capabilities between different nodes, and is also suitable for strengthening data encryption and access control of different nodes. Data backup and fault recovery capabilities between distributed nodes are a necessity for data storage in many industries, such as disaster recovery. The main purpose of disaster recovery is to ensure business continuity as much as possible when natural or man-made factors cause a disaster in the system. The importance of disaster recovery is also related to unexpected events in the storage system (such as fire, earthquake, power outages, etc.), and work stagnates, but the entire system still recovers quickly based on distributed nodes and continues to work, highlighting its high stability and robustness.
[0035] The third advantage of the example introduced in the context of this application is that it meets the needs of allocating capacity between different storage nodes according to actual space usage, and the nodes can shrink and expand each other. The scheduling mode allows data to be evenly or unevenly distributed to each node between nodes, improving capacity utilization and adapting to individual node needs. For example, when the nodes are adjusted with each other, the unique storage needs of each isolated individual storage node are met on the basis of allowing the entire storage system to operate at a higher storage space utilization rate. Regarding the unique needs of isolated individual storage nodes, for example, subgroups with a higher frequency of storage capacity changes and their storage nodes often represent their corresponding hot subgroups of data, and subgroups with a lower frequency of storage capacity changes and their storage nodes often represent their corresponding static subgroups of data. Hot subgroups and static subgroups each have different data operation requirements, and it is very necessary to meet the unique needs of individual storage nodes.
[0036] The fourth advantage of the example introduced in the context of this application is that it couples or decouples specific data tasks and dynamic storage capacity changes of storage nodes. Without intervention, the subgroup and its nodes adaptively implement corresponding data operation tasks according to the floating quantity deployment or data load. The specific tasks of active nodes and relatively static nodes are respectively coupled with the floating changes of their storage capacity. After executing the tasks at the right time, active nodes and static nodes can flexibly and adaptively exit their respective specific tasks and achieve decoupling from the floating changes of storage capacity. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In order to make the above purposes, features and advantages more understandable, the following text will explain the specific implementation methods in detail in conjunction with the drawings. After reading the following description and referring to the following drawings, the features and advantages of the present application will become apparent.
[0038] Figure 1 It is a storage cluster built based on multiple parallel sub-groups.
[0039] Figure 2 There are large differences in data load between different subgroups.
[0040] Figure 3 It allocates space by adjusting storage nodes between different subgroups.
[0041] Figure 4 There are different levels of priority in the allocation of storage nodes.
[0042] Figure 5 Each storage node in the subgroup is triggered to execute tasks synchronously.
[0043] Figure 6 It is to let the subgroup traverse one or more tasks during multiple rounds of adjustments.
[0044] Figure 7 Each storage node of the static subgroup is triggered to execute the task. DETAILED DESCRIPTION
[0045] The technical solutions disclosed in the present application will be clearly and completely described below in conjunction with specific embodiments. However, the embodiments described are only embodiments used for narrative explanation in the present application and are not all embodiments. Based on these embodiments, technicians in this field should realize that any solution obtained without creative work falls within the scope of protection of the present application.
[0046] See also Figure 1 The storage cluster COL (cluster) has a large number of parallel subgroups Clu1-Clu3 and more parallel subgroups not shown in the figure. There are many differences between subgroups Clu1-Clu3: for example, different subgroups have different geographical deployment locations, or different subgroups use different access rights, or different subgroups use different encryption and decryption, or different subgroups use different file formats, etc., but not limited to these.
[0047] See also Figure 1 Before introducing the specific implementation plan, in order to fully understand the technical solution disclosed in this article and the advantages it brings, the concepts of unified storage and distributed storage will be compared and introduced in this article. Unified storage and distributed storage are two different development directions of storage architecture, and each has different adaptation scenarios. An important goal of this article is to use distributed storage to perform distributed storage and backup on different nodes to provide higher scalability and fault tolerance; at the same time, it has a highly flexible data adjustment mode, so that distributed storage can distribute data evenly or unevenly to each node between separate nodes, that is, distributed storage has a centralized management function similar to unified storage. However, it can go one step further than unified storage. Distributed storage couples or decouples specific data tasks and dynamic storage capacity changes of storage nodes. Without intervention, subgroups and their storage nodes adaptively implement related data operation tasks according to the floating data load loaded on themselves.
[0048] See also Figure 1 , subgroup Clu1 includes storage nodes Clu1a, Clu1b, Clu1c...Clu1f, etc. Due to space limitations, more storage nodes are not shown one by one in subgroup Clu1.
[0049] See also Figure 1 , subgroup Clu2 includes storage nodes Clu2a, Clu2b, Clu2c...Clu2f, etc. Due to space limitations, more storage nodes are not shown one by one in subgroup Clu2.
[0050] See also Figure 1 , subgroup Clu3 includes storage nodes Clu3a, Clu3b, Clu3c...Clu3f, etc. Due to space limitations, more storage nodes are not shown one by one in subgroup Clu3.
[0051] See also Figure 1 , about the concept of unified storage: Basically, what the industry calls unified storage basically refers to a storage architecture that integrates multiple storage technologies and protocols. It can support file, block and object storage at the same time, so that data objects can be stored and accessed on a centrally managed platform. The advantage of unified storage is that it simplifies storage management operations and improves data availability and flexibility. The main focus is on the centralized management of storage data.
[0052] See also Figure 1 , About the concept of distributed storage: Basically, what the industry calls distributed storage refers to a storage architecture that deploys and stores data in multiple nodes. It divides the data into multiple blocks and performs distributed storage and backup on different nodes, providing higher scalability and fault tolerance. The advantage of distributed storage is that it can meet the needs of large-scale data processing and high concurrent access. The main focus is on the distributed deployment of storage data by nodes. This application will focus on introducing the relevant solutions of distributed storage and combining some advantages of unified storage into distributed storage.
[0053] See also Figure 1 In terms of data type management: unified storage is suitable for businesses that require centralized management and access to files, blocks, and objects. It can manage different types of data through a storage resource pool, improving the utilization and management efficiency of storage resources. Unified storage also provides similar data protection and rapid recovery capabilities, and is suitable for application scenarios that require high availability and easy management.
[0054] See also Figure 1 In terms of data parallel management, distributed storage is suitable for applications that need to process large-scale data and high concurrent access. It provides higher parallelism and scalability by distributing data on multiple nodes. Distributed storage can also provide high reliability and fault tolerance through data redundancy and backup, which is suitable for application scenarios that require high performance and scalability. Parallel subgroups Clu1-Clu3 are typical examples of distributed storage.
[0055] See also Figure 1Based on the comparative explanation in the previous article, this article requires data backup and recovery functions, and will further disclose the distributed storage solution below based on the data reliability and security that distributed storage focuses on, the backup and recovery capabilities supported, and the ability to strengthen data encryption and access control.
[0056] See also Figure 1 Based on the technical solution of this article, it is necessary to first understand the current distributed data storage. The current distributed storage method usually writes or stores the data to be stored (i.e., the data object or object data mentioned below in this article) into an underused storage drive. It is worth noting that since the old data is rarely moved after being stored in the storage disk, with the increase and expansion of storage hardware, the newly stored new data is written to the newly expanded and less data new storage hardware. This is the inherent characteristic of the current distributed storage and is also in line with the usage habits of most storage devices.
[0057] See also Figure 1 In the subgroups Clu1-Clu3 of the storage cluster COL, distributed data storage can be exemplified by topologies such as single server single disk or single server multiple disks, multiple servers multiple disks, etc. In fact, storage nodes can not only use storage servers (servers), cloud storage (cloud storage) or network attached storage (network attached storage) as storage media, but other types such as direct attached storage (DAS), storage area network (SAN), object storage, etc. can also be used as storage media and are used to build the storage cluster COL. They are all examples of subgroup storage nodes.
[0058] See also Figure 1 , single server single disk topology for distributed data storage, for example, a storage server uses only a single drive or file for data storage. Old data is rarely moved after being stored in the storage disk, but as new files are added, new data is written to the newly expanded, less data-rich new files. At this time, the expanded nodes are mainly reflected in the location of the newly added files on the same disk of the original server. In the single server single disk topology mode, the original node and the new node are used to build a distributed storage cluster, and the new node is reflected as an expanded node.
[0059] See also Figure 1, single server multi-disk topology for distributed data storage, for example, a storage server can use a single drive and multiple files for data storage. Old data is rarely moved after being stored in the storage disk, but as new files are added, the new data is written to the newly expanded, new files with less data. The utilization rate of the newly expanded multiple disks is much higher than that of the original disks, showing an imbalance. Typically, a server has multiple mounted drives or folders for data storage, or a container has two or more mounted volumes. At this time, the expanded node is mainly reflected in the location of the newly added files on the expanded disk of the original server. In the single-server multi-disk topology mode, the original node and the new node are used to build a distributed storage cluster, and the new node is reflected as an expanded node.
[0060] See also Figure 1 , multi-server multi-disk topology for distributed data storage, for example, multiple servers can use multiple drives and multiple files for data storage. Old data is rarely moved after being stored in the storage disk, but as new files are added, new data is written to newly expanded, new files with less data. For example, multiple storage servers have multiple mounted drives or volumes for data storage. Different from the previous topology, the expanded nodes at this time are mainly reflected in the newly added file locations of the expanded disks of the expanded servers. In the multi-server multi-disk topology mode, the original nodes and new nodes are used to build a distributed storage cluster, and the new nodes are reflected as expanded nodes.
[0061] See also Figure 1 , how to allocate capacity on demand between nodes such as Clu1a-Clu1f, Clu2a-Clu2f, and Clu3a-Clu3f of subgroup Clu1-Clu3 is lacking in current technology. For example, different storage nodes of subgroups Clu1-Clu3 face dynamic space requirements, and how to adjust storage capacity between different nodes is almost not involved in current technology. Adjusting storage capacity between different nodes such as Clu1a-Clu1f, Clu2a-Clu2f, and Clu3a-Clu3f is one of the main issues that will be explained below in this application.
[0062] See also Figure 1, the storage capacity requirements between nodes such as Clu1a-Clu1f, Clu2a-Clu2f, and Clu3a-Clu3f of subgroup Clu1-Clu3 are not only dynamic, but also these storage nodes are facing the situation of continuous fluctuation of the capacity of dynamic storage space. How different nodes such as Clu1a-Clu1f, Clu2a-Clu2f, and Clu3a-Clu3f can adapt to the floating changes of storage capacity and choose the time to perform related tasks is a technical problem that needs to be solved urgently. Because different levels of data load require matching tasks to adapt to them. For example, when a cluster of nodes reaches its combined storage capacity limit, it usually needs to back up or snapshot at least once to prevent data loss caused by subsequent reorganization of the node cluster.
[0063] See also Figure 1 There are relatively active nodes and relatively static nodes between the nodes Clu1a-Clu1f, Clu2a-Clu2f, and Clu3a-Clu3f of the subgroup Clu1-Clu3. How the active nodes adapt to the floating changes of the more active storage capacity and choose the time to perform task operations, and at the same time, how the static nodes adapt to the floating changes of the more static storage capacity and choose the time to perform task operations, is a technical problem that needs to be solved urgently. For example, active nodes usually implement tasks with higher frequency and high data refresh rates, while static nodes usually implement tasks with lower frequency and low data refresh rates. It is undoubtedly a great challenge to adapt to different node activity levels and frequency bands and choose the time to perform tasks.
[0064] See also Figure 1 , the node refers to: storage node or server or file or disk or hard disk or container or mounted volume or network attached storage or cloud storage system or direct attached storage or storage area network, etc.
[0065] See also Figure 1 , This article involves a method for building a distributed storage cluster. In a storage cluster COL built by storage nodes, only some storage nodes are shown in the figure, and the actual number is not limited to this. Many storage nodes are arranged in different subgroups Clu1, Clu2, Clu3... according to different classification methods. Only some subgroups are shown in the figure, but the actual number of subgroups is not limited to this. In the following text, compared with static subgroups, public subgroups usually represent active subgroups.
[0066] See also Figure 2, Regarding the method of constructing a distributed storage cluster: a storage cluster COL is constructed by multiple subgroups Clu1-Clu3, each subgroup includes multiple storage nodes: subgroup Clu1 includes storage nodes Clu1a-Clu1f and for example subgroup Clu2 includes storage nodes Clu2a-Clu2f and Clu3 includes storage nodes Clu3a-Clu3f. Note that more subgroups are not shown in the figure and more storage nodes in each subgroup are not shown in the figure.
[0067] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., several subgroups are selected and at least one storage node is defined as a marker node in each of the selected subgroups. Note that the selected subgroups may be all subgroups Clu1-Clu3, etc. or only some subgroups of Clu1-Clu3, etc.
[0068] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., all subgroups are selected and at least one storage node is defined as a flag node in each of the selected subgroups Clu1-Clu3. Clu1 defines its storage node Clu1f as a flag node. In this example, each subgroup defines a storage node.
[0069] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., all subgroups are selected and at least one storage node is defined as a flag node in each of the selected subgroups Clu1-Clu3. Clu2 defines its storage node Clu2b as a flag node. In this example, each subgroup defines a storage node.
[0070] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., all subgroups are selected and at least one storage node is defined as a flag node in each of the selected subgroups Clu1-Clu3. Clu3 defines its storage node Clu3e as a flag node. In this example, each subgroup defines one storage node.
[0071] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., select some subgroups and define at least one storage node as a flag node in each of the selected subgroups Clu1-Clu2. Clu1 defines its storage node Clu1f as a flag node. In this example, only local subgroups are defined with storage nodes.
[0072] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., some subgroups are selected and at least one storage node is defined as a flag node in each of the selected subgroups Clu1-Clu2. Clu2 defines its storage node Clu2b as a flag node. In this example, only local subgroups are defined with storage nodes.
[0073] See also Figure 2 In an optional embodiment, for all subgroups Clu1-Clu3, etc., some subgroups are selected and at least one storage node is defined as a marker node in each of the selected subgroups Clu1-Clu2. Clu3 does not define any of its storage nodes as marker nodes. That is, Clu3 is not selected and is not a selected subgroup. This article will take the marker nodes carried by the selected subgroups Clu1-Clu2 as an example for explanation.
[0074] See also Figure 2 , the storage capacity (or storage space) requirement of subgroup Clu1 becomes larger. The storage capacity requirement of subgroup Clu1 is expressed by the black shaded part V1 in the figure. The capacity requirement V1 is larger than V2 / V3. At the time point in the figure, for example, the data load of subgroup Clu1 is the largest among all subgroups. Assuming that the values of V1 to V3 are basically equal in the initial state, the storage capacity of subgroup Clu1 has a dynamic change requirement: such as the demand becomes larger.
[0075] See also Figure 2 , the storage capacity (or storage space) requirement of subgroup Clu2 becomes smaller. The storage capacity requirement of subgroup Clu2 is expressed by the black shaded part V2 in the figure. The capacity requirement V2 is smaller than V1 / V3. At the time point in the figure, for example, the data load of subgroup Clu2 is the lowest among all subgroups. Assuming that the values of V1 to V3 are basically equal in the initial state, the storage capacity of subgroup Clu2 has a dynamic change requirement: such as the demand becomes smaller.
[0076] See also Figure 2 , the storage capacity (or storage space) requirement of subgroup Clu3 becomes smaller, and the storage capacity requirement of subgroup Clu3 is expressed by the black shaded part V3 in the figure. The capacity requirement V3 is in the middle of V1 / V2. At the time point in the figure, for example, the data load of subgroup Clu3 is in the middle of all subgroups. Assuming that the values of V1 to V3 are basically equal in the initial state, the storage capacity of subgroup Clu3 has a dynamic change requirement: such as a slight decrease in demand.
[0077] See also Figure 3As mentioned above, based on the uneven data load of subgroups Clu1-Clu3, the storage capacity can be adjusted between the subgroups of the storage cluster COL to meet the dynamic changes in the storage capacity requirements of different subgroups. For example, some storage nodes of subgroup Clu2 with low data load requirements can be transferred to subgroup Clu1, and some storage nodes of subgroup Clu3 with medium data load requirements can be transferred to subgroup Clu1. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu1 increases with the increasing trend of its space demand V1".
[0078] See also Figure 3 As mentioned above, when the storage capacity demand V1 of subgroup Clu1 increases, part or a small number of storage nodes Clu2b of subgroup Clu2 are transferred to subgroup Clu1 to adjust the storage capacity between subgroups. The arrow direction of Clu2 pointing to subgroup Clu1 in the figure represents the direction of storage capacity adjustment. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu2 decreases as its space demand V2 decreases".
[0079] See also Figure 3 As mentioned above, when the storage capacity demand V1 of subgroup Clu1 increases, part or a small number of storage nodes Clu3e of subgroup Clu3 are transferred to subgroup Clu1 to adjust the storage capacity between subgroups. The arrow direction of Clu3 pointing to subgroup Clu1 in the figure represents the adjustment direction of storage capacity. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu3 decreases as its space demand V3 decreases".
[0080] See also Figure 3 In summary, in response to the dynamic changes in storage capacity requirements of different subgroups, the storage capacity is adjusted between the subgroups in the storage cluster to build a distributed storage cluster in which the storage capacity of the subgroup changes with the trend of space demand. It is worth noting that if the space demand VX of the subgroup CluX remains unchanged, then its storage capacity can remain unchanged. At this time: construct a distributed storage cluster COL in which "the storage capacity of the subgroup CluX remains unchanged as its space demand VX remains unchanged", and X is a positive integer.
[0081] See also Figure 3As mentioned above, when the respective marker nodes of the selected subgroups, such as Clu1f and Clu2b of the aforementioned selected subgroups Clu1-Clu2, are gathered together in a common subgroup such as Clu1, the various storage nodes of the common subgroup Clu1, such as Clu1a to Clu1f and Clu2b and Clu3e (the Clu2b and Clu3e are adjusted) are triggered to synchronously execute the specified data operation task Task1. In the optional example, the specified data operation task Task1 includes at least one of data backup (backup) or snapshot (snapshot) or copy (clone) or restore (restore), and the data operation task may also be other data operation types related to data storage operations that are not listed. At this point, a round (for example, the Kth round) of storage capacity adjustment has been completed between multiple subgroups Clu1-Clu3 within the storage cluster, and K is a positive integer.
[0082] See also Figure 4 After a round (e.g., the Kth round) of storage capacity adjustment is completed according to the rules mentioned above, considering that the data load of each subgroup and the entire storage cluster COL changes dynamically, the next round (e.g., the K+1th round) of storage capacity adjustment is performed according to the data load, and the change of data load is actually unpredictable. However, for the convenience of explanation, the following assumptions are made in the following text.
[0083] See also Figure 4 , the storage capacity (or storage space) requirement of subgroup Clu1 is reduced. The storage capacity requirement of subgroup Clu1 is expressed by the black shaded portion V1 in the figure. The capacity requirement V1 is smaller than that of V2 / V3. At the time point in the figure, the data load of subgroup Clu1 is the lowest among all subgroups. Assume that the values of V1 to V3 in the previous state are based on Figure 3 As shown, the storage capacity of subgroup Clu1 produces dynamically changing requirements: as the demand becomes smaller.
[0084] See also Figure 4 , the storage capacity (or storage space) requirement of subgroup Clu2 becomes larger. The black shaded portion V2 in the figure represents the storage capacity requirement of subgroup Clu2. The capacity requirement V2 is in the middle compared to V1 / V3. At the time point in the figure, the data load of subgroup Clu2 is in the middle among all subgroups. Assume that the values of V1 to V3 in the previous state are in accordance with Figure 3 As shown, the storage capacity of subgroup Clu2 generates dynamically changing requirements: as the demand increases.
[0085] See also Figure 4, the storage capacity (or storage space) requirement of subgroup Clu3 becomes larger. The storage capacity requirement of subgroup Clu3 is expressed by the black shaded portion V3 in the figure. The capacity requirement V3 is larger than V1 / V2. At the time point in the figure, the data load of subgroup Clu3 is the largest among all subgroups. Assume that the values of V1 to V3 in the previous state are based on Figure 3 As shown, the storage capacity of subgroup Clu3 generates dynamically changing requirements: as the demand increases.
[0086] See also Figure 4 As mentioned above, based on the uneven data load of subgroups Clu1-Clu3, the storage capacity can be adjusted between the subgroups of the storage cluster COL to meet the dynamic changes in the storage capacity requirements of different subgroups. For example, some storage nodes of subgroup Clu1 with low data load requirements can be transferred to subgroup Clu2, and some storage nodes of subgroup Clu1 with low data load requirements can be transferred to subgroup Clu3. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu1 decreases as its space demand V1 decreases".
[0087] See also Figure 4 As mentioned above, when the storage capacity demand V2 of subgroup Clu2 increases, part or a small number of storage nodes Clu1e of subgroup Clu1 are transferred to subgroup Clu2 to adjust the storage capacity between subgroups. The direction of the arrow from Clu1 to subgroup Clu2 in the figure represents the direction of storage capacity adjustment. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu2 increases with the increasing trend of its space demand V2".
[0088] See also Figure 4 As mentioned above, when the storage capacity demand V3 of subgroup Clu3 increases, part or a small number of storage nodes Clu1f of subgroup Clu1 are transferred to subgroup Clu3 to adjust the storage capacity between subgroups. The arrow direction from Clu1 to subgroup Clu3 in the figure represents the adjustment direction of storage capacity. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu3 increases with the increasing trend of its space demand V3".
[0089] See also Figure 4 As mentioned above, another round (for example, the K+1th round) of storage capacity adjustment has been completed between multiple subgroups Clu1-Clu3 within the storage cluster, where K is a positive integer. It is worth noting that the marker nodes Clu1f and Clu2b of the selected subgroups in this round of adjustment have not been gathered in a common subgroup, so no storage nodes of any common subgroup are triggered to synchronously execute the specified data operation tasks.
[0090] See also Figure 5 After another round (K+1 round) of storage capacity adjustment is completed according to the rules, considering that the data load of each subgroup and the entire storage cluster COL changes dynamically, the next round (such as K+2 round) of storage capacity adjustment is performed according to the data load, and the change of data load is actually unpredictable. However, for the convenience of explanation, the following assumptions are made in the following text.
[0091] See also Figure 5 , the storage capacity (or storage space) requirement of subgroup Clu1 is reduced. The storage capacity requirement of subgroup Clu1 is expressed by the black shaded portion V1 in the figure. The capacity requirement V1 is smaller than that of V2 / V3. At the time point in the figure, the data load of subgroup Clu1 is the lowest among all subgroups. Assume that the values of V1 to V3 in the previous state are based on Figure 4 As shown, the storage capacity of subgroup Clu1 produces dynamically changing requirements: as the demand becomes smaller.
[0092] See also Figure 5 , the storage capacity (or storage space) requirement of subgroup Clu2 remains unchanged. The storage capacity requirement of subgroup Clu2 is expressed by the black shaded portion V2 in the figure. The capacity requirement V2 is in the middle compared to V1 / V3. At the time point in the figure, the data load of subgroup Clu2 is in the middle among all subgroups. Assume that the values of V1 to V3 in the previous state are in accordance with Figure 4 As shown, the storage capacity of subgroup Clu2 generates dynamically changing requirements: if the demand remains unchanged.
[0093] See also Figure 5 , the storage capacity (or storage space) requirement of subgroup Clu3 becomes larger. The storage capacity requirement of subgroup Clu3 is expressed by the black shaded portion V3 in the figure. The capacity requirement V3 is larger than V1 / V2. At the time point in the figure, the data load of subgroup Clu3 is the largest among all subgroups. Assume that the values of V1 to V3 in the previous state are based on Figure 4 As shown, the storage capacity of subgroup Clu3 generates dynamically changing requirements: as the demand increases.
[0094] See also Figure 5 As mentioned above, based on the uneven data load of subgroups Clu1-Clu3, in response to the dynamic changes in storage capacity requirements of different subgroups, the storage capacity can be adjusted between the subgroups of the storage cluster COL. For example, some storage nodes of subgroup Clu1 with low data load requirements are transferred to subgroup Clu3, and any storage nodes of subgroup Clu2 with unchanged data load requirements are not transferred to other subgroups. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu1 decreases as its space demand V1 decreases".
[0095] See also Figure 5 As mentioned above, the storage capacity requirement V2 of subgroup Clu2 remains unchanged. In the figure, Clu2 neither transfers any storage nodes to other subgroups nor receives storage nodes transferred from other subgroups. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu2 remains unchanged as its space requirement V2 remains unchanged".
[0096] See also Figure 5 As mentioned above, the storage capacity demand V3 of subgroup Clu3 increases, and part or a small number of storage nodes Clu2b of subgroup Clu1 are transferred to subgroup Clu3 to adjust the storage capacity between subgroups. The direction of the arrow from Clu1 to subgroup Clu3 in the figure represents the direction of storage capacity adjustment. Please note that Clu1f has been transferred to subgroup Clu3 in the previous round of transfer, that is, Clu1f completed the transfer in the K+1 round. Construct a distributed storage cluster COL in which "the actual storage capacity of subgroup Clu3 increases with the increasing trend of its space demand V3".
[0097] See also Figure 5 As mentioned above, up to now, another round (for example, the K+2th round) of storage capacity adjustment has been completed among the multiple subgroups Clu1-Clu3 within the storage cluster, where K is a positive integer.
[0098] See also Figure 5 In summary, in response to the dynamic changes in storage capacity requirements of different subgroups, the storage capacity is adjusted between the subgroups in the storage cluster to build a distributed storage cluster in which the storage capacity of the subgroup changes with the trend of space demand. So far, the storage capacity adjustment from the Kth round to the K+2th round has been completed. If the outer frame of the storage node in the figure is a dotted line, it means that the storage node has been transferred from the previous subgroup to the next subgroup.
[0099] See also Figure 5As mentioned above, when the respective marker nodes of the selected subgroups, such as Clu1f and Clu2b of the aforementioned selected subgroups Clu1-Clu2, are gathered together in a common subgroup, such as Clu3, the various storage nodes of the common subgroup Clu3, such as Clu3a to Clu3f and Clu2b and Clu1f (the Clu2b and Clu1f are transferred) are triggered to synchronously execute the specified data operation task Task3. In the optional example, the specified data operation task Task3 includes at least one of data backup (backup) or snapshot (snapshot) or copy (clone) or restore (restore), and the data operation task may also be other data operation types related to data storage operations that are not listed. At this point, a round (for example, the K+2th round) of storage capacity transfer is completed between multiple subgroups Clu1-Clu3 within the storage cluster. If some storage nodes in the common subgroup are transferred and moved away, then the transferred storage nodes generally do not execute Task3. The storage node Clu3e that has been adjusted and moved away has been migrated from the public subgroup Clu3, so while the storage node Clu3e is executing the operation task Task3 on each storage node of the public subgroup of Clu3, Clu3e usually does not execute Task3.
[0100] See also Figure 5 , the storage capacity adjustment from the Kth round to the K+2th round has been completed. Of course, there are more rounds of storage capacity adjustment that are not shown in the figure. The limited adjustment rounds are just examples. In this way, during one or more rounds of storage capacity adjustment between multiple subgroups in the storage cluster, at least a part of the subgroups are allowed to traverse the data operation task once or multiple times. For example, during the Kth to K+3th rounds of storage capacity adjustment between multiple subgroups Clu1-Clu3 in the cluster COL, some subgroups Clu1 and Clu3 are allowed to traverse (implement) one or more operation tasks. In subsequent rounds, if the marker nodes Clu1f and Clu2b are gathered together in Clu1, Clu1 will execute task Task1 again. In subsequent rounds, if the marker nodes Clu1f and Clu2b are gathered together in Clu3, Clu3 will execute task Task3 again. In subsequent rounds, if the marker nodes Clu1f and Clu2b are gathered together in Clu2, Clu2 will execute task Task2 for the first time. Due to space limitations, this article does not show too many migration or adjustment paths of landmark nodes, but the general principle is: in response to the dynamic changes in storage capacity requirements of different subgroups, the storage capacity is adjusted between the subgroups in the storage cluster to build a storage cluster in which "the storage capacity of the subgroup changes with the trend of space demand." Context Task 1-Task 4 and Task K, Task N are basically similar and their specific operation task types are not limited to the exemplary embodiments mentioned in this article.
[0101] See also Figure 5 , a mode of building a distributed storage cluster by adjusting storage capacity between each subgroup Clu1-Clu3 includes: the storage capacity of any single subgroup such as Clu3 itself increases with the increasing trend of the space demand of any single subgroup such as Clu3 (for example, the space demand V3 is an increasing trend), and one or more storage nodes Clu2b can be deployed from other subgroups in the storage cluster such as Clu1 to any single subgroup such as Clu3.
[0102] See also Figure 5 , the mode of constructing a distributed storage cluster by adjusting storage capacity between each subgroup Clu1-Clu3 includes: the storage capacity of any single subgroup such as Clu2 itself is stable and unchanged as the space demand of any single subgroup such as Clu2 is stable and unchanged (for example, the space demand V2 is neither increasing nor decreasing). There is no need to deploy any storage nodes from the remaining subgroups such as Clu1 and Clu3 of the storage cluster to any single subgroup such as Clu2.
[0103] See also Figure 5 , a mode of constructing a distributed storage cluster by adjusting storage capacity between each subgroup Clu1-Clu3 includes: the storage capacity of any single subgroup such as Clu1 itself decreases as the space demand of any single subgroup such as Clu1 decreases (for example, the space demand V1 is a decreasing change), and at the same time, one or more storage nodes such as Clu2b can be deployed from any single subgroup such as Clu1 to the remaining subgroups such as Clu3.
[0104] See also Figure 4 , when the current actual storage capacity of any subgroup such as Clu1 is within a predetermined ratio range of the total capacity of the storage cluster COL, such as in the K+1 round, the current actual storage capacity of Clu1 is U1 K+1 It is within a ratio range p1-p2 of the total capacity U of the storage cluster COL, that is, U*p1≤U1 K+1 ≤U*p2, the marker node such as Clu2b of any subgroup such as Clu1 whose storage capacity is within the ratio range p1-p2 will stay there and will not be easily transferred away. When the storage node in any subgroup Clu1 needs to be transferred away from Clu1, Clu2b is not allowed to be transferred because it is parked there, so other storage nodes can only be selected to be transferred away from Clu1, for example, Clu1e is transferred away.
[0105] See also Figure 4 , the K+1th round subgroup, such as Clu1, has multiple storage node transfer actions. In the current transfer action, it is considered that U*p1≤U1 is satisfied. K+1≤U*p2, so the marker node Clu2b stays, and other storage nodes that are not marker nodes, such as Clu1e, can only be transferred away. The storage capacity demand V2 of subgroup Clu2 becomes larger, and part or a small number of storage nodes Clu1e of subgroup Clu1 are transferred to subgroup Clu2 to adjust the storage capacity between subgroups. It is worth noting that in this link, node Clu1f is not transferred from other subgroups to any subgroup such as Clu1, so it does not meet the definition of a marker node that is transferred to any subgroup such as Clu1 whose storage capacity is within this ratio, but it can either stay in any subgroup such as Clu1 or be transferred away in the current transfer action, both are possible.
[0106] See also Figure 5 , only the current actual storage capacity of any subgroup, such as Clu1, is not within the ratio range of the total capacity of the storage cluster. For example, in the K+2 round, the current actual storage capacity of Clu1 is U1 K+2 Not within the preset ratio range p1-p2 of the known total capacity U of the storage cluster COL, that is, U1 K+2 <U*p1 or U1 K+2 >U*p2, the storage capacity is not within the preset ratio range p1-p2 of the total capacity U, and does not meet U*p1≤U1 K+2 ≤U*p2, the marker node such as Clu2b previously allocated to any subgroup such as Clu1 whose storage capacity is within the ratio range is allowed to be re-adjusted, that is, the marker node such as Clu2b is allowed to be transferred out of any subgroup such as Clu1.
[0107] See also Figure 5 , does not meet U*p1≤U1 K+2 ≤U*p2. Based on this situation, the marker nodes previously allocated to any subgroup whose storage capacity is within the ratio are allowed to be readjusted: the storage capacity demand V3 of subgroup Clu3 increases, and part of or a small number of storage nodes Clu2b of any subgroup such as Clu1, for example, the marker nodes previously parked there are allowed to be transferred to subgroup Clu3 to achieve storage capacity adjustment between subgroups.
[0108] See also Figure 5 In summary, in an optional embodiment, when the current actual storage capacity of any subgroup is within a ratio range of the total capacity of the storage cluster, such as U*p1≤U1≤U*p2, the marker node allocated to the subgroup with storage capacity within the ratio range will stay and will no longer be transferred away; and, only when the current actual storage capacity of any subgroup is not within the ratio range of the total capacity of the storage cluster, such as U1<U*p1 or U1>U*p2, the marker node previously allocated to the subgroup with storage capacity within the ratio range will be allowed to be transferred away again.
[0109] See also Figure 5 , if any subgroup Clu1 with a marker node Clu2b / Clu1f needs to deploy its own storage node to the remaining subgroups Clu2-Clu3 in the storage cluster COL, taking subgroup Clu3 as an example, it can be limited that the deployment event of any subgroup Clu1 should meet the following conditions: the marker node (Clu2b or Clu1f) is preferentially transferred from any subgroup Clu1 to the remaining subgroup Clu3 with high priority, while the regular storage nodes other than the marker nodes, such as Clu1a, Clu1b, Clu3e, Clu1e, are transferred from any subgroup Clu1 to the remaining subgroup Clu3 with low priority. For example, if the storage capacity requirement V3 of subgroup Clu3 increases, some storage nodes Clu1a, Clu1b, Clu3e, Clu1e, Clu2b, Clu1f, etc. or more non-separate storage nodes of any subgroup such as Clu1 need to be transferred to subgroup Clu3. Then: the marker node Clu2b or Clu1f is transferred from subgroup Clu1 to the remaining subgroup Clu3 with high priority, while the regular storage nodes Clu1a, Clu1b, Clu3e, Clu1e which are not marker nodes are transferred from any subgroup Clu1 with low priority. 1 is transferred to the remaining subgroup Clu3. If the subgroup Clu1 first receives the marker nodes Clu2b and Clu1f, and then receives the storage nodes Clu1a and Clu1b, but the data load level of the subgroup Clu1 at this time is not enough for the subgroup Clu1 to need the storage nodes Clu3e and Clu1e, so the subgroup Clu1 now adjusts and receives the nodes Clu2b and Clu1f and the nodes Clu1a and Clu1b, but Clu3e and Clu1e are not received to realize the adjustment of storage capacity between subgroups in the distributed storage cluster COL.
[0110] See also Figure 6 , the previous article only shows a limited number of subgroups such as subgroup Clu1-Clu3 due to space considerations, and this example shows more subgroups Clu1-Clu3 and subgroups Clu4-CluN, etc., where N is a positive integer. Figure 5 Only when the current storage capacity U1 of any subgroup such as Clu1 is not within the ratio range p1-p2 of the total capacity U of the storage cluster, the marker node of any subgroup Clu1 previously allocated to the storage capacity within the ratio range p1-p2 is allowed to be transferred away.
[0111] See also Figure 7, subgroup Clu3 includes storage nodes Clu3a, Clu3b, Clu3c...Clu3f, etc. Due to space limitations, more storage nodes are not shown one by one in subgroup Clu3. Clu2b and Clu1f in subgroup Clu3 are from other different subgroups and are about to be transferred to another subgroup such as CluN. The space requirement is V3.
[0112] See also Figure 7 , subgroup Clu4 includes storage nodes Clu4a, Clu4b, Clu4c...Clu4f, etc. Due to space limitations, more storage nodes are not shown one by one in subgroup Clu4. The space requirement is V4.
[0113] See also Figure 7 , subgroup CluN includes storage nodes CluNa, CluNb, CluNc...CluNf. Due to space limitations, more storage nodes are not shown one by one in subgroup CluN. The space requirement is VN.
[0114] See also Figure 7, the capacity requirement VN is lower than V3 / V4. Clu2b and Clu1f are about to be transferred to another subgroup such as CluN in subgroup Clu3. Note that the capacity requirement VN of subgroups such as CluN is lower than V3 / V4. At this time, the so-called landmark nodes Clu2b and Clu1f are still transferred to CluN not because the load of CluN has increased, but because the current other subgroup CluN is not an active subgroup, but a static subgroup. The data load of Clu1-Clu3 varies greatly and their respective storage nodes increase and decrease frequently, so they belong to active subgroups. If the landmark nodes of the selected subgroups are gathered together in a common subgroup, the common subgroups are usually those active subgroups, because the storage nodes of the active subgroups are easier or more likely to be triggered to synchronously execute the specified data operation tasks. One of the mechanisms is that the active subgroup needs to frequently move in and out of storage nodes during the high-frequency fluctuation of the data load it bears. During the period of frequent movement in and out of storage nodes, the active subgroup is more likely to absorb storage nodes as landmark nodes than the static subgroup. Unfortunately, the static subgroup does not need to undertake data distribution very frequently, so it is difficult for each storage node of the static subgroup to be triggered to synchronously execute the specified data operation task. This is a very negative phenomenon. Similar to tasks such as backup or snapshot, the task cannot be abandoned and not executed just because the data update rate of the static subgroup is low. Linking tasks with data load, coupling and decoupling specific data tasks with the dynamic storage capacity changes of storage nodes, must also be applied to static subgroups. Without external intervention, the subgroup and its nodes should adaptively implement corresponding data operation tasks based on the floating amount of inflow and outflow or data load. It is required that the specific tasks of active nodes and relatively static nodes are coupled with the floating changes of their storage capacity respectively. After executing the tasks at the right time, active nodes and static nodes can highly flexibly and adaptively exit their respective specific tasks and achieve decoupling from the floating changes of storage capacity.
[0115] See also Figure 7 In an optional embodiment, the current status of N subgroups in the storage cluster after one or more rounds of storage capacity adjustment is as shown in the figure: the space demand V3 of subgroup Clu3 is relatively low, and Clu2b and Clu1f in subgroup Clu3 are migrated from other different subgroups, such as the K, K+1, and K+2 rounds mentioned above, or after more rounds of storage capacity adjustment, these marker nodes Clu2b and Clu1f will be transferred to the remaining subgroups to cater to the changes in V3.
[0116] See also Figure 7 In an optional embodiment, the status of N subgroups in the storage cluster after one or more rounds of storage capacity adjustment is shown in the figure: the space demand VN of the subgroup CluN is low, and there is a change scale of its own storage capacity UN that is lower than a certain threshold U THAssume that the change scale of UN is L, then the maximum capacity required by this static subgroup is UN plus L and the minimum capacity required is UN minus L. The space requirement VN of this static subgroup is the difference between UN minus L, UN L and the sum of UN plus L H The process of static subgroup can also be represented by the VN relation, UN L ≤VN≤UN H , L<U TH Other alternative terms for variable scale are variable range or floating scale. L Equal to UN minus L and UN H Equal to UN plus L.
[0117] See also Figure 7 In an optional embodiment, the status of N subgroups in the storage cluster after one or more rounds of storage capacity adjustment is shown in the figure: Figure 4 In the K+1 round, Clu1’s current actual storage capacity is U1 K+1 In the ratio range p1-p2 between the total capacity U of the storage cluster COL, in the K+2 round, the actual storage capacity U1 K+2 It is not within the ratio range p1-p2 of the total capacity U of the storage cluster COL. Only then the marker node of Clu1, such as Clu2b, is allowed to be re-adjusted, that is, the marker node such as Clu2b is allowed to be adjusted out of Clu1. Similarly, after one or more rounds of storage capacity adjustment, the current situation becomes: Assume Figure 7 The marker nodes of the subgroup Clu3, such as Clu2b and Clu1f, are also allowed to be relocated, that is, the marker nodes such as Clu2b and Clu1f are allowed to be transferred out of Clu3. For example, the storage capacity U3 is no longer within the proportion range p1-p2 of the total capacity U of the storage cluster COL. At this point, the marker nodes of Clu3, such as Clu2b, are allowed to be relocated, that is, the marker nodes such as Clu2b and Clu1f are allowed to be transferred out of Clu3.
[0118] See also Figure 7 In an optional embodiment, the status of N subgroups in the storage cluster after one or more rounds of storage capacity adjustment is as shown in the figure: after multiple rounds of adjustment, the marker nodes such as Clu2b and Clu1fb of any subgroup such as Clu3 previously allocated to the storage capacity U3 within the proportion range p1-p2 are allowed to be re-adjusted, that is, after multiple rounds of adjustment, the marker nodes such as Clu2b and Clu1fb are allowed to be adjusted out of any subgroup such as Clu3. See the above for specific examples.
[0119] See also Figure 7In an optional embodiment, the current status of the N subgroups in the storage cluster after one or more rounds of storage capacity adjustment is shown in the figure: For the static subgroup CluN whose storage capacity UN change scale L is lower than a certain threshold, the marker nodes Clu2b and Clu1f that have been re-adjusted from any subgroup Clu3 in the storage capacity ratio range p1-p2 are guided to switch to the static subgroup CluN: so that after the static subgroup CluN triggers the execution of the data operation task TaskN, the marker nodes such as Clu2b and Clu1fb shown in the figure immediately rebound to other subgroups of the storage cluster COL. The other subgroups can be any subgroup in the storage cluster except CluN. The rebound of Clu2b and Clu1fb to one or more subgroups from Clu1 to CluN-1 is allowed, depending on the changes in the data load of other subgroups. Based on this rebound, the change scale L of the storage capacity UN of the static subgroup CluN can be maintained below the threshold U TH Otherwise, the action of actively guiding the node to switch to the subgroup CluN will cause the change scale L of the storage capacity UN to exceed the threshold U TH , then the static subgroup may become an active subgroup and be further migrated to more other storage nodes or even marker nodes. This will break the inactive inherent characteristics of the static subgroup and generate unnecessary data activities. For example, some tasks in large databases usually take several hours or even more time to complete a task operation, which is not only time-consuming and consumes a lot of power, but also more negatively squeezes the hardware and software resources of the storage cluster and delays or even stops the tasks of other active subgroups.
[0120] See also Figure 6 , after subgroup Clu1 executes Task 1, subgroup Clu3 executes Task 3. During the storage capacity adjustment period between subgroups Clu1-CluN in the storage cluster, such as the Ep1(V1-VN) round and the Ep2(V1-VN) round, some subgroups Clu1, Clu3, and even all subgroups have implemented one or more data operation tasks. The shadows in the figure still represent capacity changes. Ep1(V1-VN) represents a storage capacity adjustment round for each subgroup in the storage cluster, and it is followed by the next adjacent round. Ep2(V1-VN) represents the next storage capacity adjustment round for each subgroup in the storage cluster. Of course, the actual storage capacity adjustment rounds of each subgroup in the storage cluster are more than the two rounds shown in the figure.
[0121] See also Figure 6, after subgroup Clu3 executes Task 3, subgroup CluN executes Task N. During the storage capacity adjustment period between subgroups Clu1-CluN in the storage cluster, such as the Ep8 (V1-VN) round and the Ep9 (V1-VN) round, some subgroups Clu3, CluN, and even all subgroups have implemented one or more data operation tasks. The shadows in the figure still represent capacity changes. Ep8 (V1-VN) represents the previous storage capacity adjustment round of each subgroup in the storage cluster, and the next round is the adjacent round. Ep9 (V1-VN) represents the next storage capacity adjustment round of each subgroup in the storage cluster. Of course, the actual storage capacity adjustment rounds of each subgroup in the storage cluster are more than the two rounds shown in the figure.
[0122] See also Figure 6 , after subgroup CluN executes TaskN, subgroup Clu2 executes Task2. The subgroups of the storage cluster continue to adjust: after subgroup Clu2 executes Task2, subgroup Clu4 executes Task4. The subgroups of the storage cluster continue to adjust: in this cycle, subgroup CluK executes TaskK.
[0123] See also Figure 6 In an optional embodiment, the method for constructing a distributed storage cluster includes: a storage cluster COL is also constructed by multiple subgroups, and each subgroup in Clu1-CluN includes multiple storage nodes. In each of the selected subgroups, such as subgroups Clu1-Clu2, at least one storage node Clu1f, Clu2b is defined as a marker node. In response to the dynamically changing requirements V1-VN of the storage capacity of different subgroups Clu1-CluN, the storage capacity is adjusted between the subgroups in the storage cluster COL to construct the storage cluster COL in which "the storage capacity UX of a subgroup such as CluX changes with the trend of its space demand VX". If VX tends to increase, UX will increase accordingly, and if VX tends to decrease, UX will also decrease accordingly. The positive integer X satisfies 1≤X≤N.
[0124] See also Figure 5In an optional embodiment, at the stage of adjusting the storage capacity between the subgroups Clu1-CluN of the storage cluster COL: as the storage capacity of each subgroup such as CluX, such as UX, and the space requirements such as VX, dynamically fluctuate, different marker nodes (such as Clu2's node Clu2b, Clu1's node Clu1f, etc.) are guided to gather towards a subgroup whose storage capacity tends to change to the largest; until different marker nodes (such as Clu2b, Clu1f, etc.) are guided to gather together in the same public subgroup such as Clu3. In this example, it is assumed that the storage capacity of subgroup Clu3 tends to change to the largest and the storage capacity of the remaining subgroups Clu1-Clu2 and Clu4-CluN does not need to change to exceed Clu3. In other words, the space requirement V3 of the storage capacity U3 of the design subgroup Clu3 is the largest, and the space requirements V1-V2 and V4-VN of the storage capacity of Clu1-Clu2, Clu4-CluN are smaller than V3, which is determined by the data load. Based on the above conditions, each storage node of the public subgroup Clu3 (including storage nodes migrated from other subgroups, but excluding storage nodes that have migrated out of this public subgroup) can be triggered to synchronously execute the specified data operation task Tak3. In this way, during one or more rounds of storage capacity adjustment between multiple subgroups Clu1-CluN in the storage cluster COL, at least some subgroups, such as Clu3, Clu1 or all subgroups, can implement one or more data operation tasks, combined with Figure 6 .
[0125] See also Figure 6 In an optional embodiment, in combination with Figure 7 , in the stage of adjusting storage capacity between subgroups Clu1-CluN: the change scale L of its own storage capacity UN is lower than a certain threshold U TH For example, in the static subgroup of the storage cluster CluN, the marker nodes that are re-adjusted from the subgroup Clu3 with the largest storage capacity U3 are directed to switch to the static subgroup CluN. For example, Clu2b and Clu1f are marker nodes that are re-adjusted from the subgroup Clu3 and are directed to switch to the static subgroup CluN. After the subgroup Clu3 is triggered to perform the data operation task TaskN, the marker nodes such as the aforementioned Clu2b and Clu1f immediately rebound to other subgroups of the storage cluster COL, and the change scale L of the storage capacity of the static subgroup is maintained below the given threshold or the determination threshold U. TH .
[0126] See also Figure 6According to the design of this application, the reasonable level of subgroup storage space does not require each subgroup to reach the maximum or minimum space required by itself, but based on the premise of accurately completing and satisfying various data tasks, the storage space of each subgroup to accommodate its current data objects or data loads is the most matched state. For example, the space of a certain subgroup may not be the maximum or minimum value it needs, but the elastic storage space left for the remaining subgroups in the storage cluster COL must be the most reasonable and the most generous. From a system-level perspective, the best match to balance the needs of each subgroup is achieved.
[0127] See also Figure 7 In an optional embodiment, for the static subgroup Clu3 whose storage capacity U3 has a change scale lower than a predetermined threshold, the marker nodes Clu2b and Clu1f that have been re-adjusted from the subgroup Clu3 are guided to switch to the static subgroup CluN: after the static subgroup CluN is triggered to perform the data operation task TaskN, these stationed marker nodes such as Clu2b and Clu1f immediately rebound to other subgroups of the storage cluster COL, maintaining the change scale of the storage capacity of the static subgroup below the predetermined threshold. One of the advantages is the load balancing of the storage medium. Storage media such as flash memory have a certain life span, so if the same flash memory or the same physical blocks are erased and written every time, those physical blocks are easily damaged by overload use. The data operations of the present application can be evenly distributed to different flash memories or different physical blocks so that the storage medium is used relatively evenly, and the average use and balanced scheduling of the storage medium are achieved. Otherwise, the storage media used by active nodes with large amounts of data, such as SSD / HDD, will have a much higher damage rate than regular nodes or static nodes, and the data loss rate of active nodes will naturally be much higher. One of the main reasons is the frequent in / out transfer of storage nodes together with marker nodes from active nodes and the resulting high data load.
[0128] See also Figure 7 In an optional embodiment, as mentioned above, the current situation after one or more rounds of storage capacity adjustment becomes: Assume Figure 7 The marker nodes of the subgroup Clu3, such as Clu2b and Clu1f, are also allowed to be relocated, that is, the marker nodes such as Clu2b and Clu1f are allowed to be transferred out of Clu3. For example, the storage capacity U3 is no longer within the proportion range p1-p2 of the total capacity U of the storage cluster COL. At this point, the marker nodes of Clu3, such as Clu2b, etc., are allowed to be relocated, that is, the previously resident nodes such as Clu2b and Clu1f are allowed to be transferred out of Clu3.
[0129] See also Figure 6One of the concerns is that if the task execution does not match the fluctuation of data load, such as the task execution timing is too late or ahead of the peak load, this mismatch will cause the task execution time to not correspond to the ideal data. For example, the backup or snapshot near the bottom data load cannot cover the important information near the peak in the distribution, resulting in the actual significance of the operation task being lost to a large extent. Static nodes are relative to hot spots or active nodes, but they are not really static without any load. It is necessary to implement tasks near the best points of active and static nodes. The selected subgroups’ respective landmark nodes are gathered together in a public subgroup, which can be regarded as one of the better points for task implementation for active nodes.
[0130] See also Figure 6 The second doubt is that the storage node is not only dynamic in terms of storage capacity. In the face of the continuous fluctuation of dynamic storage space demand, how should the relatively hot active nodes and relatively quiet static nodes adapt to the fluctuation of storage capacity and choose the right time to perform task operations? This is a technical problem that needs to be solved under the distributed architecture. In other words, the execution of active node tasks is not an isolated event but should be coupled to the spatial activity of the node; the execution of static node tasks is not an isolated event but should be coupled to the appropriate time. For example, static nodes have static characteristics but also need to cooperate with the dynamic data load characteristics of the cluster. Task execution can be completed automatically without interference, because the execution and implementation of such tasks are not random but should conform to the characteristics of data changes and data load. For example, high-frequency and low-frequency data fluctuation frequencies have different task timings, and high-level data load and low-level data load have different task timings. Otherwise, for example, static nodes will usually involuntarily grab hardware and software resources and delay the urgent task activities of dynamic nodes that are data hotspots. This is one of the obvious consequences of static and dynamic nodes executing their respective tasks without considering each other and the cluster data load.
[0131] See also Figure 7In an optional embodiment, when the current actual storage capacity of any subgroup Clu3 is within a ratio range of the total capacity of the storage cluster, the marker nodes allocated to the subgroup Clu3, such as the nodes Clu2b and Clu1f mentioned above, will stay and will not be transferred away; only when the current actual storage capacity of any subgroup Clu3 is not within the ratio range p1-p2 of the total capacity U of the storage cluster, the marker nodes previously allocated to the subgroup Clu3, such as the aforementioned nodes Clu2b and Clu1f, are allowed to be transferred away again. For a static subgroup CluN whose own storage capacity UN change scale L is lower than a certain threshold, the marker nodes Clu2b and Clu1f that are transferred away from the subgroup Clu3 are guided to switch to the static subgroup CluN: so that after the static subgroup CluN is triggered to execute the data operation task TaskN, the marker nodes immediately rebound to other subgroups of the storage cluster, and the change scale of the storage capacity of the static subgroup CluN is maintained below the said certain threshold. According to the above scheme, the execution frequency Freq of the data operation tasks such as TaskN of the static subgroup such as CluN is consistent with the frequency or rhythm (this frequency or rhythm is a floating frequency or floating rhythm) of the public subgroup (such as Clu3) parking mark node. Note that the public subgroup includes but is not limited to Clu3. Figure 6 In addition, it is worth noting that the implementation timing of data operation tasks such as TaskN of static subgroups such as CluN can also be forced to passively synchronize with the load release of the data load of the distributed storage cluster COL. The working mechanism of the data operation tasks of the static subgroup is mainly aimed at the optimal or appropriate point of task implementation for static nodes. Figure 6 Assume the mapping relationship between the dwell time of some tasks Task1, Task2, Task3, Task4, TaskK, TaskN, etc. and the variable frequency Freq of the task implementation of the static subgroup. The static node dynamically implements the operation task in a relatively quiet mode.
[0132] See also Figure 7, in summary, in an optional but non-limiting example, as described below, when the current actual storage capacity of any subgroup is within a ratio range of the total capacity of the storage cluster, the marker node allocated to the any subgroup will stay and will not be transferred away; only when the current actual storage capacity of any subgroup is not within the ratio range of the total capacity of the storage cluster, the marker node previously allocated to the any subgroup is allowed to be transferred away again. Further, for a static subgroup whose storage capacity change scale is lower than a certain threshold, the marker node that is transferred away from the any subgroup is guided to switch to the static subgroup: after the static subgroup is triggered to perform a data operation task, the marker node rebounds to other subgroups of the storage cluster, and the change scale of the storage capacity of the static subgroup is maintained below the certain threshold. Therefore, the implementation frequency of the data operation task of the static subgroup is kept consistent with the floating frequency of the public subgroup's parking marker node. In addition, the implementation timing of the data operation task of the static subgroup is forced to be passively synchronized with the load release moment of the data load of the public subgroup. The related issues of the above-mentioned concerns one and two can be easily resolved.
[0133] See also Figure 7 As mentioned above, some purposes of the aforementioned optional but non-limiting examples are as follows: to guide the execution timing of the data operation tasks of the common subgroup to overlap with the peak period of the data load of the common subgroup. To maximize the coverage of the information corresponding to the peak of the data load by the data operation tasks of the common subgroup. Under the premise of not affecting the implementation of the data operation tasks of the data load of the high-frequency refresh rate of the common subgroup, the static subgroup implements its own data operation tasks based on its own relatively low-frequency refresh rate data load, thereby avoiding the data operation tasks of the static subgroup from delaying the implementation of the data operation tasks of the common subgroup under the same storage cluster. It can also avoid the marker node from jumping between the static subgroup and the common subgroup, prevent the static subgroup from being hidden and turned into a virtual public subgroup, and prevent the public subgroup from being hidden and turned into a virtual static subgroup.
[0134] See also Figure 6, the scenario of static data nodes is very common. In large clusters, for example, those nodes where data is rarely used but a redundant copy has to be retained are typically relatively old historical data warehouses. Active nodes are more for storage nodes that carry current busy business data. Active nodes can better express their public characteristics. It is worth considering when to switch the marker node to the static data node, otherwise the cluster space utilization rate will be seriously reduced. If the rhythm of switching the marker node to the static data node, that is, the rhythm of task execution, does not match the rhythm of data load changes: this mismatch not only causes the task execution time not to correspond to the ideal data, such as backups or snapshots near the bottom of the data load, and cannot cover the important information near the peak in the distributed system, resulting in a significant reduction in the practicality of the operation task, but also suppresses the activity of hot data nodes and the need for hot data nodes to meet data refresh needs, which is contrary to the purpose of reasonably allocating and adapting to the dynamic changes in the storage capacity of different subgroups. In other words, the execution of tasks of active nodes is not an isolated event but is linked to the spatial activity of nodes. The execution of tasks of static nodes is also not an isolated event but is adapted to be coupled to the appropriate implementation time, so as to meet the relatively static characteristics of static nodes on the one hand and respond to the characteristics of the change of dynamic data load of the entire storage cluster. For static subgroups whose storage capacity change scale is lower than the preset or determined threshold, the marker node that is re-adjusted from any subgroup with storage capacity within the aforementioned ratio range is guided to switch to the static subgroup, so that the static subgroup is triggered to perform the specified data operation task (such as Reed-Solomon erasure allows fewer nodes to restore more data, and the implementation of the data operation task is not affected after the marker node rebounds) and then rebounds to other subgroups of the storage cluster, maintaining the storage capacity change scale of the static subgroup below the determined threshold. Some meanings of rebound are that if the storage capacity change scale of the static subgroup is not lower than the determined threshold, the static subgroup will refuse to update the storage node. Force the marker node out of the static subgroup until the change scale of its capacity is lower than the determined threshold.
[0135] See also Figure 6 For static nodes, if they participate in tasks with dynamic nodes at the same time, such as transferring data to nodes such as storage nodes or marker nodes, it will hinder the space expansion of other nodes that really need space and drag the storage cluster system to run at a low efficiency. Even worse: if the marker node does not jump between static or public subgroups for a long time, it will secretly turn the static subgroup into a virtual public node, or turn the public subgroup into a virtual static subgroup. This is contrary to the expectation of reasonably allocating capacity between different nodes according to demand, and it is also the situation that this article suppresses.
[0136] See also Figure 7In summary, in another optional but non-limiting example, as described below, a storage cluster is constructed by multiple subgroups and each subgroup includes multiple storage nodes; at least one storage node is defined as a marker node in each of the selected subgroups; wherein, in response to the dynamically changing storage capacity requirements of different subgroups, the storage capacity is mutually adjusted between the subgroups within the storage cluster to construct a distributed storage cluster in which the storage capacity of the subgroup changes with the trend of space demand; in the stage of mutual adjustment of storage capacity between the subgroups: as the space demand of the storage capacity of each subgroup dynamically fluctuates, guide the different marker nodes to gather towards a subgroup whose storage capacity tends to change to the largest; until the different marker nodes are guided to gather together in the same common subgroup, so that the various storage nodes of the common subgroup are triggered to synchronously execute the specified data operation task; thereby, during one or more rounds of storage capacity adjustment between multiple subgroups within the storage cluster, at least a part of the subgroups implement the data operation task once or multiple times. When the current actual storage capacity of a subgroup with the largest storage capacity (such as the public subgroup) is within a ratio range of the total storage cluster capacity, the marker node allocated to the subgroup with the largest storage capacity (such as the public subgroup) will stay and will not be transferred away; only when the current actual storage capacity of the subgroup with the largest storage capacity (such as the public subgroup) is not within the said ratio range of the total storage cluster capacity, the marker node previously allocated to the subgroup with the largest storage capacity (such as the public subgroup) will be allowed to be transferred away again. In the stage of adjusting storage capacity between subgroups: for static subgroups whose own storage capacity change scale is lower than a certain threshold, the marker node that is transferred away from the subgroup with the largest storage capacity (such as the public subgroup) is guided to switch to the static subgroup: so that after the static subgroup is triggered to perform data operation tasks, the marker node will immediately rebound to other subgroups of the storage cluster, and the change scale of the static subgroup's storage capacity is maintained below a certain threshold.
[0137] The above description and drawings provide typical embodiments of specific structures of specific embodiments. The above invention provides existing preferred embodiments, but these contents are not intended to be limiting. For those skilled in the art, various changes and modifications will undoubtedly be obvious after reading the above description. Therefore, the attached claims should be regarded as covering all changes and modifications of the true intent and scope of the present invention. Any and all equivalent scopes and contents within the scope of the claims should be considered to still be within the intent and scope of the present invention.
Claims
1. A method for constructing a distributed storage cluster, characterized in that: include: A storage cluster is constructed using multiple subgroups, each of which includes multiple storage nodes. defining at least one storage node as a marker node in each of the plurality of selected subgroups; In response to the dynamic changes in storage capacity requirements of different subgroups, storage capacity is adjusted between subgroups within the storage cluster to build a distributed storage cluster in which the storage capacity of subgroups changes with the trend of space demand; When the respective marker nodes of the selected subgroups are gathered together in a common subgroup, the storage nodes of the common subgroup are triggered to synchronously execute the specified data operation task, thereby allowing at least a part of the subgroups to traverse the data operation task once or multiple times during one or more rounds of storage capacity adjustment between multiple subgroups in the storage cluster; When the current actual storage capacity of any subgroup is within a certain ratio range of the total capacity of the storage cluster, the marker node allocated to the subgroup will stay there and will not be transferred away; as well as Only when the current actual storage capacity of any subgroup is not within the ratio range of the total capacity of the storage cluster, the marker node previously allocated to any subgroup is allowed to be relocated; For a static subgroup whose storage capacity change scale is lower than a certain threshold, the marker node that is relocated from any subgroup is guided to switch to the static subgroup: After the static subgroup is triggered to execute the data operation task, the marking node immediately rebounds to other subgroups of the storage cluster, and the change scale of the storage capacity of the static subgroup is maintained below the determined threshold.
2. The method according to claim 1, characterized in that: The storage node includes at least one of a storage server, a cloud storage system, or a network attached storage.
3. The method according to claim 1, characterized in that: A distributed storage cluster is constructed by adjusting storage capacity between subgroups. include: The storage capacity of any single subgroup itself increases in a follow-up manner as the space demand of the any single subgroup increases, and one or more storage nodes are deployed from the remaining subgroups to the any single subgroup.
4. The method according to claim 1, characterized in that: A distributed storage cluster is constructed by adjusting storage capacity between subgroups. include: The storage capacity of any single subgroup itself is reduced in a follow-up manner as the space demand of the any single subgroup decreases, and one or more storage nodes are deployed from the any single subgroup to the remaining subgroups.
5. The method according to claim 1, characterized in that: If any subgroup of the marked node needs to deploy its own storage nodes to other subgroups in the storage cluster, the deployment event of any subgroup should meet the following conditions: The marked node is transferred from any subgroup to the remaining subgroups in a high priority manner, while the regular storage nodes other than the marked node are transferred from any subgroup to the remaining subgroups in a low priority manner.
6. The method according to claim 1, characterized in that: The specified data operation task includes at least one of data backup, snapshot, replication, or recovery.
7. A method for constructing a distributed storage cluster, characterized in that: include: A storage cluster is constructed by multiple subgroups, each of which includes multiple storage nodes; defining at least one storage node in each of the selected subgroups as a marker node; In response to the dynamic changes in storage capacity requirements of different subgroups, storage capacity is adjusted between subgroups within the storage cluster to build a distributed storage cluster in which the storage capacity of subgroups changes with the trend of space demand; Among them, in the stage of adjusting storage capacity between subgroups: As the space requirements of the storage capacity of each subgroup fluctuate dynamically, different landmark nodes are guided to gather towards the subgroup with the largest storage capacity; Until different marker nodes are guided to gather together in the same common subgroup, so that each storage node of the common subgroup is triggered to synchronously execute the specified data operation task; Thereby, during one or more rounds of storage capacity adjustment between multiple subgroups in the storage cluster, at least a part of the subgroups is allowed to perform the data operation task once or multiple times; For static subgroups whose storage capacity change scale is lower than a certain threshold, the marker node that is relocated from the subgroup with the largest storage capacity change is guided to switch to the static subgroup: After the static subgroup is triggered to execute the data operation task, the marking node immediately rebounds to other subgroups of the storage cluster, maintaining the change scale of the storage capacity of the static subgroup below a certain threshold.
8. The method according to claim 7, characterized in that: The storage node includes at least one of a storage server, a cloud storage system, or a network attached storage.
9. The method according to claim 7, characterized in that: The specified data operation task includes at least one of data backup, snapshot, replication, or recovery.
10. The method according to claim 7, characterized in that: If any subgroup of the marked node needs to deploy its own storage node to the remaining subgroups in the storage cluster, the deployment event is limited to meet the following conditions: The marked node is transferred from any subgroup to the remaining subgroups in a high priority manner, while the regular storage nodes other than the marked node are transferred from any subgroup to the remaining subgroups in a low priority manner.
Citation Information
Patent Citations
Scheduling method, storage system, electronic equipment and storage medium
CN115878287A