CN110569000A - 基于固态硬盘阵列的主机端raid管理方法和装置 - Google Patents
基于固态硬盘阵列的主机端raid管理方法和装置 Download PDFInfo
- Publication number
- CN110569000A CN110569000A CN201910875497.4A CN201910875497A CN110569000A CN 110569000 A CN110569000 A CN 110569000A CN 201910875497 A CN201910875497 A CN 201910875497A CN 110569000 A CN110569000 A CN 110569000A
- Authority
- CN
- China
- Prior art keywords
- host
- ssd
- array
- lba
- mapping table
- 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
- 239000007787 solid Substances 0.000 title claims abstract description 37
- 238000007726 management method Methods 0.000 title claims description 63
- 238000013507 mapping Methods 0.000 claims abstract description 59
- 238000013403 standard screening design Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000000977 initiatory effect Effects 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 230000003321 amplification Effects 0.000 abstract description 8
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 8
- 238000012005 ligant binding assay Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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
-
- 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/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于固态硬盘阵列的主机端RAID管理方法、装置、计算机设备和存储介质,其中该方法包括:获取基于固态硬盘阵列的主机端RAID管理请求;根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;获取主机端应用程序通过主机逻辑地址发起的访问请求;根据所述主机逻辑地址在所述映射表中查询或分配对应的SSD阵列的虚拟地址信息;根据所述SSD阵列的虚拟地址信息对对应的SSD发起读写请求。本发明通过引入了主机逻辑地址到SSD阵列的虚拟地址映射表,SSD阵列管理模块对于主机的写入数据,可以依次分配不同SSD的逻辑空间进行存储,有效提升了主机随机写入性能,并且降低了写放大,提升了寿命。
Description
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于固态硬盘阵列的主机端RAID管理方法、装置、计算机设备和存储介质。
背景技术
目前,SSD(固态硬盘)已经被广泛应用于各种场合,目前在PC市场,已经逐步替代传统的HDD,从可靠性和性能方面为用户提供较好的体验。作为SSD的主要存储介质,NAND一直在更新换代。随着工艺的演进,颗粒的可靠性面临较大的挑战。在NAND给定的擦写次数内,随着PE(擦写次数)的增加,其出错的概率也会增加。为了满足数据的正确性需求,除了传统的增加ECC纠错能力,使用NAND内置的Read Retry命令来调整Cell读取电压外,系统级的纠错方法也逐步被引入到SSD内部,如RAID。进一步地,随着SSD的应用场景越来越多,经常需要在单一主机下挂载多个SSD,结合特定的RAID配置,实现高性能、高可靠性的应用场景。
在传统技术中,现有的SSD阵列主机端RAID策略,采用简单的分片策略。以三个SSD组成的阵列,当配置为2+1RAID时,主机LBA 0/2/4/6…依次映射到Disk 1的LBA 0/1/2/3…;主机LBA 1/3/5/7…依次映射到Disk 2的LBA 0/1/2/3…。而RAID条带的组成则由对应的主机LBA分片组成,比如主机LBA 0/1在一个条带内,其Parity写入到Disk 3的LBA0,这三笔数据称为一个RAID条带,由于有parity的存在,当用户数据(host LBA 0/1)任意一笔数据出错时,可以被恢复。
基于这种策略,由于RAID条带为基于Host LBA静态组成的,当主机复写LBA 0时,其旧的parity已经无效,需要重新写入,故而对应一笔用户数据的写,需要额外的一笔parity数据写入。这种策略大大增加了写放大,导致磁盘的寿命下降。
发明内容
基于此,有必要针对上述技术问题,提供一种可以有效降低写放大的基于固态硬盘阵列的主机端RAID管理方法、装置、计算机设备和存储介质。
一种基于固态硬盘阵列的主机端RAID管理方法,所述方法包括:
获取基于固态硬盘阵列的主机端RAID管理请求;
根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;
获取主机端应用程序通过主机逻辑地址发起的访问请求;
根据所述主机逻辑地址在所述映射表中查询或分配对应的SSD阵列的虚拟地址信息;
根据所述SSD阵列的虚拟地址信息对对应的SSD发起读写请求。
在其中一个实施例中,所述根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表的步骤包括:
在主机端的SSD阵列管理模块中创建L2V映射表,所述L2V映射表的索引为HostLBA,其值为VLBA;
其中,所述VLBA包含两个字段:Disk ID和SSD_LBA,所述Disk ID为存放对应的SSD索引信息,所述SSD_LBA为对应的SSD LBA信息。
在其中一个实施例中,在所述在主机端的SSD阵列管理模块中创建L2V映射表的步骤之后还包括:
SSD阵列管理模块根据获取到的Host LBA,在所述L2V映射表中查询或分配对应的VLBA信息;
根据所述VLBA信息中的Disk ID和SSD_LBA对对应的SSD发起读写请求。
在其中一个实施例中,所述方法还包括:
根据所述SSD阵列的虚拟地址,将具有相同虚拟地址的多个SSD组成对应的RAID条带。
一种基于固态硬盘阵列的主机端RAID管理装置,所述装置包括:
第一获取模块,所述第一获取模块用于获取基于固态硬盘阵列的主机端RAID管理请求;
创建模块,所述创建模块用于根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;
第二获取模块,所述第二获取模块用于获取主机端应用程序通过主机逻辑地址发起的访问请求;
查询分配模块,所述查询分配模块用于根据所述主机逻辑地址在所述映射表中查询或分配对应的SSD阵列的虚拟地址信息;
请求发起模块,所述请求发起模块用于根据所述SSD阵列的虚拟地址信息对对应的SSD发起读写请求。
在其中一个实施例中,所述创建模块还用于:
在主机端的SSD阵列管理模块中创建L2V映射表,所述L2V映射表的索引为HostLBA,其值为VLBA;
其中,所述VLBA包含两个字段:Disk ID和SSD_LBA,所述Disk ID为存放对应的SSD索引信息,所述SSD_LBA为对应的SSD LBA信息。
在其中一个实施例中,所述查询分配模块还用于:
SSD阵列管理模块根据获取到的Host LBA,在所述L2V映射表中查询或分配对应的VLBA信息;
所述请求发起模块还用于根据所述VLBA信息中的Disk ID和SSD_LBA对对应的SSD发起读写请求。
在其中一个实施例中,所述装置还包括组建模块,所述组建模块用于:
根据所述SSD阵列的虚拟地址,将具有相同虚拟地址的多个SSD组成对应的RAID条带。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述基于固态硬盘阵列的主机端RAID管理方法、装置、计算机设备和存储介质,通过获取基于固态硬盘阵列的主机端RAID管理请求;根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;获取主机端应用程序通过主机逻辑地址发起的访问请求;根据所述主机逻辑地址在所述映射表中查询或分配对应的SSD阵列的虚拟地址信息;根据所述SSD阵列的虚拟地址信息对对应的SSD发起读写请求。本发明通过引入了主机逻辑地址到SSD阵列的虚拟地址映射表,SSD阵列管理模块对于主机的写入数据,可以依次分配不同SSD的逻辑空间进行存储,从而有效保障了各个SSD之间的磨损均衡以及写入的并发性,有效提升了主机随机写入性能,并且降低了写放大,提升了寿命。
附图说明
图1为传统技术中单盘SSD主机端映射方法的示意图;
图2为传统技术中SSD阵列主机端RAID方法的示意图;
图3为传统技术中SSD阵列的主机端RAID下的写入方法的示意图;
图4为一个实施例中基于固态硬盘阵列的主机端RAID管理方法的流程示意图;
图5为另一个实施例中基于固态硬盘阵列的主机端RAID管理方法的流程示意图;
图6为一个实施例中引入的SSD阵列主机端RAID策略的示意图;
图7为一个实施例中主机端写入过程中的L2V映射表变化过程的示意图;
图8为一个实施例中对应的各个Disk内L2P的变化过程的示意图;
图9为一个实施例中基于固态硬盘阵列的主机端RAID管理装置的结构框图;
图10为另一个实施例中基于固态硬盘阵列的主机端RAID管理装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在传统技术中,如图1所示,为单个SSD时的主机映射、访问SSD模型:具体地,主机基于LBA访问SSD,每个LBA大小典型为512B。SSD会报告主机所支持的最大LBA地址,主机访问范围不超过该上限制。SSD内部会维护一个L2P表(逻辑地址到物理地址映射表),表征主机对应的逻辑数据在物理NAND上的存放地址。SSD根据PPA(物理地址)对NAND进行操作。
如图2所示,为传统SSD阵列时主机端的RAID策略,为便于说明,此处以三个SSD组成的2+1RAID进行说明。主机端应用程序依然通过LBA地址发起访问(此LBA地址范围是综合阵列的各个存放用户的SSD LBA所得,例如为两个SSD的LBA之和)因为主机和SSD端均涉及到LBA的概念,为便于区分,此处所指为Host LBA。主机端阵列管理接收到应用程序请求后,根据简单的分片规则,将拆分后的请求发给对应的Disk:例如主机的Host LBA 0/2/4…请求被转发给Disk 1,并且LBA被映射为SSD LBA 0/1/2…;主机的Host LBA 1/2/5…请求被转发给Disk 2,并且LBA被映射为SSD LBA 0/1/2…。
进一步地,Host LBA 0/1为RAID条带0中的用户数据,其进行运算后(典型如XOR)得到条带0的Parity数据,会被写入到Disk 3的SSD LBA 0.类似地,Host LBA 2/3RAID条带1中的用户数据,其进行运算后(典型如XOR)得到条带1的Parity数据,会被写入到Disk 3的SSD LBA 1。Disk 1/2/3根据各自的L2P映射表,将输入的SSD LBA转换为PPA。
如图3所示,为传统SSD阵列所组成RAID后的写入模型:主机写入Host LBA 0/1以及对应的Parity,分别写入到Disk 1/2/3的SSD LBA 0。主机复写Host LBA 0,则会导致1)中生成的Parity无效,所以需要依次发生如下动作:
-写入Host LBA 0,对应Disk 1的SSD LBA 0;
-读出Host LBA 1,对应Disk 2的SSD LBA 0;
-写入新的Host LBA 0/1的Parity,对应Disk 3的SSD LBA 0;
由于传统的SSD阵列RAID管理算法中基于Host LBA组建RAID条带,所以当条带内部分数据被更新时,需要读出其他数据并重新生成Parity写入。该过程导致写入性能大大下降,而且带来极大的写放大。
基于上述技术问题,本发明提出了一种基于固态硬盘阵列的主机端RAID管理方法,期望能解决上述技术问题。
在一个实施例中,如图4所示,提供了一种基于固态硬盘阵列的主机端RAID管理方法,该方法包括:
步骤402,获取基于固态硬盘阵列的主机端RAID管理请求;
步骤404,根据请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;
步骤406,获取主机端应用程序通过主机逻辑地址发起的访问请求;
步骤408,根据主机逻辑地址在映射表中查询或分配对应的SSD阵列的虚拟地址信息;
步骤410,根据SSD阵列的虚拟地址信息对对应的SSD发起读写请求。
具体地,首先,获取基于固态硬盘阵列的主机端RAID管理请求,并根据该请求在主机端的SSD阵列管理模块中创建主机逻辑地址到SSD阵列的虚拟地址映射表即L2V映射表,其索引为Host LBA,其值为VLBA,存放对应的Host LBA在哪个盘的逻辑地址存放信息,其中,VLBA包含两个字段:分别为Disk ID,在本例中,可以为1或者2,对应Disk 1/2;另外一个字段为SSD_LBA,为对应的SSD LBA信息。然后,主机端应用程序依然通过Host LBA地址发起访问。接着,SSD阵列管理模块根据Host LBA,查询或者分配(对应读、写请求)对应的VLBA信息。最后,根据VLBA信息中的Disk ID和SSD_LBA,对对应的SSD发起读、写请求。
在本实施例中,通过引入了主机逻辑地址到SSD阵列的虚拟地址映射表,SSD阵列管理模块对于主机的写入数据,可以依次分配不同SSD的逻辑空间进行存储,从而有效保障了各个SSD之间的磨损均衡以及写入的并发性,有效提升了主机随机写入性能,并且降低了写放大,提升了寿命。
在一个实施例中,如图5所示,提供了一种基于固态硬盘阵列的主机端RAID管理方法,该方法还包括:
步骤502,在主机端的SSD阵列管理模块中创建L2V映射表,其中,L2V映射表的索引为Host LBA,其值为VLBA;
步骤504,SSD阵列管理模块根据获取到的Host LBA,在L2V映射表中查询或分配对应的VLBA信息;
步骤506,根据VLBA信息中的Disk ID和SSD_LBA对对应的SSD发起读写请求。
具体地,结合如图6所示,为本实施例中所引入的SSD阵列主机端RAID策略如下:
1、主机端的SSD阵列管理模块中增加一个L2V映射表,其索引为Host LBA,其值为VLBA,存放对应的Host LBA在哪个盘的逻辑地址存放信息。
2、VLBA包含两个字段:分别为Disk ID,在本例中,可以为1或者2,对应Disk 1/2;另外一个字段为SSD_LBA,为对应的SSD LBA信息。
3、主机端应用程序依然通过Host LBA地址发起访问。
4、SSD阵列管理模块根据Host LBA,查询或者分配(对应读、写请求)对应的VLBA信息。
5、根据VLBA信息中的Disk ID,SSD_LBA,对对应的SSD发起读、写请求。
在本实施例中,由于引入了L2V映射表,SSD阵列管理模块对于主机的写入数据,可以依次分配不同SSD的逻辑空间进行存储,从而有效保障了各个SSD之间的磨损均衡以及写入的并发性。
在一个实施例中,该方法还包括:根据SSD阵列的虚拟地址,将具有相同虚拟地址的多个SSD组成对应的RAID条带。
进一步地,RAID条带基于虚拟地址构建,由各个SSD的相同虚拟地址(SSD LBA)组成:Disk 1/2/3的SSD LBA 0组成RAID条带0,Disk 1/2/3的SSD LBA 1组成RAID条带1…。
具体地,如图7所示为一个主机端典型的写入过程中的L2V映射表变化过程,为便于说明,本实施例以主机端依次写入Host LBA 0/1/0/2为例进行说明(这种序列在传统的SSD阵列管理中,会因为Host LBA 0的复写导致写放大):
1、主机写入Host LBA 0,SSD阵列管理模块为其分配Disk 1,SSD_LBA 0的地址进行写入。
2、主机写入Host LBA 1,SSD阵列管理模块为其分配Disk 2,SSD_LBA 0的地址进行写入。
3、主机写入Host LBA 0/1的Parity,SSD阵列管理模块为其分配Disk 3,SSD_LBA0的地址进行写入。
4、主机写入Host LBA 0,SSD阵列管理模块为其分配Disk 1,SSD_LBA 1的地址进行写入。
5、主机写入Host LBA 2,SSD阵列管理模块为其分配Disk 2,SSD_LBA 1的地址进行写入。
6、主机写入Host LBA 0/2的Parity,SSD阵列管理模块为其分配Disk 3,SSD_LBA1的地址进行写入。
由此可见,对于任意的主机复写行为,由于基于虚拟地址组建RAID,不再需要额外的Parity重新生成以及复写行为。
如图8所示为对应的各个Disk内L2P的变化过程。在上述写入过程中:RAID条带0由Disk 1/2/3的SSD_LBA 0组成,RAID条带1由Disk 1/2/3的SSD_LBA 1组成。用户数据0/1/2任意一笔损坏后,都可以由对应的RAID条带恢复。
在本实施例中,通过引入了主机端到虚拟地址的映射,并基于虚拟地址组建RAID条带,可有效降低写放大。
应该理解的是,虽然图4-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种基于固态硬盘阵列的主机端RAID管理装置900,该装置包括:
第一获取模块901,用于获取基于固态硬盘阵列的主机端RAID管理请求;
创建模块902,用于根据请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;
第二获取模块903,用于获取主机端应用程序通过主机逻辑地址发起的访问请求;
查询分配模块904,用于根据主机逻辑地址在映射表中查询或分配对应的SSD阵列的虚拟地址信息;
请求发起模块905,用于根据SSD阵列的虚拟地址信息对对应的SSD发起读写请求。
在一个实施例中,创建模块902还用于:
在主机端的SSD阵列管理模块中创建L2V映射表,L2V映射表的索引为Host LBA,其值为VLBA;其中,VLBA包含两个字段:Disk ID和SSD_LBA,Disk ID为存放对应的SSD索引信息,SSD_LBA为对应的SSD LBA信息。
在一个实施例中,查询分配模块904还用于SSD阵列管理模块根据获取到的HostLBA,在L2V映射表中查询或分配对应的VLBA信息;
请求发起模块905还用于根据VLBA信息中的Disk ID和SSD_LBA对对应的SSD发起读写请求。
在一个实施例中,如图10所示,提供了一种基于固态硬盘阵列的主机端RAID管理装置900,该装置还包括组建模块906,用于:
根据SSD阵列的虚拟地址,将具有相同虚拟地址的多个SSD组成对应的RAID条带。
关于基于固态硬盘阵列的主机端RAID管理装置的具体限定可以参见上文中对于基于固态硬盘阵列的主机端RAID管理方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图11所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于固态硬盘阵列的主机端RAID管理方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种基于固态硬盘阵列的主机端RAID管理方法,其特征在于,所述方法包括:
获取基于固态硬盘阵列的主机端RAID管理请求;
根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;
获取主机端应用程序通过主机逻辑地址发起的访问请求;
根据所述主机逻辑地址在所述映射表中查询或分配对应的SSD阵列的虚拟地址信息;
根据所述SSD阵列的虚拟地址信息对对应的SSD发起读写请求。
2.根据权利要求1所述的基于固态硬盘阵列的主机端RAID管理方法,其特征在于,所述根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表的步骤包括:
在主机端的SSD阵列管理模块中创建L2V映射表,所述L2V映射表的索引为Host LBA,其值为VLBA;
其中,所述VLBA包含两个字段:DiskID和SSD_LBA,所述Disk ID为存放对应的SSD索引信息,所述SSD_LBA为对应的SSD LBA信息。
3.根据权利要求2所述的基于固态硬盘阵列的主机端RAID管理方法,其特征在于,在所述在主机端的SSD阵列管理模块中创建L2V映射表的步骤之后还包括:
SSD阵列管理模块根据获取到的Host LBA,在所述L2V映射表中查询或分配对应的VLBA信息;
根据所述VLBA信息中的Disk ID和SSD_LBA对对应的SSD发起读写请求。
4.根据权利要求1-3所述的基于固态硬盘阵列的主机端RAID管理方法,其特征在于,所述方法还包括:
根据所述SSD阵列的虚拟地址,将具有相同虚拟地址的多个SSD组成对应的RAID条带。
5.一种基于固态硬盘阵列的主机端RAID管理装置,其特征在于,所述装置包括:
第一获取模块,所述第一获取模块用于获取基于固态硬盘阵列的主机端RAID管理请求;
创建模块,所述创建模块用于根据所述请求创建主机逻辑地址到SSD阵列的虚拟地址映射表;
第二获取模块,所述第二获取模块用于获取主机端应用程序通过主机逻辑地址发起的访问请求;
查询分配模块,所述查询分配模块用于根据所述主机逻辑地址在所述映射表中查询或分配对应的SSD阵列的虚拟地址信息;
请求发起模块,所述请求发起模块用于根据所述SSD阵列的虚拟地址信息对对应的SSD发起读写请求。
6.根据权利要求5所述的基于固态硬盘阵列的主机端RAID管理装置,其特征在于,所述创建模块还用于:
在主机端的SSD阵列管理模块中创建L2V映射表,所述L2V映射表的索引为Host LBA,其值为VLBA;
其中,所述VLBA包含两个字段:Disk ID和SSD_LBA,所述Disk ID为存放对应的SSD索引信息,所述SSD_LBA为对应的SSD LBA信息。
7.根据权利要求6所述的基于固态硬盘阵列的主机端RAID管理装置,其特征在于,所述查询分配模块还用于:
SSD阵列管理模块根据获取到的Host LBA,在所述L2V映射表中查询或分配对应的VLBA信息;
所述请求发起模块还用于根据所述VLBA信息中的Disk ID和SSD_LBA对对应的SSD发起读写请求。
8.根据权利要求5-7所述的基于固态硬盘阵列的主机端RAID管理装置,其特征在于,所述装置还包括组建模块,所述组建模块用于:
根据所述SSD阵列的虚拟地址,将具有相同虚拟地址的多个SSD组成对应的RAID条带。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910875497.4A CN110569000A (zh) | 2019-09-17 | 2019-09-17 | 基于固态硬盘阵列的主机端raid管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910875497.4A CN110569000A (zh) | 2019-09-17 | 2019-09-17 | 基于固态硬盘阵列的主机端raid管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110569000A true CN110569000A (zh) | 2019-12-13 |
Family
ID=68780591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910875497.4A Pending CN110569000A (zh) | 2019-09-17 | 2019-09-17 | 基于固态硬盘阵列的主机端raid管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569000A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538460A (zh) * | 2020-04-20 | 2020-08-14 | 江苏芯盛智能科技有限公司 | Raid功能实现方法及相关装置 |
CN113553008A (zh) * | 2021-07-20 | 2021-10-26 | 深圳忆联信息系统有限公司 | 映射表更新方法、装置、计算机设备及存储介质 |
CN115840620A (zh) * | 2023-02-27 | 2023-03-24 | 珠海星云智联科技有限公司 | 一种数据通路构建方法、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140919A1 (en) * | 2006-10-27 | 2008-06-12 | Stec, Inc. | Multi-channel solid-state storage system |
CN101477444A (zh) * | 2008-12-29 | 2009-07-08 | 成都市华为赛门铁克科技有限公司 | 一种虚拟存储方法和设备 |
CN101539842A (zh) * | 2009-04-27 | 2009-09-23 | 杭州华三通信技术有限公司 | 磁盘阵列系统的数据写入方法及磁盘阵列系统 |
CN102830942A (zh) * | 2012-06-28 | 2012-12-19 | 记忆科技(深圳)有限公司 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
US20140164676A1 (en) * | 2012-12-10 | 2014-06-12 | Google Inc. | Using a virtual to physical map for direct user space communication with a data storage device |
US20190065392A1 (en) * | 2017-08-23 | 2019-02-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
CN109582599A (zh) * | 2017-09-29 | 2019-04-05 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
CN110609660A (zh) * | 2019-09-10 | 2019-12-24 | 深圳忆联信息系统有限公司 | Ssd阵列的主机端映射方法、装置、计算机设备及存储介质 |
-
2019
- 2019-09-17 CN CN201910875497.4A patent/CN110569000A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140919A1 (en) * | 2006-10-27 | 2008-06-12 | Stec, Inc. | Multi-channel solid-state storage system |
CN101477444A (zh) * | 2008-12-29 | 2009-07-08 | 成都市华为赛门铁克科技有限公司 | 一种虚拟存储方法和设备 |
CN101539842A (zh) * | 2009-04-27 | 2009-09-23 | 杭州华三通信技术有限公司 | 磁盘阵列系统的数据写入方法及磁盘阵列系统 |
CN102830942A (zh) * | 2012-06-28 | 2012-12-19 | 记忆科技(深圳)有限公司 | 固态硬盘磁盘阵列映射的方法及其固态硬盘 |
US20140164676A1 (en) * | 2012-12-10 | 2014-06-12 | Google Inc. | Using a virtual to physical map for direct user space communication with a data storage device |
US20190065392A1 (en) * | 2017-08-23 | 2019-02-28 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
CN109582599A (zh) * | 2017-09-29 | 2019-04-05 | 上海宝存信息科技有限公司 | 数据储存装置以及非挥发式存储器操作方法 |
CN110609660A (zh) * | 2019-09-10 | 2019-12-24 | 深圳忆联信息系统有限公司 | Ssd阵列的主机端映射方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538460A (zh) * | 2020-04-20 | 2020-08-14 | 江苏芯盛智能科技有限公司 | Raid功能实现方法及相关装置 |
CN113553008A (zh) * | 2021-07-20 | 2021-10-26 | 深圳忆联信息系统有限公司 | 映射表更新方法、装置、计算机设备及存储介质 |
CN115840620A (zh) * | 2023-02-27 | 2023-03-24 | 珠海星云智联科技有限公司 | 一种数据通路构建方法、设备及介质 |
CN115840620B (zh) * | 2023-02-27 | 2023-05-16 | 珠海星云智联科技有限公司 | 一种数据通路构建方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9343153B2 (en) | De-duplication in flash memory module | |
US10884630B2 (en) | Storage system | |
US9910748B2 (en) | Rebuilding process for storage array | |
US8832371B2 (en) | Storage system with multiple flash memory packages and data control method therefor | |
US9378135B2 (en) | Method and system for data storage | |
US8819338B2 (en) | Storage system and storage apparatus | |
US11157365B2 (en) | Method for processing stripe in storage device and storage device | |
US7831764B2 (en) | Storage system having plural flash memory drives and method for controlling data storage | |
US10503424B2 (en) | Storage system | |
US20140337578A1 (en) | Redundant array of inexpensive disks (raid) system configured to reduce rebuild time and to prevent data sprawl | |
CN110569000A (zh) | 基于固态硬盘阵列的主机端raid管理方法和装置 | |
EP4012547B1 (en) | Storage method and apparatus for key value (kv) and storage device | |
US20200341874A1 (en) | Handling of offline storage disk | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
JP6817340B2 (ja) | 計算機 | |
US20230142948A1 (en) | Techniques for managing context information for a storage device | |
US8935488B2 (en) | Storage system and storage control method | |
CN107562639B (zh) | 擦除块读请求处理方法与装置 | |
CN107562654B (zh) | Io命令处理方法与装置 | |
US11663080B1 (en) | Techniques for performing live rebuild in storage systems that operate a direct write mode | |
US11221790B2 (en) | Storage system | |
CN117149076A (zh) | Ssd控制器raid条带动态管理方法、装置和计算机设备 | |
CN115220660A (zh) | 固态硬盘的写命令处理优化方法、装置和计算机设备 | |
JP2024043063A (ja) | メモリシステムおよび制御方法 | |
CN116974485A (zh) | 基于HMB的RAID Parity暂存方法、装置和计算机设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191213 |