WO2022237916A1 - 基于固态硬盘的快照实现方法、存储系统 - Google Patents

基于固态硬盘的快照实现方法、存储系统 Download PDF

Info

Publication number
WO2022237916A1
WO2022237916A1 PCT/CN2022/102018 CN2022102018W WO2022237916A1 WO 2022237916 A1 WO2022237916 A1 WO 2022237916A1 CN 2022102018 W CN2022102018 W CN 2022102018W WO 2022237916 A1 WO2022237916 A1 WO 2022237916A1
Authority
WO
WIPO (PCT)
Prior art keywords
snapshot
solid
block
time stamp
lba
Prior art date
Application number
PCT/CN2022/102018
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 苏州库瀚信息科技有限公司
Publication of WO2022237916A1 publication Critical patent/WO2022237916A1/zh

Links

Images

Classifications

    • 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • 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

Definitions

  • the present application relates to the field of storage technology, in particular to a method and system for implementing snapshots based on solid-state disks.
  • Snapshot is a technology that records the state of a storage system at a certain moment. Users can create multiple snapshots, and access, modify, copy, and roll back any created snapshot at any point in the future.
  • the storage system is mainly composed of a software layer (i.e., a computer host) and a hard disk (i.e., a storage device), and the software layer communicates with one or more users.
  • a software layer i.e., a computer host
  • a hard disk i.e., a storage device
  • the software layer communicates with one or more users.
  • FIG. 1 the software layer definition in the prior art implements the snapshot technology, The hard disk does not need and cannot perceive the existence of snapshot technology.
  • the software layer needs to occupy a lot of computer DRAM hardware resources and CPU computing power resources, and the execution time of the snapshot command is very long.
  • SSDs solid-state drives
  • HDDs hard drives
  • mapping table from user logical address (LA) to hard disk physical address (PA) is maintained at the software layer, and the data size represented by each LA and PA is 4KB (mainstream).
  • LA logical address
  • PA hard disk physical address
  • FIG. 2 The enterprise-level storage system of the company uses 4KB as the minimum read-write unit of data), and the data of each LA can be written to any PA, so each entry in the mapping table records the location information of the PA written by all LAs .
  • the data of LA(0) is written into PA(3)
  • the data of LA(1) is written into PA(9)
  • the data of LA(2) is written into PA(7).
  • the data of LA(3) is written into PA(2).
  • the user wants to generate a snapshot at this moment (T1), that is, to archive the state of the storage system at T1 for later viewing.
  • the method of the software layer is to permanently save the mapping table at T1 to the hard disk, namely:
  • Step 1 The user initiates a snapshot generation command.
  • Step 2 The software layer locks the mapping table, that is, does not respond to subsequent user write commands to prevent the mapping table from being updated.
  • Step 3 The software layer writes the 4GB mapping table at T1 to the hard disk, as shown in FIG. 3 .
  • This step will take a long time.
  • the current mainstream SSD interface speed is 4GB/s, so this step will take 1s.
  • the storage system can respond to the user's read command, because the read command will not change the content of the mapping table.
  • Step 4 The software layer unlocks the mapping table, that is, continues to respond to subsequent write commands.
  • the user continues to write new LAs or overwrite previously written LAs.
  • the state of the storage system at T2 is as shown in Figure 4, that is, overwrite LA(0) to PA(8), and newly write into LA(5) Go to PA (4), and generate a new snapshot (T2), then repeat the above steps to write the T2 snapshot to the hard disk.
  • the storage system will set an upper limit for the number of supported snapshots, assuming TH, when the number of snapshots generated by the user exceeds TH, the storage system will automatically overwrite the oldest snapshot, and the user will perceive this situation.
  • TH snapshots system state
  • the purpose of this application is to provide a snapshot implementation method based on a solid-state hard disk. Realizing a snapshot in a solid-state hard disk can save DRAM resources of the software layer in the prior art and greatly reduce costs.
  • the present application discloses a snapshot implementation method based on a solid-state hard disk.
  • the LBA segment in the solid-state hard disk is divided into several logical blocks and the L2P mapping table is correspondingly divided into several L2P blocks. Each logical block corresponds to one L2P block.
  • the solid-state hard disk is configured to perform the following steps:
  • Receiving the snapshot generation command again traversing the latest L2P chunks corresponding to all logical blocks, determining that the latest L2P chunks do not have a timestamp, and adding a new timestamp to the latest L2P chunks to generate a snapshot with the latest timestamp snapshot;
  • the method for associating multiple L2P blocks corresponding to each logical block includes: a linked list, an array, and a hash algorithm.
  • the method for associating the multiple L2P chunks corresponding to each of the logical blocks includes: connecting the multiple L2P chunks corresponding to each of the logical chunks with a linked list, and the latest L2P chunk at the head of the linked list.
  • the solid-state hard disk is further configured to perform the following steps: receiving a read command to read the data under the snapshot of the specified LBA and time stamp, determining the logical block to which the LBA belongs and the specified time corresponding to the logical block
  • the stamped L2P block returns the data stored in the physical address of the flash memory corresponding to the LBA in the L2P block.
  • the solid-state hard disk is further configured to perform the following steps: receiving a read command to read the data under the snapshot of the specified LBA and time stamp, determining the logical block to which the LBA belongs and the logical block does not have a corresponding Specify the L2P block of the timestamp, and return the data stored in the physical address of the flash memory corresponding to the LBA in the L2P block of the previous timestamp of the logical block.
  • the solid-state hard disk is further configured to perform the following steps: receiving a read command to read the data under the snapshot of the specified LBA and time stamp, determining the logical block to which the LBA belongs and the specified time corresponding to the logical block
  • the physical address of the flash memory corresponding to the LBA in the stamped L2P block is empty, and returns the data stored in the physical address of the flash memory corresponding to the LBA in the L2P block of the previous time stamp of the logical block.
  • the physical address of the flash memory in the solid state disk is divided into several physical blocks, and each physical block includes several physical pages.
  • each logical block includes 1-1G consecutive LBAs.
  • the step of generating a snapshot with a time stamp by the solid-state hard disk further includes:
  • the system time stamp maintained before receiving the snapshot generation command is determined as the time stamp of the next snapshot, and the maintained system time stamp is updated after receiving the snapshot generation command to be used as the time stamp of the new L2P chunk.
  • the present application also discloses a storage system, including: a software layer and a solid-state hard disk, the software layer communicates with one or more users, the LBA segment in the solid-state hard disk is divided into several logical blocks and the corresponding L2P mapping table is divided into several L2P blocks, each logical block corresponds to an L2P block, and the software layer is configured to perform the following steps:
  • the software layer is configured to perform the following steps: initiate a read command to obtain a snapshot with a specified LBA and time stamp from the solid state disk.
  • the snapshot is implemented in the solid-state hard disk, which can save the DRAM resource of the software layer in the prior art, and greatly reduce the cost.
  • the solid-state disk optimizes the snapshot implementation technology, making the response time of the snapshot command close to zero.
  • FIG. 1 is a schematic diagram of a storage system in the prior art.
  • Figure 2 is a mapping relationship between logical addresses and physical addresses.
  • Fig. 3 is a schematic diagram of the system state at time T1.
  • Fig. 4 is a schematic diagram of the system state at time T2.
  • Fig. 5 is a schematic flowchart of a method for implementing a snapshot based on a solid state disk according to the first embodiment of the present application.
  • FIG. 6 is a mapping relationship between a logical address and a physical address based on a solid state disk according to an embodiment of the present application.
  • Fig. 7 is a schematic diagram of a system state at time T1 according to an embodiment of the present application.
  • Fig. 8 is a schematic diagram of newly creating an L2P block according to an embodiment of the present application.
  • Fig. 9 is a schematic diagram of a system state at time T2 according to an embodiment of the present application.
  • Fig. 10 is a schematic diagram of an initial state of a solid state disk according to an embodiment of the present application.
  • FIG. 11 is a schematic diagram of writing an LBA according to an embodiment of the present application.
  • Fig. 12 is a schematic diagram of generating a snapshot command for the first time according to an embodiment of the present application.
  • FIG. 13 is a schematic diagram of overwriting an LBA according to an embodiment of the present application.
  • Solid state drives are also called solid state drives (SSD).
  • SSDs are hard drives made of arrays of solid-state electronic memory chips.
  • SSDs are mainly composed of a main controller (or processor) and storage particles.
  • the main controller can process commands from the software layer, such as snapshot generation commands, write commands, read commands, erase commands, and perform related operations.
  • the storage particles may be NAND flash memory, NOR flash memory, magnetoresistive random access memory (MRAM), resistive random access memory (RRAM), phase change random access memory (PCRAM), Nano-RAM, etc.
  • NAND flash can be used as an example to demonstrate the snapshot implementation technique.
  • the storage space of the solid-state hard disk (for example, DRAM) will maintain an L2P (Logical_2_Physical) linear table to record the physical location information of each logical block address (LBA) written into the flash memory.
  • L2P Logical_2_Physical
  • the LBA is divided into logical block 0, logical block 1, etc., and each logical block includes 1-1G LBAs.
  • the L2P is correspondingly divided into several L2P chunks (chunk), and the physical address (PBA) is divided into several physical blocks, each physical block includes several physical pages, for example, 5 physical pages, and the physical page is the minimum read and write unit, and the physical block is the minimum erasing unit.
  • the physical addresses include corresponding physical blocks and physical pages, for example, the second physical block and the third physical page ⁇ 2,3 ⁇ . Each physical block corresponds to a logical block, and each physical block corresponds to an L2P chunk.
  • the snapshot implementation method has the following steps:
  • Step 501 the solid-state disk receives a snapshot generation command, adds a time stamp to each of the L2P chunks, and generates a time-stamped snapshot.
  • Step 502 the solid state disk checks the logical block to which the written LBA belongs, determines that the L2P block corresponding to the logical block has a time stamp, creates a new L2P block and updates the corresponding physical address to the new L2P group block.
  • Step 503 the solid state disk receives the snapshot generation command again, traverses the latest L2P blocks corresponding to all logical blocks, determines that the latest L2P block does not have a timestamp, and adds a new timestamp to the latest L2P block to generate Snapshot with latest timestamp.
  • step 504 the solid state disk associates multiple L2P blocks corresponding to each logical block.
  • the method for associating multiple L2P blocks corresponding to each logical block includes: a linked list, an array, and a hash algorithm.
  • a linked list method is used for association, multiple L2P chunks corresponding to each logical block are connected with a linked list, and the latest L2P chunk is located at the head of the linked list.
  • the method when the data in the solid state disk needs to be read, the method also includes:
  • the system time stamp corresponding to when the snapshot generation command is received may be determined as the time stamp of the current snapshot, so as to generate the snapshot with the time stamp.
  • the latest system timestamp corresponding to when the snapshot generation command is received again may be determined as the timestamp of the latest snapshot.
  • the solid-state disk maintains a system timestamp before receiving the snapshot generation command, and when receiving the snapshot generation command, the system timestamp maintained by the solid-state disk is determined as the timestamp of the snapshot, and the system timestamp maintained by the solid-state disk is updated at the same time. Timestamp, use the updated system timestamp as the timestamp for the new L2P chunk.
  • the second embodiment of the present application discloses a storage system, which includes: a software layer and a solid-state hard disk, the software layer communicates with one or more users, and the LBA segment in the solid-state hard disk is divided into several logical blocks And the L2P mapping table is correspondingly divided into several L2P blocks, each logical block corresponds to an L2P block, and the software layer is configured to perform the following steps:
  • Flash memory has unique characteristics: a physical page is the smallest unit for reading and writing, and a physical block is the smallest unit for erasing. Physical pages must be erased before they can be written.
  • the L2P table in the solid state disk is basically similar to the mapping table in the software layer of the prior art, and storing the L2P in the storage space of the solid state disk can save DRAM hardware resources in the software layer.
  • multiple snapshots need to save multiple L2P mapping tables, but in fact, only a small number of LBAs may be written or updated between two snapshots, and most LBAs are unchanged. For these LBAs that have not changed, you can directly refer to the previous snapshot.
  • LBA(1)-LBA(1K-1) belong to logical block 0,
  • LBA(K)-LBA(2K-1) belong to logical block 1, and so on.
  • the solid state disk can determine the logical block to which the LBA belongs according to the LBA written in the software layer, for example, LBA/K is equal to the logical block to which the LBA belongs. And, the position of the LBA in the logical block can be determined by the way the LBA mods K, for example, LBA mod K is equal to the position in the logical block to which it belongs.
  • the steps to implement snapshots for solid-state drives are as follows:
  • Step 1 Assume that the state of the SSD at T1 is as shown in FIG. 7 , and the software layer initiates a command to generate a snapshot at this time.
  • Step 2 After receiving the snapshot command, the SSD marks each L2P Chunk with [T1]. T1 indicates the timestamp of the snapshot, and also implies that the L2P Chunk has been locked and its content cannot be changed. And the marking operation can be performed in the background task of the solid-state disk, so the response time of the snapshot command is very fast, and can be completed in microseconds.
  • Step 3 Assuming that the user overwrites LBA0, which belongs to logical block 0, the SSD checks that the L2P Chunk corresponding to logical block 0 has been marked with [T1], so it belongs to a previous snapshot and cannot be changed. Apply for a new L2P Chunk (unmarked) in the DRAM, and then update the newly written physical address ⁇ physical block 2, physical page 3 ⁇ of logical block 0 to the L2P Chunk. The process is also nearly free. At this time, it is found that logical block 0 corresponds to two L2P Chunks, so they can be associated, and the association methods include but are not limited to linked lists, arrays, hashes, and so on.
  • each logical block may correspond to multiple L2P Chunks, and these L2P Chunks are connected in a linked list, and the latest L2P Chunk is hung at the head of the linked list.
  • LBAs As more other LBAs are written, there will be more situations where one logical block corresponds to two L2P Chunks. Assume that at T2, the state of the SSD is shown in Figure 8, and the software layer initiates a snapshot command.
  • Step 4 The SSD traverses the latest L2P Chunk of all logical blocks. If the Chunk is not marked, it means that the logical block has new data written in the time period T1->T2, then mark [T2]; otherwise, It means that there is no new data written in this logical block during the T1->T2 time period, and its state is the same as that at T1, so there is no need to do anything, as shown in Figure 9.
  • Step 5 Repeat steps 3 and 4 to continue processing subsequent write commands and snapshot commands.
  • the snapshot implementation technology of the present application is highly efficient, and almost does not cause additional delay to the user's write command.
  • the software layer can specify the timestamp and LBA in the read command to read the data under a specific snapshot, such as specifying to read [LBA0, T2], the SSD will determine that LBA0 belongs to logical block 0, and read from the L2P corresponding to logical block 0
  • the head of the Chunk linked list starts looking for the L2P Chunk marked as [T2], and after finding it, reads out the data in the physical address ⁇ 2,3 ⁇ of the flash memory and sends it to the software layer.
  • the following two special cases occur:
  • the logical block to which the specified LBA belongs does not have an L2P block with a specified time stamp, such as specifying to read [LBA(K), T2], there is no logical block 1 marked as [T2] to which the LBA(K) belongs in the solid state disk L2P Chunk, this is because there is no new data written to the logical block 1 during the T1->T2 time period, in this case, the SSD will read data from the snapshot before [T2] to the software layer, for example, read
  • the data in the flash memory physical address ⁇ 2,0 ⁇ corresponding to LBA(K) in the L2P chunk marked as [T1] is given to the software layer, which is indeed the data that the software layer wants.
  • the logical block to which the specified LBA belongs The physical address of the flash memory of the LBA in the L2P block with the specified time stamp is empty, for example, if the specified read [LBA(2), T2], the specified LBA(2) can be found in the solid state disk
  • There is no data update that is, the data that the user wants is in the snapshot of [T1], so in the same way as 1), the SSD will read the data from the snapshot before T2 to the software layer, for example, read
  • the data in the flash memory physical address ⁇ 0,1 ⁇ corresponding to LBA(2) in the L2P chunk marked as [T1] is given to the software layer.
  • the software layer can still obtain the data that the user wants.
  • the solid-state disk determines the time stamp of this snapshot when the software layer initiates the snapshot command. It should be noted that this application may also adopt other similar embodiments for determining the snapshot timestamp. For example, before the software layer initiates the command to generate a snapshot, determine the time stamp of the snapshot, that is, the SSD internally maintains a system time stamp [Tx], which records the time stamp corresponding to the next snapshot command in advance, and when the SSD processes the write command process When applying for a new L2P Chunk, the system timestamp [Tx] can be immediately entered into the newly applied L2P Chunk.
  • the implementation process is as follows:
  • Step 1 As shown in Figure 10, in the initial state, that is, the software layer has never initiated a snapshot command and write command, and the system timestamp maintained inside the SSD is set to [T1] in advance, which is used to indicate the first snapshot in the future The timestamp corresponding to the snapshot generation command.
  • Step 2 As shown in Figure 11, the software layer initiates a series of write commands, and the SSD will apply for several L2P Chunks according to the LBA of the write commands, and at the same time apply for the L2P Chunk, the system time stamp [T1] will be sent to the L2P Chunk on.
  • Step 3 As shown in Figure 12, the software layer initiates the first snapshot generation command. At this time, all the SSD needs to do is to update the system timestamp to [T2], that is, the second snapshot generation is recorded in advance. The timestamp corresponding to the command.
  • Step 4 Repeat steps 2 to 3. Assuming that the software layer initiates the command to rewrite LBA0, the SSD creates a new L2P Chunk, and puts the system time stamp [T2] on the newly applied L2P Chunk, as shown in Figure 13 shown.
  • an action is performed according to a certain element, it means that the action is performed based on at least the element, which includes two situations: the action is only performed based on the element, and the action is performed based on the element and Other elements perform the behavior.
  • Expressions such as multiple, multiple, and multiple include 2, 2 times, 2 types, and 2 or more, 2 or more times, or 2 or more types.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及存储技术领域,公开了一种基于固态硬盘的快照实现方法、存储系统。将固态硬盘中的LBA段分成若干个逻辑块并将L2P映射表分成若干个L2P组块,每个逻辑块对应一个L2P组块,固态硬盘接收快照生成命令,将每个L2P组块加上时间戳,生成具有时间戳的快照,对写入的LBA所属的逻辑块进行检查,确定对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的闪存物理地址更新到该新的L2P组块中,再次接收快照生成命令,遍历所有逻辑块对应的最新L2P组块,确定最新L2P组块不具有时间戳,并将最新L2P组块加上新的时间戳,生成具有最新时间戳的快照,将每个逻辑块对应的多个L2P组块进行关联。本申请中在固态硬盘中实现快照,可节省软件层的DRAM资源,降低成本。

