Data storage method, system and electronic device

By obtaining the data block access frequency and cross-node correlation characteristics of a multi-node server cluster and dynamically adjusting the data storage strategy, the problems of inaccurate classification of hot and cold data and high energy consumption in the multi-node server cluster are solved, and efficient data storage and energy consumption management are achieved.

CN120508260BActive Publication Date: 2025-09-16INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510991356.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-18
Publication Date
2025-09-16
Estimated Expiration
2045-07-18

AI Technical Summary

Technical Problem

Existing multi-node server clusters have problems with inaccurate classification of hot and cold data and high energy consumption in data storage. Static tiered storage solutions cannot dynamically adapt to changes in access patterns, and hybrid storage architectures lack global energy optimization strategies, resulting in poor storage performance and energy efficiency.

Method used

By obtaining the data block access frequency and cross-node correlation characteristics of the storage node, the classification results of the data block are dynamically determined, and the migration and storage of the data block are realized based on the global resource manager. High-performance network connection and neural network model are used to optimize the classification accuracy. Combined with the global energy consumption management strategy, storage resource utilization and energy consumption are optimized.

Benefits of technology

It improves the accuracy of data block classification, reduces migration latency, enhances storage performance and energy efficiency, extends hardware life, and reduces overall cluster energy consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120508260B_ABST
    Figure CN120508260B_ABST
Patent Text Reader

Abstract

The present application provides a data storage method, system, and electronic device that can be applied to computer technology fields such as cloud computing and edge computing. The method includes: obtaining the access frequency and cross-node association characteristics of each data block in multiple storage units of multiple storage nodes in a preset time period, wherein the cross-node association characteristics represent the probability that the data block is written to other storage nodes in the multiple storage nodes other than the storage data block; determining a classification result of the data block based on the access frequency and the cross-node association characteristics; and migrating a target data block that meets a predetermined condition to a target storage unit that matches the classification result for storage based on the classification result, wherein the predetermined condition includes: the category of the source storage unit of the data block does not match the classification result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, specifically to cloud computing, edge computing and other fields, and more specifically to a data storage method, system and electronic device. Background Art

[0002] With the rapid development of cloud computing and edge computing technologies, multi-node server clusters have gained widespread application in data centers and high-performance computing due to their high density and low latency. This cluster architecture supports large-scale data processing and real-time analysis, meeting the needs of modern data centers for efficient and reliable storage systems.

[0003] In the process of implementing the concept of this application, the inventors found that relying on fixed rules such as the Least Recently Used (LRU) algorithm to divide hot and cold data cannot effectively adapt to changes in dynamic loads, resulting in inaccurate classification of hot and cold data and affecting storage performance. Summary of the Invention

[0004] In view of the above problems, the present application provides a data storage method, system and electronic device.

[0005] According to a first aspect of the present application, a data storage method is provided, comprising: obtaining access frequencies and cross-node association characteristics of each data block in a plurality of storage units of a plurality of storage nodes in a preset time period, wherein the cross-node association characteristics represent the probability that the data block is written to other storage nodes among the plurality of storage nodes except for the storage node storing the data block; determining a classification result of the data block based on the access frequencies and the cross-node association characteristics; and migrating a target data block that meets predetermined conditions to a target storage unit that matches the classification result for storage based on the classification result, wherein the predetermined conditions include: the category of the source storage unit of the data block does not match the classification result.

[0006] A second aspect of the present application provides a data storage system, comprising: a plurality of storage nodes, each comprising at least one storage unit; a controller, communicatively connected to the plurality of storage nodes; wherein the controller is configured to execute the data storage method of the present application.

[0007] The third aspect of the present application provides an electronic device, comprising: one or more processors; a memory for storing one or more computer programs, wherein the one or more processors execute the one or more computer programs to implement the steps of the data storage method of the present application.

[0008] The fourth aspect of the present application further provides a computer-readable storage medium on which a computer program or instruction is stored. When the above-mentioned computer program or instruction is executed by a processor, the steps of the data storage method of the present application are implemented.

[0009] The fifth aspect of the present application further provides a computer program product, comprising a computer program or instructions, which implement the steps of the data storage method of the present application when the computer program or instructions are executed by a processor. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The above contents and other objects, features and advantages of the present application will become more apparent through the following description of the embodiments of the present application with reference to the accompanying drawings, in which:

[0011] Figure 1 An application scenario diagram of the data storage method according to an embodiment of the present application is shown;

[0012] Figure 2 shows an architecture diagram of a data storage system according to an embodiment of the present application;

[0013] Figure 3 A flowchart of a data storage method according to an embodiment of the present application is shown;

[0014] Figure 4 A schematic diagram of a federated learning training process for a global model according to an embodiment of the present application is shown;

[0015] Figure 5 A schematic diagram of a cross-node migration process according to an embodiment of the present application is shown;

[0016] Figure 6 shows a structural block diagram of a data storage device according to an embodiment of the present application;

[0017] Figure 7 A block diagram of an electronic device suitable for implementing a data storage method according to an embodiment of the present application is shown. DETAILED DESCRIPTION

