本发明专利技术公开了一种高效利用固态盘缓存的方法,包括:将固态盘和机械式磁盘两种不同的设备构造成一个统一的混合逻辑设备,在设备映射层目标设备的内存中初始化一段空间作为“未命中窗口”,在机械式磁盘上设置一个很小的日志区域,用于缓存到达磁盘上的小写请求,将固态盘的缓存空间中划分为多个组,接收来自于用户的请求,并判断该请求是读请求还是写请求,根据读请求对应的访问地址计算该读请求在固态盘的缓存空间中对应的缓存组号,在计算得到的缓存组号对应的缓存组内查找是否存在该读请求对应的数据块。本发明专利技术通过“双阈值”法对到达的请求序列进行检测,为用户提供一个透明的高性能、大容量、低功耗的块级设备。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种高效利用固态盘缓存的方法,包括:将固态盘和机械式磁盘两种不同的设备构造成一个统一的混合逻辑设备,在设备映射层目标设备的内存中初始化一段空间作为“未命中窗口”,在机械式磁盘上设置一个很小的日志区域,用于缓存到达磁盘上的小写请求,将固态盘的缓存空间中划分为多个组,接收来自于用户的请求,并判断该请求是读请求还是写请求,根据读请求对应的访问地址计算该读请求在固态盘的缓存空间中对应的缓存组号,在计算得到的缓存组号对应的缓存组内查找是否存在该读请求对应的数据块。本专利技术通过“双阈值”法对到达的请求序列进行检测,为用户提供一个透明的高性能、大容量、低功耗的块级设备。【专利说明】一种高效利用固态盘缓存的方法和系统
本专利技术属于计算机数据存储领域,更具体地,涉及一种高效利用固态盘缓存的方法和系统。
技术介绍
固态盘技术的日益成熟在一定程度上为解决计算机系统中的I/O瓶颈问题提供了潜在的解决方案。固态盘在性能,尤其随机访问性能,能耗等方面都要远远优于机械式磁盘。其数据访问所需要的操作时间往往只需要几十微秒(TS),比机械式磁盘的毫秒(ms)级访问时间要快一到两个数量级。而且固态盘内能耗也远远小于机械式磁盘的能耗。固态盘已经被用于构建一些高性能计算环境下的存储系统。然而固态盘也有其使用上的缺陷和限制。它的随机写性能,尤其是随机小写性能,在某些情况下甚至比机械式磁盘的性能还要差。它的总体性能会随着使用时间而不断地下降,而且只具有有限的擦写次数寿命,价格也比机械式磁盘高出许多。因此从容量、长期可靠性、成本角度考虑,完全基于固态盘构建大规模存储系统在目前的技术条件下将不能获得最优的性价比。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种高效利用固态盘缓存的方法和系统,其目的在于通过将固态盘和机械式磁盘两种不同的设备构造成一个统一的设备映射层目标设备,以机械式磁盘的成本获得固态盘级的性能,在性能和成本之间找到一个最优的平衡点。为实现上述目的,按照本专利技术的一个方面,提供了高效利用固态盘缓存的方法,包括以下步骤:(I)构造一个由固态盘和机械式磁盘混合组成的设备映射层目标设备,在设备映射层目标设备的内存中初始化一段空间作为“未命中窗口”,用于存放读操作未命中记录项,在机械式磁盘上设置一个日志区域;(2)将固态盘的缓存空间中划分为多个组,分组的数量NS为存储空间中数据块的总数除以2N,其中N为8至10之间的正整数;(3)接收来自于用户的请求,并判断该请求是读请求还是写请求,如果是读请求,则进入步骤(4),如果是写请求,则进入步骤(11);(4)根据读请求对应的访问地址计算该读请求在固态盘的缓存空间中对应的缓存组号set= (dbn/B/2N) %NS,其中,dbn表示读请求对应的访问地址扇区号,B表示固态盘的每个数据块包含的扇区个数;(5)在计算得到的缓存组号对应的缓存组内查找是否存在该读请求对应的数据块,若存在对应的数据块,则转步骤(6),否则转步骤(7);(6)直接从固态盘上读取数据,然后过程结束;(7)检查固态盘的缓存空间中是否存在与该读请求对应的地址空间重合的数据块,若存在则转步骤(8),否则转步骤(9)。(8)将重合的数据块同步写回机械式磁盘,从该机械式磁盘中读取该读请求对应的地址空间中的数据,然后过程结束;(9)从该机械式磁盘中读取该读请求对应的地址空间中的数据,并将读操作未命中的记录项添加到“未命中窗口”中;(10)判断未命中窗口中读操作未命中的次数是否达到一阈值,若达到,则将该记录项对应的数据块从机械式磁盘迁移到固态盘对应组内,否则过程结束;(11)将写请求的大小与低阈值Thresholdlow和高阈值Thresholdhigh进行比较,若其小于低阈值Thresholdlow,则转步骤(12),若大于低阈值Thresholdlow但小于高阈值Thresholdhigh,则表示写操作命中,然后转步骤(15),若大于高阈值Thresholdhigh,则表示写操作未命中,然后转步骤(18);(12)判断磁盘上日志区域的剩余空间是否大于该小写请求所需要的空间,若大于则转步骤(13),否则转步骤(14);(13)将该写请求的内容写入到机械式磁盘上的日志区域,过程结束;(14)将机械式磁盘上的日志区域上缓存的数据块全部写回机械式磁盘,返回步骤(13);(15)根据写请求对应的访问地址计算该写请求在固态盘的缓存空间中对应的缓存组号,并判断该缓存组内的剩余空间是否大于写请求所需要的空间,若大于则转步骤(16),否则转步骤(17);(16)将写请求对应的数据块写入计算得到的缓存组号对应的缓存组内的剩余缓冲空间中,然后过程结束;(17)根据缓存替换算法将该缓存组中最近未被访问的数据块写回机械式磁盘,并释放该数据块在缓存空间中占用的空间,然后返回步骤(14);(18)检查固态盘的缓存空间以及机械式磁盘上的日志区域中是否存在与该写请求对应的地址空间重合的数据块,若存在则转步骤(19),否则转步骤(20);(19)将重合的数据块同步写回机械式磁盘,将该写请求对应的数据写入机械式磁盘中,然后过程结束;(20)将该写请求对应的数据写入机械式磁盘中,然后过程结束。优选地,低阈值Thresholdlow的取值范围是I至6之间的整数,高阈值Thresholdhigh的取值范围是6至10之间的整数优选地,日志区域为机械式磁盘空间大小的5%至10%,并用于缓存到达磁盘上的小写请求,其中当写请求的大小小于低阈值Thresholdlow时,该写请求是小写请求,当写请求的大小大于高阈值Thresholdhigh时,该写请求是大写请求。优选地,步骤(9)中的记录项中包括该读操作对应的数据块的地址和未命中的次数。优选地,缓存替换算法为LRU或FIFO算法。按照本专利技术的另一个方面,提供了一种高效利用固态盘缓存的系统,包括:第一模块,用于构造一个由固态盘和机械式磁盘混合组成的设备映射层目标设备,在设备映射层目标设备的内存中初始化一段空间作为“未命中窗口”,用于存放读操作未命中记录项,在机械式磁盘上设置一个日志区域;第二模块,用于将固态盘的缓存空间中划分为多个组,分组的数量NS为存储空间中数据块的总数除以2N,其中N为8至10之间的正整数;第三模块,用于接收来自于用户的请求,并判断该请求是读请求还是写请求,如果是读请求,则进入第四模块,如果是写请求,则进入第十一模块;第四模块,用于根据读请求对应的访问地址计算该读请求在固态盘的缓存空间中对应的缓存组号set= (dbn/B/2N)%NS,其中,dbn表示读请求对应的访问地址扇区号,B表示固态盘的每个数据块包含的扇区个数;第五模块,用于在计算得到的缓存组号对应的缓存组内查找是否存在该读请求对应的数据块,若存在对应的数据块,则转第六模块,否则转第七模块;第六模块,用于直接从固态盘上读取数据,然后过程结束;第七模块,用于检查固态盘的缓存空间中是否存在与该读请求对应的地址空间重合的数据块,若存在则转第八模块,否则转第九模块。第八模块,用于将重合的数据块同步写回机械式磁盘,从该机械式磁盘中读取该读请求对应的地址空间中的数据,然后过程结束;第九模块,用于从该机械式磁盘中读取该读本文档来自技高网...
【技术保护点】
一种高效利用固态盘缓存的方法,其特征在于,包括以下步骤: (1)构造一个由固态盘和机械式磁盘混合组成的设备映射层目标设备,在设备映射层目标设备的内存中初始化一段空间作为“未命中窗口”,用于存放读操作未命中记录项,在机械式磁盘上设置一个日志区域; (2)将固态盘的缓存空间中划分为多个组,分组的数量NS为存储空间中数据块的总数除以2N,其中N为8至10之间的正整数; (3)接收来自于用户的请求,并判断该请求是读请求还是写请求,如果是读请求,则进入步骤(4),如果是写请求,则进入步骤(11); (4)根据读请求对应的访问地址计算该读请求在固态盘的缓存空间中对应的缓存组号set=(dbn/B/2N)%NS,其中,dbn表示读请求对应的访问地址扇区号,B表示固态盘的每个数据块包含的扇区个数; (5)在计算得到的缓存组号对应的缓存组内查找是否存在该读请求对应的数据块,若存在对应的数据块,则转步骤(6),否则转步骤(7); (6)直接从固态盘上读取数据,然后过程结束; (7)检查固态盘的缓存空间中是否存在与该读请求对应的地址空间重合的数据块,若存在则转步骤(8),否则转步骤(9)。 (8)将重合的数据块同步写回机械式磁盘,从该机械式磁盘中读取该读请求对应的地址空间中的数据,然后过程结束; (9)从该机械式磁盘中读取该读请求对应的地址空间中的数据,并将读操作未命中的记录项添加到“未命中窗口”中; (10)判断未命中窗口中读操作未命中的次数是否达到一阈值,若达到,则将该记录项对应的数据块从机械式磁盘迁移到固态盘对应组内,否则过程结束; (11)将写请求的大小与低阈值Thresholdlow和高阈值 Thresholdhigh进行比较,若其小于低阈值Thresholdlow,则转步骤(12),若大于低阈值Thresholdlow但小于高阈值Thresholdhigh,则表示写操作命中,然后转步骤(15),若大于高阈值Thresholdhigh,则表示写操作未命中,然后转步骤(18); (12)判断磁盘上日志区域的剩余空间是否大于该小写请求所需要的空间,若大于则转步骤(13),否则转步骤(14); (13)将该写请求的内容写入到机械式磁盘上的日志区域,过程结束; (14)将机械式磁盘上的日志区域上缓存的数据块全部写回机械式磁盘,返回步骤(13); (15)根据写请求对应的访问地址计算该写请求在固态盘的缓存空间中对应的缓存组号,并判断该缓存组内的剩余空间是否大于写请求所需要的空间,若大于则转步骤(16),否则转步骤(17); (16)将写请求对应的数据块写入计算得到的缓存组号对应的缓存组内的剩余缓冲空间中,然后过程结束; (17)根据缓存替换算法将该缓存组中最近未被访问的数据块写回机械式磁盘,并释放该数据块在缓存空间中占用的空间,然后返回步骤(14); (18)检查固态盘的缓存空间以及机械式磁盘上的日志区域中是否存在与该写请求对应的地址空间重合的数据块,若存在则转步骤(19),否则转步骤(20); (19)将重合的数据块同步写回机械式磁盘,将该写请求对应的数据写入机械式磁盘中,然后过程结束; (20)将该写请求对应的数据写入机械式磁盘中,然后过程结束。...
【技术特征摘要】
【专利技术属性】
技术研发人员:周可,李春花,万广平,王桦,黄平,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。