Description

基于固态硬盘的快照实现方法、存储系统 技术领域
本申请涉及存储技术领域,特别涉及基于固态硬盘的快照实现方法、系统。
背景技术
快照(Snapshot)是一种记录存储系统某一时刻状态的技术。用户可以创建多份快照,并且在未来任意时间点访问、修改、拷贝、回滚任意一份曾被创建的快照。
存储系统主要由软件层(即,计算机主机)和硬盘(即,存储器设备)组成,软件层与一个或多个用户通信,如图1所示,现有技术中软件层定义实现了快照技术,硬盘不需要也不能感知到快照技术的存在。软件层为了实现快照技术需要占用很多计算机的DRAM硬件资源以及CPU的算力资源,而且快照命令的执行时间很长。
当前存储行业的发展趋势是固态硬盘(SSD)会渐渐取代机械硬盘(HDD),而固态硬盘内部为了快速访问闪存介质也会配备很大且昂贵的DRAM资源。
现有技术中存储系统的快照功能都是在图1的软件层实现的。具体的,如图2所示,在软件层维护了一张用户逻辑地址(LA)到硬盘物理地址(PA)的映射表(map table),每个LA和PA表征的数据大小为4KB(主流的企业级存储系统都是以4KB为数据的最小读写单元),且每个LA的数据可以写入到任意的PA,所以映射表中每个表项记录了所有LA写入的PA位置信息。 一般来讲,每个表项占4Byte的DRAM,所以假设硬盘暴露给用户的空间是4TB,则映射表的大小为4TB/4KB*4B=4GB。如图2中,LA(0)的数据写入到了PA(3)中,LA(1)的数据写入到了PA(9)中,LA(2)的数据写入到了PA(7)中,LA(3)的数据写入到了PA(2)中。此时用户想生成此刻(T1)的快照,即把T1时刻的存储系统状态存档下来,供以后查看,软件层的做法是将T1时刻的映射表永久保存到硬盘中,即:
第一步:用户发起快照生成命令。
第二步:软件层锁住映射表,即不响应后续的用户写命令,防止映射表被更新。
第三步:软件层将T1时刻的4GB映射表写入硬盘,如图3所示。该步骤会耗时很久,当前主流的固态硬盘接口速度为4GB/s,所以该步骤会耗费1s。在此期间存储系统可以响应用户的读命令,因为读命令并不会改变映射表的内容。
第四步:软件层解锁映射表,即继续响应后续的写命令。
之后用户继续写入新LA或者复写之前已经写入过的LA,假设在T2时刻存储系统的状态如图4所示,即复写LA(0)到PA(8),新写入LA(5)到PA(4),且生成新的快照(T2),则重复上述步骤将T2快照写入到硬盘。一般来讲,存储系统会设置一个支持的快照数量上限,假设为TH,当用户生成的快照数量超过TH后存储系统会自动覆盖最旧的快照,用户会感知到这一情况。
所以,存储系统可以存储最多TH个快照(系统状态),而且用户可以访问任何一个快照的数据,只需要在发读命令时指定某个快照即可,例如读T1快照时刻的LA(0),则存储系统会首先将T1时刻的映射表从硬盘读到DRAM,然后再读映射表LA(0)中的PA=PA(3),最后将PA(3)中数据从硬盘读出返回给用户。
现有技术的问题如下:
1)软件层必须使用昂贵的DRAM来维护映射表,且该映射表的大小是硬盘容量的1/1024。
2)软件层保存映射表期间,无法响应用户写命令,所以大多数存储系统都选择在深夜执行快照操作,但是并没有从本质上解决问题。
发明内容
本申请的目的在于提供一种基于固态硬盘的快照实现方法,在固态硬盘中实现快照,可节省现有技术中软件层的DRAM资源,大大降低成本。
本申请公开了一种基于固态硬盘的快照实现方法,将固态硬盘中的LBA段分成若干个逻辑块并将L2P映射表相应的分成若干个L2P组块,每个逻辑块对应一个L2P组块,所述固态硬盘被配置为执行如下步骤:
接收快照生成命令,将每个所述L2P组块加上时间戳,生成具有时间戳的快照;
对写入的LBA所属的逻辑块进行检查,确定该逻辑块对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的闪存物理地址更新到该新的L2P组块中;
再次接收快照生成命令,遍历所有逻辑块对应的最新L2P组块,确定所述最新L2P组块不具有时间戳,并将所述最新L2P组块加上新的时间戳,生成具有最新时间戳的快照;
将每个所述逻辑块对应的多个L2P组块进行关联。
在一优选例中,将每个所述逻辑块对应的多个L2P组块进行关联的方法包括:链表、数组和哈希算法。
在一优选例中,将每个所述逻辑块对应的多个L2P组块进行关联的方法包括:将每个所述逻辑块对应的多个L2P组块用链表连接,所述最新L2P组块位于链表头部。
在一优选例中,所述固态硬盘还被配置为执行如下步骤:接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块及该逻辑块对应的指定时间戳的L2P组块,返回该L2P组块中该LBA对应的闪存物理地址中存储的数据。
在一优选例中,所述固态硬盘还被配置为执行如下步骤:接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块且该逻辑块不存在对应的指定时间戳的L2P组块,并返回该逻辑块前一个时间戳的L2P组块中该LBA对应的闪存物理地址中存储的数据。
在一优选例中,所述固态硬盘还被配置为执行如下步骤:接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块及该逻辑块对应的指定时间戳的L2P组块中该LBA对应的闪存物理地址为空,并返回该逻辑块前一个时间戳的L2P组块中该LBA对应的闪存物理地址中存储的数据。
在一优选例中,将所述固态硬盘中的闪存物理地址分成若干个物理块,每个物理块包括若干个物理页。
在一优选例中,每个所述逻辑块包括1~1G个连续的LBA。
在一优选例中,所述固态硬盘生成具有时间戳的快照的步骤,进一步包括:
将接收所述快照生成命令时对应的系统时间戳确定为当前快照的时间戳,或者:
将接收所述快照生成命令前维护的系统时间戳确定为下个快照的时间戳,并且在接收所述快照生成命令后更新维护的系统时间戳以用作新的L2P组块的时间戳。
本申请还公开了一种存储系统,包括:软件层和固态硬盘,所述软件层与一个或多个用户通信,所述固态硬盘中的LBA段被分成若干个逻辑块并L2P映射表相应的被分成若干个L2P组块,每个逻辑块对应一个L2P组块,所述软件层被配置为执行如下步骤:
发起快照生成命令,使得所述固态硬盘将每个所述L2P组块加上时间戳并生成具有时间戳的快照;
发起写入命令,使得所述固态硬盘:对写入的LBA所属的逻辑块进行检查,确定该逻辑块对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的闪存物理地址更新到该新的L2P组块中;
再次发起快照生成命令,使得所述固态硬盘:遍历所有逻辑块对应的最新L2P组块,确定所述最新L2P组块不具有时间戳,并将所述最新L2P组块加上新的时间戳,生成具有最新时间戳的快照,并且,将每个所述逻辑块对应的多个L2P组块进行关联。
在一优选例中,所述软件层被配置为执行如下步骤:发起读取命令以从所述固态硬盘获取指定LBA和时间戳的快照。
相对于现有技术,本申请具有以下有益效果:
本申请实施方式中,在固态硬盘中实现快照,可节省现有技术中软件层的DRAM资源,大大降低成本。固态硬盘优化了快照实现技术,使得快照命令响应时间趋近于零。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开 的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是现有技术中存储系统的示意图。
图2是逻辑地址与物理地址的映射关系。
图3是T1时刻系统状态的示意图。
图4是T2时刻系统状态的示意图。
图5是根据本申请第一实施方式的基于固态硬盘的快照实现方法的流程示意图。
图6是根据本申请一实施例中基于固态硬盘的逻辑地址与物理地址的映射关系。
图7是根据本申请一实施例中T1时刻系统状态的示意图。
图8是根据本申请一实施例中新建L2P组块的示意图。
图9是根据本申请一实施例中T2时刻系统状态的示意图。
图10是根据本申请一实施例中固态硬盘初始状态的示意图。
图11是根据本申请一实施例中写入LBA的示意图。
图12是根据本申请一实施例中第一次生成快照命令的示意图。
图13是根据本申请一实施例中复写LBA的示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
本申请的第一实施方式涉及一种基于固态硬盘的快照实现方法,其实现方法的流程如图5所示。固态硬盘也称固态驱动器(Solid State Drive,SSD),固态硬盘是用固态电子存储芯片阵列而制成的硬盘,SSD主要由主控制器(或处理器)、存储颗粒组成。主控制器可以处理来自软件层的命令,例如,快照生成命令、写入命令、读取命令、擦除命令,并执行相关操作。存储颗粒可以是NAND闪存、NOR闪存、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PCRAM)、Nano-RAM等。NAND闪存可以用作示例,以演示快照实现技术。
如图6所示,由于闪存的独特特性,固态硬盘的存储空间(例如,DRAM)都会维护一张L2P(Logical_2_Physical)线性表来记录每个逻辑块地址(LBA)写入闪存的物理位置信息。
将固态硬盘中的LBA段(即,所有的LBA)分成若干个逻辑块,将连续的若干个LBA分割在一个逻辑块中。并且,将L2P映射表相应的分成若干个L2P组块,每个逻辑块对应一个L2P组块。参考图7所示,LBA被分成逻辑块0,逻辑块1等,每个所述逻辑块包括1~1G个LBA。将L2P被对应的分成若干个L2P组块(chunk),将物理地址(PBA)分成若干个物理块, 每个物理块包括若干个物理页,例如,5个物理页,物理页为最小读写单元,物理块为最小擦除单元。物理地址包括对应的物理块和物理页,例如,第2个物理块第3个物理页{2,3}。每个物理块对应一个逻辑块,每个物理块对应一个L2P组块。
在一实施例中,快照实现方法如下步骤:
步骤501,固态硬盘接收快照生成命令,将每个所述L2P组块加上时间戳,生成具有时间戳的快照。
步骤502,固态硬盘对写入的LBA所属的逻辑块进行检查,确定该逻辑块对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的物理地址更新到该新的L2P组块中。
步骤503,固态硬盘再次接收快照生成命令,遍历所有逻辑块对应的最新L2P组块,确定所述最新L2P组块不具有时间戳,并将所述最新L2P组块加上新的时间戳,生成具有最新时间戳的快照。
步骤504,固态硬盘将每个所述逻辑块对应的多个L2P组块进行关联。
在一个实施例中,将每个所述逻辑块对应的多个L2P组块进行关联的方法包括:链表、数组和哈希算法。例如,在一个实施例中,采用链表的方法进行关联,将每个所述逻辑块对应的多个L2P组块用链表连接,所述最新L2P组块位于链表头部。
在一个实施例中,当需要读取固态硬盘中的数据,所述方法还包括:
接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块及该逻辑块对应的指定时间戳的L2P组块,返回该L2P组块中该LBA对应的闪存物理地址中存储的数据;
确定该LBA所属的逻辑块且该逻辑块不存在对应的指定时间戳的L2P组块,并返回该逻辑块前一个时间戳的L2P组块中该LBA对应的闪存物理地址中 存储的数据;
确定该LBA所属的逻辑块及该逻辑块对应的指定时间戳的L2P组块中该LBA对应的闪存物理地址为空,并返回该逻辑块前一个时间戳的L2P组块中该LBA对应的闪存物理地址中存储的数据。
在一实施例中,可以将接收所述快照生成命令时对应的系统时间戳确定为当前快照的时间戳,以生成具有时间戳的快照。并且,可以将再次接收所述快照生成命令时对应的最新的系统时间戳确定为最新快照的时间戳。
在一实施例中,固态硬盘在接收快照生成命令之前维护一个系统时间戳,接收所述快照生成命令时,将固态硬盘维护的系统时间戳确定为快照的时间戳,同时更新固态硬盘维护的系统时间戳,将更新的系统时间戳用作新的L2P组块的时间戳。
本申请的第二实施方式中公开了一种存储系统,其包括:软件层和固态硬盘,所述软件层与一个或多个用户通信,所述固态硬盘中的LBA段被分成若干个逻辑块并L2P映射表相应的被分成若干个L2P组块,每个逻辑块对应一个L2P组块,所述软件层被配置为执行如下步骤:
发起快照生成命令,使得所述固态硬盘将每个所述L2P组块加上时间戳并生成具有时间戳的快照;
发起写入命令,使得所述固态硬盘:对写入的LBA所属的逻辑块进行检查,确定该逻辑块对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的物理地址更新到该新的L2P组块中;
再次发起快照生成命令,使得所述固态硬盘:遍历所有逻辑块对应的最新L2P组块,确定所述最新L2P组块不具有时间戳,并将所述最新L2P组块加上新的时间戳,生成具有最新时间戳的快照,并且,将每个所述逻辑块对应的多个L2P组块进行关联。
应当理解,第一实施方式中的技术细节可以应用于本实施方式,本实施 方式中的技术细节也可以应用于第一实施方式。
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
固态硬盘存储数据的主流介质为闪存(NAND Flash),闪存具有独特特性:物理页为最小读写单元,物理块为最小擦除单元,物理页必须擦除后才能写入。为了不让用户(此处特指存储系统中的软件层)感知到闪存的这些特性,主流的固态硬盘的存储空间中都会维护一张L2P线性表来记录每个LBA写入闪存的物理位置信息,每个表项占用4B DRAM空间,所以假设固态硬盘容量为4TB,则L2P的大小为4TB/4KB*4B=4GB。应当理解,软件层看到的硬盘的PA(x)与固态硬盘中的LBA_x是等价的。
所以固态硬盘中的L2P表与现有技术软件层中的映射表基本类似,将L2P存储在固态硬盘的存储空间中,可以节省掉软件层中的DRAM硬件资源。
进一步,从定义上讲多份(不同时刻的)快照就要保存多份L2P映射表,但实际上两份快照之间很可能只有少量LBA有写入或更新,大部分LBA是不变化的,对这些没有变化的LBA,可以直接引用之前的快照。
如图7所示,为了展示本技术的通用性,将固态硬盘的LBA区间(段)从逻辑上切割成多个逻辑块,每个逻辑块大小可为任意值(例如,包括1~1G的任意个连续的LBA),例如,以1K个LBA为例,则硬盘的LBA区间被切割成1G/1K=1M个逻辑块。LBA(1)~LBA(1K-1)属于逻辑块0,LBA(K)~LBA(2K-1)属于逻辑块1,依次类推。固态硬盘可以根据软件层写入的LBA判断该LBA所属的逻辑块,例如,LBA/K等于所属的逻辑块。并且, 通过该LBA对K取mod的方式,可以确定该LBA在该逻辑块中的位置,例如,LBA mod K等于在所属的逻辑块中的位置。同理,将L2P映射表也按照逻辑块的颗粒度管理,即每个逻辑块对应的物理L2P大小为1K*4B=4KB,称之为L2P Chunk(组块)。在初始状态,每个逻辑块只对应一个L2P Chunk。固态硬盘实现快照的步骤如下:
第一步:假设在T1时刻固态硬盘的状态为图7所示,此时软件层发起生成快照命令。
第二步:固态硬盘接收到快照命令后,将每个L2P Chunk打上[T1]的标记,T1表示快照所属的时间戳,同时也暗示了该L2P Chunk已被锁住,不能更改其内容了。且打标志的操作可在固态硬盘后台任务中执行,所以快照命令的响应时间非常快,微秒级别就可以完成。
第三步:假设用户复写LBA0,其属于逻辑块0,固态硬盘检查到逻辑块0对应的L2P Chunk已经被打上[T1]标记,所以它属于之前某个快照,不能更改它,固态硬盘会在DRAM中另外申请一块新的L2P Chunk(未打标记),然后把逻辑块0新写入的物理地址{物理块2,物理页3}更新到该L2P Chunk中。该过程也几乎是没有开销。此时发现,逻辑块0对应了两个L2P Chunk,因此可以将它们关联起来,关联方式包含但不限于链表、数组、哈希等等。例如,以链表为例,即每个逻辑块可能会对应多个L2P Chunk,将这些L2P Chunk用链表串起来,而且最新的L2P Chunk挂在链表头部。随着更多其他LBA的写入,将会出现更多的一个逻辑块对应两个L2P Chunk的情况,假设在T2时刻,固态硬盘的状态如图8所示,且软件层有发起快照命令。
第四步:固态硬盘遍历所有逻辑块的最新L2P Chunk,如果该Chunk未打上标记,说明在T1->T2时间段内该逻辑块有新的数据写入,则打上[T2]标记;否则,说明在T1->T2时间段内该逻辑块没有新数据写入,它的状态与T1时刻一样,所以不需要做什么,如图9所示。
第五步:重复第三步和第四步,继续处理后续的写命令和快照命令。
与现有技术相比,本申请的快照实现技术效率很高,几乎不会对用户的写命令产生额外延时。
软件层可以在读取命令中指定时间戳并指定LBA来读取特定快照下的数据,比如指定读[LBA0,T2],固态硬盘会确定LBA0属于逻辑块0,并从逻辑块0对应的L2P Chunk链表头部开始寻找标记为[T2]的L2P Chunk,找到后读出闪存物理地址{2,3}中的数据给到软件层。此处,会出现以下两种特殊情况:
1)指定LBA所属的逻辑块不存在指定时间戳的L2P组块,比如指定读[LBA(K),T2],固态硬盘中没有LBA(K)所属的逻辑块1的标记为[T2]的L2P Chunk,这是由于在T1->T2时间段内该逻辑块1没有新数据写入,该情况下固态硬盘会从[T2]之前的快照中读取数据给到软件层,例如,读取标记为[T1]的L2P chunk中LBA(K)对应的闪存物理地址{2,0}中的数据给到软件层,这也的确是软件层想要的数据。
2)指定LBA所属的逻辑块指定时间戳的L2P组块中该LBA的闪存物理地址为空,例如,指定读取[LBA(2),T2],固态硬盘中能找到指定LBA(2)所属的的逻辑块0的标记为[T2]的L2P Chunk,但是L2P Chunk中LBA(2)对应的闪存物理地址是[-](即,空),说明在T1->T2时间段内指定的LBA(2)没有发生数据更新,即用户想要的数据在[T1]的快照里,所以与1)同理,固态硬盘会从T2之前的快照中读取数据给到软件层,例如,读取标记为[T1]的L2P chunk中LBA(2)对应的闪存物理地址{0,1}中的数据给到软件层。
上述两种特殊情况下,软件层依然可以获取用户想要的数据。
上述实现细节中固态硬盘是在软件层发起生成快照命令的时候才确定 本次快照的时间戳。需要说明的是,本申请也可以采用其他类似的确定快照时间戳的实施例。例如,在软件层发起生成快照命令前确定快照的时间戳,即固态硬盘内部维护一个系统时间戳[Tx],它提前记录了下次快照命令对应的时间戳,且当固态硬盘处理写命令过程中申请新的L2P Chunk时可以立即将系统时间戳[Tx]打到新申请的L2P Chunk中,实施过程如下:
第一步:如图10所示,初始状态下,即软件层从未发起过生成快照命令和写命令,固态硬盘内部维护的系统时间戳提前设置为[T1],用作表示未来第一个快照生成命令对应的时间戳。
第二步:如图11所示,软件层发起了一系列写命令,固态硬盘会根据写命令的LBA申请若干个L2P Chunk,且在申请L2P Chunk的同时将系统时间戳[T1]打到L2P Chunk上。
第三步:如图12所示,软件层发起第一个快照生成命令,此时固态硬盘需要做的仅仅是将系统时间戳更新到[T2]即可,即提前记录了第二个快照生成命令对应的时间戳。
第四步:重复第二步至第三步,假设软件层发起复写LBA0命令,则固态硬盘新建新的L2P Chunk,且将系统时间戳[T2]打到新申请的L2P Chunk上,如图13所示。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者 设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本说明书提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

