Method, electronic device and computer program product for storage management

By generating and maintaining a decentralized backup chain on the client, the security issues of traditional data backup methods are solved, ensuring the immutability and consistency of backup data, and improving the security and reliability of the storage system.

CN114528148BActive Publication Date: 2025-08-12EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011194832.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-30
Publication Date
2025-08-12
Estimated Expiration
2040-10-30

AI Technical Summary

Technical Problem

Traditional data backup methods have security problems. The backup data stored in the storage system may be tampered with, and the client may be directed to the forged storage server to obtain the forged backup data.

Method used

The backup block is generated at the client and backed up it to the first server and metadata to the second server, and the client maintains the same decentralized backup chain as at least one other client and the second server to ensure that the backup block cannot be tampered with.

Benefits of technology

By maintaining a decentralized backup chain, ensuring the security and consistency of backup blocks, avoiding data tampering or attacking, and improving storage security and reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114528148B_ABST
    Figure CN114528148B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to methods, electronic devices, and computer program products for storage management. According to an exemplary implementation of the present disclosure, a method for storage management includes: generating a first backup block for restoring first target data at a client, the client backing up the first target data to a first server and backing up metadata of the first target data to a second server, the client maintaining the same backup chain including at least one backup block with at least one other client and second server; adding the first backup block to the backup chain maintained at the client; and distributing the first backup block to at least one other client and second server for adding to the backup chain maintained at at least one other client and second server. Thus, storage security can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate generally to storage management, and more particularly to methods, electronic devices, and computer program products for storage management. Background Art

[0002] With the advancement of storage technology, more and more data is being backed up to storage systems to prevent data loss. This creates an increasingly demanding security requirement for storage systems. However, traditional data backup methods present various security issues. For example, backup data stored in storage systems can be tampered with, or clients can be directed to counterfeit storage servers, thereby obtaining forged backup data. Therefore, traditional data backup methods are insecure. Summary of the Invention

[0003] Embodiments of the present disclosure provide methods, electronic devices, and computer program products for storage management.

[0004] In a first aspect of the present disclosure, a method for storage management is provided. The method includes: generating, at a client, a first backup block for restoring first target data; the client backing up the first target data to a first server and backing up metadata of the first target data to a second server; the client maintaining the same backup chain including at least one backup block with at least one other client and second server; adding the first backup block to the backup chain maintained at the client; and distributing the first backup block to the at least one other client and second server for addition to the backup chain maintained at the at least one other client and second server.

[0005] In a second aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit and at least one memory. The at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the at least one processing unit executes the instructions, the device performs an action, the action including: generating a first backup block for restoring first target data at a client, the client backing up the first target data to a first server and backing up metadata of the first target data to a second server, the client maintaining the same backup chain including at least one backup block with at least one other client and second server; adding the first backup block to the backup chain maintained at the client; and distributing the first backup block to at least one other client and second server for adding to the backup chain maintained at at least one other client and second server.

[0006] In a third aspect of the present disclosure, a computer program product is provided, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions that, when executed, cause a machine to implement any step of the method described according to the first aspect of the present disclosure.

[0007] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the disclosure, nor is it intended to limit the scope of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of exemplary embodiments of the present disclosure with reference to the accompanying drawings, wherein like reference numerals generally represent like components throughout the exemplary embodiments of the present disclosure.

[0009] Figure 1 A schematic diagram illustrating an example of a storage system in which some embodiments of the present disclosure can be implemented;

[0010] Figure 2 A flowchart illustrating an example of a method for storage management according to some embodiments of the present disclosure;

[0011] Figure 3 A schematic diagram illustrating an example of a backup block according to some embodiments of the present disclosure;

[0012] Figure 4 a swim lane diagram illustrating an example of a data recovery process according to some embodiments of the present disclosure; and

[0013] Figure 5 A schematic block diagram of an example device that may be used to implement embodiments of the present disclosure is shown.

[0014] In the various drawings, the same or corresponding reference numerals denote the same or corresponding parts. DETAILED DESCRIPTION

[0015] The preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although preferred embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.

[0016] As used herein, the term "including" and its variations represent open inclusion, i.e., "including but not limited to." Unless otherwise stated, the term "or" means "and / or." The term "based on" means "based at least in part on." The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment." The term "another embodiment" means "at least one additional embodiment." The terms "first," "second," etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.

[0017] As mentioned above, with the development of storage technology, more and more data is being backed up to storage systems to prevent data loss. For example, with the development of cloud storage technology, more and more users tend to store large amounts of data in the cloud. Compared with dedicated storage, cloud storage is less expensive and easier to scale.

[0018] However, because traditional storage systems are typically designed for internal networks without considering the security protections of cloud environments, locating storage servers in the cloud creates potential security risks. For example, when accessing the cloud, clients might connect to a forged storage server (e.g., through a DNS (Domain Name System) rebinding attack) for backup and restore. In this case, the client would restore data using the forged backup data provided by the storage server, posing the risk of data tampering or attacks on the client.

[0019] According to an exemplary embodiment of the present disclosure, an improved storage management solution is proposed. In this solution, at a client, backup blocks for restoring target data are generated. The client backs up the target data to a first server and backs up metadata for the target data to a second server. The client maintains the same backup chain including at least one backup block with at least one other client and second server. The backup block is added to the backup chain maintained at the client. Finally, the backup block is distributed to at least one other client and second server for addition to the backup chain maintained at the at least one other client and second server.

[0020] In this way, in this solution, backup blocks are maintained in a tamper-proof backup chain jointly maintained by multiple clients and a second server, ensuring that the backup blocks cannot be tampered with. Such backup blocks can be used to verify the consistency of the backup data with the target data when restoring the target data, thereby improving storage security and reliability. The following will describe embodiments of the present disclosure in detail with reference to the accompanying drawings.

[0021] Figure 1A schematic diagram of an example of a storage system 100 in which some embodiments of the present disclosure can be implemented is shown. The storage system 100 includes a plurality of clients (e.g., clients 110-1 and 110-2, hereinafter collectively referred to as "clients 110"), a first server 130, and a second server 140. The clients and servers can be implemented as one or more computing devices, which contain at least a processor, a memory, and other components that are typically present in a general-purpose computer to implement computing, storage, communication, control, and the like. For example, the clients and servers can be personal computers, tablet computers, wearable devices, mainframes, distributed computing systems, and the like. It should be understood that although Figure 1 Only two clients 110 and 120 are shown in FIG, but the number of clients may be more or less.

[0022] Client 110 may back up target data stored thereon to a server. For example, client 110-1 may back up target data 111 to first server 130, thereby storing backup data 137 as a copy of target data 111 in first server 130. Furthermore, client 110-1 may also back up metadata 113 of target data 111 to second server 140, thereby storing backup metadata 147 as a copy of metadata 113 in second server 140.

[0023] In some embodiments, first server 130 may be a remote storage server, such as a storage server located in the cloud. Second server 140 may be a local storage server. Backing up metadata 147 locally can improve metadata security. Furthermore, due to the relatively small size of metadata, backing up only the metadata locally while backing up the target data to the lower-cost cloud can reduce storage costs.

[0024] In addition, the client 110 and the second server 140 can implement a blockchain called a backup chain, such as backup chains 115-1 to 115-3 (hereinafter collectively referred to as "backup chain 115"). The backup chain 115 may include multiple backup blocks, for example, the backup chain 115-1 may include backup blocks 117-1 and 117-2 (hereinafter collectively referred to as "backup block 117"). One backup block 117 may correspond to one backup. That is, the client 110 may generate one backup block 117 when performing a backup. The backup block 117 can be used to verify the backup data 137 when restoring the target data 111 to ensure the consistency of the target data 111 and the backup data 137. It should be understood that although Figure 1 Only the backup chain 115 - 1 is shown to include two backup blocks 117 - 1 and 117 - 2 , but the number of backup blocks 117 in the backup chain 115 may be more or less.

[0025] To implement backup chain 115, a connection, such as a peer-to-peer connection, can be established between client 110 and second server 140. Backup chain 115 is decentralized, so the client 110 and second server 140 maintaining backup chain 115 are both equivalent nodes. Through a consensus mechanism, client 110 and second server 140 can maintain the same backup chain 115. This backup chain 115 cannot be tampered with, thereby ensuring that the backup blocks 117 in backup chain 115 cannot be tampered with. Furthermore, because backup chain 115 is maintained locally by client 110 and second server 140, the security and reliability of backup chain 115 are further ensured.

[0026] As described above, backup chain 115 is composed of backup blocks 117, which are generated by client 110 when performing a backup. For example, when client 110-1 backs up target data 111, it can generate backup block 117-2 for restoring target data 111. Client 110-1 can add backup block 117-2 to backup chain 115-1 maintained by client 110-1. Furthermore, client 110-1 can distribute backup block 117-2 to at least one other client (e.g., client 110-2) and second server 140 for addition to backup chains maintained by at least one other client and second server 140 (e.g., backup chains 115-2 and 115-3). In this way, when restoring target data 111, client 110 can use backup block 117-2 to ensure that backup data 137 is consistent with target data 111, preventing data on client 110 from being tampered with or attacked, thereby improving storage security and reliability.

[0027] Figure 2 FIG. 2 is a flow chart showing a method 200 for storage management according to some embodiments of the present disclosure. The method 200 may be performed by: Figure 1 Alternatively, method 200 may also be implemented by other entities besides client 110. It should be understood that method 200 may further include additional steps not shown and / or may omit steps shown, and the scope of the present disclosure is not limited in this respect.

[0028] At 210, client 110 (e.g., client 110-1) generates a backup block (e.g., backup block 117-2) for restoring target data (e.g., target data 111). Client 110-1 maintains the same backup chain 115 including at least one backup block 117 with at least one other client (e.g., client 110-2) and second server 140. Client 110-1 backs up target data 111 to first server 130 and backs up metadata 113 of target data 111 to second server 140.

[0029] In some embodiments, client 110-1 may divide target data 111 into multiple data shards and store these data shards and their respective hash values in first server 130. Furthermore, client 110-1 may also store metadata 113 of target data 111 and the hash value of metadata 113 in second server 140. In this manner, source deduplication may be achieved. Source deduplication may have several advantages. Specifically, for duplicate data shards, the client only needs to send the hash value of the data shard to the storage server, without having to send the data shard itself, thereby significantly reducing network traffic used during the backup process and improving backup efficiency. Furthermore, since the same data shard only has one copy in the storage server, storage space may be saved.

[0030] Figure 3 A schematic diagram 300 is shown showing an example of backup blocks according to some embodiments of the present disclosure. Hereinafter, backup blocks 117-1 and 117-2 in backup chain 115-1 will be described as an example of backup blocks.

[0031] Backup block 117 may include the number of backup block 117 in backup chain 115, a random value, a hash value of the backup block preceding backup block 117 in backup chain 115, and / or the hash value of backup block 117. In some embodiments, the random value may be a randomly generated value unique to each backup block 117. Furthermore, because backup block 117 includes the hash value of the backup block preceding it, the backup block preceding it can be found by using one backup block, allowing the backup blocks to form a locatable backup chain 115. For example, because backup block 117-2 includes the hash value of its predecessor, backup block 117-1, backup block 117-1 can be located by using backup block 117-2. In some embodiments, because no backup block precedes the first backup block in backup chain 115 (e.g., backup block 117-1), the hash value of the backup block preceding it may be set to a predetermined value (e.g., null).

[0032] Furthermore, the backup block 117 may also include a hash value of the target data 111, file path information for the target data 111, and a hash value of at least one file in the target data 110. In some embodiments, the file path information may indicate a storage path of at least one file in the target data 110 on the client 110.

[0033] Return Reference Figure 2At 220, client 110-1 adds backup block 117-2 to backup chain 115-1 maintained at client 110-1. At 230, client 110-1 distributes backup block 117-2 to at least one other client and second server 140 for addition to backup chain 115 maintained at at least one other client and second server 140.

[0034] In addition to adding backup blocks 117, client 110 can also delete backup blocks 117. In certain embodiments, if client 110 determines that a request to delete backup blocks 117 has been received, client 110 can delete backup blocks 117 from the backup chain 115 maintained by it. Furthermore, client 110 can also send a request to at least one other client and second server 140 to delete backup blocks 117 from the backup chains 115 maintained by these clients and second servers 140. Furthermore, when a backup block is deleted from the backup chain, the subsequent backup block will become connected to or reference the previous backup block. Therefore, the hash value of the previous backup block included in the subsequent backup block will also change from the hash value of the deleted backup block to the hash value of the previous backup block.

[0035] In some embodiments, for security purposes, only adding and deleting the backup blocks 117 is allowed, but not modifying the backup blocks 117 , thereby preventing a malicious third party from destroying the backup blocks 117 .

[0036] In this way, when the target data 111 is restored using the secure backup block 117 , it can be ensured that the backup data 137 is consistent with the target data 111 , thereby preventing the client 110 from being tampered with or attacked, thereby improving storage security and reliability.

[0037] The generation process of the backup block is described above, and the following will refer to Figure 4 Describes the process of restoring target data using backup blocks. Figure 4 A swim lane diagram illustrating an example of a data recovery process 400 according to some embodiments of the present disclosure is shown. The process 400 may be performed by Figure 1 The process 400 is implemented by the client 110 and the first server 130 shown. Alternatively, the process 400 may be implemented by other entities besides the client 110 and the first server 130. It should be understood that the process 400 may further include additional steps not shown and / or may omit the steps shown, and the scope of the present disclosure is not limited in this respect.

[0038] Client 110 (e.g., client 110-1) may send 410 a restore request for target data 111 to first server 130. It should be understood that target data 111 is merely an example of data to be restored, and client 110 may restore any target data that has been backed up. After receiving the restore request, first server 130 may determine 415 backup data 137 stored on first server 130 that corresponds to target data 111 based on the restore request. First server 130 may then determine a hash value for backup data 137 and send 420 the hash value of backup data 137 to client 110.

[0039] The client 110 can receive the hash value of the backup data 137 from the first server 130, and based on the hash value of the backup data 137, select 425 a backup block (e.g., backup block 117-2) from the backup chain 117, where the hash value of the target data 111 included in the backup block 117-2 matches the hash value of the backup data 137.

[0040] Client 110 can obtain backup data 137 for target data 111 from first server 130 based on backup block 117-2. Thus, client 110 can restore target data 111 based on backup data 137. In some embodiments, target data 111 may include a target file to be restored. In this case, to obtain backup data 137, client 110 can extract the storage path of the target file on client 110 from backup block 117-2 and send 430 information indicating the storage path to first server 130.

[0041] After receiving the information indicating the storage path, the first server 130 may determine 435 a backup file corresponding to the target file in the storage path and stored on the first server 130 based on the storage path. The first server 130 may then determine a hash value for the backup file and send 440 the hash value for the backup file to the client 110.

[0042] Client 110 may receive a hash value of the backup file from first server 130 and determine 445 whether the received hash value of the backup file matches a hash value of the target file included in backup block 117. If the received hash value of the backup file matches the hash value of the target file included in backup block 117, client 110 may send 450 a file restore request to first server 130.

[0043] After receiving the file restore request, the first server 130 may determine 455 that the backup file is to be restored based on the file restore request and send 460 the backup file to the client 110. After receiving the backup file from the first server 130, the client 110 may restore 465 the target file using the backup file.

[0044] In some embodiments, the client 110 may further verify the restored target file. For example, the client 110 may generate a hash value for the restored target file and determine whether the hash value for the restored target file matches the hash value for the target file included in the backup block 170. If the hash value for the restored target file matches the hash value for the target file included in the backup block 117, the client 110 may determine that the target file has been successfully restored.

[0045] In this way, since the secure backup blocks are used for verification during the data recovery process, it can be ensured that the recovered data has not been tampered with, thereby improving storage security and reliability.

[0046] Figure 5 1 shows a schematic block diagram of an example device 500 that can be used to implement embodiments of the present disclosure. Figure 1 The client 110, the first server 130, and the second server 140 shown can be implemented by a device 500. As shown, the device 500 includes a central processing unit (CPU) 510, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 520 or computer program instructions loaded from a storage unit 580 into a random access memory (RAM) 530. Various programs and data required for the operation of the device 500 can also be stored in the RAM 530. The CPU 510, the ROM 520, and the RAM 530 are connected to each other via a bus 540. An input / output (I / O) interface 550 is also connected to the bus 540.

[0047] Various components in device 500 are connected to I / O interface 550, including an input unit 560, such as a keyboard, mouse, etc.; an output unit 570, such as various types of displays, speakers, etc.; a storage unit 580, such as a magnetic disk, optical disk, etc.; and a communication unit 590, such as a network card, modem, wireless communication transceiver, etc. The communication unit 590 allows device 500 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0048] The various processes and processing described above, such as processes 200 and 400, may be performed by processing unit 510. For example, in some embodiments, processes 200 and 400 may be implemented as a computer software program that is tangibly embodied in a machine-readable medium, such as storage unit 580. In some embodiments, part or all of the computer program may be loaded and / or installed onto device 500 via ROM 520 and / or communication unit 590. When the computer program is loaded into RAM 530 and executed by CPU 510, one or more actions of processes 200 and 400 described above may be performed.

[0049] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.

[0050] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.

[0051] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.

[0052] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0053] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0054] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine such that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0055] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0056] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.

[0057] While various embodiments of the present disclosure have been described above, the foregoing description is intended to be illustrative, non-exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or technical improvements to existing technologies, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for storage management, comprising: At a client, generating a first backup block for restoring first target data, the client backing up the first target data to a first storage server and backing up metadata of the first target data to a second storage server, the client maintaining the same backup chain including at least one backup block with at least one other client and the second storage server; adding the first backup block to the backup chain maintained by the client; as well as Distribute the first backup block to the at least one other client and the second storage server for adding the first backup block to the backup chain maintained by the at least one other client and the second storage server, wherein the first backup block includes a hash value of a backup block that precedes the first backup block in the backup chain.

2. The method according to claim 1, wherein the first backup block comprises at least one of the following: The number of the first backup block in the backup chain, Random values, the hash value of the first backup block, A hash value of the first target data, file path information for the first target data, the file path information indicating a storage path of at least one file in the first target data on the client, and A hash value of each of the at least one file.

3. The method according to claim 1, further comprising: Dividing the first target data into multiple data slices; Storing the multiple data shards and the hash values of the multiple data shards in the first storage server; as well as The metadata of the first target data and the hash value of the metadata are stored in the second storage server.

4. The method according to claim 1, further comprising: If it is determined that a request to delete the first backup block is received, deleting the first backup block from the backup chain maintained by the client; as well as A request is sent to the at least one other client and the second storage server to delete the first backup block from the backup chain maintained by the at least one other client and the second storage server.

5. The method according to claim 1, further comprising: Sending a recovery request for second target data to the first storage server; receiving a hash value of backup data for the second target data from the first storage server; Based on the received hash value of the backup data, selecting a second backup block from the backup chain, wherein the hash value of the second target data included in the second backup block matches the received hash value of the backup data; Based on the second backup block, obtaining the backup data for the second target data from the first storage server; as well as The second target data is restored based on the backup data.

6. The method according to claim 5, wherein the second target data comprises a target file to be restored, and obtaining the backup data comprises: Extracting the storage path of the target file on the client from the second backup block; Sending information indicating the storage path to the first storage server; receiving a hash value of a backup file for the target file from the first storage server; If it is determined that the received hash value of the backup file matches the hash value of the target file included in the second backup block, sending a file recovery request to the first storage server; as well as The backup file is received from the first storage server.

7. The method according to claim 6, further comprising: Generate a hash value of the restored target file; Determine whether the hash value of the restored target file matches the hash value of the target file included in the second backup block, If the restored hash value of the target file matches the hash value of the target file included in the second backup block, it is determined that the target file is restored successfully.

8. An electronic device comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions that, when executed by the at least one processing unit, cause the apparatus to perform actions comprising: At a client, generating a first backup block for restoring first target data, the client backing up the first target data to a first storage server and backing up metadata of the first target data to a second storage server, the client maintaining the same backup chain including at least one backup block with at least one other client and the second storage server; adding the first backup block to the backup chain maintained by the client; and Distribute the first backup block to the at least one other client and the second storage server for adding the first backup block to the backup chain maintained by the at least one other client and the second storage server, wherein the first backup block includes a hash value of a backup block that precedes the first backup block in the backup chain.

9. The device according to claim 8, wherein the first backup block comprises at least one of the following: The number of the first backup block in the backup chain, Random values, the hash value of the first backup block, A hash value of the first target data, file path information for the first target data, the file path information indicating a storage path of at least one file in the first target data on the client, and A hash value of each of the at least one file.

10. The apparatus of claim 8, wherein the actions further comprise: Dividing the first target data into multiple data slices; Storing the multiple data shards and the hash values of the multiple data shards in the first storage server; as well as The metadata of the first target data and the hash value of the metadata are stored in the second storage server.

