WO2013117002A1 - 一种数据重建方法、装置和系统 - Google Patents

一种数据重建方法、装置和系统 Download PDF

Info

Publication number
WO2013117002A1
WO2013117002A1 PCT/CN2012/070983 CN2012070983W WO2013117002A1 WO 2013117002 A1 WO2013117002 A1 WO 2013117002A1 CN 2012070983 W CN2012070983 W CN 2012070983W WO 2013117002 A1 WO2013117002 A1 WO 2013117002A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage node
data migration
new
task
Prior art date
Application number
PCT/CN2012/070983
Other languages
English (en)
French (fr)
Inventor
印雨
王道辉
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201280000110.7A priority Critical patent/CN103354923B/zh
Priority to PCT/CN2012/070983 priority patent/WO2013117002A1/zh
Priority to EP12867962.8A priority patent/EP2784675B1/en
Publication of WO2013117002A1 publication Critical patent/WO2013117002A1/zh
Priority to US14/456,690 priority patent/US9904599B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Definitions

  • the present invention relates to the field of computer technologies, and in particular, to a data reconstruction method, apparatus, and system.
  • P2P peer-to-peer
  • DHT Distributed Hash Table
  • a typical P2P storage system can generally be composed of two components: a number of clients and several storage nodes.
  • the storage node is used to store data, and the client is used to access data.
  • the data access form of this storage system is generally as follows: get ( key, &value ), where key is the unique identifier of the data, and value is the data content.
  • Embodiments of the present invention provide a data reconstruction method, apparatus, and system, which can improve the efficiency of data reconstruction.
  • a data reconstruction method including:
  • the routing table information indicates a mapping relationship between the storage node and the partition in the cluster
  • a data reconstruction device comprising:
  • An obtaining unit configured to obtain a data migration list, where the data migration list indicates a partition on a storage node that needs data migration that requires data migration;
  • a generating unit configured to generate a data migration task according to the routing table information and the data migration list obtained by the obtaining unit, where the routing table information indicates a mapping relationship between the storage node and the partition in the cluster;
  • An execution unit configured to concurrently perform a data migration task of the storage node in the cluster for data reconstruction.
  • a storage system includes any of the data reconstruction devices provided by the embodiments of the present invention.
  • the embodiment of the present invention uses the data migration list to generate a data migration task according to the data migration list and the routing table information, and then concurrently executes the data migration task of the storage node in the cluster to perform data reconstruction. Since the data migration task can be performed concurrently, Can improve the efficiency of data reconstruction.
  • Figure 1 a is a schematic diagram of the mapping relationship between the DHT algorithm and the partition and the storage node;
  • Figure lb is a flowchart of a data reconstruction method provided by an embodiment of the present invention.
  • 2a is a schematic diagram of an original mapping relationship between storage nodes and partitions in a storage system
  • FIG. 2b is another flowchart of a data reconstruction method according to an embodiment of the present invention.
  • Figure 2c is a schematic diagram showing the mapping relationship between storage nodes and partitions obtained after the first partition adjustment
  • Figure 2d is a schematic diagram showing the mapping relationship between each storage node and partition obtained after the second partition adjustment
  • FIG. 3 is a schematic structural diagram of a data reconstruction device according to an embodiment of the present invention.
  • Full strip storage refers to the method of dividing continuous data into data blocks of the same size and writing each piece of data to different disks in the array. It can read and write much faster than a single disk. When data is transferred from the first disk, the second disk can determine the next piece of data.
  • DHT algorithm The storage system usually adopts DHT as the network model. That is, a location mapping for any one storage node (ie, a physical node) in the network is provided. A storage node is mapped into multiple virtual nodes, and the actual external service is a logical volume that is virtualized based on the DHT ring.
  • VOL Volume.hthhh
  • Partitions partitions
  • Hash value The client's request data "key-value" has a correspondence with the virtual node. Which key-values are placed on which nodes has a mapping rule. This mapping rule is based on hashing the key, calculating a hash value, and then modulating the hash value and the total number of virtual nodes, that is, establishing a key and The mapping of the virtual node number, using the calculation method of the hash value, will make the key value requested by the upper layer application evenly distributed to the entire cluster. As long as the number of partitions on each physical node is evenly distributed, the data carried by these physical nodes is assumed. The amount will be more balanced.
  • FIG. 1 Storage node, virtual node, partition: As shown in Figure la: The physical node corresponds to the physical server hard disk. Usually, each hard disk corresponds to a physical node, which is called a storage node. The virtual nodes A to T are distinguished from the physical nodes. Each partition
  • the data of the (Partition) area is stored corresponding to a virtual node.
  • the partition represents the area after the key is hashed, and the virtual node represents the storage area. Node.
  • the graph is divided into 20 partitions, from P0 to P19; where each partition contains a range of hash values equal.
  • the Hash value is mapped to a partition of the Hash space.
  • the data in each partition is stored on the corresponding virtual node. For example, after key kl is hashed, the Hash value integer is mapped to the P0 area, and the key-value data mapped to P0 is stored on the A node.
  • Load balancing task (RT, RebalanceTask): When some nodes in the cluster fail, the partition of the failed node will be migrated, so that the partition migration plan between the series of nodes is defined, which is called load balancing task. In the embodiment of the invention, it is called a data migration task.
  • Embodiments of the present invention provide a data reconstruction method, apparatus, and system. The following is a detailed description.
  • a data reconstruction device which may be a client in a storage system or a device such as another control device.
  • a data reconstruction method includes: acquiring a data migration list, where the data migration list indicates a partition that needs data migration on a storage node that needs data migration, and generating a data migration task according to the data migration list and the routing table information, where the routing table information Indicates the mapping relationship between storage nodes and partitions in the cluster, and concurrently performs data migration tasks of storage nodes in the cluster for data reconstruction.
  • the cluster includes at least two storage nodes.
  • the data migration list indicates a partition that needs data migration on a storage node (node) that needs data migration, that is, according to the migration list, a storage node (node) that needs data migration may be determined, and the requirement is determined.
  • the partition on which the data migration needs to be migrated on the storage node for example, the details can be as follows:
  • the status information of the storage node is also referred to as synchronous heartbeat information. If there is no state information of the storage node within a certain time window, the storage node may be considered to be in a temporary fault state; if the persistent fault time reaches the system setting The time, for example, X hours, is that the storage node is in a permanent fault state, and then the partition of the storage node needs to be migrated to another normal storage node, that is, step (2) is performed.
  • the storage node to which the partition on the failed storage node currently belongs needs The data of these partitions is migrated to recover the data of these partitions, that is, the storage nodes to which the partitions on the failed storage node currently belong (that is, these "other normal storage nodes” that have accepted the partition migration) are The "storage node requiring data migration" as described in the embodiment of the present invention.
  • routing table information indicates a mapping relationship between the storage node and the partition, and further, the routing table information may also indicate status information of each storage node.
  • the data migration list indicates the storage nodes that need data migration, that is, which partitions on which storage nodes need to be migrated. These storage nodes that require data migration can be one or multiple.
  • the specific information may be as follows:
  • a storage node that receives migration data is referred to as a storage node that steals data
  • a storage node that migrates data is referred to as a storage node that contributes data
  • the node A includes a partition P1
  • the storage node B stores the backup data of the partition P1.
  • the partition P1 is adjusted to the storage node C, and the data of the partition P1 can be migrated from the storage node B to the storage node.
  • the storage node C is referred to as a storage node for stealing data
  • the storage node B is referred to as a storage node for contributing data.
  • 103. Perform concurrent data migration tasks of the storage nodes in the cluster for data reconstruction; wherein, concurrently refers to data migration tasks of storage nodes in the parallel execution cluster, including concurrent execution of data migration tasks between storage nodes, and storage Concurrent execution of data migration tasks within a node.
  • the parallelism here refers not only to the parallel processing between task 1, task 2 and task 3, but also the parallel processing between each small task in task 1, task 2 and task 3.
  • the data migration task of the storage node in the cluster is performed concurrently to perform data reconstruction, which may be as follows:
  • the backup data is copied from the storage node contributing the data to the storage node that currently needs to steal the data according to the data migration task.
  • step 102 (that is, generating a data migration task according to the data migration list and routing table information) may specifically be:
  • the data migration task is integrated according to the new data migration list and the routing table information, and the integrated data migration task is obtained; for example, the specifics can be as follows:
  • the new data migration task is the same as step 102, and is not described here.
  • the data migration task of the storage node in the cluster is concurrently performed to perform data reconstruction.
  • the data migration task of the storage node in the cluster is concurrently performed to perform data reconstruction.
  • step 103 the specific method for concurrently performing the integrated data migration task can be referred to step 103, and details are not described herein.
  • the data migration task is generated according to the data migration list and the routing table information, and then the data migration task of the storage node in the cluster is concurrently performed for data reconstruction, because data migration can be performed concurrently. Tasks, so you can improve the efficiency of data reconstruction.
  • the maintenance personnel need to set a corresponding data migration task for the faulty storage node through the P2P storage system. Therefore, if a storage node fails after a certain data migration task is established, the P2P storage system needs to be passed again.
  • Develop a new data migration task at which point data migration tasks may be duplicated, extending the time of data migration, resulting in numbers According to the reduction of reconstruction efficiency.
  • the new data migration list is determined by the embodiment of the present invention, the data migration task can be integrated according to the new data migration list, and the same data migration task is deleted, so that the duplication of the data migration task can be avoided, and the data migration task is greatly reduced.
  • the time of data migration further improves the efficiency of data reconstruction.
  • the storage system creates multiple copies of data files by means of redundant backups. These copies are called data backups, so that when the storage system fails, data backup can be used to recover the data.
  • data backups so that when the storage system fails, data backup can be used to recover the data.
  • the following is an example of a storage node cluster with 12 storage nodes (that is, 12 disks) and each partition (ie partition) with 3 data backups.
  • each storage node includes several partitions, and each partition contains 3 backup data.
  • the original routing table information that is, the mapping relationship between the storage node and the partition
  • N1 1, 7, 8, 8, 9, 15, 16 ", 17, 23', 24" );
  • N2 (2, 8,, 1, 10, 16, 9", 18, 24,, 17" );
  • N3 (3, 1,, 2, , 11, 9,, 10", 33, 36', 35" );
  • N4 (4, 2,, 3, , 12, 10, , 11" , 34, 33' , 36" );
  • N5 (5, 3', 4, , 13, 11, , 12" , 31, 30, , 29" );
  • N6 (6, 4,, 5, , 14, 12, , 13'" , 32, 31' , 30, );
  • N7 (7, 5,, 6, , 15, 13, 14" , 23, 21' , 22' );
  • N8 (8, 6,, 7, , 16, 14, 15" , 24, 22' , 23' );
  • Nil (27, 26,, 25", 21, 19,, 20", 35, 34,, 33" );
  • the numbers in parentheses correspond to the partition "P" in Figure 2a, and (p, ⁇ ', ⁇ " ) represent three different data backups of a partition, for example, (1, V, 1")
  • the partition " ⁇ " in Figure 2a represents the three data backups of P1.
  • the mapping of the storage nodes and partitions described above It can be seen that the three data backups of the partition " ⁇ are stored on the storage nodes N1, N2 and N3 respectively.
  • the data reconstruction process of the storage system can be: 3 ⁇ 4:
  • the client in the storage system acquires state information of the storage node in the cluster.
  • the client saves the routing table information of the entire cluster.
  • the routing table information includes the mapping relationship between the storage node and the partition, and the status information of each storage node.
  • the client adjusts the partition according to the obtained state information of the storage node, that is, changes the mapping relationship between the storage node and the partition according to the obtained state information of the storage node. For example, it can be: 3 ⁇ 4 under:
  • the storage node Since the system periodically obtains the state information of the storage node in the cluster by the client, if the state information of the storage node is not available within a certain time window, the storage node may be considered to be in a temporary failure state; if the continuous failure time is reached When the time set by the system, such as X hours, the storage node is considered to be in a permanent fault state, that is, the storage node is determined to be a fault storage node.
  • a storage node is a failed storage node, the data in all the partitions on the storage node can be considered to be faulty. Therefore, the partition on the failed storage node needs to be migrated to other normal storage nodes.
  • the partition may be adjusted in any manner.
  • the partitions on the faulty storage node may all be migrated to a normal storage node, or all the partitions on the faulty storage node may be migrated to some On a normal storage node, and so on.
  • the partitions on the faulty storage node can be evenly distributed to the normal storage nodes as much as possible, so that the partition data on each normal storage node is substantially equal.
  • the figure shows the mapping relationship between the storage nodes and the partitions obtained after the partition nodes are adjusted after the failure of the storage nodes N1, N6, N7, and N12 (that is, the storage nodes obtained after the first partition adjustment) Schematic diagram of the mapping relationship of the partition).
  • the storage node is identified by a dotted line
  • the partition represents the new partition of the storage node.
  • the partitions of the storage nodes N1, N6, N7 and N12 are all migrated to other normal storage nodes, so their partition list is empty.
  • the mapping relationship between each storage node and partition after the partition adjustment can be as follows:
  • N3 (3, 1,, 2, ,, 11, 9,, 10", 33, 36', 35" , 17, 7,, 8", 12,);
  • N4 (4, 2,, 3", 12, 10,, 11", 34, 33', 36", 1, 15,, 24", 31', 23);
  • N5 (5, 3', 4, ,, 13, 11', 12", 31 , 30', 29 ", 9, 21', 16", 7);
  • N8 (8, 6,, 7, ,, 16, 14, 15", 24 , 22', 23 ,,, 22, 20,, 13, 2V ', );
  • the underlined part is the newly added partition of each storage node.
  • the client updates the routing table information according to the adjustment of the partition in step 202, and synchronizes to the entire cluster, and then determines the data migration list according to the updated routing table information and the routing table information before the update.
  • the routing table information indicates a mapping relationship between the storage node and the partition, and may also indicate status information of each storage node.
  • the data migration list indicates the partitions on the storage nodes that need data migration that need to be migrated, that is, which partitions on which storage nodes are used for data migration. These storage nodes that require data migration can be one or multiple. For example, by the adjustment of the partition in step 202, it is known that new partitions are added to the storage nodes N2, N3, N4, N5, N8, N9, N10, and Nil. Therefore, the storage nodes N2, N3, N4, and N5, N8, N9, N10, and Nil all need data migration. Then, storage nodes N2, N3, N4, N5, N8, N9, N10, and Nil need to perform data migration.
  • the list of partitions to be migrated is the data migration list.
  • the data backup of each partition in the cluster is on the other two storage nodes. So you can get data backup from any of these two storage nodes to recover the data.
  • the details can be as follows:
  • the storage node that needs data migration is determined according to the data migration list, and is used as a storage node for stealing data.
  • the storage node indicating that data migration is required in the data migration list includes: N2, N3, and N4.
  • N2 is the storage node that needs data migration. Data migration, and so on, until all the data for the "storage nodes that need data migration" in the migration list have been migrated.
  • the storage node where the backup data of the partition on the storage node that needs data migration is currently located may be determined by searching the routing table information, and the storage node is selected from the storage node where the backup data is located as a storage node that contributes data; for example
  • the partitions where the storage node N2 needs to perform data migration are: P32, P23, P30, and P5;
  • the routing table information (the mapping relationship between each storage node and the partition is stored in the routing table information) can be found, and the data backup of the P32 is stored in
  • the storage node which can be used as the contribution data can be selected from the storage nodes N9 and N10 according to the preset policy, for example, N9 is selected as the storage node contributing data.
  • the preset strategy can be set according to the needs of the actual application.
  • the data migration task can be generated according to the determined storage node stealing the data and the storage node contributing the data.
  • the total migration task queue can include n tasks, for example, rebalanceTaskl,
  • n means that every time there is a disk failure
  • the data migration task for the cluster is not limited.
  • the task defined by the storage system corresponds to the faulty storage node.
  • one fault storage node corresponds to one task. After these tasks are generated, they are put into the total migration task queue for execution.
  • the data migration task generated after the first failure can be called rebalanceTaskl
  • the data migration task generated after the second failure is called rebalanceTask2, and so on.
  • Each task in the total migration task queue may include at least one "task between two storage nodes", a task between two storage nodes, referring to a data migration task between two storage nodes.
  • the two storage nodes one is a storage node for stealing data, and the other is a storage node for contributing data, which can be specifically represented by X ⁇ - Y partitions[k], where X is a storage node for stealing data, and Y is The storage node that contributes data, partitions [k] represents the partition k on the Y node. For example, 2 ⁇ -- 9 partitions [32] indicates that node 2 steals data from partition 32 from node 9.
  • Partition32 is originally a partition on storage node 6. Since storage node 6 fails, data can only be migrated from storage node N9 or N10 that holds its data backup, so when the task is created, it is displayed. The storage node where the partition of the final data is migrated, for example, the storage node N9 is displayed in the above task. In addition, it should be noted that one storage node can steal multiple data backups from another storage node, for example, 4 ⁇ 8 partitions [15, 23, 24] indicates that storage node N4 steals three partitions from storage node N8. : partitionl5 (ie P15), partition 23 (P23) ⁇ partition 24 ( ⁇ P24 ) data.
  • the storage node that needs to steal data is determined.
  • the data migration task belonging to the storage node that needs to steal data is determined, and then the data migration task belonging to the storage node that needs to steal data is executed to perform data reconstruction.
  • N2 there are a total of eight storage nodes stealing data, namely N2, N3, N4, N5, N8, N9, N10 and Nil.
  • the storage node N2 it has four Data migration tasks: 2 ⁇ -- 9 partitions[32], 2 ⁇ -8 partitions[23] , 2 ⁇ -10 partitions[30] and 2 ⁇ -- 5 partitions [5]. Therefore, if it is determined that the storage node N2 is a storage node that needs to steal data, the four data migration tasks belonging to the storage node N2 are concurrently executed, and the determination methods of the other storage nodes are the same, and are not described herein again.
  • each storage node can also be executed concurrently, that is, parallel processing N2, N3, N4, N5, N8, N9, ⁇ and Nil.
  • the data migration task is integrated according to the new data migration list and the routing table information, and the integrated data migration task is obtained, and the integrated data migration task is added to the total migration task queue.
  • the tasks in the total migration task queue are concurrently executed, that is, the process returns to step 205; the details may be as follows:
  • determining a new data migration list determine the new storage section that requires data migration based on the new data migration list and routing table information (including updated routing table information and pre-update routing table information). Point, and generate a new data migration task, and then determine whether the new storage node that needs data migration is a storage node that steals data in the original data migration task and/or a storage node that contributes data, according to the determined result, respectively deal with:
  • the first type is that the data of the storage node itself needs to be restored, and the second type is the storage node. Data that has not been stolen needs to be moved to another storage node to steal, so you can do the following to integrate data migration tasks:
  • the first type is that the data of the storage node itself needs to be restored, and the second type is originally from the storage.
  • the storage node stealing data on the node needs to be moved to other storage nodes to steal data. Therefore, the following operations can be performed to integrate the data migration task:
  • the first type is that the data of the storage node itself needs to be restored, and the second The class is that the data that has not been stolen on the storage node needs to be moved to other storage nodes to steal.
  • the third type is that the storage node that originally steals data from the storage node needs to be moved to other storage nodes to steal data, so that it can be performed at this time.
  • the figure shows a mapping relationship between storage nodes and partitions obtained after partition node adjustment after the failure of the storage node N2 (that is, the mapping relationship between the storage nodes and the partitions obtained after the second partition adjustment)
  • the schematic diagram reflects the change of the partition on each storage node after the partition on the storage node N2 migrates to another normal storage node after the storage node N2 fails.
  • the partition of storage node N2 is empty because it is all migrated to other normal storage nodes.
  • the mapping relationship between storage nodes and partitions after partition adjustment can be as follows:
  • N3 (3, ⁇ , 2, 11, 9,, 10", 33, 36', 35", 17, 7,, 8", 12', 32 ⁇ _ 301);
  • N4 (4, 2,, 3": 12, 10,, 11", 34, 33', 36", 1, 15,, 24", 31', 23, 1", 8,);
  • N5 3', 4, 13, 11', 12", 31, 30,, 29", 9, 21', 16", 7, 2, 24,; N6 ( );
  • N8 (8, 6,, 7", 16, 14, 15", 24, 22', 23", 22, 20,, 13, 21 _ 18, 21);
  • Nil (27, 26,, 25, 21, 19,, 20", 35, 34,, 33", 28, 4,, 14, 35,, 10, 23,); N12 ( ).
  • the underlined part is the partition added by each storage node after the failure of the storage node N2 (that is, the added partition after the second partition adjustment), it should be noted that the bold font but the underlined number indicates the first For the increased partition after the secondary partition adjustment, see step 202.
  • the failed storage node N2 is both a storage node that steals data and a storage node that contributes data, and since the task on N2 needs to change after its failure, three types of tasks will be involved at this time.
  • the first type is that the data on N 2 needs to be restored
  • the second type is that the data that has not been stolen on N 2 needs to be transferred to other storage nodes to steal
  • the third type is the storage that originally steals data from the storage node 2. Nodes need to be transferred to other storage nodes to steal data.
  • the data of the storage node N2 itself can be restored according to the result of the first partition adjustment.
  • the data of the storage node N2 itself includes 9 partitions, that is, the partition [2, 8, 1 ", 10, 16, 9" needs to be restored.
  • Data for 18, 24, 17, 17,] the data migration tasks available here are:
  • the data in the partition of the storage node N2 that needs to steal data may be restored according to the second partition adjustment result, that is, the data to be migrated in the original data migration task (ie, rebalanceTaskl).
  • the second partition adjustment result that is, the data to be migrated in the original data migration task (ie, rebalanceTaskl).
  • the storage node that originally steals data from the storage node N2 needs to transfer to other storage nodes to steal data.
  • task 5 in the rebalanceTaskl ⁇ --2 partitions [16] needs to change the storage node N2 to The normal storage node N8, which becomes 5 ⁇ - 8 partitions [16, recombines these three types of tasks, that is, the integrated data migration task, namely rebalanceTask2, as follows:
  • the tasks in the rebalanceTask2 are directly added to the total migration task queue, and the tasks in the total migration task queue are concurrently executed, that is, the execution returns to step 205.
  • key values can also be used to establish a mapping relationship with the partition, and will not be described here.
  • Step A2 If the storage node D fails and cannot communicate, the data migration task that is determined at this time migrates the partition on the storage node D to another normal storage node, and updates the routing table information, for example, the partition. P6 migrates to storage node C and updates the routing table information.
  • Step A3 The client obtains the updated routing table information, determines that the partition P6 is on the storage node C, and then writes the data to the storage node C.
  • the entire reading process of migrating its partition to the new storage node C can be as follows:
  • other key values can be used to establish a mapping relationship with the partition, and will not be described here.
  • Step B2 If the storage node D fails and cannot communicate, the data migration task that is determined at this time migrates the partition on the storage node D to another normal storage node, and updates the routing table information, for example, the partition. P6 migrates to storage node C and updates the routing table information.
  • the data backup of the partition P6 is stored on the storage node B. Therefore, the storage node C needs to steal data from the storage node B.
  • Step B3 The client obtains the updated routing table information, determines that the partition P6 is on the storage node C, and then reads the required data from the storage node C, and the data of the partition P6 on the storage node C needs to be from the storage node B. Migrating on (ie stealing data from storage node B). At this time, at the time of reading, the storage node C may also be undergoing data migration, and the data on the storage node B has not yet been completely migrated to the storage node C. Therefore, the partition P6 may not be read from the storage node C. The data, but the read request can be redirected to the storage node B at this time, so that the client can still access the corresponding data correctly.
  • the embodiment of the present invention improves the data recovery speed by concurrently performing data migration tasks, thereby improving the efficiency of data reconstruction.
  • the data migration task can be integrated according to the new data migration list and the routing table information, and the same migration task is cancelled, thereby avoiding duplication of data migration tasks and ensuring data migration.
  • the task does not fail due to the failure of the storage node, which greatly reduces the time of data migration and further improves the efficiency of data reconstruction. Further, in the process of performing the data reconstruction, the read and write request operation is not affected, and the reliability of the storage system is ensured.
  • the embodiment of the present invention further provides a data reconstruction device, which can be used as a client of the storage system.
  • the data reconstruction device includes an obtaining unit 301, a generating unit 302, and an execution. Unit 303;
  • the obtaining unit 301 is configured to obtain a data migration list, where the data migration list indicates a partition on the storage node that needs data migration that requires data migration;
  • the generating unit 302 is configured to generate a data migration task according to the routing table information and the data migration list acquired by the obtaining unit 301, where the routing table information indicates a mapping relationship between the storage node and the partition in the cluster;
  • the executing unit 303 is configured to concurrently perform a data migration task of the storage node in the cluster for data reconstruction.
  • the generating unit 302 is further configured to: when a new data migration list is determined, integrate the data migration task according to the new data migration list and the routing table information, to obtain an integrated data migration task;
  • the data migration task of the storage node in the cluster is concurrently performed for data reconstruction; for example, the backup data may be copied from the storage node that contributes data to the storage node that needs to steal data according to the data migration task. See the previous method embodiment, and details are not described herein again.
  • the obtaining unit 301 may include an obtaining subunit, an adjusting subunit, an updating subunit, and a determining stator unit;
  • the status information of the storage node is also referred to as synchronous heartbeat information. If there is no state information of the storage node within a certain time window, the storage node may be considered to be in a temporary fault state; if the persistent fault time reaches the system setting Time, such as X hours, considers the storage node to be in a permanent fault state
  • the adjusting subunit is configured to adjust the partition according to the state information of the storage node acquired by the obtaining subunit;
  • an update subunit configured to update the routing table information according to the adjustment of the partition, where the routing table information indicates a mapping relationship between the storage node and the partition in the cluster, and further, the routing table may further indicate status information of each storage node;
  • the determining subunit is configured to determine a data migration list according to the updated routing table information after updating the subunit and the routing table information before the update.
  • the adjusting subunit is specifically configured to: when the state information of the storage node is not received within a preset time, determine that the storage node is a faulty storage node, and migrate the partition on the faulty storage node to another normal storage node. At this time, the "other normal storage node" is called a storage node that needs data migration.
  • the generating unit 302 may specifically include a processing subunit and a generating subunit.
  • a processing subunit configured to determine, according to the data migration list, a storage node that needs data migration as a storage node that steals data; and find a storage node where the backup data of the partition on the storage node that currently needs data migration is located by searching routing table information Selecting a storage node from the storage node where the backup data is located as a storage node that contributes data;
  • And generating a subunit configured to generate a data migration task according to the storage node that steals data determined by the processing subunit and the storage node that contributes data.
  • the generating unit 302 can include a generating subunit and an integrating subunit;
  • the integration subunit is configured to determine whether the new storage node that needs data migration is a storage node that steals data in the original data migration task and/or a storage node that contributes data, and then performs the following operations: if only the original data migration task The storage node stealing data deletes the data migration task of the new storage node that needs data migration in the original data migration task, and retains a new data migration task about the new storage node that needs data migration;
  • the storage node that steals data and the storage node that contributes data in the original data migration task delete the data migration task of the storage node that uses the new data migration task as the storage node stealing data in the original data migration task; Re-selecting a new node that contributes data to the storage node that needs to steal the data from the storage node that needs to migrate the data in the original data migration task, and replace the node in the original data migration task with the node that newly contributes the data.
  • New storage node that requires data migration reserved New data migration tasks for the new storage node that requires data migration;
  • mapping relationship between the storage node and the partition has changed, since the client only needs to determine the location of the partition when writing or reading data, it does not care which storage node the partition belongs to, so After the storage node is faulty, the execution unit 303 does not affect the read/write process when the data migration task is performed concurrently.
  • the execution unit 303 does not affect the read/write process when the data migration task is performed concurrently.
  • the foregoing units may be implemented as a separate entity, or may be implemented in any combination, and may be implemented as the same or a plurality of entities.
  • the foregoing method embodiments and details are not described herein.
  • the obtaining unit 301 of the data reconstruction device of the embodiment can obtain the data migration list, and then the generating unit 302 generates a data migration task according to the data migration list and the routing table information, and then the execution unit 303 concurrently executes the storage node in the cluster.
  • the data migration task for data reconstruction because the data migration task can be performed concurrently, the efficiency of data reconstruction can be improved, and, when a new data migration list is determined, the integration sub-unit can also be migrated according to the new data.
  • the list integrates data migration tasks to delete the same data migration tasks. Therefore, data migration tasks can be avoided, data migration time is greatly reduced, and data reconstruction efficiency is improved. Further, in the process of reconstructing the data, the read/write request operation is not affected, and the reliability of the storage system is ensured.
  • the embodiment of the present invention further provides a storage system, which may include any data reconstruction device provided by the embodiment of the present invention.
  • a storage system which may include any data reconstruction device provided by the embodiment of the present invention.
  • the data reconstruction device refer to the third embodiment, and details are not described herein.
  • the details can be as follows:
  • a data reconstruction device configured to obtain a data migration list, where the data migration list indicates a partition on the storage node that needs data migration that requires data migration; and a data migration task is generated according to the data migration list and the routing table information, where the routing table information indicates the cluster The mapping relationship between the storage node and the partition; concurrently performing the data migration task of the storage node in the cluster for data reconstruction.
  • the data migration task may copy the backup data from the storage node that contributes data to the current need to steal the number.
  • a new storage node fails during the data reconstruction process, a new data migration list needs to be obtained, and the data migration task is integrated according to the new data migration list and the routing table information. Get the integrated data migration task, and then concurrently perform the integrated data migration task of the storage nodes in the cluster for data reconstruction.
  • the data reconstruction device is further configured to: when a new data migration list is determined, integrate the data migration task according to the new data migration list and the routing table information, and obtain the integrated data migration task; concurrently execute the integration of the storage nodes in the cluster. Data migration tasks for data reconstruction.
  • the obtaining the data migration list may specifically include:
  • the routing table may also indicate status information of each storage node.
  • the specific adjustment of the partition according to the state information of the storage node may be as follows:
  • the storage node is a fault storage node; the partition on the faulty storage node is migrated to another normal storage node.
  • the data migration task generated according to the data migration list may be specifically as follows:
  • the storage system may further include one or more storage nodes
  • a storage node that stores data and accepts partition adjustments and data migrations of the data reconstruction device.
  • the data reconstruction device of the embodiment can obtain the data migration list, and then generate a data migration task according to the data migration list and the routing table information, and then perform the data migration task concurrently to perform data reconstruction, because the cluster can be executed concurrently.
  • the data migration task of the storage node can improve the efficiency of data reconstruction, and, when determining the new data migration list, it can also be based on the new
  • the data migration list and the routing table information integrate the data migration tasks to delete the same data migration task. Therefore, the data migration task can be avoided, the data migration time is greatly reduced, and the data reconstruction efficiency is improved. Further, in the process of performing the data reconstruction, the read/write request operation is not affected, and the reliability of the storage system is ensured.
  • the program may be stored in a computer readable storage medium, and the storage medium may include: Read only memory (ROM, Read Only Memory), random access memory (RAM), disk or optical disk.

Abstract

一种数据重建方法,包括:获取数据迁移列表,所述数据迁移列表指示该需要数据迁移的存储节点上需要数据迁移的分区;根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示集群中存储节点和分区的映射关系;并发执行集群中存储节点的数据迁移任务,以进行数据重建。此外,还相应地提供一种数据重建设备和存储系统。

Description

一种数据重建方法、 装置和系统
技术领域
本发明涉及计算机技术领域, 具体涉及一种数据重建方法、 装置和系统。
背景技术
随着网络技术的发展, 网络信息也随之进入信息爆炸时代,基于人们对大 规模的数据存储的需求, 基于分布式散列表(DHT, Distributed Hash Table ) 技术的点对点 (P2P, Peer-to-Peer) 存储系统应运而生。
一个典型的 P2P存储系统一般可以筒化为以下两种部件组成: 若干个客户 端和若干个存储节点。其中,存储节点用于存放数据,客户端则用于访问数据。 这种存储系统的数据访问形式一般如下: get ( key, &value ), 其中, key为数 据的唯一标识, value即为数据内容。
随着存储系统的长时间运行,磁盘发生故障是存储系统的基本场景,如何 针对此场景快速地恢复数据, 以提高存储系统的可靠性是 P2P存储系统的主要 实现难点。 在现有技术中, 当集群中的部分存储节点发生故障时, 需要人工通 过 P2P存储系统针对故障的存储节点制定相应的数据迁移任务(也称为负载均 衡任务, 即 rebalance Task ) , 然后根据数据迁移任务将发生故障的存储节点进 行分区迁移。
在对现有技术的研究和实践过程中, 本发明的发明人发现, 由于现有技术 需要人工通过 P2P存储系统针对故障的存储节点制定相应的数据迁移任务, 然 后再依次执行这些数据迁移任务, 所以数据迁移需要花费的时间比较长。
发明内容
本发明实施例提供一种数据重建方法、装置和系统, 可以提高数据重建的 效率。
一种数据重建方法, 包括:
获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需 要数据迁移的分区;
根据数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息指示 集群中存储节点和分区的映射关系;
并发执行所述集群中存储节点的数据迁移任务, 以进行数据重建。 一种数据重建设备, 包括:
获取单元, 用于获取数据迁移列表, 所述数据迁移列表指示需要数据迁移 的存储节点上需要数据迁移的分区;
生成单元,用于根据路由表信息和获取单元获取到的数据迁移列表生成数 据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关系;
执行单元, 用于并发执行所述集群中存储节点的数据迁移任务, 以进行数 据重建。
一种存储系统, 包括本发明实施例提供的任一种数据重建设备。
本发明实施例采用获取数据迁移列表,根据数据迁移列表和路由表信息生 成数据迁移任务, 然后并发执行集群中存储节点的数据迁移任务, 以进行数据 重建, 由于可以并发地执行数据迁移任务, 所以可以提高数据重建的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创 造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1 a是 DHT算法及分区和存储节点的映射关系的示意图;
图 lb是本发明实施例提供的数据重建方法的流程图;
图 2a是存储系统中各存储节点和分区的原始映射关系示意图;
图 2b是本发明实施例提供的数据重建方法的另一流程图;
图 2c是经过第一次分区调整后所得到的各存储节点和分区的映射关系示 意图;
图 2d是经过第二次分区调整后所得到的各存储节点和分区的映射关系示 意图;
图 3是本发明实施例提供的数据重建设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域技术人员在没有作出创造性劳 动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
为了便于描述, 以下将对 P2P存储系统中所涉及到的几个概念进行筒略说 明。 如下:
( 1 )全条带化块存储: 指的是把连续的数据分割成相同大小的数据块, 把每段数据分别写入到阵列中不同磁盘上的方法。它比单个磁盘所能提供的读 写速度要快的多, 当数据从第一个磁盘上传输完后, 第二个磁盘就能确定下一 段数据。
( 2 ) DHT算法: 存储系统通常采用基于 DHT为网络模型。 即提供对于 任何一个存储节点(即物理上的节点)在网络中的位置映射。 一个存储节点映 射成多个虚拟节点, 实际对外提供服务是以基于 DHT环虚拟出的逻辑卷
( VOL, Volume.hthhh )来承担的。 逻辑卷中的数据存储时被分为很多大小相 等的小块(如 1M ) 来哈希 (Hash ) 映射到环上的不同分区 (Partitions ) 中。 所有的数据都可以通过一致性 Hash函数和分区建立映射关系。
( 3 ) Hash值: 客户端的请求数据 "key-value" , 和虚拟节点之间有一个 对应关系。 哪些 key-value放到哪些节点上是有一个映射规则的, 这个映射规 则是建立在对 key进行 hash, 计算出一个 Hash值, 然后将 Hash值与虚拟节 点的总数取模, 即建立了 key和虚拟节点编号的映射, 采用此种 Hash值的计 算方式,会使得上层应用请求的 key值均匀的分布到整个集群中, 只要每个物 理节点上的 partition数量分布均衡,则这些物理节点承担的数据量也会比较均 衡。
( 4 )存储节点, 虚拟节点, 分区: 如图 la所示: 其中物理节点(physical node )对应了物理服务器硬盘, 通常每个硬盘对应一个物理节点, 称为存储节 点。 虚拟节点 (virtual node ) A到 T, 是与物理节点区别而言的。 每个分区
( Partition )区域的数据, 会对应着一个虚拟节点进行存储, 从这个意义上讲, 分区和虚拟节点是一对一的关系, 分区代表了 key进行 hash后的区域, 虚拟 节点代表了存储这个区域的节点。 系统的 Hash空间从 0~2Λ32-1 (其中, 2Λ32-1 指的是 2的 "32-1=31" 次方), 这个整数空间等分成 Ν个分区, 比如图 la, 该图等分为 20个分区, 从 P0~P19; 其中, 每个分区包含的 hash值范围相等。
每个 Key经过 Hash计算后, Hash值会映射到该 Hash空间的某个分区上, 而每个分区中的数据则存储在对应的虚拟节点上。 比如, key kl经过 Hash计 算后, Hash值整数被映射到了 P0区域, 而映射到 P0的 key- value数据, 则存 储在 A节点上。
( 5 ) 负载均衡任务(RT, RebalanceTask ): 集群中部分节点发生故障时, 会将发生故障节点的分区迁移, 从而制定的一系列节点之间的分区迁移计划, 称为负载均衡任务, 在本发明实施例中称为数据迁移任务。
本发明实施例提供一种数据重建方法、装置和系统。 以下分别进行详细说 明。
实施例一、
本实施例将从数据重建设备的角度进行描述,该数据重建设备具体可以为 存储系统中的客户端, 也可以是其他的控制装置等设备。
一种数据重建方法, 包括: 获取数据迁移列表, 所述数据迁移列表指示需 要数据迁移的存储节点上需要数据迁移的分区,根据数据迁移列表和路由表信 息生成数据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关 系, 并发执行该集群中存储节点的数据迁移任务, 以进行数据重建。
其中, 集群中至少包括两个存储节点。
如图 lb所示, 具体流程可以如下:
101、 获取数据迁移列表, 其中, 数据迁移列表指示需要数据迁移的存储 节点(node )上需要数据迁移的分区, 即根据该迁移列表可以确定需要数据迁 移的存储节点 (node ), 以及确定该需要数据迁移的存储节点上需要数据迁移 的分区; 例如, 具体可以如下:
( 1 )获取集群中存储节点的状态信息。
其中,存储节点的状态信息又称为同步心跳信息,如果在一定的时间窗内 没有该存储节点的状态信息, 则可认为该存储节点处于临时故障状态; 如果持 续故障时间达到了系统设定的时间, 比如 X小时, 则认为该存储节点处于永 久故障状态, 则此时需要将该存储节点的分区 (partition ) 迁移到其他正常的 存储节点上, 即执行步骤(2 )。
( 2 )根据获取到的存储节点的状态信息对分区进行调整; 例如, 具体可 以: ¾口下: 若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障 存储节点; 将故障存储节点上的分区迁移到其他正常的存储节点上。
由于故障存储节点上的分区已经迁移到其他正常的存储节点上, 所以, 此 时,故障存储节点上的分区当前所属的存储节点(即接受了分区迁移的这些"其 他正常的存储节点")需要对这些分区的数据进行迁移, 以便对这些分区的数 据进行恢复, 也就是说, 故障存储节点上的分区当前所属的存储节点(即接受 了分区迁移的这些 "其他正常的存储节点") 即为本发明实施例所说的 "需要 数据迁移的存储节点"。
( 3 )根据分区的调整情况更新路由表信息, 其中, 该路由表信息指示存 储节点和分区的映射关系, 此外, 该路由表信息还可以指示每个存储节点的状 态信息。
( 4 )根据更新后的路由表信息 (即新的路由表信息)和更新前的路由表 信息 (即旧的路由表信息)确定数据迁移列表。
其中,数据迁移列表指示需要数据迁移的存储节点, 即指示哪些存储节点 上的哪个分区需要进行数据迁移。 这些需要数据迁移的存储节点可以是一个, 也可以是多个。
102、 根据数据迁移列表和路由表信息生成数据迁移任务, 其中, 该路由 表信息指示集群中存储节点和分区的映射关系; 例如, 具体可以如下:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储 节点;通过查找路由表信息确定该当前需要数据迁移的存储节点上的分区的备 份数据所在的存储节点; 从该备份数据所在的存储节点中选择存储节点, 以作 为贡献数据的存储节点;根据确定的偷数据的存储节点和贡献数据的存储节点 生成数据迁移任务。
需说明的是, 为了描述方便, 在本发明实施例中, 将接收迁移数据的存储 节点称为偷数据的存储节点,将迁移出数据的存储节点称为贡献数据的存储节 点, 比如, 如果存储节点 A上包括分区 P1 , 存储节点 B保存有分区 P1的备 份数据, 当存储节点 A发生故障后, 分区 P1调整到存储节点 C上, 则可以从 存储节点 B上迁移分区 P1的数据到存储节点 C的分区 P1上, 则此时, 将存 储节点 C称为偷数据的存储节点, 将存储节点 B称为贡献数据的存储节点。 103、 并发执行集群中存储节点的数据迁移任务, 以进行数据重建; 其中, 并发指的是并行执行集群中存储节点的数据迁移任务, 包括存储节 点之间的数据迁移任务的并发执行,以及存储节点内部的数据迁移任务的并发 执行。 比如, 以存储节点 A、 存储节点 B和存储节点 C为例, 若存储节点 A 所涉及到的数据迁移任务为任务 1 ,存储节点 B所涉及到的数据迁移任务为任 务 2, 存储节点 C所涉及到的数据迁移任务为任务 3 , 其中, 任务 1、 任务 2 和任务 3中均分别包括了多个小任务(即本发明实施例中的 "总迁移任务队列 中的任务", 具体可参见实施例二) , 则这里的并行, 不仅指任务 1、 任务 2 和任务 3之间的并行处理, 也包括任务 1、 任务 2和任务 3中各个小任务之间 的并行处理。
其中, 所述并发执行集群中存储节点的数据迁移任务, 以进行数据重建, 具体可以如下:
根据数据迁移任务从贡献数据的存储节点上将备份数据复制到该当前需 要偷数据的存储节点上。
此外, 可选的, 如果在进行数据重建的过程中, 又有新的存储节点发生故 障, 则此时需要获取新的数据迁移列表,根据新的数据迁移列表和路由表信息 对数据迁移任务进行整合,得到整合后的数据迁移任务, 然后再并发执行整合 后的数据迁移任务, 以进行数据重建。 即此时, 步骤 102 (即根据数据迁移列 表和路由表信息生成数据迁移任务)具体可以为:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据 迁移任务进行整合, 得到整合后的数据迁移任务; 例如, 具体可以如下:
( 1 )确定有新的数据迁移列表时, 根据新的数据迁移列表和路由表信息 确定新的需要数据迁移的存储节点, 并生成新的数据迁移任务;
其中, 生成新的数据迁移任务和步骤 102相同, 在此不再赘述。
( 2 )确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的 偷数据的存储节点和 /或贡献数据的存储节点, 然后根据确定的结果分别进行 如下处理:
若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中 关于该 "新的需要数据迁移的存储节点" 的数据迁移任务, 保留关于该 "新的 需要数据迁移的存储节点" 的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中 需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的 贡献数据的节点, 以新的贡献数据的节点替换原数据迁移任务中的 "新的需要 数据迁移的存储节点", 保留关于该 "新的需要数据迁移的存储节点" 的新的 数据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点, 则删除原数据迁移任务中以该 "新的需要数据迁移的存储节点"作为偷数据的 存储节点的数据迁移任务; 为原数据迁移任务中需要到该 "新的需要数据迁移 的存储节点"上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的贡 献数据的节点替换原数据迁移任务中的该 "新的需要数据迁移的存储节点 "; 保留关于该 "新的需要数据迁移的存储节点" 的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储 节点, 则保留关于该 "新的需要进行数据迁移的存储节点" 的新的数据迁移任 务。
贝' J , 步骤 103 (即并发执行集群中存储节点的数据迁移任务, 以进行数据 重建)具体可以为: 并发执行集群中存储节点的整合后的数据迁移任务, 以进 行数据重建。
需说明的是,该整合后的数据迁移任务与普通的数据迁移任务一样,所以, 并发执行该整合后的数据迁移任务的具体方法可以参见步骤 103 , 在此不再赘 述。
由上可知, 本实施例采用获取数据迁移列表,根据数据迁移列表和路由表 信息生成数据迁移任务, 然后并发执行集群中存储节点的数据迁移任务, 以进 行数据重建, 由于可以并发地执行数据迁移任务, 所以可以提高数据重建的效 率。
现有技术中由于维护人员需要通过 P2P存储系统针对故障的存储节点制 定相应的数据迁移任务, 所以, 如果制定了某一个数据迁移任务之后, 又有存 储节点发生故障, 则需要再次通过 P2P存储系统制定一份新的数据迁移任务, 此时就可能会发生数据迁移任务的重复,延长了数据迁移的时间,从而导致数 据重建效率的降低。通过本发明实施例在确定有新的数据迁移列表时,还可以 根据新的数据迁移列表对数据迁移任务进行整合, 删除相同的数据迁移任务, 所以, 可以避免数据迁移任务的重复, 大大减少了数据迁移的时间, 进一步提 高了数据重建的效率。 实施例二、
根据实施例一所描述的方法, 以下将举例作进一步详细说明。
存储系统通过冗余备份的方式,创建数据文件的多个副本, 这些副本称为 数据备份, 这样, 在存储系统发生故障时, 就可以通过这些数据备份来恢复数 据。 以下将以存储节点集群中含有 12个存储节点 (即 12块磁盘), 且每个分 区 (即 partition )具有 3份数据备份为例进行说明。
参见图 2a,在该存储系统的存储节点集群中,包括了 12个存储节点: Nl~ N12, 其中, 每个存储节点上包括有若干个分区, 每个分区含 3份备份数据。 例如, 其中, 原始的路由表信息(即存储节点和分区的映射关系)具体可以如
N1 ( 1, 7,, 8, , 9, 15,, 16", 17, 23', 24" );
N2 (2, 8,, 1, , 10, 16, , 9", 18, 24,, 17" );
N3 (3, 1,, 2, , 11, 9,, 10", 33, 36', 35" );
N4 (4, 2,, 3, , 12, 10, , 11" , 34, 33' , 36" );
N5 (5, 3', 4, , 13, 11, , 12" , 31, 30, , 29" );
N6 (6, 4,, 5, , 14, 12, , 13'" , 32, 31' , 30, );
N7 (7, 5,, 6, , 15, 13, , 14" , 23, 21' , 22' );
N8 (8, 6,, 7, , 16, 14, , 15" , 24, 22' , 23' );
N9 (25, 28,, 27", 29, 32', 31", 19, 17,, 18" );
誦 (26, 25,, 28", 30, 29,, 32", 20, 18,, 19" );
Nil (27, 26,, 25", 21, 19,, 20", 35, 34,, 33" );
N12 (28, 27,, 26", 22, 20,, 21", 36, 35', 34" )。
其中, 括号中的数字分别对应着图 2a中的分区 "P" , (p, ρ', ρ" )表 示一个分区的三个不同的数据备份, 比如, (1, V, 1") 即对应着图 2a中 的分区 "ΡΓ , 表示 P1的三个数据备份。 由上述的存储节点和分区的映射关 系可知, 分区 "ΡΓ 的三个数据备份分别存放在存储节点 Nl、 N2和 N3上。 如图 2a所示, 若连续四块磁盘如存储节点 Nl、 N6、 N7和 N12发生故障 (在图 2a中用虚线表示), 则如图 2b所示, 该存储系统的数据重建流程具体 可以: ¾口下:
201、 存储系统中的客户端获取集群中存储节点的状态信息。
需说明的是,客户端保存了整个集群的路由表信息, 这个路由表信息包含 了存储节点和分区的映射关系, 以及每个存储节点的状态信息。
202、 客户端根据获取到的存储节点的状态信息对分区进行调整, 即根据 获取到的存储节点的状态信息改变存储节点和分区的映射关系。例如, 具体可 以: ¾口下:
由于系统会定期地由客户端获取集群中存储节点的状态信息, 所以,如果 在一定的时间窗内没有该存储节点的状态信息,则可认为该存储节点处于临时 故障状态; 如果持续故障时间达到了系统设定的时间, 比如 X小时, 则认为 该存储节点处于永久故障状态, 即确定该存储节点为故障存储节点。
如果一个存储节点为故障存储节点,则可以认为该存储节点上的所有分区 中的数据都发生故障,于是此时需要将该故障存储节点上的分区迁移到其他正 常的存储节点上。
具体可采取任意的方式对分区进行调整, 例如, 具体可以将该故障存储节 点上的分区全部迁移到某个正常的存储节点上,也可以将该故障存储节点上的 分区全部迁移到某几个正常的存储节点上, 等等。 当然, 为了保证分区分布较 为均衡,可以尽可能将故障存储节点上的分区平均地分布到各个正常的存储节 点上, 使得每个正常的存储节点上分区数据基本相等。 比如, 本实施例采取的 具体方法是根据故障存储节点需要迁出的分区数目和每个正常节点需要迁入 多少个分区才能保证集群中每个节点的分区数基本相同 (平均的分区数=所有 分区数 /正常节点的个数) 的原则进行调整, 调整时按照节点的和分区的编号 来进行遍历, 调整的最终结果是其他正常的存储节点上新增了部分分区。
参见图 2c, 该图为存储节点 Nl、 N6、 N7和 N12发生故障后, 经过分区 调整所得到的各存储节点和分区的映射关系示意图(即第一次分区调整后所得 到的各存储节点和分区的映射关系示意图)。 其中, 存储节点中的用虚线标识 的分区表示该存储节点新增的分区, 由图 2c中可以看出, 存储节点 Nl、 N6、 N7和 N12的分区由于全部迁移到其他正常的存储节点上去, 所以它们的分区 列表为空。 分区调整后各个存储节点和分区的映射关系具体可以如下:
N1 ( );
N2 (2, 8,, 1, ,, 10, 16,, 9", 18, 24,, 17" , 32, 23', 30", 5,)
N3 (3, 1,, 2, ,, 11, 9,, 10", 33, 36', 35" , 17, 7,, 8", 12,);
N4 (4, 2,, 3" , 12, 10,, 11", 34, 33', 36" , 1, 15,, 24", 31', 23 );
N5 (5, 3', 4, ,, 13, 11', 12", 31 , 30', 29 ", 9, 21', 16", 7);
N6 ( );
N7 ( );
N8 (8, 6,, 7, ,, 16, 14,, 15", 24 , 22', 23 ,,, 22, 20,, 13,, 2V ', );
N9 (25, 28,, 27", 29, 32', 31", 19, 17,, 18", 14, 13', 26", 22",
36);
誦 (26, 25,, 28", 30, 29,, 32" , 20, 18, , 19", 6, 27,, 34", 6",
15);
Nil (27, 26,, 25", 21, 19,, 20" , 35, 34, , 33", 28, 4,, 5", 14",
35:);
N12 ( )。
其中, 下划线部分为各个存储节点新增的分区。
203、 客户端根据步骤 202中分区的调整情况更新路由表信息, 并同步到 整个集群中,然后根据更新后的路由表信息和更新前的路由表信息确定数据迁 移列表。
其中, 该路由表信息指示存储节点和分区的映射关系,还可以指示每个存 储节点的状态信息。数据迁移列表指示需要数据迁移的存储节点上需要进行数 据迁移的分区, 即指示哪些存储节点上的哪个分区进行数据迁移。这些需要数 据迁移的存储节点可以是一个, 也可以是多个。 例如, 由步骤 ,202中分区的调 整情况可知, 存储节点 N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil上均增加了 新的分区, 因此, 存储节点 N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil均需要 进行数据迁移, 则, 存储节点 N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil上需 要进行数据迁移的分区列表即为数据迁移列表。
204、 根据数据迁移列表和路由表信息生成数据迁移任务, 并从具有相应 数据备份的正常存储节点上迁移数据。
根据图 2c所示的分区调整后各个存储节点和分区的映射关系, 以及图 2a 所示的原始的存储节点和分区的映射关系可知,集群中每个分区的数据备份在 另外两个存储节点上,所以可从这两个存储节点中的任意一个上获取数据备份 来恢复数据。 例如, 具体可以如下:
首先, 具体可以根据数据迁移列表确定当前需要数据迁移的存储节点,作 为偷数据的存储节点, 比如, 以图 2c为例, 数据迁移列表中指示需要数据迁 移的存储节点包括: N2、 N3、 N4、 N5、 N8、 N9、 N10和 Nil , 则此时, 可 以先确定 N2为当前需要数据迁移的存储节点, 待 N2上的数据迁移完毕后, 再确定 N3为当前需要数据迁移的存储节点, 以进行数据迁移, 依次类推, 直 至迁移列表中所有的 "需要数据迁移的存储节点" 的数据均迁移完毕为止。
其次,可以通过查找路由表信息确定该当前需要数据迁移的存储节点上的 分区的备份数据所在的存储节点,从该备份数据所在的存储节点中选择存储节 点, 以作为贡献数据的存储节点; 比如, 存储节点 N2需要进行数据迁移的分 区为: P32、 P23、 P30和 P5; 由路由表信息 (路由表信息中存储了各个存储 节点和分区的映射关系)可查出, P32的数据备份存储在存储节点 N9和 N10 上, 于是, 此时可根据预置策略从存储节点 N9和 N10中选择出可作为贡献数 据的存储节点, 比如, 选择 N9作为贡献数据的存储节点。 其中, 预置策略可 根据实际应用的需求进行设置。
在确定了偷数据的存储节点和贡献数据的存储节点之后,即可根据确定的 偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
例如, 具体可以将数据迁移任务分成三个级别的任务: 总迁移任务队列
( RebalancingTaskQueue )、 总迁移任务队列中的任务 ( rebalanceTaskn )和两 个存储节点之间的任务; 如下:
( 1 )总迁移任务队列;
总迁移任务队列中可以包括 n个任务, 比如, rebalanceTaskl、
rebalanceTask2和 rebalanceTask3 , 等等。 其中, n表示每一次有磁盘发生故障 时为集群制定的数据迁移任务。
( 2 )总迁移任务队列中的任务
存储系统根据集群的故障存储节点的个数制定的任务,与故障存储节点相 对应, 一般一个故障存储节点对应一个任务, 这些任务生成后, 放进总迁移任 务队列中, 以待执行。 比如, 可以将第一次故障后生成的数据迁移任务称为 rebalanceTaskl , 将第二次故障后生成的数据迁移任务称为 rebalanceTask2, 以 此类推, 等等。
( 3 ) 两个存储节点之间的任务
每个总迁移任务队列中的任务中可以包括至少一个 "两个存储节点之间的 任务", 所谓两个存储节点之间的任务, 指的是具体到两个存储节点之间的数 据迁移任务, 这两个存储节点, 一个为偷数据的存储节点, 一个为贡献数据的 存储节点, 具体可以用于 X<- Y partitions[k]来表示, 其中, X为偷数据的存 储节点, Y为贡献数据的存储节点, partitions [k]表示 Y节点上的分区 k。比如, 2 < -- 9 partitions[32]表示节点 2从节点 9上偷分区 32的数据。
例如, 根据步骤 202中存储节点 N2 、 N3 、 N4 和 N5所新增的几个分 区, 可以制定出如下 "两个存储节点之间的任务":
2 <— 9 partitions [32];
3 <— 9 partitions [17];
4 <— 3 partitions[l];
5 < - 2 partitions [16];
2 <— 10 partitions [30];
3 <— 8 partitions[7,8];
4 <— 8partitions [15,23,24];
5 < - 3 partitions [9];
2 <— 5 partitions[5];
3 <— 5 partitions [12];
4 <— 9 partitions[31];
5 < - 8 partitions [7];
2 <— 8 partitions [23]; 5 <— llpartitions[21];
……, 等等。
以存储节点 Ν2为例, Partition32原本是存储节点 6上的分区, 由于存储 节点 6发生故障, 所以数据只能从保存有它的数据备份的存储节点 N9或 N10 上迁移, 所以制定任务时, 显示的是最终迁移数据的分区所在的存储节点, 比 如, 上述任务中显示的为存储节点 N9。 此外, 需说明的是, 一个存储节点可 以从另一个存储节点中偷多个数据备份, 比如 4 < -- 8 partitions[15,23,24]表示 存储节点 N4从存储节点 N8上偷三个分区: partitionl5 (即 P15 )、 partition 23 ( P23 ) ^ partition 24 ( ^ P24 ) 的数据。
205、 并发执行总迁移任务队列中的数据迁移任务, 以进行数据重建; 例 ^口, H"5f以: ¾口下:
首先, 确定当前需要偷数据的存储节点, 其次, 确定属于当前需要偷数据 的存储节点的数据迁移任务, 然后,执行属于当前需要偷数据的存储节点的数 据迁移任务, 以进行数据重建。
例如, 在本实施例的例子中, 偷数据的存储节点一共有 8个, 分别是 N2, N3 , N4, N5 , N8, N9, N10和 Nil , 比如, 对于存储节点 N2来说, 它共有 四个数据迁移任务: 2 <—- 9 partitions[32]、 2 <— 8 partitions[23] , 2 <— 10 partitions[30]和 2 < -- 5 partitions [5]。 因此, 如果确定存储节点 N2为当前需要 偷数据的存储节点, 则将属于存储节点 N2的这四个数据迁移任务并发执行, 其他存储节点的确定方法与此相同, 在此不再赘述。
此外, 除了上述所说的存储节点内部的数据迁移任务需要并发执行之外, 各个存储节点之间也可以并发执行, 即并行处理 N2, N3 , N4, N5 , N8, N9, 誦和 Nil。
206、 确定有新的数据迁移列表时, 根据新的数据迁移列表和路由表信息 对数据迁移任务进行整合,得到整合后的数据迁移任务,将整合后的数据迁移 任务加入到总迁移任务队列, 并发执行总迁移任务队列中的任务, 即返回执行 步骤 205; 具体可以如下:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息(包括 更新后的路由表信息和更新前的路由表信息)确定新的需要数据迁移的存储节 点, 并生成新的数据迁移任务, 然后确定该新的需要数据迁移的存储节点是否 为原数据迁移任务中的偷数据的存储节点和 /或贡献数据的存储节点, 根据确 定的结果分别进行如下处理:
( 1 )若仅为原数据迁移任务中的偷数据的存储节点, 则此时将会涉及到 两类任务, 第一类是该存储节点自身的数据需要恢复, 第二类是该存储节点上 还没偷完的数据需要移到其他存储节点上来偷,故此时可进行如下操作来对数 据迁移任务进行整合:
删除原数据迁移任务中关于该 "新的需要数据迁移的存储节点"的数据迁 移任务, 保留关于该 "新的需要数据迁移的存储节点" 的新的数据迁移任务;
( 2 )若仅为原数据迁移任务中的贡献数据的存储节点, 则此时将会涉及 到两类任务, 第一类是该存储节点自身的数据需要恢复, 第二类是原本从该存 储节点上偷数据的存储节点需要移到其他存储节点上去偷数据,故此时可进行 如下操作来对数据迁移任务进行整合:
为原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据 的存储节点, 重新选择新的贡献数据的节点, 以新的贡献数据的节点替换原数 据迁移任务中的 "新的需要数据迁移的存储节点", 保留关于该 "新的需要数 据迁移的存储节点" 的新的数据迁移任务;
( 3 )若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储 节点,则此时将会涉及到三类任务,第一类是该存储节点自身的数据需要恢复, 第二类是该存储节点上还没偷完的数据需要移到其他存储节点上来偷,第三类 是原本从该存储节点上偷数据的存储节点需要移到其他存储节点上去偷数据, 故此时可进行如下操作来对数据迁移任务进行整合:
删除原数据迁移任务中以该 "新的需要数据迁移的存储节点"作为偷数据 的存储节点的数据迁移任务; 为原数据迁移任务中需要到该 "新的需要数据迁 移的存储节点"上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的 贡献数据的节点替换原数据迁移任务中的该 "新的需要数据迁移的存储节点 "; 保留关于该 "新的需要数据迁移的存储节点" 的新的数据迁移任务;
( 4 )若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的 存储节点,则此时将只涉及到一类任务,即对该存储节点自身的数据进行恢复, 故此时可进行如下操作来对数据迁移任务进行整合:
保留关于该 "新的需要进行数据迁移的存储节点" 的新的数据迁移任务。 例如, 当步骤 205中的单个任务 rebalanceTaskl还没有执行完时, 集群中 又有新的存储节点发生故障, 则会触发一个新的任务 rebalanceTask2。 以下以 存储节点 N2发生故障为例进行说明。
如图 2d所示, 该图为存储节点 N2发生故障后, 经过分区调整所得到的 各存储节点和分区的映射关系示意图(即第二次分区调整后所得到的各存储节 点和分区的映射关系示意图), 反映出存储节点 N2发生故障后, 存储节点 N2 上的分区迁移到其他正常存储节点上后, 各个存储节点上分区的变化。
由图 2d中可以看出, 存储节点 N2的分区由于全部迁移到其他正常的存 储节点上去, 所以它的分区列表为空。 分区调整后各个存储节点和分区的映射 关系具体可以如下:
N1 ( );
N2 ( );
N3 (3, Γ, 2, 11, 9,, 10", 33, 36', 35", 17, 7,, 8", 12', 32^_ 301);
N4 (4, 2,, 3": 12, 10,, 11", 34, 33', 36", 1, 15,, 24", 31', 23, 1", 8,);
N5 ( 3', 4, 13, 11', 12", 31, 30,, 29", 9, 21', 16", 7, 2, 24,); N6 ( );
N7 ( );
N8 (8, 6,, 7", 16, 14,, 15", 24, 22', 23", 22, 20,, 13,, 21 _ 18, 21);
N9 (25, 28,, 27", 29, 32', 31", 19, 17,, 18", 14, 13', 26", 22 36, 161);
N10 (26, 25,, 28", 30, 29,, 32", 20, 18,, 19", 6, 27,, 34", 6' 15, 5% 17");
Nil (27, 26,, 25, 21, 19,, 20", 35, 34,, 33", 28, 4,, 14, 35,, 10, 23,); N12 ( )。
其中,下划线部分为存储节点 N2故障后,各个存储节点又新增的分区(即 第二次分区调整后的所增加的分区), 需说明的是, 粗体字体但没有下划线的 数字表示第一次分区调整后的增加的分区, 详见步骤 202。
由于发生故障的存储节点 N2既是偷数据的存储节点, 又是贡献数据的存 储节点, 而且, 由于在其发生故障后, N2上的任务都需要发生变化, 所以此 时将会涉及到三类任务: 第一类是 N 2上自身的数据需要恢复, 第二类是 N 2 上还没有偷完的数据需要转移到其他存储节点来偷,第三类是原本从存储节点 2上偷数据的存储节点需要转移到其他存储节点上偷数据。
对于第一类任务来说, 可根据第一次分区调整结果来恢复存储节点 N2自 身的数据。根据第一次调整分区后得到的存储节点和分区的对应关系可知,存 储节点 N2自身的数据包括 9个分区, 即需要恢复 partition[2, 8,, 1" , 10, 16,, 9" , 18, 24,, 17,,]的数据, 此处可得到的数据迁移任务为:
4 <- -- 3 partitions[l];
4 <- -- 8 partitions [8];
5 <- -- 4 partitions [2];
5 <- -- 8 partitions [24];
8< - -3 partitions [9];
8 <- — 10 partitions [18];
9 <- -- 8partitions[16];
10 <— 9 partitions [17];
11 <— 3 partitions [10]。
对于第二类任务来说, 可根据第二次分区调整结果来恢复存储节点 N2中 需要偷数据的分区中的数据, 也即是原数据迁移任务(即 rebalanceTaskl ) 中 需要迁移的数据。根据第一次调整分区后得到的存储节点和分区的对应关系可 知, 存储节点 N2上需要偷数据的分区有四个, 即需要恢复 partition[32, 23' , 30" , 5,]的数据。 此时可对应存储节点 N2发生故障后分区的变化情况, 直接 将 rebalanceTaskl中的任务取消, 变成 rebalanceTask2中的第二类任务, 这样 既不会造成数据迁移任务的失败,数据也没有丟失。 即此处可得到的数据迁移 任务为:
3 <— 9 partitions [32];
11 < - 10partitions[30] ;
3 <— 8 partitions [23];
10 <— 8 partitions[5]。
对于第三类来说, 原本从存储节点 N2上偷数据的存储节点需要转移到其 他存储节点上偷数据, 比如, rebalanceTaskl中的任务 5 <-— 2 partitions [ 16]需 要将存储节点 N2更改为正常的存储节点 N8, 即变成 5 < - 8 partitions[16 将这三类任务的重新组合, 即组成了整合后的数据迁移任务, 即 rebalanceTask2 , 如下:
4 <- - 8 partitions [8];
5 < - - 4 partitions [2];
5 < - - 8 partitions [24];
8<― 3 partitions [9];
8 <-- - 10 partitions [18];
9 <-- - 8partitions[16];
10 < - ― 9 partitions [17];
11 < - ― 3 partitions [10];
3 <-- - 9 partitions [32];
11 < - ― 10partitions[30] ;
3 <-- - 8 partitions [23];
10 < - ― 8 partitions[5];
5 < - - 8 partitions [16]
将 rebalanceTask2中的任务, 直接加入到总迁移任务队列, 并发执行总迁 移任务队列中的任务, 即返回执行步骤 205。
需说明的是, 虽然存储节点和分区的映射关系发生了变化,但由于客户端 在写入或读取数据时只需确定分区的所在位置,并不关心分区是属于哪个存储 节点, 所以, 在存储节点故障后, 并发执行数据迁移任务时, 读写流程并不会 受影响。 以下将对此作筒略说明。 (一 )写入流程 ( Put流程 )
以存储节点 D为例, 存储节点 D故障后, 迁移它的分区到新的存储节点 C上的整个写入流程具体可以如下:
步骤 Al、 客户端请求写入(key=abc, value=lll )的数据, 对该 key后进 行哈希运算(Hash )后, 得到 Hash值为 6, 由于原始的分区总数是 16个, 所 以, 根据 Hash值对分区总数 "16" 取模后, 可得到数值 6, 于是可以确定需 要将数据写入分区 P6, 从而可以建立起 key和分区的映射关系。 以此类推, 其他 key值也可如此建立起和分区的映射关系, 在此不再赘述。
在确定需要将数据写入分区 P6之后, 通过查找路由表信息后发现, 分区 P6在存储节点 D上, 所以请求的(key=abc, value=lll )的数据可写入存储节 点0。
步骤 A2、 若存储节点 D发生故障, 无法进行通信, 则此时会制定的数据 迁移任务, 将存储节点 D上的分区迁移到其他正常的存储节点上, 并更新路 由表信息, 比如, 将分区 P6迁移到存储节点 C上, 并更新路由表信息。
步骤 A3、客户端获取到更新后的路由表信息, 确定分区 P6在存储节点 C 上, 于是将数据写入到存储节点 C上。
可见, 虽然存储节点和分区的映射关系发生了变化,且需要执行数据迁移 任务以进行数据重建, 但对于客户端请求写入(key=abc, value=lll )的数据, 仍然可以成功地写入到存储节点 C上, 并不受影响。
(二)读取流程 (即 Get流程 )
还是以存储节点 D为例, 存储节点 D故障后, 迁移它的分区到新的存储 节点 C上的整个读取流程具体可以如下:
步骤 Bl、 客户端请求读取(key=abc, value=lll )的数据, 对该 key进行 哈希运算(Hash )后, 得到 Hash值为 6, 由于原始的分区总数是 16个, 所以, 根据 Hash值对分区总数 "16" 取模后, 可得到数值 6, 于是可以确定可以从 分区 P6上读取到相应的数据, 从而可以建立起 key和分区的映射关系。 以此 类推, 其他 key值也可如此建立起和分区的映射关系, 在此不再赘述。
在确定可以从分区 P6上读取到数据之后, 通过查找路由表信息后发现分 区 P6在存储节点 D上, 所以请求的 (key=abc, value=lll ) 的数据可在存储 节点 D上得到。
步骤 B2、 若存储节点 D发生故障, 无法进行通信, 则此时会制定的数据 迁移任务, 将存储节点 D上的分区迁移到其他正常的存储节点上, 并更新路 由表信息, 比如, 将分区 P6迁移到存储节点 C上, 并更新路由表信息。
其中, 分区 P6的数据备份存储在存储节点 B上, 因此, 存储节点 C需要 从存储节点 B上偷数据。
步骤 B3、客户端获取到更新后的路由表信息, 确定分区 P6在存储节点 C 上, 于是从存储节点 C上读取到需要的数据, 而存储节点 C上分区 P6的数据 需要从存储节点 B上迁移过来(即从存储节点 B上偷数据)。 此时, 在读取的 时候, 可能存储节点 C还正在进行数据迁移, 存储节点 B上的数据还尚未全 部迁移到存储节点 C上, 所以, 可能从存储节点 C上读取不到分区 P6上的数 据, 但此时可以将该读取请求重定向到存储节点 B上, 使得客户端仍然可以 正确访问到相应的数据。
可见, 虽然存储节点和分区的映射关系发生了变化,且需要执行数据迁移 任务以进行数据重建, 但对于客户端请求读取(key=abc, value=lll )的数据, 仍然可以成功地读取到, 并不受影响。
由上可知, 本发明实施例通过并发的执行数据迁移任务,提升了数据的恢 复速度, 从而提高数据重建的效率。 而且, 在确定有新的数据迁移列表时, 还 可以根据新的数据迁移列表和路由表信息对数据迁移任务进行整合,将相同的 迁移任务取消,从而避免数据迁移任务的重复,在保证数据迁移任务不会因为 存储节点的故障而执行失败的同时, 大大减少了数据迁移的时间, 进一步提高 了数据重建的效率。 进一步的, 在进行该数据重建的过程中, 还不会影响到读 写请求操作, 保证了存储系统的可靠性。 实施例三、
为了更好地实施以上方法, 本发明实施例还相应地提供一种数据重建设 备, 可以作为存储系统的客户端, 如图 3所示, 该数据重建设备包括获取单元 301、 生成单元 302和执行单元 303;
获取单元 301 , 用于获取数据迁移列表, 其中, 数据迁移列表指示需要数 据迁移的存储节点上需要数据迁移的分区; 生成单元 302, 用于根据路由表信息和获取单元 301获取到的数据迁移列 表生成数据迁移任务, 其中,路由表信息指示集群中存储节点和分区的映射关 系;
执行单元 303 , 用于并发执行集群中存储节点的数据迁移任务, 以进行数 据重建。
此外, 可选的, 如果在进行数据重建的过程中, 又有新的存储节点发生故 障, 则此时需要获取新的数据迁移列表,根据新的数据迁移列表和路由表信息 对数据迁移任务进行整合,得到整合后的数据迁移任务, 然后再并发执行整合 后的数据迁移任务, 以进行数据重建。 即:
所述生成单元 302, 还用于确定有新的数据迁移列表时, 根据新的数据迁 移列表和路由表信息对数据迁移任务进行整合, 得到整合后的数据迁移任务; 则所述执行单元, 用于并发执行集群中存储节点的整合后的数据迁移任 务, 以进行数据重建; 例如, 具体可以根据数据迁移任务从贡献数据的存储节 点上将备份数据复制到该当前需要偷数据的存储节点上,参见前面的方法实施 例, 在此不再赘述。
其中, 获取单元 301可以包括获取子单元、调整子单元、 更新子单元和确 定子单元;
获取子单元, 用于获取集群中存储节点的状态信息;
其中,存储节点的状态信息又称为同步心跳信息,如果在一定的时间窗内 没有该存储节点的状态信息, 则可认为该存储节点处于临时故障状态; 如果持 续故障时间达到了系统设定的时间, 比如 X小时, 则认为该存储节点处于永 久故障状态
调整子单元,用于根据获取子单元获取到的存储节点的状态信息对分区进 行调整;
更新子单元, 用于根据分区的调整情况更新路由表信息, 其中, 该路由表 信息指示集群中存储节点和分区的映射关系, 此外, 该路由表还可以指示每个 存储节点的状态信息;
确定子单元,用于根据更新子单元更新后的路由表信息和更新前的路由表 信息确定数据迁移列表。 其中,调整子单元, 具体用于在预设的时间内未收到存储节点的状态信息 时,确定该存储节点为故障存储节点, 将故障存储节点上的分区迁移到其他正 常的存储节点上, 则此时, 该 "其他正常的存储节点" 则称为需要数据迁移的 存储节点。
其中, 生成单元 302具体可以包括处理子单元和生成子单元;
处理子单元, 用于根据数据迁移列表确定当前需要数据迁移的存储节点, 作为偷数据的存储节点;通过查找路由表信息确定该当前需要数据迁移的存储 节点上的分区的备份数据所在的存储节点;从该备份数据所在的存储节点中选 择存储节点, 以作为贡献数据的存储节点;
生成子单元,用于根据所述处理子单元确定的偷数据的存储节点和贡献数 据的存储节点生成数据迁移任务。
此外, 生成单元 302可以包括生成子单元和整合子单元;
生成子单元, 用于确定有新的数据迁移列表时,根据新的数据迁移列表确 定新的需要数据迁移的存储节点, 并生成新的数据迁移任务;
整合子单元,用于确定该新的需要数据迁移的存储节点是否为原数据迁移 任务中的偷数据的存储节点和 /或贡献数据的存储节点, 然后进行如下操作: 若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中 关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需 要数据迁移的存储节点的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中 需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的 贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需 要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数 据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点, 则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的 存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移 的存储节点上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的贡献 数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留 关于所述新的需要数据迁移的存储节点的新的数据迁移任务;
若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储 节点, 则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任 务。
需说明的是, 虽然存储节点和分区的映射关系发生了变化,但由于客户端 在写入或读取数据时只需确定分区的所在位置,并不关心分区是属于哪个存储 节点, 所以, 在存储节点故障后, 执行单元 303在并发执行数据迁移任务时, 读写流程并不会受影响, 具体可参见实施例二中的说明, 在此不再赘述。
具体实施时, 以上各个单元可以作为独立的实体来实现,也可以进行任意 组合,作为同一或若干个实体来实现, 以上各个单元的具体实施可参见前面的 方法实施例, 在此不再赘述。
由上可知,本实施例的数据重建设备的获取单元 301可以获取数据迁移列 表, 然后由生成单元 302根据数据迁移列表和路由表信息生成数据迁移任务, 再由执行单元 303 并发执行集群中存储节点的数据迁移任务, 以进行数据重 建,由于可以并发地执行数据迁移任务,所以可以提高数据重建的效率,而且, 在确定有新的数据迁移列表时,还可以由整合子单元根据新的数据迁移列表对 数据迁移任务进行整合, 以删除相同的数据迁移任务, 所以, 可以避免数据迁 移任务的重复, 大大减少了数据迁移的时间, 提高了数据重建的效率。 进一步 的, 在进行该数据重建的过程中, 还不会影响到读写请求操作, 保证了存储系 统的可靠性。 实施例四、
相应的, 本发明实施例还提供一种存储系统, 可以包括本发明实施例提供 的任一种数据重建设备, 其中, 该数据重建设备的说明具体可参见实施例三, 在此不再赘述。 例如, 具体可以如下:
数据重建设备, 用于获取数据迁移列表, 所述数据迁移列表指示需要数据 迁移的存储节点上需要数据迁移的分区;根据数据迁移列表和路由表信息生成 数据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关系; 并发 执行集群中存储节点的数据迁移任务, 以进行数据重建。 比如, 具体可以根据 该数据迁移任务从贡献数据的存储节点上将备份数据复制到该当前需要偷数 据的存储节点上, 具体可参见前面的方法实施例, 在此不再赘述。 可选的, 如果在进行数据重建的过程中, 又有新的存储节点发生故障, 则 此时需要获取新的数据迁移列表,据新的数据迁移列表和路由表信息对数据迁 移任务进行整合,得到整合后的数据迁移任务, 然后再并发执行集群中存储节 点的整合后的数据迁移任务, 以进行数据重建。 即:
数据重建设备,还用于确定有新的数据迁移列表时,根据新的数据迁移列 表和路由表信息对数据迁移任务进行整合,得到整合后的数据迁移任务; 并发 执行集群中存储节点的整合后的数据迁移任务, 以进行数据重建。
其中, 获取数据迁移列表具体可以包括:
获取集群中存储节点的状态信息;根据存储节点的状态信息对分区进行调 整; 根据分区的调整情况更新路由表信息, 其中, 该路由表信息指示存储节点 和分区的映射关系;根据更新后的路由表信息和更新前的路由表信息确定数据 迁移列表。 其中, 该路由表还可以指示每个存储节点的状态信息。
其中, 根据存储节点的状态信息对分区进行调整具体可以如下:
若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障 存储节点; 将故障存储节点上的分区迁移到其他正常的存储节点上。
其中, 根据数据迁移列表生成数据迁移任务具体可以如下:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储 节点;通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的 备份数据所在的存储节点; 从该备份数据所在的存储节点中选择存储节点, 以 作为贡献数据的存储节点;根据所述偷数据的存储节点和贡献数据的存储节点 生成数据迁移任务。
此外, 该存储系统还可以包括一个或多个存储节点;
存储节点,用于存储数据,以及接受数据重建设备的分区调整和数据迁移。 以上各个设备的具体实施可参见前面的实施例, 在此不再赘述。
由上可知, 本实施例的数据重建设备可以获取数据迁移列表, 然后根据数 据迁移列表和路由表信息生成数据迁移任务,再并发地执行数据迁移任务, 以 进行数据重建, 由于可以并发地执行集群中存储节点的数据迁移任务, 所以可 以提高数据重建的效率, 而且, 在确定有新的数据迁移列表时, 还可以根据新 的数据迁移列表和路由表信息对数据迁移任务进行整合,以删除相同的数据迁 移任务, 所以, 可以避免数据迁移任务的重复, 大大减少了数据迁移的时间, 提高了数据重建的效率。 进一步的, 在进行该数据重建的过程中, 还不会影响 到读写请求操作, 保证了存储系统的可靠性。 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: 只读存储器(ROM, Read Only Memory ), 随机存取记忆体(RAM, Random Access Memory ) , 磁盘或光盘等。
以上对本发明实施例所提供的一种数据重建方法、装置和系统进行了详细 施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本领域 的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之 处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims

权 利 要 求
1、 一种数据重建方法, 其特征在于, 包括:
获取数据迁移列表,所述数据迁移列表指示需要数据迁移的存储节点上需 要数据迁移的分区;
根据所述数据迁移列表和路由表信息生成数据迁移任务,所述路由表信息 指示集群中存储节点和分区的映射关系;
并发执行所述集群中存储节点的数据迁移任务, 以进行数据重建。
2、 根据权利要求 1所述的方法, 其特征在于, 所述根据所述数据迁移列 表和路由表信息生成数据迁移任务, 包括:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息对数据 迁移任务进行整合, 得到整合后的数据迁移任务;
则所述并发执行所述集群中存储节点的数据迁移任务,以进行数据重建包 括:并发执行所述集群中存储节点的整合后的数据迁移任务,以进行数据重建。
3、 根据权利要求 1或 2所述的方法, 其特征在于, 所述获取数据迁移列 表, 包括:
获取集群中存储节点的状态信息;
根据存储节点的状态信息对分区进行调整;
根据分区的调整情况更新所述路由表信息;
根据更新后的路由表信息和更新前的路由表信息确定所述数据迁移列表。
4、 根据权利要求 3所述的方法, 其特征在于, 所述获取集群中存储节点 的状态信息, 根据存储节点的状态信息对分区进行调整, 包括:
若在预设的时间内未收到存储节点的状态信息,则确定该存储节点为故障 存储节点;
将故障存储节点上的分区迁移到其他正常的存储节点上。
5、 根据权利要求 2至 4任一项所述的方法, 其特征在于, 所述根据数据 迁移列表和路由表信息生成数据迁移任务, 包括:
根据数据迁移列表确定当前需要数据迁移的存储节点,作为偷数据的存储 节点;
通过查找路由表信息确定所述当前需要数据迁移的存储节点上的分区的 备份数据所在的存储节点;
从所述备份数据所在的存储节点中选择存储节点,以作为贡献数据的存储 节点;
根据所述偷数据的存储节点和贡献数据的存储节点生成数据迁移任务。
6、 根据权利要求 5所述的方法, 其特征在于, 所述并发执行所述集群中 存储节点的数据迁移任务, 以进行数据重建, 包括:
根据所述数据迁移任务从贡献数据的存储节点上将备份数据复制到所述 当前需要偷数据的存储节点上。
7、 根据权利要求 5或 6所述的方法, 其特征在于, 所述确定有新的数据 迁移列表时, 根据新的数据迁移列表和路由表信息对数据迁移任务进行整合, 得到整合后的数据迁移任务, 包括:
确定有新的数据迁移列表时,根据新的数据迁移列表和路由表信息确定新 的需要数据迁移的存储节点, 并生成新的数据迁移任务;
确定所述新的需要数据迁移的存储节点是否为原数据迁移任务中的偷数 据的存储节点和 /或贡献数据的存储节点;
若仅为原数据迁移任务中的偷数据的存储节点,则删除原数据迁移任务中 关于所述新的需要数据迁移的存储节点的数据迁移任务,保留关于所述新的需 要数据迁移的存储节点的新的数据迁移任务;
若仅为原数据迁移任务中的贡献数据的存储节点,则为原数据迁移任务中 需要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的 贡献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需 要数据迁移的存储节点,保留关于所述新的需要数据迁移的存储节点的新的数 据迁移任务;
若既是原数据迁移任务中的偷数据的存储节点又是贡献数据的存储节点, 则删除原数据迁移任务中以所述新的需要数据迁移的存储节点作为偷数据的 存储节点的数据迁移任务;为原数据迁移任务中需要到所述新的需要数据迁移 的存储节点上偷数据的存储节点, 重新选择新的贡献数据的节点, 以新的贡献 数据的节点替换原数据迁移任务中的所述新的需要数据迁移的存储节点;保留 关于所述新的需要数据迁移的存储节点的新的数据迁移任务; 若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的存储 节点, 则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移任 务。
8、 一种数据重建设备, 其特征在于, 包括:
获取单元, 用于获取数据迁移列表, 所述数据迁移列表指示需要数据迁移 的存储节点上需要数据迁移的分区;
生成单元,用于根据路由表信息和获取单元获取到的数据迁移列表生成数 据迁移任务, 所述路由表信息指示集群中存储节点和分区的映射关系;
执行单元, 用于并发执行所述集群中存储节点的数据迁移任务, 以进行数 据重建。
9、 根据权利要求 8所述的数据重建设备, 其特征在于,
所述生成单元,还用于确定有新的数据迁移列表时,根据新的数据迁移列 表和路由表信息对数据迁移任务进行整合, 得到整合后的数据迁移任务; 则所述执行单元, 用于并发执行集群中存储节点的整合后的数据迁移任 务, 以进行数据重建。
10、 根据权利要求 8或 9所述的数据重建设备, 其特征在于, 所述获取单 元包括:
获取子单元, 用于获取集群中存储节点的状态信息;
调整子单元,用于根据获取子单元获取到的存储节点的状态信息对分区进 行调整;
更新子单元, 用于根据分区的调整情况更新所述路由表信息;
确定子单元,用于根据更新子单元更新后的路由表信息和更新前的路由表 信息确定数据迁移列表。
11、 根据权利要求 10所述的数据重建设备, 其特征在于,
所述调整子单元, 具体用于在预设的时间内未收到存储节点的状态信息 时,确定该存储节点为故障存储节点, 将故障存储节点上的分区迁移到其他正 常的存储节点上。
12、 根据权利要求 8至 11中任一项所述的数据重建设备, 其特征在于, 所述生成单元包括: 处理子单元, 用于根据数据迁移列表确定当前需要数据迁移的存储节点, 作为偷数据的存储节点;通过查找路由表信息确定所述当前需要数据迁移的存 储节点上的分区的备份数据所在的存储节点;从所述备份数据所在的存储节点 中选择存储节点, 以作为贡献数据的存储节点;
生成子单元,用于根据所述处理子单元确定的偷数据的存储节点和贡献数 据的存储节点生成数据迁移任务。
13、 根据权利要求 12所述的数据重建设备, 其特征在于,
所述执行单元,具体用于根据所述数据迁移任务从贡献数据的存储节点上 将备份数据复制到所述当前需要偷数据的存储节点上。
14、 根据权利要求 12或 13所述的数据重建设备, 其特征在于, 所述生成 单元包括:
生成子单元, 用于确定有新的数据迁移列表时,根据新的数据迁移列表确 定新的需要数据迁移的存储节点, 并生成新的数据迁移任务;
整合子单元,用于确定所述新的需要数据迁移的存储节点是否为原数据迁 移任务中的偷数据的存储节点和 /或贡献数据的存储节点; 若仅为原数据迁移 任务中的偷数据的存储节点,则删除原数据迁移任务中关于所述新的需要数据 迁移的存储节点的数据迁移任务,保留关于所述新的需要数据迁移的存储节点 的新的数据迁移任务; 若仅为原数据迁移任务中的贡献数据的存储节点, 则为 原数据迁移任务中需要到所述新的需要数据迁移的存储节点上偷数据的存储 节点, 重新选择新的贡献数据的节点, 以新的贡献数据的节点替换原数据迁移 任务中的所述新的需要数据迁移的存储节点,保留关于所述新的需要数据迁移 的存储节点的新的数据迁移任务;若既是原数据迁移任务中的偷数据的存储节 点又是贡献数据的存储节点,则删除原数据迁移任务中以所述新的需要数据迁 移的存储节点作为偷数据的存储节点的数据迁移任务;为原数据迁移任务中需 要到所述新的需要数据迁移的存储节点上偷数据的存储节点,重新选择新的贡 献数据的节点,以新的贡献数据的节点替换原数据迁移任务中的所述新的需要 数据迁移的存储节点;保留关于所述新的需要数据迁移的存储节点的新的数据 迁移任务;若既不是原数据迁移任务中的偷数据的存储节点也不是贡献数据的 存储节点,则保留关于所述新的需要进行数据迁移的存储节点的新的数据迁移 任务。
15、 一种存储系统, 其特征在于, 包括权利要求 8至 14所述的任一种数 据重建设备。
PCT/CN2012/070983 2012-02-09 2012-02-09 一种数据重建方法、装置和系统 WO2013117002A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201280000110.7A CN103354923B (zh) 2012-02-09 2012-02-09 一种数据重建方法、装置和系统
PCT/CN2012/070983 WO2013117002A1 (zh) 2012-02-09 2012-02-09 一种数据重建方法、装置和系统
EP12867962.8A EP2784675B1 (en) 2012-02-09 2012-02-09 Method, device and system for data reconstruction
US14/456,690 US9904599B2 (en) 2012-02-09 2014-08-11 Method, device, and system for data reconstruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/070983 WO2013117002A1 (zh) 2012-02-09 2012-02-09 一种数据重建方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/456,690 Continuation US9904599B2 (en) 2012-02-09 2014-08-11 Method, device, and system for data reconstruction

Publications (1)

Publication Number Publication Date
WO2013117002A1 true WO2013117002A1 (zh) 2013-08-15

Family

ID=48946897

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2012/070983 WO2013117002A1 (zh) 2012-02-09 2012-02-09 一种数据重建方法、装置和系统

Country Status (4)

Country Link
US (1) US9904599B2 (zh)
EP (1) EP2784675B1 (zh)
CN (1) CN103354923B (zh)
WO (1) WO2013117002A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580432A (zh) * 2014-12-23 2015-04-29 上海帝联信息科技股份有限公司 memcached系统及内存缓存数据提供、维护和集群维护方法及装置
CN105227602A (zh) * 2014-06-20 2016-01-06 北京新媒传信科技有限公司 一种负载均衡的方法、客户端、注册服务器和系统
CN105447112A (zh) * 2015-11-12 2016-03-30 国云科技股份有限公司 一种实现关系数据库Hash分区高效扩展的方法
CN106817307A (zh) * 2015-11-27 2017-06-09 佛山市顺德区顺达电脑厂有限公司 用于丛集式储存系统的路由方法
US11842063B2 (en) 2022-03-25 2023-12-12 Ebay Inc. Data placement and recovery in the event of partition failures

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751533B1 (en) * 2009-11-25 2014-06-10 Netapp, Inc. Method and system for transparently migrating storage objects between nodes in a clustered storage system
JP6213130B2 (ja) * 2013-10-09 2017-10-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US10271997B2 (en) 2014-04-08 2019-04-30 The Procter & Gamble Company Absorbent articles having substrates having zonal treatments
CA2941163C (en) 2014-11-05 2019-04-16 Huawei Technologies Co., Ltd. Data processing method and apparatus
SG11201703220SA (en) * 2014-11-06 2017-05-30 Huawei Tech Co Ltd Distributed storage and replication system and method
CN105786405B (zh) * 2016-02-25 2018-11-13 华为技术有限公司 一种在线升级方法、装置及系统
US10198461B2 (en) * 2016-05-06 2019-02-05 Masergy Communications, Inc. Data storage system
US10404798B2 (en) 2016-05-16 2019-09-03 Carbonite, Inc. Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services
US10116629B2 (en) 2016-05-16 2018-10-30 Carbonite, Inc. Systems and methods for obfuscation of data via an aggregation of cloud storage services
US11100107B2 (en) 2016-05-16 2021-08-24 Carbonite, Inc. Systems and methods for secure file management via an aggregation of cloud storage services
US10356158B2 (en) 2016-05-16 2019-07-16 Carbonite, Inc. Systems and methods for aggregation of cloud storage
US10264072B2 (en) * 2016-05-16 2019-04-16 Carbonite, Inc. Systems and methods for processing-based file distribution in an aggregation of cloud storage services
CN106599308B (zh) * 2016-12-29 2020-01-31 郭晓凤 一种分布式元数据管理方法及系统
CN106973091B (zh) * 2017-03-23 2020-06-05 中国工商银行股份有限公司 分布式内存数据重分布方法及系统、主控服务器
US10936453B2 (en) * 2017-09-19 2021-03-02 Seagate Technology Llc Data storage systems using elastic spares
US10740156B1 (en) * 2018-02-22 2020-08-11 Amazon Technologies, Inc. Reversible representation-based partitioning of distributed computing environments
US10452296B1 (en) 2018-03-23 2019-10-22 Amazon Technologies, Inc. Accelerated volumes
US11023157B2 (en) * 2018-04-30 2021-06-01 Amazon Technologies, Inc. Intermediary duplication to facilitate copy requests in distributed storage systems
US11343314B1 (en) 2018-04-30 2022-05-24 Amazon Technologies, Inc. Stream-based logging for distributed storage systems
US10459655B1 (en) * 2018-04-30 2019-10-29 Amazon Technologies, Inc. Rapid volume backup generation from distributed replica
US10768850B2 (en) 2018-04-30 2020-09-08 Amazon Technologies, Inc. Distributed replica for block storage systems
US10931750B1 (en) 2018-07-30 2021-02-23 Amazon Technologies, Inc. Selection from dedicated source volume pool for accelerated creation of block data volumes
US10956442B1 (en) 2018-07-30 2021-03-23 Amazon Technologies, Inc. Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
CN110866606B (zh) * 2018-08-28 2023-06-20 阿里巴巴集团控股有限公司 数据信息、点餐语音指令的处理方法及装置
US10713138B2 (en) 2018-11-08 2020-07-14 International Business Machines Corporation Failure detection for central electronics complex group management
CN109901953B (zh) * 2019-02-14 2022-07-08 新华三技术有限公司成都分公司 数据重构方法及装置
US11068192B1 (en) 2019-03-26 2021-07-20 Amazon Technologies, Inc. Utilizing mutiple snapshot sources for creating new copy of volume in a networked environment wherein additional snapshot sources are reserved with lower performance levels than a primary snapshot source
US10983719B1 (en) 2019-03-28 2021-04-20 Amazon Technologies, Inc. Replica pools to support volume replication in distributed storage systems
CN111857543A (zh) * 2019-04-26 2020-10-30 伊姆西Ip控股有限责任公司 用于数据迁移的方法、设备和计算机程序产品
CN110162517A (zh) * 2019-05-30 2019-08-23 深圳前海微众银行股份有限公司 数据迁移方法、装置、设备及计算机可读存储介质
US11256671B2 (en) * 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
CN111400241B (zh) * 2019-11-14 2024-04-05 杭州海康威视系统技术有限公司 数据重构方法和装置
CN115113798B (zh) * 2021-03-17 2024-03-19 中国移动通信集团山东有限公司 一种应用于分布式存储的数据迁移方法、系统及设备
US11526286B1 (en) 2021-06-29 2022-12-13 Amazon Technologies, Inc. Adaptive snapshot chunk sizing for snapshots of block storage volumes
CN113515364B (zh) * 2021-09-14 2022-03-01 腾讯科技(深圳)有限公司 一种数据迁移的方法及装置、计算机设备和存储介质
CN116860527A (zh) * 2023-07-10 2023-10-10 江苏博云科技股份有限公司 在Kubernetes环境下使用本地存储的容器的迁移方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679000A (zh) * 2002-06-24 2005-10-05 网络装置公司 在raid数据重建和转移中使用文件系统信息
CN101154146A (zh) * 2006-09-29 2008-04-02 株式会社日立制作所 数据迁移方法以及信息处理系统
CN101436149A (zh) * 2008-12-19 2009-05-20 华中科技大学 磁盘阵列数据重建方法
CN102033794A (zh) * 2011-01-10 2011-04-27 中国电子科技集团公司第五十二研究所 一种flash固态盘数据冗余保护方法
US20110191389A1 (en) * 2005-07-28 2011-08-04 Vmware, Inc. Distributed data management system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685129B1 (en) * 2004-06-18 2010-03-23 Emc Corporation Dynamic data set migration
US7702850B2 (en) * 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US7702947B2 (en) * 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US8140695B2 (en) * 2005-12-12 2012-03-20 International Business Machines Corporation Load balancing and failover of distributed media resources in a media server
JP4923990B2 (ja) * 2006-12-04 2012-04-25 株式会社日立製作所 フェイルオーバ方法、およびその計算機システム。
WO2008102195A1 (en) 2007-02-22 2008-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (dht) overlay network
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8055933B2 (en) * 2009-07-21 2011-11-08 International Business Machines Corporation Dynamic updating of failover policies for increased application availability
CN102033804A (zh) * 2009-09-29 2011-04-27 国际商业机器公司 辅助内存分析的方法和系统
US8290919B1 (en) * 2010-08-27 2012-10-16 Disney Enterprises, Inc. System and method for distributing and accessing files in a distributed storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679000A (zh) * 2002-06-24 2005-10-05 网络装置公司 在raid数据重建和转移中使用文件系统信息
US20110191389A1 (en) * 2005-07-28 2011-08-04 Vmware, Inc. Distributed data management system
CN101154146A (zh) * 2006-09-29 2008-04-02 株式会社日立制作所 数据迁移方法以及信息处理系统
CN101436149A (zh) * 2008-12-19 2009-05-20 华中科技大学 磁盘阵列数据重建方法
CN102033794A (zh) * 2011-01-10 2011-04-27 中国电子科技集团公司第五十二研究所 一种flash固态盘数据冗余保护方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2784675A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105227602A (zh) * 2014-06-20 2016-01-06 北京新媒传信科技有限公司 一种负载均衡的方法、客户端、注册服务器和系统
CN104580432A (zh) * 2014-12-23 2015-04-29 上海帝联信息科技股份有限公司 memcached系统及内存缓存数据提供、维护和集群维护方法及装置
CN105447112A (zh) * 2015-11-12 2016-03-30 国云科技股份有限公司 一种实现关系数据库Hash分区高效扩展的方法
CN106817307A (zh) * 2015-11-27 2017-06-09 佛山市顺德区顺达电脑厂有限公司 用于丛集式储存系统的路由方法
US11842063B2 (en) 2022-03-25 2023-12-12 Ebay Inc. Data placement and recovery in the event of partition failures

Also Published As

Publication number Publication date
EP2784675B1 (en) 2016-12-28
US20140351636A1 (en) 2014-11-27
US9904599B2 (en) 2018-02-27
CN103354923A (zh) 2013-10-16
EP2784675A1 (en) 2014-10-01
EP2784675A4 (en) 2014-11-26
CN103354923B (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
WO2013117002A1 (zh) 一种数据重建方法、装置和系统
US10176064B2 (en) Granular consistency group replication
US9928003B2 (en) Management of writable snapshots in a network storage device
TWI307035B (en) Method and system for backing up remote mirror data on internet
US20220091771A1 (en) Moving Data Between Tiers In A Multi-Tiered, Cloud-Based Storage System
US9454446B2 (en) System and method for using local storage to emulate centralized storage
JP6341543B2 (ja) 分散型記憶システム管理装置および方法
US9031906B2 (en) Method of managing data in asymmetric cluster file system
CN106302607B (zh) 应用于云计算的块存储系统及方法
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
WO2014205847A1 (zh) 一种分区平衡子任务下发方法、装置与系统
US7996611B2 (en) Backup data management system and backup data management method
US11836513B2 (en) Transitioning volumes between storage virtual machines
CN107018185B (zh) 云存储系统的同步方法和装置
US20220103622A1 (en) Commissioning and decommissioning metadata nodes in a running distributed data storage system
JP2016530608A (ja) ミラーリングされるデータサイト間のデータの複製
JP2014534482A (ja) ストレージシステム、管理計算機、ストレージ装置及びデータ管理方法
JP6196389B2 (ja) 分散型ディザスタリカバリファイル同期サーバシステム
US10592453B2 (en) Moving from back-to-back topology to switched topology in an InfiniBand network
JP6227771B2 (ja) 論理ボリュームを管理するためのシステム及び方法
CN115955488B (zh) 基于副本冗余的分布式存储副本跨机房放置方法与装置
JP2019537774A (ja) マルチサイト複製をサポートする一貫性ハッシュ構成
US9460126B1 (en) Rotational maintenance of database partitions
JP6845470B2 (ja) ストレージシステム
CN113965582B (zh) 一种模式转换方法和系统,及存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201280000110.7

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12867962

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2012867962

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012867962

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE