Dynamic reserved space management method, resource pool controller and storage system

By dynamically adjusting the capacity of the reserved space pool in the storage system, the write amplification problem of SSDs is solved. This achieves the effect of reducing write amplification and extending the lifespan of SSDs without increasing the reserved space, thereby improving the resource utilization of the storage system.

CN122044487APending Publication Date: 2026-05-15HANGZHOU FEISHU TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HANGZHOU FEISHU TECH CO LTD
Filing Date
2026-02-02
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

In existing technologies, solid-state drives (SSDs) experience increased write amplification (WAF) due to garbage collection (GC) when writing data, which affects their lifespan and increases open space (OP), leading to resource waste. How to reduce WAF without increasing OP has become a key challenge.

Method used

By introducing a dynamic reserved space management method into the storage system, the storage space is divided into a user-available space pool and a fixed shared reserved space pool according to a preset percentage. The capacity of the dynamic shared reserved space pool is dynamically adjusted, and garbage collection is performed using the pool-level shared reserved space to avoid increasing the OP of a single SSD.

Benefits of technology

Without increasing the reserved space, write amplification is significantly reduced, SSD lifespan is improved, resource utilization is enhanced, and the steady-state performance of the overall storage system is extended.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122044487A_ABST
    Figure CN122044487A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of storage, in particular to a dynamic reserved space management method, a resource pool controller and a storage system.The method comprises the steps that storage space in each storage is divided according to a preset percentage, and a user available space pool and a fixed shared reserved space pool are obtained; in response to a storage space application sent by a host, allocating an available space corresponding to the required capacity from a user available space pool through a resource pool controller, and taking the available space as a logical volume space for a user to access; and updating the capacity of the dynamic shared reserved space pool according to the current remaining available space in the fixed shared reserved space pool and the user available space pool. Therefore, the write amplification can be reduced and the service life of the SSD can be prolonged under the condition that the reserved space is not increased.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of storage technology, and in particular to a dynamic reserved space management method, a resource pool controller, and a storage system. Background Technology

[0002] Solid-state drives (SSDs) use NAND flash memory as their storage medium, which has the physical characteristics of "erasure before writing" and "writing page by page, erasing block by block". When data is updated or deleted, the original physical page becomes invalid, but the space it occupies cannot be directly reused. It must be garbage collected (GC) to migrate the valid data before the entire block can be erased and the space released.

[0003] During this process, the actual amount of physical data written to NAND often exceeds the amount of logical data written to the host, leading to write amplification. The metric for this phenomenon is the write amplification factor (WAF), defined as the ratio of the actual total write volume to the total host write volume. Ideally, WAF = 1, but due to effective data movement caused by garbage collection (GC), WAF is usually greater than 1, accelerating flash memory wear and affecting SSD lifespan.

[0004] Over-provisioning (OP) is a key factor in mitigating write amplification. Larger OPs can improve garbage collection (GC) efficiency, allowing the system to prioritize the reclamation of blocks with high garbage proportions, reducing the number of effective data moves, and thus lowering WAF (Wait and Failure Rate). However, increasing OPs means sacrificing available user capacity; and during periods of low load or idle business activity, OP space remains unused for extended periods, essentially "idling," resulting in resource waste.

[0005] Therefore, effectively reducing WAF without relying on increasing OP has become a key challenge in improving SSD performance and lifespan. Summary of the Invention

[0006] In view of this, embodiments of this application provide a dynamic reserved space management method, a resource pool controller, and a storage system, which can reduce write amplification and improve SSD lifespan without increasing the reserved space.

[0007] In a first aspect, embodiments of this application provide a dynamic reserved space management method, applicable to a storage system, wherein the storage system includes a storage resource pool and a resource pool controller; the storage resource pool is constructed from multiple storage devices. The method includes: The storage space within each memory is divided according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool; In response to a storage space request sent from the host, the resource pool controller allocates available space corresponding to the required capacity from the user available space pool to serve as a logical volume space for user access. The capacity of the dynamic shared reserved space pool is updated based on the current remaining available space in the fixed shared reserved space pool and the user available space pool; the dynamic shared reserved space pool is used by the resource pool controller to perform cross-memory garbage collection tasks.

[0008] In some embodiments, updating the capacity of the dynamic shared reserved space pool based on the current remaining available space in the fixed shared reserved space pool and the user available space pool includes: Use the currently available free space in the user available space pool as temporary shared reserved space; The fixed shared reserved space pool and the temporary shared reserved space are combined to obtain the dynamic shared reserved space pool; the dynamic shared reserved space pool is configured so that when the resource pool controller performs a garbage collection task of any memory, the physical blocks in it are used as the target storage area for effective data migration.