[0018] Hereinafter, embodiments of the present application will be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the present application. In the detailed description below, for ease of explanation, many specific details are set forth to provide a comprehensive understanding of the embodiments of the present application. However, it is apparent that one or more embodiments may also be implemented without these specific details. In addition, in the following description, descriptions of known structures and technologies are omitted to avoid unnecessarily confusing the concepts of the present application.

[0019] The terms used herein are only for describing specific embodiments and are not intended to limit this application. The terms "comprise," "include," etc. used herein indicate the presence of the features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.

[0020] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art unless otherwise defined. It should be noted that the terms used herein should be interpreted as having a meaning consistent with the context of this specification and should not be interpreted in an idealized or overly rigid manner.

[0021] When expressions such as "at least one of A, B, and C, etc." are used, they should generally be interpreted in accordance with the meaning commonly understood by those skilled in the art (for example, "a system having at least one of A, B, and C" should include but is not limited to a system having A alone, B alone, C alone, A and B, A and C, B and C, and / or A, B, C, etc.).

[0022] Static tiered storage solutions and hybrid storage architectures are related storage solutions for multi-node server clusters:

[0023] The static tiered storage solution uses a LRU algorithm to store hot data on solid-state drives (SSDs) and cold data on hard disk drives (HDDs). This solution records data access time, treating recently accessed data as hot data and storing it on high-speed SSDs. Data that hasn't been accessed for a long time is treated as cold data and stored on slow, high-capacity HDDs.

[0024] The hybrid storage architecture combines non-volatile memory (NVM) and HDDs, using simple thresholds to determine hot and cold data. This solution leverages the high read and write speed of NVM and the large storage capacity of HDDs. By setting simple thresholds to determine the hot and cold states of data, hot data is stored in NVM and cold data is stored in HDDs.

[0025] In the process of implementing the concept of this application, the inventors discovered that although multi-node server clusters have many advantages, the relevant storage solutions still expose the following key problems when dealing with their complex needs:

[0026] Static tiered storage solutions suffer from low classification accuracy and are unable to dynamically adapt to changing access patterns, leading to limitations in static tiering strategies. Specifically, in multi-node server clusters, data access patterns are complex and volatile, and static LRU algorithms cannot accurately determine the hot and cold states of data. This can lead to hot data being incorrectly stored in HDDs and cold data being stored in SSDs, impacting storage performance.

[0027] Hybrid storage architectures fail to consider cross-node dependencies and lack a global energy optimization strategy. Specifically, in a multi-node server cluster, data access between different nodes may be dependent on each other. However, this solution focuses solely on data storage within a single node and fails to achieve coordinated scheduling of global resources. Furthermore, the lack of a global energy optimization strategy results in high overall cluster energy consumption.

[0028] Embodiments of the present application provide a data storage method, system, and electronic device. The data storage method includes: obtaining access frequencies and cross-node association characteristics of each data block in multiple storage units of multiple storage nodes during a preset time period, wherein the cross-node association characteristics represent the probability of the data block being written to other storage nodes among the multiple storage nodes except for the storage data block; determining a classification result of the data block based on the access frequencies and the cross-node association characteristics; and migrating target data blocks that meet predetermined conditions to target storage units that match the classification results for storage based on the classification results, wherein the predetermined conditions include: the category of the source storage unit of the data block does not match the classification result.

[0029] Figure 1 An application scenario diagram of the data storage method according to an embodiment of the present application is shown.

[0030] like Figure 1 As shown, an application scenario 100 according to this embodiment may include a first server 101, a network 102, and a second server 103. The network 102 is used as a medium for providing a communication link between the first server 101 and the second server 103. The network 102 may include various connection types, such as wired or wireless communication links or fiber optic cables.

[0031] The first server 101 and the second server 103 can be various storage devices with data storage capabilities, including but not limited to physical servers, cloud servers, dedicated storage arrays, object storage nodes, software-defined storage platforms, and the like. Users can use the first server 101 and the second server 103 to store data. The first server 101 and the second server 103 can be configured with various storage units, such as NVM, SSD, HDD, etc. (for example only), and are not limited to these. The first server 101 and / or the second server 103 can be configured with a controller to control data storage within the first server 101 and / or the second server 103.

[0032] It should be noted that the data storage method provided in the embodiment of the present application can generally be executed by the controller in the first server 101 or the controller in the second server 103. Accordingly, the data storage device provided in the embodiment of the present application can generally be set in the controller in the first server 101 or the controller in the second server 103.

[0033] It should be understood that Figure 1 The number of servers and networks in the example is only for reference. Any number of servers and networks may be used depending on the implementation requirements.

[0034] According to an embodiment of the present application, the first server 101 and the second server 103 may constitute multiple storage nodes, each of which may include at least one storage unit. The controller configured in the first server 101 or the controller configured in the second server 103 may be implemented using a Global Resource Manager (GRM). By controlling data storage in multiple servers, including the first server 101 and the second server 103, by only one GRM in each server (e.g., the first server 101) at a time, a data storage system for executing the data storage method of the present application may be constructed.

[0035] Figure 2 The diagram shows an architecture diagram of a data storage system according to an embodiment of the present application.

