CN103200245A - 一种基于Device Mapper的分布式网络缓存方法 - Google Patents
一种基于Device Mapper的分布式网络缓存方法 Download PDFInfo
- Publication number
- CN103200245A CN103200245A CN2013100912915A CN201310091291A CN103200245A CN 103200245 A CN103200245 A CN 103200245A CN 2013100912915 A CN2013100912915 A CN 2013100912915A CN 201310091291 A CN201310091291 A CN 201310091291A CN 103200245 A CN103200245 A CN 103200245A
- Authority
- CN
- China
- Prior art keywords
- request
- client
- buffer memory
- data
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于DeviceMapper的分布式网络缓存方法,其特点为:在多个客户端并发访问共享的存储服务器时,客户端利用本地磁盘和局域网内其它客户端的磁盘作为存储服务器的缓存,当客户端的访问请求命中本地磁盘缓存时,将客户端的访问请求转发至本地磁盘处理;当客户端的访问请求命中其它客户端的磁盘缓存时,将客户端的访问请求转发至其它客户端的磁盘;当所有客户端的缓存都不命中时,将客户端的访问请求转发至存储服务器的磁盘,从而减少了存储服务器的负载和网络带宽的消耗,提高了客户端磁盘的利用率和请求的访问速度。本发明可以用于高并发的网络存储系。
Description
技术领域
本发明涉及一种分布式网络缓存方法,尤其涉及一种基于Device Mapper的分布式网络缓存方法。
背景技术
在云计算系统中,存在着各种网络存储子系统。这些网络存储系统往往拥有庞大的数据中心,用于集中管理各种数据。但是随着用户规模的增大,用户并发访问的概率以及并发量峰值也会随之增大,网络存储系统处理用户请求的能力也会随之减弱。在大量用户同时访问数据中心时,网络存储系统对于用户的请求的处理速度往往不能达到要求的服务级别。
传统的网络存储系统往往采用缓存技术来加快系统的处理速度。但是在上述系统中,仅仅在服务器端加入缓存功能已经不能有效地提高系统性能。因此,很多研究者将研究重点转向了客户端缓存。但是当前的网络存储系统中客户端缓存大部分都采用内存构建,但是这样的缓存受限于内存有限的空间和数据的非持久性,系统性能的提升十分有限。
近年来,一些研究工作已经开始探索利用本地客户端磁盘构建缓存。比如Sun的NFS,IBM的AFS,卡内基梅隆大学的Coda,加州大学伯克利分校的xFS,以及宾州州立大学的CAPFS等分布式文件系统,它们采用客户端磁盘空间作为缓存,用来提高系统整体的性能以及可用性。但是由于这些缓存系统都只是针对具体的文件系统,其通用性较差。基于更低层协议,比如NBD、iSCSI、AoE等块级别协议,国内外只有少量研究者采用客户端的本地磁盘空间作为网络存储系统的缓存。其中在这方面有代表性的成果有IBM和佛罗里达大学的DM-Cache,以及中国科学院计算研究所的D-Cache。但是两者都没有充分利用本地局域网内的其它客户端的缓存。
发明内容
针对上述各种缓存方案存在的问题,本发明提出了一种通用的分布式网络缓存方法。该方法应充分利用局域网内其它客户端的磁盘以减轻存储系统的负载,提高本地磁盘利用率,使存储系统始终提供高效的I/O服务,而且由于局域网内客户端之间的磁盘访问速度必然大于直接访问存储系统,进而更进一步提高了系统的I/O性能。
本发明关注于云计算系统中极为常见的存储热点——局域网内多台客户端共享网络存储系统,设计了一种基于Device Mapper的分布式网络缓存方法,该方法的优化工作包括:在客户端发起数据请求时,使用Device Mapper技术在客户端对数据请求分割、计算每个子数据请求准备访问的存储服务器的起始扇区编号,然后据此查找数据请求是否命中缓存,客户端根据查找结果转发数据请求到相应的磁盘驱动处理。
该缓存方法进行实施的步骤是:
(1)数据请求的预处理过程
传统的客户端数据请求访问是直接将请求转发至服务器端磁盘处理,这种方式在多个客户端高并发访问时,不仅给服务器端带来巨大的负载压力,而且增加了请求的响应时间。
由于上述不足,可以利用Device Mapper技术将数据请求分割成若干固定大小的子请求,计算每个子请求准备访问的存储服务器的起始扇区编号,然后,根据起始扇区查找本地磁盘缓存是否命中,如果命中本地缓存,将请求转发至本地磁盘驱动处理;如果命中局域网内其它客户端的缓存,将请求转发至其它客户端的磁盘驱动处理;如果都不命中,仍将请求转发至服务器端磁盘驱动处理。
(2)缓存的查找过程
缓存采取组相联的管理策略,即每个客户端的缓存空间分为若干个组进行管理,服务器端存储空间也分成相同大小的组,客户端的内存中保留一份缓存的元数据信息,它记录了服务器端存储空间到缓存中存储空间的映射关系。当计算子请求的起始扇区后,采用hash_long算法计算起始扇区对应的缓存组号,在元数据的缓存组中顺序遍历组内缓存块的元数据信息,如果元数据信息中记录的扇区与子请求的起始扇区相同,则缓存命中,如果元数据信息中记录的缓存是本地缓存,将数据请求转发至本地客户端磁盘缓存;如果元数据信息中记录的缓存是其它客户端的缓存,将数据请求转发至其它客户端磁盘缓存;如果缓存组中所有元数据信息记录的扇区与起始扇区都不相同,则缓存不命中,将数据请求转发至服务器端磁盘缓存。
(3)数据请求的处理过程
对于数据请求本地缓存命中的情况,直接交由本地磁盘处理;如果是其它客户端的缓存命中的情况,将请求转发至其它客户端磁盘处理,并且将相应数据块异步复制到本地磁盘缓存中,因为数据的局部性特征,下次访问将会命中本地缓存;如果缓存都不命中,将请求转发至服务器端磁盘处理,同样将相应的数据异步复制到本地磁盘缓存中。
本发明具有的有益效果是:
1、本发明利用本地磁盘作为网络存储系统的缓存,缓存数据相比较内存具有可持久性,当发生断电时,数据可以快速恢复。
2、本发明充分利用了内核的内嵌Device Mapper框架,构建的分布式网络缓存具有通用性,可应用于I/O密集型的任何场景。
3、本发明应用环境是多机分布式共享缓存,不仅有效的降低了共享存储的负载压力,而且也极大的提升了客户端的访问速度和磁盘利用率。
附图说明
图1为本发明实施流程图。
具体实施方式
下面结合附图和实施方法对本发明作进一步的详细说明。
参照图1执行步骤来说明本发明实施过程:
(1)数据请求的预处理过程。
如步骤1所描述,构建分布式网络缓存,完成后转入步骤2,客户端向服务器端发起数据请求访问,步骤3本地客户端利用Device Mapper技术对数据请求分割为固定大小的子请求,转入步骤4、5,分别计算数据请求块的起始扇区和所属服务器端分组编号,然后转入缓存的查找过程。
(2)缓存的查找过程。
根据步骤5计算的分组编号,在步骤6由hash_long算法得到映射后的缓存分组编号,转入步骤7,遍历缓存组所有缓存块的元数据信息,由步骤8判断缓存是否命中,如果元数据信息中记录的扇区和请求数据块的起始扇区相同,则缓存命中,执行步骤9;再进一步由步骤9判断是本地缓存命中还是其它客户端缓存命中,如果元数据信息中标识是本地缓存命中,将请求转发至本地磁盘处理,执行步骤10;如果元数据信息中标识是其它客户端缓存命中,将请求转发至其它客户端磁盘处理,执行步骤11;如果所有的元数据信息中记录的扇区和请求的数据块的起始扇区都不相同,则缓存不命中,将请求转发至服务器端磁盘处理,执行步骤12,由此进入数据请求出的处理过程。
(3)数据请求的处理过程。
由步骤8、9分别判断缓存是否命中、本地缓存命中还是其它客户端缓存命中,分别进入步骤10、11、12进行相应的处理操作。步骤11、12不仅完成直接处理数据请求的操作,而且将请求的数据异步复制到本地缓存,期待下次访问命中。
Claims (1)
1. 一种基于Device Mapper的分布式网络缓存方法,其特征在于:基于Device Mapper技术实现网络存储系统的分布式缓存管理;该方法包括以下步骤:
步骤1.数据请求的预处理过程,具体是:
利用Device Mapper技术在客户端对数据请求分割、计算每个子数据请求准备访问的存储服务器的起始扇区编号;
步骤2.缓存的查找过程,具体是:
缓存采用组相联的管理策略,每个缓存组包含若干大小相同数据请求块,内存中保存所有缓存块的元数据信息,其中记录着缓存块的状态和映射到此数据缓存块的存储服务器数据块的起始扇区编号,由步骤1求得的子请求的起始扇区编号,根据Linux中的hash_long算法计算存储服务器数据块映射的缓存组,然后顺序遍历缓存组中所有的缓存块数据的元数据信息,依据元数据信息记录的扇区信息与子请求的起始扇区编号是否相等来判断该请求是否命中缓存,客户端根据查找结果转发数据请求;
步骤3.数据请求的处理过程,具体是:
如果缓存查找本地缓存命中,将客户端请求转发至本地磁盘处理;如果缓存查找其它客户端缓存命中,将客户端请求转发至命中的客户端的磁盘处理;如果缓存都不命中,将客户端请求转发至存储服务器磁盘处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310091291.5A CN103200245B (zh) | 2013-03-21 | 2013-03-21 | 一种基于Device Mapper的分布式网络缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310091291.5A CN103200245B (zh) | 2013-03-21 | 2013-03-21 | 一种基于Device Mapper的分布式网络缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103200245A true CN103200245A (zh) | 2013-07-10 |
CN103200245B CN103200245B (zh) | 2016-05-11 |
Family
ID=48722600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310091291.5A Active CN103200245B (zh) | 2013-03-21 | 2013-03-21 | 一种基于Device Mapper的分布式网络缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103200245B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455357A (zh) * | 2013-09-10 | 2013-12-18 | 李传双 | 一种提高smileboot系统的客户端效能的方法 |
CN104657461A (zh) * | 2015-02-10 | 2015-05-27 | 北京航空航天大学 | 基于内存与ssd协作式的文件系统元数据搜索缓存方法 |
CN105516223A (zh) * | 2014-09-25 | 2016-04-20 | 中国电信股份有限公司 | 虚拟存储系统及其实现方法、服务器和虚拟机监控器 |
CN106776798A (zh) * | 2016-11-23 | 2017-05-31 | 深圳市中博睿存科技有限公司 | 一种集群文件系统基于客户端的可传播缓存方法 |
CN109033328A (zh) * | 2018-07-19 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种访问请求处理方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091792A1 (en) * | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for client sharing of cached content |
CN101188544A (zh) * | 2007-12-04 | 2008-05-28 | 浙江大学 | 分布式文件服务器基于缓冲区的文件传输方法 |
CN101673298A (zh) * | 2009-09-29 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种视频点播中的视频数据分布式缓存方法 |
CN102045403A (zh) * | 2010-12-29 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 分布式网络数据处理方法和装置及系统 |
CN102316097A (zh) * | 2011-07-27 | 2012-01-11 | 杭州斯凯网络科技有限公司 | 一种减少用户等待时间的流媒体调度分发方法 |
-
2013
- 2013-03-21 CN CN201310091291.5A patent/CN103200245B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091792A1 (en) * | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for client sharing of cached content |
CN101188544A (zh) * | 2007-12-04 | 2008-05-28 | 浙江大学 | 分布式文件服务器基于缓冲区的文件传输方法 |
CN101673298A (zh) * | 2009-09-29 | 2010-03-17 | 深圳市融创天下科技发展有限公司 | 一种视频点播中的视频数据分布式缓存方法 |
CN102045403A (zh) * | 2010-12-29 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 分布式网络数据处理方法和装置及系统 |
CN102316097A (zh) * | 2011-07-27 | 2012-01-11 | 杭州斯凯网络科技有限公司 | 一种减少用户等待时间的流媒体调度分发方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455357A (zh) * | 2013-09-10 | 2013-12-18 | 李传双 | 一种提高smileboot系统的客户端效能的方法 |
CN105516223A (zh) * | 2014-09-25 | 2016-04-20 | 中国电信股份有限公司 | 虚拟存储系统及其实现方法、服务器和虚拟机监控器 |
CN105516223B (zh) * | 2014-09-25 | 2019-09-13 | 中国电信股份有限公司 | 虚拟存储系统及其实现方法、服务器和虚拟机监控器 |
CN104657461A (zh) * | 2015-02-10 | 2015-05-27 | 北京航空航天大学 | 基于内存与ssd协作式的文件系统元数据搜索缓存方法 |
CN106776798A (zh) * | 2016-11-23 | 2017-05-31 | 深圳市中博睿存科技有限公司 | 一种集群文件系统基于客户端的可传播缓存方法 |
CN109033328A (zh) * | 2018-07-19 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种访问请求处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103200245B (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101916302B (zh) | 基于哈希表的三维空间数据自适应缓存管理方法及系统 | |
US8762407B2 (en) | Concurrent OLAP-oriented database query processing method | |
CN103200245B (zh) | 一种基于Device Mapper的分布式网络缓存方法 | |
CN104580437A (zh) | 一种云存储客户端及其高效数据访问方法 | |
WO2013152543A1 (zh) | 面向列存储数据仓库的多维olap查询处理方法 | |
WO2013155751A1 (zh) | 面向并发olap的数据库查询处理方法 | |
CN103366016A (zh) | 基于hdfs的电子文件集中存储及优化方法 | |
CN103678172A (zh) | 一种本地数据缓存管理方法及装置 | |
Wu et al. | zexpander: A key-value cache with both high performance and fewer misses | |
CN112379849B (zh) | 基于序列可预测的并行深度学习训练数据输入方法和系统 | |
CN103916459A (zh) | 一种大数据归档存储系统 | |
CN111782612A (zh) | 跨域虚拟数据空间中文件数据边缘缓存方法 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
Dong et al. | Correlation based file prefetching approach for hadoop | |
CN102355502B (zh) | 存储系统远程接入桌面操作系统的远程接入方法 | |
CN101853218B (zh) | 用于磁盘阵列的读取方法和系统 | |
US9922090B1 (en) | System and method for automatic vertical decomposition of a table for improving input/output and memory utilization in a database | |
CN108173974B (zh) | 一种基于分布式缓存Memcached的HCModel内部缓存数据淘汰方法 | |
CN103500147A (zh) | 一种嵌入分层存储的pb级集群存储系统的方法 | |
CN111787062B (zh) | 面向广域网络文件系统的自适应快速增量预读方法 | |
CN107450860A (zh) | 一种基于分布式存储的地图文件预读方法 | |
CN104219163A (zh) | 一种基于动态副本法和虚拟节点法的节点动态前移的负载均衡方法 | |
Nijim et al. | Multi-layer prefetching for hybrid storage systems: algorithms, models, and evaluations | |
CN106469193A (zh) | 多负载元数据i/o服务质量性能保障方法和系统 | |
Li et al. | Real-time data prefetching algorithm based on sequential patternmining in cloud environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20130710 Assignee: ZHEJIANG TONGBO TECHNOLOGY DEVELOPMENT Co.,Ltd. Assignor: HANGZHOU DIANZI University Contract record no.: X2021330000002 Denomination of invention: A distributed network caching method based on device mapper Granted publication date: 20160511 License type: Common License Record date: 20210108 |
|
EE01 | Entry into force of recordation of patent licensing contract |