适用于对象网络存储的分布式多级缓存系统技术方案

技术编号:3546398 阅读:254 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种适用于对象网络存储的分布式多级缓存系统。包括用于元数据缓存的零级缓存、用于客户端数据缓存的一级缓存和用于对象存储节点数据缓存的二级缓存。零级缓存管理模块负责零级缓存中元数据的查找、替换和按照网络访问控制协议进行元数据访问;一级缓存管理模块负责共享内存空间的申请、分配、回收以及缓存单元的置换;二级缓存管理模块负责对对象存储节点间二级缓存进行多队列统一置换。本发明专利技术解决了客户端元数据缓存一致性问题,加快了元数据的访问速度,降低了服务请求响应时间;提高了整个文件系统的I/O吞吐量,降低了缓存对象的平均查找时间;提高了存储节点缓存整体命中率,提高了系统数据传输率。

【技术实现步骤摘要】
适用于对象网络存储的分布式多级缓存系统
本专利技术属于计算机存储
,具体涉及一种适用于对象网络存储的分布式多级缓存系统。
技术介绍
下一代互联网速度更快、规模更大、安全性与服务质量更高,从而要求基于下一代互联网的网络存储系统具有与之适应的高效性、可扩展性、安全性和高服务质量。传统的以块和文件为基础构建的存储系统(如NAS、SAN等)已经不能满足上述要求。美国加州大学Berkeley分校的Paterson教授、卡内基梅隆大学等多所大学及研究机构提出了一种基于对象(Object-Based)的网络存储接口协议,以此方便构建高效的大型网络存储系统。中国专利技术专利公开号为CN 1728665A的专利技术公开了一种组建基于对象的存储系统的方法。该专利技术所述基于对象的网络存储系统,包括由计算机网络连接的I个元数据服务器、N个对象存储节点和M个客户端,其对象文件系统是基于标准Linux的ext2文件系统,带有日志文件系统特性。大型网络存储系统需要设计一个高效的并行文件系统与之相匹配,才能实现存储系统的高带宽、高扩展性、高安全性、智能化等。文件系统作为系统的I/O子系统,在很多情况下会成为系统性能进一步提高的瓶颈。设计一个高性能的并行文件系统需要从两个方面进行考虑:一方面尽可能减少对磁盘的访问次数,另一方面尽可能简化网络访问协议,减少网络协议开销。文件系统缓存技术是一种尽量减少文件系统访问磁盘次数的机制,用提高文件系统性能的方法来弥补磁盘性能的不足;同时,好的缓存系统设计还可以简化网络访问协议。目前,基于对象存储文件系统已成为高性能网络存储文件系统的研究-->热点,产生了如Cluster File Systems公司的Lustre、Panasas公司的ActiveScale文件系统、加州大学圣克鲁兹分校开发的面向对象的文件系统OBFS等。这些文件系统都各有特点,在文件系统缓存方面也都有所提及,但主要集中在某个方面缓存策略的研究,缓存系统缺乏整体性,造成缓存系统访问控制协议复杂、访问请求响应时间较大等不足。还有一种实现缓存的方法是把缓存作为一个独立的设备运行,此种方案对缓存进行集中管理,方便实现某些替换、查找策略,但独立的设备增加了成本,同时也是系统的单一故障点。
技术实现思路
本专利技术的目的在于提供一种适用于对象网络存储的分布式多级缓存系统,该系统克服了现有缓存系统访问控制协议复杂、访问请求延迟较大的不足,在客户端、对象存储节点设立三级缓存提供完整的缓存系统及其缓存策略,简化节点间网络访问协议、降低元数据服务器负载、减少数据访问请求响应时间、提高系统I/O处理能力、降低系统构建成本。本专利技术提供的一种适用于对象网络存储的分布式多级缓存系统,其特征在于:该系统包括位于客户端中的零级缓存和一级缓存,以及位于对象存储节点中的二级缓存;零级缓存用于对源自元数据服务器中元数据的缓存,一级缓存为直接服务于应用进程的数据缓存,二级缓存为直接服务于客户端的数据缓存;零级缓存管理模块负责零级缓存中元数据的查找、替换以及按照网络访问控制协议进行元数据的访问;一级缓存管理模块用于控制一级缓存,负责共享内存空间的申请、分配、回收以及缓存单元的置换;二级缓存管理模块负责对对象存储节点间二级缓存进行多队列统一置换。本专利技术具有如下特点:-->(1)零级元数据缓存设在客户端,在缓存命中情况下比采用PVFS结构并行文件系统减少一次元数据服务器的访问,降低了网络通信量;设计了一种简化的元数据访问协议,解决了多个客户端元数据缓存一致性问题;加快了元数据的访问速度,降低了服务请求响应时间;提高了整个文件系统的I/O吞吐量;(2)一级数据缓存采用共享内存方式实现,减少了进程通信时内存拷贝次数,实现应用进程间数据共享;一级缓存采用基于hash的LFU-DA算法,保留了LFU-DA算法命中率高的特点,同时极大降低了缓存对象的平均查找时间;(3)对象存储节点中的二级缓存能推迟并减少对磁盘的直接访问,根据对象存储节点对象访问特性,提出了访问组的概念,同时设计的多队列统一置换算法,综合考虑了访问时间和访问频率,使各对象存储节点缓存命中率趋于均匀,提高存储节点缓存整体命中率;(4)三级缓存共同组成适用于对象网络存储的分布式多级缓存系统,极大的提高了存储系统的效率,减少了系统延迟,提高了系统数据传输率。附图说明图1是本专利技术适用于对象网络存储的分布式多级缓存系统示意图;图2.1是改进前文件系统读文件过程示意图;图2.2是本专利技术在客户端设立元数据缓存后读文件过程示意图;图3.1是本专利技术在客户端设立一级缓存后缓存块分配前缓存状态示意图;图3.2是本专利技术在客户端设立一级缓存后缓存块分配后缓存状态示意图;图3.3是本专利技术在客户端设立一级缓存后缓存块释放前缓存状态示意图;图3.4是本专利技术在客户端设立一级缓存后缓存块释放后缓存状态示意图;图4是本专利技术数据访问控制流程图。具体实施方式如图1所示,基于对象网络存储系统中,元数据服务器1、对象存储节点2和客户端3由计算机网络连接在一起。数据访问过程如下:由客户端3-->向元数据服务器1发送访问请求;元数据服务器1验证客户身份,确认后查询本地元数据,如果存在,则元数据服务器1给相应对象存储节点2发送访问请求测试包,对象存储节点2确认对象打开后向元数据服务器1返回授权及客户所请求的存储对象映射表;客户端3收到元数据服务器1的信息后与对象存储节点建立连接,进行数据传输。本专利技术的分布式多级缓存系统包括客户端3中的零级缓存6、一级缓存8和对象存储节点2中的二级缓存4。三级缓存均在主存中实现。零级缓存6设立在客户端3中,是对来源于元数据服务器1的元数据缓存,在缓存命中情况下能够减少一次元数据服务器1的访问,元数据缓存的高命中率极大地降低了网络通讯量;一级缓存8是直接服务于应用进程的数据缓存,它的命中直接消除了客户端3到对象存储节点2的网络消耗,提高了系统性能;二级缓存4设立在对象存储节点2,直接服务于客户端3,缓存命中情况下可以避免访问低速物理存储设备,加快了数据访问速度。本专利技术三级缓存分别由各自缓存管理模块控制。零级缓存管理模块7负责零级缓存6中元数据的查找、替换以及零级缓存未命中情况下按照网络访问控制协议进行元数据服务器的访问。元数据查找采用由元数据项对应的全局路径名作为hash参数建立的缓存hash表,以加快查找速度;元数据缓存替换策略采用FIFO(First In First Out)队列;元数据访问控制协议首先访问零级缓存6,命中则直接向元数据服务器1发送服务请求,未命中则发送元数据查询请求,得到确认后再发送服务请求。一级缓存管理模块9负责共享内存空间的申请、分配、回收以及缓存单元的置换。一级缓存8用共享内存方式实现,系统通过一级缓存管理模块9管理缓存空间的申请、分配和回收;一级缓存8中缓存单元置换采用基于hash的LFU-DA(LFU with Dynamic Aging)算法。二级缓存管理模块5负责对象存储节点2之间二级缓存4的统一置换,采用多队列统一置换算法——MQU(Multi-Queue United)算法。零级缓存6是元数据缓存,在基于对象的存储系统中元数据包括文件与对象的映射信息、对象存储节点信息和存储对象的属性信息等。虽本文档来自技高网
...

