CN105138277A - 一种固态盘阵列的缓存管理方法 - Google Patents
一种固态盘阵列的缓存管理方法 Download PDFInfo
- Publication number
- CN105138277A CN105138277A CN201510438224.5A CN201510438224A CN105138277A CN 105138277 A CN105138277 A CN 105138277A CN 201510438224 A CN201510438224 A CN 201510438224A CN 105138277 A CN105138277 A CN 105138277A
- Authority
- CN
- China
- Prior art keywords
- solid
- state
- disc array
- state disk
- garbage reclamation
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种固态盘阵列的缓存管理方法,涉及计算机存储领域。在固态盘阵列上设置有主控模块、垃圾回收控制模块、缓存管理模块和优先缓存记录表;所述缓存管理方法包括以下步骤:1)初始化步骤;2)垃圾回收感知步骤;3)缓存管理步骤;4)结束步骤。充分利用存储系统中数据访问的时间局部性和空间局部性以及固态盘阵列的缓存存储特性,通过在缓存上提前优先存储将要进行垃圾回收操作的固态盘的热点数据的缓存管理方法来减轻垃圾回收操作对固态盘阵列性能波动的负面影响。能够和固态盘阵列功能模块协同工作,并且可以被嵌入到现有的固态盘阵列系统中,包括硬件和软件固态盘阵列系统。适用于构造具有高性能、高可用性和高可靠性的固态盘存储系统。
Description
技术领域
本发明涉及计算机存储领域,尤其是涉及一种固态盘阵列的缓存管理方法。
背景技术
作为一种主流的存储介质,磁盘已经广泛应用于个人电脑和企业级数据存储等领域,但是其机械特性限制了其读写性能的快速提升,基于磁盘的存储设备渐渐成为存储系统的性能“墙”。目前,基于闪存的固态盘已成为磁盘的有力替代品,并且得到了学术界和工业界的广泛关注。和磁盘相比,基于闪存的固态盘是一种半导体存储介质,没有机械部件,具有经久耐用、防震抗摔、无噪音、功耗低、工作温度范围大、随机小读性能高等优点;但是固态盘的容量价格比低,而且具有随机小写性能低、写前必须擦除和介质擦除次数有限等缺点。
基于闪存的固态盘包含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,主控模块将优先缓存记录表保存到固态盘阵列各成员固态盘的超级块中,然后关闭固态盘阵列设备,释放相关的资源。
Claims (1)
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)结束步骤
当用户发出指令关闭固态盘阵列时,进行下列过程:
将优先缓存记录表保存到固态盘阵列各成员固态盘的超级块中,关闭固态盘阵列设备,释放相关的资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510438224.5A CN105138277A (zh) | 2015-07-23 | 2015-07-23 | 一种固态盘阵列的缓存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510438224.5A CN105138277A (zh) | 2015-07-23 | 2015-07-23 | 一种固态盘阵列的缓存管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138277A true CN105138277A (zh) | 2015-12-09 |
Family
ID=54723638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510438224.5A Pending CN105138277A (zh) | 2015-07-23 | 2015-07-23 | 一种固态盘阵列的缓存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138277A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597584A (zh) * | 2018-12-04 | 2019-04-09 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘垃圾回收管理方法、装置及设备 |
CN110659217A (zh) * | 2019-08-30 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
CN111880745A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 基于固态盘阵列的数据处理方法、装置、设备及存储介质 |
CN115469815A (zh) * | 2022-10-31 | 2022-12-13 | 之江实验室 | 提高闪存可靠性的缓存管理方法、装置、设备和储存介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530237A (zh) * | 2013-10-31 | 2014-01-22 | 厦门大学 | 一种固态盘阵列的垃圾回收方法 |
-
2015
- 2015-07-23 CN CN201510438224.5A patent/CN105138277A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530237A (zh) * | 2013-10-31 | 2014-01-22 | 厦门大学 | 一种固态盘阵列的垃圾回收方法 |
Non-Patent Citations (2)
Title |
---|
WEI QINGSONG等: ""A Popularity-Aware Buffer Management to Improve Buffer Hit Ratio and Write Sequentiality for Solid-State Drive"", 《IEEE TRANSACTIONS ON MAGNETICS》 * |
WU SUZHEN等: ""Availability-aware Cache Management with Improved RAID Reconstruction"", 《2010 13TH IEEE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND ENGINEERING》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109597584A (zh) * | 2018-12-04 | 2019-04-09 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘垃圾回收管理方法、装置及设备 |
CN109597584B (zh) * | 2018-12-04 | 2022-03-08 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘垃圾回收管理方法、装置及设备 |
CN110659217A (zh) * | 2019-08-30 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
CN110659217B (zh) * | 2019-08-30 | 2021-10-15 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
CN111880745A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 基于固态盘阵列的数据处理方法、装置、设备及存储介质 |
CN115469815A (zh) * | 2022-10-31 | 2022-12-13 | 之江实验室 | 提高闪存可靠性的缓存管理方法、装置、设备和储存介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572478B (zh) | 数据存取方法和数据存取装置 | |
CN103530237B (zh) | 一种固态盘阵列的垃圾回收方法 | |
US20140006687A1 (en) | Data Cache Apparatus, Data Storage System and Method | |
CN111007991B (zh) | 基于nvdimm分离读写请求的方法及其计算机 | |
KR20120090965A (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
KR20150035560A (ko) | 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭 | |
KR20090032821A (ko) | 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치 | |
CN103049224B (zh) | 将数据导入物理磁带的方法、装置和系统 | |
CN108182154A (zh) | 一种基于固态硬盘的日志文件的读写方法及固态硬盘 | |
CN105446665A (zh) | 一种计算机存储加速系统及其优化方法 | |
CN103543955A (zh) | 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘 | |
US11204864B2 (en) | Data storage devices and data processing methods for improving the accessing performance of the data storage devices | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
KR20100065786A (ko) | 빠른 파워-오프를 위한 캐시 동기화 방법 및 시스템 | |
JP2018520420A (ja) | ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム | |
CN108628542B (zh) | 一种文件合并方法及控制器 | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
CN106815152A (zh) | 一种优化页级闪存转换层的方法 | |
CN105786410A (zh) | 一种提高数据存储系统处理速度的方法及数据存储系统 | |
CN105138277A (zh) | 一种固态盘阵列的缓存管理方法 | |
CN105224474A (zh) | 固态硬盘闪存转换层的实现系统和闪存转换层的实现装置 | |
CN107908358A (zh) | 一种降低NVMe固态硬盘写放大的方法 | |
CN110321081B (zh) | 一种闪存读缓存的方法及其系统 | |
CN100580669C (zh) | 在Flash存储介质上的关于文件分配表的缓存实现方法 | |
CN109783019B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |
|
RJ01 | Rejection of invention patent application after publication |