基于云存储的离线下载系统

时间:2024-02-29 点赞:45615 浏览:88569 作者原创标记本站原创

本文是一篇数据库论文范文,数据库类有关毕业论文范文,关于基于云存储的离线下载系统相关毕业论文范文。适合数据库及系统及文件方面的的大学硕士和本科毕业论文以及数据库相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:数据获取是现代网络应用中的重要组成部分,是几乎所有网络操作的前提.下载工具能够帮助用户更加便捷地获取网络资源.该文提出一个基于云存储的离线下载系统,系统保持离线下载原有特色与优点,并引入云存储解决系统存储空间不足和“秒杀”下载率不高的的问题,利用基于文件存储价值的存储更新策略提高云存储系统的存储效率.双机热备技术的引入,有效提高系统整体可靠性.

关 键 词:数据获取;离线下载系统;云存储;存储价值;更新策略;双机热备

中图分类号:TP393文献标识码:A文章编号:1009-3044(2013)03-0457-06

离线下载定义:用户通过连接服务器,提交下载地址或者上传文件种子文件,下载服务器响应用户下载请求并为用户提供代理下载的下载模式.离线下载是普通下载服务的一种扩展,可以有效地解决用户网络环境较差带来的下载缓慢的问题.另一方面,用户可以将一些资源较少的下载任务交给服务器代理完成,这样可以减少用户不必要的等待时间.

在离线下载过程中,用户无需一直保持在线等待下载的完成,可以在服务器完成下载后与服务器创建直连,然后将相关数据文件下载到本地来进行进一步操作.与此同时,服务器可以将该任务所下载的数据存储到服务器本地存储服务器中,当其他用户下载相同任务时,可以直接把该备份传输给用户,这种工作机制就是“秒杀”下载.“秒杀”技术的合理运用进一步提高了离线下载系统的工作效率.

随着计算机技术和网络技术的不断发展,单个数据文件所包含的数据量越来越大,在相同网络环境下,下载文件的时间逐渐变长,此时离线下载的好处将越来越明显,因为其能够与用户建立直接连接保证用户的带宽得到高使用率,减少用户下载该数据文件的等待时间.但是随着大数据时代的到来,离线下载也面临一系列的问题:(1)数据文件的增大,减少了服务器端存储服务器所能存储文件的数量,从而降低下载的“秒杀”率;(2)随着使用离线下载用户的增多,系统压力逐渐增大是系统面临的另外一个问题.

本文以离线下载“秒杀”和系统稳定性切入点,设计一个离线下载系统框架,通过结合云存储技术和文件权重函数来提高系统的“秒杀”能力,同时减少不必要的系统存储开销;利用双击热备技术保证离线下载系统的整体稳定性和业务流畅性.

1云存储数据缓存

在离线下载系统中,存储系统是整个系统得以正常运行的基础.我们所设计的存储系统,以当前比较流行的云存储技术作为支持,同时配合存储更新策略,最大程度地提高整个存储系统资源的有效利用.云存储的引入,很大程度解决服务器端存储资源紧缺的问题,有了存储更新策略的帮助,更有效地将现有存储资源的利用率达到最大化.

1.1云存储

云存储(CloudStorage)是在云计算(CloudComputing)概念上延伸和发展出来的一个新的概念,它通过使用集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能.云存储技术有效的将网络上的闲散结点进行整合利用,同时利用虚拟技术隐藏底层的各种操作,将集群存储虚拟化为对一个特殊存储体的操作,云存储内部的具体存储机制由存储服务器组织和管理.


随着云存储概念的产生,各大存储厂商相继推出自己的云存储产品.Amazon(亚马逊)作为云计算的先驱企业之一,其推出的简单存储服务(S3[1])、简单数据库服务(SimpleDB[2])占有相当可观的云存储市场份额.EMC于2008年利用Mozy[3]进入云存储在线备份市场.2009年,上海电信和EMC在数据中心合作并推出了E云服务,这也表明国内企业也逐渐将目光放到了云计算和云存储上.

离线下载中云存储系统采用桶(Bucket)作为存储的逻辑单位或容器,离线下载系统为每个用户在云存储服务器中分配若干个桶,用户的数据逻辑上都存储在某一个桶内,而实际上数据在服务器端以数据块的格式进行存储,某一文件对应的数据块的数量由文件的大小以及云存储系统预设的块(block)大小所决定,如Hadoop的HDFS[4]文件系统中每个block的预设值为64M,而这个大小也可以根据实际需要增大或者缩小.按照存储服务器存储规则,文件的块数据被分散存储在整个存储服务器的各个节点之上.云存储服务器内,逻辑数据与物理数据的对应关系如图1所示:

为了更好的保证用户数据的完整性,云存储系统一般采用冗余存储策略,为每个数据块额外存储若干个备份,一般常用的备份策略为三份:在整个存储系统中按照节点存储负载选择某一节点存储第一个备份;然后在同一机架或者同一机器集群域中选择一个存储节点存储第二个备份;最后在不同机架或另一存储集群域中挑选一个存储节点存储第三个备份.整个备份过程采用流式存储,三个备份能够几乎同时完成存储,当存储结点完成自身存储块的存储后,将会把存储完成信息更新到管理结点的元数据表内.图2是一个数据块的存储流程示意图:

云存储可以有效解决离线下载系统存储不足的问题,由于云存储系统的可扩展性等特征,使得云存储的空间上限可以说是无限的.云存储技术的引入,使得离线下载系统的存储空间得到很大的扩展,这样有利于更好地发挥系统的“秒杀”能力.相对于原有的存储解决方案,系统的存储可以单独设计和实现,只需要调用存储系统的相关接口,实现对存储在其内的数据进行管理和维护.从而离线系统可以分为下载子系统和云存储子系统两部分,其关系如图3所示:

整个离线下载的云存储系统包括两个组成部分:1.公共存储空间,即离线下载系统Cache,用以存储热门资源以及待移交至用户空间的文件数据.本部分存储空间是离线下载系统“秒杀”机制得以有效实施的必要组成部分;2.用户存储空间,为每个用户开辟的独立空间用以存储用户的私人数据.下载完成后,用户与服务器建立连接,从私人存储空间内将本人数据下载至用户本地.1.2存储更新策略

离线下载系统提供的一个特色服务为“秒杀”下载,即由离线下载系统暂存用户下载数据,这样可以为其他用户下载相同资源时直接将所暂存的数据拷贝给该用户,节省了从网络上下载资源到服务器端的时间,缩短了用户从提交下载请求到最终获得所需数据的整体时间.

云存储极大地扩展了存储服务器的存储能力,但是建立在基础设备投入基础上,需要投入大量资金购买云存储空间;同时在离线下载系统所下载的文件数据中,并不是所有数据都具有长期保存的价值,如长期没有人下载的陈旧数据资源或者那些花费很小代价就能从网络上下载下来的文件数据等.一个有效的公共存储空间更新维护策略,将大大的提高这部分存储空间的利用效率.

为了更好的提高云存储服务器件公共存储空间内所存储文件的命中率,在本文离线下载实现过程中引入文件存储价值函数[5]的概念,为公共存储提供更新策略.整个价值函数,主要考虑以下四方面因素:

1.2.1文件大小

相对而言,大文件的下载代价往往要比小文件来的大,当下载速度保持不变时下载所需要的时间与文件的大小成正比.另外考虑到分布式文件系统在存储小文件过程中,需要将若干小文件进行整合作为一个整体进行存储,因此相对于大文件,存储同等大小的小文件需要花费更多的存储开销.综上考虑,系统将提高大文件的存储价值而相对抑制小文件的价值.例如,我们设置大于10G的文件的文件大小价值为1,文件小于50M的文件的文件大小价值为0,其他介于两者之间的可以通过线性计算得到一个0~1间的小数.

1.2.2总下载时间

单单考虑文件大小往往是不全面的,我们需要综合考虑文件传输过程中的网络限制和其他因素.例如:我们现在有两个下载任务A与B,任务A所下载的文件大小为1G,平均下载速度500k/s;任务B的大小为100M,平均下载速度20k/s.从文件大小考虑,A远大于B,但是上面这个例子中,B的下载时间将比A来的更加长.因此,我们将文件下载总时间也作为决定初始文件价值量的另一个决定因素.通文件大小一样,将文件下载时间映射成为0~10内的一个值,作为初始存储价值的一部分.

1.2.3上一次命中时间

下载被秒杀“秒杀”,系统将会更新该文件上一次命中时间.最近命中时间(LastAccessTime)用以记录公共存储空间内的文件最近一次被命中及拷贝的时间.显然,上次命中时间距当前时间越长,其存储价值也就越小,反之存储价值越大.因此,利用最近命中时间与当前时间的时间差,我们引入一个文件价值的衰减策略如公式(1)所示:

其中,w’为当前文件价值;w为初始文件价值,由文件大小和总下载时间决定;α为衰减因子(介于0到1之间);t为当前时间;t’为上次命中时间.

1.2.4命中次数

文件命中次数的多寡,很大程度上也能体现文件的存储价值.一个命中100次的文件肯定比一个只命中1次的文件更值得存储在公共存储空间内以备“秒杀”.本系统引入了基于文件命中次数的文件价值增益函数如公式(2)所示.

其中,w’为当前文件价值;w为初始文件价值,由文件大小和总下载时间决定;β为增益因子(大于1的数,如:1.1,1.2等);sum(f)标示文件f总命中次数.

综合考虑以上四个文件价值参考因素,系统在首次下载完成和移交文件时,为文件赋值初始文件价值.随后不断更新文件的上次命中时间和命中次数.综合考虑以上四个因素的公共空间文件价值函数如公式(3)所示:

w’等于w*α|t-t’|*βsum(f)(3)

获取当前存储空间内所有文件的文件价值,选取并删除文件价值最小的文件来为新文件腾出空间.上传新文件并将新存入公共空间的文件的信息写入权重表中.本离线下载系统某一时刻公共空间内的文件信息片段如表1所示:

表1公共空间文

本文是一篇数据库论文范文,数据库类有关毕业论文范文,关于基于云存储的离线下载系统相关毕业论文范文。适合数据库及系统及文件方面的的大学硕士和本科毕业论文以及数据库相关开题报告范文和职称论文写作参考文献资料下载。

件信息表

2双机热备

为了能够进一步提高整个离线下载系统的系统稳定性,系统在实现中对管理结点采用双机热备技术[6-7].热备份与普通备份相比,更加强调高可用这一特点.热备份主要是为了保障业务的连续性,实现的方法是故障点的转移.离线下载系统中,为了更好响应用户请求,需要尽可能保证管理结点特别是任务队列的安全,从而保证整个系统的运行.在系统运行过程中,需要尽可能减少由于人为误操作和其他非人为原因所带来的管理结点当机或者重启所引起的下载开销的增加.双击热备技术可以在很大程度上,减少系统由于管理结点或者系统主节点出问题而导致的系统整体性故障.

离线下载系统中的双机热备,顾名思义就是在系统中同时运行两个管理节点(一个作为当前管理结点,另一个作为备用结点),当管理节点遇到故障需要维护重启时,备用管理节点可以直接将其替换,这样整个系统的业务连续性没有被打破,只是由备用节点取代原管理节点执行调度和监控功能.当故障节点排除故障后,可以作为备用节点加入系统中.本系统所采用的双机热备体系结构如图4所示:

当前管理节点与备用管理节点在系统运行过程中,利用心跳技术(heartbeat)实现两台机器之间的信息同步,确保备用结点取代管理结点时,不遗漏原管理结点内的任何信息.

任一时刻,整个离线下载系统中只有一个管理结点作为整个系统的核心管理结点,另一个结点作为该结点的备份结点.管理结点无论有任何的更新操作,首先会将更新,以心跳的形式移交给备份结点,从而保证两个结点信息保持一致.心跳信息形式如公式(4)所示:

当备份管理结点超过某个时间阀值而没有接收到管理结点所发送的心跳信息时,将取代管理结点作为新的管理结点运行,并标记管理结点故障,让系统管理员能及时修复原管理结点的故障.待故障排除后加回离线下载系统内时,该结点将作为备份结点重新运行在整个离线下载系统中,当前管理结点将把其本地数据备份到该备份节点上.3离线下载系统设计

离线下载采用模块化[8]实现技术,模块化设计与开发有利于团队内各开发人员间的协同工作,有利于模块接口的规范化管理,现在比较流行的一种设计实现方案.这种方案可以有效提高系统开发并行度,同时提高系统设计规范化,有利于监控管理系统实现的整个过程.

离线下载系统通过划分主要可以分为:接口模块,调度管理模块以及下载实现模块这三大主要模块,模块与模块之间通过各自接口相互链接,相互协作,实现整体功能.以下根据模块做进一步介绍与分析.模块关系图如图5所示:

图5离线下载系统框架图

离线下载系统主要功能模块介绍:

1)下载请求获取:验证用户命令合法性,将符合要求的下载请求创建系统内部任务,并将其放入等待下载队列中;

2)下载任务管理:协调系统内所有下载任务的有序调度和监控,平衡底层下载服务器的负载;

3)下载实现:下载服务器从任务队列中获取下载任务,建立下载子进程,完成下载后将下载数据上传到云存储服务器的公共空间内;

4)信息检索与反馈:响应用户查询请求,查询系统数据库,返回用户的查询信息.

3.1下载任务提交

当前主要的下载主要包括以下两种形式:通过FTP/HTTP地址的直接下载以及利用种子文件的P2P下载.

用户在系统客户端输入所要下载的文件地址或者选择本地种子文件,提交REST[9,10]请求至系统接口服务器并将种子文件传输到接口服务器上.服务器对用户请求进行解析,验证下载地址或者种子文件有效性,若无效则反馈错误信息给用户,否则便将该请求添加到下载请求队列中,执行下载并反馈请求成功信息给用户.

在验证HTTP/FTP等下载地址有效性过程中,接口服务器利用预下载技术.若能够正常进行预下载,则验证通过,将该下载请求插入到下载队列内;若不能正常预下载,则收集错误信息,并将其反馈给用户.

在验证种子文件过程中与普通下载稍有不同,并不是执行预下载开是否能下载成功,而是直接利用读取文件中的md5值等标示来直接进行计算验证,只有当该验证正确后方能将该任务加入到下载队列中,否则该种子文件无效.

整个离线下载系统的提交与响应过程如图6所示:

图6离线下载任务提交流程

3.2下载任务执行

经过系统调度管理器,下载结点从下载请求队列中取回下载请求信息,执行下载任务的整个流程如图7所示:

离线下载任务执行流程:

1)下载系统收到下载请求,首先验证请求的合法性,若请求不合法则向用户反馈信息;若合法,则将请求下载插入待下载队列,等待下载执行;

2)系统管理器遍历服务器文件暂存表,若能找到匹配的文件则直接下载完成,向用户空间移交数据;否则跳至步骤3;

3)下载服务器获取下载任务信息,首先遍历当前下载队列,若有相同任务处于执行,则将新任务与该任务合并,更新下载信息至系统数据库;若不存在,则跳转转至步骤4;

4)下载服务器为新任务建立下载进程执行下载,下载完成后将数据上传到离线下载存储服务器公共空间;

5)监控下载任务执行情况,更新下载信息至系统数据库,当某一任务被上传到系统公共空间内时,负责将其移交给相关用户和更新存储服务器数据表.

