网络的管理方法和系统与流程

文档序号:18104759发布日期:2019-07-06 11:34阅读:276来源:国知局
网络的管理方法和系统与流程
本公开涉及一种网络的管理方法和系统。
背景技术
:现有网络环境的网络中多个节点可以分别具有网络管理软件,且每个节点都可以通过运行网络管理软件进行网络管理,然而,网络不通的情况时有发生。技术实现要素:本公开的一个方面提供了一种网络的管理方法,所述方法可以包括如下操作:首先,获取所述网络的拓扑结构,其中,所述网络包括多个节点,所述多个节点中的至少一个节点具有网络管理应用,所述网络管理应用具有至少一个版本,然后,基于所述拓扑结构,获取所述多个节点具有的所述网络管理应用的第一版本列表,如果所述第一版本列表中的第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件,则关闭所述第一节点上的网络管理应用,并控制所述第一版本列表中的至少一个第二节点上运行网络管理应用,所述至少一个第二节点的网络管理应用的版本满足第二预设条件。本公开提供的网络的管理方法,基于获取的网络拓扑结构和各节点的网络管理应用版本得到第一版本列表,并控制第一版本列表中具有满足第二预设条件的网络管理应用的版本的节点运行网络管理应用,这样可以使得网络中运行的网络管理应用的版本满足第二预设条件,避免因各节点上运行的版本不满足第二预设条件,如不同版本之间存在冲突而导致网络异常。可选地,所述第一预设条件包括以下至少一种:所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于所述第一版本列表中的其它节点中至少一个节点的网络管理应用的版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于第一预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本不是第二预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于数据库中已有最新版本或数据库中已有次新版本。相应地,所述第二预设条件包括以下至少一种:版本高于所述第一版本列表中的其它节点的网络管理应用的版本,或者,版本高于第一预设版本,或者,版本是第二预设版本,或者,版本高于数据库中已有最新版本或数据库中已有次新版本。当第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件时,则表明存在比第一节点更合适的节点作为起网络管理作用的节点,然后从所述第一版本列表中选取具有满足第二预设条件的网络管理应用的版本的第二节点运行网络管理应用,这样可以通过更好版本的网络管理应用对网络进行管理。可选地,所述方法还可以包括如下操作:当所述第一节点上正在运行网络管理应用时,如果检测到第三节点发送的开启第一功能的指令,则获取所述第一节点上正在运行的网络管理应用的版本,其中,开启所述第一功能需要基于高于第三预设版本的网络管理应用,如果所述第一节点上正在运行的网络管理应用的版本低于所述第三预设版本,则禁止所述第三节点开启所述第一功能,并进行第一信息提示。由于部分功能的开启需要较高版本的网络管理应用的支持,因此,如果当前运行的网络管理应用的版本低于能使得上述功能正常开启和运行的网络管理应用的版本时,则可以禁止开启该功能以防止因开启某些功能导致网络异常。可选地,所述方法还可以包括如下操作:当所述第一节点上正在运行网络管理应用时,如果检测到关闭所述第一节点上运行的网络管理应用的指令,则更新所述第一版本列表,得到第二版本列表,其中,所述第二版本列表中不包括所述第一节点,然后,基于所述第二版本列表获取第四节点,其中,所述第四节点为所述第二版本列表中具有满足第三预设条件的网络管理应用的节点,接着,关闭所述第一节点上的网络管理应用,并控制所述第四节点运行网络管理应用。这样可以在运行网络管理应用的节点,如充当网络管理作用的节点需要关闭网络管理应用时,可以从网络中选取满足第三预设条件的网络管理应用的版本的节点来充当新的网络管理节点,避免因网络管理应用的版本过低或不支持特定的功能而造成的网络异常。可选地,所述第三预设条件包括以下任意一种:版本为所述第二版本列表中最高版本或次高版本,或者,版本与所述第一节点的网络管理应用的版本相同,或者,版本支持特定功能,或者,版本为数据库中已有最新版本或数据库中已有次新版本。可选地,所述方法还可以包括如下操作:当所述第一节点上正在运行网络管理应用时,如果至少一个新节点接入所述网络,则更新所述网络的拓扑结构及所述第一版本列表,得到第三版本列表,以及,如果所述第三版本列表中具有比所述第一节点上正在运行的网络管理应用的版本更高的版本,则关闭所述第一节点上的网络管理应用,并控制所述多个节点中具有所述更高的版本的网络管理应用的至少一个节点上运行网络管理应用。这样可以保证充当网络管理节点的节点上运行的网络管理应用为所述第三版本列表中的最新版本,优化网络性能。可选地,所述方法还可以包括如下操作:当所述第一节点上正在运行网络管理应用时,如果检测到针对所述第一版本列表中第五节点的运行网络管理应用请求,且所述第五节点的网络管理应用的版本不满足所述第二预设条件,则禁止在所述第五节点上运行网络管理应用,并进行第二信息提示。这样可以使得网络中只有一个节点上在运行网络管理应用,进一步减小了因网络管理软件的版本冲突而造成网络异常的可能性。可选地,所述方法还可以包括如下操作:当所述第一节点上正在运行网络管理应用时,如果所述多个节点中的至少一个节点从所述网络中断开连接,则更新所述多个节点的拓扑结构及所述版本列表。可选地,所述网络包括infiniband网络,和/或,所述网络管理应用包括子网管理器(opensourcesubnetmanagerandadministration,简称opensm)。本公开的另一个方面提供了一种网络的管理系统,所述系统可以包括:拓扑结构获取模块、版本列表获取模块和第一控制模块,其中,所述拓扑结构获取模块用于获取所述网络的拓扑结构,其中,所述网络包括多个节点,所述多个节点中的至少一个节点具有网络管理应用,所述网络管理应用具有至少一个版本,所述版本列表获取模块用于基于所述拓扑结构,获取所述多个节点具有的所述网络管理应用的第一版本列表,所述第一控制模块用于如果所述第一版本列表中的第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件,则关闭所述第一节点上的网络管理应用,并控制所述第一版本列表中的至少一个第二节点上运行网络管理应用,所述至少一个第二节点的网络管理应用的版本满足第二预设条件。可选地,所述第一预设条件包括以下至少一种:所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于所述第一版本列表中的其它节点中至少一个节点的网络管理应用的版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于第一预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本不是第二预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于数据库中已有最新版本或数据库中已有次新版本。相应地,所述第二预设条件包括以下至少一种:版本高于所述第一版本列表中的其它节点的网络管理应用的版本,或者,版本高于第一预设版本,或者,版本是第二预设版本,或者,版本高于数据库中已有最新版本或数据库中已有次新版本。当第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件时,则表明存在比第一节点更合适的节点作为起网络管理作用的节点,然后从所述第一版本列表中选取具有满足第二预设条件的网络管理应用的版本的第二节点运行网络管理应用,这样可以通过更好版本的网络管理应用对网络进行管理。可选地,所述系统还可以包括:第一检测模块和第二控制模块,其中,所述第一检测模块用于当所述第一节点上正在运行网络管理应用时,如果检测到第三节点发送的开启第一功能的指令,则获取所述第一节点上正在运行的网络管理应用的版本,其中,开启所述第一功能需要基于高于第三预设版本的网络管理应用,所述第二控制模块用于如果所述第一节点上正在运行的网络管理应用的版本低于所述第三预设版本,则禁止所述第三节点开启所述第一功能,并进行第一信息提示。可选地,所述系统还可以包括:第一更新模块、节点获取模块和第三控制模块,其中,所述第一更新模块用于当所述第一节点上正在运行网络管理应用时,如果检测到关闭所述第一节点上运行的网络管理应用的指令,则更新所述第一版本列表,得到第二版本列表,其中,所述第二版本列表中不包括所述第一节点,所述节点获取模块用于基于所述第二版本列表获取第四节点,其中,所述第四节点为所述第二版本列表中具有满足第三预设条件的网络管理应用的节点,所述第三控制模块用于关闭所述第一节点上的网络管理应用,并控制所述第四节点运行网络管理应用。可选地,所述第三预设条件包括以下任意一种:版本为所述第二版本列表中最高版本或次高版本,或者,版本与所述第一节点的网络管理应用的版本相同,或者,版本支持特定功能,或者,版本为数据库中已有最新版本或数据库中已有次新版本。可选地,所述系统还可以包括:第二更新模块和第四控制模块,其中,所述第二更新模块用于当所述第一节点上正在运行网络管理应用时,如果至少一个新节点接入所述网络,则更新所述网络的拓扑结构及所述第一版本列表,得到第三版本列表,所述第四控制模块用于如果所述第三版本列表中具有比所述第一节点上正在运行的网络管理应用的版本更高的版本,则关闭所述第一节点上的网络管理应用,并控制所述多个节点中具有所述更高的版本的网络管理应用的至少一个节点上运行网络管理应用。可选地,所述系统还可以包括:第五控制模块,其中,所述第五控制模块用于当所述第一节点上正在运行网络管理应用时,如果检测到针对所述第一版本列表中第五节点的运行网络管理应用请求,且所述第五节点的网络管理应用的版本不满足所述第二预设条件,则禁止在所述第五节点上运行网络管理应用,并进行第二信息提示。可选地,所述系统还可以包括:第六控制模块,其中,所述第六控制模块用于当所述第一节点上正在运行网络管理应用时,如果所述多个节点中的至少一个节点从所述网络中断开连接,则更新所述多个节点的拓扑结构及所述版本列表。可选地,所述网络包括infiniband网络,和/或,所述网络管理应用包括opensm。本公开的另一个方面提供了一种网络,包括多个节点以及如上所述的网络管理系统,其中,所述多个节点中的至少一个节点具有网络管理应用,所述网络管理应用具有至少一个版本。本公开的另一个方面提供了一种节点,包括一个或多个处理器和计算机可读存储介质,其中,所述计算机可读存储介质用于存储一个或多个计算机程序,所述计算机程序在被所述处理器执行时,实现如上所述的方法。本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。附图说明为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:图1示意性示出了根据本公开实施例的网络的管理方法和系统的应用场景;图2a示意性示出了根据本公开实施例的网络的管理方法的流程图;图2b示意性示出了根据本公开实施例的infiniband网络的结构示意图;图3a示意性示出了根据本公开另一实施例的网络的管理方法的流程图;图3b示意性示出了根据本公开另一实施例的网络的管理方法的流程图;图3c示意性示出了根据本公开另一实施例的infiniband网络的结构示意图;图3d示意性示出了根据本公开另一实施例的网络的管理方法的流程图;图3e示意性示出了根据本公开另一实施例的网络的管理方法的流程图;图4a示意性示出了根据本公开实施例的网络的管理系统的框图;图4b示意性示出了根据本公开另一实施例的网络的管理系统的框图;以及图5示意性示出了根据本公开实施例的节点的框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“第一、第二、第三”等这样的表述的情况下,并非表示具有至少三个对象,如三个节点,可以是仅作为对象的标识符号。也就是说,当出现了第四节点的表述时,并非至少具有四个节点,只表示该节点被称为第四节点。相应地,第四节点和第二节点可以为同一个节点,也可以不是同一个节点,其它相似表述的情况类似,在此不再一一赘述。附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。本公开的实施例提供了一种网络的管理方法和系统。该方法包括版本列表获取过程和节点控制过程。在版本列表获取过程中,首先获取网络的拓扑结构,并基于所述拓扑结构,获取所述多个节点具有的所述网络管理应用的第一版本列表,其中,该第一版本列表中可以包括每个节点所具有的网络管理应用的版本,每个节点可以使用代码进行身份标识。在完成版本列表获取之后,进入节点控制过程,如果所述第一版本列表中的第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件,则关闭所述第一节点上的网络管理应用,并控制所述第一版本列表中的至少一个第二节点上运行网络管理应用。这样可以在第一节点不满足需求时切换至能满足需求的第二节点进行网络管理。图1示意性示出了根据本公开实施例的网络的管理方法和系统的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。如图1所示,该网络100可以包括5个节点:节点a101、节点b102、节点c103、节点d104和节点e105,其中,所有节点之间可以至少部分互联,这5个节点中至少一个节点具有网络管理应用。各节点之间的连接类型可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。各节点之间可以进行信息交互,以接收或发送消息等。节点上可以安装有网络管理应用和各种通讯客户端应用,例如opensm、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。各节点可以由各种物理设备来表示,还可以由诸如虚拟机的各种虚拟设备来表示。具体地,可以是网关或者具有显示屏并且支持网页浏览的各种电子设备,包括但不限于交换机、路由器、智能手机、平板电脑、膝上型便携计算机、台式计算机、虚拟机、投影仪、增强现实设备和谷歌眼镜等等。虽然部分网络中采用的网络管理应用是开源的,每个节点可以随时更新网络管理应用的版本,但是也存在部分网络中采用的网络管理应用是不开源的情况,在该情况下,每个节点无法随时更新网络管理应用的版本,例如,部分节点安装的低版本的网络管理应用,而新接入的节点安装的高版本的网络管理应用,网络管理应用的不同的版本之间可能存在冲突,导致网络异常。图2a示意性示出了根据本公开实施例的网络的管理方法的流程图。如图2a所示,该方法包括操作s201~s203。在操作s201,获取所述网络的拓扑结构,其中,所述网络包括多个节点,所述多个节点中的至少一个节点具有网络管理应用,所述网络管理应用具有至少一个版本。在本实施例中,可以采用现有技术来获取网络的拓扑结构,这样便于后续基于该拓扑结构来获取网络管理应用的版本列表。具体地,所述网络包括局域网、子网等,如infiniband网络,所述网络管理应用包括opensm等。以下以infiniband网络为例进行示例性说明,不能理解为对本公开的限定。图2b示意性示出了根据本公开实施例的infiniband网络的结构示意图。infiniband网络(简称ib网络)技术是一种开放标准无损网络技术,支持多并发链接的“转换线缆”。该技术是基于串行点对点全双工互连,其提供高吞吐量和低延迟通信,特别适用于高性能计算(highperformancecomputing,简称hpc)应用和数据中心。infiniband网络架构支持双层拓扑划分。在下层,ib网络被称为子网,其中子网可以包括使用交换机和点对点链路互连的节点,如主机集合。在上层,ib结构构成一个或多个子网,其可以使用路由器互连。在子网内,主机可以使用交换机和点对点链路连接。此外,可以存在主管理实体,子网管理器(简称sm)驻留在子网中指定的节点,如子网设备上。子网管理器负责配置、激活和维护ib子网。此外,子网管理器可以负责在ib结构中进行路由表计算。例如,ib网络的路由可以在本地子网中的所有源和目的地对之间进行适当的负载平衡。需要说明的是,网络中的多个节点可以由各种物理设备来表示,此外,还可以由诸如虚拟机的各种虚拟设备来表示。子网管理器可以通过子网管理接口利用子网管理代理(简称sma),来交换被称为子网管理分组(简称smp)的控制分组。子网管理代理驻留在每个ib子网设备上。子网管理器能通过使用smp发现结构、配置端节点和交换机,并从sma接收通知。ib网络中的子网间和子网内路由可以基于存储在交换机中的lft。lft由sm根据使用的路由机制来计算。在子网中,端节点和交换机上的主机通道适配器(简称hca)端口使用本地标识符(localidentifer,简称lid)进行寻址。lft中的每个条目包括目的地lid(简称dlid)和输出端口。表中只支持每lid一个条目。当分组到达交换机时,其输出端口通过在交换机的转发表中查找dlid来确定。路由是确定性的,因为分组在网络中在给定的源-目的地对(简称lid对)之间采用相同的路径。其中,lid为网络内设备在子网内的唯一标识符。如图中的两条实线分别表示两条路由。通常,除主子网管理器之外的所有其它子网管理器为了容错都在待机模式下起作用。但是,在主子网管理器发生故障的情况下,由待机子网管理器协商新的主子网管理器。主子网管理器还执行子网的周期性扫描,以检测任何拓扑变化并相应地重新配置网络。但是,也存在多个子网管理器同时请求进行网络管理的情形,且当子网管理器的版本不同时可能由于版本冲突而造成网络异常。在网络初始化时,sm可以计算路由表,即子网内每对节点之间的连接或路由。此外,每当拓扑结构改变时,例如当某个链路断开时或者当添加新的节点时或者当某个节点被去除时,sm可以重新配置路由表,以便确保连接性和最佳性能。在sm运行期间,可以执行网络的周期性轻微扫描,以检查拓扑变化。如果在轻微扫描期间发现变化,或者如果sm接收到通知网络变化的信息,那么sm可以根据发现的变化重新配置网络。重新配置网络可以包括在网络初始化期间执行的步骤。此外,重新配置网络可以仅在发生网络变化的子网的局部范围内进行。此外,具有路由器的大型结构的分段可以限制重新配置的范围。在一个具体实施例中,如图2b所示,多个节点可以包括端节点201-204、叶交换机205-208、根交换机213-216和路由器(未图示)等。此外,ib网络结构200还可以包括中间交换机209-212。其中,可以采用基于ib网络技术的胖树拓扑结构的胖树路由机制进行路由。胖树路由机制可以由子网管理器,如opensm实现。opensm是infiniband网络的管理软件,必须要启动该应用,网络才能通信。端节点201-204中的每一个可以是多归属节点,即,通过多个端口连接到网络结构200的多个部分的节点。例如,节点201可以包括端口a1和a2,节点202可以包括端口a3和a4,节点203可以包括端口a5和a6,并且节点204可以包括端口a7和a8。此外,每个交换机可以具有多个交换机端口。例如,根交换机213可以具有交换机端口a9和a10,根交换机214可以具有交换机端口a11和a12,根交换机215可以具有交换机端口a13和a14,并且根交换机216可以具有交换机端口a15和a16。在操作s202,基于所述拓扑结构,获取所述多个节点具有的所述网络管理应用的第一版本列表。在本实施例中,在获取了所述拓扑结构后可以获取每个节点安装的网络管理应用的版本,例如,可以通过子网管理器,如opensm来获取各节点中安装的网络管理应用的版本,然后,就可以据此构建第一版本列表,例如,端节点201、203和叶交换机206、207中安装的网络管理应用的版本为opensm3.x版本,而端节点202、204和叶交换机205、208中安装的网络管理应用的版本为opensm4.x版本,其中,x表示包括任何后缀,根据opensm的厂商发布的版本号而定,当然,获取的版本可以更加精细,例如,opensm4.1.1。如表1所示,为如图2b所示的ib网络的第一版本列表的示例,其中,各节点可以利用lid进行标识。表1第一版本列表节点lidopensm版本端节点201djd13.1端节点202djd24.2.1端节点203djd33.2端节点204djd44.3叶交换机205yjhj14.1叶交换机206yjhj23.1叶交换机207yjhj33.3叶交换机208yjhj44.3.2中间交换机209zjjhj14.5中间交换机210zjjhj24.x中间交换机211zjjhj34.6中间交换机212zjjhj44.1.1根交换机213gjhj14.2根交换机214gjhj24.x根交换机215gjhj34.8根交换机216gjhj44.7需要说明的是,以上所示版本和lid并不代表真实存在的版本和id,以上仅为示例性举例,不能理解为对本公开的限定。在操作s203,如果所述第一版本列表中的第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件,则关闭所述第一节点上的网络管理应用,并控制所述第一版本列表中的至少一个第二节点上运行网络管理应用,所述至少一个第二节点的网络管理应用的版本满足第二预设条件。在本实施例中,所述第一预设条件可以包括以下至少一种:所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于所述第一版本列表中的其它节点中至少一个节点的网络管理应用的版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于第一预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本不是第二预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于数据库中已有最新版本或数据库中已有次新版本。所述第二预设条件包括以下至少一种:版本高于所述第一版本列表中的其它节点的网络管理应用的版本,或者,版本高于第一预设版本,或者,版本是第二预设版本,或者,版本高于数据库中已有最新版本或数据库中已有次新版本。在一个实施例中,以所述第一预设条件为:所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于所述第一版本列表中的其它节点中至少一个节点的网络管理应用的版本,所述第二预设条件为:版本高于所述第一版本列表中的其它节点的网络管理应用的版本,为例进行说明。如果当前叶交换机207充当该ib网络的管理节点,即正在运行的opensm版本3.3进行网络管理,则由于该第一版本列表中存在根交换机215对应的opensm版本4.8,则需要关闭叶交换机207正在运行的opensm版本3.3,并控制根交换机215运行opensm版本4.8,这样可以有效避免因不同的节点上运行的opensm版本有冲突导致的网络。由于opensm4.0及以上版本不开源,非mellanox授权的交换机中的opensm版本低,如opensm版本为3.x,较老的mellanox交换机自带opensm版本通常为3.x,只有安装新的mellanox驱动(driver),才可以将opensm升到4.8及以上版本;rhel、sles之类的操作系统(os),自带的opensm版本仅为3.x,即现有技术为了解决部分节点安装的opensm版本低而导致的网络异常问题,只能通过更新各节点的opensm版本来实现。然而,当发生多家交换机混用(现实中经常存在该情况)时,并且多个交换机都运行opensm时,可能由于多个交换机分别运行的opensm的版本冲突而造成网络异常。此外,还有可能出现预装有opensm的主机中未安装新版本驱动(如主机上运行的os中未安装opensm的新版本驱动),或安装出现异常,可能导致当该主机运行时,造成网络异常。如上所述,现有技术只能通过更新各节点的opensm版本来解决版本冲突的问题,但是,某些情形下,例如,主机上运行的os中没有opensm的新版本授权许可、非mellanox授权的交换机等运行了opensm、由于时间或人为因素等无法及时对节点安装的opensm进行更新时,则无法通过对网络中各节点的opensm版本进行更新以解决网络冲突的问题。本公开提供的网络的管理方法,通过对各节点运行的网络管理应用进行控制,只允许安装有最高版本的节点运行网络管理应用,可以有效避免因网络管理应用版本冲突而造成的网络异常,且无需对各节点的网络管理应用的版本进行更新,并能使得网络由较高的版本的网络管理应用进行网络管理,保证网络性能。在另一个实施例中,以所述第一预设条件为:所述第一版本列表中的第一节点上正在运行的网络管理应用的版本不是第二预设版本;所述第一预设条件为:版本是第二预设版本,为例进行说明。虽然现有技术中一个应用的高版本通常支持低版本能支持的功能,但是,当版本迭代的次数较多时,仍然可能出现某些特定的功能可能只有特定版本的网络管理应用才支持,为了使得网络能支持某些特定的功能,则可能需要对起网络管理作用的节点的版本进行替换。本公开提供的方法通过获取第一版本列表,这样可以得到各节点安装的网络管理应用的版本,通常哪些版本支持哪些功能是已知的,因此,当需要运行某些特定的功能,而当前起到网络管理作用的节点运行的网络管理应用的版本不支持该特定的功能时,则可以基于第一版本列表获取能支持该特定的功能的网络管理应用的版本的节点,然后控制该节点运行网络管理应用,这样就很好地解决了上述问题,也无需进行网络管理应用版本替换,还可以拓展网络的适用性。需要说明的是,当所述第一节点上正在运行网络管理应用时,如果所述多个节点中的至少一个节点从所述网络中断开连接,则更新所述多个节点的拓扑结构及所述第一版本列表。这样可以保证所述拓扑结构及所述第一版本列表的准确度。图3a示意性示出了根据本公开另一实施例的网络的管理方法的流程图。如图3a所示,所述方法还可以包括操作s301~操作s302。在操作s301,当所述第一节点上正在运行网络管理应用时,如果检测到第三节点发送的开启第一功能的指令,则获取所述第一节点上正在运行的网络管理应用的版本,其中,开启所述第一功能需要基于高于第三预设版本的网络管理应用。虚拟化高性能计算(hpc)环境在持续不断的改善中,例如,cpu开销已通过硬件虚拟化的支持来解决,存储器开销已通过虚拟化存储器管理单元被显著降低,存储装置开销已通过使用快速san存储装置或分布式联网文件系统改善,并且,网络i/o开销已通过使用比如i/o虚拟化的设备直通技术来改善。i/o虚拟化(iov)可以通过允许虚拟机(vm)访问底层物理资源来提供i/o的可用性。存储流量和服务器间通信的组合强加了淹没单个服务器的i/o资源的可能性,从而导致积压以及增加了在等待数据时的空闲处理器。随着i/o请求数量的增加,iov可以提高i/o可用性,并且可以提高(虚拟化)i/o资源的性能、可扩展性和灵活性,以匹配cpu虚拟化中展现的性能水平。因此,实现iov是有利的,因为它可以允许i/o资源的共享并且提供对来自vm的资源的受保护的访问。iov将暴露于vm的逻辑设备与其物理实现分离。当前,可以有不同类型的iov技术,诸如仿真、半虚拟化、直接分配(da)和单根i/o虚拟化(singlerootiovirtualization,简称sr-iov)。然而,这些虚拟化技术以及其它未被提及的功能通常需要较高版本的opensm提供支持。以下以sr-iov为例对本实施例进行说明。在一个具体实施例中,所述第一功能为sr-iov,如果第三节点需要开启sr-iov功能,例如,所述第三节点给所述第一节点发送开启sr-iov的请求,则首先所述第一节点确定自身的网络管理应用的版本。在操作s302,如果所述第一节点上正在运行的网络管理应用的版本低于所述第三预设版本,则禁止所述第三节点开启所述第一功能,并进行第一信息提示。在本实施例中,以第三节点需要开启sr-iov功能为例进行说明,则需要当前充当网络管理节点的第一节点上运行的网络管理应用的版本高于opensm4.8,否则会导致网络异常,因此,当第一节点上运行的网络管理应用的版本低于opensm4.8时,则禁止开启sr-iov功能,以避免因开启不支持的功能而导致网络异常。图3b示意性示出了根据本公开另一实施例的网络的管理方法的流程图。如图3b所示,所述方法还可以包括如下操作:操作s303~操作s305。在操作s303,当所述第一节点上正在运行网络管理应用时,如果检测到关闭所述第一节点上运行的网络管理应用的指令,则更新所述第一版本列表,得到第二版本列表,其中,所述第二版本列表中不包括所述第一节点。在本实施例中,当需要关闭充当网络管理节点的第一节点上的网络管理应用时,可以首先更新所述第一版本列表,得到第二版本列表,需要说明的是,更新得到的第二版本列表中并不包括所述第一节点,这样确保第二版本列表的准确性。在操作s304,基于所述第二版本列表获取第四节点,其中,所述第四节点为所述第二版本列表中具有满足第三预设条件的网络管理应用的版本的节点。在本实施例中,所述第三预设条件包括以下任意一种:版本为所述第二版本列表中最高版本或次高版本,或者,版本与所述第一节点的网络管理应用的版本相同,或者,版本支持特定功能,或者,版本为数据库中已有最新版本或数据库中已有次新版本。以所述第三预设条件为:版本为所述第二版本列表中最高版本为例进行说明,这样可以实现如下功能:检测到起网络管理作用的opensm服务的节点执行关机命令时,检索网络中次高版本的节点(可以是与之前起网络管理作用的opensm的版本相同的版本或第二版本列表中的最高版本),等待该节点执行关机命令后,开启次高版本对应节点的opensm。在操作s305,关闭所述第一节点上的网络管理应用,并控制所述第四节点运行网络管理应用。本公开的实施例可以使得网络始终保持网络拓扑环境中opensm版本为所有节点中最高版本,并保证网络通畅。此外,当所述第三预设条件为版本支持特定功能时,则可以保证在第一节点停止运行网络管理应用时,自动切换至能支持特定功能的网络管理应用的版本,满足用户或网络需求。图3c示意性示出了根据本公开另一实施例的infiniband网络的结构示意图。如图3c所示,与图2b不同的是,infiniband网络中新接入了一个端节点217。相应地,图3d示意性示出了根据本公开另一实施例的网络的管理方法的流程图。如图3d所示,所述网络的管理方法还可以包括操作s306~操作s307。在操作s306,当所述第一节点上正在运行网络管理应用时,如果至少一个新节点接入所述网络,则更新所述网络的拓扑结构及所述第一版本列表,得到第三版本列表。在本实施例中,当检测到新接入的节点时,由于新接入的节点是否具有网络管理应用,具有的网络管理应用的版本都未知,且可以通过如当前起作用的opensm获取,因此,可以及时更新网络的拓扑结构及所述第一版本列表,得到第三版本列表。在操作s307,如果所述第三版本列表中具有比所述第一节点上正在运行的网络管理应用的版本更高的版本,则关闭所述第一节点上的网络管理应用,并控制所述多个节点中具有所述更高的版本的网络管理应用的至少一个节点上运行网络管理应用。如果新接入的节点上具有比所述第一版本列表中更高版本的网络管理应用时,则可以将具有更高版本的网络管理应用的新节点作为网络管理节点,即,检测到有新增节点,检查新节点的opensm版本,若高于当前起网络管理作用的版本,则进行网络管理节点替换,否则维持原样。这样可以始终保持网络拓扑环境opensm版本为所有节点中最高版本,并保证网络通畅。在一个具体实施例中,如图3c所示,infiniband网络中新接入了一个端节点217,其具有的opensm版本为4.9,高于所述第一版本列表中的所有opensm版本,因此,可以关闭如表1中所示的根交换机215上运行的opensm4.8版本,并控制端节点217上运行opensm4.9版本,使得infiniband网络中起作用的opensm的版本始终为能够从infiniband网络中获取到的最高版本。需要说明的是,如果opensm的厂商最新提供的opensm版本为5.x或更高版本,则以上所示的方法同样适用。图3e示意性示出了根据本公开另一实施例的网络的管理方法的流程图。如图3e所示,所述网络的管理方法还可以包括操作s308。在操作s308,当所述第一节点上正在运行网络管理应用时,如果检测到针对所述第一版本列表中第五节点的运行网络管理应用请求,且所述第五节点的网络管理应用的版本不满足所述第二预设条件,则禁止在所述第五节点上运行网络管理应用,并进行第二信息提示。以所述第二预设条件为版本高于所述第一版本列表中的其它节点的网络管理应用的版本为例进行说明。参考表1所示,如果根交换机215上运行的opensm4.8版本为所述第一列表中已知的网络管理应用的最高版本,当接收到如端节点203发送的开启端节点203上的opensm3.2版本时,由于opensm3.2的版本低于opensm4.8的版本,则禁止端节点203运行opensm3.2版本。需要说明的是,当某个节点更新了自身的opensm版本时,版本列表中的版本信息也需要进行更新。本公开提供的实施例在检测到网络中任意节点开启opensm的请求时,如果该节点的网络管理应用的版本不满足第二预设条件,则提示当前环境已经服务,并拒绝开启,维持网络中只有一个opensm在运行或起作用,规避opensm版本冲突导致网络异常的风险。图4a示意性示出了根据本公开实施例的网络的管理系统的框图。如图4a所示,所述系统400可以包括:拓扑结构获取模块401、版本列表获取模块402和第一控制模块403。其中,所述拓扑结构获取模块401用于获取所述网络的拓扑结构,其中,所述网络包括多个节点,所述多个节点中的至少一个节点具有网络管理应用,所述网络管理应用具有至少一个版本.所述版本列表获取模块402用于基于所述拓扑结构,获取所述多个节点具有的所述网络管理应用的第一版本列表.所述第一控制模块403用于如果所述第一版本列表中的第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件,则关闭所述第一节点上的网络管理应用,并控制所述第一版本列表中的至少一个第二节点上运行网络管理应用,所述至少一个第二节点的网络管理应用的版本满足第二预设条件。在一个实施例中,所述第一预设条件包括以下至少一种:所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于所述第一版本列表中的其它节点中至少一个节点的网络管理应用的版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于第一预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本不是第二预设版本,或者,所述第一版本列表中的第一节点上正在运行的网络管理应用的版本低于数据库中已有最新版本或数据库中已有次新版本。相应地,所述第二预设条件包括以下至少一种:版本高于所述第一版本列表中的其它节点的网络管理应用的版本,或者,版本高于第一预设版本,或者,版本是第二预设版本,或者,版本高于数据库中已有最新版本或数据库中已有次新版本。当第一节点上正在运行的网络管理应用的版本与所述第一版本列表的其它节点的网络管理应用的版本相比满足第一预设条件时,则表明存在比第一节点更合适的节点作为起网络管理作用的节点,然后从所述第一版本列表中选取具有满足第二预设条件的网络管理应用的版本的第二节点运行网络管理应用,这样可以通过更好版本的网络管理应用对网络进行管理。此外,所述系统400还可以包括:第一检测模块404和第二控制模块405。其中,所述第一检测模块404用于当所述第一节点上正在运行网络管理应用时,如果检测到第三节点发送的开启第一功能的指令,则获取所述第一节点上正在运行的网络管理应用的版本,其中,开启所述第一功能需要基于高于第三预设版本的网络管理应用。所述第二控制模块405用于如果所述第一节点上正在运行的网络管理应用的版本低于所述第三预设版本,则禁止所述第三节点开启所述第一功能,并进行第一信息提示。在本实施例中,所述系统400还可以包括:第一更新模块406、节点获取模块407和第三控制模块408。其中,所述第一更新模块406用于当所述第一节点上正在运行网络管理应用时,如果检测到关闭所述第一节点上运行的网络管理应用的指令,则更新所述第一版本列表,得到第二版本列表,其中,所述第二版本列表中不包括所述第一节点。所述节点获取模块407用于基于所述第二版本列表获取第四节点,其中,所述第四节点为所述第二版本列表中具有满足第三预设条件的网络管理应用的节点.所述第三控制模块408用于关闭所述第一节点上的网络管理应用,并控制所述第四节点运行网络管理应用。例如,所述第三预设条件包括以下任意一种:版本为所述第二版本列表中最高版本或次高版本,或者,版本与所述第一节点的网络管理应用的版本相同,或者,版本支持特定功能,或者,版本为数据库中已有最新版本或数据库中已有次新版本。图4b示意性示出了根据本公开实施例的网络的管理系统的框图。在另一个实施例中,如图4b所示,所述系统400还可以包括:第二更新模块409和第四控制模块410。其中,所述第二更新模块409用于当所述第一节点上正在运行网络管理应用时,如果至少一个新节点接入所述网络,则更新所述网络的拓扑结构及所述第一版本列表,得到第三版本列表。所述第四控制模块410用于如果所述第三版本列表中具有比所述第一节点上正在运行的网络管理应用的版本更高的版本,则关闭所述第一节点上的网络管理应用,并控制所述多个节点中具有所述更高的版本的网络管理应用的至少一个节点上运行网络管理应用。在另一个实施例中,所述系统400还可以包括:第五控制模块411。其中,所述第五控制模块411用于当所述第一节点上正在运行网络管理应用时,如果检测到针对所述第一版本列表中第五节点的运行网络管理应用请求,且所述第五节点的网络管理应用的版本不满足所述第二预设条件,则禁止在所述第五节点上运行网络管理应用,并进行第二信息提示。在另一个实施例中,所述系统还可以包括:第六控制模块,其中,所述第六控制模块用于当所述第一节点上正在运行网络管理应用时,如果所述多个节点中的至少一个节点从所述网络中断开连接,则更新所述多个节点的拓扑结构及所述版本列表。可选地,所述网络包括infiniband网络,和/或,所述网络管理应用包括opensm。根据本公开的实施例,所述网络的管理系统中版本列表的获取过程和确定哪个节点充当网络管理节点的过程,可以参见上面的描述,这里不再重复。根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。例如,拓扑结构获取模块401、版本列表获取模块402和第一控制模块403、第一检测模块404、第二控制模块405、第一更新模块406、节点获取模块407和第三控制模块408等中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,拓扑结构获取模块401、版本列表获取模块402和第一控制模块403、第一检测模块404、第二控制模块405、第一更新模块406、节点获取模块407和第三控制模块408中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,拓扑结构获取模块401、版本列表获取模块402和第一控制模块403、第一检测模块404、第二控制模块405、第一更新模块406、节点获取模块407和第三控制模块408中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。图5示意性示出了根据本公开实施例的节点的框图。图5示出的节点仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。如图5所示,所述节点500包括:一个或多个处理器510和计算机可读存储介质520。该节点500可以执行根据本公开实施例的方法。具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存等等。计算机可读存储介质520可以包括程序521,该程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,程序521中的代码可以包括一个或多个程序模块,例如包括程序模块521a、程序模块521b、……。应当注意,程序模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。根据本公开的实施例,处理器510可以与计算机可读存储介质520进行交互,来执行根据本公开实施例的方法或其任何变形。根据本公开的实施例,拓扑结构获取模块401、版本列表获取模块402和第一控制模块403、第一检测模块404、第二控制模块405、第一更新模块406、节点获取模块407和第三控制模块408中的至少一个可以实现为参考图5描述的程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1