太阳城集团

  • / 14
  • 下载费用:30 金币  

一种固态盘阵列的数据布局方法.pdf

摘要
申请专利号:

太阳城集团CN201510540940.4

申请日:

2015.08.28

公开号:

CN105045540A

公开日:

2015.11.11

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20150828|||公开
IPC分类号: G06F3/06 主分类号: G06F3/06
申请人: 厦门大学
发明人: 吴素贞; 毛波; 杨伟健; 陈骁; 林燕萍
地址: 361005福建省厦门市思明南路422号
优先权:
专利代理机构: 厦门南强之路专利事务所(普通合伙)35200 代理人: 马应森
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201510540940.4

授权太阳城集团号:

||||||

法律状态太阳城集团日:

太阳城集团2017.10.17|||2015.12.09|||2015.11.11

法律状态类型:

太阳城集团授权|||实质审查的生效|||公开

摘要

一种固态盘阵列的数据布局方法,涉及计算机存储领域。固态盘阵列上设置四个功能模块即主控模块、请求处理模块、数据映射模块、数据读写模块和一致性维护模块,并设置一个数据映射表和多分块存储区域。包括初始化步骤、请求处理步骤、数据映射步骤、数据读/写步骤、一致性维护步骤和结束步骤。充分利用固态盘阵列的多种不同分块大小在读写操作和请求大小上的优势,综合使用多个分块大小而非单一地使用某一种分块大小,以提高固态盘阵列的整体性能。能够和固态盘阵列功能模块协同工作,并且可以被嵌入到现有的固态盘阵列系统中,包括硬件和软件固态盘阵列系统。适用于构造具有高性能、高可用性和高可靠性的固态盘存储系统。

权利要求书

