CN117149075A - 基于DRAM-less固态硬盘的RAID实现方法和装置 - Google Patents
基于DRAM-less固态硬盘的RAID实现方法和装置 Download PDFInfo
- Publication number
- CN117149075A CN117149075A CN202311115338.7A CN202311115338A CN117149075A CN 117149075 A CN117149075 A CN 117149075A CN 202311115338 A CN202311115338 A CN 202311115338A CN 117149075 A CN117149075 A CN 117149075A
- Authority
- CN
- China
- Prior art keywords
- stripe
- data
- page
- raid
- judging whether
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000007787 solid Substances 0.000 title claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种基于DRAM‑less固态硬盘的RAID实现方法、装置、计算机设备和存储介质,其中该方法包括:获取主机下发的写请求;判断所述写请求中的数据需要写入SLC缓存还是写入普通块;当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;当数据写入普通块时使用Word Line RAID方式进行保护,通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。本发明减少对保留块的需求,满足产品良率要求。
Description
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于DRAM-less固态硬盘的RAID实现方法、装置、计算机设备和存储介质。
背景技术
SSD(固态硬盘)以及被广泛应用于各种场合,目前在PC市场,已经逐步替代传统的HDD(机械硬盘),从可靠性和性能方面为用户提供较好的体验。
目前,SSD为加强对用户数据的保护,通常会在内部组织RAID。常用的两种组织RAID的方式是Block RAID和Word Line RAID。前者在写入数据时通常需要同时分配多组block,因此,为了使SSD能正常运行,需要预留的block也会较多;后者会有多个条带处于开放状态,DRAM-less SSD通常没有足够的RAM空间缓存全部的RAID parity数据,需要将RAIDparity暂存到HMB或NAND,从而影响性能。
发明内容
基于此,有必要针对上述技术问题,提供一种基于DRAM-less固态硬盘的RAID实现方法、装置、计算机设备和存储介质。
一种基于DRAM-less固态硬盘的RAID实现方法,所述方法包括:
获取主机下发的写请求;
判断所述写请求中的数据需要写入SLC缓存还是写入普通块;
当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;
当数据写入普通块时使用Word Line RAID方式进行保护,通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。
在其中一个实施例中,所述当数据写入SLC缓存时使用Block RAID方式进行保护的步骤还包括:
当数据写入SLC缓存时,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块;
若SLC块已分配,则判断当前条带是否已关闭,若已关闭则分配新条带;
若当前条带未关闭则分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在其中一个实施例中,所述当数据写入普通块时使用Word Line RAID方式进行保护的步骤包括:
在HMB使能的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则获取下一个需要写入的条带并将所述条带的从HMB交换到SSD;
若不是超级页中的第一页,则获取页所在的条带,分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在其中一个实施例中,所述当数据写入普通块时使用Word Line RAID方式进行保护的步骤还包括:
在HMB关闭的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则继续判断下一个超级页是否是条带最后超级页,如果是则从NAND重建下一个超级页所在条带的parity;
若不是超级页中的第一页,则判断当前超级页是否为条带的最后超级页,若是则获取页所在的条带并分配地址写入数据,若否则直接分配地址写入数据;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
一种基于DRAM-less固态硬盘的RAID实现装置,所述装置包括:
请求获取模块,所述请求获取模块用于获取主机下发的写请求;
判断模块,所述判断模块用于判断所述写请求中的数据需要写入SLC缓存还是写入普通块;
第一执行模块,所述第一执行模块用于当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;
第二执行模块,所述第二执行模块用于当数据写入普通块时使用Word Line RAID方式进行保护,通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。
在其中一个实施例中,所述第一执行模块还用于:
当数据写入SLC缓存时,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块;
若SLC块已分配,则判断当前条带是否已关闭,若已关闭则分配新条带;
若当前条带未关闭则分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在其中一个实施例中,所述第二执行模块还用于:
在HMB使能的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则获取下一个需要写入的条带并将所述条带的从HMB交换到SSD;
若不是超级页中的第一页,则获取页所在的条带,分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在其中一个实施例中,所述第二执行模块还用于:
在HMB关闭的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则继续判断下一个超级页是否是条带最后超级页,如果是则从NAND重建下一个超级页所在条带的parity;
若不是超级页中的第一页,则判断当前超级页是否为条带的最后超级页,若是则获取页所在的条带并分配地址写入数据,若否则直接分配地址写入数据;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述基于DRAM-less固态硬盘的RAID实现方法、装置、计算机设备和存储介质,当数据写入SLC缓存时使用Block RAID方式保护,只需要较少的SSD RAM即可避免RAIDparity的换入换出影响写性能。当数据写入普通NAND block时使用Word Line RAID方式保护,降低预留block数量,提升对坏块容忍度,从而保证良率需求;同时通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式,降低对SSD RAM需求。
附图说明
图1为传统技术中Block RAID实现过程的示意图;
图2为传统技术中Word Line RAID实现过程的示意图;
图3为一个实施例中基于DRAM-less固态硬盘的RAID实现方法的流程示意图;
图4为一个实施例中写请求Block RAID处理流程的示意图;
图5为一个实施例中HMB使能下写请求Word Line RAID处理流程的示意图;
图6为一个实施例中HMB关闭下写请求Word Line RAID处理流程的示意图;
图7为一个实施例中基于DRAM-less固态硬盘的RAID实现装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,SSD常用的两种组织RAID的方式是Block RAID和Word Line RAID,上述两种方式都有各自的缺点。
如图1所示的Block RAID实现过程的示意图,对于一个有8个平面,RAID配置为15+1的SSD,在写入数据时,一次需要分配2个超级块,2个超级块中编号相同的页构成一个RAID条带,parity(RAID生成的校验数据,用于出错数据的恢复)位于最后一个超级块的最后一个平面上。写入过程如图中标号所示依次完成两个超级块的条带0、1、…的写入。这种生成parity的方式,要求当前条带写完后才能写下一个条带,导致分配block时,一次需要分配多组block,故SSD需要预留的block也会较多,使得允许的出厂坏块会更少,对量产良率不利。
如图2所示的Word Line RAID实现过程的示意图,对于一个有8个平面,RAID配置为15+1,间隔为8的Word Line RAID的SSD,最多有8个开放的条带。当因应对NAND失效模式需要更大间隔时,开放条带也会成更多,全部缓存这些parity所需的SSD RAM空间就更大。
基于此,本发明提出一种基于DRAM-less固态硬盘的RAID实现方法,旨在可以在降低SSD RAM需求的同时,既保障写带宽不受影响,同时也减少对保留块的需求,满足产品良率要求。
在一个实施例中,如图3所示,提供了一种基于DRAM-less固态硬盘的RAID实现方法,该方法包括:
步骤302,获取主机下发的写请求;
步骤304,判断所述写请求中的数据需要写入SLC缓存还是写入普通块;
步骤306,当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;
步骤308,当数据写入普通块时使用Word Line RAID方式进行保护,通过将RAIDparity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。
在本实施例中,提出了一种基于DRAM-less固态硬盘的RAID实现方法,本方案中采用的是混合RAID方案:当数据写入SLC缓存时使用Block RAID方式保护,避免RAID parity的换入换出影响写性能;当数据写入普通NAND block(MLC/TLC/QLC)时使用Word LineRAID方式保护,降低预留block数量,提升对坏块容忍度,从而保证良率需求。
具体地,首先获取主机下发的写请求,根据数据写入的Block类型及HMB使能状态,对写入请求进行不同的RAID处理。
写入SLC缓存使用Block RAID方式保护时,所需RAID parity较少,常驻SSD RAM中。
写入普通NAND block使用Word Line RAID方式保护时,SSD只需要提供两个RAID条带RAID parity空间。若HMB使能,在当前条带写入时,将另外RAID parity暂存到HMB空间,同时从HMB换入下一个即将写入的条带的RAID parity。若HMB关闭,在条带最后一组页写入前,根据该条带之前写入NAND的数据重建条带的parity,最后一组页写入时,在恢复的parity上继续计算parity,在条带结束时将parity写入NAND。
在本实施例中,当数据写入SLC缓存时使用Block RAID方式保护,只需要较少的SSD RAM即可避免RAID parity的换入换出影响写性能。当数据写入普通NAND block时使用Word Line RAID方式保护,降低预留block数量,提升对坏块容忍度,从而保证良率需求;同时通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式,降低对SSD RAM需求。
在一个实施例中,提供了一种基于DRAM-less固态硬盘的RAID实现方法,该方法中当数据写入SLC缓存时使用Block RAID方式进行保护的步骤还包括:
当数据写入SLC缓存时,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块;
若SLC块已分配,则判断当前条带是否已关闭,若已关闭则分配新条带;
若当前条带未关闭则分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
具体地,参考图4所示的写请求Block RAID处理流程的示意图,当数据写入SLC缓存时,首先,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块。若SLC块已分配,则继续判断当前条带是否已关闭,若已关闭则分配新条带;若当前条带未关闭则分配地址并写入对应条带。判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在本实施例中,先按设置的条带大小分配一组或多组SLC超级块,在数据写入过程只保持一个开放的条带。
在一个实施例中,提供了一种基于DRAM-less固态硬盘的RAID实现方法,该方法中当数据写入普通块时使用Word Line RAID方式进行保护的步骤包括:
在HMB使能的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则获取下一个需要写入的条带并将所述条带的从HMB交换到SSD;
若不是超级页中的第一页,则获取页所在的条带,分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
具体地,参考图5所示的HMB使能下写请求Word Line RAID处理流程的示意图,在此过程中,只需要两个条带的parity空间即可保障NAND写带宽得到最高效利用:当在进行一个条带的写入的同时就将下一个条带所需要的parity从HMB交换到SSD的RAM。如图2,在写入页8所在的条带0的同时,就会将超级页9所在的条带1的parity从HMB交换到SSD。
在一个实施例中,提供了一种基于DRAM-less固态硬盘的RAID实现方法,该方法中当数据写入普通块时使用Word Line RAID方式进行保护的步骤还包括:
在HMB关闭的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则继续判断下一个超级页是否是条带最后超级页,如果是则从NAND重建下一个超级页所在条带的parity;
若不是超级页中的第一页,则判断当前超级页是否为条带的最后超级页,若是则获取页所在的条带并分配地址写入数据,若否则直接分配地址写入数据;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
具体地,参考图6所示的HMB关闭下写请求Word Line RAID处理流程的示意图,在此过程中,在条带最后一个超级页开始写入前,再从该条带之前写入NAND的数据重建parity,该parity在最后一个超级页的写入过程继续计算,并在条带最后写入NAND。如图2,在写入页7的同时,开始通过读取超级页0的8个页数据恢复条带0的parity,在写入超级页8时,在恢复的parity基础上继续计算parity,并最终将parity写入到超级页8的最后一个页上。
应该理解的是,虽然图1-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种基于DRAM-less固态硬盘的RAID实现装置700,该装置包括:
请求获取模块701,所述请求获取模块用于获取主机下发的写请求;
判断模块702,所述判断模块用于判断所述写请求中的数据需要写入SLC缓存还是写入普通块;
第一执行模块703,所述第一执行模块用于当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;
第二执行模块704,所述第二执行模块用于当数据写入普通块时使用Word LineRAID方式进行保护,通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。
在一个实施例中,第一执行模块703还用于:
当数据写入SLC缓存时,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块;
若SLC块已分配,则判断当前条带是否已关闭,若已关闭则分配新条带;
若当前条带未关闭则分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在一个实施例中,第二执行模块704还用于:
在HMB使能的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则获取下一个需要写入的条带并将所述条带的从HMB交换到SSD;
若不是超级页中的第一页,则获取页所在的条带,分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
在一个实施例中,第二执行模块704还用于:
在HMB关闭的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则继续判断下一个超级页是否是条带最后超级页,如果是则从NAND重建下一个超级页所在条带的parity;
若不是超级页中的第一页,则判断当前超级页是否为条带的最后超级页,若是则获取页所在的条带并分配地址写入数据,若否则直接分配地址写入数据;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
关于基于DRAM-less固态硬盘的RAID实现装置的具体限定可以参见上文中对于基于DRAM-less固态硬盘的RAID实现方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图8所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于DRAM-less固态硬盘的RAID实现方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一种非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于DRAM-less固态硬盘的RAID实现方法,所述方法包括:
获取主机下发的写请求;
判断所述写请求中的数据需要写入SLC缓存还是写入普通块;
当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;
当数据写入普通块时使用Word Line RAID方式进行保护,通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。
2.根据权利要求1所述的基于DRAM-less固态硬盘的RAID实现方法,其特征在于,所述当数据写入SLC缓存时使用Block RAID方式进行保护的步骤还包括:
当数据写入SLC缓存时,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块;
若SLC块已分配,则判断当前条带是否已关闭,若已关闭则分配新条带;
若当前条带未关闭则分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
3.根据权利要求1所述的基于DRAM-less固态硬盘的RAID实现方法,其特征在于,所述当数据写入普通块时使用Word Line RAID方式进行保护的步骤包括:
在HMB使能的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则获取下一个需要写入的条带并将所述条带的从HMB交换到SSD;
若不是超级页中的第一页,则获取页所在的条带,分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
4.根据权利要求3所述的基于DRAM-less固态硬盘的RAID实现方法,其特征在于,所述当数据写入普通块时使用Word Line RAID方式进行保护的步骤还包括:
在HMB关闭的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则继续判断下一个超级页是否是条带最后超级页,如果是则从NAND重建下一个超级页所在条带的parity;
若不是超级页中的第一页,则判断当前超级页是否为条带的最后超级页,若是则获取页所在的条带并分配地址写入数据,若否则直接分配地址写入数据;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
5.一种基于DRAM-less固态硬盘的RAID实现装置,其特征在于,所述装置包括:
请求获取模块,所述请求获取模块用于获取主机下发的写请求;
判断模块,所述判断模块用于判断所述写请求中的数据需要写入SLC缓存还是写入普通块;
第一执行模块,所述第一执行模块用于当数据写入SLC缓存时使用Block RAID方式进行保护,按照设置的条带大小分配一组或多组SLC超级块并在数据写入过程只保持一个开放的条带;
第二执行模块,所述第二执行模块用于当数据写入普通块时使用Word Line RAID方式进行保护,通过将RAID parity暂存到HMB或通过NAND数据重建RAID parity的方式以实现降低对SSD RAM需求。
6.根据权利要求5所述的基于DRAM-less固态硬盘的RAID实现装置,其特征在于,所述第一执行模块还用于:
当数据写入SLC缓存时,判断SLC块是否已分配,若未分配则按条带大小分配一个或多个超级块;
若SLC块已分配,则判断当前条带是否已关闭,若已关闭则分配新条带;
若当前条带未关闭则分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
7.根据权利要求5所述的基于DRAM-less固态硬盘的RAID实现装置,其特征在于,所述第二执行模块还用于:
在HMB使能的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则获取下一个需要写入的条带并将所述条带的从HMB交换到SSD;
若不是超级页中的第一页,则获取页所在的条带,分配地址并写入对应条带;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
8.根据权利要求7所述的基于DRAM-less固态硬盘的RAID实现装置,其特征在于,所述第二执行模块还用于:
在HMB关闭的状态下,当数据写入普通块时,判断普通块是否已分配,若未分配则分配一个超级块;
若已分配则判断是否为超级页中的第一页,若是则继续判断下一个超级页是否是条带最后超级页,如果是则从NAND重建下一个超级页所在条带的parity;
若不是超级页中的第一页,则判断当前超级页是否为条带的最后超级页,若是则获取页所在的条带并分配地址写入数据,若否则直接分配地址写入数据;
判断是否为条带最后数据,如果是则写入所述条带parity并释放条带。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311115338.7A CN117149075A (zh) | 2023-08-31 | 2023-08-31 | 基于DRAM-less固态硬盘的RAID实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311115338.7A CN117149075A (zh) | 2023-08-31 | 2023-08-31 | 基于DRAM-less固态硬盘的RAID实现方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149075A true CN117149075A (zh) | 2023-12-01 |
Family
ID=88907495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311115338.7A Pending CN117149075A (zh) | 2023-08-31 | 2023-08-31 | 基于DRAM-less固态硬盘的RAID实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149075A (zh) |
-
2023
- 2023-08-31 CN CN202311115338.7A patent/CN117149075A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101447786B1 (ko) | 파워 인터럽트 관리 | |
US10347349B2 (en) | Method and device for fail-safe erase of flash memory | |
US20150349805A1 (en) | Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same | |
US10437520B2 (en) | Method for performing writing management in a memory device, and associated memory device and controller thereof | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
JP5364807B2 (ja) | メモリコントローラ及び不揮発性記憶装置 | |
US11169744B2 (en) | Boosting reads of chunks of data | |
CN111429960B (zh) | 改善闪存的读取重试的方法、控制器以及相关存储装置 | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
US10942811B2 (en) | Data processing method for solid state drive | |
CN110569000A (zh) | 基于固态硬盘阵列的主机端raid管理方法和装置 | |
CN113590505A (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN111026678B (zh) | 基于固态硬盘的缓存设计方法、装置及计算机设备 | |
CN114115745B (zh) | 多Pass编程NAND的RAID优化方法、装置及计算机设备 | |
JP7407230B2 (ja) | キー値データ記憶デバイスのためのeccパリティ偏り | |
CN111897495B (zh) | 提高ssd写性能的实现方法、装置、计算机设备及存储介质 | |
CN117149075A (zh) | 基于DRAM-less固态硬盘的RAID实现方法和装置 | |
JP2014534539A (ja) | 妥当性マスクを記憶する装置および方法ならびに操作装置 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN111897676A (zh) | 一种基于数据库索引的文件备份方法及装置 | |
CN116382591A (zh) | 基于Block RAID的Parity生成方法、装置和计算机设备 | |
CN110737405A (zh) | 基于固态硬盘的wordline数据存储实现方法和装置 | |
CN112596679B (zh) | 固态硬盘的raid实现方法、装置、计算机设备及存储介质 | |
CN116974485A (zh) | 基于HMB的RAID Parity暂存方法、装置和计算机设备 | |
CN114047880B (zh) | 多Pass编程的NAND写入功耗优化方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |