WO2023045483A1 - 一种存储设备、数据存储方法及存储*** - Google Patents

一种存储设备、数据存储方法及存储*** Download PDF

Info

Publication number
WO2023045483A1
WO2023045483A1 PCT/CN2022/103741 CN2022103741W WO2023045483A1 WO 2023045483 A1 WO2023045483 A1 WO 2023045483A1 CN 2022103741 W CN2022103741 W CN 2022103741W WO 2023045483 A1 WO2023045483 A1 WO 2023045483A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
storage unit
layer
storage device
Prior art date
Application number
PCT/CN2022/103741
Other languages
English (en)
French (fr)
Inventor
张瑛
程龙
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP22871544.7A priority Critical patent/EP4394574A1/en
Publication of WO2023045483A1 publication Critical patent/WO2023045483A1/zh
Priority to US18/613,617 priority patent/US20240231645A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation

Definitions

  • the present application relates to the field of data storage, and in particular to a storage device, a data storage method and a storage system.
  • a single storage particle can store more and more information bits, such as quad level cell (QLC), Each QLC can store 4 bits of information; compared with a single level cell (SLC) in which a single storage particle can only store 1 bit of information, the storage density of QLC is increased by 4 times, but the read rate of SLC Write speed is faster than QLC.
  • QLC quad level cell
  • SLC single level cell
  • the storage system converts the QLC of the data stored in the hard disk to SLC, or converts the SLC of the data stored in the hard disk to QLC.
  • the storage capacity occupied by the SLC decreases.
  • the SLC used to accelerate the reading and writing of the hard disk disappears completely, resulting in the failure of the storage system. Read and write performance suffers.
  • the present application provides a storage device, a data storage method and a storage system, which solve the problem that hardware acceleration cannot be performed in the storage device.
  • the present application provides a storage device, including a control unit, a hot spare area, and a data area.
  • the storage function of the data area is provided by the first storage unit set included in the storage device, and the first storage unit set includes a plurality of first-level storage units; the storage function of the hot spare area is provided by a plurality of storage units included in the storage device.
  • the storage unit of the second layer is provided, and the number of bits that can be stored in the storage unit of the first layer is greater than the number of bits that can be stored in the storage unit of the second layer.
  • the hot spare area is used as a cache of the storage device to temporarily store the target data; and under certain conditions, the control unit is used to write the target data stored in the hot spare area into the data area.
  • the hot standby area is used as the cache of the data area. Since the number of bits that can be stored in the second layer storage unit corresponding to the hot standby area is less than the number of bits that can be stored in the first layer storage unit corresponding to the data area, the hot standby area The data read and write performance of is higher than the data read and write performance of the data area.
  • the storage device temporarily stores the target data in the hot spare area, and when receiving a read request for reading the target data, the storage system will preferentially access the hot spare area, thereby improving the storage capacity of the storage device. data access efficiency. Since the hot spare area always exists in the storage device, the data caching function provided by the hot spare area will never disappear, avoiding the problem of data read and write speed reduction caused by the disappearance of the SLC in the usual technology.
  • the storage device writes (or migrates) the target data stored in the hot spare area to the data area, and the target data is stored persistently in the data area of the storage device, so that the storage device can It is divided into cache (hot standby area) and persistent storage (data area), and then realizes hardware acceleration inside the storage device, improving the data access performance of the storage device.
  • cache hot standby area
  • data area persistent storage
  • the hot spare area is provided by the storage device, and the hot spare area can be used as the cache of the storage device, in the hardware acceleration scenario, there is no need to add additional high-performance storage for the cache to the storage device. media, reducing the cost of hardware acceleration for storage devices.
  • the first layer storage unit is one of a double-level storage unit (multi-level cell, MLC), a triple-level storage unit (triple-level cell, TLC) and QLC
  • the second layer storage unit is SLC.
  • the storage unit of the first layer is one of TLC and QLC
  • the storage unit of the second layer is one of SLC and MLC.
  • the storage unit on the first layer is QLC
  • the storage unit on the second layer is one of SLC, MLC, and TLC.
  • the data read and write speed of the storage units of the first layer is lower than that of the storage units of the second layer.
  • the service life of the storage units in the second layer is higher than that of the storage units in the first layer.
  • the storage device further includes a second storage unit set, the second storage unit set includes a plurality of first-level storage units, and the second-level storage unit is the first storage unit included in the second storage unit set.
  • the control unit is configured to convert the first-layer storage units included in the second storage unit set into multiple second-layer storage units.
  • this embodiment can convert the first-layer storage units into multiple second-layer storage units, and then The plurality of second-layer storage units provide cache space for the hot spare area, so that the hot spare area realizes the cache function of the storage device, thereby realizing hardware acceleration inside the storage device and improving the data access performance of the storage device.
  • control unit is specifically configured to: convert the first layer storage units included in the second storage unit set into multiple 2nd flr storage unit.
  • the storage unit in the storage device that provides storage space for the hot spare area can be converted, such as the conversion of the first layer storage unit to the second layer storage unit , for example, QLC is converted to SLC, so that the storage device can use the converted second-tier storage unit to temporarily store data, so that the storage device can provide external data access services with data read and write speeds and data read and write speeds of the second-tier storage unit. Write speed is consistent.
  • control unit when the hard disk in the storage device fails, the control unit is further configured to convert the second-tier storage unit into a first-tier storage unit, and the converted The first layer storage unit is used to recover data stored in the hard disk.
  • the control unit will replace the second-tier storage unit (such as SLC) that provides storage space in the hot spare area with the first-tier storage unit (such as QLC), and The first layer of storage unit is used to restore the data of the faulty hard disk, which ensures the data reliability of the storage device.
  • the present application provides a data storage method, the method is executed by a storage device, or the method is executed by a storage system that supports the implementation of the storage device, the data storage method includes: first, the first storage unit included in the storage device The set provides a data area, the first storage unit set includes a plurality of first-level storage units, and the storage device includes a plurality of second-level storage units to provide a hot spare area, and the number of bits that can be stored by the first-level storage units is greater than The number of bits that can be stored in the second layer storage unit; secondly, the hot spare area is used as a cache of the storage device to temporarily store the target data; finally, the control unit included in the storage device will store the target data stored in the hot spare area under certain conditions Write data area.
  • the storage device temporarily stores the target data in the hot spare area.
  • the storage system will preferentially access the hot spare area. Therefore, the storage device provides In the data access service, the data read and write speed of the storage device is consistent with the data read and write speed of the hot standby area, because the number of bits that can be stored in the second layer storage unit corresponding to the hot backup area is smaller than that of the first layer storage unit corresponding to the data area Therefore, the data reading and writing performance of the hot spare area is higher than that of the data area, which improves the data access efficiency of the storage device. Since the hot spare area always exists in the storage device, the data caching function provided by the hot spare area will never disappear, avoiding the problem of data read and write speed reduction caused by the disappearance of the SLC in the usual technology.
  • the first layer storage unit is one of MLC, TLC and QLC
  • the second layer storage unit is SLC.
  • the storage unit of the first layer is one of TLC and QLC
  • the storage unit of the second layer is one of SLC and MLC.
  • the storage unit on the first layer is QLC
  • the storage unit on the second layer is one of SLC, MLC, and TLC.
  • the storage device further includes a second storage unit set, the second storage unit set includes a plurality of first-level storage units, and the second-level storage unit is the first storage unit included in the second storage unit set.
  • the data storage method further includes: during the operation of the storage device, the control unit converts the first-layer storage units included in the second storage unit set into a plurality of second-layer storage units .
  • control unit converts the first layer storage units included in the second storage unit set into multiple second layer storage units, including: the storage space of the control unit in the hot spare area is not enough to store In the case of target data, the first layer storage units included in the second storage unit set are converted into multiple second layer storage units.
  • the data storage method further includes: when the hard disk in the storage device fails, the control unit converts the second layer storage unit into the first layer storage unit, and the converted first layer The layer storage unit is used to recover data stored on the hard disk.
  • the data storage method further includes: the control unit acquires the first read request for requesting the target data, and stores the first read request in the first layer storage unit indicated by the first identifier carried by the first read request. , to read the target data.
  • the first identifier indicates that the target data is stored in the first layer storage unit of the data area.
  • the storage device may read the data from the QLC identifier (identifier, ID) indicated by the first read request.
  • the QLC ID indicates that the first data is stored in the QLC of the data area; the control unit analyzes the QLC ID to determine the physical block (chunk) of the first data storage.
  • the data storage method further includes: the control unit acquires a second read request for requesting the target data, and obtains the second layer storage unit indicated by the second identifier carried in the second read request , read the target data.
  • the second identifier indicates that the target data is stored in the second-tier storage unit in the hot spare area.
  • the storage device can read from the SLC indicated by the SLC ID carried by the second read request. second data.
  • the SLC ID indicates that the first data is stored in the SLC of the data area; the control unit analyzes the SLC ID to determine the physical block (chunk) of the second data storage.
  • the storage device can determine the read position or write position of the target data according to the storage unit ID (or data stream ID) carried by the read request or write request, which improves the data read and write speed of the storage device, thereby improving the Data access performance of storage devices.
  • the data storage method further includes: for each first layer storage unit included in the first storage unit set, the control unit counts the erasing times of the first layer storage unit, and The storage units of the first layer whose erasing times reach the first threshold are protected against wear.
  • control unit converts the storage units of the first layer whose erasing times reach the first threshold into storage units of the second layer.
  • the remaining usable times of the converted second storage unit in the storage device can be increased, thereby increasing the service life of the storage device and achieving wear leveling of the storage device.
  • control unit migrates the data stored in the first layer storage unit whose erasing count reaches the first threshold to the first layer storage unit whose erasing count does not reach the first threshold.
  • Data migration between storage units of the same type is performed inside the storage device, so as to achieve service life balance among multiple storage units of the same type, and then achieve load balance among storage units in the storage device, thereby improving the overall life span of the storage device.
  • the present application provides a storage system, including: a controller, and the storage device according to any one of the first aspect and the second aspect.
  • the controller is used to acquire the target data and send the target data to the storage device;
  • the storage device is used to temporarily store the target data in the hot standby area included in the storage device, and under certain conditions, transfer the target data from the hot standby The area writes the data area included in the storage device.
  • the storage system can also realize the function in any one of the implementation manners of the first aspect and the second aspect, and for beneficial effects, refer to the description of any one of the first aspect and the second aspect, and details are not repeated here.
  • the present application provides a data storage device, the data storage device is applied to a storage device, and the data storage device includes various modules for executing any possible implementation manner in the first aspect and the second aspect.
  • the data storage device has the function of implementing the behaviors in the examples of any one of the first aspect and the second aspect above.
  • the functions described above may be implemented by hardware, or may be implemented by executing corresponding software on the hardware.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the present application provides a chip, including a memory and a processor, the memory is used to store computer instructions, and when the processor calls and executes the computer instructions from the memory, the method in any possible implementation manner in the second aspect is implemented operation steps.
  • the present application provides a computer-readable storage medium, in which computer programs or instructions are stored, and when the computer programs or instructions are executed by a processor or a storage device, any possible implementation manner in the second aspect can be realized The steps of the method.
  • the present application provides a computer program product, which, when the computer program product is run on a communication device such as a computer or a server, causes the processor or the storage device to execute the operation steps of the method in any possible implementation manner in the second aspect .
  • FIG. 1 is a schematic diagram of a data storage system provided by the present application.
  • Fig. 2 is the data storage diagram of the storage unit provided by the present application.
  • FIG. 3 is a schematic diagram of a storage device provided by the present application.
  • Fig. 4 is a flow chart of a data storage method provided by the present application.
  • FIG. 5 is a schematic diagram of storage management provided by the present application.
  • FIG. 1 is a schematic diagram of a data storage system provided by the present application, and the data storage system includes a computing device 100 and a storage system 120 .
  • the data storage system includes a computing device 100 and a storage system 120 .
  • users access data through applications.
  • Computers running these applications may be referred to as "computing devices.”
  • the computing device 100 may be a physical machine or a virtual machine.
  • Physical computing devices include, but are not limited to, desktop computers, servers, laptops, and mobile devices.
  • the computing device 100 accesses the storage system 120 through a network to access data, for example, the network may include the switch 110 .
  • the computing device 100 may also communicate with the storage system 120 via a wired connection, such as a Universal Serial Bus (USB) or a Peripheral Component Interconnect Express (PCIe ) bus, etc.
  • a wired connection such as a Universal Serial Bus (USB) or a Peripheral Component Interconnect Express (PCIe ) bus, etc.
  • USB Universal Serial Bus
  • PCIe Peripheral Component Interconnect Express
  • the storage system 120 shown in FIG. 1 may be a centralized storage system.
  • the characteristic of the centralized storage system is that there is a unified entrance, and all data from external devices must pass through this entrance, and this entrance is the engine 121 of the centralized storage system.
  • the engine 121 is the most core component in the centralized storage system, where many advanced functions of the storage system are implemented.
  • FIG. 1 there may be one or more controllers in the engine 121 , and FIG. 1 illustrates that the engine 121 includes one controller as an example. In a possible example, if the engine 121 has multiple controllers, there may be a mirror channel between any two controllers to realize the mutual backup function of any two controllers, so as to prevent hardware failure from causing the entire storage system 120 is not available.
  • the engine 121 also includes a front-end interface 1211 and a back-end interface 1214 , wherein the front-end interface 1211 is used to communicate with the computing device 100 to provide data access services for the computing device 100 .
  • the back-end interface 1214 is used to communicate with the hard disk to expand the capacity of the storage system 120 . Through the back-end interface 1214, the engine 121 can be connected with more hard disks, thereby forming a very large storage resource pool.
  • the controller includes at least a processor 1212 and a memory 1213 .
  • the processor 1212 is a central processing unit (Central Processing Unit, CPU), used for processing data access requests from outside the storage system 120 (server or other storage systems), and also used for processing requests generated inside the storage system 120.
  • CPU Central Processing Unit
  • the processor 1212 receives the write data request sent by the computing device 100 through the front-end interface 1211 , it will temporarily store the data in the write data request in the memory 1213 .
  • processor 1212 sends the data stored in memory 1213 to mechanical hard disk 1211, mechanical hard disk 1222, solid state hard disk (solid state drive, SSD) 1223 or other hard disks through the back-end port At least one hard disk in 1224 is used for persistent storage.
  • the memory 1213 refers to the internal memory directly exchanging data with the processor. It can read and write data at any time, and the speed is very fast. It is used as a temporary data storage for the operating system or other running programs.
  • Memory includes at least two kinds of memory, for example, memory can be either random access memory or read only memory (ROM).
  • Random access memory is, for example, DRAM, or SCM.
  • DRAM is a semiconductor memory that, like most random access memory (RAM), is a volatile memory device.
  • the DRAM and the SCM are only illustrative examples in this embodiment, and the memory may also include other random access memories, such as static random access memory (static random access memory, SRAM) and the like.
  • the read-only memory for example, it may be programmable read-only memory (programmable read only memory, PROM), erasable programmable read-only memory (erasable programmable read only memory, EPROM) and the like.
  • the memory 1213 can also be a dual in-line memory module or a dual in-line memory module (DIMM), that is, a module composed of dynamic random access memory (DRAM), and can also be an SSD.
  • DIMM dual in-line memory module
  • DRAM dynamic random access memory
  • multiple memories 1213 and different types of memories 1213 may be configured in the controller. This embodiment does not limit the quantity and type of the memory 1213 .
  • the memory 1213 can be configured to have a power saving function.
  • the power saving function means that the data stored in the internal memory 1213 will not be lost when the system is powered off and then powered on again. Memory with a power saving function is called non-volatile memory.
  • the memory 1213 stores software programs, and the processor 1212 runs the software programs in the memory 1213 to manage the hard disk.
  • the hard disk is abstracted into a storage resource pool, and the storage resource pool is provided to the server in the form of a logical unit number (LUN).
  • LUN here is actually the hard disk seen on the server.
  • some centralized storage systems are also file servers themselves, which can provide shared file services for servers.
  • the engine 121 may not have a hard disk slot, and the hard disk needs to be placed in the hard disk enclosure 122 , and the back-end interface 1214 communicates with the hard disk enclosure 122 .
  • the back-end interface 1214 exists in the engine 121 in the form of an adapter card, and one engine 121 can use two or more back-end interfaces 1214 to connect multiple hard disk enclosures at the same time.
  • the adapter card can also be integrated on the motherboard, and at this time the adapter card can communicate with the processor 1212 through the PCIe bus.
  • the storage system may include two or more engines 121 , and redundancy or load balancing is performed among the multiple engines 121 .
  • the hard disk enclosure 122 includes a control unit 1225 and several hard disks.
  • the control unit 1225 can have various forms.
  • the hard disk enclosure 122 belongs to the smart disk enclosure, and as shown in FIG. 1 , the control unit 1225 includes a CPU and a memory.
  • the CPU is used to perform operations such as address translation and reading and writing data.
  • the memory is used for temporary storage of data to be written to the hard disk, or data read from the hard disk to be sent to the controller.
  • the control unit 1225 is a programmable electronic component, such as a data processing unit (data processing unit, DPU).
  • DPU data processing unit
  • a DPU has the general purpose and programmability of a CPU, but is more specialized, operating efficiently on network packets, storage requests, or analytics requests.
  • DPUs are distinguished from CPUs by a greater degree of parallelism (the need to process a large number of requests).
  • the DPU here can also be replaced with a graphics processing unit (graphics processing unit, GPU), an embedded neural network processor (neural-network processing units, NPU) and other processing chips.
  • the number of control units 1225 can be one, or two or more.
  • the functions of the control unit 1225 can be offloaded to the network card 1226 .
  • the network card 1226 is an intelligent network card. It can contain CPU and memory.
  • the CPU is used to perform operations such as address translation and reading and writing data.
  • the memory is used for temporary storage of data to be written to the hard disk, or data read from the hard disk to be sent to the controller. It can also be a programmable electronic component, such as a DPU.
  • the hard disk enclosure 122 may be a serially connected small computer system interface (serial attached small computer system interface, SAS) hard disk enclosure, or may be an NVMe (Non-Volatile Memory express) disk enclosures and other types of disk enclosures.
  • the SAS hard disk enclosure adopts the SAS3.0 protocol, and each enclosure supports 25 SAS hard disks.
  • the engine 121 is connected to the hard disk enclosure 122 through an onboard SAS interface or a SAS interface module.
  • the NVMe disk enclosure is more like a complete computer system, and the NVMe disk is inserted into the NVMe disk enclosure. The NVMe disk enclosure is then connected to the engine 121 through the RDMA port.
  • the storage system 120 is a centralized storage system with integrated disk control, the storage system 120 does not have the above-mentioned hard disk enclosure 122, and the engine 121 is used to manage multiple hard disks connected through hard disk slots.
  • the function of the hard disk slot can be realized by the back-end interface 1214 .
  • the storage system 120 shown in FIG. 1 is a distributed storage system, the distributed storage system includes a computing device cluster and a storage device cluster, the computing device cluster includes one or more computing devices, Various computing devices can communicate with each other.
  • the computing device may be a computing device, such as a server, a desktop computer, or a controller of a storage array.
  • computing devices can include processors, memory, and network cards.
  • the processor is a CPU, configured to process data access requests from outside the computing device, or requests generated inside the computing device. Exemplarily, when the processor receives the write data request sent by the user, it will temporarily save the data in the write data request in the memory.
  • the processor sends the data stored in the memory to the storage device for persistent storage.
  • the processor is also used for data calculation or processing, such as metadata management, deduplication, data compression, virtualization of storage space, and address translation.
  • any computing device can access any storage device in the storage device cluster through a network.
  • a storage device cluster includes multiple storage devices.
  • a storage device includes one or more controllers, a network card and multiple hard disks, and the network card is used to communicate with computing devices.
  • the storage system 120 shown in FIG. 1 is taken as an example to describe the implementation of the embodiment of the present application in detail.
  • the solid state hard drive 1223 includes a control chip and a flash memory (Flash) chip for storing data.
  • the Flash chip uses a transistor called a "floating gate field effect transistor" to store data.
  • Each such transistor is called a "Cell”, that is, a unit. Divided according to storage density, Cell can be divided into SLC and MLC at least.
  • FIG 2 is a schematic diagram of the data storage of the storage unit provided by this application.
  • each Cell unit stores 1 bit information, that is, only two voltage changes of 0 and 1, the structure is simple, and the voltage control is also fast.
  • the characteristics reflected are long life, strong performance, programmable/erase (programmable/erase, P/E) times between 10,000 and 100,000 times, but the disadvantage is low capacity and high cost.
  • P/E times can also be called P/E life.
  • each Cell unit stores 2bit information, which requires more complex voltage control, with four variations of 00, 01, 10, and 11, which also means that the writing performance and reliability performance are reduced.
  • the P/E life of MLC varies from 3000 to 5000 times according to different manufacturing processes. It can be seen that the capacity of MLC is twice that of SLC, but the cost is roughly the same as that of SLC. Therefore, for SSDs with the same capacity, the cost of MLC chips is much lower than that of SLC chips.
  • MLC can store 4 states in each cell, its complexity is relatively high, so the error rate is also high. Both SLC and MLC need to save additional ECC check information for data error recovery.
  • Cell can also include TLC and QLC.
  • TLC each Cell unit stores 3 bits of information, and the voltage has 8 changes from 000 to 001.
  • the capacity is increased by 1/3 again compared with MLC, and the cost is lower, but the structure is more complicated, and the P/E programming time Long, the writing speed is slow, and the P/E life is also reduced to 1000-3000 times, and in some cases it will be lower.
  • the short lifespan is only relative.
  • TLC particles can be used normally for more than 5 years.
  • QLC or 4bit MLC can be called 4bit MLC. There are 16 changes in voltage, but the storage capacity of a single cell can be increased by 33%, and the writing performance and P/E life will be further reduced compared with TLC.
  • FIG. 3 is a schematic diagram of a storage device provided by the present application.
  • the storage device 300 It may be the hard disk enclosure 122 shown in FIG. 1 .
  • the storage device 300 refers to the centralized storage system with integrated disk and control.
  • the storage device 300 may also refer to a hard disk including a control chip and a flash memory chip, for example, the control chip is used to realize the function of the control unit, and the flash memory chip is used to realize the function of the storage unit.
  • the storage device 300 is the hard disk enclosure 122 shown in FIG.
  • the hardware relationship between the space and the storage device 300 is shown in Figure 3, the logical address space provided by the storage device 300 to the host computer or computing device is a storage resource pool (storage resource pool), such as the hot spare area and the storage device 300 included in the storage device 300 data area.
  • storage resource pool storage resource pool
  • the storage resource pool may also refer to a logical disk for storing data.
  • the data area and the hot spare area use different logical address spaces.
  • the data area refers to the storage space used for persistently storing data in the storage resource pool.
  • the storage function of the data area is provided by the physical disk included in the storage device 300.
  • the storage space of the data area is provided by a first storage unit set, and the first storage unit set includes multiple The storage unit on the first layer (the small white square shown in Figure 3).
  • the first set of storage units is obtained by the storage device 300 dividing first-layer storage units included in multiple physical disks (such as hard disks 321 - 324 ).
  • the storage unit may also use other first-layer storage units in the plurality of hard disks except the first storage unit set as the second storage unit set.
  • the second storage unit set also includes a plurality of first-tier storage units, and the plurality of first-tier storage units can provide storage space for data backup, snapshot or clone for the hot spare area.
  • the hot spare area is used to implement a failover mechanism of the storage device and provide reliability for the data access function provided by the storage. For example, when some areas in the data area fail and become unavailable, the hot spare area will switch to the running state to take over the storage function provided by the failed area in the data area.
  • the storage device 300 can divide multiple hard disks, a part of the hard disks are used to provide multiple first-layer storage units included in the first storage unit set, and another part of the hard disks are used to provide the second storage unit set Multiple first floor storage units included.
  • the hard disk in the storage device 300 provides the first layer storage units for the first storage unit set and the second storage unit set at the same time.
  • the hard disk 321 is divided into four parts, wherein, the first layer storage unit of one part is used to provide storage space for the hot spare area, and the first layer storage unit of the other three parts is used for data area Provide storage space.
  • the hot spare area can be used as a cache of the storage device 300 to temporarily store target data.
  • the storage function of the hot spare area is provided by a plurality of second-layer storage units included in the storage device 300 (such as the small squares filled with dots in FIG. 3 ).
  • the second-level storage unit is converted from the first-level storage unit included in the second storage unit set, and the number of bits that can be stored by the first-level storage unit is greater than the number of bits that can be stored by the second-level storage unit .
  • the first layer storage unit is one of MLC, TLC and QLC
  • the second layer storage unit is SLC.
  • the storage unit of the first layer is one of TLC and QLC
  • the storage unit of the second layer is one of SLC and MLC.
  • the storage unit of the first layer is QLC
  • the storage unit of the second layer is one of SLC, MLC, and TLC.
  • the above-mentioned storage units of the second layer are obtained by converting a plurality of storage units of the first layer included in the second storage unit set in the storage device 300 .
  • the storage unit on the first layer is QLC and the storage unit on the second layer is SLC, then one QLC can be converted into four SLCs; for another example, if the storage unit on the first layer is QLC and the storage unit on the second layer is TLC, then One QLC can be converted to 2 TLCs.
  • the storage units provided in this application can also refer to a Cell unit that can store A storage unit with more bits, for example, a Cell unit can store 5 bits of information, 6 bits of information or more bits, etc., which is not limited in this application.
  • the storage device 300 includes a control unit 310 and multiple hard disks, such as a hard disk 321 , a hard disk 322 , a hard disk 323 and a hard disk 324 as shown in FIG. 3 .
  • the control unit 310 can implement the functions of the control unit 1225 shown in FIG. 1 .
  • the hard disks 321 to 324 may be of the same type (such as QLC SSD), or may be of different types, which is not limited in this application.
  • the multiple physical disks corresponding to the storage device 300 (hard disks 321 to 324 shown in FIG.
  • the media are all QLC (first-tier storage units), that is, the hard disks 321 to 324 are all QLC SSDs, and the QLC included in the hard disks 321 to 324 can be divided into a first storage unit set and a second storage unit set.
  • the first storage unit set includes a plurality of first storage units (such as the small white squares shown in the physical disk in FIG. logical address space.
  • the second storage unit set includes a plurality of first storage units (such as the small black squares shown in the physical disk in FIG. 3 ), and the plurality of first storage units can be used for storing logical address space.
  • a specific implementation process for the storage device 300 to provide a logical address space for the storage resource pool may include the following content.
  • the storage device 300 can report the storage space information to the controller (such as the controller included in the engine 121 in Figure 1), the storage space information can include the types of hard disks in the storage device 300, and the storage capacity that the hard disks can provide. Capacity and other information.
  • the controller provides storage space for the hot spare area and the data area according to the storage space information reported by the storage device 300 .
  • the control unit 310 in the storage device 300 reports storage space information to the controller, and the controller builds a storage resource pool based on the storage space information and user setting information, and configures Metadata space, data area, hot spare space (or called hot spare area), reserved space and other areas; then the controller included in the storage system takes part of the hot spare area as the read cache area.
  • the controller uses a quarter of the hot standby area as the read cache area, and the read cache area is provided with storage space by the SLC converted from the QLC.
  • the multiple first storage unit sets included in the second storage unit set may be converted into second-tier storage units (such as the spot-filled small storage units shown in the physical disk in FIG. block), the second layer storage unit can provide a logical address space for caching for the hot spare area.
  • second-tier storage units such as the spot-filled small storage units shown in the physical disk in FIG. block
  • control unit 310 may convert the first-tier storage units included in the second storage unit set into multiple second-tier storage units storage unit.
  • the storage unit in the storage device 300 that provides storage space for the hot spare area can be converted, such as the conversion of the first layer storage unit to the second layer storage
  • the unit for example, is converted from QLC to SLC, so that the storage device can use the converted second-tier storage unit to temporarily store data, so that the storage device can provide external data access services with the data read and write speed and the data of the second-tier storage unit Read and write speeds are consistent.
  • the data read and write speed of the second-tier storage unit is greater than that of the first-tier storage unit. That is to say, the data read and write speed of the storage device in the initialization state is consistent with that of the first layer storage unit. In this embodiment, the data read and write speed of the data access service provided by the storage device is consistent with that of the second layer storage unit. As a result, the data reading and writing speed of the storage device is improved, thereby improving the data access performance of the storage device.
  • the data read and write speed of the first layer storage unit is lower than the data read and write speed of the second layer storage unit .
  • the P/E times (lifetime) of the storage units in the second layer are higher than the P/E times (lifetime) of the storage units in the first layer.
  • FIG. 4 is a flow chart of a data storage method provided by the present application.
  • the storage device 300 provides a storage resource pool for a host or a computing device.
  • the storage resource pool includes a data area and a hot spare area.
  • the data storage method includes the following steps.
  • control unit 310 stores the acquired target data in the hot standby area.
  • the data read and write speed of the first layer storage unit is lower than the data read and write speed of the second layer storage unit ;
  • the storage function of the hot spare area is provided by the second layer storage unit, while the storage function of the data area is provided by the first layer storage unit, and furthermore, the data read and write speed of the hot spare area is higher than that of the data area
  • Data reading and writing speed, using the hot spare area in the storage device 300 as a cache of the data area improves the performance of the storage device 300 in reading and writing external data (such as the above-mentioned target data).
  • control unit 310 writes the target data stored in the hot spare area into the data area.
  • the above certain condition may be that the amount of data stored in the hot spare area reaches a threshold, for example, 100 megabytes (megabyte, MB) or 20MB.
  • the above certain condition may be that the target data is stored in the hot spare area for a specified period of time. For example, when the target data is stored in the hot spare area for 1 minute or 1 day, the storage device 300 migrates the target data stored in the hot spare area to the data area.
  • the above certain condition may be that the available capacity of the hot spare area is lower than the capacity threshold, such as 10MB, 5MB or 2MB.
  • the hot standby area is used as the cache of the data area. Since the number of bits that can be stored in the second layer storage unit corresponding to the hot standby area is less than the number of bits that can be stored in the first layer storage unit corresponding to the data area, the hot standby area The data read and write performance of is higher than the data read and write performance of the data area.
  • the storage device temporarily stores the target data in the hot spare area. When receiving a read request for reading the target data, the storage system will preferentially access the hot spare area, so that the storage device can provide data to the outside world.
  • the data read and write speed of the storage device is consistent with the data read and write speed of the hot spare area, thereby improving the data access efficiency of the storage device. Since the hot spare area always exists in the storage device, the data caching function provided by the hot spare area will never disappear, avoiding the problem of data read and write speed reduction caused by the disappearance of the SLC in the usual technology.
  • the storage device writes (or migrates) the target data stored in the hot spare area to the data area, and the target data is stored persistently in the data area of the storage device, so that the storage device can It is divided into cache (hot standby area) and persistent storage (data area), and then realizes hardware acceleration inside the storage device, improving the data access performance of the storage device.
  • the hot spare area is provided by the storage device, and the hot spare area can be used as the cache of the storage device, in the hardware acceleration scenario, there is no need to add additional high-performance storage for the cache to the storage device. media, reducing the cost of hardware acceleration for storage devices.
  • the storage device 300 may write the target data into different storage units according to the hot and cold information of the target data.
  • the hot and cold information refers to the number of accesses to the target data per unit time, or the access frequency of the target data. If the access frequency of the target data is higher than the frequency threshold, the target data is hot data.
  • the write request may carry an identifier indicating hot and cold information of the target data, for example, the identifier is a data stream ID.
  • the data stream ID not only indicates the temperature of the target data, but also indicates the storage unit type in which the target data will be stored in the storage device 300 .
  • the storage device 300 can quickly access the target data according to the data flow ID, thereby improving the data access efficiency of the storage device.
  • the data stream ID can be a QLC ID
  • the storage device 300 can write the target data into the QLC in the storage device 300 according to the QLC ID carried in the write request.
  • QLC can be the first layer storage unit that provides storage space for the data area.
  • the data stream ID can be an SLC ID
  • the storage device 300 can write the target data into the SLC in the storage device 300 according to the SLC ID carried in the write request
  • the SLC may be a second layer storage unit that provides storage space for the hot spare area.
  • the data flow ID is used to determine the type of storage unit where the data to be written will be stored
  • the data flow ID can be a storage device It is generated by the controller in the storage system (as shown in Figure 1) based on the hot and cold information of the data to be written. )Specified.
  • the above-mentioned data stream ID may be carried in the read request.
  • the storage device 300 can read from the QLC indicated by the QLC ID carried in the first read request. target data.
  • the QLC ID indicates that the target data is stored in the QLC of the data area; the control unit 310 resolves the QLC ID and can determine the physical block (chunk) of the target data storage, for example, this chunk provides storage space for the data area in Figure 4
  • the storage unit of the first layer (the small white square in the physical disk 300B).
  • the storage device 300 may read the data from the SLC indicated by the SLC ID carried in the second read request. Get target data.
  • the SLC ID indicates that the target data is stored in the SLC of the data area; the control unit 310 resolves the SLC ID to determine the chunk where the target data is stored, for example, the chunk is the second layer that provides storage space for the hot spare area in Figure 4 Storage cells (small squares filled with spots in physical disk 300B).
  • the storage device can determine the read position or write position of the target data according to the data stream ID carried in the read request or write request, which improves the data read and write speed of the storage device, thereby improving the data access performance of the storage device.
  • the storage device 300 can also count the number of erasing and writing times of the first-layer storage unit, and calculate the A threshold of first-tier memory cells for wear protection.
  • wear protection refers to memory cell switching.
  • the control unit converts the storage units of the first layer whose erasing times reach the first threshold into storage units of the second layer.
  • the storage device converts the first-tier storage unit to the second-tier storage unit, which can increase the remaining P/E times of the converted second storage unit in the storage device, thereby improving the service life of the storage device and realizing wear balance of the storage device .
  • wear protection refers to data migration.
  • the control unit migrates the data stored in the first layer storage unit whose erasing count reaches the first threshold to the first layer storage unit whose erasing count does not reach the first threshold.
  • Data migration between storage units of the same type is carried out inside the storage device to achieve P/E times balance between multiple storage units of the same type, and then to achieve load balancing of the storage units in the storage device, improving the overall life of the storage device.
  • control unit may also convert a plurality of second-level storage units into first-level storage units according to usage conditions of each storage unit in the storage device.
  • control unit is further configured to convert the second-tier storage unit into the first-tier storage unit, and the converted first-tier storage unit is used to restore data stored in the hard disk.
  • the cached data in the hot spare area such as the storage space provided by SLC
  • this part of the data will not affect the actual business data stored in the data area (such as the storage space provided by QLC).
  • the stored business data will not be affected by the cached data in the hot spare space.
  • the control unit will replace the second-tier storage unit (such as SLC) that provides storage space in the hot spare area with the first-tier storage unit (such as QLC), and
  • the first layer of storage unit is used to restore the data of the faulty hard disk, which ensures the data reliability of the storage device.
  • FIG. 5 is a schematic diagram of storage management provided by the present application.
  • the storage management process is implemented by the storage system 120.
  • the storage management process is coordinated by the controller included in the hard disk enclosure 122 and the engine 121.
  • the hard disk enclosure 122 can implement the functions of the above-mentioned storage device 300 .
  • the storage management process includes a data access process and a fault handling process.
  • the data access process includes the following steps S510-S530.
  • the controller sends a data stream ID according to the access condition of the read request.
  • the access condition refers to the hot and cold conditions of the data requested by the read request, or the logical address stored in the data. If the logical address is located in the address segment corresponding to the hot standby area, the data flow ID is the SLC ID; The logical address is located in the address segment corresponding to the data area, and the data stream ID is the QLC ID.
  • the hard disk enclosure 122 performs storage unit conversion according to the data stream ID.
  • the controller reads the data stored in the read cache area in the hot spare area, since the amount of data that can be stored in the hot spare area is reduced, more hot disks need to be used in the subsequent use of the hard disk enclosure 122.
  • the backup area is used to back up the data in the data area, then the hard disk enclosure 122 can convert the SLC that provides storage space for the hot backup area to QLC.
  • the hard disk enclosure 122 can provide storage space for the hot spare area.
  • QLC is converted into SLC to improve the overall read and write speed of the hard disk enclosure 122, thereby improving the data access performance of the storage system 120.
  • the controller performs data access to the hard disk enclosure 122 .
  • the data access includes at least one of writing data and reading data.
  • writing data includes at least one of writing data and reading data.
  • the fault handling process provided by this embodiment includes the following steps S541-S545.
  • the hard disk enclosure 122 reports failure information to the controller of the storage system 120.
  • the failure information refers to a failed disk in the hard disk enclosure 122 .
  • the controller sends a data modification (trim) instruction to the hard disk enclosure 122 .
  • the trim command is used to instruct the hard disk enclosure 122 to clear the data stored in the SLC that provides storage space for the hot spare area, and to convert the SLC into a QLC. Since the SLC is used as a read cache, a copy of the data has been stored in the QLC that provides data space for the data area, so the trim operation will not cause the original data to be lost.
  • the hard disk enclosure 122 clears the read cache data in the hot spare area.
  • the read cache data refers to the data stored in the SLC that provides storage space for the hot spare area.
  • the hard disk enclosure 122 may return a response indicating that the read cache data has been cleared to the controller.
  • the controller enables the hot standby area to perform data reconstruction.
  • the controller included in the storage system continues to issue the data flow ID (QLC ID) of the QLC, and uses the hot spare area to reconstruct data on the faulty disk.
  • QLC ID data flow ID
  • the hard disk enclosure 122 performs storage unit conversion and data reconstruction according to the data flow ID.
  • the hard disk enclosure 122 performs dynamic conversion between QLC and SLC on the physical block according to the data stream ID, and completes data reconstruction.
  • the data reconstruction includes: the hard disk enclosure 122 writes the backup data of the failed disk in the hot spare area to the hard disk newly added to the hard disk enclosure 122 .
  • the probability of the entire disk being unavailable due to a disk failure is relatively low; and after the data on the faulty disk is recovered, the storage maintainer will immediately replenish the disk and replace the faulty disk, so the hot spare area It can continue to be used as an SLC read cache.
  • the hot spare area is used to accelerate data reading scenarios without destroying the original data reliability of the storage system.
  • the storage system and the storage device include hardware structures and/or software modules corresponding to each function.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software with reference to the units and method steps of the examples described in the embodiments disclosed in the present application. Whether a certain function is executed by hardware or computer software drives the hardware depends on the specific application scenario and design constraints of the technical solution.
  • the above data storage method may be implemented by a data storage device, for example, the data storage device includes a communication module and a processing module.
  • the communication module is used to receive or send the target data
  • the processing module is used to determine the storage location of the target data and realize the conversion of the storage module. More detailed descriptions about the above-mentioned communication module and processing module can be directly obtained by referring to related descriptions in the embodiments shown in FIG. 1 to FIG. 5 , and will not be repeated here.
  • the data storage method provided in this application when implemented by hardware, it may be executed by the hard disk enclosure 122 or the storage system 120 shown in FIG. 1 , or it may be executed by other storage systems described in FIG. 1 .
  • the processor in the embodiments of the present application can be a CPU, NPU or GPU, and can also be other general-purpose processors, digital signal processors (digital signal processor, DSP), application specific integrated circuits (application specific integrated circuits) , ASIC), field programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.
  • DSP digital signal processor
  • ASIC application specific integrated circuits
  • FPGA field programmable gate array
  • a general-purpose processor can be a microprocessor, or any conventional processor.
  • the method steps in the embodiments of the present application may be implemented by means of hardware, or may be implemented by means of a processor executing software instructions.
  • Software instructions can be composed of corresponding software modules, and software modules can be stored in RAM, flash memory, ROM, PROM, EPROM, electrically erasable programmable read-only memory (electrically EPROM, EEPROM), registers, hard disk, mobile hard disk, CD -ROM or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium.
  • the storage medium may also be a component of the processor.
  • the processor and storage medium can be located in the ASIC.
  • the ASIC can be located in a network device or a terminal device. Certainly, the processor and the storage medium may also exist in the network device or the terminal device as discrete components.
  • all or part of them may be implemented by software, hardware, firmware or any combination thereof.
  • software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product comprises one or more computer programs or instructions. When the computer program or instructions are loaded and executed on the computer, the processes or functions described in the embodiments of the present application are executed in whole or in part.
  • the computer may be a general purpose computer, a special purpose computer, a computer network, network equipment, user equipment, or other programmable devices.
  • the computer program or instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instructions may be downloaded from a website, computer, A server or data center transmits to another website site, computer, server or data center by wired or wireless means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrating one or more available media.
  • the available medium may be a magnetic medium, such as a floppy disk, a hard disk, or a magnetic tape; it may also be an optical medium, such as a digital video disc (digital video disc, DVD); it may also be a semiconductor medium, such as an SSD.
  • Multiple means two or more than two, and other quantifiers are similar.
  • “And/or” describes the association relationship of associated objects, indicating that there may be three kinds of relationships, for example, A and/or B may indicate: A exists alone, A and B exist simultaneously, and B exists independently. Furthermore, the singular forms “a”, “an” and “the” do not mean “one or only one” but “one or more” unless the context clearly dictates otherwise. in one". In the formulas of this application, the character “/" indicates that the front and back related objects are in a “division” relationship.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种存储设备、数据存储方法及存储***,涉及数据存储领域。存储设备包括控制单元、热备区域和数据区域。由于热备区域对应的第二层存储单元所能存储的比特数小于数据区域对应的第一层存储单元所能存储的比特数,因此,热备区域的数据读写性能高于数据区域的数据读写性能。在数据访问过程中,存储设备将目标数据临时存储在热备区域中,存储设备的数据读写速度与热备区域的数据读写速度一致,提高了存储设备的数据访问效率。控制单元还将热备区域中存储的目标数据写入到数据区域中,由数据区域对该目标数据进行持久化存储,即存储设备内部划分为缓存和持久化存储,进而在存储设备内部实现了硬件加速,提高了存储设备的数据访问性能。