[0036] like Figure 2 As shown, the data storage system 200 is a multi-node server cluster system that may include a global resource manager 250 and a first storage node 210, a second storage node 220, a third storage node 230, a fourth storage node 240, and the like, but is not limited thereto. The global resource manager 250 is in communication with the first storage node 210, the second storage node 220, the third storage node 230, and the fourth storage node 240. The first storage node 210 may include a first non-volatile memory 211, a first solid-state drive 212, and a first mechanical hard disk 213. The second storage node 220 may include a second non-volatile memory 221, a second solid-state drive 222, and a second mechanical hard disk 223. The third storage node 230 may include a third non-volatile memory 231, a third solid-state drive 232, and a third mechanical hard disk 233. The fourth storage node 240 may include a fourth non-volatile memory 241, a fourth solid-state drive 242, and a fourth mechanical hard disk 243.

[0037] According to an embodiment of the present application, the first non-volatile memory 211, the second non-volatile memory 221, the third non-volatile memory 231, and the fourth non-volatile memory 241 can each utilize NVMs of, for example, at least 2 TB (terabytes) as hot data tier storage units, collectively forming a hot data tier for storing hot data. The first solid-state drive 212, the second solid-state drive 222, the third solid-state drive 232, and the fourth solid-state drive 242 can each utilize SSDs of, for example, at least 8 TB as warm data tier storage units, collectively forming a warm data tier for storing warm data. The first mechanical hard drive 213, the second mechanical hard drive 223, the third mechanical hard drive 233, and the fourth mechanical hard drive 243 can each utilize high-density HDD arrays of, for example, at least 50 TB as cold data tier storage units, collectively forming a cold data tier for storing cold data. The high-density HDD array can be a dual-port design, redundantly connected to two storage nodes, with each port supporting a bandwidth of at least 12 Gbps (gigabits per second).

[0038] According to an embodiment of the present application, different storage units within each data layer, such as the hot data layer, warm data layer, and cold data layer, can be directly connected to the central processing unit (CPU) through a high-performance, low-latency Compute Express Link (CXL) interface, thereby supporting memory pooling and cross-node access between different storage units, and reducing data latency to microseconds.

[0039] For example, Figure 2 As shown, the first non-volatile memory 211, the second non-volatile memory 221, the third non-volatile memory 231, and the fourth non-volatile memory 241 can be directly connected to the CPU through a high-performance, low-latency CXL interface, so that memory pooling sharing can be achieved among the first non-volatile memory 211, the second non-volatile memory 221, the third non-volatile memory 231, and the fourth non-volatile memory 241, and the hot data migration delay can be reduced to microseconds.

[0040] According to the embodiments of the present application, by executing the above-mentioned data storage method based on GRM, the data storage in each storage unit of multiple storage nodes is controlled, and an effective collaborative scheduling mechanism is provided, which can realize the collaborative scheduling of global data in multiple storage nodes. Compared with each storage node independently managing storage resources, it can effectively improve the utilization rate of high-speed media, eliminate resource islands, and reduce resource waste.

[0041] In the process of implementing the concept of this application, the inventors also found that when migrating data across nodes, the overhead and complexity of traditional network protocols themselves lead to high migration delays, affecting the overall performance of the system.

[0042] According to an embodiment of the present application, the global resource manager 250 can serve as an independent control node and communicate with each storage node, such as the first storage node 210, the second storage node 220, the third storage node 230, and the fourth storage node 240, via a high-speed interconnection network to implement global monitoring and scheduling. The high-speed interconnection network can be implemented based on a link with a bandwidth greater than or equal to 100 Gbps.

[0043] Through the above-mentioned embodiments of the present application, a high-speed Internet network with a bandwidth greater than or equal to 100 Gbps is used to build a communication connection between GRM and multiple storage nodes, which can effectively reduce the migration delay and achieve a cross-node migration delay of ≤12 μs (microseconds), meeting real-time requirements.

[0044] The following will be based on Figure 1 and Figure 2 The scene described by Figures 3 to 5 The data storage method of the embodiment of the present application is described in detail.

[0045] Figure 3 A flow chart of a data storage method according to an embodiment of the present application is shown.

[0046] like Figure 3 As shown, the data storage method of this embodiment includes operations S310 to S330. The data storage method can be performed as follows: Figure 1 The controller configured in the first server 101 or the controller configured in the second server 103 is executed, or the ... second server 103 is executed, Figure 2 The global resource manager 250 in is executed.

[0047] In operation S310, the access frequency and cross-node association characteristics of each data block in multiple storage units of multiple storage nodes in a preset time period are obtained, wherein the cross-node association characteristics represent the probability of the data block being written to other storage nodes in the multiple storage nodes except for the storage data block.

[0048] According to the embodiment of the present application, the access frequency can be determined by counting the number of data block accesses within the time window T based on formula (1). .

[0049] (1);

[0050] When a read / write operation occurs on a data block, it can be determined that an access has occurred, and each read or write operation can be counted as an access. If no read / write operation occurs on a data block, it can be determined that no access has occurred. T can be, for example, 5 minutes, but is not limited to this.

[0051] According to an embodiment of the present application, the cross-node association characteristics of the data block in the preset time period can be determined based on the number of migrations and access frequencies of the data block to other storage nodes in the preset time period.