[0009] In some embodiments, the step of dividing the storage space within each memory according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool includes: The storage space of each memory is divided into fixed reserved space and available space according to the preset percentage; The fixed shared reserved space pool is constructed based on each of the fixed reserved spaces; The user available space pool is constructed based on each of the available spaces.

[0010] In some embodiments, the step of allocating available space corresponding to the required capacity from the user available space pool via the resource pool controller in response to a storage space request sent from the host includes: If the current remaining available space is determined to meet the user's required capacity based on the storage space application, then the resource pool controller applies for and allocates logical volume space for the storage space from the current remaining available space, and uses the allocated and updated remaining available space as temporary shared reserved space, so as to form the latest dynamic shared reserved space pool together with the fixed shared reserved space pool. Wherein, the currently remaining available space is the available space within the user available space pool excluding the space of each logical volume that has already been allocated.

[0011] In some embodiments, the step of allocating available space corresponding to the required capacity from the user available space pool via the resource pool controller in response to a storage space request sent from the host includes: If, based on the storage space application, it is determined that the current remaining available space does not meet the user's required capacity, then the resource pool controller will convert a portion of the temporary shared reserved space in the dynamic shared reserved space pool into remaining available space, and allocate available space corresponding to the required capacity as the logical volume space for user access. When the temporary shared space is used by a user, the resource pool controller performs a garbage collection task on the temporary shared space so that the user can store data.

[0012] In some embodiments, the method further includes: In response to a deletion command sent by a user through the host, the valid data in the corresponding logical volume space is invalidated, and the deleted logical volume space is added to the temporary shared reserved space to be combined with the fixed shared reserved space pool to obtain the latest dynamic shared reserved space pool.

[0013] In some embodiments, the method further includes: The resource pool controller maintains a global flash translation layer mapping table for the storage resource pool; And / or, the resource pool controller coordinates the execution of garbage collection tasks based on the proportion of garbage data, migrates the valid data in the blocks to be collected in the logical volume space to the dynamic shared reserved space pool, and adds the free logical volume space obtained from garbage collection to the remaining available space to wait for allocation; wherein, the local flash conversion layer function of each of the memories is turned off.

[0014] In some embodiments, the method further includes: The firmware of each of the memory devices supports superblock management to enable the resource pool controller to directly manage the physical storage space within each of the memory devices.

[0015] Secondly, embodiments of this application provide a resource pool controller for managing a storage resource pool; the storage resource pool is constructed from multiple storage devices. The resource pool controller includes: The storage space partitioning module is used to partition the storage space in each of the memory sources according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool. The available space allocation module is used to respond to a storage space request sent from the host and allocate available space corresponding to the required capacity from the user available space pool through the resource pool controller, so as to provide logical volume space for user access. The reserved space update module is used to update the capacity of the dynamic shared reserved space pool based on the current remaining available space in the fixed shared reserved space pool and the user available space pool; the dynamic shared reserved space pool is used by the resource pool controller to perform cross-memory garbage collection tasks.

[0016] Thirdly, embodiments of this application provide a storage system, which includes a storage resource pool and a resource pool controller as provided in the second aspect of this application; the storage resource pool is constructed from multiple storage devices.

[0017] The embodiments of this application have the following beneficial effects: This application applies to a storage system, which includes a storage resource pool and a resource pool controller. The storage resource pool is constructed from multiple storage devices. In response to a storage space request sent from a host, this application allocates available space corresponding to the required capacity from the user-available space pool through the resource pool controller, which serves as logical volume space for user access. Specifically, the storage space within each storage device is divided according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool. The capacity of the dynamic shared reserved space pool is updated based on the current remaining available space in the fixed shared reserved space pool and the user-available space pool. Because this application allows multiple storage devices to share the capacity of the dynamic shared reserved space pool, and also uses the current remaining available space as shared reserved space, write amplification can be reduced and SSD lifespan improved without increasing the reserved space. Attached Figure Description

[0018] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0019] Figure 1 A structural block diagram of a storage system according to an embodiment of this application is shown; Figure 2 A flowchart of a dynamic reserved space management method according to an embodiment of this application is shown; Figure 3-1 This paper illustrates a flowchart of the storage resource pool partitioning process in the dynamic reserved space management method of this application embodiment; Figure 3-2This illustration shows a schematic diagram of the structural division of a storage resource pool in the dynamic reserved space management method of this application embodiment; Figure 3-3 This illustration shows a schematic diagram of another storage resource pool structure in the dynamic reserved space management method of this application. Figure 4 This paper illustrates a flowchart of the capacity update process for the dynamically shared reserved space pool in the dynamic reserved space management method of this application embodiment; Figure 5 The flowchart illustrating the allocation of logical volume space in the dynamic reserved space management method of this application is shown. Figure 6 Another flowchart of the dynamic reserved space management method according to an embodiment of this application is shown.

[0020] Explanation of key component symbols: 110 - Resource Pool Controller; 120 - Storage Resource Pool; 111 - Volume Manager; 112 - Garbage Collection Manager. Detailed Implementation

[0021] The technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments.

[0022] The components of the embodiments of this application described and illustrated in the accompanying drawings can be arranged and designed in a variety of different configurations. Therefore, the following detailed description of the embodiments of this application provided in the drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0023] In the following text, the terms "comprising," "having," and their cognates, which may be used in various embodiments of this application, are intended only to indicate a particular feature, number, step, operation, element, component, or combination thereof, and should not be construed as primarily excluding the presence of one or more other features, numbers, steps, operations, elements, components, or combinations thereof, or adding the possibility of one or more combinations thereof. Furthermore, the terms "first," "second," "third," etc., are used only for distinguishing descriptions and should not be construed as indicating or implying relative importance.

[0024] Unless otherwise specified, all terms used herein (including technical and scientific terms) shall have the same meaning as commonly understood by one of ordinary skill in the art to which the various embodiments of this application pertain. Terms (such as those defined in commonly used dictionaries) shall be interpreted as having the same meaning as in their contextual meaning in the relevant technical field and shall not be construed as having an idealized or overly formal meaning, unless clearly defined in the various embodiments of this application.

[0025] The following detailed description of some embodiments of this application is provided in conjunction with the accompanying drawings. Unless otherwise specified, the following embodiments and features can be combined with each other.

[0026] The following explains the key terms used in this application: Solid-state drives (SSDs) are non-volatile storage devices based on NAND flash memory.

[0027] Over-Provisioning (OP) refers to the portion of an SSD that is inaccessible to users. It is used for garbage collection (GC), wear leveling, bad block replacement, etc., to improve performance and lifespan.

[0028] Write Amplification Factor (WAF) represents the ratio of the actual amount of data written to the NAND flash memory to the amount of data requested to be written by the host. A smaller WAF is better, with an ideal value of 1.

[0029] Garbage collection (GC), the process of cleaning up invalid pages, organizing valid data, and releasing writable blocks, is a key operation that affects SSD performance.

[0030] The Flash Translation Layer (FTL) is responsible for mapping the host's logical addresses (LBAs) to the physical addresses of the NAND flash memory, and managing wear leveling and garbage collection (GC).

[0031] ZNS (Zoned Namespace) is an extension of the NVMe protocol that divides the namespace into multiple zones and writes them sequentially, improving lifespan and performance.

[0032] OCSSD (Open-Channel SSD) allows the host to directly manage the physical layout and garbage collection of the SSD, enabling more granular control.

[0033] A super block is a large physical unit that can be directly managed by an external controller and is commonly used in the ZNS / OCSSD architecture.

[0034] This application provides a storage system, exemplary, such as... Figure 1 As shown, the storage system includes a resource pool controller 110 and a storage resource pool 120; the storage resource pool 120 is constructed from multiple storage devices. The resource pool controller 110 is used to communicate with an external host to receive access commands sent by the host. The resource pool controller 110 is also communicatively connected to the storage resource pool 120. The resource pool controller 110 includes a volume manager 111 and a garbage collection manager 112.

[0035] Volume Manager 111 and Garbage Collector 112 communicate with Storage Resource Pool 120.

[0036] Storage systems include, but are not limited to, flash memory storage systems.

[0037] The local flash translation layer function for each memory is disabled.

[0038] Resource pool controller 110 is configured to maintain the global flash translation layer mapping table of storage resource pool 120 and coordinate the execution of pool-level garbage collection tasks to dynamically optimize the allocation and reclamation of physical storage space. The resource pool controller 110 is also used to implement a dynamic reserved space management method provided in this application.

[0039] The following describes the dynamic reserved space management method in conjunction with some specific embodiments.

[0040] Figure 2 A flowchart of a dynamic reserved space management method according to an embodiment of this application is shown. Exemplarily, the dynamic reserved space management method includes the following steps: S100 divides the storage space in each memory according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool.

[0041] Memory includes, but is not limited to, multiple SSDs, or arrays combining NAND flash memory chips and SSD controllers. An SSD is a storage device consisting of a controller and one or more NAND flash memory chips.

[0042] S200, in response to a storage space request sent from the host, allocates available space corresponding to the required capacity from the user available space pool through the resource pool controller 110, so as to provide logical volume space for user access.

[0043] When a user requests storage space, the system allocates a specified amount of available space as a logical volume space from the user's available space pool through the volume manager 111 within the resource pool controller 110.

[0044] The required storage capacity for each user is determined based on their storage space request.

[0045] S300 updates the capacity of the dynamic shared reserved space pool based on the current remaining available space in the fixed shared reserved space pool and the user available space pool.

[0046] The fixed shared reserved space pool is a fixed-capacity, immutable space used by the resource pool controller 110 when performing cross-memory garbage collection tasks.

[0047] The dynamically shared reserved space pool has a dynamically variable capacity and is used by the resource pool controller 110 to perform garbage collection tasks across memory.

[0048] The storage space within the memory is divided according to a preset percentage, with one part belonging to the user-available space pool and the other part belonging to the fixed shared reserved space pool.

[0049] Garbage collection requires migrating valid data to a new location and then erasing the entire physical block. This process requires additional space to temporarily store the valid data. Pre-stored space provides the temporary write space needed for GC, preventing write blocking due to insufficient space for migration. Without sufficient pre-stored space, GC cannot proceed, leading to a sharp drop in SSD performance or even "freezing."

[0050] In this embodiment of the application, without increasing the physical reserved space of a single SSD, a pool-level shared reserved space is achieved by constructing a user-available space pool and a fixed shared reserved space pool. This expands the OP, significantly reduces write amplification WAF, improves GC efficiency, extends the overall lifespan of the SSD, and improves the utilization rate of storage resources.

[0051] Furthermore, the firmware of each of the aforementioned memories supports superblock management to enable the resource pool controller 110 to directly manage the physical storage space within each memory.

[0052] The SSD firmware supports superblock management, which means that the internal GC thread is turned off, block erasure and data migration are no longer performed automatically, and the lifecycle management of physical blocks is completely handed over to the external resource pool controller 110, similar to the ZNS (ZonedNamespace) or OCSSD (Open-Channel SSD) standards, allowing the external controller to directly manage the physical storage space within the SSD.

[0053] Due to the uneven distribution of business operations, the I / O peaks of different services generally do not arrive at the same time. Often, in existing technologies, a large amount of reserved space on SSDs is idle. However, due to the binding relationship between reserved space and user space addresses, and the fact that garbage collection (GC) is implemented within a single SSD controller, the idle reserved space cannot be utilized. In contrast, the embodiments of this application can globally schedule physical blocks within the entire fixed shared reserved space pool, significantly reducing WAF during GC, improving system steady-state performance, and extending SSD lifespan.

[0054] In one implementation, such as Figure 3-1 , Figure 3-2 , Figure 3-3 As shown, the storage space within each memory is divided according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool, including: S110, the storage space of each memory is divided into fixed reserved space and available space according to a preset percentage. The preset percentage ranges from, but is not limited to, 3% to 5%.

[0055] S120, a fixed shared reserved space pool is constructed based on each fixed reserved space; the fixed shared reserved space pool is used by the resource pool controller 110 when performing garbage collection tasks.

[0056] Since the fixed shared reserved space pool is shared by all SSDs, a single SSD does not need to increase its own OP, but can still enjoy the performance advantages brought by increasing OP.

[0057] S130: A user-available space pool is constructed based on each available space. The user-available space pool is used for user access.

[0058] For example, dozens to hundreds of SSDs can be grouped into a unified storage resource pool 120. Each SSD has a small, fixed reserved space, which is still used for local exception handling or emergency use. For example, if the preset percentage is 4%, then the storage space is divided into 4% reserved space and 96% available space.

[0059] In other words, the storage space of all SSDs is aggregated into storage resource pool 120, and the reserved space of all SSDs is aggregated into fixed shared reserved space. Assuming the total storage space of all SSDs is 100TB, then the capacity of the fixed shared reserved space is 4TB, and the initial user-available space pool capacity is 96TB.

[0060] In this embodiment, when an SSD needs to perform a GC process, its valid data can be temporarily written to the fixed reserved space or free available space of other SSDs. In this embodiment, the free available space, originally intended only for future allocation, is redefined as a data migration buffer that can participate in GC. By utilizing the free capacity resources in storage resource pool 120, it achieves both "future availability" and "current GC schedulability," maximizing the utilization of space value. This increases the OP space, reduces write amplification, and improves resource utilization. Individual SSDs do not need to increase their own OP, yet can enjoy the performance advantages brought by a larger OP.

[0061] In one implementation, to improve flexibility and resource utilization, such as Figure 4 , Figure 3-3 As shown, in step S200, the capacity of the dynamic shared reserved space pool is updated based on the current remaining available space in the fixed shared reserved space pool and the user available space pool, including: S310 uses the remaining available space in the user's available space pool as temporary shared reserved space.

[0062] The remaining available space is the available space in the user's available space pool excluding the logical volume space that has already been allocated. The remaining available space is the idle and unused available space.

[0063] S320, a dynamic shared reserved space pool is obtained based on the fixed shared reserved space pool and the temporary shared reserved space. The dynamic shared reserved space pool is configured so that when the resource pool controller 110 performs a garbage collection task for any memory, the physical blocks in it can be used as the target storage area for valid data migration.

[0064] In other words, when executing a garbage collection task for any memory, the resource pool controller 110 calls any physical block in the dynamically shared reserved space pool as the data migration target.

[0065] Unallocated available space is automatically used as OP space, improving the resource utilization of the storage system, and the dynamic allocation and release of logical volumes does not affect the user experience. Based on the dynamic shared reserved space pool changing dynamically with business load, the more free available space there is, the larger the dynamic shared reserved space pool (equivalent to a larger OP space), and the more efficient the GC.

[0066] In one implementation, to support flexible dynamic creation and release of logical volumes and meet the elastic scaling requirements in a cloud environment, such as... Figure 5 As shown, in step S100, in response to a storage space request sent from the host, the resource pool controller 110 allocates available space corresponding to the required capacity from the user available space pool, including: S210, if the remaining available space determines that it meets the user's required capacity based on the storage space application, then the resource pool controller 110 requests and allocates logical volume space from the remaining available space for the storage space, and uses the updated remaining available space as temporary shared reserved space to form the latest dynamic shared reserved space pool together with the fixed shared reserved space pool. Here, the current remaining available space refers to the available space within the user's available space pool excluding the space of each logical volume that has already been allocated.

[0067] Understandably, embodiments of this application also include: when a storage space request is received, determining whether the remaining available space in the user's available space pool meets the user's required capacity.

[0068] If the current remaining available space in the user's available space pool meets the demand, the corresponding logical volume space is allocated, and the updated remaining available space is included in the dynamic shared reserved space pool, which, together with the fixed shared reserved space, is used for pool-level garbage collection. This fully utilizes the SSD resources of the entire storage resource pool 120, further reduces WAF during GC, and makes the wear of SSD NAND within the storage resource pool 120 more uniform.

[0069] For example, storage resource pool 120 has 100TB of space, with a preset percentage of 4% and a fixed shared reserved space capacity of 4TB. Therefore, the available space pool capacity is 96TB, of which 50TB has already been requested and used by users. This leaves 46TB of remaining available space, which is also used as temporary shared OP space. Adding the temporary shared OP space to the 4TB of fixed shared reserved space, we get a dynamic shared reserved space capacity of 50TB. This ensures that the WAF (Web Application Firewall) of the already requested logical volume space can approach 1.

[0070] S220, if it is determined based on the storage space application that the remaining available space does not meet the user's required capacity, then the resource pool controller 110 converts part of the temporary shared reserved space in the dynamic shared reserved space pool into the remaining available space, and allocates the available space corresponding to the required capacity as logical volume space for user access.

[0071] S230, when a portion of the temporary shared space is used by users, the resource pool controller 110 performs a garbage collection task on the portion of the temporary shared space so that users can store data.

[0072] In this embodiment of the application, in the storage logic, it is not necessary to perform garbage collection before allocating space; as long as the capacity requested by the user is less than the difference between the total capacity of the storage resource pool 120 minus the capacity of the fixed shared reserved space pool minus the capacity already allocated by the user, the allocation can be successful, and a portion of the space in the dynamic shared reserved space pool is directly logically divided into user space; the actual release of this portion of space can be dynamically delayed until the user actually needs to write data before garbage collection is performed.

[0073] If the conditions are not met, the pool-level garbage collection task will be triggered immediately through the resource pool controller 110 to migrate the valid data in the logical volume space to be reclaimed to the physical blocks in the dynamic shared reserved space pool, and release the physical blocks occupied by invalid data to reclaim them to the available space, so as to respond to the storage space application.

[0074] For example, a storage space application requests a logical volume space of 10TB, but the remaining available space is only 6TB, which is insufficient for allocation.