11. The apparatus of claim 8, wherein the actions further comprise: If it is determined that a request to delete the first backup block is received, deleting the first backup block from the backup chain maintained by the client; as well as A request is sent to the at least one other client and the second storage server to delete the first backup block from the backup chain maintained by the at least one other client and the second storage server.

12. The apparatus of claim 8, wherein the actions further comprise: Sending a recovery request for second target data to the first storage server; receiving a hash value of backup data for the second target data from the first storage server; Based on the received hash value of the backup data, selecting a second backup block from the backup chain, wherein the hash value of the second target data included in the second backup block matches the received hash value of the backup data; Based on the second backup block, obtaining the backup data for the second target data from the first storage server; as well as The second target data is restored based on the backup data.

13. The apparatus according to claim 12, wherein the second target data comprises a target file to be restored, and obtaining the backup data comprises: Extracting the storage path of the target file on the client from the second backup block; Sending information indicating the storage path to the first storage server; receiving a hash value of a backup file for the target file from the first storage server; If it is determined that the received hash value of the backup file matches the hash value of the target file included in the second backup block, sending a file recovery request to the first storage server; as well as The backup file is received from the first storage server.

14. The apparatus of claim 13, wherein the actions further comprise: Generate a hash value of the restored target file; Determine whether the hash value of the restored target file matches the hash value of the target file included in the second backup block, If the restored hash value of the target file matches the hash value of the target file included in the second backup block, it is determined that the target file is restored successfully.

15. A non-transitory computer-readable medium comprising machine-executable instructions that, when executed by a machine, cause the machine to perform actions comprising: At a client, generating a first backup block for restoring first target data, the client backing up the first target data to a first storage server and backing up metadata of the first target data to a second storage server, the client maintaining the same backup chain including at least one backup block with at least one other client and the second storage server; adding the first backup block to the backup chain maintained by the client; as well as Distribute the first backup block to the at least one other client and the second storage server for adding the first backup block to the backup chain maintained by the at least one other client and the second storage server, wherein the first backup block includes a hash value of a backup block that precedes the first backup block in the backup chain.

16. The computer-readable medium of claim 15, wherein the first backup block comprises at least one of the following: The number of the first backup block in the backup chain, Random values, the hash value of the first backup block, A hash value of the first target data, file path information for the first target data, the file path information indicating a storage path of at least one file in the first target data on the client, and A hash value of each of the at least one file.

17. The computer-readable medium of claim 15, wherein the actions further comprise: Dividing the first target data into multiple data slices; Storing the multiple data shards and the hash values of the multiple data shards in the first storage server; as well as The metadata of the first target data and the hash value of the metadata are stored in the second storage server.

18. The computer-readable medium of claim 15, wherein the actions further comprise: If it is determined that a request to delete the first backup block is received, deleting the first backup block from the backup chain maintained by the client; as well as A request is sent to the at least one other client and the second storage server to delete the first backup block from the backup chain maintained by the at least one other client and the second storage server.

19. The computer-readable medium of claim 15, wherein the actions further comprise: Sending a recovery request for second target data to the first storage server; receiving a hash value of backup data for the second target data from the first storage server; Based on the received hash value of the backup data, selecting a second backup block from the backup chain, wherein the hash value of the second target data included in the second backup block matches the received hash value of the backup data; Based on the second backup block, obtaining the backup data for the second target data from the first storage server; as well as The second target data is restored based on the backup data.

20. The computer-readable medium of claim 19, wherein the second target data comprises a target file to be restored, and obtaining the backup data comprises: Extracting the storage path of the target file on the client from the second backup block; Sending information indicating the storage path to the first storage server; receiving a hash value of a backup file for the target file from the first storage server; If it is determined that the received hash value of the backup file matches the hash value of the target file included in the second backup block, sending a file recovery request to the first storage server; as well as The backup file is received from the first storage server.

21. The computer-readable medium of claim 20, wherein the actions further comprise: Generate a hash value of the restored target file; Determine whether the hash value of the restored target file matches the hash value of the target file included in the second backup block, If the restored hash value of the target file matches the hash value of the target file included in the second backup block, it is determined that the target file is restored successfully.

Citation Information

Patent Citations

  • Data organization method for backup services

    CN101814045A

  • Data backup and recovery method, backup server and source server

    CN109976942A