[0052] For example, based on formula (2), the probability of a data block being accessed by other storage nodes within a preset time period can be counted to calculate the cross-node correlation feature C.

[0053] C = number of migrations / visit frequency (2);

[0054] The migration count may represent the number of times a data block is written to other storage nodes, and the access frequency may represent the total number of times data is read and written within a preset time period.

[0055] According to an embodiment of the present application, the probability of a data block being written to other storage nodes can also be determined based on the resource usage of the source storage node or source storage unit of the data block within a preset time period, thereby determining the cross-node association characteristics of the data block in the preset time period.

[0056] For example, in order to achieve load balancing of data blocks among multiple nodes, in response to detecting that the resource usage of the source storage node is greater than the first preset threshold, or detecting that the resource usage of the source storage unit is greater than the second preset threshold, the data block can be migrated to other storage nodes. Other storage nodes may include storage nodes whose resource usage is less than the third preset threshold, or storage nodes to which the resource usage of the target storage unit is less than the fourth preset threshold in the storage node to which the data is migrated. Among them, the third preset threshold is less than or equal to the first preset threshold, and the fourth preset threshold is less than or equal to the second preset threshold. The first preset threshold and the second preset threshold can be customized according to business needs and are not limited here. The fourth preset threshold is less than the third preset threshold. The fourth preset threshold can be determined based on the size of the data block to be migrated, for example, it can be at least 1.2 times the data size of the data block to be migrated, and is not limited to this.

[0057] By calculating the probability of data blocks being written to other storage nodes and introducing cross-node association features, it can help consider the correlation between data blocks and multiple nodes, eliminate resource islands caused by single nodes, achieve global considerations, and ultimately help improve the accuracy of the determined data block classification results.

[0058] In operation S320 , a classification result of the data block is determined based on the access frequency and the cross-node association feature.

[0059] According to an embodiment of the present application, the plurality of storage units may include at least one of the following: a hot data tier storage unit, a warm data tier storage unit, and a cold data tier storage unit. The classification result may indicate whether the corresponding data block belongs to hot data, warm data, or cold data.

[0060] According to embodiments of the present application, after obtaining access frequency and cross-node management characteristics, a calculation formula can be constructed using these as independent variables, assigning corresponding weights to them based on business needs, and using the classification result as the dependent variable to calculate the classification result for the data block. Alternatively, the classification result can be output by training a neural network model, which is not limited here.

[0061] In operation S330 , based on the classification result, the target data block that meets the predetermined condition is migrated to a target storage unit that matches the classification result for storage. The predetermined condition includes: the category of the source storage unit of the data block does not match the classification result.

[0062] According to an embodiment of the present application, GRM can generate a dynamic scheduling strategy based on the classification results and the source storage unit, target storage unit, etc., to achieve the migration of data in each storage node between different storage units based on the dynamic classification results.

[0063] For example, combined with Figure 2 As shown, the source storage unit of a certain data block is the first solid-state drive 212 in the first storage node 210. Through the aforementioned operations S310 to S320, it can be determined that the classification result of the data block is hot data, and then the data block can be determined to be a target data block that meets the above-mentioned predetermined conditions. On this basis, the target data block can be migrated to the first non-volatile memory 211 in the first storage node 210 as a hot data tier storage unit, or the data block can be migrated to the second non-volatile memory 221 in the second storage node 220 as a hot data tier storage unit, or the data block can be migrated to the corresponding hot data tier storage unit of the third storage node 230, the fourth storage node 240, etc., without limitation here.

[0064] Through the above-mentioned embodiments of the present application, the data block classification results are determined by introducing multi-dimensional features such as the access frequency of each data block and cross-node correlation features. Compared with the method of relying on fixed rules (such as the LRU algorithm) to divide hot and cold data, the classification accuracy can be effectively improved, and the dynamic data classification accuracy is ≥95%, which is conducive to reducing performance losses caused by misjudgment.

[0065] According to an embodiment of the present application, for the above operation S320, when a neural network model is used for processing, for example, an initial model can be trained through federated learning to obtain a global model. Then, the access frequency and cross-node correlation features are input into the global model to obtain a classification result.

[0066] According to an embodiment of the present application, the initial model can use a lightweight neural network, and its model architecture may include an input layer, a long short-term memory (LSTM) layer, and an output layer. The input data format of the input layer can be expressed as (F, L, S, C). F, or Features, represents the input feature dimension; L, or Sequence Length, represents the time series length; S, or Samples, represents the number of samples; and C, or Channels, represents the number of channels. The LSTM can be a two-layer LSTM with 64 hidden units, but is not limited to this. The output layer can use a Softmax (an activation function) output layer, using three-level labels: height (H), width (W), and number of channels (C).

[0067] According to an embodiment of the present application, a global model may be trained by the following operations: sending an initial model to multiple storage nodes to aggregate intermediate model parameters from intermediate models of each storage node to obtain aggregate model parameters, wherein the initial model in the storage node is trained using the access frequency and cross-node association characteristics of local data blocks in the storage node to obtain the intermediate model of the storage node. The model parameters of the initial model are updated using the aggregate model parameters to obtain the global model.

[0068] Figure 4 A schematic diagram of the federated learning training process of the global model according to an embodiment of the present application is shown.

[0069] like Figure 4 As shown, the federated learning training process 400 includes three stages: local training 410, parameter aggregation 420, and model distribution 430.

[0070] In the local training 410 phase, each storage node, such as the first storage node, the second storage node, the third storage node, and the fourth storage node, can sequentially perform multi-dimensional feature collection, model training, and parameter upload. Specifically, the initial model is trained based on the access frequency of the data block obtained from the multi-dimensional feature collection and the cross-node correlation features, and the intermediate model is obtained. The intermediate model parameters are uploaded to the GRM ( Figure 4 not shown).

[0071] In the parameter aggregation 420 stage, GRM may collect the intermediate model parameters uploaded by each storage node, for example, every 6 hours, aggregate the parameters using, for example, a Federated Averaging (FedAvg) algorithm, and generate a global model.

[0072] In the model distribution 430 stage, the global model can be pushed to each storage node, replacing the local model in the storage node as the initial model for the next round of training.

[0073] Through the above-mentioned embodiments of the present application, combining local training with global aggregation is conducive to achieving high-precision classification, and the accuracy of the classification results can reach more than 95%.

[0074] According to an embodiment of the present application, the above operation S330 may include: determining at least one target storage unit whose category matches the classification result based on the classification result. Determining the target storage node based on the storage node where the target storage unit whose remaining resource capacity meets the first preset condition is located. Sending a pre-migration request to the target storage node and the source storage node where the target data block is located. In response to receiving a successful response returned by the source storage node and the target storage node for the pre-migration request, sending a migration instruction to the source storage node and the target storage node so as to migrate the target data block to the target storage unit in the target storage node. In response to receiving a failure response returned by at least one of the source storage node and the target storage node for the pre-migration request, sending a rollback instruction to the source storage node and the target storage node so as to roll back the target data block to the storage state before migration.

[0075] According to an embodiment of the present application, the first preset condition may include: the resource remaining capacity among the resource remaining capacities of multiple target storage units is the largest. Based on this, one or more target storage nodes can be determined, and the determined target storage nodes may include or exclude the source storage nodes. The first preset condition may also include: the resource remaining capacity of the target storage unit is greater than a fifth preset threshold. Based on this, one or more target storage nodes can be determined, and the determined target storage nodes may include or exclude the source storage nodes. Among them, the fifth preset threshold can be determined according to business needs or the size of the data block to be migrated, and is not limited to this.

[0076] When the target storage node is the source storage node, the data migration operation corresponding to the above operation S330 may be performed as intra-node migration. When the target storage node does not include the source storage node, the data migration operation corresponding to the above operation S330 may be performed as cross-node migration.

[0077] Figure 5 A schematic diagram of a cross-node migration process according to an embodiment of the present application is shown.

[0078] Assume that the target data block to be migrated is stored in the SSD of the first storage node, and the classification result of the target data block is determined to be hot data. Now it is necessary to migrate the target data block to the NVM of the first storage node or the NVM of the second storage node ( Figure 5 not shown).

[0079] like Figure 5 As shown, the NVM usage rate in the first storage node is greater than 90%, and the remaining NVM capacity in the second storage node is greater than or equal to 120% of the data volume represented by the target data block. Figure 5 (not shown) obtains the information and determines that the target data block needs to be migrated from the first storage node to the second storage node via the data transmission link 500 with a bandwidth ≥ 100 Gbps.

[0080] During the process of transmitting the target database based on the data transmission link 500 , a two-phase commit (2PC) protocol may be used to implement data transmission, including a preparation phase 510 , a commit phase 520 , and a rollback phase 530 .

[0081] In the preparation phase 510 , the GRM may send a pre-migration request to a first storage node as a source storage node and a second storage node as a target storage node to verify resource availability of the first storage node and the second storage node.

[0082] In the commit phase 520, if both the first storage node and the second storage node respond successfully, the GRM may continue to send formal migration instructions to the first storage node and the second storage node, and the first storage node releases data space and migrates the target data block to the second storage node.

[0083] In the rollback phase 530: if any of the first storage node and the second storage node fails to respond, the GRM may trigger a log rollback to restore to the state before the migration.

[0084] According to an embodiment of the present application, the data transmission link 500 can be implemented using Remote Direct Memory Access (RDMA). The RDMA link can support zero-copy data transmission and implement one-way read and write operations. For example, when transmitting a target data block, the first storage node can directly write to the NVM of the second storage node using RDMA Write with Immediate (RDMA write operation that supports immediate notification) with a latency of ≤12 μs. After the data transmission is completed, the GRM can update the global address mapping table to achieve metadata synchronization.

[0085] Through the above-mentioned embodiments of the present application, combined with lossless transmission and the 2PC protocol, it is helpful to ensure atomicity and low latency during the data migration process.

[0086] In the process of realizing the concept of this application, the inventors also found that there are problems such as hardware life and quality imbalance in each storage node, including: SSD may accelerate wear due to frequent writing, HDD has high energy consumption during long-term operation, and there is a lack of cluster-level optimization strategy.

[0087] According to an embodiment of the present application, the GRM may also have the function of monitoring the load of the storage unit such as hardware wear, power consumption, etc. in real time.

[0088] According to an embodiment of the present application, when there are multiple target storage nodes, the operation S330 may further include obtaining program and / or erase (PE) cycles of target storage cells in each target storage node, and migrating the target data block to a target storage cell in the target storage node whose PE cycles meet a second preset condition for storage.

[0089] According to an embodiment of the present application, the second preset condition may include a preset range determined according to business requirements or storage unit usage, which is not limited here.

[0090] For example, GRM can record the PE cycles of the SSD. When there is a data block migration task, it can prioritize the task to the target storage unit with low wear, realizing wear-aware scheduling with a lifespan difference of ≤5%.

[0091] Through the above-mentioned embodiments of the present application, intelligently allocating tasks based on the health status of storage can facilitate cluster-level wear leveling and extend the overall lifespan of the cluster. For example, the lifespan of SSDs can be extended to more than 7 years, and cluster energy consumption can be reduced by 35%.

[0092] According to an embodiment of the present application, the process of executing the above data storage method may further include: obtaining power consumption information of each storage unit, and switching the working mode of the storage unit to the sleep mode in response to detecting that the power consumption information of a storage unit meets the sleep condition.

[0093] For example, if GRM detects that HDDs in multiple storage nodes are idle simultaneously, it can send a deactivation command to the HDDs to coordinate them into deep sleep mode, achieving clustered HDD hibernation. HDDs are considered idle if their power consumption is ≤1W / HDD.

[0094] For example, according to the SSD load, the SSD can be controlled to switch to Active (full power operation), Slumber (low power standby), DevSleep (deep sleep) and other states to achieve SSD dynamic power consumption management.

[0095] The above-mentioned embodiments of the present application are helpful in achieving medium-level energy consumption control of each storage unit in a storage node and optimizing hardware energy consumption.

[0096] According to an embodiment of the present application, when initially writing data to each storage node, the data to be written can first be cached to NVM through small-granularity write operations, and then accumulated to, for example, 64KB, and then written to SSD in batches to achieve cluster-level write aggregation. The write amplification factor can be reduced from 3.0 to 1.2.

[0097] According to embodiments of the present application, the above-mentioned data storage method can also be extended to fields such as edge computing and artificial intelligence (AI) training acceleration. In the field of edge computing, the hot-cold tiering strategy can be applied to edge nodes to optimize local data lifecycle management. In the field of AI training acceleration, high-frequency model parameters can be dynamically allocated to high-bandwidth memory (HBM) memory, reducing graphics processing unit (GPU) memory access latency and improving training efficiency.

[0098] The following is a test environment constructed to test the advantages of the data storage method of the present application in core indicators such as latency, energy consumption, and hardware life.

[0099] Test environment:

[0100] Cluster configuration: 8 storage nodes, each storage node is configured with 2TB of NVM, 8TB of SSD, and 50TB of HDD, and the network bandwidth of the RDMA link is 100 Gbps.

[0101] Load model: mixed read and write (70% read, 30% write) + burst traffic simulation (100,000 requests per second).

[0102] Performance comparison (see Table 1):

[0103] Table 1:

[0104]

[0105] Based on the above data storage method, the present application also provides a data storage device. Figure 6 The device is described in detail.

[0106] Figure 6 A structural block diagram of a data storage device according to an embodiment of the present application is shown.

[0107] like Figure 6 As shown, the data storage device 600 of this embodiment includes an access information acquisition module 610 , a classification module 620 and a migration module 630 .

[0108] The access information acquisition module 610 is used to obtain the access frequency and cross-node association characteristics of each data block in the multiple storage units of each of the multiple storage nodes in a preset time period, wherein the cross-node association characteristics represent the probability of the data block being written to other storage nodes in the multiple storage nodes except for the storage data block.

[0109] The classification module 620 is configured to determine the classification result of the data block according to the access frequency and the cross-node association feature.

[0110] The migration module 630 is configured to migrate target data blocks that meet predetermined conditions to target storage units that match the classification results for storage based on the classification results. The predetermined conditions include: the category of the source storage unit of the data block does not match the classification results.

[0111] According to an embodiment of the present application, the above-mentioned data storage device also includes a cross-node association feature determination module.

[0112] The cross-node correlation feature determination module is used to determine the cross-node correlation feature of the data block in the preset time period according to the number of migrations and access frequencies of the data block to other storage nodes in the preset time period.

[0113] According to an embodiment of the present application, the classification module includes a model processing unit.

[0114] The model processing unit is used to input the access frequency and cross-node correlation features into the global model to obtain the classification results. The global model is trained by the parameter aggregation subunit and the parameter update subunit.

[0115] The parameter aggregation subunit is used to send the initial model to multiple storage nodes to aggregate the intermediate model parameters of the intermediate models from each storage node to obtain aggregated model parameters, wherein the access frequency and cross-node association characteristics of the local data blocks in the storage node are used to train the initial model in the storage node to obtain the intermediate model of the storage node.

[0116] The parameter updating subunit is used to update the model parameters of the initial model using the aggregated model parameters to obtain a global model.

[0117] According to an embodiment of the present application, the migration module includes a target storage unit determination unit, a target storage node determination unit, a pre-migration unit, and a migration unit.

[0118] The target storage unit determining unit is configured to determine, based on the classification result, at least one target storage unit whose category matches the classification result.

[0119] The target storage node determining unit is configured to determine the target storage node according to the storage node where the target storage unit whose resource remaining capacity meets the first preset condition is located.

[0120] The pre-migration unit is used to send a pre-migration request to the target storage node and the source storage node where the target data block is located.

[0121] The migration unit is configured to send a migration instruction to the source storage node and the target storage node in response to receiving a successful response to the pre-migration request from the source storage node and the target storage node, so as to migrate the target data block to the target storage unit in the target storage node.

[0122] According to an embodiment of the present application, the migration module further includes a rollback unit.

[0123] The rollback unit is configured to send a rollback instruction to the source storage node and the target storage node in response to receiving a failure response returned by at least one of the source storage node and the target storage node for the pre-migration request, so as to roll back the target data block to the storage state before the migration.

[0124] According to an embodiment of the present application, the target storage node includes a plurality of nodes. The migration module includes a program and / or erase cycle acquisition unit and a migration unit.

[0125] The program and / or erase cycle acquisition unit is used to acquire the program and / or erase cycle of the target storage cell in each target storage node.

[0126] The migration unit is used to migrate the target data block to a target storage unit in the target storage node whose programming and / or erasing cycle meets a second preset condition for storage.

[0127] According to embodiments of the present application, any multiple modules among the access information acquisition module 610, classification module 620, and migration module 630 may be combined into a single module, or any one of these modules may be split into multiple modules. Alternatively, at least part of the functionality of one or more of these modules may be combined with at least part of the functionality of other modules and implemented in a single module. According to embodiments of the present application, at least one of the access information acquisition module 610, classification module 620, and migration module 630 may be at least partially implemented as a hardware circuit, such as a field programmable gate array (FPGA), a programmable logic array (PLA), a system on a chip, a system on a substrate, a system on a package, an application-specific integrated circuit (ASIC), or may be implemented in hardware or firmware through any other reasonable means of circuit integration or packaging, or may be implemented in any one of the three implementation methods of software, hardware, and firmware, or any appropriate combination of these. Alternatively, at least one of the access information acquisition module 610, classification module 620, and migration module 630 may be at least partially implemented as a computer program module that, when executed, performs the corresponding functionality.

[0128] Figure 7 A block diagram of an electronic device suitable for implementing a data storage method according to an embodiment of the present application is shown.

[0129] like Figure 7 As shown, an electronic device 700 according to an embodiment of the present application includes a processor 701, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage unit 708 into a random access memory (RAM) 703. The processor 701 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or a related chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 701 may also include onboard memory for caching purposes. The processor 701 may include a single processing unit or multiple processing units for performing different actions of the method flow according to the embodiment of the present application.

[0130] Various programs and data required for the operation of the electronic device 700 are stored in the RAM 703. The processor 701, ROM 702, and RAM 703 are connected to each other via a bus 704. The processor 701 performs various operations of the method flow according to the embodiment of the present application by executing the programs in the ROM 702 and / or RAM 703. It should be noted that the programs may also be stored in one or more memories other than the ROM 702 and the RAM 703. The processor 701 may also perform various operations of the method flow according to the embodiment of the present application by executing the programs stored in the one or more memories.

[0131] According to an embodiment of the present application, electronic device 700 may further include an input / output (I / O) interface 705, which is also connected to bus 704. Electronic device 700 may also include one or more of the following components connected to I / O interface 705: an input section 706 including a keyboard, mouse, etc.; an output section 707 including devices such as a cathode ray tube (CRT), liquid crystal display (LCD), and speakers; a storage section 708 including a hard disk; and a communication section 709 including a network interface card such as a LAN card or modem. Communication section 709 performs communication processing via a network such as the Internet. A drive 710 is also connected to I / O interface 705 as needed. Removable media 711, such as a magnetic disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed in drive 710 as needed, so that computer programs read from the removable media can be installed into storage section 708 as needed.

[0132] This application also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments, or may exist independently and not be incorporated into the device / apparatus / system. The computer-readable storage medium carries one or more programs, and when the one or more programs are executed, the data storage method according to the embodiments of this application is implemented.

[0133] According to an embodiment of the present application, a computer-readable storage medium may be a non-volatile computer-readable storage medium, and may include, for example, but not limited to: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the present application, a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to an embodiment of the present application, a computer-readable storage medium may include the ROM 702 and / or RAM 703 described above and / or one or more memories other than ROM 702 and RAM 703.

[0134] The embodiments of the present application also include a computer program product, which includes a computer program containing program code for executing the method shown in the flowchart. When the computer program product is executed in a computer system, the program code is used to enable the computer system to implement the data storage method provided in the embodiments of the present application.

[0135] The computer program executes the above functions defined in the system / device of the embodiment of the present application when the computer program is executed by the processor 701. According to the embodiment of the present application, the system, device, module, unit, etc. described above can be implemented by a computer program module.

[0136] In one embodiment, the computer program may be stored on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may be transmitted and distributed in the form of a signal on a network medium, downloaded and installed via the communication portion 709, and / or installed from a removable medium 711. The program code contained in the computer program may be transmitted using any appropriate network medium, including but not limited to wireless, wired, or any suitable combination thereof.

[0137] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 709, and / or installed from a removable medium 711. When the computer program is executed by the processor 701, the above-described functions defined in the system of the embodiment of the present application are performed. According to the embodiment of the present application, the systems, devices, means, modules, units, etc. described above can be implemented by computer program modules.

[0138] According to an embodiment of the present application, the program code for executing the computer program provided by the embodiment of the present application can be written in any combination of one or more programming languages. Specifically, these computer programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C" or similar programming languages. The program code can be executed entirely on the user computing device, partially on the user device, partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using an Internet service provider to connect via the Internet).

[0139] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the above-mentioned module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flowchart, and the combination of the boxes in the block diagram or flowchart, can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0140] Those skilled in the art will appreciate that the features described in the various embodiments of this application may be combined and / or coupled in various ways, even if such combinations or couplings are not explicitly described in this application. In particular, the features described in the various embodiments of this application may be combined and / or coupled in various ways without departing from the spirit and teachings of this application. All such combinations and / or couplings fall within the scope of this application.

[0141] The embodiments of the present application have been described above. However, these embodiments are for illustrative purposes only and are not intended to limit the scope of the present application. Although each embodiment has been described separately above, this does not mean that the measures in each embodiment cannot be advantageously used in combination. Without departing from the scope of the present application, those skilled in the art may make various substitutions and modifications, and these substitutions and modifications should all fall within the scope of the present application.

Claims

1. A data storage method, characterized in that: The method comprises: Obtaining access frequencies and cross-node correlation features of each data block in a plurality of storage units of each of a plurality of storage nodes in a preset time period, wherein the cross-node correlation feature represents a probability that the data block is written to a storage node other than the storage node storing the data block among the plurality of storage nodes; Determining a classification result of the data block according to the access frequency and the cross-node association feature; According to the classification result, the target data block that meets the predetermined conditions is migrated to a target storage unit that matches the classification result for storage, wherein the predetermined conditions include: the category of the source storage unit of the data block does not match the classification result; Determining the classification result of the data block according to the access frequency and the cross-node association feature includes: Inputting the access frequency and the cross-node correlation feature into a global model to obtain the classification result, wherein the global model is trained by the following operations: Sending the initial model to the plurality of storage nodes to aggregate intermediate model parameters of the intermediate models from the respective storage nodes to obtain aggregated model parameters, wherein the initial model in the storage node is trained using access frequencies of local data blocks in the storage node and cross-node correlation features to obtain the intermediate model of the storage node; The model parameters of the initial model are updated using the aggregated model parameters to obtain the global model.

2. The method according to claim 1, characterized in that The method further comprises: The cross-node association feature of the data block in the preset time period is determined according to the number of migrations of the data block to the other storage nodes in the preset time period and the access frequency.

3. The method according to claim 1, characterized in that Migrating the target data blocks that meet the predetermined conditions to a target storage unit that matches the classification result for storage according to the classification result includes: determining, based on the classification result, at least one target storage unit whose category matches the classification result; Determine the target storage node according to the storage node where the target storage unit whose resource remaining capacity meets the first preset condition is located; Sending a pre-migration request to the target storage node and the source storage node where the target data block is located; In response to receiving successful responses returned by the source storage node and the target storage node to the pre-migration request, a migration instruction is sent to the source storage node and the target storage node to migrate the target data block to the target storage unit in the target storage node.

4. The method according to claim 3, characterized in that The step of migrating the target data blocks that meet the predetermined conditions to a target storage unit that matches the classification result for storage according to the classification result further includes: In response to receiving a failure response returned by at least one of the source storage node and the target storage node for the pre-migration request, a rollback instruction is sent to the source storage node and the target storage node to roll back the target data block to a storage state before migration.

5. The method according to claim 3, characterized in that The target storage nodes include a plurality of nodes; and the step of migrating the target data blocks that meet the predetermined conditions to the target storage unit that matches the classification result for storage includes: Obtaining a program and / or erase cycle of a target storage cell in each target storage node; The target data block is migrated to a target storage unit in the target storage node, where the programming and / or erasing cycle of the target storage unit meets a second preset condition, for storage.

6. The method according to any one of claims 1 to 5, characterized in that The plurality of storage units include at least one of the following: a hot data tier storage unit, a warm data tier storage unit, and a cold data tier storage unit; The classification result indicates whether the data block is hot data, warm data, or cold data.

7. A data storage system, characterized in that: The system comprises: A plurality of storage nodes, each comprising at least one storage unit; a controller, communicatively connected to the plurality of storage nodes; The controller is configured to execute the method according to any one of claims 1 to 6.

8. The system according to claim 7, characterized in that The controller is communicatively connected to the plurality of storage nodes via a link having a bandwidth greater than or equal to 100 gigabits per second.

9. An electronic device comprising: one or more processors; a memory for storing one or more computer programs, The method further comprises the step of executing the one or more computer programs to implement the steps of the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Multi-level cache management method, system and device for solid-state storage device and medium

    CN119127091A

  • Intelligent cold data migration method and system

    CN119938282A