书签 分享 收藏 举报 版权申诉 / 9

一种固态盘阵列的缓存管理方法.pdf

  • 上传人:zhu****_FC
  • 文档编号:6382755
  • 上传时间:2019-06-05
  • 格式:PDF
  • 页数:9
  • 大小:471.94KB
  • 摘要
    申请专利号:

    CN201510438224.5

    申请日:

    2015.07.23

    公开号:

    CN105138277A

    公开日:

    2015.12.09

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 3/06申请日:20150723|||公开

    IPC分类号:

    G06F3/06

    主分类号:

    G06F3/06

    申请人:

    厦门大学

    发明人:

    毛波; 吴素贞; 林燕萍; 杨伟健; 陈骁

    地址:

    361005福建省厦门市思明南路422号

    优先权:

    专利代理机构:

    厦门南强之路专利事务所(普通合伙)35200

    代理人:

    刘勇

    PDF完整版下载: PDF下载
    内容摘要

    一种固态盘阵列的缓存管理方法,涉及计算机存储领域。在固态盘阵列上设置有主控模块、垃圾回收控制模块、缓存管理模块和优先缓存记录表;所述缓存管理方法包括以下步骤:1)初始化步骤;2)垃圾回收感知步骤;3)缓存管理步骤;4)结束步骤。充分利用存储系统中数据访问的时间局部性和空间局部性以及固态盘阵列的缓存存储特性,通过在缓存上提前优先存储将要进行垃圾回收操作的固态盘的热点数据的缓存管理方法来减轻垃圾回收操作对固态盘阵列性能波动的负面影响。能够和固态盘阵列功能模块协同工作,并且可以被嵌入到现有的固态盘阵列系统中,包括硬件和软件固态盘阵列系统。适用于构造具有高性能、高可用性和高可靠性的固态盘存储系统。

    权利要求书

    权利要求书
    1.  一种固态盘阵列的缓存管理方法,其特征在于在固态盘阵列上设置有主控模块、垃圾回收控制模块、缓存管理模块和优先缓存记录表;所述缓存管理方法包括以下步骤:
    1)初始化步骤
    进行下列过程:
    (1.1)主控模块打开已有的固态盘阵列或创建新的固态盘阵列,判断该固态盘阵列是否为创建的新固态盘阵列,若是,则转入过程(1.2),否则转入过程(1.3);
    (1.2)主控模块清空缓存中的数据内容,创建优先缓存记录表并初始化为空,进行步骤2);
    (1.3)主控模块读取保存在各个成员固态盘中的优先缓存记录表,进行步骤(2);
    2)垃圾回收感知步骤
    垃圾回收控制模块设定一个空闲空间的阈值,同时将固态盘的状态分为正常状态、垃圾回收预警状态和垃圾回收状态,所述正常状态即固态盘的空闲空间大于设定的阈值,所述垃圾回收预警状态即固态盘的空闲空间小于阈值但还没有进行垃圾回收操作,所述垃圾回收状态即固态盘正在进行垃圾回收操作;
    进行下列过程:
    (2.1)垃圾回收控制模块逐个检查固态盘的状态,判断固态盘是否处于垃圾回收状态,若是,则转入过程(2.3),否则转入过程(2.2);
    (2.2)垃圾回收控制模块收集固态盘阵列中每块成员固态盘的空闲空间的信息,并与设定的阈值进行比较,判断固态盘是否处于垃圾回收预警状态,若是,则转入过程(2.3),否则判断固态盘的信息是否保存在优先缓存记录表中,若是,则转入过程(2.4),否则转入过程(2.1);
    (2.3)主控模块将固态盘的盘号记录在优先缓存记录表中,转入过程(2.1);
    (2.4)主控模块将固态盘的盘号从优先缓存记录表中删除,转入过程(2.1);
    3)缓存管理步骤
    进行下列过程:
    (3.1)当有新数据要写入缓存时,缓存管理模块检查缓存空间是否已满,若是,则转入过程(3.2),否则转入过程(3.8);
    (3.2)缓存管理模块从缓存LRU链表中取出尾节点,转入过程(3.3);
    (3.3)查看该节点数据所属的固态盘的盘号,扫描优先缓存记录表,判断该盘号是否在优先缓存记录表中,若是,则转入过程(3.4),否则转入过程(3.5);
    (3.4)缓存管理模块从LRU链表上取出当前节点的前一个节点数据,转入过程(3.3);
    (3.5)查看该节点数据是否为脏数据,若是,则转入过程(3.6),否则转入过程(3.7);
    (3.6)将该节点数据写回固态盘,转入过程(3.7);
    (3.7)将该节点数据从缓存上删除,转入过程(3.8);
    (3.8)将新数据写入缓存并插入到LRU链表的表头,转入过程(3.1);
    4)结束步骤
    当用户发出指令关闭固态盘阵列时,进行下列过程:
    将优先缓存记录表保存到固态盘阵列各成员固态盘的超级块中,关闭固态盘阵列设备,释放相关的资源。

    说明书

    说明书一种固态盘阵列的缓存管理方法
    技术领域
    本发明涉及计算机存储领域,尤其是涉及一种固态盘阵列的缓存管理方法。
    背景技术
    作为一种主流的存储介质,磁盘已经广泛应用于个人电脑和企业级数据存储等领域,但是其机械特性限制了其读写性能的快速提升,基于磁盘的存储设备渐渐成为存储系统的性能“墙”。目前,基于闪存的固态盘已成为磁盘的有力替代品,并且得到了学术界和工业界的广泛关注。和磁盘相比,基于闪存的固态盘是一种半导体存储介质,没有机械部件,具有经久耐用、防震抗摔、无噪音、功耗低、工作温度范围大、随机小读性能高等优点;但是固态盘的容量价格比低,而且具有随机小写性能低、写前必须擦除和介质擦除次数有限等缺点。
    基于闪存的固态盘包含3种基本操作:读、写和擦除。读和写都以页为单位进行操作;擦除以块为单位进行操作。一个块(块大小通常是128KB-256KB)一般包含64个页(页大小通常是2KB-4KB)。擦除操作的处理时间比读写操作处理时间大若干个数量级。如果某个页已经存储有效数据就无法对该页直接进行覆盖写操作,而是将原数据页的数据置为无效,将新数据写入到其他空闲页中。随着系统的运行,固态盘中的空闲块会越来越少,无效数据页则越来越多,因此需要擦除这些包含无效数据页的块以获得新的空闲块,该操作称为“垃圾回收”。固态盘的垃圾回收过程是:首先选取待回收的块,将其上的有效数据页复制到空闲块中,并更新地址映射信息,然后擦除待回收块并将它们加入空闲块列表中。这个垃圾回收的过程将会消耗较多的时间。而且,当固态盘中的某个芯片正在处理垃圾回收操作时无法同时处理来自用户的读写请求,此时该芯片接收到的读写请求都将被挂起,直到垃圾回收操作完成才能被处理。因此,垃圾回收操作的效率直接影响了固态盘存储系统的性能,这个问题已成为存储研究的热点之一。
    另一方面,固态盘除了应用于桌面机外,也渐渐应用于服务器和企业级数据存储系统中。在企业级数据存储系统中,单个固态盘显然无法满足服务对存储系统容量、性能和可靠性的要求。因此,将磁盘阵列算法应用到固态盘存储系统中,构建大容量、高性能和高可靠的存储系统非常有必要。
    类似于磁盘阵列,固态盘阵列的性能也会受到阵列中性能最差的成员盘的影响。因此,单个固态盘的垃圾回收操作所引起的性能降低将使得固态盘阵列表现出严重的性能波动。现有的缓存管理算法都是针对磁盘特点进行设计的,由于固态盘的物理组成和磁盘有很大的差别,具有许多磁盘所不具备的特点,如写放大、垃圾回收等。其中垃圾回收操作对固态盘的性能延迟有很大的影响,当固态盘做垃圾回收时,很多发向该盘的请求将无法得到响应,直到垃圾回收操作完成才能被处理,从而降低了性能。目前使用最广泛的缓存替换算法是最近最少使用算法(LeastRecentlyUsed,简称LRU),即将最近最少使用的数据从缓存中删除从而为新数据提供空间,但是这样做也会将进行垃圾回收操作的固态盘的数据从缓存中删除,增加了对该固态盘的负担,造成更大的延迟。因此现有的LRU替换算法在固态盘阵列上存在着有一定的局限性。
    发明内容
    本发明的目的在于提供一种可有效减轻固态盘的垃圾回收操作对固态盘阵列性能波动的负面影响,提升固态盘阵列性能的缓存管理方法。
    为实现上述目的,本发明采用如下技术方案:
    一种固态盘阵列的缓存管理方法,在固态盘阵列上设置有主控模块、垃圾回收控制模块、缓存管理模块和优先缓存记录表;所述缓存管理方法包括以下步骤:
    1)初始化步骤
    进行下列过程:
    (1.1)主控模块打开已有的固态盘阵列或创建新的固态盘阵列,判断该固态盘阵列是否为创建的新固态盘阵列,若是,则转入过程(1.2),否则转入过程(1.3);
    (1.2)主控模块清空缓存中的数据内容,创建优先缓存记录表并初始化为空,进行步骤2);
    (1.3)主控模块读取保存在各个成员固态盘中的优先缓存记录表,进行步骤(2);
    2)垃圾回收感知步骤
    垃圾回收控制模块设定一个空闲空间的阈值,同时将固态盘的状态分为正常状态、垃圾回收预警状态和垃圾回收状态,所述正常状态即固态盘的空闲空间大于设定的阈值,所述垃圾回收预警状态即固态盘的空闲空间小于阈值但还没有进行垃圾回收操作,所述垃圾回收状态即固态盘正在进行垃圾回收操作;
    进行下列过程:
    (2.1)垃圾回收控制模块逐个检查固态盘的状态,判断固态盘是否处于垃圾回收状态,若是,则转入过程(2.3),否则转入过程(2.2);
    (2.2)垃圾回收控制模块收集固态盘阵列中每块成员固态盘的空闲空间的信息,并与设定的阈值进行比较,判断固态盘是否处于垃圾回收预警状态,若是,则转入过程(2.3),否则判断固态盘的信息是否保存在优先缓存记录表中,若是,则转入过程(2.4),否则转入过程(2.1);
    (2.3)主控模块将固态盘的盘号记录在优先缓存记录表中,转入过程(2.1);
    (2.4)主控模块将固态盘的盘号从优先缓存记录表中删除,转入过程(2.1);
    3)缓存管理步骤
    进行下列过程:
    (3.1)当有新数据要写入缓存时,缓存管理模块检查缓存空间是否已满,若是,则转入过程(3.2),否则转入过程(3.8);
    (3.2)缓存管理模块从缓存LRU链表中取出尾节点,转入过程(3.3);
    (3.3)查看该节点数据所属的固态盘的盘号,扫描优先缓存记录表,判断该盘号是否在优先缓存记录表中,若是,则转入过程(3.4),否则转入过程(3.5);
    (3.4)缓存管理模块从LRU链表上取出当前节点的前一个节点数据,转入过程(3.3);
    (3.5)查看该节点数据是否为脏数据,若是,则转入过程(3.6),否则转入过程(3.7);
    (3.6)将该节点数据写回固态盘,转入过程(3.7);
    (3.7)将该节点数据从缓存上删除,转入过程(3.8);
    (3.8)将新数据写入缓存并插入到LRU链表的表头,转入过程(3.1);
    4)结束步骤
    当用户发出指令关闭固态盘阵列时,进行下列过程:
    将优先缓存记录表保存到固态盘阵列各成员固态盘的超级块中,关闭固态盘阵列设备,释放相关的资源。
    与现有技术比较,本发明的有益效果如下:
    本发明充分利用存储系统中数据访问的时间局部性和空间局部性以及固态盘阵列的缓存存储特性,通过在缓存上提前优先存储将要进行垃圾回收操作的固态盘的热点数据的缓存管理方法来减轻垃圾回收操作对固态盘阵列性能波动的负面影响。当某个固体盘的空闲空间少于一定数量也就是即将进行垃圾回收操作时,缓存对该固态盘上的数据赋予更高的优先级,即当缓存需要替换数据时,优先保留属于该固态盘的数据,提高了发向该块固态盘的请求在 缓存上的命中率。因此,缓存上保存有更多属于该固态盘的数据,当该固态盘进行垃圾回收操作时发向该固态盘的请求就能更多的得到响应,减轻垃圾回收操作带来的性能波动,从而提高了固态盘阵列的性能。
    另外,本发明所述的一种固态盘阵列的缓存管理方法能够和固态盘阵列功能模块协同工作,并且可以被嵌入到现有的固态盘阵列系统中,包括硬件和软件固态盘阵列系统。适用于构造具有高性能、高可用性和高可靠性的固态盘存储系统。
    附图说明
    图1为本发明实施例的步骤组成示意图。
    图2为本发明实施例中的初始化步骤的过程示意图。
    图3为本发明实施例中的垃圾回收感知步骤的过程示意图。
    图4为本发明实施例中的动态缓存管理步骤的过程示意图。
    图5为本发明实施例中的结束步骤的过程示意图。
    具体实施方式
    下面实施例以固态盘阵列级别5为例。
    本实施例所述一种固态盘阵列的缓存管理方法,在固态盘阵列上设置有主控模块、垃圾回收控制模块、缓存管理模块和优先缓存记录表;下面结合附图说明缓存管理方法的各步骤:
    参见图1,初始化步骤完成后进入并行的垃圾回收感知步骤和动态缓存管理步骤,当用户发出关闭指令时,进入结束步骤。
    参见图2,根据用户指令,主控模块打开已有的固态盘阵列或创建新的固态盘阵列,判断该固态盘阵列是否为创建的新固态盘阵列,若是则清空缓存中的数据内容,创建一个优先缓存记录表并初始化为空;否则从固态盘中读取优先缓存记录表到内存中。
    参见图3,垃圾回收控制模块逐个查看固态盘的状态,判断固态盘是否处于进行垃圾回收状态,若是则通知主控模块该固态盘正在进行垃圾回收操作,主控模块将该固态盘的盘号记录在优先缓存记录表中;否则垃圾回收控制模块主动收集固态盘阵列中每块成员固态盘的空闲空间的信息,并与设定的阈值(如总空间的30%)比较,判断固态盘是否进入垃圾回收预警状态,若是则垃圾回收控制模块将进入垃圾回收预警状态的固态盘的盘号发送给主控模块,主控模块将该盘号记录在优先缓存记录表中;否则判断固态盘的信息是否保存在优先缓存记录表中,若是则将该固态盘的盘号从优先缓存记录表中删除。
    参见图4,当有新数据需要写入缓存时,缓存管理模块检查缓存空间是否已满,若缓存还有空闲空间则将新数据写入缓存并插入到LRU链表的表头;否则缓存管理模块从缓存LRU链表中取出尾节点,查看该节点数据所属的固态盘的盘号,扫描优先缓存记录表,判断该盘号是否在优先缓存记录表中,若是则缓存管理模块从LRU链表上取出当前节点的前一个节点数据重新判断该节点数据所属固态盘的盘号是否在优先缓存记录表中;否则查看该节点数据是否为脏数据,若是则先将该节点数据写回固态盘后从缓存上删除,否则将该节点数据从缓存上删除并将新数据写入缓存并插入到LRU链表的表头。
    参见图5,主控模块将优先缓存记录表保存到固态盘阵列各成员固态盘的超级块中,然后关闭固态盘阵列设备,释放相关的资源。

    关 键  词:
    一种 固态 阵列 缓存 管理 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种固态盘阵列的缓存管理方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6382755.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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