一种提高存储系统数据访问速度的方法

文档序号:6381411阅读:403来源:国知局
专利名称:一种提高存储系统数据访问速度的方法
技术领域
本申请涉及计算机数据存储技术领域,尤其涉及一种提高存储系统数据访问速度的方法。
背景技术
自从计算机发明以来,几十年间取得飞速发展,其计算能力呈几何级增长。伴随着计算能力的发展,存储技术无论是在容量还是在速度方面也得到了空前进步,存储介质从磁带、软盘发展到机械硬盘以及固态硬盘。目前大容量数据存储的主流介质还是机械硬盘,但机械磁盘总会有其难以突破的物理极限,用户不但要面对大规模数据存储的问题,同时又要保证数据的访问及时有效。因此用户常常面临速度与容量之间的取舍。从计算机结构上来看,数据存储的位置在逻辑上距离CPU越远,数据访问速度越慢。并且不同级之间的设备的访问速度的差距可以达到几个数量级的区别。内存的访问速度是纳秒级,而磁盘访问速度则为毫秒级。因此在内存与磁盘之间,还有巨大的性能提升空间。存储生产厂商也在不断提高着机械磁盘的转速及存储密度来加大数据容量的同时提高数据的访问性能。提高数据存储介质的访问速度,可以有多种办法。例如,可以使用更加高端的存储介质,如用高转速的机械磁盘或固态磁盘(SSD)替换低转速的机械硬盘;或者,增加系统的内存量,通过操作系统自身的磁盘缓冲技术来加快数据的访问。将所有数据存储在这样的高速介质中,固然是一个解决数据访问速度的直接有效的方案。但是在数据量的总量很大的情况下,完全采用高端磁盘,其增加的成本将会出现几倍,甚至是几十倍的增长。除非对一些关键应用,否则这样的存储方案其性价比是得不偿失的,在预算有限的情况下,用户也无法承受这样的成本压力。

发明内容
本申请提供了一种提高存储系统数据访问速度的方法,可以在保证成本不大幅上升的前提下,使存储系统有更高的数据吞吐量。本申请实施例提供的一种提高存储系统数据访问速度的方法,包括A、将源介质和缓存介质在逻辑上分别分成相同等份的存储空间,每一份存储空间称为一个映射页;在内存中建立一个用于记录源介质的映射页与缓存介质的映射页之间数据的存储映射关系的重定向表,该重定向表初始为空;所述缓存介质的存取速度大于源介质的存取速度;B、对文件系统提交到源介质的所有请求进行监控,并判断对源介质的请求是读请求还是写请求,若是读请求,执行步骤C ;若是写请求,执行步骤F ;C、从读请求中提取读取的位置,根据这个位置数据计算其所落入的映射页的编号中,并使用这个编号在重定向表中进行查询是否有相应的映射表项存在,若存在,执行步骤D,否则执行步骤E ;
D、根据重定向表将该读请求定向到缓存介质的映射页中,完成本次读操作后返回步骤B ;E、将读请求所落入的映射页的数据从源介质读取并写入到缓存介质,并建立相应的映射表项插入到重定向表中,使重定向表反映当前源介质与缓存介质的数据的存储映射关系,并将读请求所要求的数据返回文件系统;然后返回步骤B ;F、根据写请求将数据写入到源介质的相应的位置,并返回步骤B。较佳地,源介质和缓存介质上的每一个映射页的大小均相等。较佳地,映射页大小为2的幂次方字节,最小为16KB,最大为2048KB。较佳地,缓存介质的容量大小为源介质容量大小的5-20%。较佳地,步骤A进一步包括指定缓存介质的剩余可用空间的临界值;步骤E之后进一步包括判断缓存介质中的剩余可用空间是否少于临界值,若是,启动空间回收过程,使得回收空间与剩余可用空间的总和大于2倍所述临界值,否则直接返回步骤B。较佳地,步骤D进一步包括将所述缓存介质的映射页的使用频率加I ;步骤E所述建立相应的映射表项并插入到重定向表中包括将该新分配的映射页的使用频率设置为I,减少一页缓存介质的可用空间;所述空间回收过程包括El、取得使用频率值最小的映射页,并将映射页从重定向表中删除,增加I页缓存介质的可用空间,同时增加I页本次总共回收空间;E2、判断总共回收空间是否大于等于回收目标值,若是则完成空间回收过程,否则返回步骤E1。较佳地,回收目标值设置为临界值的2倍。较佳地,所述临界值为缓存介质存储容量的1%_5%。从以上技术方案可以看出,通过捕获向低速存储介质发起的所有输入输出请求,并将这些输入输出请求根据访问情况重定向到高速存储介质上,进而达到提高存储系统数据访问速度的目的。


