Storage system and data storage method

By using different granularity storage spaces of hybrid flash drives to construct logical blocks in the storage system, the problem of inconsistent logical block capacity in ZNS SSD RAID groups is solved, achieving logical block capacity consistency and simplified metadata management, and avoiding storage space waste.

WO2025241476A1PCT designated stage Publication Date: 2025-11-27HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/136419
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-23
Filing Date
2024-12-03
Publication Date
2025-11-27

AI Technical Summary

Technical Problem

When building RAID groups using different types of ZNS SSDs, inconsistent logical block capacities lead to increased complexity in metadata management and wasted storage space.

Method used

By introducing hybrid flash drives into the storage system, logical blocks can be constructed using storage spaces of different granularities contained within them, resulting in consistent logical block capacity and simplified metadata management.

Benefits of technology

It achieves consistency in logical block capacity, reduces the complexity of metadata management, avoids storage space waste, and improves the reliability and efficiency of the storage system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024136419_27112025_PF_FP_ABST
    Figure CN2024136419_27112025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in embodiments of the present application are a storage system and a data storage method, which are used for reducing metadata management complexity. The storage system comprises: a plurality of flash disks, wherein at least one of the plurality of flash disks is a hybrid flash disk, a storage space of the hybrid flash disk comprises a first space and a second space, the first space comprises a plurality of erase blocks, and the second space comprises a plurality of zones; a virtualization operation is performed on the plurality of flash disks to form a storage pool, the storage pool comprising a plurality of logic blocks; a redundant array of independent disks (RAID) group is created on the basis of the storage pool, the RAID group comprising the plurality of logic blocks, the capacity of all the logic blocks being the same, wherein the storage space of a first logic block among the plurality of logic blocks at least comes from the first space and the second space, the first space provides a storage space for the first logic block at a page-level granularity, and the second space provides a storage space for the first logic block at a zone-level granularity.
Need to check novelty before this filing date? Find Prior Art

Description

A storage system and a data storage method

[0001] The present application claims priority from the Chinese patent application No. 202410650048.0 filed on May 23, 2024, and entitled "A storage system and a data storage method", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD

[0002] The present application relates to the field of storage, and in particular, to a storage system and a data storage method. BACKGROUND

[0003] A solid state disk (SSD) usually adopts an expensive dynamic random access memory (DRAM) cache flash translation layer (FTL) mapping table, and needs to reserve a large amount of storage space for garbage collection (GC). To reduce these overheads, a zoned namespace (ZNS) interface SSD has emerged. Referring to FIG. 1, in a ZNS interface SSD (referred to as ZNS SSD), the storage space is divided into multiple zones, and one zone includes one or more blocks. Therefore, the mapping granularity is much larger than the granularity of a page.

[0004] In a storage system (refer to FIG. 2), when a redundant array of independent disks (RAID) is composed of ZNS SSDs, the storage space is usually provided for the RAID group in the granularity of zone. Since the granularity of zone is larger than the granularity of the original page, if the RAID group contains multiple types of ZNS SSDs, and the sizes of the zones contained in the different types of ZNS SSDs are inconsistent, it is difficult to ensure that the capacities of different logical blocks in the RAID group are consistent.

[0005] When the capacities of the logical blocks in the RAID group are inconsistent, multiple capacities of logical blocks need to be recorded and managed at the same time, thereby causing complex metadata management. SUMMARY

[0006] Embodiments of the present application provide a storage system and a data storage method to reduce the complexity of metadata management.

[0007] In a first aspect, the present application provides a storage system, which includes a plurality of flash disks, at least one of the plurality of flash disks is a hybrid flash disk, and the plurality of flash disks can also include other types of flash disks, such as block-level flash disks or partition-level flash disks. The plurality of flash disks is subjected to virtualization to form a storage pool, the storage pool includes a plurality of logical blocks, each of the logical blocks is from a partition and an erase block provided by a different flash disk, a RAID group is constructed based on the storage pool, the RAID group includes a plurality of logical blocks, the storage system includes a hybrid flash disk 1, the hybrid flash disk includes a first space and a second space, the first space provides storage space to the logical blocks in a page granularity, and the second space provides storage space to the logical blocks in a partition granularity, that is, the first space and the second space provide storage space to the logical blocks in different granularities, in this case, the first space and the second space of the hybrid flash disk 1 can be used to jointly construct a logical block 1 in the plurality of logical blocks, so that the capacity of the logical block 1 is the same as the capacity of other logical blocks. Here, the capacity being the same is not absolute, as long as the difference is within an allowable range. In this way, for the RAID group, only one type of logical block capacity needs to be recorded, thereby simplifying the complexity of metadata management. Further, when the capacity of the logical blocks is consistent, the data stripe units included in the data stripe based on the logical blocks have the same number, so only one type of data stripe needs to be recorded, which can further simplify the complexity of metadata management. At the same time, since the data stripe units included in the data stripe have the same number, storage space waste can be avoided.

[0008] In a possible implementation, when the plurality of hybrid flash disks are all hybrid flash disks, the sizes of the partitions of the second spaces included in some of the plurality of hybrid flash disks are different, so that the first space and the second space included in the hybrid flash disk can be used to jointly construct a logical block, so that the capacities of the logical blocks in one RAID group are the same, thereby simplifying metadata management. It should be noted that the sizes of the partitions of the second spaces included in each of the plurality of hybrid flash disks can be different, that is, the sizes of the partitions of the second spaces included in each of the plurality of hybrid flash disks are different, or the sizes of the partitions of the second spaces included in some of the plurality of hybrid flash disks are different, and the sizes of the partitions of the second spaces included in some of the plurality of hybrid flash disks are the same.

[0009] In a possible implementation, the storage space of a logical block 2 in the plurality of logical blocks is from a hybrid flash disk 2, and the granularity at which the hybrid flash disk 2 provides storage space to the logical block 2 is a partition. The storage space of a logical block 3 in the plurality of logical blocks is from a hybrid flash disk 3, and the granularity at which the hybrid flash disk 3 provides storage space to the logical block 3 is a page.

[0010] In a possible implementation, the space 1 is configured in a part of flash memory particles included in the hybrid flash disk, and the space 2 is configured in a part of flash memory particles included in the hybrid flash disk 1. In this way, the capacity of the space 1 and the space 2 can be dynamically adjusted according to actual needs. In other implementations, the storage medium of the hybrid flash disk can include two, that is, the storage medium of the space 1 is different from the storage medium included in the space 2.

[0011] In a possible implementation, the hybrid flash disk includes an interface 1, an interface 2, a controller 1 and a controller 2, wherein the interface 1 is connected with the controller 1, and is configured to receive a read / write request / instruction through the interface 1, so as to read / write data from the space 1; and the interface 2 is connected with the controller 2, and is configured to receive a read / write request / instruction through the interface 2, so as to read / write data from the space 2. In this implementation, the space 1 and the space 2 are equivalent to two types of disks, that is, the space 1 corresponds to a Block SSD, and the space 2 corresponds to a ZNS SSD.

[0012] In a possible implementation, the hybrid flash disk includes an interface 3 and a controller 3, wherein the interface 3 is connected with the controller 3, and is configured to receive a read / write request / instruction through the interface 3, so as to read / write data from the space 3. In this implementation, which of the space 1 and the space 2 is used to read / write data is determined by the controller of the hybrid flash disk. Both the above two implementations can be used, and are not limited in the present application.

[0013] In a possible implementation, the storage space of each of the plurality of logical blocks is from different flash disks, so that when one or two of the flash disks used to construct the RAID group fails, data reconstruction can be performed through the data stored on the other flash disks, thereby improving the reliability of the storage system.

[0014] In a possible implementation, the RAID group is located in a disk frame, and the disk frame further includes a control unit, the control unit constructs the RAID group, and after constructing the RAID group, a mapping relationship between the logical block 0 and the hybrid flash disk 1 and the space 1 and the space 2 is established, for subsequent data writing into and reading from the hybrid flash disk 1.

[0015] In a possible implementation, the control unit is further configured to receive a write request, and determine the hybrid flash disk 1 and the space 1 and the space 2 corresponding to a logical address carrying data in the write request according to the mapping relationship established after constructing the RAID group, and then store the data into the page including the erase block of the space 1 and the partition included in the space 2.

[0016] In a possible implementation, the control unit is further configured to send a write instruction to the hybrid flash disk 1 before storing the data to the hybrid flash disk 1, the write instruction carrying the logical block address 1 and the length of the data 1, so that the hybrid flash disk determines, according to the length of the data 1, the page including the erase block in the space 1 and the partition included in the space 2, to which the data 1 is respectively stored.