【技术保护点】
一种适用于对象网络存储的分布式多级缓存系统,其特征在于:该系统包括位于客户端中的零级缓存和一级缓存,以及位于对象存储节点中的二级缓存;零级缓存用于来源自元数据服务器中的元数据缓存,一级缓存为直接服务于应用进程的数据缓存,二级缓存为直接服务于客户端的数据缓存;零级缓存管理模块用于负责零级缓存中元数据的查找、替换以及按照网络访问控制协议进行元数据的访问;一级缓存管理模块用于控制一级缓存,负责共享内存空间的申请、分配、回收以及缓存单元的置换;二级缓存管理模块 负责对对象存储节点间二级缓存进行统一置换。

【技术特征摘要】
1、一种适用于对象网络存储的分布式多级缓存系统,其特征在于:该系统包括位于客户端中的零级缓存和一级缓存,以及位于对象存储节点中的二级缓存;零级缓存用于来源自元数据服务器中的元数据缓存,一级缓存为直接服务于应用进程的数据缓存,二级缓存为直接服务于客户端的数据缓存;零级缓存管理模块用于负责零级缓存中元数据的查找、替换以及按照网络访问控制协议进行元数据的访问;一级缓存管理模块用于控制一级缓存,负责共享内存空间的申请、分配、回收以及缓存单元的置换;二级缓存管理模块负责对对象存储节点间二级缓存进行统一置换。2、根据权利要求1所述的系统,其特征在于:所述零级缓存管理模块中的网络访问协议为:(B1)客户端将要访问文件的路径转化为全局文件系统唯一路径名,应用进程查询零级缓存,判断缓存是否命中,如果命中进入步骤(B4);(B2)客户端与元数据服务器建立连接,发送元数据查询请求;(B3)元数据服务器对客户端访问进行身份验证,如果合法则查询元数据,确认所访问的文件是否存在,发送应答信息到客户端,进入步骤(B5);(B4)应答应用进程;(B5)客户端应用进程收到应答信息后,访问对象存在则发送读对象请求到元数据服务器,否则报错过程结束;(B6)元数据服务器收到客户读对象请求后,发送对象ID到相关对象存储节点;(B7)对象存储节点验证元数据服务器访问请求后,打开对象,发送应答信息到元数据服务器;(B8)元数据服务器收到应答后,把对客户端的授权、文件与存储对象ID映射表以及存储对象节点位置信息应答给客户端,同时更新零级缓存;(B9)客户端收到元数据服务器的应答信息后,向元数据对应的对象存储节点发读对象请求命令包,与相应对象存储节点建立连接;(B10)对象存储节点验证用户请求,确认后发送数据对象给客户端,直到数据传输结束。3、根据权利要求1或2所述的系统,其特征在于:所述一级缓存管理模块的守护进程按照下述步骤申请、分配和回收一级缓存空间:(C1)向系统申请一块缓存空间,并按照指定缓存块大小将缓存空间分块,用一个缓存块数组表示缓存空间,数组大小为所申请缓存空间的总块数;(C2)维护一个可分配缓存块数组,大小与缓存块数组相同,并用可分配号、空闲号分别指示可分配缓存块数组中空闲项的首部和尾部;(C3)当应用进程访问共享缓存空间时,进入步骤(C4);当应用进程释放缓存空间时,进入步骤(C5);(C4)访问共享缓存空间时,如果命中则直接进行读写操作;否则,首先判断是否有空闲缓存块可用,方法是判断可分配号和空闲号是否相等,如果可分配号和空闲号相等,进入步骤(C41),否则进入步骤(C42);(C41)可分配号和空闲号相等表示没有空闲块可用,则对缓存块进行置换,置换后再进行读写操作,工作完毕;(C42)可分配号和空闲号不相等表示还有空闲块可利用,读取可分配号所指示的可分配缓存块数组项的值,该值就是第一块可供分配缓存空闲块的下标,把下标指示的缓存块分配给应用进程,将可分配号所指示的可分配缓存块数组项的值设为-1,然后可分配号加1并取总缓存块数的模,新的可分配号指示下一个空闲块,工作完毕;(C5)应用进程不再使用缓存块时需要释放申请的缓存块,首先空闲号加1取总缓存块数的模得到新的空闲号,把空闲号指示的可分配缓存块数组项的值设为所释放缓存块号,完成缓存块...

【专利技术属性】
技术研发人员:陈进才周功业吴伟杰易佳雷伟李漪
申请(专利权)人:华中科技大学
类型:发明
国别省市:83[中国|武汉]

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

1
相关领域技术
  • 暂无相关专利