[0075] In this embodiment, GC triggering is initiated when the amount of garbage in the superblock reaches a certain value. For example, if the superblock is 100% garbage, garbage collection will definitely be triggered; otherwise, garbage collection will only be triggered if the amount exceeds a set threshold. Storage space allocation does not trigger garbage collection. When triggering a pool-level GC process across SSDs, sufficient available space is reclaimed through the garbage collection manager 112 (GC Management), that is, free space at least equal to the allocated capacity is reclaimed from physical blocks containing invalid data through GC Management. Since the allocation and release frequency of logical volume space is low, GC operations have minimal impact on the user experience.

[0076] In one implementation, to improve resource utilization, the method of this application embodiment further includes: In response to a user's deletion command sent via the host, the valid data in the corresponding logical volume space is invalidated, and the deleted logical volume space is added to the temporary shared reserved space to be combined with the fixed shared reserved space to obtain the latest dynamic shared reserved space pool.

[0077] Deleting a volume involves removing its information from the volume management metadata and invalidating all data within the corresponding space, awaiting garbage collection. The deletion command is only a logical deletion; the actual garbage collection process can occur when the space is used or when garbage collection is triggered. In this embodiment, unallocated available space is automatically used as shared OP space. When data in an allocated logical volume space is deleted, the released available space is rejoined to the shared OP space, achieving dynamic regeneration of the OP space, improving system elasticity, extending the overall SSD lifespan, and promoting wear leveling.

[0078] In one implementation, to support continuous or distributed allocation of logical volumes across multiple SSDs and improve space scheduling flexibility, the method of this application embodiment further includes: S410, the global flash translation layer mapping table of storage resource pool 120 is maintained through resource pool controller 110. The local flash translation layer function for each memory is disabled.

[0079] Resource pool controller 110 maintains a global FTL (Flash Translation Layer) table, mapping logical addresses to physical addresses.

[0080] The method in this application embodiment further includes: constructing a global flash translation layer (FTL), wherein the resource pool controller 110 maintains the mapping relationship between logical addresses and cross-SSD physical addresses, thereby realizing unified addressing and management of NAND storage cells in all SSDs.

[0081] In traditional SSDs, each solid-state drive (SSD) has an independent FTL (Framework Table) module responsible for mapping the Logical Block Address (LBA) sent by the host to the Physical Page Address (PPN) in the NAND flash memory. In this embodiment, this function is moved to an external resource pool controller 110. The resource pool controller 110 centrally manages the logical-physical mapping relationship of all SSDs within the entire storage resource pool 120. In other words, all I / O requests are addressed through the resource pool controller 110, forming a global FTL table across multiple SSDs.

[0082] In one implementation, to improve GC efficiency, the method of this application embodiment further includes: In step S510, the resource pool controller 110 coordinates the execution of garbage collection tasks based on the proportion of garbage data, migrating valid data in the blocks to be collected in the logical volume space to the dynamic shared reserved space pool. This embodiment maximizes GC efficiency by leveraging the advantages of pool-level dynamic shared operations to centrally collect data on blocks with a high garbage proportion, significantly reducing data migration and WAF (Web Application Firewall).

[0083] Garbage collection is performed at the storage resource pool level, and the resource pool controller 110 dynamically schedules GC tasks based on the usage of remaining available space. The internal GC function of the SSD is disabled to avoid conflicts with pool-level GC. Understandably, the SSD firmware supports superblock management, similar to the ZNS (Zoned Namespace) or OCSSD (Open-Channel SSD) standards, allowing the external resource pool controller 110 to directly manage the physical storage space within the SSD.

[0084] The dynamic reserved space management method of this application embodiment will be described below with reference to a specific example, such as... Figure 6 As shown, it includes the following steps: S601 aggregates the storage space of all SSDs into storage resource pool 120, and aggregates the fixed reserved space of all SSDs into fixed shared reserved space pool.

[0085] Assuming a total storage space of 100TB, a fixed shared reserved space pool capacity of 4TB, and a user-available space pool of 96TB.

[0086] S602, when a user requests logical volume space, the resource pool controller 110 checks the remaining available space. If the capacity of the remaining available space can meet the user's capacity requirement, logical volume space is allocated from the remaining available space, and the capacity of the remaining available space is updated.

[0087] S603: After allocating logical volume space to the user, the latest remaining available space is used as temporary shared reserved space. The temporary shared reserved space and the fixed shared reserved space pool are combined to obtain the capacity of the dynamic shared reserved space pool. Then, the current dynamic shared reserved space pool is equal to the fixed shared reserved space pool plus the temporary shared reserved space (current remaining available space).

[0088] S604, if the current remaining available space is insufficient to meet the new logical volume space request, then the resource pool controller 110 converts part of the temporary shared reserved space in the dynamic shared reserved space pool into the remaining available space, and allocates the available space corresponding to the required capacity as logical volume space for user access; when part of the temporary shared space is used by users, the resource pool controller 110 performs a garbage collection task on part of the temporary shared space for users to store data.

[0089] S605, when a user deletes data within a logical volume space, the resource pool controller 110 adds the released available space back to the dynamic shared reserved space pool. At this time, the dynamic shared reserved space pool is updated to the fixed shared reserved space pool plus the new remaining available space.

[0090] This application has the following advantages: This application requires SSD firmware support to expose the superblock to the upper-level system of the SSD, but does not require modification of existing SSD hardware and is easy to deploy; Flexibility and resource utilization: Unallocated user-available space is automatically used as dynamically shared reserved space, improving the resource utilization of the storage system, and the dynamic allocation and release of logical volume space does not affect the user experience.

[0091] Reduce WAF: By dynamically sharing reserved space, a large capacity OP is formed at the pool level, making the WAF close to 1, thereby reducing write amplification and extending the life of SSD.

[0092] Improve GC efficiency: Dynamic OP management allows GC to be triggered when garbage data accounts for a larger proportion, avoiding the large amount of data movement operations of frequent GC and improving the storage performance of the system in steady state.

[0093] Improve storage lifespan: The entire storage resource pool experiences uniform wear, preventing individual SSDs from requiring maintenance due to excessive wear.

[0094] The dynamic OP management method of this application achieves significant reduction in WAF, improved GC efficiency, and extended SSD lifespan without increasing the OP of a single SSD by sharing the OP space through a storage resource pool of 120. Simultaneously, this application improves storage resource utilization and is transparent to users, making it suitable for large-scale storage systems.

[0095] This application also provides a resource pool controller 110. Exemplarily, the resource pool controller 110 is used to manage a storage resource pool 120; the storage resource pool 120 is constructed from multiple storage devices; the resource pool controller 110 includes: a storage space partitioning module, an available space allocation module, and a reserved space update module.

[0096] The storage space partitioning module is used to partition the storage space in each of the memory sources according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool. The available space allocation module is used to respond to storage space requests sent from the host and allocate available space corresponding to the required capacity from the user available space pool through the resource pool controller 110, so as to provide logical volume space for user access. The reserved space update module is used to update the capacity of the dynamic shared reserved space pool based on the current remaining available space in the fixed shared reserved space pool and the user available space pool; wherein, the storage space in each memory is divided according to a preset percentage to obtain the user available space pool and the fixed shared reserved space pool.

[0097] It is understood that the resource pool controller 110 in this embodiment corresponds to the dynamic reserved space management method in the above embodiment. The options in the above embodiment are also applicable to this embodiment, so they will not be described again here.

[0098] This application also provides a terminal device, exemplary of which the terminal device includes a processor and the memory system of this application. As described above, the memory system includes a resource storage pool and a storage pool controller. The memory system stores a computer program, and the processor executes the computer program to enable the terminal device to perform the dynamic reserved space management method described above or the functions of the various modules in the resource pool controller 110 described above.

[0099] The processor can be an integrated circuit chip with signal processing capabilities. The processor can be a general-purpose processor, including at least one of a Central Processing Unit (CPU), Graphics Processing Unit (GPU), Network Processor (NP), Digital Signal Processor (DSP), Application-Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The general-purpose processor can be a microprocessor or any conventional processor, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application.

[0100] The memory can be, but is not limited to, Random Access Memory (RAM), Read Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), etc. The memory is used to store computer programs, and the processor can execute the computer programs accordingly after receiving execution instructions.

[0101] This application also provides a computer-readable storage medium for storing the computer program used in the aforementioned terminal device. For example, the computer-readable storage medium may include, but is not limited to, various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0102] In the several embodiments provided in this application, it should be understood that the disclosed resource pool controller 110 and method can also be implemented in other ways. The resource pool controller 110 embodiments described above are merely illustrative. For example, the flowcharts and block diagrams in the accompanying drawings show the architecture, functionality, and operation of possible implementations of the resource pool controller 110, method, and computer program product according to various embodiments of this application. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing the specified logical function. It should also be noted that, as an alternative implementation, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0103] In addition, the functional modules or units in the various embodiments of this application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0104] If the aforementioned functions are implemented as software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a smartphone, personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application.

[0105] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.

Claims

