Repeated volume deletion space management method and device

By maintaining four mapping tables in a multi-controller storage system and reducing the subvolume space of a single storage controller in real time, the problem of not being able to reduce the global deduplication volume space in real time is solved, improving the space reclamation efficiency and data deduplication efficiency of the storage pool and saving storage resources.

CN121029634AActive Publication Date: 2025-11-28LANGCHAO ELECTRONIC INFORMATION IND CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202511564326.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-30
Publication Date
2025-11-28
Estimated Expiration
2045-10-30

AI Technical Summary

Technical Problem

Existing multi-controller storage systems cannot achieve real-time space reduction in global deduplication volume space management, which affects the space reclamation efficiency of the storage pool.

Method used

By maintaining four mapping tables for each storage controller in a multi-controller storage system, namely , , , and , and upon receiving a space reclamation request, the system determines the logical address to be reclaimed, queries the target physical address, and deletes the mapping relationship in the corresponding mapping table, thereby enabling real-time reduction of the sub-volume space corresponding to a single storage controller.

Benefits of technology

It improves the space reclamation efficiency of global deduplication volumes, enhances the space reclamation efficiency of storage pools, reduces data storage space, and saves storage device resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121029634A_ABST
    Figure CN121029634A_ABST
Patent Text Reader

Abstract

The invention discloses a deduplicated volume space management method and device, and relates to the technical field of computers, and the method comprises the steps: when any storage controller in a multi-control storage system receives a deduplicated volume space recovery request, determining a to-be-recovered logic address corresponding to the space recovery request, and from lt; the logic address points to the physical address gt; querying a target physical address corresponding to the to-be-recycled logical address in the mapping table, and obtaining the to-be-recycled logical address through the first storage controller to which the target physical address belongs; the physical address points to the logic address gt; and deleting the to-be-recovered logical address corresponding to the target physical address in the second mapping table, and after the to-be-recovered logical address is successfully deleted, performing space recovery on the sub-volume corresponding to the target physical address in the re-deleted volume, so that the sub-volume space corresponding to the single storage controller can be reduced in real time, and the storage capacity of the storage controller is improved. And the whole space of the deduplicated volume does not need to be recycled, so that the space recycling efficiency of the deduplicated volume is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computers, in particular to a deduplicated volume space management method and device. BACKGROUND

[0002] At present, deduplication has become a standard function of multi-control storage systems and is a key technology for reducing storage costs. Deduplication is a coarse-grained compression technology. Due to lower computing overhead, deduplication can find repeated data units (data blocks or files) in the entire storage system, and thus has higher compression efficiency than traditional byte-level compression technologies.

[0003] At present, in order to improve the data deduplication rate, a multi-control storage system usually deploys a global deduplication technology among multiple controllers, and divides a part of a storage pool as an initial space of a global deduplicated volume, and sets a number (i.e., a volume number) for the storage space. As data is continuously written, the storage pool continuously allocates storage space to the global deduplicated volume. In the space management of the global deduplicated volume, how to realize real-time space reduction of the global deduplicated volume is one of the problems to be solved. However, in the current space recycling of the global deduplicated volume, the entire global deduplicated volume is recycled at one time, and the occupied space of the global deduplicated volume cannot be reduced in real time, thereby affecting the space recycling efficiency of the storage pool. SUMMARY

[0004] Therefore, the present application aims to provide a deduplicated volume space management method and device, which can reduce the space of a sub-volume corresponding to a single storage controller in real time, without recycling the space of the entire deduplicated volume, thereby effectively improving the space recycling efficiency of the global deduplicated volume and further improving the space recycling efficiency of the storage pool. The specific scheme is as follows: In a first aspect, the present application discloses a deduplicated volume space management method applied to any storage controller in a multi-control storage system, comprising: receiving a space recycling request for a target deduplicated volume, and determining a to-be-recycled logical address corresponding to the space recycling request; querying a target physical address corresponding to the to-be-recycled logical address from a first mapping table; the first mapping table is used to record the mapping relationship between different logical addresses and different physical addresses; determining a first storage controller to which the target physical address belongs, and sending the space recycling request, the to-be-recycled logical address, and the target physical address to the first storage controller, so as to delete the to-be-recycled logical address corresponding to the target physical address from a second mapping table of the first storage controller based on the type of the space recycling request; the second mapping table is used to record the mapping relationship between different physical addresses and different logical addresses; When a first deletion success response for the to-be-recovered logical address is received, space recovery is performed on the sub-volume corresponding to the target physical address in the target deduplicated volume.

[0005] In a second aspect, the present application discloses an electronic device, comprising a processor and a memory; wherein the processor implements the deduplicated volume space management method as described above when executing the computer program stored in the memory.

[0006] It can be seen that the present application is applied to any storage controller in a multi-control storage system. When a space recovery request for a target deduplicated volume is received, the to-be-recovered logical address corresponding to the space recovery request is determined first, then the target physical address corresponding to the to-be-recovered logical address is queried from the first mapping table, then the first storage controller to which the target physical address belongs is determined, and the space recovery request, the to-be-recovered logical address and the target physical address are sent to the first storage controller, so as to delete the to-be-recovered logical address corresponding to the target physical address from the second mapping table of the first storage controller based on the type of the space recovery request; the second mapping table is used to record the mapping relationship between different physical addresses and different logical addresses; when a first deletion success response for the to-be-recovered logical address is received, space recovery is performed on the sub-volume corresponding to the target physical address in the target deduplicated volume.

[0007] In the present application, when any storage controller in a multi-control storage system receives a deduplicated volume space recovery request, the to-be-recovered logical address corresponding to the current space recovery request is determined first, then the target physical address corresponding to the to-be-recovered logical address is queried from the first mapping table of <logical address pointing to physical address> created in advance, and the to-be-recovered logical address corresponding to the target physical address is deleted from the second mapping table of <physical address pointing to logical address> created in advance through the first storage controller to which the target physical address belongs, and finally, after the to-be-recovered logical address is deleted successfully, space recovery is performed on the sub-volume corresponding to the target physical address in the deduplicated volume. Through the above-mentioned manner, the space of the sub-volume corresponding to a single storage controller can be reduced in real time, without recovering the space of the entire deduplicated volume, thereby effectively improving the space recovery efficiency of the global deduplicated volume, and further improving the space recovery efficiency of the storage pool. BRIEF DESCRIPTION OF DRAWINGS

[0008] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description are only embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of the provided drawings.

[0009] Figure 1 A flow chart of a deduplicated volume space management method disclosed by the present application; Figure 2 A specific <logical address, physical address> mapping representation is intended for the present application disclosure; Figure 3 A specific sub-request recycling chain representation is intended for the present application disclosure; Figure 4 A specific <physical address, logical address> mapping representation is intended for the present application disclosure; Figure 5 A specific <physical address, hash value> mapping representation is intended for the present application disclosure; Figure 6 A specific deduplication volume space recycling flowchart is intended for the present application disclosure; Figure 7 A specific deduplication volume space management method flowchart is intended for the present application disclosure. DETAILED DESCRIPTION

[0010] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of the present application.

[0011] The embodiments of the present application disclose a deduplication volume space management method, which is applied to any storage controller in a multi-control storage system. Referring to FIG. 1, Figure 1 The method comprises the following steps. Step S11: receiving a space recycling request for a target deduplication volume, and determining a to-be-recycled logical address corresponding to the space recycling request.

[0012] It should be pointed out that the deduplication volume space management scheme proposed in the present application is applied to any storage controller in a multi-control storage system. The multi-control storage system refers to a storage system composed of multiple storage devices, each of which can include one or more storage controllers. The storage controller is the core component of the storage system, which is used for data transmission, data storage and data protection, etc.

[0013] It should be noted that before the space of the deduplication volume is reclaimed, the deduplication volume needs to be created first, wherein the deduplication volume is the sum of the sub-volumes corresponding to all storage controllers in the multi-control storage system, and the specific creation process includes: constructing a target hard disk into a redundant array of independent disks (RAID) through the multi-control storage system, integrating the redundant array of independent disks to obtain a storage pool, dividing a storage space of a preset space size from the storage pool, taking the storage space of the preset space size as the initial space of the target deduplication volume, segmenting the initial space to obtain a plurality of segmented spaces, and allocating the plurality of segmented spaces to the respective storage controllers in the multi-control storage system to obtain the sub-volumes corresponding to the respective storage controllers. It can be understood that the multi-control storage system usually constructs the hard disks into a plurality of RAID arrays according to a preset RAID algorithm, then uniformly integrates and manages these RAID arrays to form a "storage pool", thereby providing a unified storage space for the user, so that the storage device can be converted into a logical data storage. Among them, the storage pool (Storage Pool) refers to a group of local disks available for storage in the storage system, which can be composed of one or more RAID arrays. The storage pool is not only used to coordinate the overall function of the local storage device, but also responsible for managing these storage devices, coordinating the use of these devices, and integrating and comprehensively allocating the space of these devices. In addition, the storage pool hides the characteristics of each storage device, forms a unified model, and provides a virtual disk, that is, a "volume", for the user, thereby improving the resource utilization rate and flexibility, wherein the volume is a logical disk provided by the system to the connected host, and the application actually accesses the volume rather than directly accessing the hard disk. In the embodiment, the target hard disk can be first constructed into a plurality of RAID arrays through the multi-control storage system, then the RAID arrays are uniformly integrated to obtain a storage pool, a storage space of a preset space size is then divided from the storage pool and taken as the initial space of the target deduplication volume, and then the initial space can be segmented according to a preset segmentation manner (such as equal segmentation, a preset segmentation ratio, a priority based on the storage controller, etc.), to obtain a plurality of segmented spaces, and then the respective segmented spaces are allocated to the storage controllers in the multi-control storage system, thereby obtaining the sub-volumes corresponding to the respective storage controllers, such as the sub-volume 0 corresponding to the storage controller 0. By creating the sub-volumes for the respective storage controllers, it is convenient to subsequently reduce the sub-volume space corresponding to a single storage controller in real time, that is, to realize accurate sub-volume space reclamation.

[0014] It should be noted that each sub-volume in the present application maintains four mapping tables, which are <logical address, physical address> mapping table, <physical address, logical address> mapping table, <hash value, physical address> mapping table and <physical address, hash value> mapping table. Among them, the hash value is a value obtained by using a hash algorithm to calculate fixed-length data (such as 8KB data), the physical address is the storage location of 8KB data in the storage pool, and the logical address is the address presented to the user by the storage system. With continuous writing of data, the four mapping tables and the space of the deduplication volume are also constantly updated.

[0015] In the present embodiment, when any storage controller (such as storage controller 0) in the multi-control storage system receives a space recycling request for a target deduplication volume (i.e. a global deduplication volume), the logical address to be recycled corresponding to the space recycling request is first counted, that is, the logical address of the space to be reduced is counted.

[0016] Specifically, the space recycling request can be split according to a preset byte length to obtain a plurality of sub-recycling requests, and then the to-be-recycled logical addresses corresponding to each sub-recycling request are counted respectively. It can be understood that when a user needs to reduce the space of a global deduplicated volume, a space recycling request can be generated through an instruction or the like, each space recycling request covers a certain range of logical addresses, and the space recycling request is sent to a corresponding storage controller in the multi-control storage system. In a specific implementation, there are a total of 4 storage controllers in the multi-control storage system, namely: storage controller 0, storage controller 1, storage controller 2, and storage controller 3. When the storage controller 0 receives a space recycling request for a target deduplicated volume, the space recycling request is split into a plurality of sub-recycling requests according to the logical address range covered by the space recycling request with a granularity of 8 KB. Specifically, when the start LBA (Logical Block Address) of the to-be-recycled logical address range is Start_LBA and the end LBA is End_LBA, the number of sub-recycling requests that can be split is N = (End_LBA - Start_LBA) / 8, and the logical address range of the nth sub-recycling request is [Start_LBA + 8*n, Start_LBA + 8*(n+1)], n = 0, 1, 2, …, N-1. For example, when the to-be-recycled logical address range is 0-31 KB, i.e., the length is 32 KB, the number of sub-recycling requests that can be split is N = 32 / 8 = 4. The four sub-recycling requests can be named as sub-recycling request 0, sub-recycling request 1, sub-recycling request 2, and sub-recycling request 3, respectively. The logical address ranges corresponding to each sub-recycling request are [0, 7], [8, 15], [16, 23], and [24, 31], respectively. By splitting the space recycling request to obtain a plurality of sub-recycling requests, the subsequent recycling operation can be performed in parallel for the plurality of sub-recycling requests, thereby improving the efficiency of space recycling.

[0017] Step S12: querying the target physical address corresponding to the to-be-recycled logical address from the first mapping table; the first mapping table is used to record the mapping relationship of different logical addresses pointing to different physical addresses.

[0018] In this embodiment, after the to-be-recycled logical address corresponding to the space recycling request is determined, the target physical address corresponding to the to-be-recycled logical address can be queried from the first mapping table; the first mapping table (denoted as a <logical address, physical address> mapping table) is used to record the mapping relationship of different logical addresses pointing to different physical addresses.

[0019] It should be noted that since one logical address can only correspond to one physical address, the mapping relationship between the logical address and the physical address in the <logical address, physical address> mapping table is one-to-one.

[0020] Specifically, referring to Figure 2 As shown, if the to-be-recovered logical address is logical address 0, it is learned from entry 0 in the <logical address, physical address> mapping table that the target physical address corresponding to logical address 0 is physical address 0.

[0021] Step S13: determining the first storage controller to which the target physical address belongs, and sending the space recovery request, the to-be-recovered logical address and the target physical address to the first storage controller, so as to delete the to-be-recovered logical address corresponding to the target physical address from the second mapping table of the first storage controller based on the type of the space recovery request; the second mapping table is used to record the mapping relationship between different physical addresses and different logical addresses.

[0022] In this embodiment, after the target physical address (physical address 0) corresponding to the to-be-recovered logical address (such as logical address 0) is queried from the first mapping table (i.e. the <logical address, physical address> mapping table), further, the storage controller corresponding to the target physical address (physical address 0) is determined, i.e. the first storage controller (such as storage controller 1) to which the physical address 0 belongs, and then the space recovery request, the to-be-recovered logical address (logical address 0) and the target physical address (physical address 0) are sent to the first storage controller (i.e. storage controller 1).

[0023] Then, when the first storage controller (i.e. storage controller 1) receives the space recovery request, the to-be-recovered logical address (such as logical address 0) and the target physical address (physical address 0), the type of the space recovery request is first analyzed, if the request type is a recovery request type, the to-be-recovered logical address (logical address 0) corresponding to the target physical address (physical address 0) is deleted from the second mapping table (denoted as <physical address, logical address> mapping table) located in the first storage controller (i.e. storage controller 1); wherein the second mapping table (<physical address, logical address> mapping table) is used to record the mapping relationship between different physical addresses and different logical addresses.

[0024] In another embodiment, if the request type obtained after analysis is a non-recovery request type (such as a read request type or a write request type), corresponding data read / write operation is performed.

[0025] Specifically, determining the first storage controller to which the target physical address belongs can include: counting the number of storage controllers in a multi-controller storage system to obtain the total number of controllers; performing a modulo operation on the target physical address and the total number of controllers to obtain the controller number of the first storage controller to which the target physical address belongs; and determining the first storage controller based on the controller number. For example, when there are 4 storage controllers in the multi-controller storage system, performing a modulo operation on the target physical address (physical address 0) and the total number of controllers (i.e., 4) to obtain the controller number of the first storage controller (storage controller 1), specifically calculated as: controller number = physical address 0 % 4. The first storage controller (storage controller 1) to which the target physical address (physical address 0) belongs can be directly determined by the calculated controller number.

