当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于实现基于SSD的I/O高速缓存的系统和方法技术方案

技术编号:13619790 阅读:86 留言:0更新日期:2016-08-31 09:29
用于将存储在第一存储装置上的数据块高速缓存到第二存储装置上的方法包括:确定请求的数据块是否包含第一类型的数据;在数据块包含第一类型的数据的条件下,将数据块写入第二存储装置;以及在数据块不包含第一类型的数据的条件下,确定第二存储装置上的对应映射块是否包含第一类型的数据,并且仅在对应映射块不包含第一类型的数据的条件下,将数据块写入第二存储装置。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于提高数据存储系统的输入/输出性能的现场方法和系统,并且更特定地涉及用于提高数据存储系统的输入/输出性能的基于固态驱动器的高速缓存的实现。
技术介绍
使用当代NAND-闪存固态驱动器(SSD)用于加速需要服务器工作负载(例如文件和邮件服务器、商业和科学数据分析)以及用于在线事务处理数据库正变得更寻常,因为由它们的成本和性能特性所产生的优于典型硬盘驱动器(HDD)的那些的优势取得成效。表1示出HDD vs. SSD的性能度量中的差异:SSD通过提供优于HDD的性能而具有减轻输入/输出(I/O)惩罚的可能性,即使以每千兆字节(GB)较高的成本也如此。另外,SSD承载复杂性警告,其与它们的内部组织和操作性质有关。因此,当前在数据存储系统中优选混合装置系统架构。在一个示例中,混合装置系统包括SSD作为HDD顶部上的高速缓存层,其中SSD的成本从吞吐量和访问速率两方面预期在增加的I/O性能上被摊销。近来,SSD作为HDD顶部上的高速缓存层的现有技术实现聚焦在如何使用SSD高速缓存来提高I/O性能上,其包括例如下列出版物。T.Kgil和T.Mudge在CASES’06. ACM pp.103-112中的“FlashCache: a NAND flash memory file cache for low power web servers”公开了使用闪速存储器作为对于web服务器的二次文件高速缓存。S.-W.Lee.Moon、C.Park、J.-M.Kim和S.-W.Kim在SIGMOD’08 ACM pp. 1075-1086中的“A case for flash memory ssd in enterprise database applications”公开了在事务处理中使用SSD的影响的分析。X.Ouyang、S.Marcarelli和D.K.Panda在IEEE SNAPI’10 pp.13-20中的“Enhancing Checkpoint Performance with Staging IO and SSD”公开了SSD如何在高效检查点中使用。H.J.Lee、K.H.Lee和S.H.Noh在HotPower’08. USENIXAssociation pp.12-12中的“Augmenting RAID with an SSD for energy relief”公开了SSD如何可以用作RAID设置顶部上的大的高速缓存来节省能量。这些现有技术方法的问题之一是它们是应用特定的并且需要应用知识、干预和调谐。另外,由这样的混合装置系统中的SSD与HDD之间的界面和关系产生的I/O瓶颈在试图实现通用方案时是个问题。这推动了现有
中目前已知的应用特定方案。因此,在现有技术中对解决上文标识的现有技术的问题中的一个或多个的高速缓存系统需要有改进。
技术实现思路
本专利技术的目标是解决上文标识的现有技术的关于使存储在HDD上的数据高速缓存到SSD的问题中的一个或多个,然而,本专利技术也可适用于其他类型的数据存储,并且优选地适用于其中数据存储的比较性能度量采用与在上文在HDD与SSD之间的比较中描述的类似的方式而彼此相对可比的其他类型的数据存储。在任何情况下,本专利技术的一些优势可能适用于所有高速缓存方法和系统。 根据本专利技术的一个实施例,提供有用于实施存储在第一存储装置上并且高速缓存到第二存储装置上的数据块的高速缓存写操作的方法。该方法包括以下步骤:(a)将第一存储装置的块映射到第二存储装置的块上;(b)拦截对于存储在第一存储装置上的数据块的请求;(c)确定请求的数据块是否包含文件系统元数据;(d)在数据块包含文件系统元数据的条件下,将数据块写入第二存储装置;(e)在数据块不包含文件系统元数据的条件下,确定第二存储装置上的对应映射块是否包含文件系统元数据;(f)在对应映射块包含文件系统元数据的条件下,中止高速缓存写操作;(g)在对应映射块不包含文件系统元数据的条件下,确定对应映射块是否包含比数据块的数据更高频度地被访问的数据;(h)在对应映射块包含比数据块上的数据更高频度地被访问的数据的条件下,中止高速缓存写操作;以及,(i)在对应映射块包含比数据块上的数据更低频度地被访问的数据的条件下,将数据块上的数据写入第二存储装置上的对应映射块。根据本专利技术的一个方面,第一存储装置是硬盘驱动器,并且在另一个方面中,第二存储装置是固态驱动器。根据该实施例的另一个方面,在第一存储装置与访问第一存储装置的文件系统之间的输入/输出路径中实施拦截步骤。优选地,拦截步骤由实现为文件系统与第一存储装置之间的虚拟块层的准入控制模块实施。根据本专利技术的另一个实施例,提供有用于将存储在第一存储装置上的数据块高速缓存到第二存储装置上的方法;该方法包括以下步骤:(a)将第一存储装置的块映射到第二存储装置的块上;(b)拦截对于存储在第一存储装置上的数据块的请求;(c)确定请求的数据块是否包含第一类型的数据;(d)在数据块包含第一类型的数据的条件下,将数据块写入第二存储装置;(e)在数据块不包含第一类型的数据的条件下,确定第二存储装置上的对应映射块是否包含第一类型的数据;(f)在对应映射块包含第一类型的数据的条件下,中止高速缓存写操作;(g)在对应映射块不包含第一类型的数据的条件下,将数据块上的数据写入第二存储装置上的对应映射块。为了更清楚起见,在该实施例的方法中标识的步骤不限于按规定的顺序。例如,映射步骤可在方法期间的任何点处重复来优化性能或重新分配数据高速缓存位点。根据该第二实施例的方面,在写数据之前,方法进一步包括以下步骤:(h)确定对应映射块是否包含第二类型的数据;(i)在对应映射块包含第二类型的数据的条件下,中止高速缓存写操作;(j)在对应映射块不包含第二类型的数据的条件下,执行数据块上的数据写入第二存储装置上的对应映射块。根据该第二实施例的另一个方面,第一类型的数据是文件系统元数据。根据该第二实施例的另一个方面,第二类型的数据是比数据块上的数据更高频度地被访问的数据。根据该第二实施例的另一个方面,第一存储装置是硬盘驱动器。根据该第二实施例的另一个方面,第二存储装置是固态驱动器。根据该第二实施例的另一个方面,在第一存储装置与访问第一存储装置的文件系统之间的输入/输出路径中实施拦截步骤。根据该第二实施例的另一个方面,由实现为文件系统与第一存储装置之间的虚拟块层的准入控制模块实施拦截步骤。根据本专利技术的第三实施例,提供有非暂时性计算机可读介质,其具有存储在其上来实施如本文描述的方法的计算机可读指令。根据本专利技术的第四实施例,提供有计算机系统,其包括:经由输入/输出路径与第一存储装置通信的文件系统;该输入/输出路径中的准入控制模块;和与该准入控制模块通信的第二存储装置。准入控制模块包括指令,用于(a)将第一存储装置的块映射到第二存储装置的块上;(b)拦截对于存储在第一存储装置上的数据块的请求;(c)确定请求的数据块是否包含第一类型的数据;(d)在数据块包含第一类型的数据的条件下,将数据块写入第二存储装置;(e)在数据块不包含第一类型的数据的条件下,确定第二存储装置上的对应映射块是否包含第一类型的数据;(f)在对应映射本文档来自技高网
...