[0017] In a possible implementation, the control unit is further configured to send a write instruction 1 to the hybrid flash disk 1 before storing the data to the hybrid flash disk 1, the write instruction 1 carrying the logical block address 1 and the length of the data 1, so that the hybrid flash disk 1 determines, according to the length of the data 1, the erase block capable of writing data, writes the data 1 into the page included in the determined erase block, and establishes the mapping relationship between the page and the logical block address 1; and send a write instruction 2 to the hybrid flash disk 1, the write instruction 2 carrying the logical block address 2 and the length of the data 2, so that the flash disk 2 determines, according to the length of the data 2, the partition capable of writing data, writes the data 2 into the partition, and establishes the mapping relationship between the partition identifier, the offset in the partition, and the logical block address 2.

[0018] In a second aspect, the present application further provides a data storage method applied to a storage system, the storage system including a redundant array of independent disks (RAID) group, the RAID group including a plurality of logical blocks, the plurality of logical blocks having the same capacity, the method including: obtaining a write request, the write request carrying data; and storing the data into a space 1 and a space 2 included in a hybrid flash disk 1 corresponding to a logical block 0 in the plurality of logical blocks, the space 1 providing storage space for the logical block 0 in a page granularity, and the space 2 providing storage space for the logical block 0 in a partition granularity.

[0019] In a possible implementation, the data has a logical block address, the logical block address being an address of the logical block 0, and the storing of the data into the space 1 and the space 2 included in the hybrid flash disk 1 corresponding to the logical block 0 in the plurality of logical blocks includes: determining the hybrid flash disk 1 and the space 1 and the space 2 corresponding to the logical block address according to a mapping relationship between the logical block address and the hybrid flash disk 1 and the space 1 and the space 2; and storing the data into a partition 1 of the space 2 and a page included in an erase block 1 of the space 1, respectively.

[0020] In a possible implementation, the method further includes: before storing the data into the partition 1 of the space 2 and the page included in the erase block 1 of the space 1, sending a write instruction to the hybrid flash disk 1, the write instruction carrying the logical block address and the length of the data.

[0021] In a possible implementation, the method further includes: before storing the data into the pages included in the erase block 1 of the space 1 and the partition 1 of the space 2 respectively, sending a write instruction 1 to the hybrid flash disk 1, the write instruction 1 carrying the logical block address 1 and the length of the data 1; sending a write instruction 2 to the hybrid flash disk 1, the write instruction 2 carrying the logical block address 2 and the length of the data 2; wherein the data includes the data 1 and the data 2, and the logical block address includes the logical block address 1 and the logical block address 2.

[0022] In a third aspect, the present application further provides a hybrid flash disk, comprising: a first space and a second space; the first space is configured for a first part of flash particles included in the hybrid flash disk, and the first space includes a plurality of erase blocks; the second space is configured for a second part of flash particles included in the hybrid flash disk, and the second space includes a plurality of partitions.

[0023] In a possible implementation, the hybrid flash disk includes a first interface, a second interface, a first controller and a second controller; the first interface is connected with the first controller, and the first interface is an input / output interface of the first space; the second interface is connected with the second controller, and the second interface is an input / output interface of the second space.

[0024] In a possible implementation, the hybrid flash disk includes a third interface and a third controller, the third interface is connected with the third controller, and the third interface is a shared port of the first space and the second space.

[0025] In a fourth aspect, the present application further provides a computer readable storage medium, including instructions, when the instructions are executed on a computer, causing the computer to perform the data storage method according to the second aspect.

[0026] In a fifth aspect, the present application further provides a computer program product, when the computer program product is executed on a computer, causing the computer to perform the data storage method according to the second aspect. BRIEF DESCRIPTION OF DRAWINGS

[0027] FIG. 1 is a schematic diagram of a presentation form of a ZNS SSD in the prior art on the host side;

[0028] FIG. 2 is a schematic diagram of constructing a RAID group by using different types of ZNS SSDs;

[0029] FIG. 3 is a schematic diagram of a presentation form of an HDD supporting a Block interface protocol in the prior art on the host side;

[0030] FIG. 4 is a schematic diagram of a presentation form of an SSD supporting a Block interface protocol in the prior art on the host side;

[0031] Fig. 5 is a schematic diagram of data striping on a constructed RAID group based on Fig. 2;

[0032] Fig. 6 is a schematic diagram of storage space waste in data striping on a constructed RAID group based on Fig. 2;

[0033] Fig. 7 is a schematic diagram of a storage system provided by the present application;

[0034] Figs. 8A-8B are schematic diagrams of a hardware structure of an SSD provided by the present application;

[0035] Fig. 9 is a schematic diagram of an internal storage structure of a flash memory chip included in the SSD;

[0036] Fig. 10 is a schematic diagram of constructing a RAID group provided by the present application;

[0037] Fig. 11 is a schematic diagram of another storage system provided by the present application;

[0038] Fig. 12 is a schematic diagram of another storage system provided by the present application;

[0039] Fig. 13 is a schematic diagram of another storage system provided by the present application;

[0040] Fig. 14 is a schematic diagram of another storage system provided by the present application;

[0041] Fig. 15 is a schematic diagram of another storage system provided by the present application;

[0042] Fig. 16 is a schematic diagram of another storage system provided by the present application;

[0043] Fig. 17 is a schematic diagram of another storage system provided by the present application. DETAILED DESCRIPTION

[0044] To make the purpose, technical solutions and advantages of the present application clearer, the following further describes specific embodiments of the present application with reference to the accompanying drawings.

[0045] To better understand the storage system provided by the embodiments of the present application and the RAID group constructed by the storage system, the following further describes these interface protocols.

[0046] Figure 3 is an abstract connection diagram of a mechanical hard disk drive (HDD) supporting the Block interface protocol and a host device. The HDD supporting the Block interface protocol is shown as a one-dimensional array of the entire LBA of the namespace on the host side, which facilitates the host to read, write, and overwrite data in any order without considering the underlying physical implementation, thereby simplifying the storage management of the host software. For the HDD supporting the Block interface protocol, the physical block address and the logical block address are in static correspondence.

[0047] For an SSD, data is usually read and written in a Page granularity and erased in a Block granularity, and the in-disk read-write granularity and the erase granularity are inconsistent. In the case of data rewriting, a blank Page needs to be found, that is, the updated data is written on the blank Page at a remote location, and the data of the original Page is marked as garbage data. In other words, the SSD adopts a remote data updating strategy, which means that the mapping relationship between the logical block address seen by the host side and the physical block address in the disk is not static but dynamically changing. Please refer to Figure 4. In order to be compatible with the Block interface protocol, an FTL layer is added in the SSD, and in order to support the FTL layer, the SSD needs to add expensive DRAM for caching the FTL mapping table. The larger the capacity of the SSD, the larger the mapping table, and the larger the required DRAM capacity. In addition, the SSD usually needs to include an over-provisioning (OP) space for garbage collection. The over-provisioning space refers to the capacity that is not available for user operation, and the size is the actual capacity of the SSD minus the available capacity for the user. Therefore, the above operations not only cause a large performance fluctuation and write amplification of the SSD, but also require a large capacity of DRAM cache and OP, which significantly increases the hardware cost.

[0048] In order to reduce the high overhead brought by the compatible Block interface protocol, in the ZNS SSD, the LBA seen by the host will be divided into multiple partitions, and generally sequential writing is performed in the partition, random writing cannot be performed, and in-place updating cannot be performed. If data needs to be updated, the entire partition needs to be reset before writing from the beginning again. In this case, the granularity of the address mapping table maintained by the storage device is a partition, and the granularity of the address mapping table maintained by the storage device supporting the Block interface protocol is a page, and the granularity of the partition is much larger than the granularity of the page, so the metadata is less, and the occupation of the DRAM can be reduced. At the same time, please refer to FIG. 2, in which the storage space of the ZNS SSD is divided into multiple physical partitions, and the LBA seen by the host is divided into multiple logical partitions, and the ZNS SSD aligns the granularity boundaries of the physical partition and the logical partition, that is, the mapping relationship between the physical partition and the logical partition realizes static one-to-one correspondence, so that the ZNS SSD can transfer the responsibility of data management to the host, and the task of garbage collection is completely performed by the host side. That is, when the logical partition is recycled, the host side is responsible for moving the valid data in the logical partition to another blank logical partition. Since the granularity of the logical partition and the physical partition is consistent, the SSD side only needs to directly erase the physical partition to be recycled, and does not need to perform garbage collection in the SSD, so it will no longer need to reserve a capacity space, and the computing performance requirement of the processor in the SSD will also be reduced.