[0026] In this embodiment, deleting the logical address to be reclaimed corresponding to the target physical address from the second mapping table of the first storage controller can specifically include: storing the sub-reclaimment request in the sub-reclaimment list corresponding to the first storage controller; querying the total number of logical addresses corresponding to each sub-reclaimment request in the sub-reclaimment list from the second mapping table of the first storage controller; the total number of logical addresses is the total number of different logical addresses corresponding to a single physical address; reordering the multiple sub-reclaimment requests in the sub-reclaimment list according to the total number of logical addresses in descending order to obtain sorted reclamation requests; and deleting the logical addresses corresponding to each sub-reclaimment request in the sorted reclamation requests from the second mapping table according to a preset priority. For example, sub-reclaimment request 0 can be stored in the sub-reclaimment list (sub_req_list) corresponding to the first storage controller (storage controller 1), see [link to relevant documentation]. Figure 3 As shown, the sub-recycling request list (sub_req_list) includes sub-recycling request k (i.e., sub_req k), sub-recycling request c (i.e., sub_req c), sub-recycling request a (i.e., sub_reqa), ..., sub-recycling request 0 (i.e., sub_req 0) in sequence. Next, the total number of logical addresses corresponding to each sub-recycling request in the sub-recycling request list is queried from the second mapping table (<physical address, logical address> mapping table) located in the first storage controller (storage controller 1). It should be noted that since one physical address can correspond to multiple logical addresses, the physical address and logical address in the <physical address, logical address> mapping table have a one-to-many mapping relationship. To facilitate obtaining the number of logical addresses corresponding to a single physical address, statistical information on the number of logical addresses can be added to the second mapping table (<physical address, logical address> mapping table), that is, the total number of different logical addresses corresponding to a single physical address. For example, see [link to documentation]. Figure 4As shown, when the target physical address corresponding to the sub-recovery request 0 is physical address 0, it can be known through querying entry 0 in the second mapping table (<physical address, logical address> mapping table) that the logical addresses corresponding to the physical address 0 include logical address 0, logical address 1, …, logical address k, and the number of all logical addresses corresponding to the physical address 0 can also be directly known from the mapping table. Further, the plurality of sub-recovery requests in the sub-request recovery chain table (sub_req_list) are reordered in descending order of the total number of logical addresses corresponding to each sub-recovery request (sub_req), to obtain reordered recovery requests, and the logical addresses corresponding to each sub-recovery request in the reordered recovery requests are deleted from the second mapping table (<physical address, logical address> mapping table) according to the preset priority, for example, the logical address 0 corresponding to the sub-recovery request 0 (sub_req 0) in the reordered recovery request is deleted from the second mapping table. In addition, the total number of corresponding logical addresses in the second mapping table after deletion also needs to be updated. In this embodiment, all received sub-recovery requests are uniformly managed by the sub-request recovery chain table, and the second mapping table (<physical address, logical address> mapping table) for querying the logical address not only records the mapping relationship between the physical address and the logical address, but also records the total number of all logical addresses corresponding to a single physical address. In this way, the total number of logical addresses can be used to facilitate subsequent recovery operations on different sub-recovery requests, thereby meeting more flexible volume space recovery scenarios and improving the space recovery rate of the entire deduplication volume.

[0027] Specifically, storing the sub-recovery request into the sub-request recovery chain table corresponding to the first storage controller can include: identifying the request type of the currently received sub-recovery request to obtain a sub-request type; if the sub-request type is a recovery request type, storing the sub-recovery request into the sub-request recovery chain table corresponding to the first storage controller. In this embodiment, considering that the storage controller can not only be used for data recovery operation, but also can perform other data operations such as data transmission, data read / write and data protection, etc., when receiving a sub-recovery request, the type of the request can be identified first, if the request type is a recovery request type (i.e. a request for performing a recovery operation), the corresponding sub-recovery request (sub_req) is stored into the sub-request recovery chain table (sub_req_list) corresponding to the first storage controller (storage controller 1).

[0028] Specifically, the querying the total number of logical addresses corresponding to each of the sub-recovery requests in the sub-request recovery chain table from the second mapping table of the first storage controller respectively can include: querying the total number of logical addresses corresponding to each of the sub-recovery requests in the sub-request recovery chain table from the second mapping table of the first storage controller according to a preset period; and correspondingly, deleting the logical addresses corresponding to each of the sub-recovery requests in the sorted recovery request from the second mapping table according to a preset priority, which can specifically include: deleting the logical addresses corresponding to each of the sub-recovery requests in the sorted recovery request from the second mapping table in order from small to large according to the total number of logical addresses. For example, every five minutes, the storage controller 1 reorders all the sub-recovery requests (sub_req) in the sub-request recovery chain table (sub_req_list) according to the total number of logical addresses corresponding to each of the sub-recovery requests (sub_req) in the sub-request recovery chain table (sub_req_list), and then processes the sub-recovery request with the smallest total number of logical addresses first. Assuming that the sub-recovery request 0 has the smallest total number of logical addresses, the logical address 0 corresponding to the sub-recovery request 0 is deleted from the second mapping table first. By obtaining the total number of logical addresses from the second mapping table and reordering the sub-recovery requests in the sub-request recovery chain table based on the total number of logical addresses, and deleting the corresponding logical addresses in the second mapping table in order from small to large according to the total number of logical addresses, the request with a relatively small amount of tasks can be processed first, thereby improving the efficiency of the overall logical address deletion operation and the user experience.