图I为本申请提供的提高存储系统数据访问速度的方法流程图;图2为本申请实施例提供的对存储系统进行加速的流程图;图3为本申请实施例提供的提高存储系统数据访问速度的方法流程图。
具体实施例方式对于保存在存储介质中的所有数据,根据数据局部性原理,并不是所有数据被使用的频率及可能性都是相同的。正如内存中的数据相对于CPU缓存一样,通过CPU —二级缓存将常用数据存储在高速缓存中,使得计算性能得到大幅提高。在存储系统中,实际的情况与内存类似,也是一部分数据被使用得很频繁(我们称这部分的数据为热数据),而另一部分数据使用得较少甚至是访问一次后就不再被使用(我们称这部份数据为冷数据)。而根据计算机科学中的局部性原理,被访问数据及其附近的数据将来被访问到的可能性要比其他位置的数据高。特别是从文件系统的设计来看,文件系统的实现都倾向于在空间上进行连续分配并将数据存储在这些连续的空间中。在机械磁盘中,数据访问的最大一部份时间消耗在数据寻址过程当中。受益于数据局部性原理及文件系统数据上安排的连续性,如果将热数据放在高速存储介质上,冷数据放在低速存储介质上,那么只要少许的成本投入就可以取得存储性能上的明显提升。本申请提供一种提高存储系统数据访问速度的方法,通过捕获向低速存储介质发起的所有输入输出请求,并将这些输入输出请求根据访问情况重定向到高速存储介质上,进而达到提高存储系统数据访问速度的目的。以下将被加速的低速存储介质称为源介质,而高速存储介质称为缓存介质。高速存储介质的容量要远小了源介质的容量,一般选择其容量为源介质容量大小的5-20%之间。该方法的流程如图I所示,包括如下步骤步骤101 :将源介质和缓存介质在逻辑上分别分成相同等份的存储空间,每一份存储空间称为映射页;源介质和缓存介质上的每一个映射页的大小均相等。在内存中建立一个用于记录源介质与缓存介质之间数据的存储映射关系的重定向表,该重定向表初始为空。映射页大小可设置为2的幂次方字节大小,最小为16KB,最大为2048KB,并且相邻页大小呈 2 的倍数递增,即分别为 16KB、32KB、64KB、128KB、256KB、512KB、1024KB、2048KB,映射页一旦固定,将不得改变。映射页都是从介质的开始位置按自然数顺序进行编号。在计算机系统中,一次读写的数据单位一般最大为4KB,因此分页的处理方式,可以扩大预读的范围,从而减少源介质与缓存介质之间数据迁移的次数,也就是减少了读写操作的次数,因此这会导致重定向表的命中率等比例提高,并且因为IO次数变少,相应的读写数据的时间就少,提高了存储系统的总体性能。步骤102 :对文件系统提交到源介质的所有请求进行监控。步骤103 :判断监控到的对源介质的请求是读请求还是写请求,若是读请求,执行步骤104,若是写请求,执行步骤107。对于数据的第一次访问,无论是读或者写,那么这个数据则极有可能在不久的将来被再次访问。针对输入输出两种不同类型的数据访问方式,需要采用不同执行策略。步骤104 :从读请求中提取读取的位置,并根据这个位置数据计算其所落入的映射页的编号中,并使用这个编号在重定向表中进行查询是否有相应的映射表项存在,若是,执行步骤105,否则执行步骤106。步骤105 :根据重定向表将该读请求定向到缓存介质中,完成本次读操作后返回步骤102。步骤106 :将读请求所落入的映射页的数据从源介质读取并写入到缓存介质,并建立相应的映射表项,插入到重定向表中,使重定向表反映当前源介质与缓存介质的数据的存储映射关系,并将读请求所要求的数据返回文件系统。然后返回步骤102。步骤107 :根据写请求将数据写入到源介质的相应位置,并返回步骤102。为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。本申请实施例提供的对存储系统进行加速的初始设置如图2所示,包括
步骤201 :在存储系统中附加一块高速磁盘作为缓存介质。步骤202 向监控系统发送ST_BINDING命令,并且将源介质与缓存介质标识传递给监控模块,由监控模块完成源介质与缓存介质之间绑定关系的创建及其初始化。步骤203 :在内存中生成一个空的重定向表与这个绑定关系进行关联。步骤204 :指定缓存介质的剩余可用空间的临界值。临界值的存在,是为了在缓存介质的剩余可用空间不足时,提供一个缓冲区间,以启动空间回收程序,使得回收空间与剩余可用空间的总和大于所述临界值则结束该空间回收程序。如果没有这个缓冲区间,当缓存空间不足时,为了腾出可用空间,需要冻结源介质的访问。这对于系统的性能是一种伤害。较佳地,临界值取为I%_5%。经过上述初始设置后,可以执行如图3所示的提高存储系统数据访问速度的方法流程步骤301 :监控发向源介质的输入输出请求。步骤302 :判断监控到的当前请求是否为写请求,若是,执行步骤310,否则执行步骤 303。步骤303 :提取写请求的数据的位置,并计算其所落入的映射页的编号,并利用此编号在重定向表中查找该映射页。步骤304 :判断在重定向表中是否存在相应的映射页,若是,执行步骤305,否则执行步骤306。步骤305 :根据该映射页中的目标编号,将请求重定向到缓存介质的映射页中,并将该映射页的使用频率加1,然后返回步骤301。步骤306 :执行到此,说明数据不存在缓存介质中。首先根据映射页编号将源介质中该映射页的数据读取出来,将读请求所需要的数据返回给文件系统。步骤307 :在缓存介质中分配一个映射页,并且将从源介质读取出来的一页数据写入缓存介质中新分配的映射页当中,然后向重定向表中增加本映射关系表项,并将该新分配的映射页的使用频率设置为I,减少一页缓存介质的可用空间。步骤308 :判断缓存介质中的剩余可用空间是否少于临界值,如果是执行步骤309,否则直接返回步骤301。步骤309 :启动空间回收过程,包括步骤309-a、取得使用频率值最小的映射页,并将映射页从重定向表中删除。步骤309-b、增加I页缓存介质的可用空间,同时增加I页本次总共回收空间。步骤309-c、判断总共回收空间大于等于回收目标值,则完成空间回收过程,否则返回步骤309a继续回收。其中,回收目标值可以设置为临界值的2倍。步骤310 :直接使请求发往源介质即可,然后返回步骤301。通过本申请提供的方法,可以达到如下的效果I.缩短存储系统的读取操作时间,也就是加快了访问速度。由于热数据直接从缓存介质读取,这样越是被频繁访问的数据,其性能提升就越是明显。2.由于缓存介质的容量远小于源介质,所以在少量增加设备成本的情况下,就能明显提高存储介质访问速度,从而能够满足更高性能及吞吐量的应用的要求。3.在处理读写操作时,由于是采用的各种分页的方式处理,所以可以根据不同系统的对数据的处理方式选择不同的映射页大小,可以最优地配置。如增大映射页的大小,则可以使产生IO次数减少,并且增大重定向表的命中率,从而在整体上提高了存储系统的性能,使得加速性能更加有效。
4.由于数据的读写操作的重定向是自动发生的,对于原有的使用源介质的程序没有影响,因此不需要对这些程序做任何变动就能够应用本申请的技术。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
权利要求
1.ー种提高存储系统数据访问速度的方法,其特征在于,包括 A、将源介质和缓存介质在逻辑上分別分成相同等份的存储空间,每ー份存储空间称为ー个映射页在内存中建立一个用于记录源介质的映射页与缓存介质的映射页之间数据的存储映射关系的重定向表,该重定向表初始为空;所述缓存介质的存取速度大于源介质的存取速度; B、对文件系统提交到源介质的所有请求进行监控,并判断对源介质的请求是读请求还是写请求,若是读请求,执行步骤C ;若是写请求,执行步骤F ; C、从读请求中提取读取的位置,根据这个位置数据计算其所落入的映射页的编号中,并使用这个编号在重定向表中进行查询是否有相应的映射表项存在,若存在,执行步骤D,否则执行步骤E ; D、根据重定向表将该读请求定向到缓存介质的映射页中,完成本次读操作后返回步骤B ; E、将读请求所落入的映射页的数据从源介质读取并写入到缓存介质,并建立相应的映射表项插入到重定向表中,使重定向表反映当前源介质与缓存介质的数据的存储映射关系,并将读请求所要求的数据返回文件系统;然后返回步骤B ; F、根据写请求将数据写入到源介质的相应的位置,并返回步骤B。
2.根据权利要求I所述的方法,其特征在于,源介质和缓存介质上的每ー个映射页的大小均相等。
3.根据权利要求I所述的方法,其特征在干,映射页大小为2的幂次方字节,最小为16KB,最大为 2048KB。
4.根据权利要求I所述的方法,其特征在于,缓存介质的容量大小为源介质容量大小的 5-20%ο
5.根据权利要求I所述的方法,其特征在于,步骤A进ー步包括指定缓存介质的剩余可用空间的临界值; 步骤E之后进ー步包括 判断缓存介质中的剰余可用空间是否少于临界值,若是,启动空间回收过程,使得回收空间与剩余可用空间的总和大于回收目标值,否则直接返回步骤B。
6.根据权利要求5所述的方法,其特征在干, 步骤D进ー步包括将所述缓存介质的映射页的使用频率加I ; 步骤E所述建立相应的映射表项并插入到重定向表中包括将该新分配的映射页的使用频率设置为1,减少ー页缓存介质的可用空间; 所述空间回收过程包括 E1、取得使用频率值最小的映射页,并将映射页从重定向表中删除,増加I页缓存介质的可用空间,同时增加I页本次总共回收空间; E2、判断总共回收空间是否大于等于回收目标值,若是则完成空间回收过程,否则返回步骤E1。
7.根据权利要求6所述的方法,其特征在干,回收目标值设置为临界值的2倍。
8.根据权利要求5至7任一项所述的方法,其特征在于,所述临界值为缓存介质存储容量的1%-5%。
全文摘要
本申请公开了一种提高存储系统数据访问速度的方法,通过捕获向低速存储介质发起的所有输入输出请求,并将这些输入输出请求根据访问情况重定向到高速存储介质上,进而达到提高存储系统数据访问速度的目的。
文档编号G06F12/08GK102981979SQ20121046098
公开日2013年3月20日 申请日期2012年11月15日 优先权日2012年11月15日
发明者叶佑群 申请人:上海爱数软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1