1. A method for managing dynamically reserved space, characterized in that, Applicable to a storage system, the storage system including a storage resource pool and a resource pool controller; the storage resource pool is constructed from multiple storage devices; the method includes: The storage space within each memory is divided according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool; In response to a storage space request sent from the host, the resource pool controller allocates available space corresponding to the required capacity from the user available space pool to serve as a logical volume space for user access. The capacity of the dynamic shared reserved space pool is updated based on the current remaining available space in the fixed shared reserved space pool and the user available space pool; the dynamic shared reserved space pool is used by the resource pool controller to perform cross-memory garbage collection tasks.

2. The dynamic reserved space management method according to claim 1, characterized in that, The step of updating the capacity of the dynamic shared reserved space pool based on the current remaining available space in the fixed shared reserved space pool and the user available space pool includes: Use the currently available free space in the user available space pool as temporary shared reserved space; The fixed shared reserved space pool and the temporary shared reserved space are combined to obtain the dynamic shared reserved space pool; the dynamic shared reserved space pool is configured so that when the resource pool controller performs a garbage collection task of any memory, the physical blocks in it are used as the target storage area for effective data migration.

3. The dynamic reserved space management method according to claim 1, characterized in that, The step of dividing the storage space within each memory according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool includes: The storage space of each memory is divided into fixed reserved space and available space according to the preset percentage; The fixed shared reserved space pool is constructed based on each of the fixed reserved spaces; The user available space pool is constructed based on each of the available spaces.

4. The dynamic reserved space management method according to claim 2, characterized in that, The step of responding to a storage space request sent from the host by allocating available space corresponding to the required capacity from the user available space pool through the resource pool controller includes: If the current remaining available space is determined to meet the user's required capacity based on the storage space application, then the resource pool controller applies for and allocates logical volume space for the storage space from the current remaining available space, and uses the allocated and updated remaining available space as temporary shared reserved space, so as to form the latest dynamic shared reserved space pool together with the fixed shared reserved space pool. Wherein, the currently remaining available space is the available space within the user available space pool excluding the space of each logical volume that has already been allocated.

5. The dynamic reserved space management method according to claim 4, characterized in that, The step of responding to a storage space request sent from the host by allocating available space corresponding to the required capacity from the user available space pool through the resource pool controller includes: If, based on the storage space application, it is determined that the current remaining available space does not meet the user's required capacity, then the resource pool controller will convert a portion of the temporary shared reserved space in the dynamic shared reserved space pool into remaining available space, and allocate available space corresponding to the required capacity as the logical volume space for user access. When the temporary shared space is used by a user, the resource pool controller performs a garbage collection task on the temporary shared space so that the user can store data.

6. The dynamic reserved space management method according to claim 2, characterized in that, The method further includes: In response to a deletion command sent by a user through the host, the valid data in the corresponding logical volume space is invalidated, and the deleted logical volume space is added to the temporary shared reserved space to be combined with the fixed shared reserved space pool to obtain the latest dynamic shared reserved space pool.

7. The dynamic reserved space management method according to claim 2, characterized in that, The method further includes: The resource pool controller maintains a global flash translation layer mapping table for the storage resource pool; And / or, the resource pool controller coordinates the execution of garbage collection tasks based on the proportion of garbage data, migrates the valid data in the blocks to be collected in the logical volume space to the dynamic shared reserved space pool, and adds the free logical volume space obtained from garbage collection to the remaining available space to wait for allocation; wherein, the local flash conversion layer function of each of the memories is turned off.

8. The dynamic reserved space management method as described in claim 5, characterized in that, The method further includes: The firmware of each of the memory devices supports superblock management to enable the resource pool controller to directly manage the physical storage space within each of the memory devices.

9. A resource pool controller, characterized in that, The resource pool controller is used to manage the storage resource pool; the storage resource pool is constructed from multiple storage devices. The resource pool controller includes: The storage space partitioning module is used to partition the storage space in each of the memory sources according to a preset percentage to obtain a user-available space pool and a fixed shared reserved space pool. The available space allocation module is used to respond to a storage space request sent from the host and allocate available space corresponding to the required capacity from the user available space pool through the resource pool controller, so as to provide logical volume space for user access. The reserved space update module is used to update the capacity of the dynamic shared reserved space pool based on the current remaining available space in the fixed shared reserved space pool and the user available space pool; the dynamic shared reserved space pool is used by the resource pool controller to perform cross-memory garbage collection tasks.

10. A storage system, characterized in that, The storage system includes a storage resource pool and a resource pool controller as described in claim 9; the storage resource pool is constructed from multiple storage devices.