CN102819408B - 可动态调整条带深度的raid 0的实现方法及系统 - Google Patents

可动态调整条带深度的raid 0的实现方法及系统 Download PDF

Info

Publication number
CN102819408B
CN102819408B CN201210302346.8A CN201210302346A CN102819408B CN 102819408 B CN102819408 B CN 102819408B CN 201210302346 A CN201210302346 A CN 201210302346A CN 102819408 B CN102819408 B CN 102819408B
Authority
CN
China
Prior art keywords
band
stripedepth
stripestartlba
len
list item
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.)
Expired - Fee Related
Application number
CN201210302346.8A
Other languages
English (en)
Other versions
CN102819408A (zh
Inventor
夏君扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ramaxel Technology Shenzhen Co Ltd
Original Assignee
Ramaxel Technology Shenzhen Co Ltd
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 Ramaxel Technology Shenzhen Co Ltd filed Critical Ramaxel Technology Shenzhen Co Ltd
Priority to CN201210302346.8A priority Critical patent/CN102819408B/zh
Publication of CN102819408A publication Critical patent/CN102819408A/zh
Application granted granted Critical
Publication of CN102819408B publication Critical patent/CN102819408B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

可动态调整条带深度的RAID?0的实现方法,本发明通过接收应用访问RAID?0的I/O命令,动态创建RAID?0的条带,条带深度StripeDepth根据I/O命令要读写数据的大小动态计算,保证为StripeDepthmin的整数倍,StripeDepthmin等于区块的大小,并将记录每个条带信息的元数据存储到NAND?FLASH的Spare?area区。并同时设计了实现该可动态调整条带深度的RAID?0的实现方法的系统。在不额外占用用户存储空间的前提下,获得在不同的应用I/O块大小的场景中都可获得最佳的并发效果,整体上提高存储器的访问速度。

Description

可动态调整条带深度的RAID 0的实现方法及系统
技术领域
本发明涉及信息存储领域,尤其涉及一种可动态调整条带深度的RAID0的实现方法及系统。
背景技术
RAID是英文RedundantArrayofIndependentDisks的缩写,翻译成中文即为独立磁盘冗余阵列,或简称磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。RAID通过对硬盘上的数据进行条带化,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍的性能。
RAID0是其中的一种,其特点是条带在RAID创建时同时被创建,且同一个RAID中,每个条带的深度都是一致的。一般的我们尽量的将StripeSize设置为等于上层应用I/O块大小,这样一个I/O的读写尽可能分布到RAID0中所有的磁盘上,同时进行,从而获得最佳的并行效果。
但是,上层应用I/O的块大小可能是变化的,或者需要在RAID0上同时运行多种应用,不同应用所需的最优StripeSize又是不一样的。例如,对于视频应用,也许1MB的StripeSize是最佳的,但是对于数据库可能16KB的StripeSize是最佳的。因此固定的条带深度在实际应用中并不能在各种应用场合都能获得最佳的并行效果。
固态硬盘(SolidStateDisk,SSD)是一种建立在标准NANDFlash等非挥发存储介质基础上的新一代存储设备,完全半导体化,无机械结构,具有低功耗、无噪音、抗震动、低热量等特点,不存在磁盘寻道时间,数据存取速度快,数据吞吐量能和IOPS能达到传统硬盘的数千倍。随着NANDFlash制程技术不断提高及成本的降低,有效地降低了SSD的成本,推进SSD的应用普及。
NANDFlash存储器的特点是由Block(块)构成,block的基本单元是Page(页),每个Page的存储区又包含Dataarea(数据存储区)和Sparearea(备用区域)。不同厂商,不同规格的NandFlash的Page,Block及Sparearea的大小可能会有区别。以美光的一款NandFlash为例,一个Page的大小为8KB,Sparearea的大小为448B,一个Block包含256个Page。但不管是哪个厂商的都包含Sparearea区域,实际上用户可见的存储空间都是指Dataarea区,而每个Page中Sparearea区处理较多的用于存储ECC数据外,剩余部分区域都是空闲的,浪费了,而过去的RAID0信息都需要额外占用用户的存储空间。
因此现有的固定条带深度的RAID0存在不能在不同应用I/O块大小的场景下都获得最佳的并发处理,且RAID0的条带信息还需额外消耗系统存储空间的缺陷。
发明内容
针对以上缺陷,本发明目的在于提出了一种可动态调整条带深度的RAID0的实现方法及系统,以解决在不同的应用I/O块大小的场景中都可获得最佳的并发效果,整体上提高存储器的访问速度且不额外占用用户的存储空间。
为了实现上述目的,本发明提供了一种可动态调整条带深度的RAID0的实现方法及系统,所述方法包括:
步骤1.1,接收到应用访问RAID0的I/O命令,在条带地址映射表中查找I/O命令要读写的数据是否覆盖已存在的条带,如果存在则直接根据检索到的条带的条带表项信息跳到步骤1.4开始执行,否则继续执行步骤1.2;
步骤1.2,动态创建RAID0的条带,其中条带深度StripeDepth根据I/O命令要读写数据的大小动态计算,保证StripeDepth为StripeDepthmin的整数倍,其中StripeDepthmin为最小条带深度,等于区块的大小;并创建该条带的条带表项信息;其中条带表项信息包括开始条带的逻辑区块地址StripeStartLBA,结束逻辑区块地址StripeEndLBA和条带深度StripeDepth信息;
步骤1.3,将步骤1.2创建的条带表项信息添加到条带地址映射表中,条带表项信息的集合构成条带地址映射表;
步骤1.4,根据步骤1.1检索到的或步骤1.2新创建的条带的条带表项信息计算出各个FLASH盘中的数据的物理区块地址PBA;
步骤1.5,根据步骤1.4计算得到的地址信息PBA,拆分I/O命令为多个子命令到各个成员FLASH盘中,实现并发数据访问。
可动态调整条带深度的RAID0的实现方法,在于所述条带表项信息按如下方法计算获得:
步骤2.1,StripeStartLBA=StartLBA/N×N;
步骤2.2,Len=Len+StartLBA–StripeStartLBA;
步骤2.3,计算条带深度StripeDepth,
当Len%N等于0时,取StripeDepth为Len/N,
当Len%N不等于0时,取StripeDepth为Len/N+1;
步骤2.4,计算StripeEndLBA=StartLBA+StripeDepth×N-1
其中,StartLBA为I/O读写的开始逻辑区块地址,FLASH盘数目为N,I/O命令读写的数据块长度为Len。
可动态调整条带深度的RAID0的实现方法,在于所述PBA按如下方法计算获得:
步骤3.1,计算DiskID:DiskID=(LBA–StripeStartLBA)/StripeDepth;
步骤3.2,计算StripeStartPBA:
StripeStartPBA=(StripeStartLBA/StripeSizemin)×StripeDepthmin
=StripeStartLBA/N
步骤3.3,计算PBA:
PBA=StripeStartPBA+LBA-(StripeStartLBA+DiskID×StripeDepth);
其中,LBA为要访问的逻辑区块地址,DiskID为所要读写的LBA所在的FLASH盘ID,最小条带大小StripeSizemin=N。
可动态调整条带深度的RAID0的实现方法,在于所述的FLASH盘为NANDFLASH盘;所述的方法还包括,在创建新的条带表项信息时,在NANDFLASH的每个Page的Sparearea中增加存储如下元数据:
((StripeStartPBA,StripeEndPBA),StripeStartLBA);具有相同的StripeStartLBA的Page数据区属于同一个条带;
其中:
StripeStartPBA=(StripeStartLBA/StripeSizemin)×StripeDepthmin
=StripeStartLBA/N
StripeEndPBA=(StripeEndLBA/StripeSizemin)×StripeDepthmin
=StripeEndLBA/N
可动态调整条带深度的RAID0系统,所述系统包括:
I/O处理模块,用于接收到系统访问RAID0的I/O命令,及拆分I/O命令;
地址映射模块,用于动态创建RAID0的条带,其中条带深度StripeDepth根据I/O命令的数据块的大小动态计算,保证StripeDepth为StripeDepthmin的整数倍,其中StripeDepthmin为最小条带深度StripeDepthmin,等于区块的大小;并创建该条带的条带表项信息;将创建的条带表项信息添加到条带地址映射表中,并根据条带表项信息计算出各个FLASH盘中的数据的物理区块地址PBA;
Flash读写模块,负责与Flash控制器交互,根据地址映射模块计算出的用户请求的PBA地址实现读写用户数据。
可动态调整条带深度的RAID0系统,在于所述的条带表项信息包括开始条带的逻辑区块地址StripeStartLBA,结束逻辑区块地址StripeEndLBA和条带深度StripeDepth信息,其中
StripeStartLBA=StartLBA/N×N;
Len=Len+StartLBA–StripeStartLBA;
当Len%N等于0时,取StripeDepth为Len/N,
当Len%N不等于0时,取StripeDepth为Len/N+1;
StripeEndLBA=StartLBA+StripeDepth×N-1
其中,StartLBA为应用I/O访问的开始逻辑区块地址,N为FLASH盘数目,I/O所需要访问的数据长度为Len。
可动态调整条带深度的RAID0系统,在于所述的地址映射模块在计算出该条带表项信息的同时还计算出新创建出来的条带对应的实际NANDFLASH的每个Page的元数据,包括StripeStartPBA,StripeEndPBA,和StripeStartLBA;并可通过Flash读写模块在创建条带的同时将这些元数据存储到NANDFLASH每个Page的Sparearea区域中。
可动态调整条带深度的RAID0系统,在于所述系统还包括条带地址映射表初始化模块,所述条带地址映射表初始化模块实现在系统重新启动时,通过按照PBA顺序扫描NANDFLASH的所有Page的Sparearea区域中的元数据,根据该元数据构建出整个RAID0的条带地址映射表。
本发明针对上层不同的应用I/O的块大小是变化的情况,提出了动态根据应用I/O的块大小,来动态创建RAID0的条带,并根据I/O的块大小确定条带的深度,保证应用I/O的请求尽可能的均匀分散到N个存储器上,并充分利用NANDFLASH的特点在NANDFLASH的Sparearea区域存储条带相关信息,不额外占用用户存储空间的前提下,获得在不同的应用I/O块大小的场景中都可获得最佳的并发效果,整体上提高存储器的访问速度。
附图说明
图1是:条带深度可变的RAID0示意图;
图2是:RAID0命令处理流程如图;
图3是:命令拆分示意图;
图4是:RAID0系统架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中,定义“/”为整除运算,只保留结果的整数部分,“%”为取余数运算。
参见图1是条带深度可变的RAID0示意图,图1横向表示有N个Disk,表示RAID0磁盘数目为N;RAID0的纵向表示有多个条带:Stripe1、Stripe2、Stripe3……,StripeDepthmin为最小条带深度等于区块的大小;图1所示的Stripe1的条块深度为2*StripeDepthmin、Stripe2的条块深度为1*StripeDepthmin、Stripe3的条块深度为4*StripeDepthmin,各个条带的深度是不一样的,但都是StripeDepthmin的整数倍,从而保证了任何一个条带的起始地址一定也是N的整数倍,而具体条带的深度是由I/O读写的大小来决定的,在RAID的条带读写过程中动态创建的和计算决定的。所述的Disk为NANDFLASH构成的硬盘。
同时系统内存在系统启动的时候开始维护一份RAID0的条带地址映射表,每个条带对应着映射表中的一表项,因为每个条带的深度可能不一样,因此每个表项都记录了该条带的条带深度。具体到每个表项都记录了如下信息:
StripeStartLBA StripeEndLBA StripeDepth
对应于图1所示的条带Stripe1、Stripe2和Stripe3对应的表项为:
0 2N-1 2
2N 3N-1 1
3N 7N-1 4
这样每个条带在每个Disk上的起始StripStartPBA可以通过以下方式计算获得:
StripeStartPBA=(StripeStartLBA/StripeSizemin)×StripeDepthmin
=StripeStartLBA/N
StripeEndPBA=(StripeEndLBA/StripeSizemin)×StripeDepthmin
=StripeEndLBA/N
参见图4是RAID0的系统框架图,整个系统核心部分包含3个模:I/O处理模块、地址映射模块和FLASH读写模块。其中I/O处理模块通过系统I/O总线接收应用读写RAID的命令、并将读写的结果反馈给应用和将读写RAID的命令根据地址映射模块解析出的地址信息,将一个读写RAID的命令拆分成几个实际FLASH的读写命令,通过FLASH读写模块实现并行读写多个FLASH的操作。
参见图2是RAID0命令处理流程图,
步骤11:当I/O处理模块接收到一个读写命令后,首先在系统的条带地址映射表中查找要读写的数据块是否命中已存在的条带。
步骤12:分三种情况处理。
A.完全命中已有条带:读写的数据块全部都在已存在的条带中,那么根据命中条带的表项计算出各个Flash盘中数据的PBA,拆分读写命令到成员盘。
B.没有命中已有条带:读写的数据块完全与已存在的条带没有重合,那么创建新的条带表项。
C.部分命中已有条带:读写的数据块部分命中已存在的条带,那么将这个命令拆分,命中的部分与A情况中的处理流程相同,未命中部分与B情况的处理流程相同。一个命令可能被拆分为两个或者两个以上的子命令。
参见图3命令拆分示意图,如图3所示应用I/O发出读写命令C被拆分为5个子命令:StripeA、StripeB和StripeC是内存中的地址映射表已记录的在线条带,通过查询内存中的地址映射表发现C命令的部分和StripeA、StripeB和StripeC重合,这3部分可以分别拆成3个子命令分别访问StripeA、StripeB和StripeC;其中C命令还有未命中部分1和未命中部分2,需要创建新的条带,其中未命中部分1将创建一个StripeDepth为1的条带,未命中部分2将创建一个StripeDepth为2的条带。这样实现将命令C拆分为5个子命令。
步骤13:图2中未命中的命令创建条带及条带表项未命中的命令可能就是原始命令C,或者来自从原始命令C拆分得到的多个未命中的子命令,下面具体介绍下创建条带及条带表项的具体过程。
假设未命中命令C1的起始地址为StartLBA,长度为Len。未命中命令C1的结束EndLBA=StartLBA+Len-1。命令C1请求的就是读写从StartLBA到EndLBA之间的数据,它不一定正好从条带起始位置开始,也不一定在一个条带的末尾结束。条带表项根据命令C1的信息动态建立。
伪码如下:
StripeStartLBA=StartLBA/N×N//找到StartLBA前面最近的条带起始LBA
Len=Len+StartLBA–StripeStartLBA//长度加上StartLBA到条带开始的距离。
if(Len%N==0)//长度正好是StripeSizemin的整数倍
StripeDepth=Len/N
else
StripeDepth=Len/N+1
StripeEndLBA=StartLBA+StripeDepth×N-1
可以看出StripeDepth的产生方法保证了读写数据被尽可能的拆分到N个Flash盘上。
从StartLBA到EndLBA中的某一个LBA,它所在的Flash盘IDDiskID=(LBA–StripeStartLBA)/StripeDepthPBA=StripeStartPBA+LBA-(StripeStartLBA+DiskID×StripeDepth)
有了DiskID和PBA便可以知道某块具体的数据对应到RAID中的哪个位置。
当创建了新的条带表项时,需要在对应的NandFlash的每个Page的Sparearea中储存相应的元数据。
元数据的格式如下
((StripeStartPBA,StripeEndPBA),StripeStartLBA)
具有相同的StripeStartLBA的数据区属于同一个条带。这样当系统重启后,每个Flash盘按照PBA顺序扫描读取元数据,根据获取到的元数据可重新组合得到整个RAID的条带地址映射表。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (8)

1.可动态调整条带深度的RAID0的实现方法,其特征在于:步骤1.1,接收到应用访问RAID0的I/O命令,在条带地址映射表中查找I/O命令要读写的数据是否覆盖已存在的条带,如果存在则直接根据检索到的条带的条带表项信息跳到步骤1.4开始执行,否则继续执行步骤1.2;
步骤1.2,动态创建RAID0的条带,其中条带深度StripeDepth根据I/O命令要读写数据的大小动态计算,保证StripeDepth为StripeDepthmin的整数倍,其中StripeDepthmin为最小条带深度,等于区块的大小;并创建该条带的条带表项信息;其中条带表项信息包括开始条带的逻辑区块地址StripeStartLBA,结束逻辑区块地址StripeEndLBA和条带深度StripeDepth信息;
步骤1.3,将步骤1.2创建的条带表项信息添加到条带地址映射表中,条带表项信息的集合构成条带地址映射表;
步骤1.4,根据步骤1.1检索到的或步骤1.2新创建的条带的条带表项信息计算出各个FLASH盘中的数据的物理区块地址PBA;
步骤1.5,根据步骤1.4计算得到的地址信息PBA,拆分I/O命令为多个子命令到各个成员FLASH盘中,实现并发数据访问。
2.根据权利要求1所述的方法,其特征在于所述条带表项信息按如下方法计算获得:
步骤2.1,StripeStartLBA=StartLBA/N×N;
步骤2.2,Len=Len+StartLBA–StripeStartLBA;
步骤2.3,计算条带深度StripeDepth,
当Len%N等于0时,取StripeDepth为Len/N,
当Len%N不等于0时,取StripeDepth为Len/N+1;
步骤2.4,计算StripeEndLBA=StartLBA+StripeDepth×N-1;
其中,StartLBA为I/O读写的开始逻辑区块地址,FLASH盘数目为N,I/O命令读写的数据块长度为Len。
3.根据权利要求2所述的方法,其特征在于所述PBA按如下方法计算获得:
步骤3.1,计算DiskID:DiskID=(LBA–StripeStartLBA)/StripeDepth;
步骤3.2,计算StripeStartPBA:
StripeStartPBA=(StripeStartLBA/StripeSizemin)×StripeDepthmin
=StripeStartLBA/N
步骤3.3,计算PBA:
PBA=StripeStartPBA+LBA-(StripeStartLBA+DiskID×StripeDepth);
其中,LBA为要访问的逻辑区块地址,DiskID为所要读写的LBA所在的FLASH盘ID,最小条带大小StripeSizemin=N。
4.根据权利要求3所述的方法,其特征在于所述的FLASH盘为NANDFLASH盘;所述的方法还包括,在创建新的条带表项信息时,在NANDFLASH的每个Page的Sparearea中增加存储如下元数据:
((StripeStartPBA,StripeEndPBA),StripeStartLBA);具有相同的StripeStartLBA的Page数据区属于同一个条带;
其中:
StripeStartPBA=(StripeStartLBA/StripeSizemin)×StripeDepthmin
=StripeStartLBA/N
StripeEndPBA=(StripeEndLBA/StripeSizemin)×StripeDepthmin
=StripeEndLBA/N。
5.可动态调整条带深度的RAID0系统,其特征在于所述系统包括:
I/O处理模块,用于接收到系统访问RAID0的I/O命令,及拆分I/O命令;
地址映射模块,用于动态创建RAID0的条带,其中条带深度StripeDepth根据I/O命令的数据块的大小动态计算,保证StripeDepth为StripeDepthmin的整数倍,其中StripeDepthmin为最小条带深度StripeDepthmin,等于区块的大小;并创建该条带的条带表项信息;将创建的条带表项信息添加到条带地址映射表中,并根据条带表项信息计算出各个FLASH盘中的数据的物理区块地址PBA;
Flash读写模块,负责与Flash控制器交互,根据地址映射模块计算出的用户请求的PBA地址实现读写用户数据。
6.根据权利要求5所述的可动态调整条带深度的RAID0系统,其特征在于所述的条带表项信息包括开始条带的逻辑区块地址StripeStartLBA,结束逻辑区块地址StripeEndLBA和条带深度StripeDepth信息,其中
StripeStartLBA=StartLBA/N×N;
Len=Len+StartLBA–StripeStartLBA;
当Len%N等于0时,取StripeDepth为Len/N,
当Len%N不等于0时,取StripeDepth为Len/N+1;
StripeEndLBA=StartLBA+StripeDepth×N-1;
其中,StartLBA为应用I/O访问的开始逻辑区块地址,N为FLASH盘数目,I/O所需要访问的数据长度为Len。
7.根据权利要求6所述的可动态调整条带深度的RAID0系统,其特征在于所述的地址映射模块在计算出该条带表项信息的同时还计算出新创建出来的条带对应的实际NANDFLASH的每个Page的元数据,包括StripeStartPBA,StripeEndPBA,和StripeStartLBA;并可通过Flash读写模块在创建条带的同时将这些元数据存储到NANDFLASH每个Page的Sparearea区域中。
8.根据权利要求7所述的可动态调整条带深度的RAID0系统,其特征在于所述系统还包括条带地址映射表初始化模块,所述条带地址映射表初始化模块实现在系统重新启动时,通过按照PBA顺序扫描NANDFLASH的所有Page的Sparearea区域中的元数据,根据该元数据构建出整个RAID0的条带地址映射表。
CN201210302346.8A 2012-08-24 2012-08-24 可动态调整条带深度的raid 0的实现方法及系统 Expired - Fee Related CN102819408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210302346.8A CN102819408B (zh) 2012-08-24 2012-08-24 可动态调整条带深度的raid 0的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210302346.8A CN102819408B (zh) 2012-08-24 2012-08-24 可动态调整条带深度的raid 0的实现方法及系统

Publications (2)

Publication Number Publication Date
CN102819408A CN102819408A (zh) 2012-12-12
CN102819408B true CN102819408B (zh) 2016-01-06

Family

ID=47303539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210302346.8A Expired - Fee Related CN102819408B (zh) 2012-08-24 2012-08-24 可动态调整条带深度的raid 0的实现方法及系统

Country Status (1)

Country Link
CN (1) CN102819408B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250058B (zh) * 2016-07-27 2019-05-10 浪潮(北京)电子信息产业有限公司 一种基于可变条带的raid维护方法及系统
US10169141B2 (en) * 2016-08-11 2019-01-01 SK Hynix Inc. Modifiable stripe length in flash memory devices
CN108228085A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN108628541B (zh) * 2017-03-22 2020-07-07 华为技术有限公司 一种文件存储的方法、装置及存储系统
CN113760786A (zh) * 2017-05-10 2021-12-07 北京忆芯科技有限公司 页条带的数据组织以及向页条带写入数据的方法与装置
CN107239234B (zh) * 2017-05-27 2020-08-04 苏州浪潮智能科技有限公司 一种基于全闪存阵列的随机io顺序化方法及装置
CN107273048B (zh) * 2017-06-08 2020-08-04 浙江大华技术股份有限公司 一种数据写入方法及装置
CN107589916A (zh) * 2017-09-29 2018-01-16 郑州云海信息技术有限公司 一种基于纠删码的纠删池的创建方法及相关装置
CN109196458B (zh) 2017-11-03 2020-12-01 华为技术有限公司 存储系统可用容量计算方法及装置
CN109669635B (zh) * 2018-12-19 2022-01-21 深圳忆联信息系统有限公司 用于固态存储主控芯片的命令lba重合检测方法及装置
CN110007853B (zh) * 2019-01-30 2022-06-28 镕铭微电子(济南)有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
CN110308875B (zh) * 2019-06-27 2023-07-14 深信服科技股份有限公司 数据读写方法、装置、设备及计算机可读存储介质
CN110297607B (zh) * 2019-06-28 2023-08-29 深圳忆联信息系统有限公司 一种提升固态硬盘写性能的方法及其系统
CN111290711A (zh) * 2020-01-21 2020-06-16 苏州浪潮智能科技有限公司 一种raid系统的io处理方法及相关装置
CN116301660B (zh) * 2023-05-10 2023-08-22 深圳创新科技术有限公司 一种基于raid的录像写入方法、装置、设备及介质
CN117311647B (zh) * 2023-11-30 2024-03-15 武汉麓谷科技有限公司 一种基于ZNS固态硬盘Raid实现方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727293A (zh) * 2008-10-23 2010-06-09 成都市华为赛门铁克科技有限公司 一种固态硬盘ssd存储的设置方法、装置和系统
CN102023809A (zh) * 2009-09-21 2011-04-20 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001166888A (ja) * 1999-12-13 2001-06-22 Nippon Telegr & Teleph Corp <Ntt> データ蓄積システムおよびデータ蓄積方法、ならびにデータ蓄積方法のプログラムを記録した記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727293A (zh) * 2008-10-23 2010-06-09 成都市华为赛门铁克科技有限公司 一种固态硬盘ssd存储的设置方法、装置和系统
CN102023809A (zh) * 2009-09-21 2011-04-20 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法

Also Published As

Publication number Publication date
CN102819408A (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
CN102819408B (zh) 可动态调整条带深度的raid 0的实现方法及系统
CN107632939B (zh) 用于存储装置的映射表
US9304904B2 (en) Hierarchical flash translation layer
CN106354615B (zh) 固态硬盘日志生成方法及其装置
US8626987B2 (en) Flash memory system and defragmentation method
CN108121503B (zh) 一种NandFlash地址映射及块管理方法
US10579538B2 (en) Predicting addresses in non-volatile storage
US8886884B2 (en) System and method for increasing read and write speeds of hybrid storage unit
US8650379B2 (en) Data processing method for nonvolatile memory system
KR20170114255A (ko) 데이터 저장 장치와 그 동작 방법
JP2015026379A (ja) 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理
US9317206B2 (en) Host-managed logical mass storage device using magnetic random access memory (MRAM)
JP2013506903A (ja) 電源遮断管理
CN103270500A (zh) 事务日志恢复
US10649893B2 (en) Namespace planning of non-volatile memory of data storage device
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
KR101374065B1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
CN102708058A (zh) 执行ftl功能的非易失性存储装置及其控制方法
US20150234595A1 (en) Storage device
US20130054882A1 (en) Hybrid hdd storage system and control method
US20240143219A1 (en) Software-hardware combination method for internal mapping address query of zoned namespace
CN103677670A (zh) 读数据的方法及装置
TWI520152B (zh) 資料儲存裝置與快閃記憶體控制方法
JP2017224113A (ja) 記憶装置
CN103914396B (zh) 用于存储设备的地址映射方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160106

CF01 Termination of patent right due to non-payment of annual fee