[0049] Although the ZNS SSD overcomes some shortcomings of the Block SSD, such as only needing to maintain a coarse-grained address mapping table of the partition, the required DRAM is small; secondly, the partition reset will invalidate the entire partition, and the garbage collection operation in the ZNS SSD is no longer needed, eliminating performance fluctuations and excessive space supply. However, it still has deficiencies in other applications, for example, when a RAID group is constructed by using different types of ZNS SSDs, there will be certain problems.

[0050] When the types of ZNS SSDs used to build a RAID group are different, that is, the partition space sizes of different ZNS SSDs are different, the logical block capacities included in the built RAID group can be inconsistent, for example, the capacities of some logical blocks included in a RAID group are large, and the capacities of some logical blocks are small. It should be noted that as SSDs develop towards large disks (SSDs with storage capacity greater than 30 TB are usually referred to as SSD large disks). There are usually two ways to increase the capacity of an SSD. One is to increase the number of pages included in a single block, or the other is to increase the capacity of the pages themselves. Then in the process of development and evolution, there can be two different types of SSDs, one is a normal disk, and the other is a large disk. Therefore, the storage capacities of the blocks of the normal disk and the large disk are different, which further leads to different zone space sizes based on the blocks, and then the above-mentioned different types of ZNS SSDs can occur.

[0051] In FIG. 2, the capacity inconsistency of the logical blocks is shown. When the logical block capacities are inconsistent, a RAID group needs to record the capacities of multiple logical blocks. Further, based on FIG. 2, please refer to FIG. 5. When the RAID group is divided into multiple data stripes, there can be two types of data stripes. The first type of data stripe uses D1, D2, D3, and D4 four data shards to calculate the parity shards P and Q, that is, a 4+2 mode. The second type of data stripe uses D10 and D11 two data shards to calculate the parity shards P and Q, that is, a 2+2 mode. Compared with a single RAID mode, when a RAID group includes more than one type of data stripe, the lengths of multiple data stripes need to be recorded and managed, and when the data stripe lengths are different, the storage locations of the parity shards of the data stripes are different, so the storage locations of the parity shards of multiple data stripes need to be recorded and managed, thereby further increasing the complexity of metadata management, and the more types of ZNS SSDs in a RAID group and the more types of data stripes, the more difficult the management is.

[0052] On the other hand, when there are many types of ZNS SSDs, it is easy to cause unusable storage space, resulting in storage space waste. For example, please refer to FIG. 6. There is a ZNS SSD in the flash disk used to build a RAID group, which has a partition granularity much larger than that of other member disks, and cannot support the minimum 2+2 mode, that is, there is no other ZNS SSD with the same partition granularity to form a data stripe with it. Then the logical block constructed using the partition of the ZNS SSD can have space waste.

[0053] To solve the above technical problems, please refer to FIG. 7, an embodiment of the present application provides a storage system 700, which comprises a plurality of flash disks 701, at least one of the plurality of flash disks 701 is a hybrid flash disk, the storage space of the hybrid flash disk comprises a space 7011 and a space 7012, the space 7011 comprises a plurality of erase blocks 7012, and the space 7012 comprises a plurality of partitions. In the specific implementation process, the plurality of flash disks 701 can be subjected to virtualization operation to form a storage pool, the storage pool comprises a plurality of logical blocks, and the storage space of the plurality of logical blocks comes from the zones and erase blocks provided by the plurality of flash disks; after the storage pool is constructed, a RAID group 702 can be constructed based on the storage pool, the RAID group 702 comprises a plurality of logical blocks, and the storage space of a logical block 7021 in the plurality of logical blocks comes at least from the space 7011 and the space 7012, the space 7011 provides the storage space to the logical block 7021 with a first granularity, and the space 7012 provides the storage space to the logical block 7021 with a second granularity. In the embodiment of the present application, the first logical block is constructed by using the storage space with two different granularities, so that the capacity of the constructed first logical block is the same as the capacity of other logical blocks in the plurality of logical blocks, so that the capacity size of only one kind of logical block needs to be recorded in a RAID group, thereby the metadata management complexity can be reduced.

[0054] In the embodiments of the present application, the hardware structure of the hybrid flash disk includes the following two forms, which are introduced below respectively. Please refer to FIG. 8A. The SSD includes a main controller 801, a flash array 802 composed of a plurality of flash particles, and a cache 803, wherein the main controller 801 is connected with the host, the flash array 802 and the cache 803 respectively. Among them, the main controller 801 is responsible for some complex tasks, such as managing data storage, maintaining SSD performance and service life, etc. As an example, the main controller 801 is used to receive the access command of the host, convert the command into a command capable of directly accessing the flash array 802 after analyzing the command, and send it to the flash array 802, then get the access result and return it to the host. The main controller 801 is usually in the form of an application specific integrated circuit (ASIC), and can also be implemented based on a field programmable gate array (FPGA) or a central processing unit (CPU). In actual application, considering the cost, performance, power consumption and other factors, the controller is usually made into an ASIC chip. The cache 803 in the SSD is optional, usually implemented by dynamic random access memory (DRAM), used to store various data generated during operation, which is beneficial to improve the response speed of the controller to the inference device command. Part of the flash particles in the flash array 802 are configured into a space 7011, and part of the flash particles in the flash array 802 are configured into a space 7012. The main controller 801 further includes an interface 804 and a plurality of channel controllers. Among them, the interface is used for communication with the host. Through the plurality of channel controllers, the main controller 801 can operate multiple flash chips in parallel, thereby improving the underlying bandwidth. In this implementation manner, the number of the interface 804 is one, that is, the interface 804 and the main controller 801 are shared by the space 7011 and the space 7012, that is, the access to the space 7011 and the space 7012 is through the interface 804 and the main controller 801.

[0055] In some possible implementation manners, referring to FIG. 8B, the number of main controllers 801 is two, denoted as main controller 801A and main controller 801B, and the number of interfaces 804 is also two, denoted as interface 804A and interface 804B, where the interface 804A is connected with the main controller 801A, and the interface 804A is an input / output interface of the space 7011; the interface 804B is connected with the main controller 801B, and the interface 804B is an input / output interface of the space 7012. Wherein, the first interface can be any one of a serial advanced technology attachment (SATA) interface, a serial attached SCSI (SAS) interface or a peripheral component interconnect express (PCIe) interface; the second interface can be a non-volatile memory express (NVMe) interface or other interfaces capable of supporting a ZNS instruction set, where the ZNS instruction set is a set of storage device specific instructions for managing a zone namespace in a ZNS SSD.

[0056] In the above description, the SSD supporting the Block interface protocol is referred to as a Block SSD, and the SSD supporting the ZNS interface protocol is referred to as a ZNS SSD. In this application, the flash disk supporting both the Block interface protocol and the ZNS interface protocol is referred to as a hybrid flash disk, denoted as a ZB SSD. In the storage system 700 shown in FIG. 7, in addition to including the hybrid flash disk, of course, flash disks of other types, such as the Block SSD or the ZNS SSD described above, can also be included.

[0057] The flash array 802 is used to store various data, specifically, the flash array 802 can include one or more flash dies, each of which is usually in the form of a chip, and the specific type of flash is NAND flash. It should be noted that although flash is used as an example here, it can also be other types of non-volatile memory, such as phase change memory (PCM), resistive random access memory (RRAM), etc., without affecting the technical solutions of the present application. The distribution of the storage space of a flash die can be seen in FIG. 9, a flash die is divided into two planes, a plane includes multiple blocks, and a block is composed of a plurality of pages. As an example, 128 pages form a block, and 2048 blocks form a plane. The address of a page is called a physical block address (PBA). Depending on the manufacturer and manufacturing process, the typical value of a page is 4 kilobytes (KB), 8 KB, etc., and the typical value of a block is 8 megabytes (MB), 16 MB, etc. With the demand for large-capacity storage, the storage capacity of storage devices is growing, and the value of a block can be hundreds of megabytes.

[0058] The granularity of the space 7011 and the space 7012 to provide storage space to the logical block 7021 will be described below in conjunction with FIG. 9. The space 7011 includes a plurality of erase blocks, and as an example of the block shown in FIG. 9, a block is 8 MB, 1000 pages in a block, and a page is 8 KB. The space 7011 provides storage space to the logical block 7021 in page granularity. The space 7012 of the hybrid flash disk is divided into a plurality of partitions, and a partition includes one or more erase blocks. As an example of the block shown in FIG. 9, a block is 8 MB, and a partition includes 10 blocks, which is 80 MB. The first space provides storage space to the logical block 7021 in partition granularity. In some possible implementations, the space 7012 is divided into a plurality of PLOGs (Persistence Layer LOGs), and a PLOG includes one or more erase blocks.

[0059] It should be noted here that since the space 7011 provides storage space to the logical block 7021 in page granularity, the space 7011 should also include a reserved space OP for garbage collection in subsequent use.

[0060] After introducing the granularity concept of the storage space provided by the space 7011 and the space 7012 of the hybrid flash disk to the logical block 7021, the concept of the logical block included in the RAID group is further introduced in combination with the construction process of the RAID group. Assuming that the RAID type required to be created is RAID6, the EC redundancy ratio is 4+2, and the capacity size of the logical block to be constructed is 5MB, it can be known according to the above information that 6 logical blocks with a capacity of 5MB need to be constructed, which are denoted as logical block 0-logical block 5 here, and the logical block 0 is the logical block 7021. Please refer to FIG. 10, the storage system 700 includes hybrid flash disks, which are specifically denoted as ZB SSD1-ZB SSD6. The space 7011 in the ZB SSD1-ZB SSD6 provides different granularity of storage space to the logical block 0-logical block 5. The granularity of the storage space provided by the space 7012 of the ZB SSD1-ZB SSD6 to the logical block can be all different; the granularity of the storage space provided by the space 7012 of the ZB SSD1-ZB SSD6 to the logical block can be partially the same and partially different, for example, the granularity of the storage space provided by the space 7012 of the ZB SSD1-ZB SSD3 to the logical block is the same and is 80MB, the granularity of the storage space provided by the space 7012 of the ZB SSD3-ZB SSD6 to the logical block is the same and is 120MB, but different from the granularity of the storage space provided by the space 7012 of the ZB SSD1-ZB SSD3 to the logical block, which is 80MB. The granularity of the storage space provided by the first space 7011 of the ZB SSD1-ZB SSD6 to the logical block can be the same or different. When the granularity of the storage space provided by the first space 7011 of the ZB SSD1-ZB SSD6 to the logical block is different, it can be partially the same and partially different.

[0061] Before constructing the RAID group, the storage space of each ZB SSD is divided, and the space 7012 in the storage space of each ZNS SSD is divided into a plurality of partitions. The partition divided from the space 7012 of the ZB SSD is referred to as a physical partition, and the size of the physical partition included in one ZB SSD is the same. As an example, the size of one physical partition of the ZB SSD1 is 4MB, the size of one physical partition of the ZB SSD2 is 2MB, the size of one physical partition of the ZB SSD3 is 1.5MB, the size of one physical partition of the ZB SSD4 is 1MB, the size of one physical partition of the ZB SSD5 is 1MB, and the size of one physical partition of the ZB SSD6 is 1MB. The first space of the ZB SSD1-ZB SSD6 includes a plurality of erase blocks, which are referred to as physical erase blocks, and one physical erase block includes a plurality of pages.

[0062] After the physical zones of the ZB SSD1-ZB SSD6 are determined, the physical zones of the ZB SSD1-ZB SSD6 are then mapped as logical zones, and the physical erase blocks of the ZB SSD1-ZB SSD6 are mapped as logical erase blocks, and the logical zones and the logical erase blocks of the ZB SSD1-ZB SSD6 constitute a storage pool, which is used to provide storage space upward. In a specific implementation process, a logical block can be constructed based on the storage pool, so the logical block in the embodiment of the present application is constructed by the mapped logical zones and / or logical erase blocks. Taking the logical block 0 therein as an example, first, the logical zone 01 is taken from the storage pool, and the size of the logical zone 01 is 4M, which cannot provide a 5M storage space, if another logical zone of the same size is taken, the size of the two logical zones is 8M, which exceeds 5M, in this case, 128 pages in a logical erase block 01 can be taken from the storage pool, and the size of a page is 8KB, so the 128 pages in the logical erase block 01 can constitute a 5M logical block 0 with the logical zone 01, wherein the logical zone 01 corresponds to the physical zone 01 in the ZB SSD1, and the logical erase block 01 corresponds to a physical erase block 01 in the ZB SSD1; for the logical block 1, the logical zone 11 and the logical zone 12 can be taken from the storage pool, and the size of the logical zone 11 and the logical zone 12 is 2M, which is 4M in total, if another logical zone of the same size is taken, it is 6M in total, which exceeds 5M, in this case, 128 pages in a logical erase block 11 can be taken from the storage pool, and the size of a page is 8KB, so the logical erase block 11 and the logical zone 11 and the logical zone 12 can construct a 5M logical block 1, wherein the logical zone 11 and the logical zone 12 correspond to the physical zone 11 and 12 in the ZB SSD2 respectively, and the logical erase block 11 corresponds to a physical erase block in the ZB SSD2; for the logical block 2, the logical zone 21, the logical zone 22 and the logical zone 23 of 1.5MB can be taken from the storage pool, which is 4.5MB in total, and 64 pages in a logical erase block 21 are needed to be taken from the storage pool, and the size of a page is 8KB, so the logical erase block 21 and the logical zone 21, the logical zone 22 and the logical zone 23 can construct a 5M logical block. In this way, the remaining logical blocks can be constructed, and the capacity of the constructed logical blocks is consistent. The capacity of the logical blocks is consistent, that is, the capacity of the logical blocks is generally consistent, and the error is within an acceptable range, not absolutely consistent.

[0063] After the construction is completed, each logical block in the logical block group is assigned a piece of logical block address, and these logical block addresses constitute the logical block addresses of the constructed logical block group. As can be seen from the above construction process of the logical block, the logical block is not in a single mapping relationship with the physical partition and / or the physical erase block. Taking logical block 0 as an example, the storage space of logical block 0 is the physical partition and the physical erase block on ZB SSD1, that is, logical block 0 corresponds to physical partition 01 and physical erase block 01 on ZB SSD1, and therefore the corresponding relationship between the logical block address of logical block 0 and ZB SSD1 and space 7011 and space 7012 needs to be recorded for subsequent data reading and searching. Similarly, the mapping relationship between the logical block address of other logical blocks and other ZB SSD and space 7011 and space 7012 of other ZB SSD also needs to be recorded for subsequent data reading and searching. The mapping relationship can be seen from Table 1 below. It should be noted here that in FIG. 10, the logical partition and the physical partition, the logical erase block and the physical erase block are in a one-to-one correspondence, but when writing data to the ZB SSD, it is not necessary to write data to the physical erase block corresponding to the logical partition according to the mapping relationship shown in the figure, as long as there is a physical partition in space 7012 corresponding to the logical partition that can write data. The same applies to the first space of the ZB SSD.

[0064] Table 1

[0065] It should be noted that in the case of a hybrid flash disk including two interfaces and two controllers, it is necessary to establish a mapping relationship between the logical block address and the hybrid flash disk and space 7011 and space 7012, and in the case of a hybrid flash disk including one interface and one controller, it is necessary to establish a mapping relationship between the logical block address and the hybrid flash disk.

[0066] The above example process of constructing the RAID group is only as an example, and in the specific implementation process, other ways can also be used to construct, as long as the capacity of the constructed logical block is consistent, and the application embodiment does not limit it. The above constructed RAID group is the minimum allocation unit of the storage pool. When the storage service layer applies for storage space from the storage pool, the storage pool can provide one or more logical block groups to the storage service layer. Meanwhile, the RAID group includes multiple data stripes, and the multiple data stripes include multiple data stripe units. The storage space of the data stripe unit in one data stripe in the multiple data stripes comes at least from two different types of storage spaces in the hybrid flash disk, that is, the above-mentioned space 7011 and space 7012, and the storage space of the data stripe unit in the other data stripe can come from one type of flash space in the hybrid flash disk, for example, the space 7011 of the hybrid flash disk or the space 7012 of the hybrid flash disk.

[0067] In the specific implementation process, in the same RAID group, a flash disk is only involved in the construction of one logical block in principle, that is, the storage space in each logical block comes from different flash disks. For example, referring to the above construction process of the RAID group, the storage space of the logical block 0 comes from the ZB SSD1, the storage space of the logical block 1 comes from the ZB SSD2, the storage space of the logical block 2 comes from the ZB SSD3, the storage space of the logical block 3 comes from the ZB SSD4, the storage space of the logical block 4 comes from the ZB SSD5, and the storage space of the logical block 5 comes from the ZB SSD6. The storage space of each logical block comes from different hybrid flash disks. On the other hand, in the application embodiment, the source of the storage space of different logical blocks can be single source or multiple sources, in other words, the source of the storage space of the logical block 0 comes from the space 7011 and the space 7012 of the ZB SSD, and the source of the storage space of the logical block 3, the logical block 4 and the logical block 5 comes from the space 7012 of the ZB SSD. In some possible implementation manners, the source of the storage space of the logical block can also be the space 7011 of the ZB SSD.

