一种实现存储系统ssd缓存数据选择性升级的系统架构的制作方法
【专利摘要】本发明公开了一种实现存储系统SSD缓存数据选择性升级的系统架构,该系统架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;采用本发明的系统架构,能够保证SSD缓存数据的选择性升级,高效缓存数据,满足用户对高性能存储系统的诉求。
【专利说明】一种实现存储系统SSD缓存数据选择性升级的系统架构
【技术领域】
[0001]本发明涉及一种实现存储系统SSD缓存的数据选择性升级的系统架构,通常用于存储系统中,旨在提供一种SSD缓存数据的选择性升级的系统架构。
技术背景
[0002]随着当今社会的进步,需要处理的数据信息越来越多,数据量呈爆炸式增长。这给传统的存储系统带来了诸多问题。传统存储系统一般使用机械式硬盘(HDD),传统存储系统的性能已经成为瓶颈。近两年,SSD即固态存储硬盘开始兴起。一方面,SSD本身具有快速随机存取、低耗能、超轻超薄、低故障率(非机械部件)等特点。另一方面,由于技术发展,SSD逐渐解决了容量小,顺序存取速度慢的问题。当前市场上的最新SSD,单盘容量达到几TB,PCIE接口的SSD吞吐量超过lGB/s,IOPS达到几十万次/s。SSD性能全面超过传统机械硬盘,而其存取速度、响应时间等关键指标更是大幅超过传统机械硬盘。
[0003]但是因为SSD的价格要远远高于HDD硬盘,因此将SSD作为缓存既能满足当今数据处理的性能要求,又能不提高存储系统成本。
[0004]SSD具有一些特性,一是SSD具有寿命限制,SSD具有擦写次数限制的问题,每次写操作都会导致SSD执行一次擦写,因此写操作的数量会直接影响擦写次数,从而影响SSD的寿命;二是SSD的容量还远远小于HDD硬盘,因此SSD空间是极其珍贵的。
【发明内容】
[0005]本发明要解决的技术问题是:
SSD缓存的数据选择性升级急需解决两个问题,一是解决SSD寿命问题,如何减少对SSD的写操作,从而延长SSD的寿命;二是如何有效的利用SSD的空间,保证缓存最有价值的数据。
[0006]通过该存储系统SSD缓存的数据选择性升级的系统架构,能够实现SSD缓存数据的动态升级,大幅减少SSD写入量,增加写入命中率,延长SSD的寿命,高效利用SSD的存储空间,满足存储系统高性能的需求。
[0007]本发明所采用的技术方案为:
一种实现存储系统SSD缓存数据选择性升级的系统架构,该系统架构支持在不同的操作系统,实现SSD缓存数据的选择性升级。该系统架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;
该系统包括:I)缓存数据查询模块;2)候选升级数据查询模块;3)候选升级数据处理模块;4)升级限值统计模块;5)数据迁移模块;6)命中计数调整模块,其中:
模块I)缓存数据查询模块,负责在缓存数据队列中查询所给数据块是否存在,如果存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零; 模块2)候选升级数据查询模块,负责在候选升级队列中查询所给数据块是否存在,如果存在,返回所给数据块的命中计数;若不存在,返回零;
模块3)候选升级数据处理模块,负责候选升级所给数据块命中计数增加并重新入队的操作;
模块4)升级限值统计模块,统计升级限值,首先计算缓存数据队列中所缓存的所有数据块的平均命中数,计算公式为升级基本限值=数据块的命中总数/数据块的个数,升级基本限值是一个动态改变的值,做为数据升级的依据,此外,升级限值针对读取和写入分别有一个默认额外值,读取默认额外值小于写入默认额外值,这是因为SSD缓存更适合作为读缓存。最终的升级限值会判断读写情况,其值为升级基本限值和读写默认额外值的总和,只有命中计数大于该值的数据块才会被缓存至SSD缓存中;
模块5)数据迁移模块,负责将数据块从HDD拷贝至SSD缓存中;
模块6)命中计数调整模块,负责所有命中的数据块的命中计数的调整,是一个单独的线程,由用户指定时间进行,一般情况下选择业务少的时间进行,因为数据块的命中计数只会增加,因此该模块会动态的减少缓存数据队列和候选升级队列中数据块的命中计数,减少值为候选升级队列所有数据块的平均命中数,数据块命中计数调整值计算公式为当前命中计数-减少值,若所计算结果小于等于O,则将该数据块的命中计数调整为1,保证命中计数的合理性。
[0008]所述架构数据选择性升级整体流程如下:
1、当有读写IO到来,调用模块I)查询该读写IO对应的数据块是否在SSD缓存中,若存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零,说明该数据块有可能需要升级,需要调用模块2);
2、模块2)会根据读写IO对应的数据块在候选升级队列中查询是否存在,查询结束后会调用模块3)根据返回结果作相应处理;
3、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为I ;若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
4、模块3)判断该数据块是否该升级,若该数据块的命中计数小于升级限值,则将该数据块的命中计数加一并重新入队;若该数据块的命中计数大于等于升级限值,则将该数据块的命中计数加一,并调用模块5);
5、模块4)计算此时的升级基本限值,并判断该读写IO的类型,若为读操作,则返回升级基本限值和读取默认额外值的总和,并调用模块3);若为写操作,则返回升级基本限值和写入默认额外值的总和,并调用模块3);
6、模块5)完成数据迁移,并将该数据块从候选升级队列删除,加入至缓存数据队列中。
[0009]根据SSD缓存的实时情况动态调整升级限值,实现SSD缓存数据的选择性升级,从而保证将存储系统最热点的数据缓存至SSD缓存中,避免SSD空间的浪费,高效的利用SSD缓存空间。
[0010]本发明的有益效果为:
采用本发明的系统架构,能够保证SSD缓存数据的选择性升级,高效缓存数据,满足用户对高性能存储系统的诉求。实现SSD缓存数据的选择性升级,根据SSD缓存的实时情况动态调整升级限值,延缓数据进入SSD缓存,大幅度减少SSD的写入量,保证缓存中的数据就是最热点的数据,延长SSD的寿命,保证SSD缓存空间的高效利用,整体提高存储系统性倉泛。
[0011]因此采用此系统架构,能够高效、智能的实现存储系统SSD缓存数据的选择性升级。
【专利附图】
【附图说明】
[0012]图1为本发明数据选择性升级整体流程示意图;
图2为候选升级数据处理流程示意图;
图3为命中计数调整流程示意图。
【具体实施方式】
[0013]下面参照附图,通过【具体实施方式】对本发明进一步说明:
本发明实施方案简单,只需要在LINUX内核中安装本发明的系统模块程序即可。根据本发明,SSD缓存系统能够自动实现缓存数据的选择性升级,当存储系统需要升级缓存数据时,SSD缓存系统会智能的进行数据迁移操作,将数据从HDD拷贝至SSD缓存中,满足SSD缓存系统的数据选择性升级特性。
[0014]一种实现存储系统SSD缓存数据选择性升级的系统架构,该系统架构支持在不同的操作系统,实现SSD缓存数据的选择性升级。该系统架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标;
该系统包括:I)缓存数据查询模块;2)候选升级数据查询模块;3)候选升级数据处理模块;4)升级限值统计模块;5)数据迁移模块;6)命中计数调整模块,其中:
模块I)缓存数据查询模块,负责在缓存数据队列中查询所给数据块是否存在,如果存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零;
模块2)候选升级数据查询模块,负责在候选升级队列中查询所给数据块是否存在,如果存在,返回所给数据块的命中计数;若不存在,返回零;
模块3)候选升级数据处理模块,负责候选升级所给数据块命中计数增加并重新入队的操作;
模块4)升级限值统计模块,统计升级限值,首先计算缓存数据队列中所缓存的所有数据块的平均命中数,计算公式为升级基本限值=数据块的命中总数/数据块的个数,升级基本限值是一个动态改变的值,做为数据升级的依据,此外,升级限值针对读取和写入分别有一个默认额外值,读取默认额外值小于写入默认额外值,这是因为SSD缓存更适合作为读缓存。最终的升级限值会判断读写情况,其值为升级基本限值和读写默认额外值的总和,只有命中计数大于该值的数据块才会被缓存至SSD缓存中;
模块5)数据迁移模块,负责将数据块从HDD拷贝至SSD缓存中;
模块6)命中计数调整模块,负责所有命中的数据块的命中计数的调整,是一个单独的线程,由用户指定时间进行,一般情况下选择业务少的时间进行,因为数据块的命中计数只会增加,因此该模块会动态的减少缓存数据队列和候选升级队列中数据块的命中计数,减少值为候选升级队列所有数据块的平均命中数,数据块命中计数调整值计算公式为当前命中计数-减少值,若所计算结果小于等于O,则将该数据块的命中计数调整为I,保证命中计数的合理性。
[0015]如图1所示,所述架构数据选择性升级整体流程如下:
1、当有读写IO到来,调用模块I)查询该读写IO对应的数据块是否在SSD缓存中,若存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零,说明该数据块有可能需要升级,需要调用模块2);
2、模块2)会根据读写IO对应的数据块在候选升级队列中查询是否存在,查询结束后会调用模块3)根据返回结果作相应处理;
3、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为I ;若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
4、模块3)判断该数据块是否该升级,若该数据块的命中计数小于升级限值,则将该数据块的命中计数加一并重新入队;若该数据块的命中计数大于等于升级限值,则将该数据块的命中计数加一,并调用模块5);
5、模块4)计算此时的升级基本限值,并判断该读写IO的类型,若为读操作,则返回升级基本限值和读取默认额外值的总和,并调用模块3);若为写操作,则返回升级基本限值和写入默认额外值的总和,并调用模块3);
6、模块5)完成数据迁移,并将该数据块从候选升级队列删除,加入至缓存数据队列中。
[0016]根据SSD缓存的实时情况动态调整升级限值,实现SSD缓存数据的选择性升级,从而保证将存储系统最热点的数据缓存至SSD缓存中,避免SSD空间的浪费,高效的利用SSD缓存空间。
[0017]如图2所示,候选升级数据处理流程为:
1、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为I ;
2、若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值;
3、比较命中数与升级限值,如果命中数小于或等于升级限值,则讲该数据块的命中数加一并重新入队;
4、如果命中数大于升级限值,则将该数据块的命中数加一,并调用数据迁移模块5)。
[0018]如图3所示,命中计数调整流程为:
1、模块6)获取候选升级队列所有数据块的平均命中数;
2、顺序取出缓存数据队列中节点,减少该节点命中数并重新入队;
3、判断是否全部调整完毕,如否,则重复上一步骤;
4、如全部调整完毕,则顺序取出候选升级队列中节点;
5、判断节点命中计数减去平均命中是否小于1,如是,则令该节点命中计数等于I并重新入队;
6、如否,则减少该节点命中数并重新入队;7、判断是否全部调整完毕,如否,则返回步骤4;
8、如全部调整完毕,流程完成。
【权利要求】
1.一种实现存储系统SSD缓存数据选择性升级的系统架构,其特征在于:该系统架构采用数据选择性升级算法,将初次命中的数据块保存在一个名为候选升级队列的队列中,利用追踪每个候选升级队列中命中块的命中计数,当达到升级限值时,才会将命中的数据块从HDD硬盘缓存至SSD缓存中,从而实现延迟缓存数据,减少写操作,延长SSD寿命的目标; 该系统包括:I)缓存数据查询模块;2)候选升级数据查询模块;3)候选升级数据处理模块;4)升级限值统计模块;5)数据迁移模块;6)命中计数调整模块,其中: 模块I)缓存数据查询模块,负责在缓存数据队列中查询所给数据块是否存在,如果存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零; 模块2)候选升级数据查询模块,负责在候选升级队列中查询所给数据块是否存在,如果存在,返回所给数据块的命中计数;若不存在,返回零; 模块3)候选升级数据处理模块,负责候选升级所给数据块命中计数增加并重新入队的操作; 模块4)升级限值统计模块,统计升级限值,首先计算缓存数据队列中所缓存的所有数据块的平均命中数,计算公式为升级基本限值=数据块的命中总数/数据块的个数,升级基本限值是一个动态改变的值,做为数据升级的依据,此外,升级限值针对读取和写入分别有一个默认额外值,读取默认额外值小于写入默认额外值,最终的升级限值会判断读写情况,其值为升级基本限值和读写默认额外值的总和,只有命中计数大于该值的数据块才会被缓存至SSD缓存中; 模块5)数据迁移模块,负责将数据块从HDD拷贝至SSD缓存中; 模块6)命中计数调整模块,负责所有命中的数据块的命中计数的调整,是一个单独的线程,由用户指定时间进行,数据块命中`计数调整值计算公式为当前命中计数-减少值,若所计算结果小于等于O,则将该数据块的命中计数调整为1,保证命中计数的合理性。
2.根据权利要求1所述的一种实现存储系统SSD缓存数据选择性升级的系统架构,其特征在于,所述架构数据选择性升级整体流程如下: a、当有读写IO到来,调用模块I)查询该读写IO对应的数据块是否在SSD缓存中,若存在,直接返回数据块在SSD缓存中的位置;若不存在,返回零,说明该数据块有可能需要升级,需要调用模块2); b、模块2)会根据读写IO对应的数据块在候选升级队列中查询是否存在,查询结束后会调用模块3)根据返回结果作相应处理; C、模块3)根据模块2)返回结果,若返回零,说明该数据块之前未命中过,要将该数据块加入到候选升级队列中,并将命中计数记为I ;若返回非零,说明该数据块被命中过,返回值为该数据块的命中计数,并调用模块4)获取升级限值; d、模块3)判断该数据块是否该升级,若该数据块的命中计数小于升级限值,则将该数据块的命中计数加一并重新入队;若该数据块的命中计数大于等于升级限值,则将该数据块的命中计数加一,并调用模块5); e、模块4)计算此时的升级基本限值,并判断该读写IO的类型,若为读操作,则返回升级基本限值和读取默认额外值的总和,并调用模块3);若为写操作,则返回升级基本限值和写入默认额外值的总和,并调用模块3);f、模块5)完成数据迁移,并将该数据块从候选升级队列删除,加入至缓存数据队列中。
3.根据权利要求1所述的一种实现存储系统SSD缓存数据选择性升级的系统架构,其特征在于:根据SSD缓 存的实时情况动态调整升级限值,实现SSD缓存数据的选择性升级。
【文档编号】G06F3/06GK103744624SQ201410011514
【公开日】2014年4月23日 申请日期:2014年1月10日 优先权日:2014年1月10日
【发明者】温源 申请人:浪潮电子信息产业股份有限公司