Description

一种存储设备、数据存储方法及存储***
本申请要求于2021年9月23日提交国家知识产权局、申请号为202111115207.X、发明名称为“一种存储设备、数据存储方法及存储***”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储领域,尤其涉及一种存储设备、数据存储方法及存储***。
背景技术
随着存储介质的技术发展,硬盘的存储容量越来越大,其中一个原因是单个存储颗粒所能存储的信息位数越来越多,如四层式存储单元(quad level cell,QLC),每个QLC可以存储4比特(bit)信息;相较于单个存储颗粒只能存储1bit信息的单层式存储单元(single level cell,SLC),QLC的存储密度提升了4倍,但SLC的读写速度比QLC更快。
通常,存储***将硬盘中存储数据的QLC转成SLC,或将硬盘中存储数据的SLC转成QLC。当硬盘中存储的数据量越多时,SLC所占据的存储容量越少,直到硬盘中已用存储容量达到一定比例的情况下,硬盘中用于实现读写加速的SLC完全消失,导致存储***的读写性能受到影响。
发明内容
本申请提供一种存储设备、数据存储方法及存储***,解决了存储设备中无法进行硬件加速的问题。
本申请采用如下技术方案。
第一方面,本申请提供了一种存储设备,包括控制单元、热备区域和数据区域。其中,数据区域的存储功能是由存储设备包括的第一存储单元集合提供的,该第一存储单元集合包括多个第一层存储单元;热备区域的存储功能是由存储设备包括的多个第二层存储单元提供的,且第一层存储单元所能存储的比特数大于第二层存储单元所能存储的比特数。如此,热备区域用于作为存储设备的缓存,临时存储目标数据;并在一定条件下,控制单元用于将热备区域中存储的目标数据写入数据区域。
如此,热备区域作为数据区域的缓存,由于热备区域对应的第二层存储单元所能存储的比特数小于数据区域对应的第一层存储单元所能存储的比特数,因此,热备区域的数据读写性能高于数据区域的数据读写性能。在数据访问过程中,存储设备将目标数据临时存储在热备区域中,当收到用于读取所述目标数据的读请求时,存储***会优先访问热备区域,由此提高了存储设备的数据访问效率。由于热备区域在存储设备中是一直存在的,热备区域所提供的数据缓存功能一直不会消失,避免了通常技术中SLC消失所导致的数据读写速度下降的问题。
另外,在一定条件下,存储设备将热备区域中存储的目标数据写入(或称迁移)到数据区域中,由存储设备的数据区域对该目标数据进行持久化存储,使得存储设备内部可以划分为缓存(热备区域)和持久化存储(数据区域),进而在存储设备内部 实现了硬件加速,提高了存储设备的数据访问性能。还需要说明的是,由于热备区域是存储设备提供的,且热备区域可以作为存储设备的缓存,因此,在硬件加速场景下,无需为该存储设备添加额外的用于缓存的高性能存储介质,降低了存储设备实现硬件加速的成本。
在一种可选的实现方式中,第一层存储单元是双层式存储单元(multi-level cell,MLC)、三层式存储单元(triple-level cell,TLC)和QLC中的其中一种,第二层存储单元是SLC。或者,第一层存储单元是TLC和QLC中的其中一种,第二层存储单元是SLC和MLC中的其中一种。或者,第一层存储单元是QLC,第二层存储单元是SLC、MLC、TLC中的其中一种。
由于第一层存储单元所能存储的比特数大于第二层存储单元所能存储的比特数,因此,第一层存储单元的数据读写速度小于第二层存储单元的数据读写速度。在同样的使用情况下,第二层存储单元的使用寿命高于第一层存储单元的使用寿命。
在另一种可选的实现方式中,存储设备还包括第二存储单元集合,第二存储单元集合包括多个第一层存储单元,第二层存储单元是由第二存储单元集合包括的第一层存储单元转换获得的。
在另一种可选的实现方式中,在存储设备的运行过程中,控制单元用于将第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。在一种可能的情形中,若存储设备所包括的存储单元在出厂状态下均为第一层存储单元,本实施例可以将该第一层存储单元转换为多个第二层存储单元,进而由该多个第二层存储单元为热备区域提供缓存空间,使得热备区域实现存储设备的缓存功能,从而实现存储设备内部的硬件加速,提高了存储设备的数据访问性能。
在另一种可选的实现方式中,控制单元具体用于:在热备区域的存储空间不足以存储目标数据的情况下,将第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
如此,在热备区域中用于临时缓存数据的空间不足的情况下,存储设备中为热备区域提供存储空间的存储单元可以转换,如上述的第一层存储单元转换为第二层存储单元,示例的,QLC转换为SLC,使得存储设备可以利用转换获得的第二层存储单元来临时存储数据,从而使得存储设备对外提供数据访问服务的数据读写速度和第二层存储单元的数据读写速度一致。
在另一种可选的实现方式中,在所述存储设备中硬盘出现故障的情况下,所述控制单元还用于将所述第二层存储单元转换为第一层存储单元,转换得到的第一层存储单元用于恢复所述硬盘存储的数据。
若硬盘出现故障,由于热备区域(如由SLC提供的存储空间)中缓存数据清除掉之后,这部分数据不影响数据区域(如由QLC提供的存储空间)实际存储的业务数据,所以硬盘所存储的业务数据不会受到热备空间中缓存数据的影响,控制单元将为热备区域提供存储空间的第二层存储单元(如SLC)换换为第一层存储单元(如QLC),并利用该第一层存储单元来恢复故障硬盘的数据,保证了存储设备的数据可靠性。
第二方面,本申请提供一种数据存储方法,该方法由存储设备执行,或者该方法由支持该存储设备实现的存储***执行,该数据存储方法包括:首先,存储设备包括 的第一存储单元集合提供数据区域,该第一存储单元集合包括多个第一层存储单元,且存储设备包括的多个第二层存储单元提供热备区域,该第一层存储单元所能存储的比特数大于第二层存储单元所能存储的比特数;其次,热备区域作为存储设备的缓存,临时存储目标数据;最后,存储设备包括的控制单元在一定条件下,将热备区域中存储的目标数据写入数据区域。
在数据访问过程中,存储设备将目标数据临时存储在热备区域中,当收到用于读取所述目标数据的读请求时,存储***会优先访问热备区域,因此在存储设备对外提供数据访问服务时,存储设备的数据读写速度与热备区域的数据读写速度一致,由于热备区域对应的第二层存储单元所能存储的比特数小于数据区域对应的第一层存储单元所能存储的比特数,因此,热备区域的数据读写性能高于数据区域的数据读写性能,提高了存储设备的数据访问效率。由于热备区域在存储设备中是一直存在的,热备区域所提供的数据缓存功能一直不会消失,避免了通常技术中SLC消失所导致的数据读写速度下降的问题。
在一种可选的实现方式中,第一层存储单元是MLC、TLC和QLC中的其中一种,第二层存储单元是SLC。或者,第一层存储单元是TLC和QLC中的其中一种,第二层存储单元是SLC和MLC中的其中一种。或者,第一层存储单元是QLC,第二层存储单元是SLC、MLC、TLC中的其中一种。
在另一种可选的实现方式中,存储设备还包括第二存储单元集合,第二存储单元集合包括多个第一层存储单元,第二层存储单元是由第二存储单元集合包括的第一层存储单元转换获得的。
在另一种可选的实现方式中,该数据存储方法还包括:在存储设备的运行过程中,控制单元将第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
在另一种可选的实现方式中,控制单元将第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元,包括:控制单元在热备区域的存储空间不足以存储目标数据的情况下,将第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
在另一种可选的实现方式中,该数据存储方法还包括:在存储设备中硬盘出现故障的情况下,控制单元将第二层存储单元转换为第一层存储单元,转换得到的第一层存储单元用于恢复硬盘存储的数据。
在另一种可选的实现方式中,该数据存储方法还包括:控制单元获取用于请求目标数据的第一读请求,并第一读请求携带的第一标识指示的第一层存储单元中,读取目标数据。该第一标识指示目标数据存储在数据区域的第一层存储单元中。例如,若目标数据为第一数据,在控制单元获取到用于请求第一数据的第一读请求的情况下,存储设备可以从第一读请求携带的QLC标识(identifier,ID)所指示的QLC中,读取第一数据。其中,该QLC ID指示第一数据存储在数据区域的QLC中;控制单元解析该QLC ID可以确定第一数据存储的物理块(chunk)。
在另一种可选的实现方式中,该数据存储方法还包括:控制单元获取用于请求目标数据的第二读请求,并从第二读请求携带的第二标识指示的第二层存储单元中,读取目标数据。该第二标识指示目标数据存储在热备区域的第二层存储单元中。例如, 若目标数据为第二数据,在控制单元获取到用于请求第二数据的第二读请求的情况下,存储设备可以从第二读请求携带的SLC ID所指示的SLC中,读取第二数据。其中,该SLC ID指示第一数据存储在数据区域的SLC中;控制单元解析该SLC ID可以确定第二数据存储的物理块(chunk)。
如此,存储设备可以依据读请求或写请求所携带的存储单元ID(或称数据流ID),确定目标数据的读取位置或写入位置,提高了存储设备的数据读写速度,从而提升了存储设备的数据访问性能。
在另一种可选的实现方式中,该数据存储方法还包括:针对于第一存储单元集合包括的每个第一层存储单元,控制单元统计第一层存储单元的擦写次数,并对擦除次数达到第一阈值的第一层存储单元进行磨损防护。
例如,控制单元将擦除次数达到第一阈值的第一层存储单元转换为第二层存储单元。通过将第一层存储单元转换为第二层存储单元,可以提高存储设备中转换得到的第二存储单元的剩余可用次数,从而提升了存储设备的使用寿命,实现存储设备的磨损均衡。
又如,控制单元将擦除次数达到第一阈值的第一层存储单元中存储的数据,迁移到擦除次数未达到第一阈值的第一层存储单元。在存储设备内部进行同类存储单元之间的数据迁移,从而实现多个同类存储单元之间的使用寿命均衡,继而达到存储设备内的存储单元的负载均衡,提高了存储设备的整体寿命。
第三方面,本申请提供一种存储***,包括:控制器,以及第一方面和第二方面中任一项的存储设备。所述控制器用于获取目标数据,并向存储设备发送目标数据;该存储设备,用于依据目标数据临时存储在存储设备包括的热备区域中,并在一定条件下,将目标数据从热备区域写入存储设备包括的数据区域。
该存储***还可以实现第一方面和第二方面的任一项实现方式中的功能,有益效果可以参见第一方面和第二方面中任一方面的描述,此处不再赘述。
第四方面,本申请提供一种数据存储装置,该数据存储装置应用于存储设备,该数据存储装置包括用于执行第一方面和第二方面中任一种可能实现方式的各个模块。
有益效果可以参见第一方面和第二方面中任一方面的描述,此处不再赘述。所述数据存储装置具有实现上述第一方面和第二方面中任一方面的实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,当处理器从存储器中调用并运行计算机指令时,实现第二方面中任一种可能实现方式的方法的操作步骤。
第六方面,本申请提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被处理器或存储设备执行时,实现第二方面中任一种可能实现方式的方法的操作步骤。
第七方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机或服务器等通信设备上运行时,使得处理器或存储设备执行第二方面中任一种可能实现方式的方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种数据存储***示意图;
图2为本申请提供的存储单元的数据存储示意图;
图3为本申请提供的一种存储设备的示意图;
图4为本申请提供的一种数据存储方法的流程图;
图5为本申请提供的一种存储管理的示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍。
图1为本申请提供的一种数据存储***示意图,该数据存储***包括计算设备100和存储***120。在图1所示的应用场景中,用户通过应用程序来存取数据。运行这些应用程序的计算机可以被称为“计算设备”。计算设备100可以是物理机,也可以是虚拟机。物理计算设备包括但不限于桌面电脑、服务器、笔记本电脑以及移动设备。
在一种可能的示例中,计算设备100通过网络访问存储***120以存取数据,例如,该网络可以包括交换机110。
在另一种可能的示例中,计算设备100也可以通过有线连接与存储***120通信,例如,通用串行总线(universal serial bus,USB)或快捷***部件互连标准(Peripheral Component Interconnect Express,PCIe)总线等。
图1所示的存储***120可以是一个集中式存储***。集中式存储***的特点是有一个统一的入口,所有从外部设备来的数据都要经过这个入口,这个入口就是集中式存储***的引擎121。引擎121是集中式存储***中最为核心的部件,许多存储***的高级功能都在其中实现。
如图1所示,引擎121中可以有一个或多个控制器,图1以引擎121包含一个控制器为例予以说明。在一种可能的示例中,若引擎121具有多个控制器,任意两个控制器之间可以具有镜像通道,实现任意两个控制器互为备份的功能,从而避免硬件故障导致整个存储***120的不可用。
引擎121还包含前端接口1211和后端接口1214,其中前端接口1211用于与计算设备100通信,从而为计算设备100提供数据访问服务。而后端接口1214用于与硬盘通信,以扩充存储***120的容量。通过后端接口1214,引擎121可以连接更多的硬盘,从而形成一个非常大的存储资源池。
在硬件上,如图1所示,控制器至少包括处理器1212、内存1213。处理器1212是一个中央处理单元(Central Processing Unit,CPU),用于处理来自存储***120外部(服务器或者其他存储***)的数据访问请求,也用于处理存储***120内部生成的请求。示例性的,处理器1212通过前端接口1211接收计算设备100发送的写数据请求时,会将这些写数据请求中的数据暂时保存在内存1213中。当内存1213中的数据总量达到一定阈值时,处理器1212通过后端端口将内存1213中存储的数据发送给机械硬盘1211、机械硬盘1222、固态硬盘(solid state drive,SSD)1223或其他硬盘1224中至少一个硬盘进行持久化存储。
内存1213是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作***或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(read only memory,ROM)。举例来说,随机存取存储器是DRAM,或者SCM。DRAM是一种半导体存储器,与大部分随机存取存储器(random access memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(static random access memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(programmable read only memory,PROM)、可抹除可编程只读存储器(erasable programmable read only memory,EPROM)等。
另外,内存1213还可以是双列直插式存储器模块或双线存储器模块(dual in-line memory module,DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是SSD。实际应用中,控制器中可配置多个内存1213,以及不同类型的内存1213。本实施例不对内存1213的数量和类型进行限定。此外,可对内存1213进行配置使其具有保电功能。保电功能是指***发生掉电又重新上电时,内存1213中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
内存1213中存储有软件程序,处理器1212运行内存1213中的软件程序可实现对硬盘的管理。例如将硬盘抽象化为存储资源池,并将存储资源池以逻辑单元号(logical unit number,LUN)的形式提供给服务器使用等。这里的LUN其实就是在服务器上看到的硬盘。当然,一些集中式存储***本身也是文件服务器,可以为服务器提供共享文件服务。
如图1所示,在该***中,引擎121可以不具有硬盘槽位,硬盘需要放置在硬盘框122中,后端接口1214与硬盘框122通信。后端接口1214以适配卡的形态存在于引擎121中,一个引擎121上可以同时使用两个或两个以上后端接口1214来连接多个硬盘框。或者,适配卡也可以集成在主板上,此时适配卡可通过PCIe总线与处理器1212通信。
需要说明的是,图1中只示出了一个引擎121,然而在实际应用中,存储***中可包含两个或两个以上引擎121,多个引擎121之间做冗余或者负载均衡。
硬盘框122包括控制单元1225和若干个硬盘。控制单元1225可具有多种形态。一种情况下,硬盘框122属于智能盘框,如图1所示,控制单元1225包括CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘的数据,或者从硬盘读取出来将要发送给控制器的数据。另一种情况下,控制单元1225是一个可编程的电子部件,例如数据处理单元(data processing unit,DPU)。DPU具有CPU的通用性和可编程性,但更具有专用性,可以在网络数据包,存储请求或分析请求上高效运行。DPU通过较大程度的并行性(需要处理大量请求)与CPU区别开来。可选的,这里的DPU也可以替换成图形处理单元(graphics processing unit,GPU)、嵌入式神经网络处理器(neural-network processing units,NPU)等处理芯片。通常情况下,控制单元1225的数量可以是一个,也可以是两个或两个以上。控制单元1225的功能可以卸载到网卡1226上。换言之,在该种实施方式中,硬盘框122内部不具有 控制单元1225,而是由网卡1226来完成数据读写、地址转换以及其他计算功能。此时,网卡1226是一个智能网卡。它可以包含CPU和内存。CPU用于执行地址转换以及读写数据等操作。内存用于临时存储将要写入硬盘的数据,或者从硬盘读取出来将要发送给控制器的数据。也可以是一个可编程的电子部件,例如DPU。硬盘框122中的网卡1226和硬盘之间没有归属关系,网卡1226可访问该硬盘框122中任意一个硬盘(如图1所示出的机械硬盘1221、机械硬盘1222、固态硬盘1223和其他硬盘1224),因此在存储空间不足时扩展硬盘会较为便捷。
按照引擎121与硬盘框122之间通信协议的类型,硬盘框122可能是串行连接的小型计算机***接口(serial attached small computer system interface,SAS)的硬盘框,也可能是NVMe(Non-Volatile Memory express)硬盘框以及其他类型的硬盘框。SAS硬盘框,采用SAS3.0协议,每个框支持25块SAS硬盘。引擎121通过板载SAS接口或者SAS接口模块与硬盘框122连接。NVMe硬盘框,更像一个完整的计算机***,NVMe硬盘插在NVMe硬盘框内。NVMe硬盘框再通过RDMA端口与引擎121连接。
在一种可选的实现方式中,存储***120为盘控一体的集中式存储***,存储***120中不具有上述的硬盘框122,引擎121用于管理通过硬盘槽连接的多个硬盘。硬盘槽的功能可以由后端接口1214实现。
在另一种可选的实现方式中,图1所示的存储***120是分布式存储***,该分布式存储***包括计算设备集群和存储设备集群,计算设备集群包括一个或多个计算设备,各个计算设备之间可以相互通信。计算设备可以是一种计算设备,如服务器、台式计算机或者存储阵列的控制器等。在硬件上,计算设备可以包括处理器、内存和网卡等。其中,处理器是一个CPU,用于处理来自计算设备外部的数据访问请求,或者计算设备内部生成的请求。示例性的,处理器接收用户发送的写数据请求时,会将这些写数据请求中的数据暂时保存在内存中。当内存中的数据总量达到一定阈值时,处理器将内存中存储的数据发送给存储设备进行持久化存储。除此之外,处理器还用于数据进行计算或处理,例如元数据管理、重复数据删除、数据压缩、虚拟化存储空间以及地址转换等。在一种示例中,任意一个计算设备可通过网络访问存储设备集群中的任意一个存储设备。存储设备集群包括多个存储设备。一个存储设备包括一个或多个控制器、网卡与多个硬盘,该网卡用于与计算设备通信。
这里以图1所示出的存储***120为例,对本申请实施例的实施方式进行详细描述。
固态硬盘1223包括控制芯片和用于存储数据的闪存(Flash)芯片,Flash芯片使用一种叫做“浮动门场效应晶体管”的晶体管来保存数据。每个这样的晶体管叫做一个“Cell”,即单元。按照存储密度进行划分,Cell至少可分为SLC和MLC。
如图2所示,图2为本申请提供的存储单元的数据存储示意图,对于SLC,每个Cell单元存储1bit信息,也就是只有0、1两种电压变化,结构简单,电压控制也快速,反映出来的特点就是寿命长,性能强,可编程/擦除(programmable/erase,P/E)次数在1万到10万次之间,但缺点就是容量低而成本高,毕竟一个Cell单元只能存储1bit信息。P/E次数也可以称为P/E寿命。
对于MLC,每个Cell单元存储2bit信息,需要更复杂的电压控制,有00,01, 10,11四种变化,这也意味着写入性能、可靠性能降低了。MLC的P/E寿命根据不同制程在3000~5000次不等。可见,MLC容量是SLC的两倍,但是成本却与SLC大致相当,所以相同容量的SSD,MLC芯片成本要比SLC芯片低很多。此外,MLC由于每个Cell可以存储4个状态,其复杂度比较高,所以出错率也很高。不管SLC还是MLC都需要额外保存ECC校验信息来做数据的错误恢复。
除此之外,Cell还可以包括TLC和QLC。如图2所示,对于TLC,每个Cell单元存储3bit信息,电压从000到001有8种变化,容量比MLC再次增加1/3,成本更低,但是架构更复杂,P/E编程时间长,写入速度慢,P/E寿命也降至1000-3000次,部分情况会更低。寿命短只是相对而言的,经测试,TLC颗粒可以正常使用5年以上。QLC或者可以叫4bit MLC,电压有16种变化,但是单个单元的存储容量能增加33%,写入性能、P/E寿命与TLC相比会进一步降低。
为实现存储设备的硬件加速,提高数据存储***的读写性能,本申请提供了一种存储设备,如图3所示,图3为本申请提供的一种存储设备的示意图,该存储设备300可以是图1所示出的硬盘框122。
在一种可能的实现方式中,当存储***120为盘控一体的集中式存储***时,该存储设备300是指该盘控一体的集中式存储***。
在另一种可能的实现方式中,该存储设备300还可以是指包括控制芯片和闪存芯片的硬盘,例如控制芯片用于实现控制单元的功能,闪存芯片用于实现存储单元的功能。
这里以存储设备300是图1所示出的硬盘框122为例进行说明,在产品的实际实现中,存储设备300提供给主机或计算设备的存储空间仅为一段的逻辑地址空间,该逻辑地址空间和存储设备300的硬件关系如图3所示,存储设备300提供给主机或计算设备的该逻辑地址空间为一个存储资源池(storage resource pool),如该存储设备300包括的热备区域和数据区域。
在一些可能的情形中,该存储资源池也可以是指用于存储数据的逻辑盘。
如图3所示,在存储资源池中,数据区域和热备区域采用不同的逻辑地址空间。
数据区域是指存储资源池中用于持久化存储数据的存储空间。在硬件实现上,数据区域的存储功能是由存储设备300包括的物理盘提供的,示例的,该数据区域的存储空间是由第一存储单元集合提供的,该第一存储单元集合包括多个第一层存储单元(如图3所示出的白色小方块)。该第一存储单元集合是指存储设备300划分多个物理盘(如硬盘321~硬盘324)所包括的第一层存储单元得到的。
另外,该存储单元还可以将多个硬盘中除第一存储单元集合外的其他第一层存储单元作为第二存储单元集合。该第二存储单元集合也包括多个第一层存储单元,该多个第一层存储单元可以为热备区域提供用于数据备份、快照或克隆的存储空间。示例的,该热备区域用于实现存储设备的故障切换机制,为存储提供的数据访问功能提供可靠性。例如,当数据区域中部分区域发生故障导致不可用时,热备区域将切换到运行状态,以接替数据区域中发生故障的区域所提供的存储功能。
值得注意的是,存储设备300可以将多个硬盘进行划分,一部分硬盘用于提供上述第一存储单元集合所包括的多个第一层存储单元,另一部分硬盘用于提供上述第二 存储单元集合所包括的多个第一层存储单元。
可选的,存储设备300中的硬盘同时为第一存储单元集合和第二存储单元集合提供第一层存储单元。如图3所示,硬盘321被划分为四个部分,其中,一个部分的第一层存储单元用于为热备区域提供存储空间,另外三个部分的第一层存储单元用于为数据区域提供存储空间。
在本实施例中,该热备区域可以作为存储设备300的缓存,以临时存储目标数据。当热备区域作为缓存使用时,该热备区域的存储功能是由存储设备300包括的多个第二层存储单元(如图3中斑点填充的小方块)提供的。其中,该第二层存储单元是由第二存储单元集合包括的第一层存储单元转换得到的,且第一层存储单元所能存储的比特数大于第二层存储单元所能存储的比特数。
在第一种可能的示例中,第一层存储单元是MLC、TLC和QLC中的其中一种,第二层存储单元是SLC。
在第二种可能的示例中,第一层存储单元是TLC和QLC中的其中一种,第二层存储单元是SLC和MLC中的其中一种。
在第三种可能的示例中,第一层存储单元是QLC,第二层存储单元是SLC、MLC、TLC中的其中一种。
可选的,上述第二层存储单元是由存储设备300中第二存储单元集合包括的多个第一层存储单元转换获得的。例如,若第一层存储单元是QLC,第二层存储单元是SLC,则一个QLC可以转换为4个SLC;又如,若第一层存储单元是QLC,第二层存储单元是TLC,则一个QLC可以转换为2个TLC。
值得注意的是,上述的SLC、MLC、TLC和QLC仅为本实施例提供的存储单元的示例,随着存储技术的发展,本申请所提供的存储单元还可以是指一个Cell单元内可以存储更多比特数的存储单元,如一个Cell单元内可以存储5bit信息、6bit信息或更多bit等,本申请对此不予限定。
如图3所示,在硬件实现上,该存储设备300包括控制单元310和多个硬盘,如图3所示出的硬盘321、硬盘322、硬盘323和硬盘324。该控制单元310可以实现图1所示出的控制单元1225的功能。硬盘321~硬盘324可以是相同类型的硬盘(如QLC SSD),也可以是不同类型的硬盘,本申请对此不予限定。
在一种可选的示例中,该存储设备300对应的多个物理盘(如图3所示出的硬盘321~硬盘324)在初始状态下,如未使用过的状态下,物理盘的存储介质全部是QLC(第一层存储单元),即硬盘321~硬盘324均为QLC SSD,则硬盘321~硬盘324所包括的QLC可以划分为第一存储单元集合和第二存储单元集合。
该第一存储单元集合包括多个第一存储单元(如图3中物理盘所示出的白色小方块),该多个第一存储单元可以为存储资源池中的数据区域提供用于存储的逻辑地址空间。
该第二存储单元集合包括多个第一存储单元(如图3中物理盘所示出的黑色小方块),该多个第一存储单元可以为存储资源池中的热备区域提供用于存储的逻辑地址空间。
可选的,存储设备300为存储资源池提供逻辑地址空间的具体实现过程可以包括 以下内容。
首先,存储设备300可以将存储空间信息上报给控制器(如图1中引擎121所包括的控制器),该存储空间信息可以包括存储设备300中各硬盘的类型,以及硬盘所能提供的存储容量等信息。
其次,控制器依据存储设备300上报的存储空间信息为热备区域和数据区域提供存储空间。
例如,假设存储设备300包括的硬盘均为QLC SSD,则存储设备300中的控制单元310向控制器上报存储空间信息,控制器根据该存储空间信息和用户设置信息等构建存储资源池,并配置元数据空间、数据区域、热备空间(或称热备区域)、预留空间等区域;随后存储***包括的控制器取热备区域的部分区域作为读缓存区域。如控制器将热备区域中的四分之一作为读缓存区域,该读缓存区域由QLC转换得到的SLC提供存储空间。
示例的,在存储设备300的运行过程中,该第二存储单元集合包括的多个第一存储单元集合可以转换为第二层存储单元(如图3中物理盘所示出的斑点填充的小方块),该第二层存储单元可以为热备区域提供用于缓存的逻辑地址空间。
在一种可能的具体示例中,如热备区域的存储空间不足以临时存储目标数据的情况下,控制单元310可以将第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
如此,在热备区域中用于临时缓存数据的空间不足的情况下,存储设备300中为热备区域提供存储空间的存储单元可以转换,如上述的第一层存储单元转换为第二层存储单元,示例的,QLC转换为SLC,使得存储设备可以利用转换获得的第二层存储单元来临时存储数据,从而使得存储设备对外提供数据访问服务的数据读写速度和第二层存储单元的数据读写速度一致。
由于一个第一层存储单元所能存储的比特数大于一个第二层存储单元所能存储的比特数,因此第二层存储单元的数据读写速度大于第一层存储单元的数据读写速度,也就是说,存储设备在初始化状态下的数据读写速度与第一层存储单元一致,在本实施例中,存储设备对外提供的数据访问服务的数据读写速度和第二层存储单元一致,由此提高了存储设备的数据读写速度,进而提升了存储设备的数据访问性能。
另外,由于第一层存储单元所能存储的比特数大于第二层存储单元所能存储的比特数,因此,第一层存储单元的数据读写速度小于第二层存储单元的数据读写速度。在同样的使用情况下,请参照图2和图3的相关描述,第二层存储单元的P/E次数(寿命)高于第一层存储单元的P/E次数(寿命)。
在图3所示出的存储设备300的基础上,为实现数据访问,本申请提供一种数据存储方法,如图4所示,图4为本申请提供的一种数据存储方法的流程图,存储设备300为主机或计算设备提供了存储资源池,该存储资源池包括数据区域和热备区域,关于存储设备300的具体实现可以参照上述图3的相关内容,此处不予赘述。该数据存储方法包括以下步骤。
S410,控制单元310将获取到的目标数据存储在热备区域。
首先,由于第一层存储单元所能存储的比特数大于第二层存储单元所能存储的比 特数,因此,第一层存储单元的数据读写速度小于第二层存储单元的数据读写速度;其次,热备区域的存储功能是由第二层存储单元提供的,而数据区域的存储功能是由第一层存储单元提供的,进而,热备区域的数据读写速度高于数据区域的数据读写速度,将存储设备300中的热备区域作为数据区域的缓存,提高了存储设备300读写外部数据(如上述的目标数据)的性能。
S420,在一定条件下,控制单元310将热备区域存储的目标数据写入数据区域。
在第一种可能的情形中,上述的一定条件可以是热备区域中存储的数据量达到阈值,例如,100百万字节(mega byte,MB)或20MB等。
在第二种可能的情形中,上述的一定条件可以是热备区域中存储该目标数据达到指定时长。例如,当目标数据存储在热备区域的时长达到1分钟或1天时,存储设备300将该热备区域存储的目标数据迁移到数据区域。
在第三种可能的情形中,上述的一定条件可以是热备区域的可用容量低于容量阈值,如10MB、5MB或2MB等。
以上三种可能的情形仅为本实施例提供的示例,不应理解为对本申请的限定。
如此,热备区域作为数据区域的缓存,由于热备区域对应的第二层存储单元所能存储的比特数小于数据区域对应的第一层存储单元所能存储的比特数,因此,热备区域的数据读写性能高于数据区域的数据读写性能。在数据访问过程中,存储设备将目标数据临时存储在热备区域中,当收到用于读取所述目标数据的读请求时,存储***会优先访问热备区域,使得存储设备对外提供数据访问服务时,存储设备的数据读写速度与热备区域的数据读写速度一致,由此提高了存储设备的数据访问效率。由于热备区域在存储设备中是一直存在的,热备区域所提供的数据缓存功能一直不会消失,避免了通常技术中SLC消失所导致的数据读写速度下降的问题。
另外,在一定条件下,存储设备将热备区域中存储的目标数据写入(或称迁移)到数据区域中,由存储设备的数据区域对该目标数据进行持久化存储,使得存储设备内部可以划分为缓存(热备区域)和持久化存储(数据区域),进而在存储设备内部实现了硬件加速,提高了存储设备的数据访问性能。
还需要说明的是,由于热备区域是存储设备提供的,且热备区域可以作为存储设备的缓存,因此,在硬件加速场景下,无需为该存储设备添加额外的用于缓存的高性能存储介质,降低了存储设备实现硬件加速的成本。
作为一种可选的实现方式,存储设备300可以依据目标数据所具有的冷热信息,将目标数据写入不同的存储单元中。该冷热信息是指目标数据在单位时间内的访问次数,或称该目标数据的访问频率,如目标数据的访问频率高于频率阈值,则该目标数据为热数据。
在一种可能的示例中,写请求中可以携带有指示目标数据的冷热信息的标识,如该标识为数据流ID。在一种可能的情形中,该数据流ID不仅指示了目标数据的冷热,还指示目标数据将要存储在存储设备300中的存储单元类型。存储设备300可以依据该数据流ID快速对目标数据进行访问,由此提高存储设备的数据访问效率。
例如,若写请求中携带的目标数据为冷数据,则数据流ID可以为QLC ID,存储设备300可以依据该写请求携带的QLC ID,将该目标数据写入存储设备300中的QLC, 该QLC可以是为数据区域提供存储空间的第一层存储单元。
又如,若写请求中携带的目标数据为热数据,则数据流ID可以为SLC ID,存储设备300可以依据该写请求携带的SLC ID,将该目标数据写入存储设备300中的SLC,该SLC可以是为热备区域提供存储空间的第二层存储单元。
值得注意的是,上述的QLC ID和SLC ID仅为说明数据流ID而提供的示例,当该数据流ID用于确定待写数据将要存储的存储单元类型时,该数据流ID可以是存储设备所在的存储***中控制器(如图1所示出的控制)依据待写数据的冷热信息生成的,还可以是客户端(如主机,或与存储***、存储设备通信的其他计算设备等)指定的。
相应的,存储设备300为了将数据从热备区域和数据区域中读取出来,读请求中可以携带有上述的数据流ID。
例如,若目标数据为冷数据,在控制单元310获取到用于请求目标数据的第一读请求的情况下,存储设备300可以从第一读请求携带的QLC ID所指示的QLC中,读取目标数据。其中,该QLC ID指示目标数据存储在数据区域的QLC中;控制单元310解析该QLC ID可以确定目标数据存储的物理块(chunk),例如,该chunk是图4中为数据区域提供存储空间的第一层存储单元(物理盘300B中白色小方块)。
又如,若目标数据为热数据,在控制单元310获取到用于请求目标数据的第二读请求的情况下,存储设备300可以从第二读请求携带的SLC ID所指示的SLC中,读取目标数据。其中,该SLC ID指示目标数据存储在数据区域的SLC中;控制单元310解析该SLC ID可以确定目标数据存储的chunk,例如,该chunk是图4中为热备区域提供存储空间的第二层存储单元(物理盘300B中斑点填充的小方块)。
存储设备可以依据读请求或写请求所携带的数据流ID,确定目标数据的读取位置或写入位置,提高了存储设备的数据读写速度,从而提升了存储设备的数据访问性能。
在一种可选的实现方式中,针对于第一存储单元集合包括的每个第一层存储单元,存储设备300还可以统计第一层存储单元的擦写次数,并对擦除次数达到第一阈值的第一层存储单元进行磨损防护。
在一种可能的示例中,磨损防护是指存储单元转换。例如,控制单元将擦除次数达到第一阈值的第一层存储单元转换为第二层存储单元。
存储设备将第一层存储单元转换为第二层存储单元,可以提高存储设备中转换得到的第二存储单元的剩余P/E次数,从而提升了存储设备的使用寿命,实现存储设备的磨损均衡。
在第二种可能的示例中,磨损防护是指数据迁移。例如,控制单元将擦除次数达到第一阈值的第一层存储单元中存储的数据,迁移到擦除次数未达到第一阈值的第一层存储单元。
在存储设备内部进行同类存储单元之间的数据迁移,实现多个同类存储单元之间的P/E次数均衡,继而达到存储设备内的存储单元的负载均衡,提高了存储设备的整体寿命。
值得注意的是,在一种可能的情况下,控制单元还可以将依据存储设备中各存储单元的使用情况,将多个第二层存储单元转换为第一层存储单元。
示例的,在存储设备中硬盘出现故障的情况下,控制单元还用于将第二层存储单元转换为第一层存储单元,转换得到的第一层存储单元用于恢复硬盘存储的数据。若硬盘出现故障,由于热备区域(如由SLC提供的存储空间)中缓存数据清除掉之后,这部分数据不影响数据区域(如由QLC提供的存储空间)实际存储的业务数据,所以硬盘所存储的业务数据不会受到热备空间中缓存数据的影响,控制单元将为热备区域提供存储空间的第二层存储单元(如SLC)换换为第一层存储单元(如QLC),并利用该第一层存储单元来恢复故障硬盘的数据,保证了存储设备的数据可靠性。
如此,存储设备中热备区域对应的存储单元可以自由转换,丰富了热备区域的功能,在热备区域实现热备的功能的情况下,还可以实现存储设备的缓存功能。如图5所示,图5为本申请提供的一种存储管理的示意图,该存储管理的过程由存储***120实现,例如,该存储管理的过程由硬盘框122和引擎121包括的控制器协同实现,硬盘框122可以实现上述存储设备300的功能。
如图5所示,该存储管理的过程包括数据访问过程和故障处理过程。
数据访问过程包括以下步骤S510~S530。
S510,控制器根据读请求的访问条件下发数据流ID。
该访问条件是指读请求所请求的数据的冷热情况,或是该数据所存储的逻辑地址,如该逻辑地址位于热备区域对应的地址段,则数据流ID为SLC ID;又如该逻辑地址位于数据区域对应的地址段,则数据流ID为QLC ID。
S520,硬盘框122依据数据流ID进行存储单元转换。
例如,在控制器读取热备区域中读缓存区域所存储的数据之后,由于热备区域所能存储的数据量减少,而在后续硬盘框122的使用过程中,需要用到更多的热备区域以对数据区域中的数据进行备份,则硬盘框122可以将为热备区域提供存储空间的SLC转换为QLC。
又如,在控制器读取热备区域中读缓存区域所存储的数据之后,由于在一定时长内数据区域所要进行读写的数据增加,则硬盘框122可以将为热备区域提供存储空间的QLC转换为SLC,以提高硬盘框122的整体读写速度,从而提高存储***120的数据访问性能。
S530,控制器对硬盘框122进行数据访问。
该数据访问包括写数据和读数据中至少一种,具体可以参见上述图4的相关描述,此处不予赘述。
在硬盘框122中部分硬盘出现故障的情况下,本实施例提供的故障处理过程包括以下步骤S541~S545。
S541,硬盘框122向存储***120的控制器上报故障信息。
示例的,该故障信息是指硬盘框122中出现故障盘。
S542,控制器向硬盘框122发送数据修改(trim)指令。
例如,该trim指令用于指示硬盘框122将为热备区域提供存储空间的SLC中存储的数据清除,并将该SLC转换为QLC。由于SLC用作读缓存,该数据在为数据区域提供数据空间的QLC中已存储了一份,因此trim操作不会让原数据丢失。
S543,硬盘框122清除热备区域中读缓存数据。
该读缓存数据是指上述为热备区域提供存储空间的SLC中存储的数据。在S543之后,硬盘框122可以向控制器返回已清除读缓存数据的响应。
S544,控制器启用热备区域进行数据重构。
例如,在硬盘框122中出现一块故障盘的情况下,存储***包括的控制器继续下发QLC的数据流ID(QLC ID),利用热备区域对故障盘进行数据重构。
S545,硬盘框122依据数据流ID进行存储单元转换和数据重构。
例如,硬盘框122根据数据流ID,在物理块上进行QLC和SLC的动态转换,并完成数据重构。该数据重构包括:硬盘框122将热备区域中对故障盘的备份数据写入新加入硬盘框122的硬盘。在一种可能的情形中,盘因为故障问题导致整盘不可用的情况出现的概率较低;而且故障盘数据恢复之后,存储维护者会立即补盘,对故障盘进行替换,因此热备区域又可以继续转为SLC读缓存使用。
如此,在实施例中,若硬盘出现故障,由于热备空间(SLC提供的存储空间)中数据trim掉之后,这部分数据不影响数据区域(QLC提供的存储空间)实际存储的业务数据,所以硬盘所存储的业务数据不会受到热备空间中数据trim的影响,因此,热备区域用于读数据场景的加速,不破坏存储***原有的数据可靠性。
可以理解的是,为了实现上述实施例中功能,存储***和存储设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
例如,当本申请提供的数据存储方法由软件模块的形式来实现时,上述数据存储方法的实现可以由数据存储装置来实现,例如该数据存储装置包括通信模块和处理模块。该通信模块用于接收或发送目标数据,处理模块用于确定目标数据的存储位置,以及实现存储模块的转换等。有关上述通信模块和处理模块更详细的描述可以直接参考图1~图5所示的实施例中相关描述直接得到,这里不加赘述。
又如,当本申请提供的数据存储方法由硬件实现时,可以是由图1所示出的硬盘框122或是存储***120执行,还可以是由图1的描述内容中的其他存储***执行。
可以理解的是,本申请的实施例中的处理器可以是CPU、NPU或GPU,还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、PROM、EPROM、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。 当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,SSD。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
“多个”是指两个或两个以上,其它量词与之类似。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

Claims (13)

  1. 一种存储设备,其特征在于,包括控制单元、热备区域和数据区域;
    所述数据区域的存储功能是由所述存储设备包括的第一存储单元集合提供的,所述第一存储单元集合包括多个第一层存储单元;
    所述热备区域的存储功能是由所述存储设备包括的多个第二层存储单元提供的,所述第一层存储单元所能存储的比特数大于所述第二层存储单元所能存储的比特数;
    所述热备区域用于作为所述存储设备的缓存,临时存储目标数据;
    所述控制单元用于在一定条件下,将所述热备区域中存储的所述目标数据写入所述数据区域。
  2. 根据权利要求1所述的存储设备,其特征在于,
    所述第一层存储单元是双层式存储单元MLC、三层式存储单元TLC和四层式存储单元QLC中的其中一种,所述第二层存储单元是单层式存储单元SLC;或者,
    所述第一层存储单元是TLC和QLC中的其中一种,所述第二层存储单元是SLC和MLC中的其中一种;或者,
    所述第一层存储单元是QLC,所述第二层存储单元是SLC、MLC、TLC中的其中一种。
  3. 根据权利要求1或2所述的存储设备,其特征在于,
    所述存储设备还包括第二存储单元集合,所述第二存储单元集合包括多个第一层存储单元,所述第二层存储单元是由所述第二存储单元集合包括的第一层存储单元转换获得的。
  4. 根据权利要求3所述的存储设备,其特征在于,
    在所述存储设备的运行过程中,所述控制单元用于将所述第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
  5. 根据权利要求4所述的存储设备,其特征在于,所述控制单元具体用于:在所述热备区域的存储空间不足以存储所述目标数据的情况下,将所述第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
  6. 根据权利要求1-5中任一项所述的存储设备,其特征在于,
    在所述存储设备中硬盘出现故障的情况下,所述控制单元用于将所述第二层存储单元转换为第一层存储单元,转换得到的第一层存储单元用于恢复所述硬盘存储的数据。
  7. 一种数据存储方法,其特征在于,所述方法由存储设备执行,所述方法包括:
    所述存储设备包括的第一存储单元集合提供数据区域,所述第一存储单元集合包括多个第一层存储单元;
    所述存储设备包括的多个第二层存储单元提供热备区域,所述第一层存储单元所能存储的比特数大于所述第二层存储单元所能存储的比特数;
    所述热备区域作为所述存储设备的缓存,临时存储目标数据;
    所述存储设备包括的控制单元在一定条件下,将所述热备区域中存储的所述目标数据写入所述数据区域。
  8. 根据权利要求7所述的方法,其特征在于,
    所述第一层存储单元是双层式存储单元MLC、三层式存储单元TLC和四层式存储单元QLC中的其中一种,所述第二层存储单元是单层式存储单元SLC;或者,
    所述第一层存储单元是TLC和QLC中的其中一种,所述第二层存储单元是SLC和MLC中的其中一种;或者,
    所述第一层存储单元是QLC,所述第二层存储单元是SLC、MLC、TLC中的其中一种。
  9. 根据权利要求7或8所述的方法,其特征在于,
    所述存储设备还包括第二存储单元集合,所述第二存储单元集合包括多个第一层存储单元,所述第二层存储单元是由所述第二存储单元集合包括的第一层存储单元转换获得的。
  10. 根据权利要求9所述的方法,其特征在于,所述方法还包括:
    在所述存储设备的运行过程中,所述控制单元将所述第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
  11. 根据权利要求10所述的方法,其特征在于,
    所述控制单元将所述第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元,包括:
    所述控制单元在所述热备区域的存储空间不足以存储所述目标数据的情况下,将所述第二存储单元集合包括的第一层存储单元转换为多个第二层存储单元。
  12. 根据权利要求7-11中任一项所述的方法,其特征在于,所述方法还包括:
    在所述存储设备中硬盘出现故障的情况下,所述控制单元将所述第二层存储单元转换为第一层存储单元,转换得到的第一层存储单元用于恢复所述硬盘存储的数据。
  13. 一种存储***,其特征在于,包括:控制器,以及权利要求1至权利要求6中任一项所述的存储设备;
    所述控制器,用于获取目标数据,并向所述存储设备发送所述目标数据;
    所述存储设备,用于依据所述目标数据临时存储在所述存储设备包括的热备区域中,并在一定条件下,将所述目标数据从所述热备区域写入所述存储设备包括的数据区域。
PCT/CN2022/103741 2021-09-23 2022-07-04 一种存储设备、数据存储方法及存储*** WO2023045483A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22871544.7A EP4394574A1 (en) 2021-09-23 2022-07-04 Storage device and data storage method and storage system
US18/613,617 US20240231645A1 (en) 2021-09-23 2024-03-22 Storage device, data storage method, and storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111115207.XA CN115857790A (zh) 2021-09-23 2021-09-23 一种存储设备、数据存储方法及存储***
CN202111115207.X 2021-09-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/613,617 Continuation US20240231645A1 (en) 2021-09-23 2024-03-22 Storage device, data storage method, and storage system

Publications (1)

Publication Number Publication Date
WO2023045483A1 true WO2023045483A1 (zh) 2023-03-30

Family

ID=85652284

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/103741 WO2023045483A1 (zh) 2021-09-23 2022-07-04 一种存储设备、数据存储方法及存储***

Country Status (4)

Country Link
US (1) US20240231645A1 (zh)
EP (1) EP4394574A1 (zh)
CN (1) CN115857790A (zh)
WO (1) WO2023045483A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116069266B (zh) * 2023-04-06 2023-06-20 苏州浪潮智能科技有限公司 磁盘漫游控制方法、装置、设备及计算机可读存储介质
CN116149574B (zh) * 2023-04-20 2023-07-14 苏州浪潮智能科技有限公司 Raid阵列的管理方法、装置、raid卡及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254458A1 (en) * 2012-03-26 2013-09-26 Michael H. Pittelko Single-level cell and multi-level cell hybrid solid state drive
CN106843762A (zh) * 2017-01-17 2017-06-13 北京联想核芯科技有限公司 管理存储区域的方法及固态硬盘
CN107450858A (zh) * 2017-08-11 2017-12-08 湖南国科微电子股份有限公司 一种固态硬盘分级存储方法及***
CN111506262A (zh) * 2020-03-25 2020-08-07 华为技术有限公司 一种存储***、文件存储和读取方法及终端设备
WO2020186455A1 (zh) * 2019-03-19 2020-09-24 华为技术有限公司 数据存储方法及存储芯片

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130254458A1 (en) * 2012-03-26 2013-09-26 Michael H. Pittelko Single-level cell and multi-level cell hybrid solid state drive
CN106843762A (zh) * 2017-01-17 2017-06-13 北京联想核芯科技有限公司 管理存储区域的方法及固态硬盘
CN107450858A (zh) * 2017-08-11 2017-12-08 湖南国科微电子股份有限公司 一种固态硬盘分级存储方法及***
WO2020186455A1 (zh) * 2019-03-19 2020-09-24 华为技术有限公司 数据存储方法及存储芯片
CN111506262A (zh) * 2020-03-25 2020-08-07 华为技术有限公司 一种存储***、文件存储和读取方法及终端设备

Also Published As

Publication number Publication date
EP4394574A1 (en) 2024-07-03
US20240231645A1 (en) 2024-07-11
CN115857790A (zh) 2023-03-28

Similar Documents

Publication Publication Date Title
US11068170B2 (en) Multi-tier scheme for logical storage management
US11709623B2 (en) NAND-based storage device with partitioned nonvolatile write buffer
US9767017B2 (en) Memory device with volatile and non-volatile media
WO2023045483A1 (zh) 一种存储设备、数据存储方法及存储***
US11599304B2 (en) Data aggregation in ZNS drive
US10235069B2 (en) Load balancing by dynamically transferring memory range assignments
CN105786400B (zh) 一种异构混合内存组件、***及存储方法
GB2507410A (en) Storage class memory having low power, low latency, and high capacity
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
US11372543B2 (en) Zone-append command scheduling based on zone state
WO2023035646A1 (zh) 一种扩展内存的方法、装置及相关设备
WO2020029319A1 (zh) 全闪存服务器
WO2017107162A1 (zh) 一种异构混合内存组件、***及存储方法
CN113704138A (zh) 存储装置及其操作方法
TWI782847B (zh) 用來在儲存伺服器中進行基於管線的存取管理的方法及設備
CN115079936A (zh) 一种数据写入方法及装置
KR20220103340A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20230376216A1 (en) Memory device, storage device, and computing system including memory device and storage device
WO2022262345A1 (zh) 一种数据管理方法、存储空间管理方法及装置
WO2023020136A1 (zh) 存储***中的数据存储方法及装置
CN117348789A (zh) 数据访问方法、存储设备、硬盘、存储***及存储介质
US20230376427A1 (en) Memory system and computing system including the same
KR20230160673A (ko) 메모리 시스템 및 이를 포함하는 컴퓨팅 시스템
KR20230069800A (ko) 서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법
CN115878308A (zh) 一种资源调度方法及装置

Legal Events

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

Ref document number: 22871544

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022871544

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022871544

Country of ref document: EP

Effective date: 20240326

NENP Non-entry into the national phase

Ref country code: DE