【技术保护点】
一种用于实施存储在第一存储装置上并且高速缓存到第二存储装置的数据块的高速缓存写操作的方法;所述方法包括:(a)将所述第一存储装置的块映射到所述第二存储装置的块上;(b)拦截对于存储在所述第一存储装置上的所述数据块的请求;(c)确定请求的所述数据块是否包含文件系统元数据;(d)在所述数据块包含文件系统元数据的条件下,将所述数据块写入所述第二存储装置;(e)在所述数据块不包含文件系统元数据的条件下,确定所述第二存储装置上的对应映射块是否包含文件系统元数据;(f)在所述对应映射块包含文件系统元数据的条件下,中止高速缓存写操作;(g)在所述对应映射块不包含文件系统元数据的条件下,确定所述对应映射块是否包含比所述数据块上的数据更高频度地被访问的数据;(h)在所述对应映射块包含比所述数据块上的数据更高频度地被访问的数据的条件下,中止高速缓存写操作;(i)在所述对应映射块包含比所述数据块上的数据更低频度地被访问的数据的条件下,将所述数据块上的所述数据写入所述第二存储装置上的所述对应映射块。

【技术特征摘要】
【国外来华专利技术】1. 一种用于实施存储在第一存储装置上并且高速缓存到第二存储装置的数据块的高速缓存写操作的方法;所述方法包括:(a)将所述第一存储装置的块映射到所述第二存储装置的块上;(b)拦截对于存储在所述第一存储装置上的所述数据块的请求;(c)确定请求的所述数据块是否包含文件系统元数据;(d)在所述数据块包含文件系统元数据的条件下,将所述数据块写入所述第二存储装置;(e)在所述数据块不包含文件系统元数据的条件下,确定所述第二存储装置上的对应映射块是否包含文件系统元数据;(f)在所述对应映射块包含文件系统元数据的条件下,中止高速缓存写操作;(g)在所述对应映射块不包含文件系统元数据的条件下,确定所述对应映射块是否包含比所述数据块上的数据更高频度地被访问的数据;(h)在所述对应映射块包含比所述数据块上的数据更高频度地被访问的数据的条件下,中止高速缓存写操作;(i)在所述对应映射块包含比所述数据块上的数据更低频度地被访问的数据的条件下,将所述数据块上的所述数据写入所述第二存储装置上的所述对应映射块。2. 如权利要求1所述的方法,其中所述第一存储装置是硬盘驱动器。3. 如权利要求1或权利要求2所述的方法,其中所述第二存储装置是固态驱动器。4. 如权利要求1所述的方法,其中所述拦截步骤在所述第一存储装置与访问所述第一存储装置的文件系统之间的输入/输出路径中实施。5. 如权利要求4所述的方法,其中所述拦截步骤由实现为所述文件系统与所述第一存储装置之间的虚拟块层的准入控制模块实施。6. 一种用于将存储在第一存储装置上的数据块高速缓存到第二存储装置上的方法;所述方法包括以下步骤:(a)将所述第一存储装置的块映射到所述第二存储装置的块上;(b)拦截对于存储在所述第一存储装置上的所述数据块的请求;(c)确定请求的所述数据块是否包含第一类型的数据;(d)在所述数据块包含所述第一类型的数据的条件下,将所述数据块写入所述第二存储装置;(e)在所述数据块不包含所述第一类型的数据的条件下,确定所述第二存储装置上的对应映射块是否包含所述第一类型的数据;(f)在所述对应映射块包含所述第一类型的数据的条件下,中止高速缓存写操作;以及(g)在所述对应映射块不包含所述第一类型的数据的条件下,将所述数据块上的所述数据写入所述第二存储装置上的所述对应映射块。7. 如权利要求6所述的方法,其中在所述写所述数据之前,所述步骤(g)进一步包括以下步骤:(h)确定所述对应映射块是否包含第二类型的数据;(i)在所述对应映射块包含所述第二类型的数据的条件下,中止高速缓存写操作;以及(j)在所述对应映射块不包含所述第二类型的数据的条件下,执行所述数据块上的所述数据到所述第二存储装置上的所述对应映射块的所述写。8. 如权利要求6所述的方法,其中所述第一类型的数据是文件系统元数据。9. 如权利要求7所述的方法,其中所述第二类型的数据是比所述数据块上的数据更高频度地被...

【专利技术属性】
技术研发人员:A比拉斯MD弗罗里斯Y克罗纳托斯T马卡托斯M马拉扎基斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1