CN117880275A - 一种文件加速下载方法及系统、存储介质 - Google Patents
一种文件加速下载方法及系统、存储介质 Download PDFInfo
- Publication number
- CN117880275A CN117880275A CN202410057905.6A CN202410057905A CN117880275A CN 117880275 A CN117880275 A CN 117880275A CN 202410057905 A CN202410057905 A CN 202410057905A CN 117880275 A CN117880275 A CN 117880275A
- Authority
- CN
- China
- Prior art keywords
- downloading
- terminal
- data block
- download
- server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000001133 acceleration Effects 0.000 claims abstract description 40
- 230000005856 abnormality Effects 0.000 claims description 17
- 230000003139 buffering effect Effects 0.000 claims description 12
- 238000012216 screening Methods 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 10
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000012360 testing method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及文件下载技术领域,公开了一种文件加速下载方法及系统、存储介质。所述文件加速下载方法包括:终端机的加速下载模块,在接收到数据块下载指令时,按照预设的加速下载策略从下载服务器或者种子终端机下载所需数据块并缓存至本机的缓存模块中;种子终端机,是由控制服务器从其他终端机中筛选出的缓存有当前数据块下载指令所要下载数据块的终端机;同时,终端机的状态汇报模块,实时向控制服务器上报本机的状态信息,状态信息至少包括本机的缓存模块所缓存的数据块相关信息。本发明实施例在不改动产线现有流程的前提下,大大减轻了下载服务器的负载,降低了硬件投入成本和维护成本,提高了下载可靠性和下载速度。
Description
技术领域
本发明涉及文件下载技术领域,尤其涉及一种文件加速下载方法及系统、存储介质。
背景技术
工厂生产笔电时,需要下载测试镜像用于生产环节测试,下载出货镜像供用户使用。
测试镜像(平均大小约12GB)文件的下载流程如下:(1)完成笔电组装;(2)放入写号架并插入网线;(3)开机并通过PXE启动PE系统;(4)把服务器路径\\192.168.2.1\Download\映射为H:盘,此时H:等同于\\192.168.2.1\Download\;映射的目的是为了使用方便,两个路径可以相互替代,如下指令1等于指令2;(5)使用工具(如dism工具)把服务器镜像文件还原成本地测试系统。其中镜像文件在服务器上,不用复制到本地;还原后的操作系统安装在本地C盘。
出货镜像(平均大小约18GB)文件的下载流程如下:(1)完成测试系统下载和功能测试;(2)放入老化架完成老化测试;(3)重启并通过PXE启动PE系统;(4)把服务器路径\\192.168.2.1\Download\映射为H:盘,此时H:等同于\\192.168.2.1\Download\;映射的目的是为了使用方便,两个路径可以相互替代;(5)使用工具(dism、7z、客制化工具等)把服务器镜像文件还原成本地出货系统;其中镜像文件在服务器上,不用复制到本地,还原后的操作系统安装在本地C盘。
由上述流程看,无论是测试镜像还是出货镜像,都需要从服务器下载镜像文件,同一组镜像,被每台终端机各下载一次,导致服务器和交换机的负载较重。如图1所示的网络拓扑图中,终端机A、B、C、D全部是从服务器下载数据,服务器负载=单台镜像大小*终端机数量。
此种方式有如下缺点:
(1)单台服务器最多只能支撑50台终端机同时稳定下载。以产能260台/小时的产线为例,需要4台服务器用于测试镜像下载,6台服务器用于出货镜像下载,导致硬件投入成本和维护成本高;
(2)服务器异常时,会造成连接此服务器的终端机全部下载失败,可靠性差;
(3)核心交换机与下载服务器之间的出入口为万兆带宽,然而为了避免下载服务器因流量压力过大而导致宕机,接入交换机与核心交换机之间的出入口配置为较小的千兆带宽,该端口配置严重影响了下载速度。
发明内容
本发明的目的在于提供一种文件加速下载方法及系统、存储介质,以克服现有技术存在的硬件投入成本和维护成本高、可靠性差以及下载速度慢的缺陷。
为达此目的,本发明采用以下技术方案:
一种文件加速下载系统,包括至少一个下载服务器、至少一个控制服务器、交换机网络和多个终端机;所述下载服务器和所述控制服务器分别通过所述交换机网络与所述终端机通信连接;
所述下载服务器上,存储有供所述终端机下载的至少一种资源文件,所述资源文件由多个数据块组成;
所述终端机上设有缓存模块、加速下载模块和状态汇报模块;其中,
所述缓存模块,用于缓存本机下载的数据块;
所述加速下载模块,用于在接收到本机生成的数据块下载指令时,按照预设的加速下载策略从所述下载服务器或者种子终端机下载所需数据块,并将下载的数据块缓存至本机的所述缓存模块中,所述种子终端机由所述控制服务器按照本机发送的下载种子请求确定;
所述状态汇报模块,用于向所述控制服务器上报本机的状态信息,所述状态信息至少包括本机的所述缓存模块所缓存的数据块相关信息;
所述控制服务器,用于管理各个所述终端机的状态信息;还用于在接收到所述终端机的下载种子请求时,根据其他终端机的状态信息,从其他终端机中筛选出缓存有所需数据块的终端机确定为种子终端机,并通知当前终端机。
可选的,所述加速下载模块,每次下载的数据块包括当前的数据块下载指令所要下载的数据块和预下载的数据块;
所述加速下载模块,还用于:在从所述下载服务器或者所述种子终端机下载数据块之前,先判断所要下载的数据块是否已存储于本机的所述缓存模块中,若是则直接从本机的所述缓存模块读取,否则从所述下载服务器或者所述种子终端机处下载。
可选的,所述缓存模块,包括均用于缓存下载数据块的第一缓存空间和第二缓存空间,且所述第一缓存空间内缓存的数据块用于对外分享给其他终端机,所述第二缓存空间内缓存的数据块用于供本机的所述加速下载模块读取。
可选的,所述第一缓存空间的容量大于所述第二缓存空间的容量;且所述第一缓存空间,用于缓存本机至少最近一次下载的数据块;所述第二缓存空间,用于缓存本机最近一次下载的数据块。
可选的,所述终端机上还设有交换机信息获取模块,用于获取当前终端机接入的交换机IP和端口号;
所述控制服务器,在从其他终端机中筛选出缓存有所需数据块的终端机确定为种子终端机的方面,具体用于:
将当前终端机所接入的接入交换机确定为目标交换机,先从接入所述目标交换机的所有终端机中筛选种子终端机,若未筛选出,则再从接入除目标交换机以外的其他接入交换机的所有终端机中筛选种子终端机。
可选的,所述加速下载模块,在按照预设的下载策略从所述下载服务器或者所述种子终端机下载所需数据块的方面,具体用于:
确定本机的当前连接状态;
若本机当前已连接有所述种子终端机,则先从已连接的所述种子终端机下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接所述控制服务器新确定的所述种子终端机并下载数据块,若下载失败,则再从一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前已连接有所述下载服务器,则先从已连接的所述下载服务器下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接所述控制服务器确定的所述种子终端机并下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前未连接所述种子终端机或所述下载服务器,则先向所述控制服务器发送下载种子请求,连接所述控制服务器确定的所述种子终端机并下载数据块,若下载失败,连接至一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作。
可选的,所述终端机,还设有过滤驱动模块,用于监控本机生成的数据块下载指令,判断所述数据块下载指令所要下载数据块所属的资源文件是否需要加速下载,若需要,则将所述数据块下载指令发送至所述加速下载模块以进行加速下载;若不需要,则将所述数据块下载指令直接发送至所述下载服务器以进行正常下载。
一种文件加速下载方法,应用于以上任一项所述的文件加速下载系统,包括:
所述终端机的加速下载模块,在接收到本机生成的数据块下载指令时,按照预设的加速下载策略从所述下载服务器或者所述种子终端机下载所需数据块,并将下载的数据块缓存至本机的所述缓存模块中;所述种子终端机,是由所述控制服务器根据其他终端机的状态信息,从其他终端机中筛选出的缓存有当前的数据块下载指令所要下载数据块的终端机;
同时,所述终端机的状态汇报模块,实时向所述控制服务器上报本机的状态信息,所述状态信息至少包括本机的所述缓存模块所缓存的数据块相关信息。
可选的,所述加速下载模块每次下载的数据块,包括当前的数据块下载指令所要下载的数据块和预下载的数据块;
所述方法还包括:所述加速下载模块在从所述下载服务器或者所述种子终端机下载数据块之前,先判断所要下载的数据块是否已存储于本机的缓存模块中,若是则直接从本机的所述缓存模块读取,否则从所述下载服务器或者所述种子终端机处下载。
可选的,所述种子终端机的筛选方法,包括:
所述控制服务器,将生成当前数据块下载指令的终端机所接入的接入交换机确定为目标交换机,先从接入所述目标交换机的所有终端机中筛选种子终端机,若未筛选出,则再从接入除目标交换机以外的其他接入交换机的所有终端机中筛选所述种子终端机。
可选的,所述加速下载模块按照预设的加速下载策略从所述下载服务器或者所述种子终端机下载所需数据块的方法,包括:
确定本机的当前连接状态;
若本机当前已连接有所述种子终端机,则先从已连接的所述种子终端机下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接所述控制服务器新确定的所述种子终端机并下载数据块,若下载失败,则再从一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前已连接有所述下载服务器,则先从已连接的所述下载服务器下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接控制所述服务器确定的所述种子终端机并下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前未连接所述种子终端机或所述下载服务器,则先向所述控制服务器发送下载种子请求,连接所述控制服务器确定的所述种子终端机并下载数据块,若下载失败,连接至一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作。
可选的,所述文件加速下载方法,还包括:
所述终端机上的过滤驱动模块,监控本机生成的数据块下载指令,判断所述数据块下载指令所要下载数据块所属的资源文件是否需要加速下载,若需要,则将所述数据块下载指令发送至所述加速下载模块以进行加速下载;若不需要,则将所述数据块下载指令直接发送至所述下载服务器以进行正常下载。
一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行以上任一项所述的文件加速下载方法中的步骤。
与现有技术相比,本发明实施例具有以下有益效果:
(1)在不改动产线现有流程的前提下,大大减轻了下载服务器的负载。
本实施例中,下载服务器负载=单台镜像大小*终端机数–终端机之间分享数据大小,显然,终端机之间的分享率越高,下载服务器的负载越轻,产线实际使用时可以减少服务器85%以上的流量压力,进而可以减少每条产线的下载服务器数量,有效降低硬件投入成本和维护成本。
(2)大大提高了下载可靠性。
由于各个下载服务器之间都备份有资源文件,且终端机之间可以共享数据块,因此在单台下载服务器出现异常时,可以自动切换到其他下载服务器或者种子终端机进行下载,有效保障了下载成功率,提高了下载可靠性。
(3)有效提高了下载速度。
由于终端机之间可以共享数据块,减少了从下载服务器下载量,大大减少了所占用带宽,因此即便接入交换机采用较小流量的千兆带宽,也能够实现较快的数据下载。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为现有的网络拓扑图;
图2为本发明实施例提供的网络拓扑图。
图3为现有的文件下载流程示意图。
图4为本发明实施例提供的文件下载流程示意图。
图5为本发明实施例提供的过滤驱动原理图。
图6为本发明实施例提供的在不同连接状态下的下载方法流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种文件加速下载系统,包括至少一个下载服务器、至少一个控制服务器、交换机网络和多个终端机。
所述交换机网络,用于实现下载服务器和控制服务器与终端机之间的通信连接;至少包括核心交换机和多个接入交换机;下载服务器、控制服务器和接入交换机分别接入核心交换机,终端机接入接入交换机;
所述下载服务器上,存储有供终端机下载的至少一种资源文件,资源文件由多个数据块组成;资源文件具体可以测试镜像文件、出货镜像文件等各种文件,具体不限制;
所述终端机上设有缓存模块、加速下载模块和状态汇报模块;其中,
所述缓存模块,用于缓存本机下载的数据块;
所述加速下载模块,用于在接收到本机生成的数据块下载指令时,按照预设的加速下载策略从下载服务器或者种子终端机下载所需数据块,并将下载的数据块缓存至本机的缓存模块中,种子终端机由控制服务器按照本机发送的下载种子请求确定;
所述状态汇报模块,用于向控制服务器上报本机的状态信息,状态信息至少包括本机的缓存模块所缓存的数据块相关信息;
所述控制服务器,用于管理各个终端机的状态信息;还用于在接收到终端机的下载种子请求时,根据其他终端机的状态信息,从其他终端机中筛选出缓存有所需数据块的终端机确定为种子终端机,并通知当前终端机。
由此可见,不同于现有的所有数据块都来自下载服务器的方式,本发明实施例打破了现有瓶颈,将下载服务器的压力分散到各个终端机,请参阅图2,终端机有以下三种的数据块下载途径:
情形A:终端机1无法从其它终端机找到需要的数据块,因此终端机1从下载服务器下载;
情形B:终端机2从终端机6找到需要的数据块,由于终端机2与终端机6所接入的接入交换机不同,因此终端机2跨交换机从终端机6下载数据块;
情形C:终端机8从终端机9找到需要的数据块,由于终端机8与终端机9接入的是同一接入交换机,因此终端机8可以同交换机从终端机9下载数据块。
与现有技术相比,本发明实施例具有以下优点:
(1)在不改动产线现有流程的前提下,大大减轻了下载服务器的负载。
本实施例中,下载服务器负载=单台镜像大小*终端机数–终端机之间分享数据大小,显然,终端机之间的分享率越高,下载服务器的负载越轻,产线实际使用时可以减少服务器85%以上的流量压力,进而可以减少每条产线的下载服务器数量,有效降低硬件投入成本和维护成本。
(2)大大提高了下载可靠性。
由于各个下载服务器之间都备份有资源文件,且终端机之间可以共享数据块,因此在单台下载服务器出现异常时,可以自动切换到其他下载服务器或者种子终端机进行下载,有效保障了下载成功率,提高了下载可靠性。
(3)有效提高了下载速度。
由于终端机之间可以共享数据块,减少了从下载服务器下载量,大大减少了所占用带宽,因此即便接入交换机采用较小流量的千兆带宽,也能够实现较快的下载数据。
另外,需要说明的是,本发明实施例的加速下载方式和P2P下载存在以下本质区别:P2P是文件块搬运工,仅负责把数据块从A搬到B;本发明实施例的加速下载模块是读数据块指令代理执行者,在后台监控所有程序的数据块下载指令并代替其完成数据块的读取,两者对比如下:
进一步的,为便于对比理解,请参阅图3至图5。其中,图3示出了现有的数据块下载流程示意图,图4示出了本发明实施例的数据块下载流程示意图,图5示出了原流程和本发明实施例改进后流程的对比。
如图3所示,现有的数据块下载流程包括:应用层程序(如dism、7z、copy…工具)发送数据块下载指令给文件驱动层,文件驱动层将数据块下载指令发送至下载服务器;下载服务器根据数据块下载指令读取数据块,并依次通过交换机、网卡驱动及文件驱动层将数据块返回至应用层;重复以上数据块下载操作,直至完成资源文件的所有数据块的下载。
如图4和图5所示,本发明实施例中,在终端机内新增了过滤驱动模块和加速下载模块。
由于应用层所有的数据块下载指令,最终都会汇总到文件驱动层,然而有的数据块所属的资源文件比较小,无需加速下载,走正常的下载流程(流程如图3)即可;有的数据块所属的资源文件比较大,需要加速下载(流程如图4),以提高下载速度等。
因此,本发明实施例新增过滤驱动模块,来对本机生成的数据块下载指令进行监控,过滤掉无需加速下载处理的数据块下载指令,如果不需要加速,则走原来的正常下载流程(流程如图3),否则重定向数据块下载指令,使用加速下载模块来从别的种子终端机下载数据块并返回给应用层(流程如图4)。
实际应用中,可以预先设置过滤驱动模块的拦截规则,通过资源文件大小、扩展名和路径辨别是否需要加速,通常只需要对镜像文件等这类较大的资源文件下载进行加速,其它文件不加速。
在现有技术中,终端机的应用层工具(如dism、7z等)在每次生成数据块下载指令后,都会从服务器下载相应大小的数据块,这会产生大量的小网络包,不利于充分使用网络带宽。
为此,本发明实施例中,加速下载模块每次下载的数据块,不仅包括当前的数据块下载指令所要下载的数据块,还包括预下载的数据块。在此基础上,加速下载模块还用于:在从下载服务器或者种子终端机下载数据块之前,先判断所要下载的数据块是否已存储于本机的缓存模块中,若是则直接从本机的缓存模块读取,否则从下载服务器或者种子终端机处下载。
此时,由于加速下载模块每次下载的数据块,不仅包括当前数据块下载指令所要下载的数据块,还据此进行了其他部分相关数据块的预下载,并将预下载的数据块存储于本机的缓存模块中,因此,终端机在下次产生新的数据块下载指令时,可以从本机的缓存模块中读取相应的已经预下载的数据块,无需再从下载服务器或者其他终端机获取,从而减少了所产生的小网络包的数量,进而减少占用的网络带宽。
需要说明的是,种子终端机指的是,针对产生数据块下载指令的终端机而言,缓存有该数据块下载指令所需下载数据块的其他终端机。
所述终端机上还设有交换机信息获取模块,用于获取当前终端机接入的交换机IP和端口号,以便于控制服务器知晓各个终端机所接入的接入交换机。
所述控制服务器,在从其他终端机中筛选出缓存有所需数据块的终端机确定为种子终端机的方面,具体用于:将当前终端机所接入的接入交换机确定为目标交换机,先从接入目标交换机的所有终端机中筛选种子终端机,也即同交换机下载,若未筛选出,则再从接入除目标交换机以外的其他接入交换机的所有终端机中筛选种子终端机,也即跨交换机下载。
同交换机下载方式,与跨交换机下载方式相比,由于互相分享数据块的两个终端机虽属于同一接入交换机,则在数据块共享时无需占用较多的网络带宽,可以实现更为快速的数据下载。
本发明实施例中,缓存模块所缓存的数据块,既用于本机读取,又可用于对外分享给其他终端机。若本机读取与对外分享同时对同一缓存空间进行读写取操作,为了避免多线程引起的数据同步读写问题,需要对该缓存空间进行加锁,而缓存空间加锁又会造成本机读取和对外分享的拥堵等待,进而易出现性能问题。
为此,在一种可选的实施方式中,缓存模块,具体可提供均用于缓存下载数据块的第一缓存空间和第二缓存空间,且第一缓存空间内缓存的数据块用于对外分享给其他终端机,第二缓存空间内缓存的数据块用于供本机的加速下载模块读取。这样,本机和其他终端机所操作的缓存空间相互隔离,互不影响,可获得良好的性能。
示例性的,第一缓存空间的容量为2GB,用于缓存本机至少最近一次下载的数据块;第二缓存空间的容量为10MB,用于缓存本机最近一次下载的数据块。实际应用中,第一缓存空间的容量可根据本机的可用内存大小来配置,其容量越大,则可存储的数据块越多,使得本机能够与其他终端机分享的数据量越大。第二缓存空间的容量可以配置为单次下载的数据块大小,为减小网络包请求次数,进而减少占用带宽,单次下载的数据块大小需大于通常情况下单个数据块下载指令所要求下载的数据块大小,以实现部分数据块的预下载。
请参阅图6,加速下载模块,在按照预设的下载策略从下载服务器或者种子终端机下载所需数据块的方面,具体实现方法为:
确定本机的当前连接状态;
若本机当前已连接有种子终端机,则先从已连接的种子终端机的第一缓存空间下载10MB数据块(也即第二缓存空间的容量大小),若下载失败,则再向控制服务器发送下载种子请求,连接控制服务器新确定的种子终端机下载10MB数据块;若再次下载失败,则再从下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一下载服务器下载数据块,否则等待5秒(可配置)后按照预设的下载策略重新执行下载操作。该流程中,若下载成功,则将下载的数据块同时存储于本机的第一缓存空间和第二缓存空间。
若本机当前已连接有下载服务器,则先从已连接的下载服务器下载数据块,若下载失败,则再向控制服务器发送下载种子请求,连接控制服务器确定的种子终端机并下载数据块,若因网络异常而下载失败,则切换连接至另一下载服务器下载数据块,否则等待5秒(可配置)后按照预设的下载策略重新执行下载操作。同样的,该流程中,若下载成功,则将下载的数据块同时存储于本机的第一缓存空间和第二缓存空间。
若本机当前未连接种子终端机或下载服务器,则先向控制服务器发送下载种子请求,连接控制服务器确定的种子终端机并下载数据块,若下载失败,连接至下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一下载服务器下载数据块,否则等待5秒(可配置)后按照预设的下载策略重新执行下载操作。同样的,该流程中,若下载成功,则将下载的数据块同时存储于本机的第一缓存空间和第二缓存空间。
综上,本发明实施例,不仅可以减少服务器85%以上的流量压力;而且服务器、终端机之间相互备份,在某台服务器/种子终端机异常时,终端机可以自动切换到其它服务器或者种子终端机下载,支持断点续传,大大提高了可靠性;还能够通过预下载,减少网络传输次数(例如,8GB Wim包由99452次减到822次);此外,本发明实施例兼容产线现有系统(Windows 32/64)和平台(Intel和ARM),支持多种下载方式(包含不仅限于dism、7z、copy、xcopy、robocopy、客户工具等等)和多种文件格式(包含不仅限于wim、imz、esd、ios、7z、rar等等),单台下载服务器还支持多机种同时下载,接入层交换机共享千兆带宽而不影响下载速度。
另外,本发明实施例中,终端机上还设有第一信息展示模块,用于在显示界面上展示本机相关信息;
本机相关信息,包括:当前机器IP、从下载服务器/终端机/分享下载的文件大小、当前数据源IP、所接入的交换机IP和端口、消息通知、网卡使用率、网卡带宽、当前状态中的任意组合。
控制服务器上还设有第二信息展示模块,用于在显示界面上展示汇总信息和客户端信息;
汇总信息,包括:Total client number(网络内正在运行加速下载功能软件的终端机总数)、Server Connection number(正在连接服务器下载的终端机数量)、Totaldownload(GB)(网络内终端机请求下载的数据总量)、Server download(GB)(从服务器下载的数据总量)、Total bandwidth(Mbps)(服务器提供的最大网络带宽汇总)、Currentbandwidth(Mbps)(服务器当前发送数据使用的带宽)、Total download server(下载服务器的数量)、Server disk speed(MB/min)(服务器当前的磁盘平均访问速度)中的任意组合;
客户端信息,包括:Client ID(显示终端机的IP)、Client mac(显示终端机的mac地址)、Download from(数据源机器IP)、Link speed(终端机网卡的链接速度)、Elapsedtime(该终端机下载消耗的时间)、Switch port(终端机所在的交换机和端口)、Currentfile(终端机正在下载的文件)、App datasize(终端机累计下载文件的大小)、Srvdatasize(从服务器累计下载文件的大小)、Client datasize(从种子终端机累计下载文件的大小)、Version(终端机程序的版本)、Start time(终端机启动时的系统时间)中的任意组合。
基于上述的文件快速下载系统,本发明实施例还提供了一种文件快速下载方法,包括:
终端机的加速下载模块,在接收到本机生成的数据块下载指令时,按照预设的加速下载策略从下载服务器或者种子终端机下载所需数据块,并将下载的数据块缓存至本机的缓存模块中;种子终端机,是由控制服务器根据其他终端机的状态信息,从其他终端机中筛选出的缓存有当前的数据块下载指令所要下载数据块的终端机;
同时,终端机的状态汇报模块,实时向控制服务器上报本机的状态信息,状态信息至少包括本机的缓存模块所缓存的数据块相关信息。
该方法中,各个步骤的具体实现如上所述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的文件加速下载方法中的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种文件加速下载系统,其特征在于,包括至少一个下载服务器、至少一个控制服务器、交换机网络和多个终端机;所述下载服务器和所述控制服务器分别通过所述交换机网络与所述终端机通信连接;
所述下载服务器上,存储有供所述终端机下载的至少一种资源文件,所述资源文件由多个数据块组成;
所述终端机上设有缓存模块、加速下载模块和状态汇报模块;其中,
所述缓存模块,用于缓存本机下载的数据块;
所述加速下载模块,用于在接收到本机生成的数据块下载指令时,按照预设的加速下载策略从所述下载服务器或者种子终端机下载所需数据块,并将下载的数据块缓存至本机的所述缓存模块中,所述种子终端机由所述控制服务器按照本机发送的下载种子请求确定;
所述状态汇报模块,用于向所述控制服务器上报本机的状态信息,所述状态信息至少包括本机的所述缓存模块所缓存的数据块相关信息;
所述控制服务器,用于管理各个所述终端机的状态信息;还用于在接收到所述终端机的下载种子请求时,根据其他终端机的状态信息,从其他终端机中筛选出缓存有所需数据块的终端机确定为种子终端机,并通知当前终端机。
2.根据权利要求1所述的文件加速下载系统,其特征在于,所述加速下载模块,每次下载的数据块包括当前的数据块下载指令所要下载的数据块和预下载的数据块;
所述加速下载模块,还用于:在从所述下载服务器或者所述种子终端机下载数据块之前,先判断所要下载的数据块是否已存储于本机的所述缓存模块中,若是则直接从本机的所述缓存模块读取,否则从所述下载服务器或者所述种子终端机处下载。
3.根据权利要求2所述的文件加速下载系统,其特征在于,所述缓存模块,包括均用于缓存下载数据块的第一缓存空间和第二缓存空间,且所述第一缓存空间内缓存的数据块用于对外分享给其他终端机,所述第二缓存空间内缓存的数据块用于供本机的所述加速下载模块读取。
4.根据权利要求3所述的文件加速下载系统,其特征在于,所述第一缓存空间的容量大于所述第二缓存空间的容量;且所述第一缓存空间,用于缓存本机至少最近一次下载的数据块;所述第二缓存空间,用于缓存本机最近一次下载的数据块。
5.根据权利要求1所述的文件加速下载系统,其特征在于,所述终端机上还设有交换机信息获取模块,用于获取当前终端机接入的交换机IP和端口号;
所述控制服务器,在从其他终端机中筛选出缓存有所需数据块的终端机确定为种子终端机的方面,具体用于:
将当前终端机所接入的接入交换机确定为目标交换机,先从接入所述目标交换机的所有终端机中筛选种子终端机,若未筛选出,则再从接入除目标交换机以外的其他接入交换机的所有终端机中筛选种子终端机。
6.根据权利要求1所述的文件加速下载系统,其特征在于,所述加速下载模块,在按照预设的下载策略从所述下载服务器或者所述种子终端机下载所需数据块的方面,具体用于:
确定本机的当前连接状态;
若本机当前已连接有所述种子终端机,则先从已连接的所述种子终端机下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接所述控制服务器新确定的所述种子终端机并下载数据块,若下载失败,则再从一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前已连接有所述下载服务器,则先从已连接的所述下载服务器下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接所述控制服务器确定的所述种子终端机并下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前未连接所述种子终端机或所述下载服务器,则先向所述控制服务器发送下载种子请求,连接所述控制服务器确定的所述种子终端机并下载数据块,若下载失败,连接至一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作。
7.根据权利要求1所述的文件加速下载系统,其特征在于,所述终端机,还设有过滤驱动模块,用于监控本机生成的数据块下载指令,判断所述数据块下载指令所要下载数据块所属的资源文件是否需要加速下载,若需要,则将所述数据块下载指令发送至所述加速下载模块以进行加速下载;若不需要,则将所述数据块下载指令直接发送至所述下载服务器以进行正常下载。
8.一种文件加速下载方法,应用于如权利要求1至6任一项所述的文件加速下载系统,其特征在于,包括:
所述终端机的加速下载模块,在接收到本机生成的数据块下载指令时,按照预设的加速下载策略从所述下载服务器或者所述种子终端机下载所需数据块,并将下载的数据块缓存至本机的所述缓存模块中;所述种子终端机,是由所述控制服务器根据其他终端机的状态信息,从其他终端机中筛选出的缓存有当前的数据块下载指令所要下载数据块的终端机;
同时,所述终端机的状态汇报模块,实时向所述控制服务器上报本机的状态信息,所述状态信息至少包括本机的所述缓存模块所缓存的数据块相关信息。
9.根据权利要求8所述的文件加速下载方法,其特征在于,所述加速下载模块每次下载的数据块,包括当前的数据块下载指令所要下载的数据块和预下载的数据块;
所述方法还包括:所述加速下载模块在从所述下载服务器或者所述种子终端机下载数据块之前,先判断所要下载的数据块是否已存储于本机的缓存模块中,若是则直接从本机的所述缓存模块读取,否则从所述下载服务器或者所述种子终端机处下载。
10.根据权利要求8所述的文件加速下载方法,其特征在于,所述种子终端机的筛选方法,包括:
所述控制服务器,将生成当前数据块下载指令的终端机所接入的接入交换机确定为目标交换机,先从接入所述目标交换机的所有终端机中筛选种子终端机,若未筛选出,则再从接入除目标交换机以外的其他接入交换机的所有终端机中筛选所述种子终端机。
11.根据权利要求8所述的文件加速下载方法,其特征在于,所述加速下载模块按照预设的加速下载策略从所述下载服务器或者所述种子终端机下载所需数据块的方法,包括:
确定本机的当前连接状态;
若本机当前已连接有所述种子终端机,则先从已连接的所述种子终端机下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接所述控制服务器新确定的所述种子终端机并下载数据块,若下载失败,则再从所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前已连接有所述下载服务器,则先从已连接的所述下载服务器下载数据块,若下载失败,则再向所述控制服务器发送下载种子请求,连接控制所述服务器确定的所述种子终端机并下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作;
若本机当前未连接所述种子终端机或所述下载服务器,则先向所述控制服务器发送下载种子请求,连接所述控制服务器确定的所述种子终端机并下载数据块,若下载失败,连接至一所述下载服务器下载数据块,若因网络异常而下载失败,则切换连接至另一所述下载服务器下载数据块,否则按照预设的下载策略重新执行下载操作。
12.根据权利要求8所述的文件加速下载方法,其特征在于,所述文件加速下载方法,还包括:
所述终端机上的过滤驱动模块,监控本机生成的数据块下载指令,判断所述数据块下载指令所要下载数据块所属的资源文件是否需要加速下载,若需要,则将所述数据块下载指令发送至所述加速下载模块以进行加速下载;若不需要,则将所述数据块下载指令直接发送至所述下载服务器以进行正常下载。
13.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求8至12任一项所述的文件加速下载方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410057905.6A CN117880275A (zh) | 2024-01-15 | 2024-01-15 | 一种文件加速下载方法及系统、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410057905.6A CN117880275A (zh) | 2024-01-15 | 2024-01-15 | 一种文件加速下载方法及系统、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117880275A true CN117880275A (zh) | 2024-04-12 |
Family
ID=90577278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410057905.6A Pending CN117880275A (zh) | 2024-01-15 | 2024-01-15 | 一种文件加速下载方法及系统、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117880275A (zh) |
-
2024
- 2024-01-15 CN CN202410057905.6A patent/CN117880275A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7958388B2 (en) | Methods and systems for a storage system | |
USRE45806E1 (en) | System and method for the optimization of database access in data base networks | |
US7941595B2 (en) | Methods and systems for a memory section | |
US20060026250A1 (en) | Communication system | |
CN102263822B (zh) | 一种分布式缓存的控制方法、系统及装置 | |
CN111970362B (zh) | 基于lvs的车联网网关集群方法及系统 | |
US7415565B2 (en) | Methods and systems for a storage system with a program-controlled switch for routing data | |
US11403319B2 (en) | High-availability network device database synchronization | |
CA3129982A1 (en) | Method and system for accessing distributed block storage system in kernel mode | |
CN108206839A (zh) | 一种基于多数派数据存储方法、装置及系统 | |
CN110620798B (zh) | Ftp连接的控制方法、系统、设备和存储介质 | |
EP1565819B1 (en) | Methods and systems for a storage system | |
CN117880275A (zh) | 一种文件加速下载方法及系统、存储介质 | |
CN109413142B (zh) | 一种Linux下的iSCSI虚拟代理实现方法 | |
CN117061535A (zh) | 多活构架数据同步方法、装置、计算机设备和存储介质 | |
CN116962446B (zh) | 一种NVMe-oF链路动态管理方法及系统 | |
KR100970212B1 (ko) | 이기종간 db 쿼리의 동적 전환을 이용하여 장애에대처하는 인증 서비스 이중화 방법 및 시스템 | |
CN1889418A (zh) | 一种网络存储方法与网络存储系统 | |
CN214959613U (zh) | 一种负载均衡设备 | |
US7782845B2 (en) | Arbitrated loop address management apparatus method and system | |
CN111901380B (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN116455963A (zh) | 集群节点注册方法、介质、装置及计算设备 | |
CN117666924A (zh) | 一种数据读写的方法、设备和系统 | |
CN118427008A (zh) | 数据库冗余方法、装置、电子设备及存储介质 | |
CN118316956A (zh) | 车控应用程序的网络请求优化方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |