CN115914201A - 通信方法、用于软件升级图像的控制系统和存储介质 - Google Patents

通信方法、用于软件升级图像的控制系统和存储介质 Download PDF

Info

Publication number
CN115914201A
CN115914201A CN202211201589.2A CN202211201589A CN115914201A CN 115914201 A CN115914201 A CN 115914201A CN 202211201589 A CN202211201589 A CN 202211201589A CN 115914201 A CN115914201 A CN 115914201A
Authority
CN
China
Prior art keywords
image
network devices
network
control system
software upgrade
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
Application number
CN202211201589.2A
Other languages
English (en)
Inventor
普拉提克·戈埃尔
拉赫马特·谢里夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN115914201A publication Critical patent/CN115914201A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及通信方法、用于软件升级图像的控制系统和存储介质。本申请公开了一种示例性方法包括由用于软件升级图像的控制系统接收的用于网络的网络装置的相应特征数据;由控制系统并基于用于网络装置的特征数据生成图像映射,该图像映射针对软件升级图像的多个不同部分的每一部分指示由控制系统从多个网络装置中选择的图像代理网络装置,以基于特征数据存储该部分;以及由控制系统将图像映射输出到多个网络装置中的一个网络装置,以使得网络装置从由控制系统选择的对应图像代理网络装置获得软件升级图像的多个不同部分的每一部分,以存储该部分。

Description

通信方法、用于软件升级图像的控制系统和存储介质
本申请要求于2021年9月30日提交的美国专利申请号17/449,530的权利,其全部内容通过引用并入本文。
技术领域
本公开涉及计算机网络,更具体地说,涉及网络装置的管理。
背景技术
计算机网络是可以交换数据和共享资源的互连计算装置的集合。各种装置操作以促进计算装置之间的通信。例如,计算机网络可以包括路由器、交换机、网关、防火墙和各种其他装置,以提供和促进网络通信。
这些网络装置通常包括用于本地或远程配置装置的机制,如管理接口。通过与管理接口交互,客户端可以执行配置任务以及执行操作命令以收集和查看受管装置的操作数据。例如,客户端可以配置装置的接口卡,调整支持的网络协议的参数,指定装置内的物理部件,修改由路由器维护的路由信息,访问驻留在装置上的软件模块和其他资源,以及执行其他配置任务。此外,客户端可以允许用户查看来自装置的当前操作参数、系统日志、与网络连接相关的信息、网络活动或其他状态信息,以及查看从装置接收的事件信息并对其作出反应。
网络配置服务可以由多个不同的装置执行,例如具有服务卡和/或专用服务装置的路由器。此类服务包括连接性服务,例如第三层虚拟专用网络(L3VPN)、虚拟专用局域网服务(VPLS)和对等(P2P)服务。其他服务包括网络配置服务,如Dot1q VLAN服务。网络管理系统(NMS)和NMS装置(也称为控制器或控制器装置)可以支持这些服务,使得管理员可以容易地创建和管理这些高级别网络配置服务。
发明内容
总体来说,本公开描述了管理网络装置的技术。元件管理系统(EMS),在此也称为控制系统,被配置为实现用于网络装置升级的分布式软件升级图像分发。例如,控制系统被配置为例如基于诸如受管装置的装置参数的特征数据来确定分割软件升级图像并识别受管装置的子集以用作用于软件升级图像的部分的图像代理装置的方式。在一些示例中,装置参数包括可用于存储软件升级图像或部分的装置上的可用的存储空间的量。控制系统生成指示将由对应网络装置存储的软件升级图像的不同部分的分配的图像映射。在一些示例中,控制系统基于图像映射生成用于升级装置的装置升级计划。
本公开的技术可以提供一个或多个技术优势,其提供至少一个实际应用。例如,本公开的技术使控制系统能够将软件升级图像一次下载到网络(例如,数据中心),然后使用诸如尺寸、带宽和拓扑感知方法的特征数据来选择受管装置以托管软件升级图像。控制系统创建图像主机的图像映射,并将图像映射分发到受管装置中,用于其他受管装置在图像升级周期期间从中拉取。这有助于减轻WAN链接从外部源下载相同图像的压力,并增加并行图像拉取,以更快地将图像传送到所有装置。此外,本公开的技术可以使得能够创建策略来控制正在升级的装置的重试和工作阈值,以避免瓶颈。
在一些示例中,一种方法包括由软件升级图像的控制系统接收用于网络的网络装置的相应特征数据;在接收到特征数据之后,由控制系统生成图像映射,图像映射针对软件升级图像的多个不同部分的每一部分指示由系统选择的网络装置中的图像代理网络装置,以基于特征数据存储部分;以及由控制系统将图像映射输出到多个网络装置中的一个网络装置,以使得网络装置从由控制系统选择的图像代理网络装置获得软件升级图像的多个不同部分中的每一部分,以存储部分。
在一些示例中,软件升级图像的控制系统管理网络装置组(也称为元件),其中控制系统包括:一个或多个处理器;以及存储器,其包括指令,当由一个或多个处理器执行指令时,指令使得一个或多个处理器:接收用于网络的网络装置的特定特征数据;基于网络装置的特征数据生成图像映射,图像映射针对软件升级图像的多个不同部分的每一部分指示由控制系统从网络装置中选择的图像代理网络装置,以基于特征数据存储部分;并将图像映射输出到多个网络装置中的一个网络装置,以使得网络装置从由控制系统选择的对应图像代理网络装置获得软件升级图像的多个不同部分的每一部分,以存储所述部分。
在另一示例中,系统包括:网络装置组;以及控制器装置,其管理网络装置组,控制器装置包括:存储器,其包括配置数据库,配置数据库包括存储的网络装置配置组,其中存储的网络装置配置组中的每一个存储网络装置配置对应于网络装置组中的网络装置;以及处理电路,被配置为:接收网络装置的相应特征数据;基于网络装置的特征数据生成图像映射,图像映射针对软件升级图像的多个不同部分的每一部分指示由控制系统从网络装置中选择的图像代理网络装置,以基于特征数据存储部分;并将图像映射输出到多个网络装置中的一个网络装置,以使得网络装置从由控制系统选择的对应图像代理网络装置获得软件升级图像的多个不同部分的每一部分,以存储部分。
在另一示例中,一种计算机可读存储介质,包括指令,在执行指令时使控制系统的一个或多个处理器:接收网络的网络装置的相应特征数据;基于网络装置的特征数据生成图像映射,图像映射针对软件升级图像的多个不同部分的每一部分指示由控制系统从网络装置中选择的图像代理网络装置,以基于特征数据存储部分;并将图像映射输出到多个网络装置中的一个网络装置,以使得网络装置从由控制系统选择的对应图像代理网络装置获得软件升级图像的多个不同部分的每一部分,以存储部分。
一个或多个示例的细节在附图和下面的描述中阐述。其他特征、对象和优点将从说明书和附图以及权利要求书中显而易见。
附图说明
图1是示出根据本公开的一个或多个技术的包括使用控制器装置管理的企业网络的元件的示例的框图。
图2是示出根据本公开的一个或多个技术的用于图1的控制器装置的示例部件组的框图。
图3是示出根据本公开的一个或多个技术的用于网络装置升级的分布式软件升级图像分发的示例操作的流程图。
具体实施方式
图1是示出根据本公开的一个或多个技术的包括使用控制器装置10管理的企业网络2的元件的示例的框图。企业网络2的受管元件14A至14G(统称为“元件14”)包括经由通信链路互连的网络装置,以形成通信拓扑以交换资源和信息。元件14(也称为网络装置或远程网络装置)可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测系统(IDS)或入侵预防系统(IDP)、计算装置、计算终端、打印机、其他网络装置或这些装置的组合。尽管在本公开中描述为传输、传送或以其他方式支持分组,企业网络2可以根据由任何其他协议定义的任何其他离散数据单元来传输数据,例如由异步传输模式(ATM)协议定义的信元,或由用户数据报协议(UDP)定义的数据报。通信链路互连元件14可以是物理链路(例如,光、铜等)、无线或其任何组合。企业网络2可以包括比图1所示多得多的元件14。
企业网络2显示为经由通信链路16耦接到公共网络18(例如,互联网)。例如,公共网络18可以包括一个或多个客户端计算装置。公共网络18可以提供对网络服务器、应用服务器、公共数据库、媒体服务器、终端用户装置以及其他类型的网络资源装置和内容的访问。尽管为了示例目的相关于企业服务网络进行了描述,但本公开的技术可应用于其他类型的网络,例如分支网络、数据中心网络、服务提供商网络、互联网服务提供商网络或其他类型的网络。
控制器装置10经由企业网络2与元件14通信耦接。在一些示例中,控制器装置10构成装置管理系统的一部分,尽管图1中仅举例说明了装置管理系统中的一个装置。控制器装置10可以直接或间接耦接到多个元件14。一旦部署和激活元件14,管理员12使用控制器装置10来管理使用装置管理协议的网络装置。一个示例装置协议是简单网络管理协议(SNMP),其允许控制器装置10遍历和修改在各个受管元件14内存储配置数据的管理信息库(MIB)。
在一般实践中,控制器装置10(也称为网络管理系统(NMS)或NMS装置)和元件14由企业的信息技术(IT)团队集中维护。管理员12与控制器装置10交互以远程监视和配置元件14。例如,管理员12可以从控制器装置10接收关于元件14中的任何一个的警报,查看元件14的配置数据,修改元件14的设置数据,向企业网络2添加新的网络装置,从企业网络2移除现有的网络装置,或者以其他方式操纵企业网络2和其中的网络装置。尽管相关于企业网络进行了描述,但本公开的技术适用于其他网络类型,公共的和私人的,包括LAN、VLAN、VPN等。
在一些示例中,管理员12使用控制器装置10或本地工作站直接与元件14交互,例如通过远程登录、安全壳(SSH)或其他此类通信会话。也就是说,元件14通常设置用于直接交互的接口,例如命令行接口(CLI)、基于网络的接口、图形用户界面(GUI)等,通过这些接口,用户可以与装置交互以直接发出基于文本的命令。例如,这些接口通常允许用户直接与装置交互,例如通过远程登录、安全壳(SSH)、超文本传输协议(HTTP)或其他网络会话,根据定义的语法输入文本,以将命令提交给受管元件。在一些示例中,用户使用控制器装置10发起与一个元件14(例如元件14F)的SSH会话15,以直接配置元件14F。以这种方式,用户可以直接向元件14提供用于执行的格式的命令。
此外,管理员12还可以创建脚本,该脚本可以由控制器装置10提交给任何或所有元件14。例如,除了CLI接口之外,元件14还提供用于接收脚本的接口,该脚本根据脚本语言指定命令。在某种意义上,脚本可以由控制器装置10输出以自动调用受管元件14上的相应远程过程调用(RPC)。脚本可以符合例如可扩展标记语言(XML)或另一数据描述语言。
管理员12使用控制器装置10来配置元件14,以指定某些操作特性,这些特性进一步实现管理员12的目标。例如,管理员12可以为元件14指定关于安全性、装置可访问性、流量工程、服务质量(QoS)、网络地址转换(NAT)的特定操作策略,分组过滤、分组转发、速率限制或其他策略。控制器装置10使用一个或多个被设计用于管理受管网络元件14内的配置数据的网络管理协议,例如SNMP协议或网络配置协议(NETCONF)协议或其衍生物,例如瞻博(Juniper)装置管理接口,来执行配置。一般来说,NETCONF提供了配置网络装置的机制,并对配置数据使用基于可扩展标记语言(XML)的数据编码,其中可能包括策略数据。NETCONF在Enns中描述,“NETCONF Configuration Protocol”,Network Working Group,RFC 4741,2006年12月,可从tools.ietf.org/html/rfc4741获得。控制器装置10可与一个或多个元件14建立网络配置会话。
控制器装置10可被配置为接受来自管理员12的高级别配置数据或意图(其可被表示为结构化输入参数,例如,根据Bjorklund,“YANG—A Data Modeling Language for theNetwork Configuration Protocol(NETCONF)”,Internet Engineering Task Force,RFC6020,2010年10月,可从tools.ietf.org/html/rfc6020获得)。控制器装置10还可以被配置为输出相应的低级别装置配置数据集,例如,装置配置添加、修改和移除。
在一些示例中,控制器装置10可以使用针对意图数据模型和低级别装置配置模型的YANG建模。该数据可能包含跨YANG实体的关系,例如列表项和容器。在一些示例中,控制器装置10可以将YANG数据模型转换为数据库模型,并将YANG验证转换为数据验证。
控制器装置10可以从管理员12接收表示相关于意图数据模型的任何或所有创建、更新和/或删除动作的数据。控制器装置10可以被配置为针对应用于图形模型的创建、更新和删除中的每一个使用相同的编译逻辑。
为了升级网络装置,如元件14,第一步是拉取升级所需的图像。本公开的技术与其中仅集中式装置托管基于现场元件或软件即服务(SaaS)的管理解决方案的软件升级图像的方法不同,其中要升级的图像存储在集中式服务器中并且经由公共链路来访问。对于存在有具有大量同时拉动的大量装置的数据中心场景,集中式方法可能会导致瓶颈,导致更大的维护时间窗。此外,如果正在通过WAN网络拉取图像,此过程可能非常耗时,具体取决于同时拉取的速度和数量。本公开提出了一种图像分发方法,以避免多个网络装置(例如元件14)同时拉取软件升级图像,这可能导致托管图像的网络或服务器阻塞。
在根据本公开的技术的一些示例中,控制器装置10可以接收(例如)来自管理员或其他用户的升级请求11。升级请求11可以包括,例如,指示将元件14的软件从软件版本“A”升级到新的或更新的软件版本“B”的意图的命令。“元件14的软件可以包括图像。图像是以某种非易失性形式(如文件)存储的计算机系统状态的序列化副本。升级请求11可以指示用于将元件14升级到更新的软件版本“B”的软件升级图像。
响应于接收到升级请求11,控制器装置10被配置为例如基于元件14的装置参数来确定如何分割软件升级图像并识别元件14的子集以用作图像代理装置。在一些示例中,控制器装置10选择元件14的一半(百分之五十)用作图像代理装置。在一些示例中,元件14的装置参数包括可用于存储软件升级图像的元件14上可用的存储空间的量。控制器装置10生成图像映射,该图像映射指示要由所选元件14的相应网络装置存储的软件升级图像的不同部分的分配。在一些示例中,控制器装置10基于图像映射生成用于升级元件14的装置升级计划。
例如,控制器装置10可以确定网络2的网络的拓扑,还可以确定与一个或多个元件14相关联的装置参数,并生成拓扑图以表示网络的拓扑和装置参数。控制器装置10可以在拓扑图上计算优化算法以产生图像映射和装置升级计划,该图像映射和装置升级计划尝试使用要升级的元件14的子集作为图像代理装置来有效地升级要升级的元件14。
在一些示例中,控制器装置10选择一个或多个元件14作为存储软件升级图像的相应部分的图像代理装置,元件14正在从要升级的网络装置组中选择。控制器装置10生成图像映射,该图像映射指示要由所选的一个或多个网络装置的对应网络装置存储的软件升级图像的不同部分的分配。控制器装置10将图像映射发送到每个元件14。控制器装置10基于图像映射将软件升级图像的部分发送到被分配为图像代理网络装置的相应元件14。在一些示例中,被分配为图像代理网络装置的元件14被配置为响应于接收到图像映射,从控制器装置10请求软件升级图像的分配部分,并且控制器装置10响应于该请求发送分配部分。然后,控制器装置10指示网络装置组根据图像映射启动升级过程。
总体而言,诸如控制器装置10的控制器对意图、低级别数据模型和资源使用分层数据模型。分层数据模型可以基于YANG或YAML。如上所述,分层数据模型可以表示为图。现代系统支持简化网络管理的意图。意图是声明性的。为了实现意图,控制器装置10尝试选择最佳资源。客户环境可以被配置为允许客户(例如管理员12)控制意图实现并确保编程意图。在一些示例中,控制器装置10可以通过查询元件14来构造图形数据模型以确定由元件14提供的资源,但是可以查询元件14以确定特定的特征数据,该特征数据包括与由元件14提供的每种资源类型相匹配的资源的资源信息。资源的类型可包括例如转发表、路由表、网络访问策略(例如,供特定用户访问、防火墙策略等)、存储器或其他存储可用性、或其他此类资源。
在一些示例中,控制器装置10可以从元件14的元件(例如,元件14A)接收指示特征数据的消息,例如可用于在元件14A处存储软件升级图像的可用存储空间的量。在一些示例中,为了检索指示元件14A的可用存储容量的信息(或其他特征数据),控制器装置10可以向元件14A输出请求元件14A的可用存储容量。响应于该消息,控制器装置10可以从元件14A接收指示元件14A的可用存储容量的信息。控制器装置10将软件升级图像部分地分发到元件14的子集,并且需要升级的元件14可以从元件的子集中拉取并进行所需的升级。控制器装置10通过接收用于网络的元件的相应特征数据来实现这一点;基于网络装置的特征数据生成图像映射,图像映射针对软件升级图像的多个不同部分的每一部分指示由控制系统从网络装置中选择的图像代理网络装置,以基于特征数据存储部分。控制器装置10将图像映射输出到正在升级的每个元件14,以使得元件从由控制系统选择的相应图像代理网络装置获得软件升级图像的多个不同部分的每一部分,以存储该部分。
落入同一本地网络的诸如元件14的装置被考虑用于图像分发,以减少外部通信的负载,减少获取图像的跳数,并减少延迟。为了存储图像部分,装置的默认存储系统用于避免额外的开销或装置基础结构的变化。软件升级图像可以是完整的装置软件升级图像,或装置的一个或多个软件部件的升级图像。假设本地网络中有50个装置,图像尺寸为2GB。默认源可以总是被设置为控制器装置,例如控制器装置10,以便在网络中或从任何本地装置组中拉取的期间,针对任何问题进行回退。由于图像也在控制器装置10处被分割,这将有助于最小化网络使用,因为元件14将仅拉取所需部分。在一些示例中,如果图像尺寸可以容纳在元件14的自由空间中,则软件升级图像可以以其全尺寸使用,并且不需要对图像进行分割。图像的部分可以是均匀的或不均匀的,这取决于装置上的自由空间。在减小将用于实际升级的完整图像的尺寸后,将考虑此自由尺寸。在一些示例中,可以将逻辑实现为系统中现有守护进程/服务的一部分。
为了分割图像并将图像部分拼接在一起,在一些示例中,可以编写一个简单的库函数。此外,为了从中央或本地装置拉取图像,而不是使用SCP/FTP等,守护进程可以调用中央连接或建立连接以彼此进行传输。这可能有助于减少装置中产生的新服务的开销。
此外,对于“绿地”情况,如果装置可能尚未配置为在插入互联网后立即访问互联网,此处描述的设置用于本地分发软件升级图像的方法将是有用的。
本公开的技术使控制器装置10能够一次将软件升级图像下载到网络2(例如,数据中心),然后使用特征数据,例如尺寸、带宽和拓扑感知方法来选择受管装置(元件14)来托管软件升级图像。控制器装置10创建图像代理装置的图像映射,并将图像映射分发到受管装置中,以供其他受管装置在图像升级周期期间从中拉取。这有助于减少WAN链接从外部源下载相同图像的压力,并增加并行图像拉取,以更快地将图像传送到所有装置。此外,本公开的技术可以使得能够在控制器装置10上创建策略,以控制正在升级的装置的重试和工作阈值,以避免瓶颈。
图2是示出根据本公开的一个或多个技术的图1的控制器装置10的示例部件组的框图。在此示例中,控制器装置10包括控制单元22、网络接口34、用户界面36和存储器40。控制单元22包括管理模块24、网络接口模块32和用户界面模块38。管理模块24包括配置模块26、翻译模块28和装置升级管理模块30。存储器40包括升级图像42,翻译函数44和配置数据库46。
控制单元22表示用于实现归属于控制单元22及其组成模块和元件的功能的硬件、软件和/或固件的任何组合。当控制单元22包括软件或固件时,控制单元22还包括用于存储和执行软件或固件的任何必要硬件,例如一个或多个处理器或处理单元。通常,处理单元可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成或离散逻辑电路,以及这些部件的任何组合。此外,处理单元通常使用固定和/或可编程逻辑电路来实现。
网络接口34表示可以将控制器装置10通信地耦接到外部装置(例如,图1的元件14之一)的示例接口。网络接口34可以表示无线和/或有线接口,例如,以太网接口或配置为根据无线标准通信的无线电,例如IEEE802.11无线网络协议中的一个或多个(例如802.11a/b/g/n或其他此类无线协议)。在各种示例中,控制器装置10可以包括多个网络接口,尽管出于示例的目的仅示出了一个网络接口。
用户界面36表示一个或多个界面,用户(如管理员12(图1))通过该界面与控制器装置10交互,例如提供输入和接收输出。例如,用户界面36可以表示监视器、键盘、鼠标、触摸屏、触摸板、轨迹板、扬声器、照相机、麦克风等中的一个或多个。此外,尽管在此示例中控制器装置10包括用户界面,但管理员12不需要直接与控制器装置10交互,而是可以例如经由网络接口34远程访问控制器装置10。
存储器40可被配置为在操作期间在控制器装置10内存储信息。存储器40可以包括计算机可读存储介质或计算机可读存储装置。在一些示例中,存储器40包括短期存储器或长期存储器中的一个或多个。存储器40可以包括,例如,随机存取存储器(RAM)、动态随机访问存储器(DRAM)、静态随机存取存储器、磁盘、光盘、闪存或电可编程存储器(EPROM)或电可擦除可编程存储器(EEPROM)的形式。在一些示例中,存储器40用于存储由控制器装置10执行的程序指令。在控制器装置10上运行的软件或应用程序可以使用存储器40来临时存储程序执行期间的信息。
在本示例中,控制单元22包括管理模块24、网络接口模块32和用户界面模块38。控制单元22执行用户界面模块38,以接收来自用户界面36的输入和/或向用户界面36提供输出。控制单元22还执行网络接口模块32,以通过网络接口34发送和接收数据(例如,数据包)。管理模块24,网络接口模块32和用户界面模块38可以再次被实现为相应的硬件单元,或以软件或固件,或其组合。
控制单元22执行管理模块24以管理各种网络装置,例如图1的元件14。管理包括,例如,根据从用户(例如图1中的管理员12)接收的指令配置网络装置,并向用户提供提交配置网络装置的指令的能力。在该示例中,管理模块24还包括配置模块26和翻译模块28。
管理模块24被配置为从用户(如管理员12)接收用于受管网络装置组的意图(例如,高级别配置指令)。随着时间的推移,用户可以更新配置指令,例如,添加新服务、删除现有服务或修改由受管装置执行的现有服务。意图可以根据例如YANG来构造。
存储器40包括配置数据库46。配置数据库46通常包括描述受管网络装置(例如,元件14)的信息。例如,配置数据库46可以包括指示装置标识符(例如,媒体访问控制(MAC)和/或互联网协议(IP)地址)、装置类型、装置供应商、装置种类(例如路由器、交换机、网桥、集线器等)等。配置数据库46还存储基于受管装置(例如,元件14)的意图(例如,高级别配置信息,或者在某些情况下,高级别配置和低级别配置信息)的装置级别配置信息。配置数据库46可以存储对应于元件14的每个元件的配置信息,使得管理模块24可以访问用于元件14中的任何一个或多个的配置。例如,管理模块24可访问对应于控制器装置10推送到元件14C的配置的配置信息。此外,配置数据库46可以存储从元件14定期收集的包括存储容量的信息。
翻译模块28确定使用配置数据库46管理哪些装置。翻译模块28基于配置数据库46的信息,例如,哪些装置将接收低级别配置指令,确定在高级别配置指令上执行哪些翻译函数44。然后,翻译模块28执行翻译函数44的每个确定的翻译函数,将高级别配置指令提供给翻译函数作为输入,并接收低级别配置指令。然后,转换模块28可以向配置模块26提供低级别配置指令。在一些示例中,转换模块26可以接收对应于高级别配置的一个意图,并将高级别配置转换为一组低级别配置,每个低级别配置对应于元件14的相应元件,转换模块28可以接收与元件14之一相对应的意图,并将该意图转换为与相应元件相对应的低级别配置。
在从转换模块28接收到低级别配置指令后,配置模块26经由网络接口模块32将低级别配置指令发送给相应的受管网络装置(例如,元件14),该网络装置的配置将被更新。网络接口34将低级别配置指令转发给相应的网络装置。
响应于接收到升级请求11,配置模块26将来自该请求的数据存储到配置数据库46中。装置升级管理模块30从WAN链路下载升级图像,并将其存储到升级图像42中。装置更新管理模块30基于从网元14接收的特征数据生成图像42,诸如装置数据和拓扑数据中的一个或多个。装置数据可以包括关于装置上用于存储升级图像或其部分的可用存储的信息。装置升级管理模块30将图像分区成包括被分成有序部分的序列化数据的部分。
配置数据库46还可以包括升级完成状态信息。当装置升级管理模块30从正在升级的元件14接收到元件14已经接收到软件升级图像的所有部分、将图像部分缝合在一起并完成其升级的消息时,装置升级管理单元30更新升级完成状态信息。
当选择多个网络装置作为图像代理装置时,在一些示例中,装置升级管理模块30可以通过将软件升级图像的每一部分分配给多个网络装置中的多个网络器件来生成图像映射。在该示例中,如果先前尝试失败,则图像映射包含要升级的网络装置组应尝试下载软件升级映像的部分的顺序的多个网络设备的列表。
尽管出于示例目的将用户界面36描述为允许管理员12(图1)与控制器装置10交互,但在其他示例中可以使用其他界面。例如,控制器装置10可以包括代表性状态转移(REST)客户端(未示出),其可以充当到另一装置的接口,管理员12可以通过该接口配置控制器装置10。同样,管理员12可通过REST客户端与控制器装置10交互来配置元件14。
控制器装置10还将表示由元件14(图1)提供的资源的数据存储在配置数据库46中。这些资源可以包括例如网络服务、硬件和/或软件单元以及元件14的表。因此,这些资源可以例如包括网络隧道(如标签交换路径(LSP))、虚拟专用网络(VPN)和虚拟专用网络,虚拟路由和转发(VRF)表、硬件接口、逻辑接口、存储空间等。控制器装置10可以配置有剧本,管理员12(图1)可以使用该剧本来对各种资源进行编程。剧本可以包含资源定义组、资源发现规则和资源合并策略。
在一些示例中,管理模块24被配置为接收与元件14的一个或多个元件的预期配置相对应的高级别意图文件。高级别意图文件可以表示高级别配置。如本文所用,术语“高级别配置”是指可由用户编程和/或更改的配置。“低级别配置”可以指诸如元件14之一的网络装置被配置为处理和实现。转换模块可以使用转换函数44将高级别配置转换为一个或多个低级别配置,其中,一个或多个低级别配置中的每个低级别配置对应于元件14中的一个元件。转换模块28可以向配置模块26发送一个或多个低级别配置。
装置升级管理模块30选择一个或多个网络装置作为存储软件升级图像的一个或多个图像代理装置的对应部分,一个或多个装置从要升级的网络装置组中选择。例如,装置升级管理模块30选择能够容纳图像部分尺寸的装置来存储图像部分;这些装置称为图像代理网络装置。然后,装置升级管理模块30初始化网络中的图像。装置升级管理模块30向装置触发图像升级序列。每个装置根据图像映射43从图像代理装置拉取图像的部分,并将这些部分缝合在一起以创建完整的图像。一旦所有装置都具有完整的图像并且已经用信号通知控制器装置10以指示其具有完整图像,装置升级管理模块30触发装置上的升级命令。
作为示例,以下是在上述示例中分发图像所采取的步骤:选择存储图像部分的装置。实现此目的的示例方法:
1)选择要在管理系统(n)上升级的装置。
2)选择n/2个装置,这些装置具有最大的空间,并且可以访问选择升级的所有其他装置。
3)部分计算(可以是部分图像或完整图像):
4)步骤2中所选装置中可用的最小尺寸将用作图像的部分尺寸。使用此值作为ImageSize/PortionSize计算部分数量。
5)如果自由空间尺寸与图像尺寸相同,则无需将图像分割为多个部分,而是将整个图像用作单个单元。
6)可以使用拓扑感知进行此装置选择。例如,靠近网关或网关本身的装置可以优选作为图像代理装置,以避免阻塞下面的装置进行初始图像分发。
7)创建一个空映射/表,其中包含指向从控制器装置拉取的默认拉取选项。
8)创建一个单独的初始化表,其中保存图像代理装置的列表和每个装置将保存的图像部分。
例如,在50个装置中,选择25个装置作为图像代理装置。
示例1:假设最小可用尺寸与图像尺寸相同,则控制器装置将维护保存图像的图像代理装置列表。表1是示例1的图像映射的示例初始化表。
部分细节 装置
部分1–(图像中结束的开始和结束索引) D1,D5,D9,D13,D17,D21
表1
示例2:假设装置上可用的最小自由尺寸为500M。
图像的部分数量=2G/500M=4[将25个部分分成4个部分不平均,因此使用24个装置]。表2是示例2的图像映射的示例初始化表。
部分细节 装置
部分1–(图像中部分的开始和结束索引) D1,D5,D9,D13,D17,D21
部分2–(图像中部分的开始和结束索引) D2,D6,D10,D14,D18,D22
部分3–(图像中部分的开始和结束索引) D3,D7,D11,D15,D19,D23
部分4–(图像中部分的开始和结束索引) D4,D8,D12,D16,D20,D24
表2
以这种方式,生成图像映射可以包括将软件升级图像的每一部分分配给多个网络装置中的多个网络装置,如果先前尝试失败,则图像映射包含要升级的网络装置组应尝试下载软件升级映像的部分的顺序的多个网络设备的列表。
为了初始化网络中的图像,可以使用以下示例方法。
1)基于上面讨论的默认表,通知装置以以下格式拉取图像的特定部分。
2)选择要发送图像的初始装置:
a)对于图像未被分割的情况,首先向初始装置发送信号以拉取图像。
b)对于图像被分割的情况,首先用信号通知初始装置D1、D2、D3和D4以拉取图像。
3)一旦这些装置确认成功拉取,其余图像代理装置将被并行触发。
a)对于图像的无切片(上面的示例1),则所有其他装置仅接收从中拉取图像的装置列表。
b)这些装置从控制器装置获得以下响应,并且基于该响应,表2中的其余装置将从装置进行并行拉取。
c)控制器装置10将用图像的部分的图像映射和托管图像的部分的装置来响应。
示例:对于上述点3b:装置D5至D24将从装置D1至D4进行并行拉取,如表3所示。
部分细节 装置
部分1–(图像中部分的开始和结束索引) D1
部分2–(图像中部分的开始和结束索引) D2
部分3–(图像中部分的开始和结束索引) D3
部分4–(图像中部分的开始和结束索引) D4
表3
装置升级管理模块30将完整图像扩展到所有装置,例如通过以下过程:一旦所有图像代理装置都具有图像部分,所有选择升级的装置都会收到信号以拉取图像部分。在装置上触发的拉取命令将联系中央服务器(例如控制器装置10)。控制器装置10将用图像部分的图像映射和托管图像的部分的装置来响应。例如,表2中的一个将与所有装置共享。然后,被触发装置将从映射中的装置中拉取图像的部分(如果被触发装置正在处理完整图像,则部分的数量可以是1)。如果图像拉取失败(例如,拉取图像部分或拉取完整图像),则被触发的装置尝试从列表中的下一个装置拉取该图像部分或完整图像。
可在元件14上配置的控制策略示例:如果从装置中拉取失败,则可以定义策略重试N次。如果所有重试失败,则尝试拉取图像或图像部分的装置可能会退回到存储软件升级图像的中央服务器(其可能与控制器装置10不同或相同)。在一些示例中,可以通过装置的阈值来控制并行拉取的数量。例如,如果新的传入拉取请求在CPU和内存使用方面将系统阈值提高了50%,则拒绝该请求将。以下过程概述了典型装置拉取图像或图像部分的流程:1.从控制器装置10或中央服务器请求图像。从控制器装置10接收图像映射。对于尚未拉取的图像部分,请执行以下操作:对于列表上的所有图像代理装置,从图像映射上首先列出的图像代理装置拉取图像部分。如果图像部分拉取不成功,请转到托管在用于指定该特定图像部分的列表上的下一个图像代理。继续,直到图像部分被成功拉出。但是,如果列表中没有更多的图像代理装置,并且没有更多的重试可用,请从中央服务器中拉取作为后备。触发装置的图像升级序列。一旦所有装置都有了图像,并通知中心所有图像都有完整的图像,就会在装置上触发升级命令。
图3是示出根据本公开的一个或多个技术的用于网络装置升级的分布式软件升级图像分发的控制系统的示例操作的流程图。为了方便起见,参照图1和图2的控制器装置10和元件14来描述图3。然而,图3的技术可以由控制器装置10和元件14的不同部件或由附加或替代装置执行。
在图3的示例中,控制器装置10接收网络的网络装置的相应特征数据(305)。网络可以是例如企业网络、分支网络、数据中心网络、服务提供商网络、互联网服务提供商网络或其他网络。网络装置(元件)的特征数据可以包括,例如,与网络的拓扑有关的一个或多个信息、网络装置到存储完整图像或图像部分的位置的距离、以及网络装置上的可用数据存储空间的量。在一些示例中,控制器装置10在选择图像代理网络装置时考虑从给定网络装置到其他网络装置的距离。控制器装置10可以基于网络装置的特征数据生成图像映射,该图像映射针对软件升级图像的多个不同部分的每一部分指示由控制系统从网络装置中选择的图像代理网络装置,以基于特征数据存储该部分(310)。控制器装置10将图像映射输出到元件14的元件,以使该元件从由控制器装置10选择的相应图像代理网络装置获得软件升级图像的多个不同部分的每一部分以存储该部分(315)。
在一些示例中,控制器装置10指示要升级的网络装置组中的网络装置启动升级过程,该升级过程根据图像映射获得升级图像的部分。在一些示例中,软件升级图像用于升级将由网络装置执行的软件部件。在一些示例中,生成图像映射包括将软件升级图像的每一部分分配给多个网络装置中的多个网络装置,图像映射包含多个网络装置的列表,如果先前尝试失败,则图像映射包含要升级的网络装置组应尝试下载软件升级映像的部分的顺序的多个网络设备的列表。在一些示例中,生成图像映射包括选择预定比例的网络装置用作图像代理网络装置(例如,50%(一半)、25%、75%、三分之一或另一预定部分),控制器装置10将经由配置模块26接收的预定比例的指示存储在配置数据库46中,在生成图像映射之前,控制器装置10从由控制器装置10管理的多个网络装置中识别要升级的网络装置。例如,在一组元件14中,控制器装置14在生成图像映射之前将子集识别为要升级的网络装置。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合实现。例如,技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成或离散逻辑电路,以及这些部件的任何组合。术语“处理器”或“处理电路”通常可指任何前述逻辑电路,单独或与其他逻辑电路组合,或任何其他等效电路。包括硬件的控制单元还可以执行本公开的技术中的一个或多个。
此类硬件、软件和固件可在同一装置内或单独装置内实现,以支持本公开中描述的各种操作和功能。此外,所描述的单元、模块或部件中的任何一个可以一起或单独地实现为离散但可互操作的逻辑装置。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着这些模块或单元必须由单独的硬件或软件部件实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件部件执行,或者集成在公共或单独的硬件或者软件部件内。
本公开中描述的技术也可以在包含指令的计算机可读介质(例如计算机可读存储介质)中实现或编码。嵌入或编码在计算机可读介质中的指令可导致可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读介质可以包括非瞬态计算机可读存储介质和瞬态通信介质。有形和非暂时的计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读内存(EPROM)、电可擦除可编程序只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、磁带、磁介质、或其他计算机可读存储介质。术语“计算机可读存储介质”指的是物理存储介质,而不是信号、载波或其他瞬态介质。
已经描述了各种示例。这些和其他实例在以下权利要求的范围内。

Claims (20)

1.一种通信方法,包括:
由用于软件升级图像的控制系统接收用于网络的多个网络装置的相应特征数据;
由所述控制系统并基于用于所述多个网络装置的所述特征数据生成图像映射,所述图像映射针对所述软件升级图像的多个不同部分的每一部分指示由所述控制系统从所述多个网络装置中选择的图像代理网络装置,以基于所述特征数据存储所述部分;以及
由所述控制系统将所述图像映射输出到所述多个网络装置中的一个网络装置,以使得所述网络装置从由所述控制系统选择的对应图像代理网络装置获得所述软件升级图像的所述多个不同部分的每一部分,以存储所述部分。
2.根据权利要求1所述的方法,还包括:由所述控制系统指示要升级的所述多个网络装置的组中的网络装置以启动升级过程,所述升级过程根据所述图像映射获得所述升级图像的多个部分。
3.根据权利要求1所述的方法,其中,所述软件升级图像用于升级将由所述网络装置执行的软件部件。
4.根据权利要求1至3中任一项所述的方法,其中,生成所述图像映射包括将所述软件升级图像的每一部分分配给所述多个网络装置中的多个网络装置,所述图像映射包含以要升级的所述多个网络装置的组在先前尝试失败的情况下应尝试下载所述软件升级图像的所述部分的顺序排序的所述多个网络装置的列表。
5.根据权利要求1至3中任一项所述的方法,其中,生成所述图像映射包括基于从以下列表中选择的特征数据中的至少一个来生成所述图像映射:所述网络的拓扑,所述多个网络装置到存储所述软件升级图像的位置的距离,以及所述多个网络装置上的可用数据存储空间的量。
6.根据权利要求1至3中任一项所述的方法,其中,生成所述图像映射包括选择所述多个网络装置的预定比例以用作图像代理网络装置,其中,所述控制系统存储经由配置信息接收的所述预定比例的指示。
7.根据权利要求6所述的方法,其中,选择所述多个网络装置的所述预定比例包括选择所述多个网络装置的一半以用作图像代理装置。
8.根据权利要求1至3中任一项所述的方法,还包括在生成所述图像映射之前,由所述控制系统将所述多个网络装置识别为要从由所述控制系统管理的多个网络装置中要升级的多个网络装置。
9.一种用于软件升级图像的控制系统,所述控制系统包括:
一个或多个处理器;以及
存储器,包括指令,当由所述一个或多个处理器执行所述指令时,所述指令使得所述一个或多个处理器:
接收用于网络的多个网络装置的相应特征数据;
基于用于所述多个网络装置的所述特征数据生成图像映射,所述图像映射针对所述软件升级图像的多个不同部分的每一部分指示由所述控制系统从所述多个网络装置中选择的图像代理网络装置,以基于所述特征数据存储所述部分;以及
将所述图像映射输出到所述多个网络装置中的一个网络装置,以使得所述网络装置从由所述控制系统选择的对应图像代理网络装置获得所述软件升级图像的所述多个不同部分的每一部分,以存储所述部分。
10.根据权利要求9所述的控制系统,其中,所述存储器还包括指令,当由所述一个或多个处理器执行所述指令时,所述指令使得所述一个或多个处理器:指示要升级的所述多个网络装置的组中的网络装置以启动升级过程,所述升级过程根据所述图像映射获得所述升级图像的多个部分。
11.根据权利要求9所述的控制系统,其中,所述软件升级图像用于升级将由所述网络装置执行的软件部件。
12.根据权利要求9至11中任一项所述的控制系统,其中,生成所述图像映射包括将所述软件升级图像中的每一部分分配给所述多个网络装置中的多个网络装置,所述图像映射包含以要升级的所述多个网络装置的组在先前尝试失败的情况下应尝试下载所述软件升级图像的所述部分的顺序排序的所述多个网络装置的列表。
13.根据权利要求9至11中任一项所述的控制系统,其中,所述特征数据从以下列表中选择:所述网络的拓扑,所述多个网络装置到存储所述软件升级图像的位置的距离,以及所述多个网络装置上的可用数据存储空间的量。
14.根据权利要求9至11中任一项所述的控制系统,其中,生成所述图像映射包括选择所述多个网络装置的预定比例以用作图像代理网络装置,其中,所述控制系统存储经由配置信息接收的所述预定比例的指示。
15.根据权利要求14所述的控制系统,其中,选择所述网络装置的所述预定比例包括选择所述多个网络装置的一半以用作图像代理装置。
16.根据权利要求9至11中任一项所述的控制系统,其中,所述存储器还包括指令,当由所述一个或多个处理器执行所述指令时,所述指令使得所述一个或多个处理器:在生成所述图像映射之前,由所述控制系统将所述多个网络装置识别为要从由所述控制系统管理的多个网络装置中要升级的多个网络装置。
17.一种包括指令的计算机可读存储介质,当执行所述指令时使得控制系统的一个或多个处理器:
接收用于网络的多个网络装置的相关特征数据;
基于用于所述多个网络装置的所述特征数据生成图像映射,所述图像映射针对软件升级图像的多个不同部分的每一部分指示由所述控制系统从所述多个网络装置中选择的图像代理网络装置,以基于所述特征数据存储所述部分;以及
将所述图像映射输出到所述多个网络装置中的一个网络装置,以使得所述网络装置从由所述控制系统选择的对应图像代理网络装置获得所述软件升级图像的所述多个不同部分的每一部分,以存储所述部分。
18.根据权利要求17所述的计算机可读存储介质,还包括指令,当执行所述指令时使得控制系统的一个或多个处理器:指示要升级的所述多个网络装置的组中的网络装置以启动升级过程,所述升级过程根据所述图像映射获得所述升级图像的多个部分。
19.根据权利要求17所述的计算机可读存储介质,其中,所述指令将所述处理器配置为:将所述软件升级图像的每一部分分配给所述多个网络装置中的多个网络装置,所述图像映射包含以要升级的所述网络装置的组在先前尝试失败的情况下应尝试下载所述软件升级图像的所述部分的顺序排序的所述多个网络装置的列表。
20.根据权利要求17至19中任一项所述的计算机可读存储介质,其中,所述特征数据从以下列表中选择:所述网络的拓扑,所述多个网络装置到存储所述软件升级图像的位置的距离,以及所述多个网络装置上的可用数据存储空间的量。
CN202211201589.2A 2021-09-30 2022-09-29 通信方法、用于软件升级图像的控制系统和存储介质 Pending CN115914201A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/449,530 US20230094033A1 (en) 2021-09-30 2021-09-30 Decentralized software upgrade image distribution for network device upgrades
US17/449,530 2021-09-30

Publications (1)

Publication Number Publication Date
CN115914201A true CN115914201A (zh) 2023-04-04

Family

ID=83508593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211201589.2A Pending CN115914201A (zh) 2021-09-30 2022-09-29 通信方法、用于软件升级图像的控制系统和存储介质

Country Status (3)

Country Link
US (1) US20230094033A1 (zh)
EP (1) EP4160394A1 (zh)
CN (1) CN115914201A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008287419A (ja) * 2007-05-16 2008-11-27 Canon Inc 通信装置、データ処理システム、通信装置の制御方法、データ処理システムの制御方法、及びプログラム
US10693720B2 (en) * 2017-04-10 2020-06-23 Cisco Technology, Inc. Distribution of updates in an IoT network
GB2569651A (en) * 2017-12-22 2019-06-26 Veea Systems Ltd Edge computing system
US10931529B2 (en) * 2019-07-10 2021-02-23 Nanning Fugui Precision Industrial Co., Ltd. Terminal device management method, server, and terminal device for managing terminal devices in local area network

Also Published As

Publication number Publication date
EP4160394A1 (en) 2023-04-05
US20230094033A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
CN111817870B (zh) 管理多个网络设备的方法、控制器设备以及存储介质
US11582115B2 (en) Dynamic intent assurance and programmability in computer networks
CN111756563B (zh) 支持接近实时的服务水平协议
CN111756564B (zh) 用于配置网络的方法、控制器装置以及存储介质
US11936520B2 (en) Edge controller with network performance parameter support
US11736410B1 (en) Synchronizing device resources for element management systems
CN112104473A (zh) 基于图形的意图控制器中的可编程配置模板
EP3754905A1 (en) Programmable configlets through opaque intents in graph based intent controllers
US11805013B2 (en) Prioritizing policy intent enforcement on network devices
US10380184B1 (en) Efficiently generating configuration operations for network devices
US20220400045A1 (en) Collecting metric information by sensors based on device characteristic information
EP4160394A1 (en) Decentralized software upgrade image distribution for network device upgrades
CN114697207B (zh) 具有网络性能参数支持的边缘控制器
US11700181B2 (en) Topology compiler for network management system
US11729075B1 (en) Time series data collection for a network management system

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