[0029] Further, after sequentially deleting the logical addresses corresponding to each of the sub-recovery requests in the sorted recovery request from the second mapping table, it can further include: determining whether the second mapping table has a logical address corresponding to the target physical address; and if the second mapping table has a logical address corresponding to the target physical address, sending a first successful deletion response for the to-be-recovered logical address to any storage controller. In this embodiment, after the corresponding logical address in the second mapping table is deleted (such as the logical address 0 corresponding to the physical address 0), it can be determined based on the total number of logical addresses corresponding to the physical address 0 whether the second mapping table has a logical address corresponding to the target physical address (physical address 0). If the second mapping table has a logical address corresponding to the target physical address (physical address 0), that is, the total number of logical addresses corresponding to the physical address 0 is not 0, a successful deletion response for the to-be-recovered logical address (logical address 0) can be sent to the storage controller 0.

[0030] In another specific embodiment, the method further comprises: if the target logical address corresponding to the target physical address does not exist in the second mapping table, querying a target hash value corresponding to the target physical address from a third mapping table located in the first storage controller; the third mapping table is used to record a mapping relationship between different physical addresses and different hash values, and the hash value is a value obtained by performing a hash operation on the target data corresponding to the different physical addresses; determining a second storage controller to which the target hash value belongs, and generating a derived sub-request of a recovery request type; sending the derived sub-request, the target physical address, and the target hash value to the second storage controller to identify the request type of the derived sub-request, and deleting a mapping relationship corresponding to the target hash value and the target physical address from a fourth mapping table of the second storage controller, and sending a second deletion success response for the target hash value and the target physical address to the first storage controller; the fourth mapping table is used to record a mapping relationship between different hash values and different physical addresses; when the first storage controller receives the second deletion success response sent by the second storage controller, the second deletion success response is forwarded to any storage controller. In this embodiment, if the target logical address corresponding to the target physical address (physical address 0) does not exist in the second mapping table (the <physical address, logical address> mapping table), that is, the total number of logical addresses corresponding to the physical address 0 is 0 (that is, the logical addresses corresponding to the physical address 0 have all been deleted), at this time, the target hash value corresponding to the target physical address (physical address 0) can be queried from the third mapping table (denoted as the <physical address, hash value> mapping table) located in the first storage controller (storage controller 1), for example, as shown in Figure 5 , it can be known by querying the entry 0 in the third mapping table (denoted as the <physical address, hash value> mapping table) that the target hash value corresponding to the physical address 0 is the hash value 0. It should be noted that the hash value recorded in the third mapping table is a value obtained by performing a hash operation on the target data (referring to data of a fixed length (such as 8 KB length), which can be user data or metadata, etc.) corresponding to different physical addresses; then, as shown in Figure 6 , the second storage controller (such as the storage controller 3) to which the target hash value (hash value 0) belongs is determined, and a derived sub-request of a recovery request type is generated, and then the derived sub-request, the target physical address (physical address 0), and the target hash value (hash value 0) are sent to the second storage controller (such as the storage controller 3).

[0031] When the second storage controller (such as the storage controller 3) receives the above information sent by the first storage controller (the storage controller 1), the second storage controller analyzes the information, identifies the request type of the derived child request first, and if the request type is identified as a recovery request type, deletes the mapping relationship corresponding to the target hash value (hash value 0) and the target physical address (physical address 0) (that is, deletes hash value 0 and physical address 0 at the same time) from the fourth mapping table (denoted as a <hash value, physical address> mapping table) of the second storage controller (such as the storage controller 3), and then sends a successful deletion response to the target hash value (hash value 0) and the target physical address (physical address 0) to the first storage controller (such as the storage controller 1); wherein the fourth mapping table (<hash value, physical address> mapping table) is used to record the mapping relationship of different hash values pointing to different physical addresses, for example, hash value 0 points to physical address 0; further, when the first storage controller (the storage controller 1) receives the successful deletion response sent by the second storage controller (such as the storage controller 3), the first storage controller forwards the successful deletion response to any storage controller (that is, the storage controller 0). After detecting that all logical addresses corresponding to the physical address 0 in the second mapping table (<physical address, logical address> mapping table) are deleted, the present application determines the target hash value corresponding to the current physical address 0 by querying the third mapping table (<physical address, hash value> mapping table), and then determines the corresponding storage controller 3 based on the target hash value, and deletes the corresponding mapping relationship in the fourth mapping table (<hash value, physical address> mapping table) of the storage controller 3, thereby realizing the updating of the fourth mapping table (<hash value, physical address> mapping table) and laying a foundation for the real-time space recovery operation of the subsequent volume.

[0032] Specifically, determining the second storage controller to which the target hash value belongs can include: performing a remainder operation on the target hash value and the total number of controllers to obtain the controller number of the second storage controller to which the target hash value belongs; and determining the second storage controller based on the controller number. For example, when there are 4 storage controllers in the multi-controller storage system, performing a remainder operation on the target hash value (hash value 0) and the total number of controllers (that is, 4) to obtain the controller number of the second storage controller (such as the storage controller 3) to which the hash value 0 belongs. The specific calculation formula is: controller number = hash value 0 % 4. The controller number calculated can directly determine the second storage controller (the storage controller 3) to which the target hash value (hash value 0) belongs.

[0033] Step S14: When the first successful deletion response for the to-be-recovered logical address is received, the space of the sub-volume corresponding to the target physical address in the target re-deletion volume is recovered.

[0034] In this embodiment, when the storage controller 0 receives the first successful response sent by the storage controller 1 for the logical address (logical address 0) to be recycled, the sub-volume corresponding to the target physical address (physical address 0) in the target deduplication volume can be recycled according to a preset byte length (e.g., 8 KB).

[0035] Specifically, referring to FIG. 6, when the storage controller 0 receives the second successful response (i.e., ) forwarded by the first storage controller (storage controller 1), the sub-volume corresponding to the target physical address (physical address 0) in the target deduplication volume can be recycled according to a preset byte length (e.g., 8 KB). Since the target physical address (physical address 0) corresponds to the storage controller 1, recycling the sub-volume corresponding to the target physical address (physical address 0) is equivalent to recycling the sub-volume corresponding to the storage controller 1. Figure 6

[0036] In addition, in order to avoid space recycling (reduction) failure or problems, a complete snapshot or backup can be created for each sub-volume of the target deduplication volume when a deduplication volume space recycling request is received. In this way, if the sub-volume space recycling of a certain physical address / storage controller fails or is abnormal, the state before space reduction can be restored by rolling back the snapshot or backup. For example, if an abnormality occurs, the reduced sub-volume is deleted, and a new sub-volume is quickly restored from the snapshot. Before recovery, it also needs to be determined whether there is enough space to perform this rollback operation. Further, the recycled sub-volume can be verified and monitored, for example, by running a health check of the application, performing a consistency check on the database, or checking key files and data to verify the integrity of the data, and continuously monitoring the performance indicators, latency, and error count of the sub-volume within a preset time period, and confirming whether the available space of the storage pool has increased as expected, and after confirming that everything is normal, the temporary snapshot or backup created in the preparation stage can be deleted to release the occupied space.

[0037] ​It can be seen that, in the embodiment of the application, when any storage controller in the multi-control storage system receives a space recycling request of a deduplicated volume, the storage controller first determines a to-be-recycled logical address corresponding to the current space recycling request, then queries a target physical address corresponding to the to-be-recycled logical address from the first mapping table of <logical address pointing to physical address> that is created in advance, and deletes the to-be-recycled logical address corresponding to the target physical address from the second mapping table of <physical address pointing to logical address> through the first storage controller to which the target physical address belongs, and finally recycles a sub-volume corresponding to the target physical address in the deduplicated volume after the to-be-recycled logical address is successfully deleted. Through the above manner, the space of the sub-volume corresponding to a single storage controller can be reduced in real time, and the space of the entire deduplicated volume does not need to be recycled, thereby effectively improving the space recycling efficiency of the global deduplicated volume, and further improving the space recycling efficiency of the storage pool. At the same time, the data deduplication efficiency can be improved, the actual storage space of data is reduced, and the storage resources of the storage device are saved.

[0038] The embodiment of the application discloses a specific deduplicated volume space management method, which is applied to any storage controller in a multi-control storage system, as shown in Figure 7 The method comprises the following steps. Step S21: receiving a space recycling request for a target deduplicated volume, and splitting the space recycling request according to a preset byte length to obtain a plurality of sub-recycling requests, and determining a to-be-recycled logical address corresponding to each sub-recycling request.

[0039] Step S22: querying a target physical address corresponding to the to-be-recycled logical address from the first mapping table; the first mapping table is used to record the mapping relationship of different logical addresses pointing to different physical addresses.

[0040] Step S23: determining a first storage controller to which the target physical address belongs, and sending the space recycling request, the to-be-recycled logical address, and the target physical address to the first storage controller, so as to delete the to-be-recycled logical address corresponding to the target physical address from the second mapping table of the first storage controller based on the type of the space recycling request; the second mapping table is used to record the mapping relationship of different physical addresses pointing to different logical addresses.

[0041] Step S24: when receiving a first deletion success response for the to-be-recycled logical address, recycling the space of a sub-volume corresponding to the target physical address in the target deduplicated volume.

[0042] Step S25: updating the occupied space size of the sub-volume corresponding to the current first storage controller through the first storage controller and based on the preset byte length.

[0043] In this embodiment, after the space of the sub-volume corresponding to the target physical address (i.e., the storage controller 1) is reclaimed, the occupied space size of the sub-volume corresponding to the first storage controller (i.e., the storage controller 1) can be updated by the first storage controller (i.e., the storage controller 1) and based on a preset byte length (e.g., 8 KB). For example, if the occupied space size of the sub-volume corresponding to the storage controller 1 before the space is reclaimed is size1, when the controller 1 deletes the <physical address 0, logical address 0> corresponding to the sub-reclamation request 0 from the <physical address, logical address> mapping table, it indicates that the physical address 0 can be reused, and at this time, the occupied space size of the sub-volume on the storage controller 1 becomes (size1-8).

[0044] Step S26: generating a space change request for a preset byte length, and sending the space change request to the multi-control storage system to update the free space size of the storage pool corresponding to the current multi-control storage system based on the preset byte length.

[0045] In this embodiment, the storage controller 1 can also generate a space change request for the sub-volume 1 to reduce 8 KB, and send the request to the multi-control storage system, so that the storage system updates the free space size of the storage pool. If the free space size of the storage pool before the space is reclaimed is total_size, then after the space is reclaimed, it becomes pool_size+8.

[0046] The more specific processing procedures of the above steps S21 to S24 can refer to the corresponding contents disclosed in the foregoing embodiments, and will not be described here in detail.