1.一种固态盘阵列的数据布局方法,其特征在于包括以下步骤:
(1)初始化步骤,具体过程如下:
(1.1)主控模块打开已有的固态盘阵列或创建新的固态盘阵列,判断该固态盘阵列是否
为新创建的固态盘阵列,若是,则转过程(1.2),否则转过程(1.3);
(1.2)主控模块根据用户指令,将新创建的固态盘阵列划分为3个分区,容量比例设置
为2∶1∶1,分区号分别设置为0、1和2,按照4KB、8KB和32KB的分块大小对这3个分区
重新进行固态盘阵列的条带化并新建数据映射表,转步骤(2);
(1.3)主控模块读取保存在固态盘阵列的成员固态盘超级块中的数据映射表和分区信
息,转步骤(2);
(2)请求处理步骤,具体过程如下:
(2.1)请求处理模块判断固态盘阵列的请求等待队列中是否有请求,若有,则获取一个
请求并转过程(2.2),否则转过程(2.3);
(2.2)请求处理模块获取该请求的偏移量、请求大小和请求类型,转步骤(3);
(2.3)记录超时太阳城集团,若超时太阳城集团低于系统设置的阈值(如10s)时,则转过程(2.1),
否则说明此时系统处于空闲状态,转步骤(5);
(3)数据映射步骤,具体过程如下:
(3.1)数据映射模块判断该请求是否是读请求,若是,则转过程(3.5),否则转过程(3.2);
(3.2)数据映射模块根据请求的偏移量及请求大小,判断该请求的数据块是否在当前数
据映射表中,若是,则转过程(3.4),否则,从分区大小为4KB的分区中获取一个内部块偏
移,转过程(3.3);
(3.3)数据映射模块向数据映射表中写入新数据项,数据项中分区号置为0、太阳城集团戳设
置为当前系统太阳城集团、计数器初始化为0;判断请求大小,若请求大小大于16KB,则将该数据
项放入待维护队列;操作类型设置为“写入”,转步骤(4);
(3.4)数据映射模块根据请求偏移量检索数据映射表,获取对应的数据项,并设置操作
类型为“更新”,转步骤(4);
(3.5)数据映射模块根据请求偏移量检索数据映射表,获取对应的数据项,并设置操作
类型为“读取”,转步骤(4);
(4)数据读写步骤,具体过程如下:
(4.1)数据读写模块判断操作类型是否是“写入”,若是,则转过程(4.2),否则判断
数据类型是否是“读取”,若是,则转过程(4.3),否则转过程(4.4);
(4.2)数据读写模块根据数据项中的“内部块偏移量”写入数据,转步骤(2);
(4.3)数据读写模块判断该数据项是否正在进行一致性维护,若是,则从缓冲区读出数
据,否则根据该数据项所在分区的“内部块偏移量”从固态盘阵列读出数据,转步骤(2);
(4.4)数据读写模块判断该数据项是否正在进行一致性维护,若是,则更新缓冲区中大
小为“请求大小”的数据为待写入的数据;否则根据该数据项所在分区的“内部块偏移量”
向固态盘阵列写入数据,并判断该数据项的太阳城集团戳与当前系统太阳城集团的差值是否小于系统设置
的超时太阳城集团(如2000ms),若是,则更新该数据项的计数器即递增1,否则将计数器重置为0;
更新该数据项的太阳城集团戳为当前系统太阳城集团,转步骤(2);
(5)一致性维护步骤,具体过程如下:
(5.1)一致性维护模块判断一致性维护队列中是否有待维护的项目,若有,则从一致性
维护队列中获取一个待维护项目,转过程(5.2),否则转步骤(2);
(5.2)一致性维护模块判断待维护项目的计数器值是否大于系统设置的阈值(如20),
若是,则表明该项目近期被频繁更新,无需迁移至其他分块大小的区域,转过程(5.4),否
则表明该项目为不经常更新的项,需要将以该项目的分区号下的“内部块偏移量”为起始地
址、“请求大小”为长度的数据迁移至其他分块大小的区域,转过程(5.3);
(5.3)一致性维护模块把以该维护项目所在“分区号”的“内部块偏移量”为起始地址、
“请求大小”为长度的数据写入缓冲区中,判断该项目的数据大小是否小于80KB,若是,则
从8KB大小的分区中获取一个内部块偏移并设置分区号为1,否则从32KB大小的分区中获取
一个内部块偏移量并设置分区号为2;然后将该数据项对应的数据迁移到以“内部块偏移量”
为起始地址的位置并更新数据映射表,转过程(5.1);
(5.4)一致性维护模块将该维护项目的计数器置为0,太阳城集团戳更新为当前系统太阳城集团,转
过程(5.1);
(6)结束步骤,当用户发出指令关闭固态盘阵列时,具体过程如下:
主控模块将数据映射表保存到固态盘阵列的超级块中,关闭固态盘阵列设备,释放相关
的资源。
2.如权利要求1所述一种固态盘阵列的数据布局方法,其特征在于在步骤(1)过程(1.1)
中,所述固态盘阵列上设有主控模块、请求处理模块、数据映射模块、数据读写模块和一致
性维护模块,并设置一个数据映射表和多分块存储区域。
3.如权利要求1所述一种固态盘阵列的数据布局方法,其特征在于在步骤(1)过程(1.2)
中,所述数据映射表包括M条映射太阳城集团,每条映射太阳城集团由6个数据项构成,各数据项依次为
请求偏移量rq_Offset、内部块偏移量in_Offset、请求大小Size、分区号md_Num、太阳城集团戳
TS和计数器UC;M为大于等于0的自然数。

说明书

一种固态盘阵列的数据布局方法

技术领域

本发明涉及计算机存储领域,尤其是涉及一种固态盘阵列的数据布局方法。

背景技术

磁盘是目前主流的存储介质,广泛应用于个人电脑、互联网和企业级数据存储等领域,
但是由于其机械特性的限制,读写性能无法进一步获得更高的提升,基于磁盘的存储设备逐
步成为存储系统的性能瓶颈。近年来,固态盘由于其读写性能高、能耗低、防震性好以及日
渐低廉的价格等优点,逐渐成为磁盘的有力替代品。与磁盘相比,基于闪存的固态盘没有机
械部件(如磁头、转轴等),其内部由半导体器件组成,因此固态盘对外服务时无需寻道太阳城集团
等由机械运动引发的延时,固态盘的性能相对于磁盘有极大的提升,具体表现为高随机读写
性能、高可靠性和高能效。但是由于固态盘内部闪存芯片的特性,固态盘也存在着局限性,
在写入数据时,若原数据页中存在着有效数据,无法在原位置中覆盖写入新数据。固态盘采
取的是异地更新的策略,即首先将原数据置为无效,把待更新的数据写入其它空闲页中;当
固态盘中无效页越来越多、空闲页数量低于系统所设置阈值时,会触发垃圾回收操作,将待
擦除块中的有效数据拷贝到空闲页后擦除该闪存块,从而释放更多的空间来保存新的数据。
然而,闪存芯片的擦除次数是有限的,影响了固态盘的使用寿命与可靠性,在企业级服务器
的应用场景下将威胁到存储系统的可靠性。