[0068] In the embodiments of the present application, the logical block 7021 is constructed by mixing the two different granularity storage spaces included in the hybrid flash disk, so that the capacity of the constructed logical block 7021 can also be the same as the capacity of other logical blocks in the plurality of logical blocks, so that only one kind of logical block capacity needs to be recorded in a RAID group, thereby reducing the complexity of metadata management. Further, the RAID group can include a plurality of data stripes, and since the capacity of the plurality of logical blocks included in the RAID group is consistent, the number of data stripe units included in each data stripe in the plurality of data stripes included in the RAID is the same, so that only one kind of data stripe length and one kind of storage location of the check slice need to be recorded in a RAID group, thereby further simplifying the metadata management.

[0069] Further, the capacity of the logical blocks in the RAID group is consistent, so that the same capacity of the logical blocks can ensure that the calculation mode is the same when calculating the check data, thereby facilitating the use of software or hardware for acceleration. In addition, in the case that the capacity of the logical blocks in the RAID group is consistent, each logical block can participate in the division of the data stripe, thereby effectively utilizing the storage space of the logical blocks in the RAID group and avoiding the waste of space.

[0070] The construction process of the RAID group is introduced above, and the specific use process of the RAID group is introduced below after the construction of the RAID group is completed.

[0071] Please refer to FIG. 11, the RAID group is located in the disk frame 1100, the hybrid flash disk 1101 is included in the disk frame, and the disk frame further includes:

[0072] The control unit 1102 is in communication connection with the hybrid flash disk 1101, the control unit 1102 is used to execute the construction of the RAID group shown in FIG. 10, and after the construction of the RAID group, the mapping relationship between the logical block 0 and the hybrid flash disk 1101 and the space 7011 and the space 7012 needs to be established, which can be specifically referred to Table 1. In the specific implementation process, the control unit 1101 determines the source of the storage space of each to-be-constructed logical block according to the obtained information of the to-be-constructed logical block, such as the size of the to-be-constructed logical block is 5M, the number of to-be-constructed logical blocks is 6, and the record of the available storage space of each hybrid flash disk 1101 owned by itself. In order to ensure that there is always enough available space in the storage system 700 for creating a RAID group, the control unit 1102 can monitor the available storage space of each hybrid flash disk in real time, thereby obtaining the available storage space of the entire storage system 700.

[0073] Among them, the control unit 1102 can have various forms:

[0074] Form 1: Generally, the control unit 1102 includes a central processing unit (CPU) and a memory. The CPU is used to perform address translation and read / write data operations. The memory is used to temporarily store data to be written into the hybrid flash disk or data to be read from the hybrid flash disk and sent to the host.

[0075] The memory refers to an internal memory that directly exchanges data with the processor. It can read and write data at any time and has a very fast speed, and is used as a temporary data storage for an operating system or other programs that are running. The memory includes at least two types of memories, for example, the memory can be a random access memory or a read-only memory (ROM). For example, the random access memory is a dynamic random access memory (DRAM) or a storage class memory (SCM). The DRAM is a semiconductor memory, which is a volatile memory device like most random access memories (RAMs). The SCM is a composite storage technology that combines the characteristics of traditional storage devices and memories. The storage class memory can provide a faster read / write speed than a hard disk, but has a slower access speed than a DRAM and is more cost-effective than a DRAM. However, the DRAM and the SCM are only exemplary in the present embodiment, and the memory can also include other random access memories, such as a static random access memory (SRAM). For the read-only memory, for example, it can be a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), etc. In addition, the memory can also be a dual in-line memory module (DIMM), i.e., a module composed of dynamic random access memories (DRAMs), and can also be a solid state disk (SSD). In practical applications, the control unit can be configured with multiple memories and different types of memories. The present embodiment does not limit the number and type of the memory. In addition, the memory can be configured to have a power retention function. The power retention function refers to that when the system is powered off and then powered on again, the data stored in the memory will not be lost. The memory with the power retention function is called a non-volatile memory.

[0076] Form Two: The control unit 1102 is a programmable electronic component, such as a Data Processing Unit (DPU). The DPU has the versatility and programmability of a CPU, but is more specialized and can efficiently run on network packets, storage requests, or analysis requests. The DPU is distinguished from the CPU by a greater degree of parallelism (to handle a large number of requests). In some possible implementations, the DPU here can also be replaced by a Graphics Processing Unit (GPU), an embedded Neural-Network Processing Unit (NPU), or other processing chips. Generally, the number of control units 1102 can be one, two, or more. When the storage system 700 contains at least two control units 1102, the two control units 1102 can serve as backups for each other, so that when one of the control units 1102 fails, the entire hybrid flash disk under the control unit 1102 can be avoided from being unusable. When the number of control units 1102 is two or more, the hybrid flash disk and the control unit 1102 can have an ownership relationship, that is, each control unit 1102 can only access the hybrid flash disk belonging to it.

[0077] Form Three: The function of the control unit 1102 can be offloaded to the network card. In other words, in this implementation, the storage system 700 does not have a control unit inside, but the network card is used to complete the data read and write, address translation, and other computing functions. At this time, the network card is a smart network card. It can contain a CPU and a memory. In some application scenarios, the network card can also have a persistent memory medium, such as a Persistent Memory (PM), or a Non-Volatile Random Access Memory (NVRAM), or a phase change memory (PCM), etc. The CPU is used to perform address translation and read and write data operations. There is no ownership relationship between the network card and the hybrid flash disk in the storage system, and the network card can access any one of the multiple hybrid flash disks.

[0078] In some possible implementation manners, the storage device providing the storage space for the logical block at the first granularity can be a storage medium other than the hybrid flash disk supporting the Block interface protocol as described above, such as a storage class memory (SCM), a magnetoresistive random access memory (MRAM), or a hard disk drive (HDD), or other hard disks capable of supporting the Block interface protocol, without limitation.

[0079] Further, the control unit 1102 is further configured to receive a write request, and the write request carries data, and the data has a first logical block address.

[0080] The RAID group 701 can include one or more stripes. The data slices and the check slices included in the stripe can be referred to as stripe units. In the embodiments of the present application, the size of one stripe unit is taken as an example for description, which is 1M, but is not limited to 1M. Continuing with the above example, the logical block group created above includes logical block 0 to logical block 5, wherein logical block 0, logical block 1, logical block 2, and logical block 3 are data block groups, and logical block 4 and logical block 5 are check block groups. In the specific implementation process, when the received data cannot fill one data stripe, the received data can be temporarily stored in the memory first, and when the data stored in the memory reaches a certain value, for example, 8M, the data is divided into two groups of data slices, each group including four data slices (the data slices included in group 1 are data slice 00, data slice 01, data slice 02, and data slice 03; the data slices included in group 2 are data slice 10, data slice 11, data slice 12, and data slice 13), and the size of each data slice is 1MB. Then, the check slices of each group of data slices are calculated, and two check slices are obtained for each group (the check slices in group 1 are P00 and Q00; the check slices in group 2 are P10 and Q10), and the size of each check slice is also 1MB. The data in data slice 00 and data slice 10 is the data carried in the write request.

[0081] The control unit 1102 needs to determine whether there is an allocated logical block group before sending data to the hybrid flash disk. If there is, and the logical block group still has enough space to accommodate the data, the control unit 1102 can instruct the hybrid flash disk to write the data into the allocated logical block group. In a specific implementation process, taking data fragment 00 and data fragment 10 as an example, since the data carries a first logical block address, first determine the first logical block corresponding to the logical block address according to the first logical block address, for example, LBA200-LBA209. According to the mapping relationship in Table 1, the control unit 1102 can determine the hybrid flash disk corresponding to the logical block 0 and the first space and the second space of the hybrid flash disk, and then store the data fragment 00 and the data fragment 10 in the pages included in the first physical erase block of the first space of the hybrid flash disk and the first physical partition included in the second space, respectively. The first physical erase block here can be any physical erase block in the first space of the hybrid flash disk that can perform data writing, and the first physical partition can be any partition in the second space of the hybrid flash disk that can perform data writing.

[0082] Before the control unit 1102 writes the data fragment 00 and the data fragment 10 into the first physical erase block and the first physical partition, respectively, the control unit 1102 also sends a write instruction to the hybrid flash disk 703. Depending on the interface setting mode of the hybrid flash disk, the instruction sending mode here includes but is not limited to the following two modes, which are described below.

[0083] As mentioned in the above description, in the write operation within the partition, only sequential writing is supported, the LBA within a single partition is continuously distributed, and the write pointer (WP) always points to the next sequential write LAB position. In order to remember where the "sequential writing" is currently written to, if repeated writing is needed within a single partition, a partition reset operation needs to be performed.

[0084] Each partition has a series of states, which need to be determined by these states. All partitions are in the Empty state before use. If writing is needed, the partition needs to be adjusted from the Empty state to the Open state. The capacity of each partition has an upper limit. After the writing amount reaches the capacity upper limit of the partition, the partition will be in the Full state. If there is a maximum number of partitions limit in the ZNS SSD, and the number of partitions in the Open state reaches the upper limit, and a new partition needs to be opened, one of these limits needs to be switched to the Close state. The partition in the Close state can still be written, but it needs to be in the Open state first.

[0085] In the first way, the control unit sends a write instruction to the hybrid flash disk, and the write instruction carries the logical block addresses LBA200-LBA209 and the length of the data. After receiving the write instruction, the main controller of the hybrid flash disk can know the division of the storage space of the hybrid flash disk, and thus the main controller of the hybrid flash disk divides the data according to the length of the data, that is, determines whether the data is stored in the first space of the hybrid flash disk, or stored in the second space, or part of the data is stored in the first space and part of the data is stored in the second space. As an example, assuming that the length of the data is 1M and the size of a physical partition of the hybrid flash disk is 1M, since the controller of the hybrid flash disk can know the current position pointed by the write pointer, it can determine the size of the remaining capacity of the physical partition according to the current position pointed by the write pointer and the size of the physical partition. If the size of the remaining capacity of the physical partition that can be written is only 0.5M, then in this case, 0.5M of the above data is stored in the partition of the second space, and the remaining 0.5M is stored in a page included in a physical erase block of the first space.

[0086] In the second way,

[0087] The control unit sends a first write instruction to the hybrid flash disk through the first interface, and the first write instruction carries the logical block addresses LBA200-LBA204 (first sub-logical block addresses), data fragment 00, and the length of data fragment 00 (i.e., first data). After receiving the first write instruction, the ZNS SSD1 determines the first physical partition that can perform data writing according to the length of data fragment 00, according to the logical block addresses LBA200-LBA204 carried in the first write instruction and the data length of data fragment 00 and data fragment 00, and then writes data fragment 00 into the first physical partition.

[0088] After the first data is written, the corresponding relationship between the logical block addresses of the logical partition and the physical block addresses of the physical partition is established, and the mapping relationship is that the logical block address corresponds to the physical partition identifier and the offset in the physical partition. Taking logical block 0 as an example, the mapping relationship between the logical block addresses LBA200-LBA204 in the logical block addresses LBA200-LBA209 of logical block 0 and the first physical partition 01 and the offset in the first physical partition 01 is established, which can be seen from Table 2 below.

[0089] Table 2

[0090] In the embodiment of the present application, the control unit 1102 also sends a second write instruction to the hybrid flash disk, and the second write instruction carries the logical block addresses LBA205-LBA209 (second sub-logical block addresses), the data segment 10 (second data), and the length of the data segment 10. After receiving the second write instruction, the hybrid flash disk determines the first physical erase block in which the data can be written according to the length of the data segment 10 carried in the second write instruction, and then stores the data segment 10 into the pages included in the first physical erase block. After the second data write is completed, the Block SSD1 needs to establish the mapping relationship between the physical block addresses of the pages in which the data segment 10 is located and the logical block addresses LBA205-LBA209, which is shown in Table 3 below. This mapping relationship is added (first write) or changed (overwritten) in the FTL. After the mapping relationship is established, when reading the data, the SSD first looks up the PBA corresponding to the LBA of the data in the FTL, and then reads the corresponding data according to the PBA.

[0091] Table 3

[0092] The above describes the process of writing data to the flash disk, and the process of reading data from the flash disk is described below. After receiving the read request, the control unit 1102 determines the second space of the hybrid flash disk corresponding to the logical block addresses LBA200-LBA204 according to the logical block addresses LBA200-LBA209 carried in the read request and the corresponding relationship in Table 1 described above, sends a first read instruction to the hybrid flash disk, and the first read instruction carries the logical block addresses LBA200-LBA204. After receiving the first read instruction, the hybrid flash disk determines the physical partition identifier corresponding to the logical block addresses LBA200-LBA204 and the start physical block address and the end physical block address in the physical partition according to the mapping relationship in Table 2 described above, reads the data with the corresponding length from the physical partition corresponding to the physical partition identifier according to the physical partition identifier and the start physical block address and the end physical block address, and sends the data to the host.

[0093] Correspondingly, the control unit 1102 also determines the first space of the hybrid flash disk corresponding to the logical block addresses LBA205-LBA209 according to the logical block addresses LBA205-LBA209, and then sends a second read instruction to the hybrid flash disk, and the second read instruction carries the logical block addresses LBA205-LBA209. After receiving the second read instruction, the hybrid flash disk maps the logical block addresses LBA205-LBA209 carried in the second read instruction to the physical block addresses according to the logical block addresses LBA205-LBA209 carried in the second read instruction and the mapping relationship in Table 3 described above, and then reads the corresponding data according to the physical block addresses and sends the data to the host.

[0094] Continuing with the above example, during a read operation, if the data of data shard 00, data shard 01, data shard 03, and the data of check shard 00, check shard 01 can be read normally, but the flash disk where the data of data shard 02 is located fails and cannot normally read data, in this case, the data of data shard 00, data shard 01, data shard 02, and data shard 03 can be reconstructed through the data of data shard 00, data shard 01, data shard 03, and check shard 00 and check shard 01, so that the damaged data shard can be reconstructed, thereby greatly improving the data reliability.

[0095] The user accesses data through an application program, and the computer running the application program is usually referred to as an "application server" or a "host". Therefore, referring to FIG. 12, the storage system shown in FIG. 11 further includes a host, and the number of hosts can be one or more in a specific implementation. The host can be a physical machine or a virtual machine. The host includes, but is not limited to, a desktop computer, a server, a notebook computer, and a mobile device. The host accesses the storage system through a fiber switch to access data. However, the switch is an optional device, and the application server can also directly communicate with the storage system through a network. The network can refer to a local area network (LAN), and the LAN can be implemented using various structures, devices, and protocols, for example, the structure of the LAN can include Ethernet, wireless, and the like. The data communication protocols used in the LAN can include a transmission control protocol (TCP), a user data protocol (UDP), an Internet protocol (IP), a hyper text transfer protocol (HTTP), a wireless access protocol (WAP), a handheld device transport protocol (HDTP), a session initiation protocol (SIP), and the like; or the fiber switch can be replaced with an Ethernet switch, an InfiniBand switch, a RoCE (RDMA over Converged Ethernet) switch, and the like. In the storage system shown in FIG. 12, the RAID group construction process shown in FIG. 10 can be completed by the host.

[0096] In some possible implementations, the RAID group is located in a disk frame, and the storage system further includes:

[0097] A controller is in communication connection with the disk frame, and the controller is configured to perform the building of the RAID group and to establish the mapping relationship between the first logical block and the hybrid flash disk and the first space and the second space after the building of the RAID group is completed.

[0098] Wherein, please refer to FIG. 13, the controller can be a component included in the engine. Take an example of the engine including two controllers to illustrate. The controller 0 and the controller 1 have a mirror channel therebetween. When the controller 0 writes a piece of data into its memory, the controller 0 can send a copy of the data to the controller 1 through the mirror channel, and the controller 1 stores the copy in its local memory. Thus, the controller 0 and the controller 1 back up each other. When the controller 0 fails, the controller 1 can take over the business of the controller 0. When the controller 1 fails, the controller 0 can take over the business of the controller 1, thereby avoiding the hardware failure to cause the entire storage system to be unavailable. When four controllers are deployed in the engine, the mirror channel exists between any two controllers, and thus any two controllers back up each other.

[0099] On the hardware, the controller at least includes a processor and a memory. The processor is a CPU, which is configured to process the data access request from outside the storage system and to process the request generated inside the storage system. For example, when the processor receives the write data request sent by the host through the front-end port, the processor temporarily saves the data in the data request in the memory. When the total amount of data in the memory reaches a certain threshold, the processor sends the data stored in the memory to the flash disk through the back-end port for persistent storage.

[0100] The engine further includes a front-end interface and a back-end interface. The front-end interface is configured to communicate with the host, thereby providing the storage service for the host. The back-end interface is configured to communicate with the flash disk. In the specific implementation process, the plurality of flash disks can be in the form of a hard disk frame, which communicates with the engine through the back-end port. The back-end interface exists in the engine in the form of an adapter card. Two or more back-end interfaces can be used to connect multiple hard disk frames on one engine. Alternatively, the adapter card can be integrated on the mainboard. In this case, the adapter card can communicate with the processor through the PCIE bus.

[0101] Depending on the communication protocol between the engine and the disk enclosure, the disk enclosure may be a Serial Attached SCSI (SAS) disk enclosure, a Non-Volatile Memory Express (NVMe) disk enclosure, an Internet Protocol (IP) disk enclosure, or other types of disk enclosures. SAS disk enclosures use the SAS 3.0 protocol, and each enclosure supports 25 SAS disks. The application server connects to the disk enclosure via an onboard SAS interface or a SAS interface module. NVMe disk enclosures are more like a complete computer system, with NVMe disks plugged into the NVMe disk enclosure. The NVMe disk enclosure then connects to the application server via a RAMA port.

[0102] In some possible implementations, the engine can have hard drive slots, and flash drives can be deployed directly on the engine. In this case, the engine can also have a back-end port, through which a hard drive enclosure can be connected when the flash drive space is insufficient, in order to achieve the purpose of expansion.

[0103] Furthermore, please refer to Figure 14. The storage system described in Figure 13 also includes a host, which is communicatively connected to the front-end port of the engine. In the storage system shown in Figure 14, the RAID group construction process shown in Figure 10 can be executed by the host.

[0104] In some possible implementations, based on the storage system shown in Figure 7, the storage system further includes one or more hosts. The hosts are described in Figure 12 and will not be repeated here. In this scenario, the communication connection methods between multiple flash drives (which can be block-level flash drives, partition-level flash drives, or hybrid flash drives as described above) and the host include, but are not limited to, the following methods, which are described below.

[0105] Method 1: Please refer to Figure 15. Multiple flash drives can be directly plugged into the slots of the host computer. The interface type of the slot can be Serial ATA (Serial Advanced Technology Attachment, SATA), SAS, PCIe, or NVMe, etc. Among them, the SAS interface adds SCSI technology to the SATA interface. This technology is mainly used to improve the stability and security of data transmission.

[0106] In some possible implementations, the flash disks can also be placed in a rack with a hard disk holder, which can be a plastic or metal frame, and the hard disk holder includes a plurality of hard disk slots, specifically, 4, 8, 16, or 32, or other numbers, and the hard disk holder includes an interface for communication with the host, for example, through a fiber switch, an Ethernet switch, an InfiniBand switch, a RoCE (RDMA over Converged Ethernet) switch, and the like. Of course, in the specific implementation process, the host can also be communicated through a network, which can be a LAN (Local Area Network), and the LAN can be implemented by using various structures, devices, and protocols, for example, the structure of the LAN can include Ethernet, wireless, and the like. The data communication protocols used in the LAN can include TCP (Transmission Control Protocol), UDP (User Datagram Protocol), IP (Internet Protocol), HTTP (Hyper Text Transfer Protocol), WAP (Wireless Access Protocol), HDTP (Handheld Device Transport Protocol), SIP (Session Initiation Protocol), and the like. In the specific implementation process, the plurality of hard disks can be located in the same rack, or can be located in different racks and distributed in different places, and remotely connected to the host through a gateway or a router.

[0107] In this implementation, the process of constructing the RAID group can be performed by the host, and of course, the host can also be offloaded to other special computer devices, which can be devices designed or programmed to only perform the RAID group construction function, such as a DPU or an NPU or an intelligent network card, and the like, which are not specifically limited in the embodiments of the present application. The process of constructing the RAID group by the host can be referred to as described in detail above, and will not be repeated here. It needs to be noted again that in the construction of the RAID group, a single flash disk can only participate in the construction of one logical block in the same RAID group, so that when one of the flash disks or two of the flash disks fail, the original data can be recovered through the data stored in the normal flash disk, so that data loss can be avoided.

[0108] After the RAID group is constructed, only one of the logical blocks included in the RAID group requires that the storage space of the logical block is composed of the storage space of the ZNS SSD and the storage space of the Block SSD, and it is not required that the storage space of all logical blocks is multi-sourced, that is, it is required that the storage space of all logical blocks is composed of the storage space of the ZNS SSD and the storage space of the Block SSD.

[0109] When the second hard disk group is connected to the host in the form of a disk frame, the disk frame can include one or more control units. The one or more control units can be introduced with reference to the control unit 1102 shown in FIG. 11, and will not be described here. It should be noted that in this scenario, the user mainly uses ZNS SSD to construct the RAID group, and the Block SSD is only used to supplement the capacity of the logical block, and does not require a large capacity. In order to save costs while ensuring the independence of each hard disk, a small-capacity mutually pluggable storage block can be used to replace the ordinary Block SSD.

[0110] In some possible implementation manners, the storage system shown in FIG. 11 can also be applied to a distributed scenario. Please refer to FIG. 16. In this scenario, a computing node cluster and a storage node cluster are included. The computing node cluster includes one or more computing nodes, and each computing node can communicate with each other. The computing node is a computing device, such as a server, a desktop computer, or a controller of a storage array. In hardware, the computing node at least includes a processor, a memory, and a network card. The processor is a central processing unit (CPU) for processing data access requests from outside the computing node or requests generated inside the computing node. For example, when the processor receives a write data request sent by a user, the processor temporarily saves the data in the write data request in the memory. When the total amount of data in the memory reaches a certain threshold, the processor sends the data stored in the memory to the storage node for persistent storage. In addition, the processor is also used for data computing or processing, such as metadata management, data deduplication, data compression, virtual storage space, and address translation. In actual application, the number of CPUs is often more than one, and each CPU has one or more CPU cores. The number of CPUs and the number of CPU cores are not limited in the embodiments of the present application. The memory can be introduced with reference to the memory shown in FIG. 9, and will not be described here.

[0111] Any one of the computing nodes can access any one of the storage nodes in the storage node cluster through the network. The storage node cluster includes a plurality of storage nodes, and the storage node here can be the storage system shown in FIG. 11. In a distributed scenario, the flash disks that build a RAID group can be different flash disks from one storage node or flash disks from different storage nodes. When the flash disks of a RAID group are flash disks from different storage nodes, data recovery can be performed through the data stored in the flash disks in the normal storage nodes when one of the storage nodes fails, thereby improving the high reliability of the storage system.

[0112] Further, in the embodiments of the present application, different types of flash disks can be used to build a RAID group, that is, the storage system provided in the embodiments of the present application can be compatible with different types of flash disks. In this way, after a flash disk in the storage system fails, any type of flash disk can be used for replacement, for example, after a ZB SSD in the storage system fails, a ZB SSD can be used for replacement, a Block SSD can also be used for replacement, or a ZNS SSD can also be used for replacement, and none of them will affect the construction of the logical block, thereby improving the compatibility of the system.

[0113] In some possible implementation manners, the storage system shown in FIG. 11 can also be applied to a storage-computing integrated scenario in a distributed scenario, please refer to FIG. 17. In the storage-computing integrated scenario, the control unit 1102 shown in FIG. 11 can be a server or a processor included in a desktop computer. The server is a kind of computing device, for example, an Advanced RISC Machine (ARM) server or an X86 server can be used as the server herein. In hardware, the server includes other components such as a memory, a network card and a hard disk in addition to the processor. The processor, the memory, the network card and the hard disk are connected through a bus. Among them, the processor and the memory are used to provide computing resources. Specifically, the processor is a central processing unit, which is used to process data access requests from outside the server and is also used to process requests generated inside the server. For example, when the processor receives a write data request, the data in the write data request is temporarily stored in the memory. When the total amount of data in the memory reaches a certain threshold, the processor sends the data stored in the memory to the hard disk for persistent storage. Here, "persistent" refers to the ability of a flash disk to maintain recorded data after power failure. In addition, the processor is also used for data computing or processing, such as metadata management, duplicate data elimination, data compression, data verification, virtual storage space and address translation, etc. In actual application, the number of CPUs can be multiple, and each CPU has one or more CPU cores. The number of CPUs and the number of CPU cores are not limited in the embodiments of the present application. The memory can refer to the memory included in FIG. 1, and will not be described here.

[0114] In the embodiments of the present application, the server in the application scenario can be installed in a cabinet, and the cabinet can be provided with a plurality of slots. The number of slots can be 4, 8, 16, 32 or other suitable numbers, and each slot is used to accommodate one server. In the specific implementation process, the storage system is scalable. In some possible implementation manners, the server can be inserted into or removed from the cabinet. The specific setting can be made according to the actual situation, and the storage capacity of each server can be any integer multiple of 4TB, such as 8TB, 12TB, 16TB, 32TB, etc.