Claims (11)

  1. 一种基于固态硬盘的快照实现方法,其特征在于,将固态硬盘中的LBA段分成若干个逻辑块并将L2P映射表相应的分成若干个L2P组块,每个逻辑块对应一个L2P组块,所述固态硬盘被配置为执行如下步骤:
    接收快照生成命令,将每个所述L2P组块加上时间戳,生成具有时间戳的快照;
    对写入的LBA所属的逻辑块进行检查,确定该逻辑块对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的闪存物理地址更新到该新的L2P组块中;
    再次接收快照生成命令,遍历所有逻辑块对应的最新L2P组块,确定所述最新L2P组块不具有时间戳,并将所述最新L2P组块加上新的时间戳,生成具有最新时间戳的快照;
    将每个所述逻辑块对应的多个L2P组块进行关联。
  2. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,将每个所述逻辑块对应的多个L2P组块进行关联的方法包括:链表、数组和哈希算法。
  3. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,将每个所述逻辑块对应的多个L2P组块进行关联的方法包括:将每个所述逻辑块对应的多个L2P组块用链表连接,所述最新L2P组块位于链表头部。
  4. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,所述固态硬盘还被配置为执行如下步骤:接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块及该逻辑块对应的指定时间戳的L2P组块,返回该L2P组块中该LBA对应的闪存物理地址中存储的数据。
  5. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,所述固态硬盘还被配置为执行如下步骤:接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块且该逻辑块不存在对应的指定时间戳的L2P组块,并返回该逻辑块前一个时间戳的L2P组块中该LBA对应的闪存 物理地址中存储的数据。
  6. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,所述固态硬盘还被配置为执行如下步骤:接收读取指定LBA和时间戳的快照下数据的读取命令,确定该LBA所属的逻辑块及该逻辑块对应的指定时间戳的L2P组块中该LBA对应的闪存物理地址为空,并返回该逻辑块前一个时间戳的L2P组块中该LBA对应的闪存物理地址中存储的数据。
  7. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,将所述固态硬盘中的闪存物理地址分成若干个物理块,每个物理块包括若干个物理页。
  8. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,每个所述逻辑块包括1~1G个连续的LBA。
  9. 根据权利要求1所述的基于固态硬盘的快照实现方法,其特征在于,所述固态硬盘生成具有时间戳的快照的步骤,进一步包括:
    将接收所述快照生成命令时对应的系统时间戳确定为当前快照的时间戳,或者:
    将接收所述快照生成命令前维护的系统时间戳确定为下个快照的时间戳,并且在接收所述快照生成命令后更新维护的系统时间戳以用作新的L2P组块的时间戳。
  10. 一种存储系统,其特征在于,包括:软件层和固态硬盘,所述软件层与一个或多个用户通信,所述固态硬盘中的LBA段被分成若干个逻辑块并L2P映射表相应的被分成若干个L2P组块,每个逻辑块对应一个L2P组块,所述软件层被配置为执行如下步骤:
    发起快照生成命令,使得所述固态硬盘将每个所述L2P组块加上时间戳并生成具有时间戳的快照;
    发起写入命令,使得所述固态硬盘:对写入的LBA所属的逻辑块进行检查,确定该逻辑块对应的L2P组块已经具有时间戳,新建新的L2P组块并将对应的闪存物理地址更新到该新的L2P组块中;
    再次发起快照生成命令,使得所述固态硬盘:遍历所有逻辑块对应的最新L2P组块,确定所述最新L2P组块不具有时间戳,并将所述最新L2P组块加上新的时间戳,生成具有最新时间戳的快照,并且,将每个所述逻辑块对应的多个L2P组块进行关联。
  11. 根据权利要求10所述的存储系统,其特征在于,所述软件层被配置为执行如下步骤:发起读取命令以从所述固态硬盘获取指定LBA和时间戳的快照。
PCT/CN2022/102018 2021-05-10 2022-06-28 基于固态硬盘的快照实现方法、存储系统 WO2022237916A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110506296.4 2021-05-10
CN202110506296.4A CN113254265B (zh) 2021-05-10 2021-05-10 基于固态硬盘的快照实现方法、存储系统

Publications (1)

Publication Number Publication Date
WO2022237916A1 true WO2022237916A1 (zh) 2022-11-17

Family

ID=77224012

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/102018 WO2022237916A1 (zh) 2021-05-10 2022-06-28 基于固态硬盘的快照实现方法、存储系统

Country Status (2)

Country Link
CN (1) CN113254265B (zh)
WO (1) WO2022237916A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254265B (zh) * 2021-05-10 2023-03-14 苏州库瀚信息科技有限公司 基于固态硬盘的快照实现方法、存储系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033793A (zh) * 2010-12-14 2011-04-27 成都市华为赛门铁克科技有限公司 快照方法和固态硬盘
CN102789368A (zh) * 2012-06-21 2012-11-21 记忆科技(深圳)有限公司 一种固态硬盘及其数据管理方法、系统
US10754785B2 (en) * 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
CN112506438A (zh) * 2020-12-14 2021-03-16 深圳大普微电子科技有限公司 一种映射表管理方法及固态硬盘
CN113254265A (zh) * 2021-05-10 2021-08-13 苏州库瀚信息科技有限公司 基于固态硬盘的快照实现方法、存储系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200922B2 (en) * 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
CN102591790B (zh) * 2011-12-30 2015-11-25 记忆科技(深圳)有限公司 基于固态硬盘的数据存储快照实现方法及固态硬盘
WO2014110095A1 (en) * 2013-01-08 2014-07-17 Violin Memory Inc. Method and system for data storage
US10552335B2 (en) * 2015-09-25 2020-02-04 Beijing Lenovo Software Ltd. Method and electronic device for a mapping table in a solid-state memory
TWI661303B (zh) * 2017-11-13 2019-06-01 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN112631950B (zh) * 2020-12-11 2022-07-19 苏州浪潮智能科技有限公司 一种l2p表的保存方法、系统、设备以及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033793A (zh) * 2010-12-14 2011-04-27 成都市华为赛门铁克科技有限公司 快照方法和固态硬盘
CN102789368A (zh) * 2012-06-21 2012-11-21 记忆科技(深圳)有限公司 一种固态硬盘及其数据管理方法、系统
US10754785B2 (en) * 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
CN112506438A (zh) * 2020-12-14 2021-03-16 深圳大普微电子科技有限公司 一种映射表管理方法及固态硬盘
CN113254265A (zh) * 2021-05-10 2021-08-13 苏州库瀚信息科技有限公司 基于固态硬盘的快照实现方法、存储系统