在企业级服务器的应用场景下,磁盘阵列技术被广泛用于提升磁盘存储系统的性能和可
靠性。相应地,将磁盘阵列技术应用于固态盘,可以构建大容量、高性能、高可靠的固态盘
存储系统。在固态盘阵列中,数据分布在不同固态盘上,实现了同步化的存取操作,增加了
读写操作的并行性,提高了固态盘存储系统的性能;另外,由于固态盘阵列引入了数据冗余,
也提高了固态盘存储系统的可靠性。而固态盘阵列的分块大小作为固态盘阵列性能的重要影
响因素之一,决定着固态盘阵列中数据的分割粒度。目前,太阳城集团固态盘阵列中最优分块大小
的研究尚处于探索阶段,如果直接采用基于磁盘阵列的最优分块大小,由于没有考虑到固态
盘与磁盘内部结构的差异,固态盘阵列的性能将受到限制。

FarzanehRajaeiSalmasi,HosseinAsadi,andMajidGhasemiGol.ImpactofStripe
UnitSizeonPerformanceandEnduranceofSSD-BasedRAIDArrays.ScientiaIranica,
TransactionsD,2013.20(6):1978-1998.

发明内容

本发明的目的在于提供可综合固态盘阵列的不同分块大小在读写操作和请求大小上的优
势,以发挥固态盘阵列最优性能的一种固态盘阵列的数据布局方法。

本发明包括以下步骤:

(1)初始化步骤,具体过程如下:

(1.1)主控模块打开已有的固态盘阵列或创建新的固态盘阵列,判断该固态盘阵列是否
为新创建的固态盘阵列,若是,则转过程(1.2),否则转过程(1.3);

(1.2)主控模块根据用户指令,将新创建的固态盘阵列划分为3个分区,容量比例设置
为2∶1∶1,分区号分别设置为0、1和2,按照4KB、8KB和32KB的分块大小对这3个分区
重新进行固态盘阵列的条带化并新建数据映射表,转步骤(2);

(1.3)主控模块读取保存在固态盘阵列的成员固态盘超级块中的数据映射表和分区信
息,转步骤(2);

(2)请求处理步骤,具体过程如下:

(2.1)请求处理模块判断固态盘阵列的请求等待队列中是否有请求,若有,则获取一个
请求并转过程(2.2),否则转过程(2.3);

(2.2)请求处理模块获取该请求的偏移量、请求大小和请求类型,转步骤(3);

(2.3)记录超时太阳城集团,若超时太阳城集团低于系统设置的阈值(如10s)时,则转过程(2.1),
否则说明此时系统处于空闲状态,转步骤(5);

(3)数据映射步骤,具体过程如下:

(3.1)数据映射模块判断该请求是否是读请求,若是,则转过程(3.5),否则转过程(3.2);

(3.2)数据映射模块根据请求的偏移量及请求大小,判断该请求的数据块是否在当前数
据映射表中,若是,则转过程(3.4),否则,从分区大小为4KB的分区中获取一个内部块偏
移,转过程(3.3);

(3.3)数据映射模块向数据映射表中写入新数据项,数据项中分区号置为0、太阳城集团戳设
置为当前系统太阳城集团、计数器初始化为0;判断请求大小,若请求大小大于16KB,则将该数据
项放入待维护队列;操作类型设置为“写入”,转步骤(4);

(3.4)数据映射模块根据请求偏移量检索数据映射表,获取对应的数据项,并设置操作
类型为“更新”,转步骤(4);

(3.5)数据映射模块根据请求偏移量检索数据映射表,获取对应的数据项,并设置操作
类型为“读取”,转步骤(4);

(4)数据读写步骤,具体过程如下:

(4.1)数据读写模块判断操作类型是否是“写入”,若是,则转过程(4.2),否则判断
数据类型是否是“读取”,若是,则转过程(4.3),否则转过程(4.4);

(4.2)数据读写模块根据数据项中的“内部块偏移量”写入数据,转步骤(2);

(4.3)数据读写模块判断该数据项是否正在进行一致性维护,若是,则从缓冲区读出数
据,否则根据该数据项所在分区的“内部块偏移量”从固态盘阵列读出数据,转步骤(2);