[0115] In a second aspect, the embodiments of the present application further provide a data storage method, which can be applied to the storage system shown in FIG. 7 in the first aspect. The data storage method can be specifically referred to the process of writing data to the flash disk by the control unit 1102 in the first aspect after receiving the write request. To avoid redundancy, the process is not described here. It should be noted that the execution subject of the data storage method will be slightly different based on the architecture of the specific storage system. In the specific implementation process, the execution subject of the data storage method can be the control unit shown in FIG. 12 in the first aspect, the host shown in FIG. 12, or the engine shown in FIG. 13.

[0116] In a third aspect, the embodiments of the present application further provide a computer readable medium, which includes instructions, when running on a computer, causes the computer to execute the data storage method in the second aspect.

[0117] In a fourth aspect, the embodiments of the present application further provide a computer program product, when running on a computer, causes the computer to execute the data storage method in the second aspect.

[0118] The method provided by the embodiments of the present application can be implemented by software, hardware, firmware or any combination thereof, entirely or partially. When implemented by software, the method can be implemented in the form of a computer program product, entirely or partially. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiments of the present application is entirely or partially generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user equipment or other programmable device. The computer instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless. The computer readable storage medium can be any available medium accessible by a computer or a data storage device such as a server, data center, etc. integrated with one or more available media. The available media can be magnetic media (such as floppy disk, hard disk, magnetic tape), optical media (such as digital video disc (digital video disc, DVD)) or semiconductor media, etc.

[0119] After introducing the storage system provided by the embodiments of the present application, the application scenarios of the storage system provided by the embodiments of the present application are introduced, including but not limited to the following several scenarios:

[0120] The first kind: the storage system provided by the embodiments of the present application can support artificial intelligence applications, machine learning applications, big data analysis applications and many other types of applications. The rapid growth of such applications is driven by three technologies: deep learning (Deep Learn, DL), graphics processing unit (Graphics Processing Unit, GPU) and big data. Deep learning is a computational model that uses a large-scale parallel neural network inspired by the human brain. GPU is a modern processor with thousands of cores, which is very suitable for running algorithms that roughly match the parallel nature of the human brain.

[0121] The second kind: the storage system provided by the embodiments of the present application can be used in a neuromorphic computing environment. Neuromorphic computing is a form of computing that mimics brain cells. To support neuromorphic computing, the architecture of interconnected "neurons" replaces the traditional computing model with low-power signals transmitted directly between neurons to achieve more efficient computing.

[0122] The third kind: the storage system provided by the embodiments of the present application can also be configured to support the storage or use of blockchain. Such a blockchain can be embodied as a growing list of records, called blocks, which are linked and protected using cryptography. Each block in the blockchain can contain a hash pointer as a link to the previous block, a timestamp, transaction data, etc. This structure makes it very difficult to modify and tamper with data. With the continuous development of technology, blockchain has been widely used in finance, logistics, medical care, public services and other fields, providing new solutions for data security and reliability.

[0123] Of course, the storage system provided by the present application can also be applied to other application scenarios, such as big data analysis, edge scenarios, etc., which are not limited in the embodiments of the present application.

[0124] In summary, the above is only a specific embodiment of the present application, but the protection scope of the present application is not limited thereto, any change or replacement within the technical scope disclosed by the present application should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A storage system, characterized by, The method comprises: a plurality of flash disks, wherein at least one of the plurality of flash disks is a hybrid flash disk, the storage space of the hybrid flash disk comprises a first space and a second space, the first space comprises a plurality of erase blocks, and the second space comprises a plurality of zones; performing a virtualization operation on the plurality of flash disks to form a storage pool, the storage pool comprising a plurality of logical blocks, the storage space of the plurality of logical blocks being from the zones and the erase blocks provided by the plurality of flash disks; creating a redundant array of independent disks (RAID) group based on the storage pool, the RAID group comprising a plurality of logical blocks, different logical blocks being from different flash disks, and the capacity of each logical block being the same, wherein the storage space of a first logical block in the plurality of logical blocks is at least from the first space and the second space, the first space providing storage space for the first logical block in a page granularity, and the second space providing storage space for the first logical block in a zone granularity.

2. The storage system of claim 1, wherein, The plurality of flash disks are all hybrid flash disks. The sizes of the zones included in the first space of some of the plurality of hybrid flash disks are different.

3. The storage system of claim 1, wherein, The first space is configured by a first part of flash particles included in the hybrid flash disk, and the second space is configured by a second part of flash particles included in the hybrid flash disk.

4. The storage system according to any of claims 1-3, characterized in that, The hybrid flash disk comprises a first interface, a second interface, a first controller, and a second controller. The first interface is connected with the first controller, and the first interface is an input / output interface of the first space. The second interface is connected with the second controller, and the second interface is an input / output interface of the second space.

5. The storage system of any of claims 1-3, wherein, The hybrid flash disk comprises a third interface and a third controller, the third interface is connected with the third controller, and the third interface is a shared interface of the first space and the second space.

6. The storage system of any of claims 1-3, wherein, The RAID group is located in a disk frame, and the disk frame further comprises: a control unit configured to create the RAID group based on the storage pool; and establish a mapping relationship between the first logical block and the hybrid flash disk and the first space and the second space.

7. The storage system of claim 6, wherein, The control unit is further configured to: receive a write request, the write request carrying data and a first logical block address pointing to the first logical block; determine the hybrid flash disk corresponding to the first logical block address and the first space and the second space according to the mapping relationship; store the data in a page included in a first erase block of the first space and a first zone of the second space, respectively.

8. The storage system of claim 7, wherein, The control unit is further configured to: before storing the data in a page included in a first erase block of the first space and a first zone of the second space, respectively, send a write instruction to the hybrid flash disk, the write instruction carrying the first logical block address and the length of the data.

9. The storage system of claim 5, wherein, The hybrid flash disk comprises a first interface and a second interface, the first interface is an input / output interface of the first space, the second interface is an input / output interface of the second space, and the control unit is further configured to: sending, through the first interface, a first write instruction to the hybrid flash disk, the first write instruction carrying a first sub-logical block address and a length of first data; sending, through the second interface, a second write instruction to the hybrid flash disk, the second write instruction carrying a second sub-logical block address and a length of second data; wherein the first logical block address comprises the first sub-logical block address and the second sub-logical block address, and the data comprises the first data and the second data.

10. A data storage method, characterized by, The method is applied to a storage system comprising a redundant array of independent disks (RAID) group, the RAID group comprising a plurality of logical blocks, the plurality of logical blocks having the same capacity, and the method comprising: obtaining a write request, the write request carrying data; storing the data into a first space and a second space of a hybrid flash disk corresponding to a first logical block of the plurality of logical blocks, the first space providing storage space for the first logical block in a page granularity, the second space providing storage space for the first logical block in a zone granularity, the first space comprising a plurality of erase blocks, and the second space comprising a plurality of zones.

11. The method of claim 10, wherein, The write request further comprises a first logical block address pointing to the first logical block, and the storing of the data into the first space and the second space of the hybrid flash disk corresponding to the first logical block of the plurality of logical blocks comprises: determining the first space and the second space of the hybrid flash disk corresponding to the first logical block address according to a mapping relationship between the first logical block and the hybrid flash disk and the first space and the second space; storing the data into a page of a first erase block of the first space and a first zone of the second space.

12. The method of claim 11, wherein, The method further comprises: sending, to the hybrid flash disk, a write instruction before storing the data into the page of the first erase block of the first space and the first zone of the second space, the write instruction carrying the first logical block address and a length of the data.

13. The method of claim 11, wherein, The hybrid flash disk comprises a first interface and a second interface, the first interface being an input / output interface of the first space, and the second interface being an input / output interface of the second space, and the method further comprises: sending, through the first interface, a first write instruction to the hybrid flash disk before storing the data into the page of the first erase block of the first space and a second zone of the second space, the first write instruction carrying a first sub-logical block address and a length of first data; sending, through the second interface, a second write instruction to the hybrid flash disk, the second write instruction carrying a second sub-logical block address and a length of second data; wherein the data comprises the first data and the second data, and the first logical block address comprises the first sub-logical block address and the second sub-logical block address.

14. A computer-readable storage medium, characterized in that, comprising instructions which, when executed on a computer, cause the computer to carry out the method of any of claims 10-13 above.

15. A computer program product, characterised in that, comprising instructions which, when executed on a computer, cause the computer to carry out the method of any of claims 10-13 above.

Citation Information

Patent Citations

  • Method and device for controlling power consumption of electronic device

    CN101446838A

  • Storage system, storage management device, storage, hybrid storage device and storage management method

    CN106326132A

  • Storage management method and system

    CN109213430A

  • Multimode storage management system

    US20170139837A1