整个下载流程通过合理结合秒杀下载,合并下载等技术手段,有效减少重复下载,最大程度利用已有资源,提高了系统的整体下载效率.

4离线下载系统实现

在实现完成的离线下载的客户端系统中,用户可以执行提交任务,浏览当前下载情况及将已下载完成的文件拷贝到本地等操作.在任务下载界面内,所有提交成功的任务以及其当前下载状态都将会在此显示,同时用户也能对这些任务进行一些必要的操作.在拷贝界面中,会罗列所有已经完成下载,并被移交至用户私人云存储空间内的文件,用户可以在这里直接对文件进行操作或者将该文件下载到用户本地进行其他进一步的操作.

4.1下载监控

用户可以通过任务监控界面中浏览其所有全部成功提交的下载任务的下载状态信息,其包括该下载任务的可用资源数(对于Ftp、Http等非P2P下载,该值只能为0或1);当前下载状态包括:waiting、downloading、downloaded和copying等状态;下载剩余时间和当前下载速度等信息.用户也能通过提交取消下载任务请求来组织最终系统将任务文件拷贝至用户存储空间下.用户当前下载任务信息如图8所示:

4.2拷贝任务

当下载任务完成后,离线下载系统将把相关文件拷贝至用户空间下,用户可以在自己的存储空间内浏览和操作该文件,也可以将该文件传输到用户本地来做进一步操作.此时用户能够直接与云存储服务器创建直接连接,下载速度将仅由用户网络带宽资源决定,而不受其他网络条件的局限.下载用户到本地的操作如图9所示:

5结束语

本文系统介绍了基于云存储的离线下载系统的设计与实现,在云存储系统中包括系统公共存储空间和用户私人空间两块存储区域,离线下载系统相应用户下载请求之后,首先将数据下载存储在公共存储空间内,随后再将公共存储空间内数据拷贝至用户私人空间下.通过云存储技术和文件价值函数的有效结合,在提高系统“秒杀”几率的同时,减少不必要的存储开销,降低离线下载系统的存储成本.另外,为了保证离线下载系统的业务连续性,系统采用双机热备技术,在监控管理节点出现故障而导致不能发挥其必要功能时,备用管理节点能够及时予以取代,保证整个系统能够继续正常运行.

相关论文

巧用百度网盘离线下载网络资源

本文是一篇链接论文范文,关于链接专升本毕业论文开题报告,关于巧用百度网盘离线下载网络资源相关学年毕业论文范文。适合链接及按钮及记者方。

细数那些免费的离线下载资源

本文是一篇高科技论文范文,高科技相关毕业论文题目,关于细数那些免费的离线下载资源相关在职研究生毕业论文范文。适合高科技及文件及旋风方。

快速炼成离线下载达人

本文是一篇积分论文范文,关于积分方面硕士学位论文,关于快速炼成离线下载达人相关在职研究生毕业论文范文。适合积分及迅雷及文件方面的的大。

免费迅雷离线下载

本文是一篇链接论文范文,链接类毕业论文范文,关于免费迅雷离线下载相关硕士学位毕业论文范文。适合链接及按钮及脚本方面的的大学硕士和本科。

利用P2P下载工具实现离线下载服务

本文是一篇数据库论文范文,关于数据库相关研究生毕业论文开题报告,关于利用P2P下载工具实现离线下载服务相关本科论文范文。适合数据库及操。

离线系统更加灵活

本文是一篇工程师论文范文,工程师相关专科毕业论文开题报告,关于离线系统更加灵活相关毕业论文范文。适合工程师及可靠性及套筒方面的的大学。

精彩剧集离线看

关于界面及按钮及视频方面的免费优秀学术论文范文,界面类有关毕业论文格式要求,关于精彩剧集离线看相关论文范文,对写作界面论文范文课题。

WP8游戏也能离线安装

该文为计算机方面函授毕业论文范文,与WP8游戏也能离线安装相关论文封面格式,可作为论文格式专业计算机论文写作研究的大学硕士与本科毕业论。