Also Published As

Publication number Publication date
CN113254265A (zh) 2021-08-13
CN113254265B (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
KR101769448B1 (ko) 주석이 달린 극소 기록 작동을 수행하기 위한 방법 및 장치
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US9489297B2 (en) Pregroomer for storage array
EP2631916B1 (en) Data deletion method and apparatus
US10381040B1 (en) Dynamic hybrid shingled magnetic recording device
US9342256B2 (en) Epoch based storage management for a storage device
TWI691839B (zh) 資料管理方法
US11782632B2 (en) Selective erasure of data in a SSD
US10956071B2 (en) Container key value store for data storage devices
KR101813786B1 (ko) Ssd 상의 기록-시-복사를 위한 시스템 및 방법
US7536521B2 (en) Computer storage device providing implicit detection of block liveness
US20190188130A1 (en) Data Storage Device and Non-Volatile Memory Control Method
TWI579689B (zh) 資料備份系統
US20100103549A1 (en) Data archive system
KR20100065786A (ko) 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템
WO2012079432A1 (zh) 快照方法和固态硬盘
WO2018093442A1 (en) Storage operation queue
US20140325168A1 (en) Management of stored data based on corresponding attribute data
KR102530583B1 (ko) 저장 장치 및 메모리 시스템
WO2022237916A1 (zh) 基于固态硬盘的快照实现方法、存储系统
US20140219041A1 (en) Storage device and data processing method thereof
TWI664568B (zh) 資料儲存裝置之操作方法
US6910214B1 (en) Method, system, and program for converting an input parameter list into an output parameter list
TWI769193B (zh) 記憶體系統的操作方法
TWI669610B (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: 22806878

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22806878

Country of ref document: EP

Kind code of ref document: A1