[0047] It can be seen that, after the space of the sub-volume corresponding to the target physical address in the target deduplicated volume is reclaimed, the occupied space size of the sub-volume corresponding to the first storage controller is updated by the first storage controller and based on a preset byte length, and a space change request for the preset byte length is generated, and then the space change request is sent to the multi-control storage system, so that the storage system updates the free space size of the storage pool corresponding to the current multi-control storage system based on the preset byte length. By updating the occupied space of the sub-volume and the free space of the storage pool, the user can easily obtain and view the latest space distribution information, timely grasp the available space size of the current sub-volume and storage pool, and facilitate the calculation of the data deduplication rate based on the updated data.

[0048] Correspondingly, the embodiment of the application also discloses a deduplicated volume space management device applied to any storage controller in a multi-control storage system, which comprises: The request receiving module is configured to receive a space reclamation request for a target deduplicated volume. The address determining module is configured to determine a to-be-reclaimed logical address corresponding to the space reclamation request. The query address module is configured to query a target physical address corresponding to the to-be-recycled logical address from a first mapping table, and the first mapping table is configured to record a mapping relationship between different logical addresses and different physical addresses. The controller determination module is configured to determine a first storage controller to which the target physical address belongs. The sending module is configured to send the space recycling request, the to-be-recycled logical address, and the target physical address to the first storage controller, so as to delete the to-be-recycled logical address corresponding to the target physical address from a second mapping table of the first storage controller based on a type of the space recycling request, and the second mapping table is configured to record a mapping relationship between different physical addresses and different logical addresses. The space recycling module is configured to recycle a sub-volume corresponding to the target physical address in the target deduplicated volume when a first deletion success response for the to-be-recycled logical address is received.

[0049] The specific working procedures of the above modules can refer to the corresponding content disclosed in the foregoing embodiments, and will not be described here.

[0050] Embodiments of the present application also provide an electronic device including a memory and a processor, the memory storing a computer program, and the processor being configured to run the computer program to perform the steps in any of the above deduplicated volume space management method embodiments.

[0051] Embodiments of the present application also provide a computer readable storage medium storing a computer program, wherein the computer program is configured to perform the steps in any of the above deduplicated volume space management method embodiments when running.

[0052] In an example embodiment, the above computer readable storage medium can include, but is not limited to, a U disk, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store computer programs.

[0053] Embodiments of the present application also provide a computer program product including a computer program, and the computer program is executed by a processor to implement the steps in any of the above deduplicated volume space management method embodiments.

[0054] Embodiments of the present application also provide another computer program product including a non-volatile computer readable storage medium storing a computer program, and the computer program is executed by a processor to implement the steps in any of the above deduplicated volume space management method embodiments.

[0055] Those skilled in the art will further realize that the mere concepts, teachings, and embodiments described herein are merely meant to provide an enabling description of embodiments of the present application and are not intended to limit the scope of the present application. Therefore, embodiments described herein are not meant to be limiting, but merely exemplary, and thus the present application is deemed to cover any modifications within the spirit and scope of the present application. Accordingly, those who work in the art will readily recognize that the application can have other embodiments. Therefore, although the present application has been described in connection with specific embodiments thereof, the present application is not intended to be limited to the specific embodiments described herein. Indeed, there is a continuation of cooperation between the claims and the specification. Therefore, the application is not to be limited to the specific embodiments, but rather only by the scope of the appended claims, including all equivalents of the subject matter recited and including all equivalents thereof. Accordingly, the application is intended to cover any and all alternatives, modifications, and equivalents, including those resulting from a study of the specification and the appended claims. It is intended that each element recited in the claims will be meant to be construed in the broadest possible sense consistent with the context. Constructions such as "means for" coupled with a statement of function are intended to indicate that the function is performed by a means, and that the means can be any means for performing the function. The means can be an item of hardware, or a combination of hardware and software, or software, or software in combination with the item of hardware. The term "comprising" is not used in a limiting sense and is intended to mean that the list of steps, components, members, or elements is not exhaustive, and that other steps, components, members, or elements that are not expressly mentioned are also possible. The term "consisting essentially of is intended to mean that the list of steps, components, members, or elements is not exhaustive, and that other steps, components, members, or elements that do not materially affect the operation of the application are also possible. The term "consisting of is intended to mean that the list of steps, components, members, or elements is exhaustive, and that other steps, components, members, or elements are not possible.

[0056] The above has carried on the detailed introduction to the method and the equipment of the re-deleted volume space management provided by the application. The principle and the implementation mode of the application are described by the specific examples in this paper. The above example description is only for helping the understanding of the method and the core thought of the application. It should be pointed out that for the ordinary skilled in

Claims

1. A deduplication volume space management method, characterized in that, Any storage controller applied to a multi-control storage system, comprising: receiving a space recycling request for a target deduplicated volume, and determining a to-be-recycled logical address corresponding to the space recycling request; querying a target physical address corresponding to the to-be-recycled logical address from a first mapping table, wherein the first mapping table is used to record mapping relationships between different logical addresses and different physical addresses; determining a first storage controller to which the target physical address belongs, and sending the space recycling request, the to-be-recycled logical address and the target physical address to the first storage controller, so as to delete the to-be-recycled logical address corresponding to the target physical address from a second mapping table of the first storage controller based on a type of the space recycling request, wherein the second mapping table is used to record mapping relationships between different physical addresses and different logical addresses; when a first deletion success response for the to-be-recycled logical address is received, performing space recycling on a sub-volume corresponding to the target physical address in the target deduplicated volume.

2. The method of claim 1, wherein, The determination of the first storage controller to which the target physical address belongs comprises: counting a number of storage controllers in the multi-control storage system to obtain a total number of controllers; performing a modulo operation on the target physical address and the total number of controllers to obtain a controller number of the first storage controller to which the target physical address belongs; determining the first storage controller based on the controller number.

3. The method of claim 1, wherein, The determination of the to-be-recycled logical address corresponding to the space recycling request comprises: splitting the space recycling request according to a preset byte length to obtain a plurality of sub-recycling requests, and respectively determining a to-be-recycled logical address corresponding to each of the sub-recycling requests; Correspondingly, the deletion of the to-be-recycled logical address corresponding to the target physical address from the second mapping table of the first storage controller comprises: storing the sub-recycling requests in a sub-request recycling linked list corresponding to the first storage controller; respectively querying a total number of logical addresses corresponding to each of the sub-recycling requests in the sub-request recycling linked list from the second mapping table of the first storage controller, wherein the total number of logical addresses is a total number of different logical addresses corresponding to a single physical address; reordering the plurality of sub-recycling requests in the sub-request recycling linked list according to an order from large to small of the total number of logical addresses to obtain reordered recycling requests; deleting, according to a preset priority, a logical address corresponding to each of the sub-recycling requests in the reordered recycling requests from the second mapping table.

4. The method of claim 3, wherein, The storing of the sub-recycling requests in the sub-request recycling linked list corresponding to the first storage controller comprises: identifying a request type of the currently received sub-recycling request to obtain a sub-request type; if the sub-request type is a recycling request type, storing the sub-recycling request in the sub-request recycling linked list corresponding to the first storage controller.

5. The method of claim 3, wherein, The respective querying of the total number of logical addresses corresponding to each of the sub-recycling requests in the sub-request recycling linked list from the second mapping table of the first storage controller comprises: According to a preset period, the total number of logical addresses corresponding to each sub-recovery request in the sub-request recovery chain table is queried from the second mapping table of the first storage controller respectively; Accordingly, the deleting, according to a preset priority, of the logical addresses corresponding to each sub-recovery request in the sorted recovery request from the second mapping table comprises: According to the total number of logical addresses from small to large, the logical addresses corresponding to each sub-recovery request in the sorted recovery request are sequentially deleted from the second mapping table.

6. The method of claim 5, wherein, After the logical addresses corresponding to each sub-recovery request in the sorted recovery request are sequentially deleted from the second mapping table, the method further comprises: determining whether there is a logical address corresponding to the target physical address in the second mapping table; If there is a logical address corresponding to the target physical address in the second mapping table, a first successful response to the to-be-recovered logical address is sent to the any storage controller.

7. The method of claim 6, wherein, Further comprising: If there is no logical address corresponding to the target physical address in the second mapping table, a target hash value corresponding to the target physical address is queried from a third mapping table located in the first storage controller; the third mapping table is used to record the mapping relationship between different physical addresses and different hash values, and the hash value is a value obtained by performing hash operation on the target data corresponding to different physical addresses; determining a second storage controller to which the target hash value belongs, and generating a derived sub-request of which the request type is a recovery request; sending the derived sub-request, the target physical address and the target hash value to the second storage controller to identify the request type of the derived sub-request, and deleting the mapping relationship corresponding to the target hash value and the target physical address from a fourth mapping table of the second storage controller, and sending a second successful response to the target hash value and the target physical address to the first storage controller; the fourth mapping table is used to record the mapping relationship between different hash values and different physical addresses; When the first storage controller receives the second successful response sent by the second storage controller, the second successful response is forwarded to the any storage controller.

8. The method of claim 7, wherein, Further comprising: When the second successful response forwarded by the first storage controller is received, the sub-volume corresponding to the target physical address in the target deduplication volume is recycled according to the preset byte length; Accordingly, after the sub-volume corresponding to the target physical address in the target deduplication volume is recycled, the method further comprises: updating the occupied space size of the sub-volume corresponding to the first storage controller based on the preset byte length through the first storage controller; generating a space change request for the preset byte length, and sending the space change request to the multi-control storage system to update the idle space size of the storage pool corresponding to the multi-control storage system based on the preset byte length.

9. The deduplication volume space management method of any one of claims 1 to 8, wherein, Further comprising: constructing a target hard disk as a redundant array of independent disks through the multi-control storage system, and integrating the redundant array of independent disks to obtain a storage pool; dividing a storage space with a preset space size from the storage pool; taking the storage space with the preset space size as an initial space of a target deduplication volume; the target deduplication volume being a sum of sub-volumes corresponding to a plurality of storage controllers in the multi-control storage system; segmenting the initial space to obtain a plurality of segmented spaces, and allocating the plurality of segmented spaces to the plurality of storage controllers in the multi-control storage system respectively to obtain the sub-volumes corresponding to the plurality of storage controllers.

10. An electronic device, comprising: comprise: a memory for storing a computer program; a processor for executing the computer program to implement the steps of the deduplication volume space management method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Data deduplication method and device

    CN106095332A

  • Data processing method and device on multi-control storage system

    CN110928496A

  • High-performance data deduplication method based on Linux

    CN111538465A

  • Redirection-on-write snapshot implementation method and device, equipment and storage medium

    CN117170582A

  • Data deduplication adjustment method and device, equipment, storage system and storage medium

    CN117931092A