(4.4)数据读写模块判断该数据项是否正在进行一致性维护,若是,则更新缓冲区中大
小为“请求大小”的数据为待写入的数据;否则根据该数据项所在分区的“内部块偏移量”
向固态盘阵列写入数据,并判断该数据项的太阳城集团戳与当前系统太阳城集团的差值是否小于系统设置
的超时太阳城集团(如2000ms),若是,则更新该数据项的计数器即递增1,否则将计数器重置为0;
更新该数据项的太阳城集团戳为当前系统太阳城集团,转步骤(2);

(5)一致性维护步骤,具体过程如下:

(5.1)一致性维护模块判断一致性维护队列中是否有待维护的项目,若有,则从一致性
维护队列中获取一个待维护项目,转过程(5.2),否则转步骤(2);

(5.2)一致性维护模块判断待维护项目的计数器值是否大于系统设置的阈值(如20),
若是,则表明该项目近期被频繁更新,无需迁移至其他分块大小的区域,转过程(5.4),否
则表明该项目为不经常更新的项,需要将以该项目的分区号下的“内部块偏移量”为起始地
址、“请求大小”为长度的数据迁移至其他分块大小的区域,转过程(5.3);

(5.3)一致性维护模块把以该维护项目所在“分区号”的“内部块偏移量”为起始地址、
“请求大小”为长度的数据写入缓冲区中,判断该项目的数据大小是否小于80KB,若是,则
从8KB大小的分区中获取一个内部块偏移并设置分区号为1,否则从32KB大小的分区中获取
一个内部块偏移量并设置分区号为2;然后将该数据项对应的数据迁移到以“内部块偏移量”
为起始地址的位置并更新数据映射表,转过程(5.1);

(5.4)一致性维护模块将该维护项目的计数器置为0,太阳城集团戳更新为当前系统太阳城集团,转
过程(5.1);

(6)结束步骤,当用户发出指令关闭固态盘阵列时,具体过程如下:

主控模块将数据映射表保存到固态盘阵列的超级块中,关闭固态盘阵列设备,释放相关
的资源。

在步骤(1)过程(1.1)中,所述固态盘阵列上设有主控模块、请求处理模块、数据映
射模块、数据读写模块和一致性维护模块,并设置一个数据映射表和多分块存储区域。

在步骤(1)过程(1.2)中,所述数据映射表包括M条映射太阳城集团,每条映射太阳城集团由6个
数据项构成,各数据项依次为请求偏移量rq_Offset、内部块偏移量in_Offset、请求大小
Size、分区号md_Num、太阳城集团戳TS和计数器UC;M为大于等于0的自然数。

本发明包括初始化步骤、请求处理步骤、数据映射步骤、数据读写步骤、一致性维护步
骤和结束步骤。基于充分利用固态盘阵列的多种不同分块大小的优势,并根据读写请求实时
特性的不同,将数据块布局于性能最优的存储区域。对于读请求而言,最优分块大小可以充
分发挥固态盘阵列的最佳并行性,而对于写请求而言,最优分块大小可以在最大程度上减少
写入请求引发的固态盘阵列的校验块更新。本发明综合了多个分块大小的优势而不是单一地
使用一种分块大小,从而提高了固态盘阵列的性能。

另外,本发明所述的一种固态盘阵列的数据布局方法能够和固态盘阵列功能模块协同工
作,并且可以被嵌入到现有的固态盘阵列系统中,包括硬件和软件固态盘阵列系统。适用于
构造具有高性能、高可用性和高可靠性的固态盘存储系统。

附图说明

图1为本发明的示意图;

图2为本发明的数据映射表中一条映射太阳城集团的数据项示意图;

图3为本发明初始化步骤的过程示意图;

图4为本发明请求处理步骤的过程示意图;

图5为本发明数据映射步骤的过程示意图;

图6为本发明数据读写步骤的过程示意图;

图7为本发明一致性维护步骤的过程示意图;

图8为本发明结束步骤的过程示意图。

具体实施方式

下面以4块固态盘组成的阵列级别5为例,结合附图对本发明作进一步说明。

图1为本发明的示意图:初始化步骤完成后进入请求处理步骤,然后进入顺序的数据映
射步骤与数据读写步骤或者进入一致性维护步骤,当用户发出关闭指令时,进入结束步骤。

图2为本发明的数据映射表中一条映射太阳城集团的数据项示意图:数据映射表中,每条映射
太阳城集团由6个数据项构成,分别为请求偏移量rq_Offset、内部块偏移量in_Offset、请求大小
Size、分区号md_Num、太阳城集团戳TS和计数器UC。

