CN114265551A - Data processing method in storage cluster, storage node and equipment - Google Patents
Data processing method in storage cluster, storage node and equipment Download PDFInfo
- Publication number
- CN114265551A CN114265551A CN202111463112.7A CN202111463112A CN114265551A CN 114265551 A CN114265551 A CN 114265551A CN 202111463112 A CN202111463112 A CN 202111463112A CN 114265551 A CN114265551 A CN 114265551A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- node
- storage node
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000012795 verification Methods 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 16
- 230000003044 adaptive effect Effects 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000011084 recovery Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000246 remedial effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The embodiment of the application provides a data processing method in a storage cluster, the storage cluster, a storage node and equipment. According to the technical scheme provided by the embodiments of the application, repeated data in the storage node is eliminated with low delay in the first stage; in order to ensure the performance of the storage cluster, the second stage can be executed in a non-blocking mode, and whether second data which is repeated with the first data is stored in other storage nodes in the storage cluster is checked; when the verification result shows that the storage cluster is stored, the first storage node executes deduplication operation aiming at the first data, namely, deduplication is realized, and meanwhile, the performance of the storage cluster is not greatly influenced, and the efficiency of computing, storage, network and other infrastructure of the storage cluster is improved.
Description
Technical Field
The present application relates to the field of computer technologies, and in particular, to a data processing method in a storage cluster, a storage node, and a device.
Background
The cloud storage technology brings convenient storage service for users, and the users can purchase and utilize storage resources according to requirements in the cloud storage system. Cloud Storage Provider (CSP) typically provides a virtualized environment to decouple hardware differences from the capacity used by Cloud users. Meanwhile, with the development trend of outward expansion of the CSP, in order to meet the increasing requirements of storage capacity and data reliability, a distributed storage cluster is mostly adopted as a back-end deployment. Storage capacity and bandwidth consumption lead to increased costs, and this problem becomes more critical when cloud users create large amounts of data to store from time to time. How to effectively reduce the storage cost has important significance for the development of CSP.
The storage cluster stores a large amount of data, in which a large amount of duplicated content must exist. Storing the same data repeatedly can consume not only storage resources, but also computing and network resources.
Disclosure of Invention
Embodiments of the present application provide a data de-duplication scheme to reduce duplicate data in a storage cluster.
In one embodiment of the present application, a data processing method is provided, which is applied to a first storage node in a storage cluster. Specifically, the method comprises the following steps:
determining whether the first storage node has stored second data that is duplicative of the first data;
when the first data is determined not to be stored, executing storage operation on the first data;
applying to check whether the storage nodes except the first storage node in the storage cluster store the second data;
and when the verification result is that the first data is stored, executing the duplicate removal operation aiming at the first data.
In another embodiment of the present application, a data processing method is provided, which is applied to a second storage node in a storage cluster. Specifically, the method comprises the following steps:
receiving a determination result sent by a first storage node in the storage cluster for first data, wherein the determination result is sent by the first storage node after determining whether second data which is repeated with the first data is stored in the node of the first storage node;
when the determination result is that the second data is not stored, applying to check whether the storage nodes except the first storage node in the storage cluster store the second data;
when the verification result is that the storage exists, feeding back corresponding response information to the first storage node;
the response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
In yet another embodiment of the present application, a storage cluster is provided. The storage cluster comprises a plurality of storage nodes, wherein the storage nodes are connected through a network; the plurality of storage nodes comprise a first storage node and a second storage node; wherein,
the first storage node is used for determining whether the first storage node stores second data which is repeated with the first data; when the first data is determined not to be stored, executing storage operation on the first data;
the second storage node is configured to check whether the storage nodes on the storage cluster other than the first storage node store the second data or not when the determination result is that the second data is not stored, and feed back a check result to the first storage node;
the first storage node is further configured to execute a deduplication operation for the first data when the verification result indicates that storage exists.
In yet another embodiment of the present application, a storage node is provided. The storage node includes:
the network card is used for receiving first data to be stored and determining whether second data which are repeated with the first data are stored in the storage node;
the processor is electrically connected with the network card and used for executing storage operation of the first data when the determination result is that the first data is not stored;
the network card is further configured to send a verification request for the first data to a target node in a storage cluster, so that the target node verifies whether nodes other than the storage node in the storage cluster store the second data;
the processor is further configured to execute a deduplication operation for the first data when the verification result received by the network card is stored.
In yet another embodiment of the present application, a storage node is provided. The storage node includes:
the network card is used for receiving a determination result of a first storage node in a storage cluster for sending first data, wherein the determination result is sent by the first storage node after determining whether second data which is repeated with the first data is stored in the node of the first storage node;
the processor is electrically connected with the network card and used for applying to check whether the storage nodes except the first storage node in the storage cluster store the second data or not when the determination result is that the second data is not stored;
the network card is also used for feeding back corresponding response information to the first storage node when the verification result indicates that the storage exists;
the response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
In yet another embodiment of the present application, an electronic device is provided. The electronic device comprises a processor and a memory; wherein the memory is configured to store one or more computer instructions, which when executed by the processor, are capable of implementing the steps in the data processing method embodiments described above.
The embodiments of the present application also provide a computer-readable storage medium storing a computer program, where the computer program, when executed by a computer, can implement the steps in the data processing method embodiments described above.
The embodiment of the application also provides a computer program product. The computer program product includes a computer program that, when executed by a computer, causes the computer to implement the steps in the data processing methods described above.
The technical scheme provided by the embodiment of the application designs a two-stage data de-duplication technology, and in the first stage, when first data to be stored exist, a storage node determines whether second data which is duplicated with the first data is stored in the node per se; and a second stage of determining whether other storage nodes in the storage cluster store second data which is repeated with the first data. The first stage can prevent the storage of a certain amount of repeated data in time; under the condition that the I/O (input/output) performance of the storage cluster is not influenced, the second stage can adopt an asynchronous mode for verification, the operation of storing the first data by the storage node is not influenced in the verification process of the second stage, and when the verification result of the second stage is that the second data which is repeated with the first data is stored by other nodes in the storage cluster, the storage node executes the deduplication operation aiming at the first data.
Therefore, according to the technical scheme provided by the embodiment of the application, repeated data in the storage node is eliminated with low delay in the first stage; in order to ensure the performance of the storage cluster, the second stage can be executed in a non-blocking mode, and whether second data which is repeated with the first data is stored in other storage nodes in the storage cluster is checked; when the verification result shows that the storage cluster is stored, the first storage node executes deduplication operation aiming at the first data, namely, deduplication is realized, and meanwhile, the performance of the storage cluster is not greatly influenced, and the efficiency of computing, storage, network and other infrastructure of the storage cluster is improved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative efforts.
Fig. 1 is a schematic diagram of a solution for providing a virtual machine for a cloud user and a backend storage support thereof according to an embodiment of the present application;
fig. 2 is a schematic flowchart of a data processing method in a storage cluster according to an embodiment of the present application;
fig. 3 is a schematic architecture diagram of a storage cluster according to an embodiment of the present application;
fig. 4 is a schematic diagram illustrating a full hash table dispersed among a plurality of host nodes according to an embodiment of the present application;
fig. 5 is a schematic diagram of a data processing method in a storage cluster according to an embodiment of the present application;
fig. 6 is a schematic diagram illustrating a network card performing data de-duplication processing according to an embodiment of the present application;
fig. 7 is a schematic diagram of a data processing method in a storage cluster according to another embodiment of the present application;
fig. 8 is a schematic structural diagram of a data processing apparatus according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a data processing apparatus according to another embodiment of the present application;
fig. 10 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
Before describing the embodiments of the present application, a brief description of the terms referred to herein will be provided.
Data de-duplication: a technique for eliminating duplicate data. The deduplication technology can find duplicate data from already stored data, store no duplicate data, and store only new data.
In addition, what needs to be added here is: the distinction between duplicate data and multiple copy strategies. The difference between duplicate data and multiple copy strategies is: the duplicate data refers to two data with the same content in the same system, the two stored data with the same content are equivalent, and the two data with the same content have no disaster tolerance function and can only store one data. And the multi-copy redundancy strategy is to store another copy or two copies of the same data on different storage nodes, and data redundancy can be realized among the copies. When one copy has an error, the other copy can be used for timely recovery. Thus, deduplication is a timely discovery: when the same data which can be replaced by the index and does not influence the disaster recovery strategy is stored, only one data is needed to be stored, so that the utilization rate of the storage space is greatly improved.
Virtual machine: virtualization/emulation of computer systems, virtual machines are based on computer architecture, providing the functionality of a physical computer.
In order to make the technical solutions better understood by those skilled in the art, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application.
In some of the flows described in the specification, claims, and above-described figures of the present application, a number of operations are included that occur in a particular order, which operations may be performed out of order or in parallel as they occur herein. The sequence numbers of the operations, e.g., 101, 102, etc., are used merely to distinguish between the various operations, and do not represent any order of execution per se. Additionally, the flows may include more or fewer operations, and the operations may be performed sequentially or in parallel. It should be noted that, the descriptions of "first", "second", etc. in this document are used for distinguishing different messages, devices, modules, etc., and do not represent a sequential order, nor limit the types of "first" and "second" to be different. In addition, the embodiments described below are only a part of the embodiments of the present application, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
Fig. 1 shows a schematic diagram of a solution for providing a virtual machine for cloud users and its back-end storage support. As shown in fig. 1, a hypervisor is imposed on top of a data center infrastructure consisting of resources (compute, storage, network) and delivers a virtualized environment to meet the needs of the user. On top of the hypervisor, the virtual machines are isolated as separate units, respectively, each installed with its own operating system (Guest OS) and binary/library files (Bin/lib).
In addition to the data created by the applications APP on each virtual machine (e.g., application 1, application 2, … … application n on each individual virtual machine in fig. 1), the installed operating system and binary/library files consume storage resources. The storage cluster at the back end does not distinguish between the types of data stored (e.g., operating systems, libraries, etc.). Therefore, there is a large amount of duplicate content in the data of different virtual machines. Storing the same data repeatedly can consume not only storage resources, but also computing and network resources. The stored content is subjected to data de-duplication processing, so that the capacity and bandwidth of the storage cluster can be saved, and the data storage efficiency can be improved. Deduplication is particularly important for very large scale storage clusters.
The purpose of deduplication is: when the repeated data appears, only one copy is stored, and other data repeated with certain data replaces the data storage in a simplified mode, such as an index replaces the data storage, and particularly, a pointer pointing to the stored data replaces the repeated data storage. The following embodiments will clearly and completely describe specific implementations of the deduplication technology provided in the present application.
The technical solution provided by the present application can be implemented based on the system architecture shown in fig. 1 and 3. As shown in fig. 1 and 3, a storage cluster includes a plurality of storage nodes connected by a network (e.g., accessing the network through an ethernet switch as shown in fig. 3); the plurality of storage nodes include a first storage node and a second storage node. The first storage node is used for determining whether the first storage node stores second data which is repeated with the first data; and when the first data is determined not to be stored, executing the storage operation of the first data. And the second storage node is configured to check whether the storage nodes on the storage cluster except the first storage node store the second data or not when the determination result is that the second data is not stored, and feed back a check result to the first storage node. The first storage node is further configured to execute a deduplication operation for the first data when the verification result indicates that storage exists.
The first storage node in this embodiment may be any one of the storage nodes in the storage cluster in fig. 2. More specifically, the first storage node may be one of the remaining storage nodes in the cluster other than the distributed master node, and the second storage node may be one of the distributed master nodes.
That is, in an implementable system architecture, the storage cluster is a multi-master node architecture, the plurality of storage nodes further includes a plurality of master nodes, and the second storage node is a master node. As shown in fig. 4, the identification values of the data stored on all the storage nodes in the storage cluster are recorded in a full table manner; the full table is divided into a plurality of sub-tables adaptive to the number of the main nodes; the plurality of sub-tables are not intersected; the sub-tables are stored on different main nodes in a scattered manner; one sub-table corresponds to one table range. In a specific implementation, the identification value of the data may be a hash value calculated by using a hash algorithm. In addition, the data stored in the storage node may be data of full file granularity, data of data block granularity, or the like, which is not limited in this embodiment. The distributed host node in this embodiment is also a storage node while being a host node, and has a read-write function of the storage node.
Correspondingly, in this embodiment, when verifying that the storage nodes other than the first storage node on the storage cluster store the second data, the second storage node is specifically configured to:
acquiring an identification value of the first data;
checking whether the identification value is in the table range corresponding to the first sub-table; wherein the second storage node has the first sub-table stored thereon;
when the first sub-table is in the table range corresponding to the first sub-table, checking whether the second data which is repeated with the first data is stored or not according to the identification value and the table entry in the first sub-table;
when the identification value is not in the first sub-table corresponding table range, acquiring the table ranges corresponding to the sub-tables stored by the plurality of main nodes, and determining the main node in which the sub-table corresponding to the table range in which the identification value is stored is the target node; sending a verification request aiming at the first data to the target node, and waiting for the target node to verify whether a verification result of the second data which is repeated with the first data is stored.
According to the technical scheme provided by the embodiment of the application, repeated data in the storage node is eliminated with low delay in the first stage; in order to ensure the performance of the storage cluster, the second stage can be executed in a non-blocking mode, and whether second data which is repeated with the first data is stored in other storage nodes in the storage cluster is checked; when the verification result shows that the storage cluster is stored, the first storage node executes deduplication operation aiming at the first data, namely, deduplication is realized, and meanwhile, the performance of the storage cluster is not greatly influenced, and the efficiency of computing, storage, network and other infrastructure of the storage cluster is improved.
The functions of each node and the specific implementation of each function in this embodiment will be described in detail in the following method embodiments.
In an embodiment of the method shown in fig. 2, an execution subject of the data processing method in the storage cluster may be a storage node in the storage cluster shown in fig. 1 and fig. 3. Hereinafter, for convenience of description, the storage node performing the method provided by the present embodiment is referred to as a first storage node. Specifically, as shown in fig. 2, the data processing method includes:
101. determining whether the first storage node has stored second data that is duplicative of the first data;
102. when the first data is determined not to be stored, executing storage operation on the first data;
103. applying to check whether the storage nodes except the first storage node in the storage cluster store the second data;
104. and when the verification result is that the first data is stored, executing the duplicate removal operation aiming at the first data.
The foregoing step 101 is a process of repeating data discovery. The data stored in the storage cluster may be a file, or the file may be divided into one of a plurality of data blocks, and so on. In specific implementation, the file may be divided into a plurality of data blocks with the same size by using a fixed size, or may be divided into a plurality of data blocks with different sizes by using a variable size. In the segmentation process of the variable blocks, the content in each block is considered, and the boundary of each block is divided by taking the content as a reference, so that the sizes of the blocks are inconsistent.
In the process of discovering the repeated data, if the file is full-document granularity, a hash value (hash) is calculated for the whole file, and then the calculated hash value is compared with the hash value of the data stored on the first storage node. If the hash values of the stored data on the first storage node have the same value as the hash value of the file, the comparison indicates that the file with the content which is the same as the file is stored on the first storage node. And if the hash value of the stored data on the first storage node does not have the same value as the hash value of the file through comparison, the file is a new file and can be stored.
In the process of finding the repeated data, if the granularity of the data blocks is adopted, the hash value of the content in the data blocks needing to be stored is calculated; the hash value of the stored data block of the first storage node is then looked up. If the hash value of the stored data block of the first storage node has the same value as the hash value of the data block to be stored, the data block to be stored is a repeated data block. And if the hash value of the stored data of the first storage node does not have the same value as the hash value of the file, the data block to be stored is new data and can be stored.
Block-level data deduplication techniques may be advantageous over file-level data, in that redundant data blocks may be eliminated in different files or applications. For example, if a file is modified only a small amount, the block-level deduplication technique will only save the changed data blocks. In this way, block-level deduplication may provide better compression ratios, particularly in the case of large amounts of data, such as after a database or full backup.
Therefore, the smaller the granularity of the data is, the higher the probability of finding the duplicate data is, but the computational resources and storage resources required to be consumed are correspondingly increased. Therefore, the data granularity needs to be comprehensively considered according to the needs of the environment.
In practical applications, the hash value of the data stored in the first storage node may be stored in the memory (shown in fig. 3) of the first storage node; or storing an index table in a memory of the first storage node, wherein the index table comprises index codes corresponding to the hash values of the stored data. Thus, when the first data is to be stored, the Hash value of the first data can be calculated by using a Hash (Hash) algorithm; and then searching a hash value table or an index table stored in the memory. If the hash value table contains a value (such as the hash value of the second data) identical to the hash value of the first data, determining that the first data is repeated data and not storing the repeated data; and if the hash value table does not have the value identical to the hash value of the first data, determining that the first data is new data and storing the new data.
The hash algorithm may include MD5 and SHA-X series algorithms, among others. The MD5 Algorithm is called Message-Digest Algorithm 5 (Message Digest Algorithm), which is a well-established Hash Digest Algorithm, and the content of a data block is converted into a 128-bit encrypted Message Digest by a Hash Digest technique. If two different data blocks are operated on by the MD5 algorithm, the two 128-bit summary information are obtained differently. SHA (secure Hash algorithm) secure Hash algorithm mainly includes SHA-1, SHA-256, SHA-512, etc. In specific implementation, along with the increase of the storage size, a corresponding algorithm can be randomly selected to reduce the collision rate of data.
In the above 102, after determining that the first data is not the duplicate data, a storage operation for the first data may be performed. A schematic diagram of the hardware structure of a storage node is shown in fig. 3. The hardware structure of the first storage node in this embodiment may also be as shown in fig. 3, and a hierarchical storage driver is provided on the first storage node, where the hierarchical storage driver includes a log driver and a dump driver. The first storage node, while storing data (e.g., the first data), may write the data to be stored to the log driver and the dump driver simultaneously. Typically, a journal driver (journel drive) will complete a write with a shorter latency than a dump driver (dump drive). When at least one of the dump driver and the log driver completes the write operation and there is no error, the write operation is considered to have been completed. After the storage operation (i.e., the write operation of the first data) on the first data is completed, the hash value of the first data is stored in the memory, or an index code is created for the hash value of the first data, and the index code is added to an index table of the memory.
If the first data is determined to be the repeated data, the first data is not stored; further, a pointer to the second data may be stored in place of the first data.
The above steps 101 and 102 can be understood as follows: a single storage node duplication phase. Then step 103 is performed to check the global duplication checking phase of the storage cluster, that is, to check whether other nodes in the storage cluster except the first storage node store the second data duplicated with the first data. Step 104 is a remedial action performed when the verification result is that the first data is duplicate data.
In the process of deleting the repeated data of the storage cluster, the overall performance overhead of the system is considered, and the storage performance of the system is seriously reduced by the global deduplication of the cross-storage nodes, so that the data deduplication is generally performed only on the internal data of a single storage node in the prior art. In the embodiment of the present application, the steps 101 and 102 adopt the above steps, and because the single storage node has a smaller influence on the whole system in the duplicate checking phase, the duplicate checking phase can be processed in time. Considering that global deduplication has a large cost on the overall performance of the system, the verification in step 103 and the remedial action in step 104 are adopted, so that steps 103 and 104 can be executed in a non-blocking manner, i.e., they can be executed in a delayed manner, for example, when the network is idle and the data processing amount is not large.
Therefore, the technical scheme provided by the embodiment realizes the data de-duplication, has little influence on the performance of the storage cluster, and is beneficial to improving the efficiency of the infrastructure such as computing, storage, network and the like of the storage cluster.
In an implementation solution, the storage cluster includes a second storage node. As an example shown in fig. 4, the storage cluster includes Distributed master nodes (Distributed master nodes). Wherein a distributed master node may include multiple master nodes. The second storage node in this embodiment may be one of the distributed master nodes shown in fig. 4. Specifically, in step 103 of the above embodiment, the step of applying for verifying whether the storage nodes in the storage cluster except for the first storage node store the second data may be implemented by:
1031. acquiring an identification value of the first data;
1032. based on the identification value, sending a verification request to the second storage node to verify whether the second data is stored in the storage nodes except the first storage node in the storage cluster by the second storage node;
1033. and receiving a verification result for the first data fed back by the second storage node.
1031, the identification value of the first data has uniqueness, and may be the hash value calculated by the above-mentioned hash algorithm.
1032, the verification request may carry an identification value of the first data. The verification request may be sent to the second storage node when the first storage node determines that the first data is non-duplicate data (i.e., the determination result is not stored). Another implementation is that the check request is sent to the second storage node, regardless of the determination. In this case, the verification request may also carry the determination result in addition to the identification value of the first data. The second storage node receiving the verification request may perform an operation of verifying whether the storage nodes other than the first storage node in the storage cluster store the second data when the determination result is that the second storage node is not stored; the first data may be registered as the duplicate data using the identification value of the first data when the determination result is stored.
For example, in the scheme shown in fig. 5, table a is a registry, and the metadata corresponding to the first data (e.g., the client node metadata corresponding to the first data) and the hash value of the first data are added to table a, i.e., the registration is completed. After the registration is finished, the subsequent repeated data can be conveniently used in a discovery stage.
The second storage node here may be a master node in the storage cluster. The storage cluster may include one master node or a plurality of master nodes. Such as the architecture diagram shown in fig. 4, the storage cluster is a multi-master architecture. Unlike the use of independent servers as the primary nodes of a storage cluster, Distributed master nodes (Distributed master nodes) operate on the storage nodes in the cluster and are not an independent, management-only master node. For example, in an implementation, all hash values corresponding to data stored on the storage cluster may form a full hash table. In implementation, the full hash table may be divided into a plurality of sub-tables according to the range of the hash value. Multiple sub-tables are spread across multiple master nodes as shown in fig. 4. In order to ensure reliability, the master nodes have redundancy, such as backup nodes. The backup node is backed up with data, sub-tables and the like on the main node so as to provide corresponding services for the outside instead of the main node when the main node fails or is unavailable.
When the first storage node determines that second data that is duplicated with the first data is not stored on its own node, and after a second storage node (for example, one master node in the distributed master node in fig. 4) receives a verification request sent by the first storage node, when verifying whether storage nodes other than the first storage node in the storage cluster store the second data, the method may specifically include: checking whether the hash value (namely the identification value) of the first data is in a table range corresponding to a first sub-table stored on the node of the node; and if the hash value of the first data is in the table range corresponding to the first sub-table, checking whether second data which is repeated with the first data is stored or not according to the identification value and the table entry in the first sub-table. If the first sub-table (e.g., table B shown in fig. 5) contains the same value as the hash value of the first data, it indicates that the second storage node stores second data that overlaps with the first data; and if not, indicating that the storage nodes except the first storage node in the storage cluster do not store the second data which is repeated with the first data. If the hash value of the first data is not in the table range corresponding to the first sub-table, the second storage node needs to determine a target node in the storage cluster (i.e., a master node in the multi-master node, where the hash value of the first data is stored, corresponds to the sub-table in the table range), according to the hash value of the first data, and then check whether the storage nodes other than the first storage node in the storage cluster store second data that is duplicated with the first data.
What needs to be added here is: the second storage node needs to store index information of each sub-table scattered in the corresponding main node, so that when a target node is determined, the target node can be determined through the index information, and a verification request carrying an identification value (such as a hash value) of the first data is sent to the target node.
When the first storage node stores the first data, a plurality of copies of the disaster recovery strategy can be adopted, that is, the first data is stored in three different storage nodes, so that when one storage node has an error, the copies stored in the other two storage nodes are used for meeting requirements (such as data reading requirements of a client side or other data processing requirements), and a data disaster recovery function is realized. Although the multiple disaster recovery strategies are simple and feasible, a large amount of storage space is consumed. Therefore, in the embodiment, an erasure code strategy can be adopted to reduce the utilization rate of the storage space. For example, 5 data blocks, under the condition of three copies of disaster tolerance, 15 data blocks are needed to ensure the redundancy of data. And the erasure code strategy (such as using CRS coding) can also ensure the effect of simultaneous recovery when two data blocks of the 5 data blocks are in error, for example, only 5+2 data blocks are needed to ensure data redundancy, thereby greatly improving the utilization rate of the storage space. That is, in this embodiment, the "performing the storage operation on the first data" in step 102 may include:
1021. when the determination result is that the first data are not stored, preprocessing the first data;
1022. adding the preprocessed first data serving as data to be coded into a set to be coded;
1023. when the quantity of the data in the to-be-coded set meets a preset requirement, performing erasure code coding on the plurality of data in the to-be-coded set to obtain a plurality of erasure code blocks; wherein, the plurality of data in the set to be coded and the plurality of erasure code blocks form an erasure code band;
1024. and storing one part of the erasure code band in the first storage node, and sending the rest part to one or more storage nodes except the first storage node in the storage cluster for storage.
At 1021, the pre-processing of the first data may include: compression processing, encryption processing, and the like. In this embodiment, specific processes of compression and encryption are not limited, and reference may be made to related documents.
In 1022, the erasure coding strategy needs to encode multiple data together, for example, 5 data (which may be data blocks). Therefore, the present embodiment adds a step of adding the processed first data as the data to be encoded into the set to be encoded. The adding step is essentially an accumulation process, for example, after 5 data to be stored are accumulated, 5 data (which may be data blocks) are encoded by using an erasure coding strategy.
The 1023 process is an erasure coding process, and the coding principle and specific coding process of the erasure are not specifically limited in this embodiment, and reference may be made to related documents. The basic idea of the erasure code strategy is: and carrying out data coding on the k original data blocks by using an erasure code algorithm to obtain m erasure code blocks, and storing the k + m data blocks into different storage nodes to complete the establishment of a disaster recovery mechanism. Therefore, when any non-redundant m block elements in the k + m block elements are in error (including data and redundancy errors), the original k block data can be restored through a corresponding reconstruction algorithm.
For convenience of description, a plurality of data (e.g., the above-mentioned k original data) in the set to be encoded of the present embodiment and the plurality of erasure coding blocks (e.g., the above-mentioned m erasure coding blocks) constitute an erasure coding zone (Stripe). One original data (or original data block) or one erasure code block in an erasure code band may be referred to as a data element (strip). The virtual box shown in fig. 2, which represents one erasure code band across multiple storage nodes, is represented in fig. 2 using the EC band.
In step 1024, a portion of the data elements in the erasure code band can be stored on a first storage node and the remaining data elements can be stored on one or more storage nodes in the storage cluster other than the first storage node. Or, one data element in the erasure code band is stored in the first storage node, and the rest data elements are stored on other storage nodes except the first storage node in the storage cluster in a scattered manner.
What needs to be added here is: data elements sent to other storage nodes than the first storage node may skip the local deduplication module. In other words, the storage nodes in the storage cluster are all configured with the deduplication module, and the deduplication module may be an application installed on the storage nodes, so as to implement the steps provided in this embodiment. The data elements sent to other storage nodes in the EC band are used for disaster recovery and do not belong to the object of data de-duplication. Therefore, the storage node that receives one data element in the EC zone directly stores the received one data element in the EC zone locally without using the deduplication module, that is, without performing deduplication.
Specifically, as shown in fig. 2, each EC zone may be managed by a distributed master node in the storage cluster. For example, the master node manages information about which storage node each data element in the EC zone is stored in. Thus, the original data can be recovered by acquiring the specified number of data elements belonging to the same EC band in the storage cluster based on the managed information at the time of data recovery.
In order to improve the utilization rate of the storage space and the network bandwidth, the application of erasure coding and data de-duplication technology in the cloud storage environment has good practical significance. In a storage system, an erasure code technology mainly encodes original data by using an erasure algorithm to obtain redundant data, and stores the original data and the redundant data together to achieve the purpose of fault tolerance. The data de-duplication technology is used for reducing the repeated data which is not used for disaster tolerance in the storage cluster so as to release the space occupied by the repeated data and improve the utilization rate of the storage space in the storage cluster.
After performing the storage operation on the first data based on the erasure code policy, in this embodiment 104, "when the verification result indicates that there is second data that is stored in the storage cluster and is duplicated with the first data," performing the deduplication operation on the first data "may include:
1041. and when the storage operation on the first data is not completed, the storage operation is prevented.
After the storage operation is blocked, whether the local stored data needs to be subjected to the deduplication operation or not is determined according to the blocking timing.
For example, before the step 1024, when the data is blocked, the first data added to the set to be encoded may be deleted and accumulated.
1042. And when the storage operation of the first data is completed, deleting the first data stored in the first storage node.
There is also a substantial case where a locally stored portion of the erasure code strip, such as the erasure code strip containing no first data, may not be subjected to deduplication; if the first data is contained, the stored first data may be deleted and stored using a pointer to the second data instead of the first data.
Because the data deduplication technology only stores changed data and uses the pointer to store repeated data, the data storage capacity is reduced, a user does not need to purchase a large number of disks as before, and the total cost of the user backup system is reduced to the minimum. Fewer disks also result in a smaller storage cluster size, lower power and cooling requirements, and reduced storage cluster complexity.
In the technical scheme provided by this embodiment, in the first stage, duplicate data in the storage node is eliminated with low delay, and in order to ensure the performance of the storage cluster, the second stage may be executed in a non-blocking manner, and whether second data that is duplicate with the first data is stored in other storage nodes in the storage cluster is calibrated; and when the verification result is that the storage cluster has storage, the first storage node executes the deduplication operation aiming at the first data. Therefore, the technical scheme provided by the embodiment of the application has little influence on the performance of the storage cluster while achieving the aim of deleting repeated data, and is beneficial to improving the efficiency of computing, storing, network and other infrastructures of the storage cluster.
Fig. 7 is a flowchart illustrating a data processing method in a storage cluster according to another embodiment of the present application. As shown in fig. 7, the method provided by this embodiment is applicable to a second storage node in a storage cluster. The second storage node may be the master node mentioned above, and more particularly may be one of the distributed master nodes. Specifically, the method comprises the following steps:
201. receiving a determination result sent by a first storage node in the storage cluster for first data, wherein the determination result is sent by the first storage node after determining whether second data which is repeated with the first data is stored in the node of the first storage node;
202. if the determination result is that the second data is not stored, verifying whether the storage nodes except the first storage node in the storage cluster store the second data;
203. when the verification result is that the storage exists, feeding back corresponding response information to the first storage node;
the response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
In an implementation technical solution, the step 202 "verifying whether the storage nodes in the storage cluster except for the first storage node store the second data" may be implemented by:
2021. acquiring an identification value of the first data;
2022. checking whether the identification value is in the table range corresponding to the first sub-table; wherein the second storage node has the first sub-table stored thereon;
2023. when the first sub-table is in the table range corresponding to the first sub-table, checking whether the second data which is repeated with the first data is stored or not according to the identification value and the table entry in the first sub-table;
2024. and when the data is not in the range of the first sub-table corresponding table, determining a target node in the storage cluster according to the identification value, sending a verification request aiming at the first data to the target node, and waiting for the target node to verify whether a verification result of the second data which is repeated with the first data is stored.
More specifically, for example, the storage cluster includes a plurality of master nodes, and the second storage node is a master node; the identification values of the data stored on all the storage nodes in the storage cluster are recorded in a full-scale mode; the full table is divided into a plurality of sub-tables adaptive to the number of the main nodes; the plurality of sub-tables are not intersected; the sub-tables are stored on different main nodes in a scattered manner; one sub-table corresponds to one table range. Accordingly, the step 2024 of "determining a target node in the storage cluster according to the identification value" may include:
s31, acquiring table ranges corresponding to the sub-tables stored by the main nodes;
and S32, determining the main node storing the sub-table corresponding to the table range in which the identification value is located as the target node.
Further, the method provided by this embodiment may further include the following steps:
204. and when the determination result is that the data is stored, registering the first data as the repeated data by using the identification value of the first data.
Here, it should be noted that: in a specific implementation, the identifier value of the first data may be specifically a hash value of the first data, and the first data may be the whole file or a data block cut from the whole file, which is not specifically limited in this embodiment. In addition, the corresponding contents can be referred to for more detailed descriptions of the steps in this embodiment, and are not repeated herein.
The function of each storage node mentioned in the above embodiments to execute the deduplication is realized by a Network Interface Card (NIC). A schematic diagram of a schematic structure of a storage node is shown in fig. 3. Specifically, as shown in fig. 3, the storage node includes: a network card (NIC) and a processor (CPU). The network card is used for receiving first data to be stored and determining whether the storage node stores second data which is repeated with the first data. And the processor is electrically connected with the network card and used for executing the storage operation of the first data when the determination result is that the first data is not stored. The network card is further configured to send a verification request for the first data to a target node in a storage cluster, so that the target node verifies whether nodes other than the storage node in the storage cluster store the second data; the processor is further configured to execute a deduplication operation for the first data when the verification result received by the network card is stored.
As shown in fig. 6, the network card in this embodiment may be configured with an offload computing module based on an existing network card, and the offload computing module executes a deduplication process. As shown in fig. 6, the network card customized for implementing the technical solution provided by the embodiments and having the deduplication processing function. After receiving first data to be stored, a network card on a storage node calculates a hash value of the first data by the unloading calculation module, and then checks whether a hash table stored in a memory of the storage node contains a value same as the hash value; when the value identical to the hash value of the first data cannot be found in the hash table, the first data is compressed, encrypted and the like, and then is added to a to-be-encoded set to perform erasure code encoding (namely EC encoding) together with other to-be-stored data, wherein one part of an erasure code band obtained after encoding is stored locally, and the rest part of the erasure code band is dispersed to other storage nodes of the storage cluster for storage. The storage node storing the data in the erasure code band does not perform the processes of data check, deletion and the like on the data, because the data in the erasure code band is used for disaster tolerance and cannot be used as the repeated data.
Further, if the storage node in this embodiment is the aforementioned second storage node, the network card is further configured to receive a determination result that a first storage node in the storage cluster transmits third data, where the determination result is transmitted by the first storage node after determining whether fourth data that is duplicated with the third data is stored in the own node; the processor is further configured to check whether storage nodes other than the first storage node in the storage cluster store the fourth data when the determination result is that the fourth data is not stored; and the network card is also used for feeding back corresponding response information to the first storage node when the verification result indicates that the storage exists. The response information is used for preventing the first storage node from storing the third data on the node of the first storage node, or triggering the first storage node to delete the third data stored in the first storage node.
Another embodiment of the present application provides a storage node. The storage node may be the second storage node mentioned above. Likewise, the storage node comprises a network card and a processor. The network card is used for receiving a determination result sent by a first storage node in a storage cluster for first data, wherein the determination result is sent by the first storage node after determining whether second data which is repeated with the first data is stored in the node of the first storage node. And the processor is electrically connected with the network card and used for applying for verifying whether the storage nodes except the first storage node in the storage cluster store the second data when the determination result is that the second data are not stored. And the network card is also used for feeding back corresponding response information to the first storage node when the verification result indicates that the storage exists. The response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
The network card in this embodiment may have the functions shown in fig. 6 in addition to the above functions, and the specific contents may be referred to the above description.
Referring to fig. 3, the storage node includes a network card, a processor, a memory, and the like. Wherein the specific form of the layered storage drive in fig. 3 may be software, a program, an engine, etc. When a processor performs a data storage operation, the hierarchical storage drive may be invoked to implement the storage operation. The network card in fig. 3 may be a NIC supporting hardware queues, the network card distributing received data to a plurality of receive queues, the receive queues being associated with the CPU. The NIC distributes the received data to the CPU based on the hash value (hash) and the indirection table (PM).
Here, it should be noted that: in this embodiment, only a part of functions of each storage node is described, and more specific implementation manners of each function can be referred to in the above corresponding contents; in addition, in this embodiment, each storage node may also implement functions that are not mentioned in this embodiment and are mentioned above, which is specifically referred to the contents in the foregoing, and is not described herein again.
The application also provides a data processing device. As shown in fig. 8, the data processing apparatus includes: a determination module 41, a storage module 42, an application module 43, and a deduplication module 44. Wherein the determining module 41 is configured to determine whether the first storage node already stores the second data that is duplicated with the first data. The storage module 42 is configured to perform a storage operation on the first data when the determination result of the determination module is not stored. The application module 43 is configured to apply for verifying whether the storage nodes in the storage cluster except the first storage node store the second data. The deduplication module 44 is configured to perform a deduplication operation on the first data when the verification result is that there is storage.
Further, the deduplication module 44 is configured to prevent the storage operation of the first data when the storage operation is not completed; and when the storage operation of the first data is completed, deleting the first data stored in the first storage node.
Further, the storage cluster comprises a second storage node; correspondingly, the application module 43 is specifically configured to, when applying for verifying whether the storage nodes in the storage cluster except for the first storage node store the second data:
acquiring an identification value of the first data;
based on the identification value, sending a verification request to the second storage node to verify whether the second data is stored in the storage nodes except the first storage node in the storage cluster by the second storage node;
and receiving a verification result for the first data fed back by the second storage node.
Further, when the storage module 42 executes the storage operation on the first data, it is specifically configured to: when the determination result is that the first data are not stored, preprocessing the first data; adding the preprocessed first data serving as data to be coded into a set to be coded; when the quantity of the data in the to-be-coded set meets a preset requirement, performing erasure code coding on the plurality of data in the to-be-coded set to obtain a plurality of erasure code blocks; wherein, the plurality of data in the set to be coded and the plurality of erasure code blocks form an erasure code band; and storing one part of the erasure code band in the first storage node, and sending the rest part to one or more storage nodes except the first storage node in the storage cluster for storage.
Further, the storage cluster includes a second storage node. Correspondingly, the data processing apparatus according to this embodiment may further include a sending module. The sending module is configured to send the identification value of the first data and the determination result to the second storage node, so that when the determination result indicates that the first storage node stores the second data, the second storage node registers the first data as duplicate data by using the identification value.
Here, it should be noted that: the data processing apparatus provided in the foregoing embodiments may implement the technical solutions described in the foregoing method embodiments, and the specific implementation principle of each module or unit may refer to the corresponding content in the foregoing method embodiments, which is not described herein again.
As shown in fig. 9, another embodiment of the present application provides a data processing apparatus. The data processing apparatus includes: a receiving module 51, a verification module 52 and a feedback module 53. The receiving module 51 is configured to receive a determination result sent by a first storage node in the storage cluster for first data, where the determination result is sent by the first storage node after determining whether second data that is identical to the first data is stored in the self node. The verification module 52 is configured to verify whether the storage nodes in the storage cluster, except for the first storage node, store the second data when the determination result is that the second data is not stored. The feedback module 53 is configured to feed back corresponding response information to the first storage node when the verification result indicates that storage exists. The response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
Further, when verifying whether the storage nodes in the storage cluster except the first storage node store the second data, the verification module 52 is specifically configured to:
acquiring an identification value of the first data;
checking whether the identification value is in the table range corresponding to the first sub-table; wherein the second storage node has the first sub-table stored thereon;
when the first sub-table is in the table range corresponding to the first sub-table, checking whether the second data which is repeated with the first data is stored or not according to the identification value and the table entry in the first sub-table;
and when the data is not in the range of the first sub-table corresponding table, determining a target node in the storage cluster according to the identification value, sending a verification request aiming at the first data to the target node, and waiting for the target node to verify whether a verification result of the second data which is repeated with the first data is stored.
Further, the storage cluster comprises a plurality of master nodes, and the second storage node is a master node; the identification values of the data stored on all the storage nodes in the storage cluster are recorded in a full-scale mode; the full table is divided into a plurality of sub-tables adaptive to the number of the main nodes; the plurality of sub-tables are not intersected; the sub-tables are stored on different main nodes in a scattered manner; one sub-table corresponds to one table range. Correspondingly, when the verification module 52 determines a target node in the storage cluster according to the identification value, it is specifically configured to:
acquiring table ranges corresponding to sub-tables stored by a plurality of main nodes; and determining the main node which stores the sub-table corresponding to the table range in which the identification value is positioned as the target node.
Further, the data processing apparatus provided in this embodiment may further include a registration module. The registration module is configured to register the first data as duplicate data by using the identifier value of the first data when the determination result indicates that storage exists.
Here, it should be noted that: the data processing apparatus provided in the foregoing embodiments may implement the technical solutions described in the foregoing method embodiments, and the specific implementation principle of each module or unit may refer to the corresponding content in the foregoing method embodiments, which is not described herein again.
Fig. 10 is a schematic structural diagram of an electronic device according to an embodiment of the present application. As shown in fig. 10, the electronic apparatus includes: a memory 61 and a processor 62. The memory 61 may be configured to store other various data to support operations on the electronic device. Examples of such data include instructions for any application or method operating on the electronic device. The memory 61 may be implemented by any type or combination of volatile or non-volatile memory devices, such as Static Random Access Memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic or optical disks.
The memory 61 for storing one or more computer instructions;
the processor 62 is coupled to the memory 61, and is configured to execute one or more computer instructions stored in the memory 61 to implement the steps in the data processing method provided in the foregoing embodiments.
Further, as shown in fig. 10, the electronic apparatus further includes: communication components 63, power components 65, and a display 66. Only some of the components are schematically shown in fig. 10, and the electronic device is not meant to include only the components shown in fig. 10.
Accordingly, embodiments of the present application further provide a computer-readable storage medium storing a computer program, where the computer program, when executed by a computer, can implement the steps or functions in the data processing method in the storage cluster provided in the foregoing embodiments.
Embodiments of the present application further provide a computer program product, which includes a computer program, and when the computer program is executed by a processor, the processor is enabled to implement the steps or functions in the data processing method in the storage cluster provided in the foregoing embodiments.
The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. One of ordinary skill in the art can understand and implement it without inventive effort.
Through the above description of the embodiments, those skilled in the art will clearly understand that each embodiment can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware. With this understanding in mind, the above-described technical solutions may be embodied in the form of a software product, which can be stored in a computer-readable storage medium such as ROM/RAM, magnetic disk, optical disk, etc., and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the methods described in the embodiments or some parts of the embodiments.
Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit the same; although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions in the embodiments of the present application.
Claims (14)
1. A data processing method in a storage cluster, adapted to a first storage node in the storage cluster, the method comprising:
determining whether the first storage node has stored second data that is duplicative of the first data;
when the first data is determined not to be stored, executing storage operation on the first data;
applying to check whether the storage nodes except the first storage node in the storage cluster store the second data;
and when the verification result is that the first data is stored, executing the duplicate removal operation aiming at the first data.
2. The method of claim 1, wherein performing the deduplication operation for the first data comprises:
when the storage operation of the first data is not completed, the storage operation is prevented;
and when the storage operation of the first data is completed, deleting the first data stored in the first storage node.
3. The method of claim 1, wherein the storage cluster comprises a second storage node; and
applying for verification whether the storage nodes except the first storage node in the storage cluster store the second data or not, including:
acquiring an identification value of the first data;
based on the identification value, sending a verification request to the second storage node to verify whether the second data is stored in the storage nodes except the first storage node in the storage cluster by the second storage node;
and receiving a verification result for the first data fed back by the second storage node.
4. The method of any of claims 1 to 3, wherein performing the storage operation on the first data comprises:
when the determination result is that the first data are not stored, preprocessing the first data;
adding the preprocessed first data serving as data to be coded into a set to be coded;
when the quantity of the data in the to-be-coded set meets a preset requirement, performing erasure code coding on the plurality of data in the to-be-coded set to obtain a plurality of erasure code blocks; wherein, the plurality of data in the set to be coded and the plurality of erasure code blocks form an erasure code band;
and storing one part of the erasure code band in the first storage node, and sending the rest part to one or more storage nodes except the first storage node in the storage cluster for storage.
5. The method of claim 1 or 2, wherein the storage cluster comprises a second storage node; and
the method further comprises the following steps:
and sending the identification value of the first data and the determination result to the second storage node, so that when the determination result indicates that the first storage node stores the second data, the second storage node registers the first data as repeated data by using the identification value.
6. A data processing method in a storage cluster, adapted to a second storage node in the storage cluster, the method comprising:
receiving a determination result sent by a first storage node in the storage cluster for first data, wherein the determination result is sent by the first storage node after determining whether second data which is repeated with the first data is stored in the node of the first storage node;
if the determination result is that the second data is not stored, verifying whether the storage nodes except the first storage node in the storage cluster store the second data;
when the verification result is that the storage exists, feeding back corresponding response information to the first storage node;
the response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
7. The method of claim 6, wherein verifying that storage nodes other than the first storage node in the storage cluster store the second data comprises:
acquiring an identification value of the first data;
checking whether the identification value is in the table range corresponding to the first sub-table; wherein the second storage node has the first sub-table stored thereon;
when the first sub-table is in the table range corresponding to the first sub-table, checking whether the second data which is repeated with the first data is stored or not according to the identification value and the table entry in the first sub-table;
and when the data is not in the range of the first sub-table corresponding table, determining a target node in the storage cluster according to the identification value, sending a verification request aiming at the first data to the target node, and waiting for the target node to verify whether a verification result of the second data which is repeated with the first data is stored.
8. The method of claim 7, wherein the storage cluster comprises a plurality of master nodes, and the second storage node is a master node; the identification values of the data stored on all the storage nodes in the storage cluster are recorded in a full-scale mode; the full table is divided into a plurality of sub-tables adaptive to the number of the main nodes; the plurality of sub-tables are not intersected; the sub-tables are stored on different main nodes in a scattered manner; one sub-table corresponds to one table range; and
determining a target node in the storage cluster according to the identification value, including:
acquiring table ranges corresponding to sub-tables stored by a plurality of main nodes;
and determining the main node which stores the sub-table corresponding to the table range in which the identification value is positioned as the target node.
9. The method of any of claims 6 to 8, further comprising:
and when the determination result is that the data is stored, registering the first data as the repeated data by using the identification value of the first data.
10. A storage cluster, comprising a plurality of storage nodes, the plurality of storage nodes connected by a network; the plurality of storage nodes comprise a first storage node and a second storage node; wherein,
the first storage node is used for determining whether the first storage node stores second data which is repeated with the first data; when the first data is determined not to be stored, executing storage operation on the first data;
the second storage node is configured to check whether the storage nodes on the storage cluster other than the first storage node store the second data or not when the determination result is that the second data is not stored, and feed back a check result to the first storage node;
the first storage node is further configured to execute a deduplication operation for the first data when the verification result indicates that storage exists.
11. The storage cluster of claim 10, wherein the plurality of storage nodes further comprises a plurality of master nodes, and wherein the second storage node is a master node;
the identification values of the data stored on all the storage nodes in the storage cluster are recorded in a full-scale mode; the full table is divided into a plurality of sub-tables adaptive to the number of the main nodes; the plurality of sub-tables are not intersected; the sub-tables are stored on different main nodes in a scattered manner; one sub-table corresponds to one table range;
when verifying that the storage nodes other than the first storage node on the storage cluster store the second data, the second storage node is specifically configured to:
acquiring an identification value of the first data;
checking whether the identification value is in the table range corresponding to the first sub-table; wherein the second storage node has the first sub-table stored thereon;
when the first sub-table is in the table range corresponding to the first sub-table, checking whether the second data which is repeated with the first data is stored or not according to the identification value and the table entry in the first sub-table;
when the identification value is not in the first sub-table corresponding table range, acquiring the table ranges corresponding to the sub-tables stored by the plurality of main nodes, and determining the main node in which the sub-table corresponding to the table range in which the identification value is stored is a target node; sending a verification request aiming at the first data to the target node, and waiting for the target node to verify whether a verification result of the second data which is repeated with the first data is stored.
12. A storage node, comprising:
the network card is used for receiving first data to be stored and determining whether second data which are repeated with the first data are stored in the storage node;
the processor is electrically connected with the network card and used for executing storage operation of the first data when the determination result is that the first data is not stored;
the network card is further configured to send a verification request for the first data to a target node in a storage cluster, so that the target node verifies whether nodes other than the storage node in the storage cluster store the second data;
the processor is further configured to execute a deduplication operation for the first data when the verification result received by the network card is stored.
13. A storage node, comprising:
the network card is used for receiving a determination result of a first storage node in a storage cluster for sending first data, wherein the determination result is sent by the first storage node after determining whether second data which is repeated with the first data is stored in the node of the first storage node;
the processor is electrically connected with the network card and used for verifying whether the storage nodes except the first storage node in the storage cluster store the second data or not when the determination result is that the second data is not stored;
the network card is also used for feeding back corresponding response information to the first storage node when the verification result indicates that the storage exists;
the response information is used for preventing the first storage node from storing the first data on the node of the first storage node, or triggering the first storage node to delete the first data stored in the first storage node.
14. An electronic device comprising a processor and a memory; wherein the memory is configured to store one or more computer instructions which, when executed by the processor, are capable of implementing the steps in the data processing method of any of claims 1 to 5 above, or the steps in the data processing method of any of claims 6 to 9.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111463112.7A CN114265551B (en) | 2021-12-02 | 2021-12-02 | Data processing method in storage cluster, storage node and equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111463112.7A CN114265551B (en) | 2021-12-02 | 2021-12-02 | Data processing method in storage cluster, storage node and equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114265551A true CN114265551A (en) | 2022-04-01 |
CN114265551B CN114265551B (en) | 2023-10-20 |
Family
ID=80826079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111463112.7A Active CN114265551B (en) | 2021-12-02 | 2021-12-02 | Data processing method in storage cluster, storage node and equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265551B (en) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190835B1 (en) * | 2007-12-31 | 2012-05-29 | Emc Corporation | Global de-duplication in shared architectures |
US20130018854A1 (en) * | 2009-10-26 | 2013-01-17 | Netapp, Inc. | Use of similarity hash to route data for improved deduplication in a storage server cluster |
CN103873506A (en) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | Data block duplication removing system in storage cluster and method thereof |
US8930648B1 (en) * | 2012-05-23 | 2015-01-06 | Netapp, Inc. | Distributed deduplication using global chunk data structure and epochs |
US20160259590A1 (en) * | 2014-03-27 | 2016-09-08 | Hitachi, Ltd. | Storage system and method for deduplicating data |
US9727273B1 (en) * | 2016-02-18 | 2017-08-08 | Veritas Technologies Llc | Scalable clusterwide de-duplication |
CN107209714A (en) * | 2015-03-16 | 2017-09-26 | 株式会社日立制作所 | The control method of distributed memory system and distributed memory system |
CN108268216A (en) * | 2018-01-05 | 2018-07-10 | 新华三技术有限公司 | Data processing method, device and server |
EP3460683A1 (en) * | 2012-12-12 | 2019-03-27 | Huawei Technologies Co., Ltd. | Data processing method and apparatus in cluster system |
CN111522502A (en) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | Data deduplication method and device, electronic equipment and computer-readable storage medium |
US20210072912A1 (en) * | 2019-01-29 | 2021-03-11 | Dell Products L.P. | Method and system for inline deduplication using erasure coding |
-
2021
- 2021-12-02 CN CN202111463112.7A patent/CN114265551B/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190835B1 (en) * | 2007-12-31 | 2012-05-29 | Emc Corporation | Global de-duplication in shared architectures |
US20130018854A1 (en) * | 2009-10-26 | 2013-01-17 | Netapp, Inc. | Use of similarity hash to route data for improved deduplication in a storage server cluster |
US8930648B1 (en) * | 2012-05-23 | 2015-01-06 | Netapp, Inc. | Distributed deduplication using global chunk data structure and epochs |
CN103873506A (en) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | Data block duplication removing system in storage cluster and method thereof |
EP3460683A1 (en) * | 2012-12-12 | 2019-03-27 | Huawei Technologies Co., Ltd. | Data processing method and apparatus in cluster system |
US20160259590A1 (en) * | 2014-03-27 | 2016-09-08 | Hitachi, Ltd. | Storage system and method for deduplicating data |
CN107209714A (en) * | 2015-03-16 | 2017-09-26 | 株式会社日立制作所 | The control method of distributed memory system and distributed memory system |
US9727273B1 (en) * | 2016-02-18 | 2017-08-08 | Veritas Technologies Llc | Scalable clusterwide de-duplication |
CN108268216A (en) * | 2018-01-05 | 2018-07-10 | 新华三技术有限公司 | Data processing method, device and server |
US20210072912A1 (en) * | 2019-01-29 | 2021-03-11 | Dell Products L.P. | Method and system for inline deduplication using erasure coding |
CN111522502A (en) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | Data deduplication method and device, electronic equipment and computer-readable storage medium |
Non-Patent Citations (1)
Title |
---|
宋雨;易璐;王凤霞;: "基于云存储的重复数据删除架构的研究与设计", 计算机系统应用, no. 01, pages 208 - 211 * |
Also Published As
Publication number | Publication date |
---|---|
CN114265551B (en) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12086029B2 (en) | Intra-device and inter-device data recovery in a storage system | |
US11074129B2 (en) | Erasure coded data shards containing multiple data objects | |
US10585746B2 (en) | Tracking status and restarting distributed replication | |
CN104272274B (en) | Data processing method and equipment in a kind of distributed file storage system | |
US9298386B2 (en) | System and method for improved placement of blocks in a deduplication-erasure code environment | |
US12164397B2 (en) | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors | |
US20190245918A1 (en) | Distributed replication of an object | |
CN108733311B (en) | Method and apparatus for managing storage system | |
US12430245B2 (en) | Data reduction in a cloud-based storage system | |
EP4191936A1 (en) | Method and apparatus for storing blockchain transaction data and distributed storage system using the same | |
CN116661681A (en) | A mirror storage method and computing device | |
US11855868B2 (en) | Reducing the impact of network latency during a restore operation | |
CN114265551B (en) | Data processing method in storage cluster, storage node and equipment | |
CN118939472A (en) | A data management method and related equipment | |
US11640339B2 (en) | Creating a backup data set | |
CN115408345A (en) | Data storage method and device applied to parallel file system | |
CN118796126A (en) | Data storage method and device | |
KR20230084026A (en) | Method and apparatus for storing blockchain transaction data and distributed storage system using the same | |
CN117312326A (en) | Data storage method based on Yun Yuansheng database and related equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |