文件下载方法和系统
文献发布时间:2023-06-19 18:56:39
技术领域
本申请涉及下载技术领域,尤其涉及一种文件下载方法和系统。
背景技术
在相关技术中,现有服务器测试或现网运维中,采用运维工具对服务器进行批量升级。主要为离线本地升级和在线升级两种方式,其本质都是将固件包传输到服务器后再执行升级,固件文件都是运维端和服务器设备端点对点的传输控制。
目前,在执行升级前,文件会分发到批量升级的每一台被纳管的服务器中,完成文件传输后的服务器才可触发升级。
但是,对于上述方案,在执行升级过程中需要将同一个文件分别分发到批量升级的每一服务器中,传输过程会随着服务器的数量和文件大小增加而延长,增加了升级时间。
公开于该背景技术部分的信息仅仅旨在增加对本申请的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本申请实施例提供了一种文件下载方法和系统,能够加快文件下载速度。
第一方面,本申请实施例提供了一种文件下载方法,方法包括:运维设备将接收到的待下载文件分成多个文件块,生成文件引导信息;其中,所述文件引导信息包括多个所述文件块的种子文件;所述多个电子设备中的至少一个电子设备获取所述文件引导信息,并基于所述种子文件,从所述运维设备进行文件块下载;在所述电子设备存在未下载的目标文件块,且其他所述电子设备已下载到所述目标文件块的情况下,所述电子设备基于所述种子文件从已下载到所述目标文件块的电子设备下载所述目标文件块。
本方案中,一方面,利用不同电子设备之间的资源,可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到海量的电子设备中,可以提高文件下载的速度,降低运维管理的负荷。
在一种可能的实现方式中,至少一个所述电子设备从所述运维设备或已经下载所述文件引导信息的电子设备中,下载所述文件引导信息。
本方案中,可以充分利用运维设备或已经下载文件引导信息的电子设备,获取文件引导信息下载,从而便于快速实现文件引导信息的下载。
在一个例子中,所述多个电子设备中的至少一个电子设备获取所述文件引导信息,包括:所述运维设备在接收到所述待下载文件的下载请求时,将所述文件引导信息发送到多个电子设备中的至少一个电子设备。
本方案中,运维设备将文件引导信息下发到电子设备,从而使得电子设备无需其他的操作,即可快速获取到文件引导信息。
在一种可能的实现方式中,在所述电子设备从所述运维设备进行文件块下载的过程中,所述运维设备获取每个所述电子设备的下载情况,所述下载情况用于表示每个所述电子设备已下载到的文件块。
本方案中,为了了解电子设备整体的文件块下载情况,运维设备可以对电子设备的文件块下载情况进行监控。
在一个例子中,所述电子设备基于所述种子文件从已下载到所述目标文件块的电子设备下载所述目标文件块,包括:所述电子设备基于所述种子文件中的目标文件块的标识,生成目标文件块的请求;所述电子设备基于所述种子文件中的所述运维设备的地址,向所述运维设备发送所述请求;所述运维设备基于所述多个电子设备的文件块的下载情况,响应所述目标文件块的请求,确定所述目标文件块所在电子设备的第一名单;所述电子设备基于所述运维设备发送的第一名单,从所述第一名单中的至少一个电子设备下载所述目标文件块。
本方案中,电子设备可以和运维设备交互,从运维设备处获取到需要下载的文件块所在的电子设备的名单,从而可以与名单中的电子设备建立连接,获取文件块下载。
在一个例子中,所述所述电子设备基于所述种子文件从已下载到所述目标文件块的电子设备下载所述目标文件块,包括:所述运维设备根据每个所述电子设备的下载情况,生成第二名单,并将所述第二名单发送至各个所述电子设备,所述第二名单用于表示所述多个文件块各自所在的电子设备的地址;所述电子设备基于所述第二名单,从已下载到所述目标文件块的电子设备进行文件块下载。
本方案中,运维设备可以监控电子设备的文件块的下载情况,得到多个文件块所在的电子设备的名单,电子设备可以和运维设备交互,从运维设备处获取到需要下载的文件块所在的电子设备的名单,从而可以与名单中的电子设备建立连接,获取文件块下载。
在一种可能的实现方式中,所述电子设备基于所述种子文件从已下载到所述目标文件块的电子设备下载所述目标文件块,包括:所述电子设备与自身之外的其他的所述电子设备之间进行通信,以了解已经下载的目标文件块的电子设备,并从了解到的已下载到所述目标文件块的电子设备进行文件块下载。
本方案中,电子设备之间可以相互通信,从而充分利用电子设备的资源,快速实现文件的下载。
在一种可能的实现方式中,所述待下载文件为电子设备的设备文件,所述设备文件至少为如下的一种:操作系统的镜像文件、电子设备中的任一部件所需的固件和/或所述电子设备所需的驱动程序。
在一种可能的实现方式中,所述多个电子设备为参与所述待下载文件的批量下载的电子设备,位于一个机房内。
本方案中,一方面,利用批量更新的不同电子设备之间的资源,可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到批量升级的海量的电子设备中,可以降低文件下载的时间以及运维管理的负荷。
在一种可能的实现方式中,所述电子设备包括带内设备和带外设备,所述带内设备或带外设备从已下载到所述目标文件块的带内设备或带外设备进行文件块下载。
第二方面,本申请实施例提供了一种文件下载方法,应用于电子设备,包括:从运维设备或已经下载文件引导信息的电子设备中获取文件引导信息;其中,所述运维设备用于将待下载文件分成多个文件块,生成所述文件引导信息,所述文件引导信息包括多个文件块的种子文件;在存在未下载的目标文件块,且其他所述电子设备未下载到所述目标文件块的情况下,基于所述种子文件,从所述运维设备进行文件块下载;在存在未下载的目标文件块,且其他所述电子设备已下载到所述目标文件块的情况下,基于所述种子文件,从已下载到所述目标文件块的电子设备进行文件块下载。
本方案中,一方面,利用不同电子设备之间的资源,可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到海量的电子设备中,可以提高文件下载的速度,降低运维管理的负荷。
在一种可能的实现方式中,所述基于所述种子文件,从已下载到所述目标文件块的电子设备进行文件块下载,包括:基于所述种子文件中的目标文件块的标识,生成目标文件块的请求;基于所述种子文件中的所述运维设备的地址,向所述运维设备发送所述请求,以使所述运维设备基于所述多个电子设备的文件块的下载情况,响应所述目标文件块的请求,确定所述目标文件块所在电子设备的第一名单;基于所述运维设备发送的所述第一名单,从所述第一名单中的至少一个电子设备下载所述目标文件块。
本方案中,电子设备可以和运维设备交互,从运维设备处获取到需要下载的文件块所在的电子设备的名单,从而可以与名单中的电子设备建立连接,获取文件块下载。
在一种可能的实现方式中,所述基于所述种子文件,从已下载到所述目标文件块的电子设备进行文件块下载,包括:基于所述种子文件,与自身之外的其他的所述电子设备之间进行通信,以了解已经下载的目标文件块的电子设备,并从了解到的已下载到所述目标文件块的电子设备进行文件块下载。
本方案中,电子设备之间可以相互通信,从而充分利用电子设备的资源,快速实现文件的下载。
在一种可能的实现方式中,所述基于所述种子文件,从所述运维设备进行文件块下载,包括:基于所述种子文件中的目标文件块的标识,生成目标文件块的请求;向所述运维设备发送所述请求,以使所述运维设备基于所述多个电子设备的文件块的下载情况,响应所述目标文件块的请求,在确定所述多个电子设备中不存在目标文件块时,下发目标文件块;下载所述运维设备下发的目标文件块。
本方案中,在电子设备中不存在文件块时,可以直接从运维设备处获取文件块,快速实现文件的下载。
第三方面,本申请实施例提供了一种文件下载系统,包括运维设备和多个电子设备,所述运维设备与多个所述电子设备连接,其中,所述运维设备用于将获取到的待下载文件分成多个文件块,生成文件引导信息;其中,所述文件引导信息包括多个文件块的种子文件;所述电子设备用于实现第二方面所示的方法。
本方案中,一方面,利用批量更新的不同电子设备之间的资源,可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到海量的电子设备中,可以降低文件版本更新的时间以及运维管理的负荷。
在一种可能的实现方式中,所述多个电子设备为参与所述待下载文件的批量下载的电子设备,位于一个机房内。
本方案中,一方面,利用批量更新的不同电子设备之间的资源,可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到批量升级的海量的电子设备中,可以降低文件下载的时间以及运维管理的负荷。
第四方面,本申请实施例提供了一种文件下载装置,文件下载装置包括若干个模块,各个模块用于执行本申请实施例第一方面提供的文件下载方法中的各个步骤,关于模块的划分在此不做限制。该文件下载装置各个模块所执行的具体功能及达到的有益效果请参考本申请实施例第一方面提供的文件下载方法的各个步骤的功能,在此不再赘述。
示例地,文件下载装置,应用于电子设备,包括:
信息下载模块,用于从运维设备或已经下载文件引导信息的电子设备中获取文件引导信息;其中,所述运维设备用于将待下载文件分成多个文件块,生成所述文件引导信息,所述文件引导信息包括多个文件块的种子文件;
第一下载模块,用于在存在未下载的目标文件块,且其他所述电子设备未下载到所述目标文件块的情况下,基于所述种子文件,从所述运维设备进行文件块下载;
第二下载模块,用于在存在未下载的目标文件块,且其他所述电子设备已下载到所述目标文件块的情况下,基于所述种子文件,从已下载到所述目标文件块的电子设备进行文件块下载。
在实际应用中,文件下载装置运行计算机程序指令,以执行第二方面中所提供的方法。示例性的,该装置可以为芯片,或处理器。
在一个例子中,该装置可以包括处理器,该处理器可以与存储器耦合,读取存储器中的指令并根据该指令执行第二方面中所提供的方法。其中,该存储器可以集成在芯片或处理器中,也可以独立于芯片或处理器之外。
第五方面,本申请实施例提供了一种电子设备,包括:带内设备和带外设备,所述带内设备和所述带外设备分别执行第二方面所述的方法。
第六方面,本申请实施例提供了一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第二方面中所提供的方法。
第七方面,本申请实施例提供了一种电子设备,包括:带内设备,包括带内存储器和带内处理器,所述带内存储器用于存储程序;所述带内处理器,用于执行所述带内存储器存储的程序,当所述带内存储器存储的程序被执行时,所述带内处理器用于执行如第二方面所述的方法;
带外设备,包括带外存储器和带外处理器,所述带外存储器用于存储程序;所述带外处理器,用于执行所述带外存储器存储的程序,当所述带外存储器存储的程序被执行时,所述带外处理器用于执行如第二方面所述的方法。
第七方面,本申请实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第二方面中所提供的方法。
第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第二方面中所提供的方法。
附图说明
图1是本申请实施例提供的文件下载系统的系统架构图;
图2是图1提供的系统的运维和固件版本更新的示意图;
图3是图1提供系统的文件下载方案的示意图一;
图4是图1提供系统的电子设备的结构示意图;
图5是图4的文件下载方案的示意图;
图6是图1提供系统的具体功能的示意图;
图7a是本申请实施例提供的文件引导信息获取方法的示意图一;
图7b是本申请实施例提供的文件引导信息获取方法的示意图二;
图7c是本申请实施例提供的文件引导信息获取方法的示意图三;
图8a是图7a示出的文件引导信息获取方法的流程示意图;
图8b是图7b示出的文件引导信息获取方法的流程示意图;
图8c是图7c示出的文件引导信息获取方法的流程示意图;
图9a是本申请实施例提供的电子设备的文件下载方法的流程示意图一;
图9b是本申请实施例提供的电子设备的文件下载方法的流程示意图二;
图10是本申请实施例提供的电子设备的文件下载方法的流程示意图三;
图11是图10中步骤1001的流程示意图;
图12a是本申请实施例提供的第一BMA设备和第二电子设备通信的示意图一;
图12b是本申请实施例提供的第一BMA设备和第二电子设备通信的示意图二;
图13是本申请实施例提供的一种文件下载方法的具体示例的示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本申请实施例中的技术方案进行描述。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个终端是指两个或两个以上的终端。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
图1示出了本申请实施例提供的一种文件下载系统的架构示例图。本申请实施例提供了文件下载方法可以应用于如图1所示的系统架构图。如图1所示,文件下载系统包括多个电子设备110、运维设备120和运维管理设备130,举例地,运维设备120可以包括第一运维设备121、第二运维设备122。
其中,多个电子设备110如服务器集群或机柜服务器等,电子设备110可以但不限于是各种物理服务器,比如,刀片服务器,机架服务器等。这里,多个电子设备110之间通过网络1相互连线,网络1可以为有线网络。示例地,有线网络可以为电缆网络、光纤网络等。本申请实施例中,设备集群110可以认为是一个机房中的所有电子设备110组成的集群,或者,可以相同通信的多个机房中的所有电子设备110组成的集群。
其中,第一运维设备121为对设备集群110进行运维的设备,靠近设备集群110,可以为一个电子设备也可以为多台电子设备,本申请实施例对此不做具体限定。值得注意的是,在实际应用中,如图2所示,第一运维设备121和设备集群111可以位于同一机房内,可以认为是近端运维设备。在一个例子中,第一运维设备121连接到网络1,从而实现和设备集群110的通信。
其中,第二运维设备122为对设备集群110进行运维的设备,远离设备集群110,可以为运维平台,可以为一台电子设备也可以为多台电子设备,本申请实施例对此不做具体限定。在一个例子中,第二运维设备122位于设备集群110所在的机房之外,可以认为是远端运维设备。在一个例子中,第二运维设备122通过网络2和网路1连接实现与设备集群110通信。可选地,网络2网络可以为有线网络或无线网络。示例地,有线网络可以为电缆网络、光纤网络、数字数据网(Digital Data Network,DDN)等,无线网络可以为电信网络、内部网络、互联网、局域网络(Local Area Network,LAN)、广域网络(Wide Area Network,WAN)、无线局域网络(Wireless Local Area Network,WLAN)、城域网(Metropolitan AreaNetwork,MAN)、公共交换电话网络(Public Service Telephone Network,PSTN)、蓝牙网络、紫蜂网络(ZigBee)、移动电话(Global System for Mobile Communications,GSM)、CDMA(Code Division Multiple Access)网络、CPRS(GeneralPacketRadioService)网络等或其任意组合。可以理解的是,网络可使用任何已知的网络通信协议来实现不同客户端层和网关之间的通信,上述网络通信协议可以是各种有线或无线通信协议,诸如以太网、通用串行总线(universal serial bus,USB)、火线(firewire)、全球移动通讯系统(globalsystem for mobile communications,GSM)、通用分组无线服务(general packet radioservice,GPRS)、码分多址接入(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-divisioncode division multiple access,TD-SCDMA)、长期演进(long term evolution,LTE)、新空口(new radio,NR)、蓝牙(bluetooth)、无线保真(wireless fidelity,Wi-Fi)等通信协议。
进一步地,第二运维设备122也可以通过第一运维设备121对设备集群110进行运维管理。在一个例子中,第二运维设备122和第一运维设备121之间通过网络3通信,网络3参见上文对网络2的描述,不再赘述。如图2所示,第二运维设备122可以对第一运维设备121进行离线文件管理。
其中,运维管理设备130为对设备集群110和第二运维设备120进行运维管理的设备,可以为终端设备,终端设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。本方案中涉及的终端设备的示例性实施例包括但不限于搭载iOS、android、Windows、鸿蒙系统(Harmony OS)或者其他操作系统的电子设备,本申请实施例对电子设备的类型不做具体限定。运维管理设备130通过网络5连接网络1实现与设备集群的通信,和第二运维设备120通过网络4通信,网络4和网络5可以参见上文对网络2的描述,不再赘述。另外,运维管理设备130可以通过第二运维设备120管理第一运维设备121。如图2所示,运维管理设备130可以控制第二运维设备122对设备集群120进行在线运维,以及,固件版本更新;以及,控制第一运维设备121进行离线运维。
在相关技术中,现有服务器测试或现网运维中,采用运维工具对服务器进行批量升级。主要为离线本地升级和在线升级两种方式,其本质都是将固件包传输到服务器后再执行升级,固件文件都是运维端和服务器设备端点对点的传输控制。在数据中心规模化的扩张下,机房中设备数量增长迅速,但是受限于运维软件管理能力和数据传输网络的能力,设备文件传输升级流程就会延长,且批量升级设备越多该过程就越漫长。随着用户和运维人员对速度的要求和使用体验提升,在不提升使用成本的基础上,对运维网络带宽利用率和服务器批量管理的能力上提出了更高的期望。
在相关技术中,当前在机房中进行批量升级的方式如下:假设机房内包含第一运维设备121和设备集群110,客户或运维人员通过运维管理设备130控制第一运维设备121或第二运维设备122下发设备集群110的升级任务。在执行升级前,文件会通过第一运维设备121传输或第二运维设备122推送的方式分发到设备集群110中的每一台被纳管的电子设备110中,完成文件传输后的电子设备110才可触发升级。但是,对于上述方案,一方面,第一运维设备121或第二运维设备122在传输文件的过程中会占用大量的网络带宽资源,该资源会影响设备集群110提供服务的质量。另一方面,在执行升级过程中需要将同一个文件分别分发到设备集群111中每一台被纳管的电子设备110中,传输过程会随着电子设备110的数量和文件大小增加而延长运维时长,增加了时间成本和运维管理设备130的负荷。
如图3所示,本申请实施例中,运维设备120将待下载文件分成N个文件块,得到文件引导信息,参与批量下载的多个电子设备110从运维设备120或已经下载文件引导信息的电子设备110下载文件引导信息,之后,电子设备110在参与批量下载的多个电子设备110均未下载自身缺少的文件块时,从运维设备120中下载自身缺少的文件块,在参与批量下载的多个电子设备110中存在已经下载自身缺少的文件块的电子设备110时,基于文件引导信息,与已经下载自身所缺文件块的电子设备110通信,实现文件块的下载;换言之,参与批量更新的多个电子设备110之间进行通信实现待下载文件分片后的文件块的传输,从而使得设备集群110中的参与批量更新的每个电子设备110各自得到完整的文件后实现设备文件的更新。通过本申请实施例提供的技术方案,不同电子设备之间的资源的互补形式的,一方面可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到设备集群111中的电子设备110中,可以降低运维管理设备130的负荷。
这里,待下载文件可以为电子设备110中的设备文件,比如,固件,驱动,或者,操作系统的镜像文件等。另外,待下载文件具有版本,待下载文件的版本可以高于或低于电子设备110已经安装的设备文件的版本。
这里,文件引导信息可以理解为一种资源文件,可以实现N个文件块的定位。目前主流的文件引导信息至少包括种子文件,比如可以为种子文件,在实际应用中,可以创建种子文件的磁力链接(Magnet URI scheme),电子设备110可以基于磁力链接运维设备120或者已经下载到种子文件的电子设备110中获取到种子文件,本申请实施例中,对等网络由多个电子设备110和运维设备120。本申请实施例主要围绕种子文件说明文件引导信息,但考虑到文件引导信息的多样性以及未来可能出现更多新的文件引导信息,本申请并不限制文件引导信息的具体类型。其中,种子文件包括文件名、大小、文件的分块信息和一个指向追踪器的超级链接Url(uniform resource locator,统一资源定位系统),种子文件为后缀为.torrent的文件。本申请实施例中,追踪器为第一运维设备121或第二运维设备122。其中,Magnet URI全称为Magnet Uniform Resource Identifier即“磁力统一资源定位名”,其主要支持参数(即组成部分)如下:dn(显示名称)-文件名、xl(绝对长度)-文件字节数、xt(eXact Topic)-包含文件散列函数的URN、as(Acceptable Source)-Web link to thefile online、xs(绝对资源)-P2P链接、kt(关键字)-用于搜索的关键字、mt(文件列表)-链接到一个包含magnet链接的元文件(MAGMA-MAGnet Manifest)、tr(Tracker地址)-BT下载的Tracker URL。值得注意的是,采用磁力链接寻找种子文件的方式中,种子文件可以不再具有提供一个指向追踪器的超级链接Url,即Tracker服务的设备地址。
进一步的,如图4所示,电子设备110包括带内设备(为了便于描述和区别,称为BMA设备)和带外设备(为了便于描述和区别,称为BMC设备)。BMA设备安装有P2P客户端C1,BMC设备安装有P2P客户端C2。BMC设备是一种管理控制器,是独立于BMA设备之外的小型操作系统,可以直接对外通信。
其中,BMA设备包括处理器A1、存储器B1和网卡C1。
处理器A1可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器B1可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
示例地,存储器B1上可以存储P2P客户端C1的程序,且具有存放文件块的存储管理空间b1。在实际应用中,可对P2P客户端C1进行参数配置。处理器A1执行P2P客户端C1的程序时实现P2P下载。需要说明的是,P2P客户端C1用于实现开启点对点对等连接(peer topeer,P2P)下载。在一个例子中,P2P客户端C可以实现BT(BitTorrent,是一种互联网的P2P传输协议)下载,本质为BT程序。
网卡C1用于收发数据,例如,将处理器A1处理后的文件块发送至其他的电子设备110,或者,接收其他的电子设备110发送的文件块等。在实际应用中,BMA设备需要提供设备地址,从而便于其他的电子设备与BMA设备通信。在实际应用中,通过网卡C1与其他的电子设备110通信,因此,BMA设备需要提供网卡C1的IP地址(为了便于描述和区别,可以称为带内地址)。
其中,BMC设备包括处理器A2和存储器B2。处理器A2和存储器B2的详细内容参见上文对处理器A1和存储器B1的描述,区别仅仅在于BMC设备的功能相对简单,存储器B2的存储容量远小于存储器B1,处理器A2相对处理器A1也较为简单。另外,存储器B2安装P2P客户端C2,且具有存放文件块的存储管理空间b2在实际应用中,可对P2P客户端C2进行参数配置。P2P客户端C2参见上文对P2P客户端C1的描述,不再赘述。在实际应用中,BMC设备需要提供设备地址,从而便于其他的电子设备与BMC设备通信。在实际应用中,BMC设备可以直接与其他的电子设备110通信,因此,BMC设备需要提供的自身的IP地址(为了便于描述和区别,可以称为带外地址)。
当然,为了简化,图4中仅示出了该电子设备110中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备110还可以包括任何其他适当的组件。本领域技术人员可以理解,图4仅仅是电子设备110的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本方案中,不同电子设备110及相同的电子设备110中的BMA设备和BMC设备之间彼此通信,从而充分利用网络带宽。另外,BMA设备和BMC设备均可以接收文件块,避免带内外某一端异常导致下载文件受到影响。
需要说明的是,参数配置可以在确保正常提供服务的基础上,更好的下载文件块。参数配置所配置的主要参数包括:是否开启P2P下载功能、开启时带外资源限值、开启时带内资源限值、下载带宽阈值、功能开启时段、下载文件大小阈值、下载文件类型。其中,开启时带内资源限值可以包括处理器的最高利用率、内存最高利用率等,开启时带外资源限值可以包括处理器的最高利用率、存储最高利用率等。在实际应用中,当BMA设备达到开启时带内资源限值时,此时,可以暂停文件下载,另外,在BMC设备没有达到带外资源限值时,控制BMC设备进行文件下载。其中,下载带宽阈值指示了P2P下载的最高带宽,考虑到电子设备110在设备文件的过程中还需要正常提供服务,为了确保服务质量,不能让P2P下载占据太多的带宽,因此可以设置下载带宽阈值确保业务质量。其中,功能开启时段指示了参与P2P下载的时段,在实际应用中,服务具有峰值,可以避开峰值,在空闲时间开启P2P下载。下载文件大小阈值指示了下载文件的大小的上限,在实际应用中,BMC设备的存储空间有限,因此,若下载较大的文件,可能会影响BMC设备的正常性能,因此可以合理设置BMC可以下载的文件的大小,若文件过大,则可以交由BMA设备下载。下载文件类型主要为固件文件和操作系统的镜像文件,在实际应用中,BMC设备的存储空间有限,因此,若下载较大的文件,可能会影响BMC设备的正常性能,因此,可以设置BMC设备仅仅下载固件文件。
如图5所示,在图4所示的结构的基础上,本申请实施例中,运维设备120将待下载文件分成多个(如N个等)文件块,得到文件引导信息,参与批量更新的多个电子设备110中的BMA设备和BMC设备获取文件引导信息,基于文件引导信息,在参与批量下载的多个电子设备110均未下载自身缺少的文件块时,从运维设备120中下载自身缺少的文件块,在参与批量下载的多个电子设备110中存在已经下载自身缺少的文件块的电子设备110时,与已经下载自身所缺文件块的BMC设备或BMA设备通信,实现文件块的下载;换言之,与参与批量更新的多个电子设备110中的BMA设备和BMC设备之间进行通信实现文件块的传输,从而使得设备集群110中的参与批量更新的每个电子设备110各自得到完整的文件后实现设备文件的更新。通过本申请实施例提供的技术方案,不同电子设备之间的资源的互补形式的,一方面可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到设备集群111中的电子设备110中,可以降低运维管理设备130的负荷。再一方面,BMA设备和BMC设备均可以接收文件块,避免带内外某一端异常导致下载文件受到影响。
值得注意的是,BMA设备和BMC设备均可以作为传播设备参与P2P下载。电子设备110可对外可以提供带内地址或/或带外地址,从而与其他的电子设备110通信。
基于上述描述和图6示出的内容,对上述安装系统中各设备的功能进行介绍。
首先,介绍运维管理设备130的功能。
A1:运维管理设备130提供纳管、查询、监控设备集群110中电子设备110的基础功能,负责管理设备集群110中正在运维的电子设备110,可以同时管理电子设备110安装的P2P客户端C的功能。在实际应用中,用户需要提供需要进行纳管的电子设备110中的BMA设备的带内地址,BMC设备的带外地址,以及,带内地址下的P2P客户端C1,带外地址下的P2P客户端C2,以供用户或者运维人员进行统一的运维管理,值得注意的是,用户或运维人员可以通过运维管理设备130单独设置或批量设置P2P客户端C的功能,即进行参数配置。参数配置所配置的参数的详细描述参见上文,不再赘述。
A2:运维管理设备130与厂商版本发布地址链接,能在第二运维设备122发布新的设备文件的版本后,收集发布的版本状态形成推送信息,展示给用户或运维管理人员。
A3:运维管理设备130获取设备集群110中任一电子设备110的设备文件的当前的版本状态,之后,可以将其展示给用户或运维管理人员。
A4:用户基于运维管理设备130展示的发布的版本状态和当前的版本状态,可以自行决定是否升级或降级到某一版本的设备文件,并在运维管理设备130下发运维指令A到第一运维设备121或第二运维设备122,下发运维指令B到设备集群110中的电子设备110。这里,运维指令A指示了下发设备文件的某一版本的待下载文件到设备集群110,运维指令B指示了安装某一版本的设备文件。
接着,介绍第一运维设备121的功能。
B1:第一运维设备121提供纳管、查询、监控设备集群110中电子设备110的基础功能,负责管理设备集群110中正在运维的电子设备110。
B2:第一运维设备121接收第二运维设备122发送的各种版本的设备文件并自动归档存储。这里,归档的目的是长时间存放有组织的数据集,确保其将来能够被精细地检索。
B3:第一运维设备121可以通过第二运维设备120接收运维管理设备130下发运维指令A。
B4:第一运维设备121生成设备文件的任一版本的待下载文件的种子文件,并在接收到运维管理设备130下发的运维指令A时,将运维指令A指示的待下载文件的种子文件发送至设备集群110中每个被纳管的电子设备110。
B5:第一运维设备121生成设备文件的任一版本的待下载文件的磁力链接(MagnetURI scheme),并在接收到运维管理设备130下发的运维指令A时,将运维指令A指示的待下载文件的磁力链接发送至设备集群110中每个被纳管的电子设备110。在一个例子中,磁力链接可以从提供tracker服务的第一运维设备121或第二运维设备122获取下载者名单。在一个例子中,磁力链接可以从DHT(Distributed Hash Table,分布式哈希表)中获取下载者名单。在不需要服务器的情况下,每个传播设备负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。
B6:第一运维设备121同时提供Tracker服务,Tracker服务用于监控被管理的所有传播设备的文件下载情况,对接入的传播设备提供文件下载者名单,下载者名单包括多个传播设备的设备地址比如ip地址,由传播设备基于下载者名单自动连接上其他的传播设备进行下载。
接着,介绍第二运维设备122的功能。
C2:第二运维设备122可以发布各种版本的设备文件。
C2:第二运维设备122生成设备文件的任一版本的待下载文件的种子文件,并在接收到运维管理设备130下发的运维指令A时,将运维指令A指示的待下载文件的种子文件发送至设备集群110中每个被纳管的电子设备110。
C3:第一运维设备121生成设备文件的任一版本的待下载文件的磁力链接,并在接收到运维管理设备130下发的运维指令A时,将运维指令A指示的待下载文件的磁力链接发送至设备集群110中每个被纳管的电子设备110。
C4:第二运维设备122同时提供Tracker服务,Tracker服务用于监控被管理的所有传播设备的文件下载情况,对接入的传播设备提供文件下载者名单,下载者名单包括多个传播设备的ip地址,由传播设备基于下载者名单自动连接上其他的传播设备进行下载。
最后,介绍设备集群110。
电子设备110中的处理器A1运行P2P客户端C1,可以接收第一运维设备121或第二运维设备122发送的种子文件,解析种子文件,得到提供Tracker服务的设备地址,然后,向提供Tracker服务的第一运维设备121或第二运维设备122发送目标请求,得到下载者名单。
电子设备110中的处理器A1运行P2P客户端C1,可以接收第一运维设备121或第二运维设备122发送的磁力链接,解析磁力链接,得到种子文件;可选地,解析种子文件,得到提供Tracker服务的设备地址,然后,向提供Tracker服务的第一运维设备121或第二运维设备122发送目标请求,得到下载者名单。可选地,通过DHC网络访问周围的传播设备得到下载者名单。
电子设备110中的处理器A2运行P2P客户端C2,可以接收第一运维设备121或第二运维设备122发送的种子文件,解析种子文件,得到提供Tracker服务的设备地址,然后,向提供Tracker服务的第一运维设备121或第二运维设备122发送目标请求,得到下载者名单。
电子设备110中的处理器A2运行P2P客户端C2,可以接收第一运维设备121或第二运维设备122发送的磁力链接,解析磁力链接,得到种子文件;可选地,解析种子文件,得到提供Tracker服务的设备地址,然后,向提供Tracker服务的第一运维设备121或第二运维设备122发送目标请求,得到下载者名单。可选地,通过DHC网络访问周围的传播设备得到下载者名单。
综上,本申请实施例提供的文件下载方法具有如下特征:
1、多台服务器(上述电子设备110)均接入机房主干网络,形成服务器集群(即上述设备集群110)。
2、机房外部远端运维平台(上述第二运维设备122)提供版本发布推送服务、BT种子制作以及Tracker服务。接入该平台的服务器均可接收种子文件并且作为传播成员。
3、机房内部提供近端运维工具服务端(上述第一运维设备121),可提供机房文件存贮服务,BT种子制作和Tracker服务,固件文件推送和升级任务下发均由机房近端运维工具服务端执行。
4、运维管理监控平台(上述维护管理设备140)为用户或运维人员交互设备,提供展示信息和流程下发功能,可对机房内的传播设备单独配置,以及选择传播设备纳管至远端运维平台或近端运维工具服务端。
5、机房内服务器中的BMA设备和BMC设备可分别内置BT程序,该程序作为BT的P2P客户端提供文件下载的基础能力和文件运维管理能力。
6、服务器中的传播设备调用P2P客户端的程序,在配置以及检查本身有足够资源后可决定是否参与机房环境中的P2P文件共享,BMA设备和BMC设备分别有独立的程序,即使BMA设备和BMC设备有一端下电停止服务,其另一端的BT程序也可继续提供服务。
接下来,结合上述提供的设备文件下载系统的描述,对本申请实施例提供的一种文件下载方法进行详细介绍。
首先描述文件引导信息下发到多个电子设备110的具体内容。为了便于描述,假设电子设备110的数目为M,待下载文件分成了N个文件块;M个电子设备110均参与第一设备文件的批量更新。这里,文件引导信息可以理解为种子文件,种子文件描述了待下载文件的分片信息,比如,N个文件块的标识。本申请实施例,电子设备110主要通过3种实现方式获取文件引导信息。
如图7a所示,实现方式A1:运维设备120集中下发,即运维设备120将文件引导信息下发给设备集群111中的每个电子设备110。
如图7b所示,实现方式A2:运维设备120和已经下载文件引导信息的电子设备110中获取,在该实现方式B中,运维设备120和电子设备110形成对等网络,电子设备110基于磁力链接首先从运维设备120中获取文件引导信息,之后,其他的电子设备110可以从运维设备120或已经下载文件引导信息的电子设备110中获取文件引导信息。
如图7c所示,实现方式A3,运维设备120下发文件引导信息到部分的电子设备110中,另一部分的电子设备110从已经下载文件引导信息的电子设备中获取文件引导信息。
对实现方式A1描述的文件引导信息的获取方式进行示例。
图8a是本申请实施例提供的文件引导信息下发方法的流程示意图。本实施例可应用在运维设备120上,具体可以应用在上述第一运维设备121或第二运维设备122。如图8a所示,本申请实施例提供的文件引导信息下发方法至少包括如下步骤:
步骤811、运维管理设备130向运维设备120下发第一运维指令,第一运维指令指示下发待下载文件。
其中,待下载文件可以为设备文件的任一版本。
步骤812、运维设备120基于第一运维指令,获取对待下载文件划分成N个文件块后得到的文件引导信息。
根据一种可行的实现方式,运维设备120可以从已经发布的文件中获取待下载文件,或者,从第一运维设备121检索已归档的文件,从而得到待下载文件,之后,对待下载文件进行文件分片,制作待下载文件的文件引导信息。
值得注意的是,运维设备120可以提前制作待下载文件的文件引导信息,也可以在下发第一运维指令后制作到下载文件的文件引导信息。
步骤813、运维管理设备130向M个电子设备110下发第二运维指令,第二运维指令指示下载待下载文件。
步骤814、M个电子设备110确定自身参与P2P时,上报自身的设备地址。
步骤815、运维设备120向M个电子设备110下发文件引导信息。
另外,若本申请实施例中,在一些可能的场景,若由运维设备120为M个电子设备110提供Tracker服务,则需要由运维设备120实时收集M个电子设备110各自的文件块下载情况。换言之,运维设备120具有监控M个电子设备的文件块下载的功能。则在上述步骤701至步骤813的基础上,还可以包括入下步骤:
这里,电子设备110上报的设备地址可以为BMA设备的地址和/或BMC设备的地址。值得注意的是M个设备地址可以包括多个带内地址和多个带外地址。
步骤816、运维设备120基于设备地址,实时收集M个电子设备各自的文件块下载信息。
需要说明的是,运维管理设备130在M个电子设备没有完成N个文件块的P2P下载时,会一直收集M个电子设备110的文件下载信息。
这里,文件块下载信息,包括文件块是否下载完成,以及正在下载的文件块。
值得注意的是,电子设备110包括BMA设备和BMC设备,文件块下载信息用于表示BMA设备和BMC设备的已经完成下载的文件块,已经正在下载的文件块,从而表示整个电子设备110的文件块下载情况。
对实现方式A2描述的文件引导信息的获取方式进行示例。
图8b是本申请实施例提供的文件引导信息下发方法的流程示意图。本实施例可应用在运维设备120上,具体可以应用在上述第一运维设备121或第二运维设备122。如图8b所示,本申请实施例提供的文件引导信息下发方法至少包括如下步骤:
步骤821、运维管理设备130在获取到待下载文件后,确定对待下载文件划分成N个文件块后得到的文件引导信息。
详细内容参见上文对步骤812的描述。
步骤822、运维管理设备130向M个电子设备110下发待下载文件的磁力链接。
步骤823、电子设备111基于磁力链接从运维设备120中获取文件引导信息。
步骤824、其他的电子设备111基于磁力链接从已经下载文件引导信息中的其他的电子设备110中获取文件引导信息。
对实现方式A3描述的文件引导信息的获取方式进行示例。
图8c是本申请实施例提供的文件引导信息下发方法的流程示意图。本实施例可应用在运维设备120上,具体可以应用在上述第一运维设备121或第二运维设备122。如图8c所示,本申请实施例提供的文件引导信息下发方法至少包括如下步骤:
步骤831、运维管理设备130向运维设备120下发第一运维指令,第一运维指令指示下发待下载文件。
步骤832、运维设备120基于第一运维指令,获取对待下载文件划分成N个文件块后得到的文件引导信息。
详细内容参见上文对步骤701的描述。
步骤833、运维管理设备130向M个电子设备110下发第二运维指令,第二运维指令指示下载待下载文件。
步骤834、M个电子设备110在确定自身参与P2P时,上报自身的设备地址。
步骤835、运维设备120向至少一个电子设备110下发待下载文件的文件引导信息。
步骤836、运维管理设备130向至少一个电子设备110下发待下载文件的磁力链接。
步骤837、电子设备111基于磁力链接从已经下载文件引导信息中的其他的电子设备110中获取文件引导信息。
在上述实现方式A1、实现方式A2和实现方式A3所示的实现方式的基础上,接下来描述M个电子设备110中的任一电子设备110如何获取到N文件块的具体实现。
本申请实施例提供了文件下载方法,M个电子设备110中的每个电子设备110对于缺少的文件块(为了便于描述和区别,称为目标文件块),若该目标文件块只存在运维设备120,则可以从运维设备120中获取,若该目标文件块还存在在其他的电子设备110中,则可以从已经下载目标文件块的电子设备110中获取。
本申请实施例中,不同电子设备之间的资源互补,一方面可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到设备集群111中的海量的电子设备110中,可以降低运维管理设备130的负荷。
需要说明的是,考虑到前期M个电子设备中不会下载N个文件块,N个文件块仅仅存在在运维设备120中,因此,对于M个电子设备中均没有下载的文件块,只能从运维设备120中获取,一旦某一文件块被至少一个电子设备110下载,则可以从已经下载文件块的电子设备110中获取该文件块,实现文件块的共享;在实际应用中,电子设备110会挑选通信速度最快的设备实现文件块的下载,因此,电子设备110在发现和运维设备110的通信速度最快时,即使其他的电子设备110已经下载了自身需求的文件块,该电子设备110仍然可以从运维设备120中获取文件块进行下载。
本申请实施例中,电子设备110可以通过如下三种实现方式实现文件下载。
实现方式B1:运维设备120集中监控M个电子设备的文件下载情况,电子设备110向运维设备120请求未下载的目标文件块所在的电子设备的名单(为了便于描述和区别,称为第一名单),电子设备110从该第一名单指示的至少一个电子设备中下载目标文件块。
实现方式B2:运维设备120集中监控M个电子设备的文件下载情况,将N个文件块所在的电子设备的名单(为了便于描述和区别,称为第二名单),下发给未完成N个文件块下载的电子设备110,电子设备110从该第二名单指示的至少一个电子设备中下载自身所缺的目标文件块。
对应的,在实现方式B2中,电子设备110可以和多个电子设备建立通信连接,确定和每个电子设备的通信速度,选择与通信速度最快的电子设备(为了便于描述和区别,称为目标电子设备)通信,以下载目标文件块。
实现方式B3:电子设备110在发现M个电子设备110中不存在自身缺少的文件块,向运维设备120下载缺少的文件块,在发现M个电子设备110中存在自身缺少的文件块时,从自身所缺的文件块所在的电子设备110中进行文件块的下载。
在实现方式B3中,M个电子设备110形成对等网络,可以彼此通信,知晓对方已经下载的文件块,并可以获取对方已经下载的任意文件块。
本申请实施例提供的一种文件下载方法可应用在电子设备上,具体可以应用在上述M个电子设备111中的任一电子设备111,为了便于描述和区别,称为第一电子设备111。
对实现方式B1的文件块的下载方式进行示例。值得注意的是,运维设备120存储有N个文件块,文件引导信息包括种子文件,种子文件包括分别与N个文件块一一对应的N个文件块标识,在采用实现方式B1的情况下,种子文件还包括运维设备120的地址。这里的运维设备120可以为第一运维设备121,也可以为第二运维设备122。
图9a示出了第一电子设备100的文件块下载的流程示意图。
如图9a所示,本申请实施例中,第一电子设备100的文件下载方法可以包括如下步骤:
步骤911、第一电子设备110基于种子文件,生成未下载的目标文件块的目标请求。
其中,目标请求包括N个文件标识中的目标文件块的标识。
这里,目标文件块为第一电子设备110已经下载或者正在下载之外的文件块。在实际应用中,目标文件块可以包括一个或者多个文件块。
步骤912、第一电子设备110基于种子文件中运维设备120的地址向运维设备120发送目标请求。
步骤913、运维设备120解析目标请求,判断M个电子设备中是否存在已下载的目标文件块的电子设备,如果否,执行步骤914,如果是,执行步骤916。
在实际应用中,运维设备120可以基于M个电子设备上报的文件块下载信息,确定M个电子设备110中是否存在已经下载完目标文件块的电子设备。
步骤914、运维设备120向第一电子设备110发送目标文件块。
步骤915、第一电子设备110下载目标文件块。
步骤916、运维设备120确定第一名单;其中,第一名单指示了目标文件块所在的至少一个第二电子设备的设备地址。
在实际应用中,运维设备120可以基于M个电子设备上报的文件块下载信息,确定目标文件块所在的至少一个第二电子设备的设备地址,将至少一个第二电子设备的设备地址作为第一名单。
步骤917、运维设备120向第一电子设备110发送的第一名单。
步骤918、第一电子设备110基于第一名单,与至少一个第二电子设备中的部分或全部建立通信连接,以下载目标文件块。
在实际应用中,假设第二电子设备有多个,第一电子设备110可以和多个第二电子设备建立通信连接,确定和每个第二电子设备的通信速度,选择与通信速度最快的第二电子设备(为了便于描述和区别,称为目标电子设备)通信,以下载目标文件块。
在本实施例中,不同设备之间的资源(如文件块等)互补,任一设备可以选取文件速度下载最快的路径进行文件下载,因此,受某一设备异常或关机的影响较小,在同一或专有网络下,接入的电子设备的数量越多,文件下载速度越快,受某个或某些设备的异常或关机的影响越小。
值得注意的是,第一电子设备110还可以从至少一个第二电子设备中下载目标文件块之外的文件块,比如,第一电子设备110可以和目标电子设备通信交换信息,这样,第一电子设备110可以知道目标电子设备中有哪些已经下载的文件块,目标电子设备也可以知道第一电子设备110中有哪些已经下载的文件块,这样,第一电子设备110可以从目标电子设备中下载自身未下载的文件块,目标电子设备也可以从第一电子设备110中获取自身未下载的文件块。
在实际应用中,假设待下载文件为固件,本申请实施例提供的文件块下载方法可以实现固件升级,则第一电子设备110在获取到满足固件升级所需的所有文件块或完整的文件后,开始执行固件升级,并将下载到的文件块继续与其他电子设备进行文件共享,以供其他电子设备从该第一电子设备110中下载到所需的文件或文件块。
值得注意的是,图9a示出的方案仅仅作为一个实现方式,在实际应用,也可以不依赖运维设备120,第一电子设备110可以将目标请求发送到M个电子设备110中的其他的电子设备,从M个电子设备中的其他的电子设备获取到第一名单。对应的,文件引导信息为磁力链接。
对实现方式B3的文件块的下载方式进行示例。值得注意的是,运维设备120存储有N个文件块,文件引导信息包括种子文件,种子文件包括分别与N个文件块一一对应的N个文件块标识,在采用实现方式B3的情况下,种子文件可以不包括运维设备120的地址。这里,M个电子设备110中可以预先存储有运维设备110的通信地址。
图9b示出了第一电子设备100的文件块下载的流程示意图。
如图9b所示,本申请实施例中,第一电子设备100的文件下载方法可以包括如下步骤:
步骤921、第一电子设备110基于与其他电子设备110的通信结果,判断M个电子设备中是否存在已下载的目标文件块的电子设备,如果否,执行步骤922,如果是,执行步骤926。
在具体实现时,第一电子设备110可以向其他的电子设备110请求寻找目标文件块所在的电子设备的名单。
步骤922、第一电子设备110基于种子文件,生成目标文件块的目标请求。
步骤923、第一电子设备110向运维设备120发送目标文件块的目标请求。
步骤924、运维设备120向第一电子设备110发送的目标文件块。
步骤925、第一电子设备110下载目标文件块。
步骤926、第一电子设备110从其他的电子设备110获取第一名单;其中,第一名单指示了目标文件块所在的至少一个第二电子设备的设备地址。
步骤927、第一电子设备110基于第一名单,与至少一个第二电子设备中的部分或全部建立通信连接,以下载目标文件块。
需要说明的是,在一些可能的实现方式中,M个电子设备110和运维设备120共同形成对等网络,任一电子设备110可以和其他的电子设备110通信,若了解到目标文件块仅仅存在运维设备120中,则从运维设备120中获取目标文件块下载,若了解到目标文件块在其他的电子设备110中,可以获取上文描述的第一名单。当然,任一电子设备110可以和其他的电子设备110通信,获取目标文件块所在的第三名单,第三名单可以仅仅包括运维设备120的地址,也可以包括运维设备120和其他的电子设备110的地址。
值得注意的是,在实际应用中,电子设备110中包括BMA设备和BMC设备。电子设备110中的BMA设备和BMC设备可以同时生成目标请求,同时下载不同的文件块,提高带宽利用率。
对应的,本申请实施例提供的另一种文件下载方法中,M个电子设备110中的BMA设备和BMC设备,对于缺少的文件块(为了便于描述和区别,称为目标文件块),若该目标文件块只存在运维设备120,则可以从运维设备120中获取,若该目标文件块还存在在其他的电子设备110中,则可以从已经下载目标文件块的电子设备110中获取。具体地,可以从已经下载目标文件块的BMA设备和BMC设备中获取。
后续,对于任一电子设备110中的BMC设备和BMA设备,若待下载文件需要由BMA设备安装,则BMA设备可以从BMC设备获取其已经下载的文件块,从而得到N个文件块,安装N个文件块组成的待下载文件;若待下载文件需要由BMC设备安装,则BMC设备可以从BMA设备获取其已经下载的文件块,从而得到N个文件块,安装N个文件块组成的待下载文件。
本申请实施例中,不同电子设备之间的资源互补,一方面可以在确保服务质量的基础上,节约大量的网络带宽资源,另一方面,无需将同一个文件完整的分发到设备集群111中的海量的电子设备110中,可以降低运维管理设备130的负荷。
本申请实施例中,BMC设备可以通过如下三种实现方式实现文件块的下载。假设M个电子设备110中BMC设备和BMA设备均参与P2P下载。
实现方式C1:运维设备120集中监控M个电子设备中BMC设备和BMA设备的文件下载情况,BMC设备向运维设备120请求未下载的目标文件块所在设备的名单(为了便于描述和区别,称为第一名单),BMC设备从该第一名单指示的至少一个BMA设备或BMC设备中下载目标文件块。
实现方式C2:运维设备120集中监控M个电子设备中BMC设备和BMA设备的文件下载情况,,将N个文件块所在的设备的名单(为了便于描述和区别,称为第二名单),下发给未完成N个文件块下载的电子设备110中的BMC设备和/或BMA设备(BMA设备和BMC设备内部可以通信,因此,可以下发到BMC设备或BMA设备,然后内部通信,使得BMA设备和BMC设备均获取到第二名单),BMC设备从该第二名单指示的至少一个BMA设备或BMC设备中自身所缺的目标文件块。
对应的,在实现方式B2中,BMC设备可以和多个BMA设备和/或BMC设备建立通信连接,确定和每个BMA设备或BMC设备的通信速度,选择与通信速度最快的BMA设备或BMC设备通信,以下载目标文件块。
实现方式C3:BMC设备在发现M个电子设备110中不存在自身缺少的文件块,向运维设备120下载缺少的目标文件块,在发现M个电子设备110中存在自身缺少的目标文件块时,从自身所缺的文件块所在的BMA设备或BMC设备中进行文件块的下载。
在实现方式B3中,M个电子设备中BMC设备和BMA设备之间形成对等网络,可以彼此通信,知晓对方已经下载的文件块,并可以获取对方已经下载的任意文件块。
BMA设备实现文件块的下载的方式和BMC设备类同,区别仅仅在于下载目标文件块的主体由BMC设备替换为BMA设备。
这里,为了便于描述和区别,将第一电子设备110中的BMA设备称为第一BMA设备,BMC设备称为第一BMC设备。
图10示出了另一种文件下载方法的流程示意图。也可以认为是第一电子设备110实现文件下载的方法的流程示意图。
如图10所示,本申请实施例中,具体可以包括如下步骤:
步骤1001、第一BMA设备基于种子文件,从运维设备和/或M个电子设备中,下载N个文件块中的至少一个第一文件块。
步骤1002、第一BMC设备基于种子文件,从运维设备和/或M个电子设备中,下载N个文件块中的至少一个第一文件块。
值得注意的是,上述步骤1001和步骤1002一般同时进行,第一BMA设备和第一BMC设备相互配合,比如,第一BMA可以随时从第一BMC中获取文件块,第一BMC也可以随时从第一BMA中获取文件块。
当待下载文件属于第一BMA设备安装时,示例地,待下载文件为操作系统的镜像文件,BMA设备中任一部件的固件,比如,RAID(Redundant Arrays of Independent Disks,磁盘阵列)卡的固件,网卡的固件,BMA设备的驱动,通常为操作系统中的驱动。如图10所示,具体还可以包括如下步骤。
步骤1003、第一BMC设备向第一BMA设备发送至少一个第二文件块。
步骤1004、第一BMA设备在得到N个文件块后安装待下载文件。
根据一种可行的实现方式,第一BMA设备可以预先存储有一个或多个文件块,结合自身下载的和第一BMC设备下载的文件块,可以得到N个文件块,安装待下载文件。
当待下载文件属于第一BMC设备安装时,示例地,待下载文件可以为硬盘背板的固件、风扇板的固件、主板的固件、CPLD(Complex Programmable Logic Device,是复杂的逻辑元件,是一种用户根据各自需要而自行构造逻辑功能的数字集成电路)的固件等。如图10所示,具体还可以包括如下步骤。
步骤1005、第一BMA设备向第一BMC设备发送至少一个待下载文件块。
步骤1006、第一BMC设备在得到N个文件块后安装待下载文件。
根据一种可行的实现方式,第一BMC设备可以预先存储有一个或多个文件块,结合自身下载的和第一BMA设备下载的文件块,可以得到N个文件块,安装待下载文件。
本申请实施例提供的技术方案,BMA设备和BMC设备均可以接收下载文件块,避免带内外某一端异常导致下载文件受到影响。
根据一种可行的实现方式,文件引导信息包括分别与N个文件块一一对应的N个文件块标识,且文件引导信息包括运维设备的地址。这里的运维设备可以为第一运维设备121,也可以为运维设备120,本申请实施例以运维设备120为例进行描述。图11示出了如图10所示的实施例中步骤1001的流程示意图。
如图11所示,在上述图10所示实施例的基础上,本申请实施例中,步骤1001具体可以包括如下步骤:
步骤1101、第一BMA设备在确定自身的资源存在空闲时,基于种子文件生成生成未下载的目标文件块的目标请求。
这里,其中,目标请求包括N个文件标识中的目标文件块的标识,待下载文件标识指示的文件块为第一电子设备110未下载的文件块。
值得注意的是,第一BMA设备需要正常对外提供服务,为了不影响服务的正常运行,尽量利用空闲的资源实现P2P下载,确保服务质量。
这里,待下载文件标识指示的文件块为BMA设备和BMC设备已经下载或者正在下载之外的文件块。
步骤1102、第一BMA设备基于种子文件中运维设备120的地址向运维设备120发送目标请求。
步骤1103、运维设备120解析目标请求,判断M个电子设备中是否存在已下载的目标文件块的电子设备,如果否,执行步骤1104,如果是,执行步骤1105。
步骤1104、运维设备120向第一BMA设备发送目标文件块。
步骤1105、第一BMA设备下载目标文件块。
步骤1106、运维设备120确定第一名单;其中,第一名单指示了目标文件块所在的至少一个第二电子设备的设备地址。
这里的设备地址为带内地址或带外地址。
步骤1107、运维设备120向第一BMA设备发送第一名单。
步骤1108、第一BMA设备基于第一名单,确定第一传播设备的第一设备地址;其中,第一传播设备为至少一个第二电子设备中的第二BMC设备或第二BMA设备。
假设第一BMA设备确定其和第一传播设备之间的通信速度最快,则可通过如下步骤获取待下载文件块标识指示的文件块。
步骤1109、第一BMA设备基于第一设备地址,与所述第一传播设备通信,以下载目标文件块。
如图12a所示,假设第一传播设备为第二BMC设备,第二BMC设置的存储管理空间b2存储有待下载文件块,则第一BMA设备和第二BMC设备通信,将第二BMC设备的存储管理空间b2中的待下载文件块下载到第一BMA设备的存储管理空间b1中。
值得注意的是,假设第一传播设备中没有存储目标文件块,但是第一传播设备所在的第二电子设备中的第二传播设备中存储有待下载文件块标识;则第一BMC设备和第一传播设备设备通信,第一传播设备和第二传播设备内部共享,使得第一传播设备拿到待下载文件标识指示的文件块,与将其发送到第一BMA设备上。
如图12a所示,假设第一传播设备为第二BMA设备,第二BMA设备的存储管理空间b1未存储有待下载文件块,但是第二BMC设备的存储管理空间b2存储有待下载文件块,则第二BMC设备和第二BMA设备内部通信,将第二BMC设备的存储管理空间b2存储有待下载文件块下载至第二BMA设备的存储管理空间b1,之后,第一BMA设备和第二BMA设备通信,将第二BMA设备的存储管理空间b1中的待下载文件块下载到第一BMA设备的存储管理空间b1中。
当然,在实际应用中,优选选择存储有待下载文件块标识的传播设备作为第一传播设备。
假设第一BMA设备确定第一BMC设备和第一传播设备之间的通信速度最快,则可通过如下步骤获取目标文件块。
步骤1110、第一BMC设备基于第一设备地址,与所述第一传播设备通信,以下载目标文件块。
假设第一传播设备中存储有目标文件块,则第一传播设备直接将目标文件块发送到BMC设备上。
如图12b所示,假设第一传播设备为第二BMC设备,第二BMC设备的存储管理空间b2存储有待下载文件块,则第一BMC设备和第二BMC设备通信,将第二BMC设备的存储管理空间b2存储有待下载文件块下载至第一BMC设备的存储管理空间b2。
假设第一传播设备中没有存储目标文件块,但是第一传播设备所在的第二电子设备中的第二传播设备中存储有待下载文件块标识;第一传播设备和第二传播设备内部共享,使得第一传播设备拿到待下载文件标识指示的文件块,与将其发送到第一BMC设备上。
如图12b所示,假设第一传播设备为第二BMA设备,第二BMA设备的存储管理空间b1未存储有待下载文件块,但是第二BMC设备的存储管理空间b2存储有待下载文件块,则第二BMC设备和第二BMA设备内部通信,将第二BMC设备的存储管理空间b2存储有待下载文件块下载至第二BMA设备的存储管理空间b1,之后,第一BMC设备和第二BMA设备通信,将第二BMA设备的存储管理空间b1中的待下载文件块下载到第一BMC设备的存储管理空间b1中。
步骤1111、第一BMA设备从第一BMC设备中获取目标文件块。
第一BMA设备和第一BMC设备内部通信,使得第一BMC设备获取到待下载文件标识指示的文件块。
如图12b所示,则第一BMC设备和第一BMA设备内部通信,将第一BMC设备的存储管理空间b2存储有待下载文件块下载至第一BMA设备的存储管理空间b1。
本申请实施例中,充分利用电子设备中BMA设备和BMC设备的计算资源和带宽资源,确保P2P下载的效率。
值得注意的是,图11示出的方案仅仅作为一个实现方式,在实际应用,假设M个电子设备中的BMA设备和BMC设备形成对等网路,则可以不依赖运维设备120,第一BMA可以将目标请求发送到M个电子设备110中的其他的BMA设备和BMC设备,从M个电子设备中的其他的BMA设备和BMC设备获取到第一名单。
基于上述提供的文件下载方法,对文件下载方法的具体的应用进行说明。图13为本申请实施提供的一种固件包的版本更新方法的具体示例。如图13所示,固件包的版本更新的具体示例如下:
1、用户在运维管理设备130中提供需要进行纳管的BMA设备的带内地址、BMC设备的带外地址,以供用户或者运维人员进行统一的运维管理。
2、用户通过运维管理设备130下发指定固件的版本号的固件升级任务,以从远端运维平台(上述第二运维设备122)发布的文件或从近端运维工具服务端(上述第一运维设备121)检索已归档的固件,得到指定固件的版本号的固件包,并制作种子文件,开启Tracker服务。
3、远端运维平台(上述第二运维设备122)或近端运维工具服务端(上述第一运维设备121)在归档固件的新的版本时制作种子文件,监控是否有用户通过运维管理设备130下发固件升级任务,并据此开启Tracker服务。
4、用户或运维人员通过运维管理设备130下发固件升级任务到机房内的所有被纳管的BMA设备和/或BMC设备,所有被纳管的BMA设备和/或BMC设备自启动程序,主动获取并解析种子文件并向Tracker服务器(上述第一运维设备121或第二运维设备122)发送获取目标请求,远端运维平台(上述第二运维设备122)或近端运维工具服务端(上述第一运维设备121)更新所有被纳管的BMA设备和/或BMC设备的文件下载信息并下发至各个BMA设备和/或BMC设备,BT程序执行文件下载流程。
5、文件块将被下载至BMA设备或BMC设备的存储管理空间中,同一电子设备中的BMC设备的存储管理空间中的文件在BMC设备未上电状态时,可以利用BMA设备中的BT程序实现文件下载,反之亦然。
6、机房内优先完成文件下载的电子设备110将开始固件升级,复位生效前后BT程序将继续参与机房环境内的文件共享。
本申请实施例还可以提供了一种计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时,使得所述处理器执行本说明书上述“方法”部分中描述的本申请各种实施例的文件下载方法中的步骤。其中,所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。其中,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请实施例还可以提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“方法”部分中描述的根据本公开各种实施例的文件下载方法中的步骤。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
- 一种文件下载方法及系统
- 文件下载方法及相关产品
- 车路协同的大文件下载方法
- 能源控制器、系统镜像文件下载方法以及文件下载系统
- 能源控制器、系统镜像文件下载方法以及文件下载系统