图3为本发明初始化步骤的过程示意图:主控模块根据用户指令打开已有的固态盘阵列
或者创建新的固态盘阵列,判断固态盘阵列是否是新创建的,若是,则主控模块根据用户指
令,将新创建的固态盘阵列划分为3个分区,容量比例设置为2∶1∶1,分区号分别设置为0、
1和2,按照4KB、8KB和32KB的分块大小对这3个分区重新进行固态盘阵列的条带化并新建
数据映射表;否则读取保存在固态盘阵列的成员固态盘超级块中的数据映射表和分区太阳城集团。

图4为本发明请求处理步骤的过程示意图:请求处理模块判断固态盘阵列的请求等待队
列中是否有请求,若有则获取一个请求并获取该请求的偏移量、请求大小和请求类型,进入
数据映射步骤;否则记录超时太阳城集团并判断超时太阳城集团是否低于系统设置的阈值(如10s),若是,
则继续判断固态盘阵列的请求等待队列中是否有请求,否则说明此时系统处于空闲状态,进
入一致性维护步骤;

图5为本发明数据映射步骤的过程示意图:数据映射模块判断该请求是否是读请求,若
是,则根据请求偏移量检索数据映射表,获取对应的数据项,并设置操作类型为“读取”,进
入数据读写步骤;否则根据请求的偏移量及请求大小,判断该请求的数据块是否在当前数据
映射表中,若是,则根据请求偏移量检索数据映射表获取对应的数据项,设置操作类型为“更
新”,进入数据读写步骤;否则从分区大小为4KB的分区中获取一个内部块偏移,向数据映射
表中写入新数据项,数据项中分区号置为0、太阳城集团戳设置为当前系统太阳城集团、计数器初始化为0;
判断请求大小,若请求大小大于16KB,则将该数据项放入待维护队列;设置操作类型为“写
入”,进入数据读写步骤;

图6为本发明数据读写步骤的过程示意图:数据读写模块判断操作类型是否是“写入”,
若是,则根据数据项中的“内部块偏移量”写入数据,返回请求处理步骤;否则判断数据类
型是否是“读取”,若是,则判断该数据项是否正在进行一致性维护,若是,则从缓冲区读出
数据,否则根据该数据项所在分区的“内部块偏移量”从固态盘阵列读出数据,返回请求处
理步骤;否则若操作类型不是“读取”则判断该数据项是否正在进行一致性维护,若是,则
更新缓冲区中大小为“请求大小”的数据为待写入的数据,否则根据该数据项所在分区的“内
部块偏移量”向固态盘阵列写入数据,并判断该数据项的太阳城集团戳与当前系统太阳城集团的差值是否
小于系统设置的超时太阳城集团(如2000ms),若是,则更新该数据项的计数器即递增1,否则将计
数器重置为0;更新该数据项的太阳城集团戳为当前系统太阳城集团,返回请求处理步骤;

图7为本发明一致性维护步骤的过程示意图:一致性维护模块判断一致性维护队列中是
否有待维护的项目,若没有则返回请求处理步骤,否则从一致性维护队列中获取一个待维护
项目,判断该项目的计数器值是否大于系统设置的阈值(如20),若是,则表明该项目近期
被频繁更新,无需迁移至其他分块大小的区域,一致性维护模块将该维护项目的计数器置为
0、太阳城集团戳更新为当前系统太阳城集团;否则表明该项目为不经常更新的项,需要将以该项目的分区
号下的“内部块偏移量”为起始地址、“请求大小”为长度的数据迁移至其他分块大小的区域,
一致性维护模块把以该维护项目所在“分区号”的“内部块偏移量”为起始地址、“请求大小”
为长度的数据写入缓冲区中,判断该项目的数据大小是否小于80KB,若是,则从8KB大小的
分区中获取一个内部块偏移并设置分区号为1,否则从32KB大小的分区中获取一个内部块偏
移量并设置分区号为2;然后将该数据项对应的数据迁移到以“内部块偏移量”为起始地址
的位置并更新数据映射表;

图8为本发明结束步骤的过程示意图:主控模块将数据映射表保存到固态盘阵列各成员
固态盘的超级块中,然后关闭该固态盘阵列设备,释放相关的资源。

关 键 词:
一种 固态 阵列 数据 布局 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种固态盘阵列的数据布局方法.pdf
链接地址:http://zh228.com/p-6401451.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');