著录项信息
专利名称 | 支持海量小文件和动态备份数的数字图书馆存储系统的构建方法 |
申请号 | CN201010262584.1 | 申请日期 | 2010-08-20 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2010-12-15 | 公开/公告号 | CN101916289A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 浙江大学 | 申请人地址 | 浙江省杭州市西湖区浙大路38号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江大学 | 当前权利人 | 浙江大学 |
发明人 | 庄越挺;鲁伟明;沈春辉;吴江琴;魏宝刚 |
代理机构 | 杭州求是专利事务所有限公司 | 代理人 | 张法高 |
摘要
本发明公开了一种支持海量小文件和动态备份数的数字图书馆存储系统的构建方法,包括以下三部分内容:(1)系统的构建采用采用两层体系架构,即传输层和存储层;传输层主要用于存储层与数字图书馆门户之间的数据传输,负载均衡、缓存以及预取等策略均在此层实现;而存储层主要负责数据的存储,由普通服务器搭建的分布式文件系统和高可靠性存储组成。(2)采用打包策略,将同一本书的书页打包。(3)根据图书的大小和访问频率,动态计算每本图书的备份数。本发明将普通服务器构成的分布式文件系统与高可靠性存储结合起来提供数据的存储服务,既保证了数据的可靠性,又保证了数据的可用性;将小文件打包存储,减少了小文件数量,提高了系统性能;根据文件大小和文件访问频率计算文件的备份数,提高了系统的整体可用性。
1.一种支持海量小文件和动态备份数的数字图书馆存储系统的构建方法,其特征在于包括如下步骤:
1)采用由传输层和存储层构成的两层体系架构实现数字图书馆门户访问文件过程,传输层由代理服务器和代理管理器组成,代理服务器负责从存储层读取数据,然后缓存在本地,代理管理器用来管理各代理服务器,维护每个代理服务器的负载、缓存摘要以及心跳信息,用于负载均衡、请求转发以及代理服务器管理;传输层主要负责存储层与数字图书馆门户之间的数据传输,并在此层实现负载均衡、缓存以及预取,而存储层主要负责数据的存储,由分布式文件系统和高可靠性存储组成,保持整个系统同时具有高可靠性和可用性;
2)采用打包方式处理海量小文件,为每本书包含的大量小书页文件生成一个大文件存放在存储系统中,同时在大文件头上生成小文件的索引,用于小文件的随机访问;
3)基于文件大小和文件访问频率动态计算文件的备份数。
2.根据权利要求1所述的一种支持海量小文件和动态备份数的数字图书馆存储系统的构建方法,其特征在于所述的采用由传输层和存储层构成的两层体系架构实现数字图书馆门户访问文件过程步骤包括:首先,将访问请求转发给代理管理器,代理管理器根据其维护的每台代理服务器的缓存摘要和负载信息,将请求转发给缓存中包含请求文件或负载较小的代理服务器中;然后,代理服务器收到访问请求后,查看本地缓存,如果缓存中包含所需文件,则读取后直接返回,否则访问存储层读取书页;在存储层中,先访问分布式文件系统,如果存在,则返回并在代理服务器中缓存,并更新缓存摘要,否则访问高可靠性存储;每次访问都在日志中记录,用来计算文件的访问频率。
3.根据权利要求1所述的一种支持海量小文件和动态备份数的数字图书馆存储系统的构建方法,其特征在于所述的基于文件大小和文件访问频率动态计算文件的备份数步骤包括:
1)计算备份数为n的文件在分布式文件系统中不可用的概率:设一个文件的备份数为n,则通过生死过程模型计算该文件在分布式文件系统中不可用的概率为:
其中λk表示从含有k个备份生成k+1个备份的速度,μk+1表示因设
备故障等原因从含有k+1个备份变成k个备份的速度,在构建方法中,λ0表示从可靠性存储中生成一个备份存到分布式文件系统中的速度,当0<k≤n时,设λk=λ,μk=kμ,这样可得到: μ可以通过分布式文件系统中机器的平均故障时
间MTTF得到 λ与网络带宽b和待修复的数据量s相关,可计算为
2)计算数字图书馆中图书的大小和访问信息:设数字图书馆中有图书N本,每本被打包成一个大文件,即有N个文件,该N个文件均在高可靠性存储中存有一个备份以保证可靠性,设有M个文件已被用户访问,则有N-M个文件未被用户访问,于是在分布式文件系统中只保存了被用户访问的M个文件的备份,以增加系统可用性;假设每个文件的大小分别为{s′1,s′2,...,s′M},被用户访问的次数分别为{f′1,f′2,...,f′M},备份数分别为{n1,n2,...,nM},将其归一化:
3)计算每个文件的备份数:设n是平均备份数,也就是 于是 要
满足大文件备份数少,而小文件备份数多的要求,需满足 定义系统的整体可用性为: 这里 表示第k个文件在系统中不可用
的概率,其中nk为第k个文件的备份数,于是各文件的备份数可通过求解下面的最优化问题得到:
在求解过程中假设pk(0)近似为指数函数 ,并令ni为实数,通过拉格朗日乘子法最终可求得: 对nk取整可得到每个文件的备份数。
支持海量小文件和动态备份数的数字图书馆存储系统的构\n建方法\n技术领域\n[0001] 本发明涉及数字图书馆存储系统技术领域,特别是涉及一种能支持海量小文件和动态备份数的数字图书馆存储系统的构建方法。\n背景技术\n[0002] 近年来,随着数字图书馆的发展,数字资源以及参与用户呈现不断增长的趋势,迫切需要一种新的数字图书馆体系架构来支持海量数据的访问和服务。\n[0003] 存储系统是数字图书馆体系架构的核心部分,传统的数字图书馆常采用NAS、SAN等商业解决方案,但其具有以下缺点:1.NAS、SAN等商业解决方案价格昂贵,且不同厂商之间的兼容性差,这导致数字图书馆的可持续发展性差。2.NAS、SAN等解决方案用磁盘阵列作为底层存储,磁盘阵列的控制器将成为系统性能瓶颈,不能很好支持海量用户的并发访问,缺乏可扩展性。3.NAS、SAN等解决方案是通用的解决方法,并没有针对数字图书馆进行优化,直接使用性能不佳。\n[0004] Google、Yahoo、亚马逊以及百度、网易、淘宝等国内外大型互联网公司,也同样面临着海量资源和海量用户的挑战。其主要采用分布式文件系统来解决海量资源的存储问题,如Google的Google File System,Yahoo的Hadoop分布式文件系统和亚马逊的Simple Storage Services。该分布式文件系统主要部署在普通服务器上,从而价格低廉,同时又采用备份策略来解决数据的可靠性问题。但数字图书馆具有其自身特点,不能直接采用类似于Google File System的分布式文件系统。首先,数字图书馆中具有海量的小文件,比如书页只占有几十KB大小,而Goole File System被设计成用来存放大约数GB以上的大文件。如果直接将海量小文件存放在Google File System中,将降低系统性能。其次,数字图书馆需同时关注数据的可用性和可靠性。虽然备份数增多可以增加数据可靠性和可用性,但由于存储空间有限,不能无限制增加备份数。而数字图书馆中的数据访问具有不均衡性,如果增加访问量多的数据的备份数,减少访问量少的数据的备份数,将提高系统的整体可用性。另外,数据的大小也不一样,增加小文件的备份数,减少大文件的备份数,将提高系统的整体可靠性。\n发明内容\n[0005] 本发明的目的在于克服现有架构中的不足,提供一种能支持海量小文件和动态备份数的数字图书馆存储系统的构建方法。\n[0006] 本发明解决其技术问题采用的技术方案如下:\n[0007] 支持海量小文件和动态备份数的数字图书馆存储系统的构建方法包括如下步骤:\n[0008] 1)采用由传输层和存储层构成的两层体系架构实现数字图书馆门户访问文件过程,传输层由代理服务器和代理管理器组成,代理服务器负责从存储层读取数据,然后缓存在本地,代理管理器用来管理各代理服务器,维护每个代理服务器的负载、缓存摘要以及心跳信息,用于负载均衡、请求转发以及代理服务器管理;传输层主要负责存储层与数字图书馆门户之间的数据传输,并在此层实现负载均衡、缓存以及预取,而存储层主要负责数据的存储,由分布式文件系统和高可靠性存储组成,保持整个系统同时具有高可靠性和可用性;\n[0009] 2)采用打包方式处理海量小文件,为每本书包含的大量小书页文件生成一个大文件存放在存储系统中,同时在大文件头上生成小文件的索引,用于小文件的随机访问;\n[0010] 3)基于文件大小和文件访问频率动态计算文件的备份数。\n[0011] 所述的采用由传输层和存储层构成的两层体系架构实现数字图书馆门户访问文件过程步骤包括:首先,将访问请求转发给代理管理器,代理管理器根据其维护的每台代理服务器的缓存摘要和负载信息,将请求转发给缓存中包含请求文件或负载较小的代理服务器中;然后,代理服务器收到访问请求后,查看本地缓存,如果缓存中包含所需文件,则读取后直接返回,否则访问存储层读取书页;在存储层中,先访问分布式文件系统,如果存在,则返回并在代理服务器中缓存,并更新缓存摘要,否则访问高可靠性存储;每次访问都在日志中记录,用来计算文件的访问频率。\n[0012] 所述的采用打包方式处理海量小文件步骤包括:生成的大文件包含以下字段:\nVersion字段存储结构的版本,用来表示该结构体的编解码方法;Metadata字段存储文件的相关信息,包括文件的格式、小文件数目以及其它元数据信息;Offset中记录了各小文件在“包”中的相对位置信息;File Length、File Block和Checksum是存储了小文件的长度、内容和内容的校验码,于是,访问第i个小文件的流程为:首先读取固定长度的Version和Metadata信息,得到解码方式和文件信息num_of_pages,然后再跳过4*(i-1)个字节,读接下来的4个字节得到小文件的Offset,然后再跳过(num_of_pages-i-1)*4+Offset个字节,读接下来的4个字节得到File Length,再读取File Length个字节得到小文件的内容,然后再读取接下来的4个字节得到校验码Checksum,如果小文件内容通过检验码校验,则返回小文件内容,否则返回读取出错信息。\n[0013] 所述的基于文件大小和文件访问频率动态计算文件的备份数步骤包括:\n[0014] 1)计算备份数为n的文件在分布式文件系统中不可用的概率:设一个文件的备份数为n,则通过生死过程模型计算该文件在分布式文件系统中不可用的概率为:\n其中λk表示从含有k个备份生成k+1个备份的速度,μk+1表示\n因设备故障等原因从含有k+1个备份变成k个备份的速度,在构建方法中,λ0表示从可靠性存储中生成一个备份存到分布式文件系统中的速度,当0<k≤n时,设λk=λ,μk=kμ,这样可得到: μ可以通过分布式文件系统中机器的平均故\n障时间MTTF得到 λ与网络带宽b和待修复的数据量s相关,可计算为\n[0015] 2)计算数字图书馆中图书的大小和访问信息:设数字图书馆中有图书N本,每本被打包成一个大文件,即有N个文件,该N个文件均在高可靠性存储中存有一个备份以保证可靠性,设有M个文件已被用户访问,则有N-M个文件未被用户访问,于是在分布式文件系统中只保存了被用户访问的M个文件的备份,以增加系统可用性;假设每个文件的大小分别为{s1,s2,...,sM},被用户访问的次数分别为{f1,f2,...,fM},备份数分别为{n1,n2,...,nM},将其归一化:\n[0016] 3)计算每个文件的备份数:设n是平均备份数,也就是 于是\n要满足大文件备份数少,而小文件备份数多的要求,需满足 定义\n系统的整体可用性为: 这里 表示第k\n个文件在系统中不可用的概率,其中nk为第k个文件的备份数,于是各文件的备份数可通过求解下面的最优化问题得到:\n[0017] \n[0018] 在求解过程中假设pk(0)近似为指数函数 并令ni为实数,通过拉格朗日乘子法最终可求得: 对nk取整可得到每个文件的备份数。\n[0019] 本发明与技术背景相比,具有的有益的效果是:\n[0020] 1)将普通服务器构成的分布式文件系统与高可靠性存储结合起来提供数据的存储服务,既保证了数据的可靠性,又保证了数据的可用性;\n[0021] 2)将小文件打包存储,减少了小文件数量,提高了系统性能;\n[0022] 3)根据文件大小和文件访问频率计算文件的备份数,提高了系统的整体可用性。\n附图说明\n[0023] 图1为本发明提出的数字图书馆体系架构图;\n[0024] 图2为本发明提出的图书打包结构图;\n[0025] 图3为本发明提到的生死过程模型;\n[0026] 图4为本发明在实施例中的图书文件大小分布图;\n[0027] 图5为本发明在实施例中访问次数最多的前100本图书的访问分布图;\n[0028] 图6为本发明在具体实施过程中得到的文件备份数分布图;\n[0029] 图7为本发明提出的动态备份管理策略与均衡备份管理策略的可靠性比较图;\n[0030] 图8为本发明提出的动态备份管理策略与均衡备份管理策略的请求响应时间比较图。\n具体实施方式\n[0031] 支持海量小文件和动态备份数的数字图书馆存储系统的构建方法包括如下步骤:\n[0032] 1)采用由传输层和存储层构成的两层体系架构实现数字图书馆门户访问文件过程,传输层由代理服务器和代理管理器组成,代理服务器负责从存储层读取数据,然后缓存在本地,代理管理器用来管理各代理服务器,维护每个代理服务器的负载、缓存摘要以及心跳信息,用于负载均衡、请求转发以及代理服务器管理;传输层主要负责存储层与数字图书馆门户之间的数据传输,并在此层实现负载均衡、缓存以及预取,而存储层主要负责数据的存储,由分布式文件系统和高可靠性存储组成,保持整个系统同时具有高可靠性和可用性;\n[0033] 2)采用打包方式处理海量小文件,为每本书包含的大量小书页文件生成一个大文件存放在存储系统中,同时在大文件头上生成小文件的索引,用于小文件的随机访问;\n[0034] 3)基于文件大小和文件访问频率动态计算文件的备份数。\n[0035] 所述的采用由传输层和存储层构成的两层体系架构实现数字图书馆门户访问文件过程步骤包括:首先,将访问请求转发给代理管理器,代理管理器根据其维护的每台代理服务器的缓存摘要和负载信息,将请求转发给缓存中包含请求文件或负载较小的代理服务器中;然后,代理服务器收到访问请求后,查看本地缓存,如果缓存中包含所需文件,则读取后直接返回,否则访问存储层读取书页;在存储层中,先访问分布式文件系统,如果存在,则返回并在代理服务器中缓存,并更新缓存摘要,否则访问高可靠性存储;每次访问都在日志中记录,用来计算文件的访问频率。\n[0036] 如图2所示,所述的采用打包方式处理海量小文件步骤包括:生成的大文件包含以下字段:Version字段存储结构的版本,用来表示该结构体的编解码方法;Metadata字段存储文件的相关信息,包括文件的格式、小文件数目以及其它元数据信息;Offset中记录了各小文件在“包”中的相对位置信息;File Length、File Block和Checksum是存储了小文件的长度、内容和内容的校验码,于是,访问第i个小文件的流程为:首先读取固定长度的Version和Metadata信息,得到解码方式和文件信息num_of_pages,然后再跳过4*(i-1)个字节,读接下来的4个字节得到小文件的Offset,然后再跳过(num_of_pages-i-1)*4+Offset个字节,读接下来的4个字节得到File Length,再读取File Length个字节得到小文件的内容,然后再读取接下来的4个字节得到校验码Checksum,如果小文件内容通过检验码校验,则返回小文件内容,否则返回读取出错信息。\n[0037] 所述的基于文件大小和文件访问频率动态计算文件的备份数步骤包括:\n[0038] 1)计算备份数为n的文件在分布式文件系统中不可用的概率:设一个文件的备份数为n,则通过生死过程模型(如图3所示)计算该文件在分布式文件系统中不可用的概率为: 其中λk表示从含有k个备份生成k+1个备份的速度,μk+1\n表示因设备故障等原因从含有k+1个备份变成k个备份的速度,在构建方法中,λ0表示从可靠性存储中生成一个备份存到分布式文件系统中的速度,当0<k≤n时,设λk=λ,μk=kμ,这样可得到: μ可以通过分布式文件系统中机器的\n平均故障时间MTTF得到 λ与网络带宽b和待修复的数据量s相关,可计算为\n[0039] 2)计算数字图书馆中图书的大小和访问信息:设数字图书馆中有图书N本,每本被打包成一个大文件,即有N个文件,该N个文件均在高可靠性存储中存有一个备份以保证可靠性,设有M个文件已被用户访问,则有N-M个文件未被用户访问,于是在分布式文件系统中只保存了被用户访问的M个文件的备份,以增加系统可用性;假设每个文件的大小分别为{s1,s2,...,sM},被用户访问的次数分别为{f1,f2,...,fM},备份数分别为{n1,n2,...,nM},将其归一化:\n[0040] 3)计算每个文件的备份数:设n是平均备份数,也就是 于是\n要满足大文件备份数少,而小文件备份数多的要求,需满足 定义\n系统的整体可用性为: 这里 表示第k\n个文件在系统中不可用的概率,其中nk为第k个文件的备份数,于是各文件的备份数可通过求解下面的最优化问题得到:\n[0041] \n[0042] 在求解过程中假设pk(0)近似为指数函数 并令ni为实数,通过拉格朗日乘子法最终可求得: 对nk取整可得到每个文件的备份数。\n[0043] 实施例1\n[0044] CADAL数字图书馆中的所有图书都以打包的形式存储,根据访问日志,得到CADAL数字图书馆中已被访问的图书和尚未被访问的图书,尚未被访问的图书只存放在高可靠性存储之中,而被访问的图书则同时按其备份数存储在以普通服务器搭建的分布式文件系统之中。\n[0045] 统计数字图书馆中被访问过的图书的大小和访问频率,得到文件的大小为{s1,s2,...,sM},被用户访问的次数为{f1,f2,...,fM},分布如图4和图5所示,从图4只可以看到图书的大小是不均匀的,一小部分图书远大于平均大小;从图5中可以看到前10的图书其访问量占有前100图书的52.12%,表明图书的访问也是极不均衡的;设MTTF=1年,即分布式文件系统中机器的平均故障时间为1年,设b=2Mpbs,经统计分布式文件系统中,每台机器大概存储200GB,即s=200GB,于是可以计算得到 和 预先\n设定系统的平均备份数n=3,最终得到每本书的备份数\n其分布如图6所示,发现图书的备份数与fk/sk相关,而且只有一部分图书其备份数是平均备份数。设本发明所提的动态备份管理策略与均衡备份管理策略的可靠性分别表示为和 其中 和 分别表示动态备份管\n理策略和均衡备份管理策略下第k个文件不可用的概率,于是两种方法的可靠性差距表示为:reldis=Ra-Rb,图7比较了本发明所提的动态备份管理策略与均衡备份管理策略的系统可靠性,可以看出本发明提到的动态备份管理策略系统可靠性优于均衡备份管理策略。\n设某台服务器处理某个文件的请求响应时间服从概率分布F,则拥有n个备份的文件被请n\n求时的响应时间服从分布为F′=Fmin(1,2,...,n)=1-(1-F),设F服从正态分布N(1,1),系统的整体响应时间为 这里tk为第k个文件的平均响应时间,它服从 图\n8比较了本发明所提的动态备份管理策略与均衡备份管理策略的请求响应时间,可以看出,本发明所提的动态备份管理策略较均衡备份管理策略能缩减系统响应时间。
法律信息
- 2012-11-14
- 2011-02-02
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201010262584.1
申请日: 2010.08.20
- 2010-12-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |