磁盘数据读取方法技术

技术编号:12476789 阅读:57 留言:0更新日期:2015-12-10 12:51
本发明专利技术提供了一种磁盘数据读取方法,该方法包括:用户通过服务器发送数据I/O请求,服务器向存储系统发送硬件命令,并由存储系统的两级缓存结构处理所述I/O请求。本发明专利技术提出了一种磁盘数据读取方法,通过改进缓存架构和读写流程,优化了缓存响应时间,适用于大规模存储系统的数据读取。

【技术实现步骤摘要】

本专利技术涉及数据存储,特别涉及一种。
技术介绍
随着信息技术的发展,计算系统越来越多地依赖于存储系统的性能。在以计算技术为中心的时代,数据量很少,I/O问题往往为人们所忽视,人们更加关注的是处理器与内存之间性能的差距。随着网络存储的发展,以计算为中心转变成了以数据为中心,海量数据依赖磁盘进行存储,I/o问题逐渐为人们所重视,处理器与磁盘之间的性能差距逐渐显现。由于访问磁盘数据的速度远远低于处理器计算的速度,I/o瓶颈成为阻碍系统性能的主要瓶颈。在一些面向服务的应用,如电子商务、搜索引擎、社交网络等,它们面对的是PB级的数据量,仅仅使用单级缓存已经不能满足它们的性能需求,经常使用多级缓存架构。近年来有很多管理多级缓存空间的解决方案被提出,而这些基于内存的多级缓存架构虽然能够有效地提高系统性能,但从价格和功耗角度却十分浪费,性价比并不高。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了一种,包括:用户通过服务器发送数据I/O请求,服务器向存储系统发送硬件命令,并由存储系统的两级缓存结构处理所述I/O请求。优选地,所述两级缓存结构包括第一级缓存和第二级缓存,其中将磁盘阵列的冗余控制器的内存作为第一级缓存,将固态盘作为第二级缓存,第一级缓存和第二级缓存之间将进行协同交互工作,构建完第二级缓存之后,多个应用程序同时使用第二级缓存,所述固态盘以块设备的形式工作,其上层组件,将固态盘看作块设备,用户利用所述固态盘创建池,并建立逻辑磁盘,然后进行分区和配置文件系统;所述池是使用一组磁盘驱动器按照RAID类型组成的逻辑存储池,所述逻辑磁盘是在池中建立的逻辑存储单元,在其上建立文件系统或应用程序;所述缓存结构在逻辑上包括重定位模块,数据分析模块和数据迀移模块;重定位模块维护一个映射表来记录缓存到固态盘上的块与磁盘阵列中块的对应关系;当有新的请求到达重定位模块时,先查找映射表,如果被请求的块在固态盘中,请求被重定向到固态盘,否则直接操作磁盘阵列,重定位模块还将I/O请求拦截并且转发到数据分析模块,数据分析模块收集I/O请求并且更新块表来描述负载访问模式,数据分析模块周期性地分析数据访问历史,判断哪些块应该被重定位到固态盘,并且请求数据迀移模块通过存储设备重新定位数据块,数据分析模块既能在内核态也能在用户态运行;数据迀移模块用于向块设备发出I/O命令并更新映射表来反映最新的映射变化。优选地,所述服务器向存储系统发送硬件命令,进一步包括:根据可写属性,构建不同数量的两级缓存逻辑磁盘,可写缓存容量等于控制器上内存的容量,将配置好的逻辑磁盘构建类型,发送至服务器,所述两级缓存支持构建RAIDl或10类型的缓存池,根据冗余性属性,计算池的容量,如果构建无冗余的两级缓存,那么两级缓存池的容量占用100% ;如果构建有冗余的两级缓存,那么两级缓存池的容量占用50%,每个磁盘阵列只创建一个两级缓存池;当实现两级缓存后,缓存到第一级缓存上的数据也能映射到第二级缓存,每个控制器都有一个映射表驻留在其第一级缓存,这个映射表的副本也保持在第二级缓存本身,第二级缓存映射表就是一个地址表,在32kB块中包含一个描述了第二级缓存中缓存数据的位置信息的索引,当第二级缓存配置第二级缓存池和三个逻辑磁盘的第二级缓存后,第一个逻辑磁盘为控制器0,第二个为控制器1,最后一个是指定一个可写区域;所述由存储系统的两级缓存结构处理I/O请求,进一步包括:当收到I/O请求时,根据I/O请求类型判断是读操作还是写操作,若为读操作,则查询第一级缓存,若命中则返回数据;若第一级缓存空间不足,将数据迀移至第二级缓存,若第一级缓存未命中,但第二级缓存命中,则将第二级缓存的数据返回第一级缓存,经由第一级缓存进行返回;若第一和第二级缓存均未命中,则读取磁盘阵列,取回数据并更新至第一级缓存;若I/o请求类型为写操作,则将脏数据写入第一级缓存,当脏页数达到阈值时,将第一级缓存的数据迀移至第二级缓存,第二级缓存按预定义写回策略将数据写回到磁盘阵列中;所述写回策略结合读写块大小和存储空间利用率两个因素,在写回状态下,数据只有在要被从缓存中清除时才写到磁盘上,写回需要从缓存中向磁盘上写数据,并把更新的数据写入缓存中。本专利技术相比现有技术,具有以下优点:本专利技术提出了一种,通过改进缓存架构和读写流程,优化了缓存响应时间,适用于大规模存储系统的数据读取。【附图说明】图1是根据本专利技术实施例的的流程图。【具体实施方式】下文与图示本专利技术原理的附图一起提供对本专利技术一个或者多个实施例的详细描述。结合这样的实施例描述本专利技术,但是本专利技术不限于任何实施例。本专利技术的范围仅由权利要求书限定,并且本专利技术涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本专利技术的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本专利技术。本专利技术的一方面提供了一种。图1是根据本专利技术实施例的流程图。本专利技术基于内存和固态盘的两级缓存架构,通过访问固态盘代替访问普通硬盘来降低请求响应时间,特别是随机访问模式的数据,充分发挥出固态盘的性能。磁盘阵列的冗余控制器有各自独有的内存,这里称为第一级缓存,而通过加入固态盘来构建的第二级缓存,是在磁盘阵列上共有的,允许多个应用程序同时使用第二级缓存,它会自动检测数据是否在固态盘中,不需要根据应用程序做特定的调整。构建完第二级缓存之后,第一级缓存和第二级缓存之间将进行协同交互工作。将第二级缓存整合到现有的存储系统的思想,同时要考虑固态盘性能潜力尽可能被发掘,影响存储性能的因素必然会包括策略设计和系统部署方面的问题。本专利技术从功能的角度来实现两级缓存机制,并把两级缓存作为一个组件放入大数据存储系统中进行管理。两级缓存结构中的固态盘以块设备的形式工作,它的上层组件,如文件系统,将固态盘看作一个简单的块设备,而不用关心内部的复杂结构。用户可以用固态盘创建池,并建立逻辑磁盘,后进行分区和配置文件系统。缓存结构在逻辑上由3个部分组成,即重定位模块,数据分析模块和数据迀移模块。重定位模块维护一个映射表来记录缓存到固态盘上的块与磁盘阵列中块的对应关系。当有新的请求到达重定位模块,先查找映射表。如果被请求的块在固态盘中,请求被重定向到固态盘,否则直接操作磁盘阵列。重定位模块也将I/O请求拦截并且转发到数据分析模块,数据分析模块收集I/O请求并且更新块表来描述负载访问模式。数据分析模块周期性地分析数据访问历史,判断哪些块应该被重定位到固态盘,并且请求数据迀移模块通过存储设备重新定位数据块。数据分析模块既能在内核态也能在用户态运行。数据迀移模块用于向块设备发出I/o命令并更新映射表来反映最新的映射变化。重定位模块维护一个映射表来记录缓存到固态盘上的块与磁盘阵列中块的对应关系。管理磁盘阵列的过程可以看作按照硬件接口进行Socket通信的过程。客户端通过管理软件发送请求,服务器作为中转对用户请求进行解析,并向磁盘阵列发送硬件命令。两级缓存构建建立一个服务线程,首先是建立池结构,所述池是使用一组磁盘驱动器按照RAID类型组成存储池逻辑概念,一个磁盘驱动器只能位于一个池中,一个存储系统中可以有任意个池,指定的池列表需要同类型的固态盘,包括磁盘转速本文档来自技高网...

【技术保护点】
一种磁盘数据读取方法,其特征在于,包括:用户通过服务器发送数据I/O请求,服务器向存储系统发送硬件命令,并由存储系统的两级缓存结构处理所述I/O请求。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈虹宇罗阳苗宁
申请(专利权)人:四川神琥科技有限公司
类型:发明
国别省市:四川;51

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

1