CN113760313A - 云平台的升级方法、装置、设备、云平台系统及存储介质 - Google Patents
云平台的升级方法、装置、设备、云平台系统及存储介质 Download PDFInfo
- Publication number
- CN113760313A CN113760313A CN202010507636.0A CN202010507636A CN113760313A CN 113760313 A CN113760313 A CN 113760313A CN 202010507636 A CN202010507636 A CN 202010507636A CN 113760313 A CN113760313 A CN 113760313A
- Authority
- CN
- China
- Prior art keywords
- management platform
- target
- platform
- cloud computing
- service plug
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
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)
Abstract
本发明实施例提供的云平台的升级方法、装置、设备、云平台系统及存储介质,首先提供了一种新结构的云平台,该云平台中的云计算管理平台和虚拟化管理平台为相对分离的架构,并通过插件层实现对接。在升级时可直接获取待升级的目标版本云计算管理平台对当前版本云计算管理平台进行替换;以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配,使得升级后的插件层实现目标版本云计算管理平台与底层的虚拟化管理平台之间的对接;通过调整少量的插件代码,快速实现目标版本云计算管理平台的升级,保持云平台的功能和性能的领先。
Description
技术领域
本发明实施例涉及通信领域,具体涉及一种云平台的升级方法、装置、设备、云平台系统及存储介质。
背景技术
市面上出现了多种云平台以满足各种商用、医用等需求。例如,市面上出现了较多基于OpenStack或者兼容OpenStack的加强版云平台。之所以要基于OpenStack或者兼容OpenStack,因为OpenStack带来了更好的生态,更快捷地对接功能。OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台,其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。CloudStack和OpenNebula也具有与OpenStack类似的特性,下面以基于OpenStack实现的云平台为示例进行说明。
基于OpenStack实现的云平台架构中,OpenStack的云计算管理功能和虚拟化管理功能是融合在一起设计的。目前OpenStack开源软件的版本每隔半年会升级一次,版本命名规则是按照字母顺序(ABCD...)命名的,目前最新发布版本是Train版本。而目前大多数商用局点的版本是Mitaka,与最新的版本差了7个版本。之所以差距这么多,是因为在各类基于OpenStack的云平台升级的工作量都非常大,OpenStack源码在版本升级时会涉及到大量流程和算法的变动,函数和数据结构的变动,设计模式的修改,而OpenStack源码的修改就涉及约有2千万行,因此每次升级都会带来高额的成本和较大的风险。
发明内容
本发明实施例主要提供的一种云平台的升级方法、装置、设备、云平台系统及存储介质,旨在解决现有云平台升级成本高、风险大的问题。
为解决上述技术问题,本发明实施例提供了一种云平台的升级方法,所述云平台包括云计算管理平台和虚拟化管理平台,还包括对接所述云计算管理平台和虚拟化管理平台的插件层,所述插件层包括至少一个服务插件;
所述云平台的升级方法包括:
获取目标版本云计算管理平台对当前版本云计算管理平台进行替换;以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配。
为解决上述技术问题,本发明实施例还提供了一种云平台的升级装置,所述云平台包括云计算管理平台和虚拟化管理平台,还包括对接所述云计算管理平台和虚拟化管理平台的插件层,所述插件层包括至少一个服务插件;
所述云平台的升级装置包括:
获取模块,用于获取目标版本云计算管理平台;
升级处理模块,用于将当前版本云计算管理平台替换为所述目标版本云计算管理平台,以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配。
为解决上述技术问题,本发明实施例还提供了一种云平台系统,包括云平台和升级装置;
所述云平台包括云计算管理平台和虚拟化管理平台,还包括对接所述云计算管理平台和虚拟化管理平台的插件层,所述插件层包括至少一个服务插件;
所述升级装置包括:
获取模块,用于获取目标版本云计算管理平台;
升级处理模块,用于将当前版本云计算管理平台替换为所述目标版本云计算管理平台,以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配。
为解决上述技术问题,本发明实施例还提供了一种云平台的升级设备,包括处理器、存储器和连接所述处理器和存储器的通信总线;
所述存储器存储有计算机程序,所述计算机程序可被所述处理器执行,以实现如上所述的云平台的升级方法的步骤。
为解决上述技术问题,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行,以实现如上所述的云平台的升级方法的步骤。
本发明实施例提供的云平台的升级方法、装置、设备、云平台系统及存储介质,首先本发明实施例提供的云平台的架构包括云计算管理平台和虚拟化管理平台,还包括对接云计算管理平台和虚拟化管理平台的插件层,该插件层包括至少一个实现云计算管理平台和虚拟化管理平台对接的服务插件;也即本发明实施例首先提供了一种新结构的云平台,该云平台中的云计算管理平台和虚拟化管理平台为相对分离的架构,并通过插件层实现对接;该云平台的升级方法包括:获取目标版本云计算管理平台对当前版本云计算管理平台进行替换;以及根据所述目标版本云计算平台将插件层中服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配;使得升级后的插件层能正常实现目标版本云计算管理平台与底层的虚拟化管理平台之间的对接;这种升级方式只需要对当前版本云计算管理平台进行简单的替换,并只需对相应的服务插件进行修改升级,可大大降低升级成本和风险,能以尽可能少的人力快速完成升级,提升升级效率,保持云平台的功能和性能的领先。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为本发明实施例一提供的云平台结构示意图一;
图2为本发明实施例一提供的云平台结构示意图二;
图3为本发明实施例一提供的云平台结构示意图三;
图4为本发明实施例一提供的云平台升级方法流程示意图;
图5为本发明实施例一提供的基于OpenStack的云平台架构示意图;
图6为本发明实施例一提供的CloudStack的云平台架构示意图;
图7为本发明实施例一提供的前端界面升级流程示意图;
图8为本发明实施例二提供的云平台的升级装置结构示意图;
图9为本发明实施例二提供的云平台上创建虚机过程的流程示意图;
图10为本发明实施例二提供的云平台上导入镜像过程的流程示意图;
图11为本发明实施例二提供的云平台上修改虚拟机亲和组过程的流程示意图;
图12为本发明实施例二提供的云平台上创建安全组过程的流程示意图;
图13为本发明实施例二提供的云平台上创建云硬盘过程的流程示意图;
图14为本发明实施例三提供的云平台的升级设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
下面结合附图和实施实例,对本发明的具体实施方式作进一步详细描述。
针对相关技术中的云平台架构中,云计算管理功能和虚拟化管理功能是融合在一起设计的。导致云平台源码在版本升级时会涉及到大量流程和算法的变动,函数和数据结构的变动,设计模式的修改,而云平台的源码的修改就涉及约有2千万行,因此每次升级都会存在高额的成本和较大的风险问题,本实施例提供了一种新的云平台架构,请参见图1所示,该云平台包括云计算管理平台和虚拟化管理平台,还包括对接云计算管理平台和虚拟化管理平台的插件层,插件层包括至少一个用于实现云计算管理平台和虚拟化管理平台之间的对接的服务插件。也即本实施例提供的云平台架构,将云计算管理平台和虚拟化管理平台相对分离进行剥离设置,并通过插件层实现对接。这样在云平台升级时,可直接获取目标版本云计算管理平台,用获取的目标版本云平台对当前版本云计算管理平台进行替换,该替换基本不涉及源码的修改;并根据该目标版本云计算平台,将插件层包括的服务插件中的至少一个进行升级,使得升级后的插件层能正常实现目标版本云计算管理平台与底层的虚拟化管理平台之间的对接。本实施例提供的这种升级方式只需要对当前版本云计算管理平台进行简单的替换,并只需对相应的服务插件进行修改升级,服务插件的修改升级属于轻量级的升级,只涉及到约10万行的源代码修改,相对直接对OpenStack源码的修改涉及的约2千万行代码,可大大减少升级成本和风险,能以尽可能少的人力快速完成升级,提升升级效率。
可见,通过本实施例提供的云平台升级方法,可基于插件的快速升级实现云平台的升级,通过调整少量的插件代码,快速实现目标版本云计算管理平台的升级,保持云平台的功能和性能的领先。
一种示例请参见图2所示,对接云计算管理平台与虚拟化管理平台的插件层可包括但不限于计算服务插件、存储服务插件和网络服务插件中的至少一种,各服务插件可实现分别负责对应服务的数据结构转化和接口调用。例如计算服务插件对应云平台开源软件的计算服务,存储服务插件对应云平台开源软件的存储服务,网络服务插件对应应云平台开源软件的网络服务。应当理解的是,本实施例中云平台的插件层所具体包括的服务插件并不限于上述示例的几种服务插件,具体可根据云平台的类型和具体应用场景的需求灵活设定。例如,在图3所示的云平台架构中,插件层还可包括镜像服务插件和鉴权服务插件中的至少一种。
本实施例基于图1所示的云平台架构所提供的云平台升级方法请参见图4所示,包括:
S401:获取目标版本云计算管理平台对当前版本云计算管理平台进行替换。
S402:据目标版本云计算平台,将服务插件中的至少一个进行升级,使得升级后的服务插件与目标版本云计算管理平台相适配。
应当理解的是,上述步骤S401与S402的执行时序并无严格限制,可以先执行S401,再执行S402;也可先执行S402,再执行S401,或者S401和S402同时执行。另外,应当理解的是,本实施例S402中,根据目标版本云计算平台,将服务插件中的至少一个进行升级可包括但不限于:
获取根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的目标服务插件,通过目标服务插件对插件层中的服务插件进行升级,例如将对应的所述服务插件升级为所述目标服务插件。也即一种示例中,目标服务插件的生成,是根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的,因此每次云平台升级时,所生成的目标服务插件与上一次升级所生成的目标服务插件的个数和类型可能相同,也可能不同,且具体需要对哪些服务插件进行升级,可具体根据当前版本云计算管理平台和目标版本云计算管理平台之间的具体差异确定,至少需要能满足升级后的插件层中的服务插件能实正常实现当前版本云计算管理平台和目标版本云计算管理平台的对接即可。且应当理解的是,本实施例中对插件层中的服务插件进行升级时,可包括对插件层中已有的服务插件进行更新(该更新方式可包括但不限于采用对应的目标服务插件对当前的服务插件直接进行替换,也可为对当前的服务插件的某一部分代码进行修改升级),也可根据需求包括在插件层中新增服务插件,或将插件层中的某一些已有服务插件删除。
例如,在一些示例中,当对接云计算管理平台与所述虚拟化管理平台的插件层包括计算服务插件、存储服务插件和网络服务插件时,获取根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的目标服务插件可以包括目标计算服务插件、目标存储服务插件、目标网络服务插件中的至少一种。又例如,当对接云计算管理平台与所述虚拟化管理平台的插件层包括计算服务插件、镜像服务插件、鉴权服务插件、存储服务插件和网络服务插件时,获取根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的目标服务插件可以包括目标计算服务插件、目标镜像服务插件、目标鉴权服务插件、目标存储服务插件、目标网络服务插件中的至少一种。每次云平台升级时需要需要对哪些服务插件进行升级,以及具体需要对服务插件的哪些内容进行升级(也即生成相应目标服务插件时需要修改或增加哪些代码),则可根据具体应用场景灵活确定。在另一些应用场中,当目标版本云计算管理平台自身包含对应的插件(例如计算服务插件、镜像服务插件、鉴权服务插件、存储服务插件和网络服务插件)时,也可直接从目标版本云计算管理平台中提取出对应的插件代码作为对应的目标服务插件。此时可不需要获取根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的目标服务插件。
为了便于理解,本实施例下面以云计算管理平台可以为各种开源式的云计算管理平台,例如包括但不限于OpenStack、CloudStack、OpenNebula中的至少一种为示例进行说明。且应当理解的是,一些应用场景中,一个云平台可仅包括OpenStack、CloudStack、OpenNebula中的一种;当然在另一些应用场景中,一个云平台也可兼容OpenStack、CloudStack、OpenNebula中的至少两种。可根据具体应用场景需求灵活设定。
本实施例中,OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
CloudStack是一个开源的具有高可用性及扩展性的云计算平台,同时是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。
OpenNebula是专门为云计算打造的开源系统,用户可以使用Xen、KVM、VMware等虚拟化软件一起打造企业云。利用OpenNebula可以轻松构建私有云、混合云、公开云。
例如,在一种示例中,云平台包括的云计算管理平台可为OpenStack,也即云平台为基于OpenStack的云平台。OpenStack开源项目由社区维护,对应的开源软件主要包括计算服务(代号为Nova),块存储服务(代号为Cinder),镜像服务(代号为Glance),网络服务(代号为Neutron),鉴权服务(代号为Keystone)等组件的集合。其中核心资源是虚机,由Nova负责创建虚机,由Glance给虚机提供镜像,由Neutron给虚机提供所用的网络,由Cinder提供云硬盘,Keystone负责给所有操作鉴权。本实施例基于OpenStack的云平台架构请参见图5所示,在OpenStack(即云计算管理平台)上层设置有前端界面(该前端界面不是OpenStack自带的dashboard,而是额外设置的),该前端界面可用于但不限于调用OpenStack接口完成需求下发和数据展示。在OpenStack下层设置虚拟化管理平台,OpenStack与虚拟化管理平台之间的部分就是包括服务插件的插件层,由插件层中的服务插件将发往OpenStack的需求,通过数据结构转化和接口调用,发给底层的虚拟化管理平台,由底层平台完成具体的虚机创建,虚拟交换机配置,镜像保存等。本实施例中在插件层对应的设置的服务插件,可根据OpenStack的服务分为nova plugin(即计算服务插件),cinder plugin(即块存储服务插件,也即为一种存储服务插件),glance plugin(即镜像服务插件)和neutron plugin(即网络服务插件),每个插件分别负责对应服务的数据结构转化和接口调用。另外在一些示例中,neutron plugin除了对接虚拟化管理平台外,还可以对接第三方的网络设备,第三方的网络设备可为其提供负载均衡vFW或者防火墙vLB等服务。在本示例中,云计算管理平台包括OpenStack时,获取根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的目标服务插件可以包括目标计算服务插件、目标镜像服务插件、目标存储服务插件、目标网络服务插件。
又例如,在另一种示例中,云平台包括的云计算管理平台可为CloudStack,也即云平台为基于CloudStack的云平台。CloudStack对应的开源软件主要包括计算服务(compute),存储服务(storage),网络服务(network)等组件的集合。其中核心资源是虚机,由compute负责创建虚机,由network给虚机提供所用的网络,由storage提供云硬盘。本实施例基于CloudStack的云平台架构请参见图6所示,在CloudStack(即云计算管理平台)上层设置有前端界面(该前端界面不是CloudStack自带的,而是额外设置的),该前端界面可用于但不限于调用CloudStack接口完成需求下发和数据展示。在CloudStack下层设置虚拟化管理平台,CloudStack与虚拟化管理平台之间的部分就是包括服务插件的插件层,由插件层中的服务插件将发往CloudStack的需求,通过数据结构转化和接口调用,发给底层的虚拟化管理平台,由底层平台完成具体的虚机创建,虚拟交换机配置等。本实施例中在插件层对应的设置的服务插件,可根据CloudStack的服务分为compute plugin(即计算服务插件),storage plugin(即存储服务插件)和network plugin(即网络服务插件),每个插件分别负责对应服务的数据结构转化和接口调用。另外在一些示例中,network plugin除了对接虚拟化管理平台外,还可以对接第三方的网络设备,第三方的网络设备可为其提供负载均衡vFW或者防火墙vLB等服务。在本示例中,云计算管理平台包括CloudStack时,获取根据当前版本云计算管理平台和目标版本云计算管理平台之间的差异所生成的目标服务插件可以包括目标计算服务插件、目标存储服务插件、目标网络服务插件。对于基于OpenNebula的云平台的架构与图5和图6所示的架构类似,在此不再赘述。
本实施例中,可通过对服务插件进行修改生成相应的目标服务插件,此时只需要对服务插件的代码进行对应的调整修改,主要涉及对函数参数变动的修改,部分数据结构变动的适配,接口扩展方式的变动进行相应的调整。相对于OpenStack、CloudStack或OpenNebula源码在版本升级时的修改(大量流程和算法的变动,函数和数据结构的变动,设计模式的修改),插件的这些修改都是比较轻量级的,可以用少量的人力,快速完成升级。
例如,在本实施例的一种示例中,目标服务插件包括目标镜像服务插件时,所生成的目标镜像服务插件中可包括但不限于:与目标版本云计算管理平台对应的镜像驱动程序信息和镜像库容量获取代码;
镜像驱动程序信息包括目标版本云计算管理平台对应的镜像驱动程序名称,这样在后续调用时就能避免将目标版本云计算管理平台对应的镜像驱动程序识别为无效驱动;镜像库容量获取代码用于供调用以获取镜像库容量。
又例如,在本实施例的另一种示例中,目标服务插件包括目标计算服务插件时,目标计算服务插件中可包括但不限于:与目标版本云计算管理平台的计算服务插件驱动对应的建立并运行实例build_and_run_instance代码;该build_and_run_instance代码用于供调用以将参数数据结构转换为与目标版本云计算管理平台的计算服务插件驱动相适配的参数数据结构。
又例如,在本实施例的另一种示例中,目标服务插件包括目标计算服务插件时,目标计算服务插件中可包括但不限于:接口的实现方法描述信息和所述接口对应的接口控制器实现位置描述信息;其中接口的实现方法描述信息和接口对应的接口控制器实现位置描述信息可用于供调用对应的接口以将相应的任务(例如可为但不限于修改亲和组任务)发给虚拟化管理平台。
又例如,在本实施例的一些示例中,目标服务插件包括目标网络服务插件时,目标网络服务插件的安全组网络驱动程序中不包括为创建获取租户id函数(即get_tenant_id_for_create函数),以与目标版本云计算管理平台对应的网络服务插件相对应。例如当前OpenStack为M版本,目标OpenStack版本为P版本时,此时的目标网络服务插件的安全组网络驱动程序中就不包括get_tenant_id_for_create函数,从而避免升级到OpenStack版本后,目标网络服务插件的安全组网络驱动报错。
又例如,在本实施例的一些示例中,当当前版本云计算管理平台的创建卷create_volume函数的输入参数与目标版本云计算平台的create_volume函数的输入参数不相同时,则目标服务插件可包括目标存储服务插件,该目标存储服务插件的create_volume函数的输入参数与目标版本云计算管理平台的create_volume函数的输入参数对应,从而避免后续调用时报错。
在本实施例中,在对云平台的云计算管理平台(例如OpenStack、CloudStack和OpenNebula中的至少一种)直接替换升级时,在目标版本云计算管理平台中的表现层状态转化REST API版本与当前版本云计算管理平台中的REST API版本不同时(也即涉及到RESTAPI版本号的变动),请参见图7所示,本实施例中的云平台的升级方法还包括:
S701:获取根据目标版本云计算管理平台中的表现层状态转化REST API版本生成的目标前端界面。
S702:根据目标前端界面对当前的前端界面进行升级。
例如,对于基于OpenStack的云平台,如果要对OpenStack升级,如果涉及REST API的版本号的变动,可以只修改相应服务插件的代码生成对应目标服务插件完成升级适配,相对于约有2千万行的OpenStack源码做修改,修改约有10万行的插件代码,会轻松很多;如果涉及REST API版本号的变动,例如由v1改成v2,可以在修改相应服务插件的代码生成对应目标服务插件完成升级适配同时,修改前端界面的代码实现升级,相对于OpenStack的源码规模,前端界面代码规模也很小。也即本实施例提供的云平台升级方法,可基于插件的快速升级实现云平台的升级,通过调整少量的插件代码,快速实现目标版本云计算管理平台的升级,保持云平台的功能和性能的领先。
实施例二:
为了便于理解,本实施例在上述实施例基础上,还提供了一种云平台的升级装置,本实施例的云平台架构可采用但不限于上述实施例中所示例的云平台架构。请参见图8所示,本实施例提供的云平台的升级装置包括:
获取模块801,用于获取目标版本云计算平台;其中获取目标版本云计算平台请参见上述实施例所示,在此不再赘述。且应当理解的是,本实施例中获取模块801的功能可通过但不限于相应的升级设备中的处理器实现。
升级处理模块802,用于根据获取的目标版本云计算平台对当前版本云计算管理平台进行替换,以及根据目标版本云计算平台,将服务插件中的至少一个进行升级,使得升级后的服务插件与目标版本云计算管理平台相适配。
其中根据获取的目标版本云计算平台对当前版本云计算管理平台进行替换,以及目标服务插件的生成、获取和通过目标服务插件对插件层中的服务插件进行升级的方式,请参见上述实施例所示,在此不再赘述。且应当理解的是,本实施例中升级处理模块802的功能可通过但不限于相应的升级设备中的处理器实现。
本实施例还提供了一种云平台系统,包括云平台和升级装置,其中云平台可以采用但不限于上述实施例中所示例的云平台架构,升级装置可以采用但不限于图8所示的升级装置。
为了便于理解,本实施例下面以基于OpenStack的云平台(也即该云平台包括的云计算管理平台为OpenStack)的升级过程为示例进行说明。
参见图5所示的云平台产品的整体架构图,其包括:前端界面,OpenStack,插件层,虚拟化管理平台和第三方vFW/vLB。
其中前端界面(本示例中用Iros,但应当理解的是也可采用其他类型的前端界面)是用来给用户显示当前云平台各类资源的使用情况,方便分配虚机,网络,磁盘给用户使用,通过调用OpenStack接口完成这些功能;OpenStack是管理虚拟资源的开源项目,在这里主要是用来给底层虚拟化云平台提供租户隔离,网络功能增强,以及对资源管理数据的整理;插件层主要包括nova plugin完成计算相关的功能,cinder plugin完成块存储相关的功能,glance plugin完成镜像相关的功能,neutron plugin完成网络相关的功能;最底层是虚拟化管理平台(本示例中用iECS,但应当理解的是也可采用其他类型的虚拟化管理平台),完成虚机的具体实现,存储的具体实现和部分网络功能的具体实现,另外还有一些网络功能可能由第三方提供,例如vLB和vFW,分别提供负载均衡和防火墙等功能。
为了便于理解,本实施例中以当前的(即升级前的)OpenStack版本为M版本,升级后的(也即)OpenStack版本为P版本为示例进行说明。
在本示例中,在前端界面上创建虚机时会调用OpenStack接口,其中nova-api(即计算api)服务会收到这个请求,将请求消息做解析发送给nova-conductor服务写库,然后再发给nova-scheduler(计算调度器)选择一个合适的计算节点,最后到nova-compute(计算后台服务)服务中的compute_manager(计算插件管理器)完成具体的创建动作,对应的代码是nova/compute/manager.py。
因此,在升级过程中,将当前的(即升级前的)OpenStack版本替换为P版本的OpenStack,还可通过插件代码iecs_manager.py重写nova-compute服务代码manager.py里的函数_build_and_run_instance(也即完成包含build_and_run_instance的目标计算服务插件的升级,参见上述实施例所示,一种实现方式可为可先生成包含build_and_run_instance的目标计算服务插件,然后用该目标计算服务插件替换旧版本的计算服务插件),完成对开源代码的定制化开发,本示例中具体利用了nova本身具有的扩展compute_manager类功能。这里之所以要重写build_and_run_instance,是对应P版本的OpenStack相对M版本的OpenStack改变了调用driver的参数数据结构,升级后的目标计算服务插件中的build_and_run_instance代码可供供调用以将参数数据结构转换为P版本的OpenStack的计算服务插件的driver相适配的参数数据结构,避免引起后面的报错;因此可在这里进行数据结构调整,再传给后面的driver,在driver里调用底层虚拟化管理平台的接口,将先关任务(例如可包括但不限于创建虚机任务)发下去。
这里可以看到,OpenStack M版本升级到P版本,创建虚机的功能只需要修改iecs_manager.py和driver中的_build_and_run_instance代码,就可以让产品适配新版本OpenStack。
基于上述升级后,在上述示例的云平台上创建虚机的过程请参见图9所示,包括:
S901:通过Iros前端界面向nova api发送创建虚机请求。
S902:nova api根据规则请求选择计算节点。
S903:nova-scheduler向nova api返回计算节点。
S904:nova-scheduler发送创建虚机请求给nova-compute。
S905:nova-compute的iecs_manager获取镜像、网络等资源,将参数转换iecs适用的数据结构,调用iecs dirver。
S906:iecs dirver下发创建虚机任务给iecs。
S907:iecs向iecs dirver返回接口调用结果。
S908:iecs dirver向iecs_manager返回接口调用结果。
在本示例中,通过前端界面操作上传镜像时,会调用三次OpenStack接口,第一次完成镜像写库操作,第二次完成镜像数据上传操作,第三次完成镜像元数据修改操作。其中第一次和第三次操作都只是在OpenStack数据库做修改,不经过插件层,不会下发给底层的虚拟化管理平台,这类接口操作,每次OpenStack升级不需要做修改就可以直接用。
但是第二次完成镜像数据上传操作,要经过插件层传给底层。插件层设置有一个driver来处理上传镜像数据的任务,由于OpenStack M版本升级到P版本时,修改了扩展driver的写法,OpenStack升级后,glance-api(镜像存储api)服务启动会报错新增的driver无效,因此需要对镜像服务插件中glance_store/backend.py文件进行升级,例如可在该glance_store/backend.py文件中增加代码,在有效driver里中加入P版本OpenStack对应的镜像driver名称,这样在后续调用时就不会将P版本OpenStack对应的镜像driver识别为无效。修改好这个点后,glance-api服务重启还是报错,报错内容是没有获取实际的镜像库容量,因此在升级是还可在镜像服务插件中的backend.py代码里增加一个实现获取镜像库容量的镜像库容量获取代码,以供调用获取镜像库容量,增加后,glance-api启动就不报错了。在上述镜像服务插件升级过程中,参见上述实施例所示,一种实现方式可为可先生成包含修改后的glance_store/backend.py文件的目标镜像服务插件,然后用该目标镜像服务插件替换旧版本的镜像服务插件。
这里可以看到,OpenStack M版本升级到P版本,导入镜像的功能,只需要修改镜像服务插件中的glance_store/backend.py的代码,就可以让产品适配新版本OpenStack。
基于上述升级后,在上述示例的云平台上导入镜像的过程请参见图10所示,包括:
S101:通过Iros前端界面向glance api发送创建镜像请求。
S102:glance api向Iros返回调用接口结果。
S103:通过Iros向glance api发送上传镜像请求。
S104:glance api发送任务给glance store。
S105:glance store的iecs backend选择合适的iecs dirver,上传镜像到指定位置。
S106:iecs dirver下发创镜像任务给iecs。
S107:iecs向iecs dirver返回接口调用结果。
S108:iecs dirver向iecs backend返回接口调用结果。
S109:通过Iros向glance api发送修改镜像请求。
S1010:glance api向Iros返回调用接口结果。
在本示例中,通过前端界面修改虚机亲和组时,会调用一次OpenStack的接口,是一种透传接口,接口功能是将修改亲和组任务,发给底层虚拟化管理平台去实现,其中接口实现的所有代码都是定制开发的,涉及到OpenStack源码部分的是修改数据库操作,这类接口在OpenStack升级后一般不改变,所以不用调整该部分代码。
但是在OpenStack M版本升级到P版本后,接口扩展方式发生变动,所以要做相应的代码调整。比如老版本这类扩展接口,只需要将代码文件放置在合适的位置,但是新版本需要在以下位置nova/api/openstack/compute/router.py的代码里详细描述接口方法和对应的接口控制器实现位置。因此一种示例的升级方式可为但不限于:可先生成目标计算服务插件,该目标计算服务插件的nova/api/openstack/compute/router.py的代码中包括接口的实现方法描述信息和接口对应的接口控制器实现位置描述信息,以供后续调用对应的接口以将任务发给虚拟化管理平台;然后将旧版本的计算服务插件替换为目标计算服务插件。应当理解的是,本示例中目标计算服务插件可与上述示例中的目标计算服务插件在一次升级过中完成升级。
这里可以看到,OpenStack M版本升级到P版本,修改虚拟机亲和组的功能,只需要修改计算服务插件的router.py的代码,就可以让产品适配新版本OpenStack。
基于上述升级后,在上述示例的云平台上修改虚拟机亲和组操作的过程请参见图11所示,包括:
S1101:通过Iros向wsgi Web的router.py发送修改虚机亲和组请求。
S1102:wsgi Web的router.py路由到正确的nova api的接口。
S1103:nova api解析参数,发送请求给nova compute服务。
S1104:nova compute的iecs manager将参数转为iecs适用的数据结构,调用iecsdirver。
S1105:iecs dirver下发任务给iecs。
S1106:iecs向iecs dirver返回接口调用结果。
S1107:iecs dirver向iecs manager返回接口调用结果。
S1108:iecs manager向nova api返回接口调用结果。
S1109:nova api向wsgi Web的router.py返回调用接口结果。
S1110:wsgi Web的router.py向Iros返回调用接口结果。
在本示例中,通过前端界面创建安全组时,这里会调用一次OpenStack的接口,首先是开源代码模块neutron-api(即网络服务api)接到请求,然后将任务发给网络服务插件的安全组网络驱动,安全组网络驱动处理后,选择合适的实现机制,最后任务发给iecs虚拟化管理平台。
这里升级OpenStack后,如果对网络服务插件进行适应升级,在网络服务插件的安全组网络驱动的代码里就会报错。报错原因是openstack p版本里少了一个函数_get_tenant_id_for_create,在OpenStack m版本中可以看到该函数在N版本以后就没有了,该现象符合这个描述,因此本示例中需要修改(即升级)网络服务插件的安全组网络驱动代码,将其更新成P版本的OpenStack的neutron对应的函数即可,也即相对M版本的OpenStack不在包含_get_tenant_id_for_create函数。
可见,在本示例中,OpenStack M版本升级到P版本,创建安全组功能,只需要修改网络服务插件的安全组网络驱动代码,就可以让产品适配新版本OpenStack。
基于上述升级后,在上述示例的云平台上创建安全组操作的过程请参见图12所示,包括:
S1201:通过Iros向neutron-api发送创建安全组请求。
S1202:neutron-api发送对应的任务到安全组网络驱动sg_neutron_driver。
S1203:sg_neutron_driver选择合适的网络实现机制mech_iecs。
S1204:mech_iecs向iecs下发对应的任务。
S1205:iecs向mech_iecs返回接口调用结果。
S1206:mech_iecs向sg_neutron_driver返回接口调用结果。
S1207:sg_neutron_driver向neutron-api返回接口调用结果。
S1208:neutron-api向Iros返回调用接口结果。
在本示例中,通过前端界面创建云硬盘时,这里会调用一次OpenStack的接口,首先是开源代码模块存储服务api(cinder-api)接到创建云硬盘请求,然后任务会调度到合适的块存储服务节点,发给插件代码iecs磁盘驱动,iecs磁盘驱动处理后,下发给iecs虚拟化管理平台。
这里升级OpenStack后,在块存储服务插件的iecs磁盘驱动的代码里有报错,报错原因是OpenStackP版本create_volume函数里的输入参数有调整,因此本示例中要修改(即升级)块存储服务插件的磁盘驱动里create_volume函数的输入参数,使其符合P版本要求即可。
这里可以看到,OpenStack M版本升级到P版本,创建安全组功能,只需要修改存储服务插件的iecs磁盘驱动代码,就可以让产品适配新版本OpenStack。
基于上述升级后,在上述示例的云平台上创建云硬盘的过程请参见图13所示,包括:
S1301:通过Iros向cinder-api发送创建云硬盘请求。
S1302:cinder-api调度到适合的块存储服务节点create_volume。
S1303:create_volume发送对应的任务给iecs_driver iecs。
S1304:iecs_driver iecs向iecs下发对应的任务。
S1305:iecs向iecs_driver iecs返回接口调用结果。
S1306:iecs_driver iecs向create_volume返回接口调用结果。
S1307:create_volume向cinder-api返回接口调用结果。
S1308:cinder-api向Iros返回调用接口结果。
可见,本实施例提供的云平台升级方法,可基于插件的快速升级实现云平台的升级,通过调整少量的插件代码,快速实现目标版本云计算管理平台的升级,保持云平台的功能和性能的领先。
实施例三:
本实施例还提供了一种云平台的升级设备,请参见图14所示,包括处理器1401、存储器1402和连接处理器1401和存储器1402的通信总线1403;
存储器1402存储有计算机程序,计算机程序可被处理器1401执行,以实现如上各实施例中所示的云平台的升级方法的步骤。
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序可被处理器执行,以实现如上各实施例所示的云平台的升级方法中的步骤。
本实施例中的该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据)的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random AccessMemory,随机存取存储器),ROM(Read-Only Memory,只读存储器),EEPROM(ElectricallyErasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现如上所述的云平台的升级方法中的步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的任一计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (12)
1.一种云平台的升级方法,所述云平台包括云计算管理平台和虚拟化管理平台,还包括对接所述云计算管理平台和虚拟化管理平台的插件层,所述插件层包括至少一个服务插件;
所述云平台的升级方法包括:
获取目标版本云计算管理平台对当前版本云计算管理平台进行替换,以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配。
2.如权利要求1所述的云平台的升级方法,其特征在于,所述根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级包括:
获取根据所述目标版本云计算管理平台和所述当前版本云计算管理平台之间的差异所生成的目标服务插件;
将对应的所述服务插件升级为所述目标服务插件。
3.如权利要求2所述的云平台的升级方法,其特征在于,所述插件层包括计算服务插件、存储服务插件、网络服务插件和镜像服务插件中的至少一种;所述目标服务插件对应的包括:目标计算服务插件、目标存储服务插件、目标网络服务插件、目标镜像服务插件中的至少一种。
4.如权利要求3所述的云平台的升级方法,其特征在于,所述目标服务插件包括目标镜像服务插件时,所述目标镜像服务插件中包括:所述目标版本云计算管理平台对应的镜像驱动程序信息和镜像库容量获取代码;
镜像驱动程序信息包括所述目标版本云计算管理平台对应的镜像驱动程序名称,所述镜像库容量获取代码用于供调用以获取镜像库容量。
5.如权利要求3所述的云平台的升级方法,其特征在于,所述目标服务插件包括目标计算服务插件时,所述目标计算服务插件中包括:与所述目标版本云计算管理平台的计算服务插件驱动对应的建立并运行实例build_and_run_instance代码;所述build_and_run_instance代码用于供调用以将参数数据结构转换为与所述目标版本云计算管理平台的计算服务插件驱动相适配的参数数据结构;
和/或,
所述目标计算服务插件中包括:接口的实现方法描述信息和所述接口对应的接口控制器实现位置描述信息;所述接口的实现方法描述信息和所述接口对应的接口控制器实现位置描述信息用于供调用对应的接口以将任务发给所述虚拟化管理平台。
6.如权利要求3-5任一项所述的云平台的升级方法,其特征在于,所述目标版本云计算管理平台为N版本及N版本以上的云计算管理平台,所述当前版本云计算管理平台为所述N版本以下的云计算管理平台;所述目标服务插件包括目标网络服务插件时,所述目标网络服务插件的安全组网络驱动程序中不包括为创建获取租户id函数,以与所述目标版本云计算管理平台对应的网络服务插件相对应。
7.如权利要求3-5任一项所述的云平台的升级方法,其特征在于,所述目标服务插件包括目标存储服务插件时,所述目标存储服务插件的创建卷create_volume函数的输入参数与所述目标版本云计算管理平台的create_volume函数的输入参数对应。
8.如权利要求1-5任一项所述的云平台的升级方法,其特征在于,所述云平台还包括与所述云计算管理平台对接的前端界面,在所述目标版本云计算管理平台中的表现层状态转化REST API版本与所述当前版本云计算管理平台中的REST API版本不同时,所述云平台的升级方法还包括:
获取根据所述目标版本云计算管理平台中的表现层状态转化REST API版本生成的目标前端界面;
根据所述目标前端界面对当前的前端界面进行升级。
9.一种云平台的升级装置,其特征在于,所述云平台包括云计算管理平台和虚拟化管理平台,还包括对接所述云计算管理平台和虚拟化管理平台的插件层,所述插件层包括至少一个服务插件;
所述云平台的升级装置包括:
获取模块,用于获取目标版本云计算管理平台;
升级处理模块,用于将当前版本云计算管理平台替换为所述目标版本云计算管理平台,以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配。
10.一种云平台系统,其特征在于,包括云平台和升级装置;
所述云平台包括云计算管理平台和虚拟化管理平台,还包括对接所述云计算管理平台和虚拟化管理平台的插件层,所述插件层包括至少一个服务插件;
所述升级装置包括:
获取模块,用于获取目标版本云计算管理平台;
升级处理模块,用于将当前版本云计算管理平台替换为所述目标版本云计算管理平台,以及根据所述目标版本云计算平台,将所述服务插件中的至少一个进行升级,使得升级后的服务插件与所述目标版本云计算管理平台相适配。
11.一种云平台的升级设备,其特征在于,包括处理器、存储器和连接所述处理器和存储器的通信总线;
所述存储器存储有计算机程序,所述计算机程序可被所述处理器执行,以实现如权利要求1-8任一项所述的云平台的升级方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行,以实现如权利要求1-8任一项所述的云平台的升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010507636.0A CN113760313A (zh) | 2020-06-05 | 2020-06-05 | 云平台的升级方法、装置、设备、云平台系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010507636.0A CN113760313A (zh) | 2020-06-05 | 2020-06-05 | 云平台的升级方法、装置、设备、云平台系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113760313A true CN113760313A (zh) | 2021-12-07 |
Family
ID=78785149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010507636.0A Pending CN113760313A (zh) | 2020-06-05 | 2020-06-05 | 云平台的升级方法、装置、设备、云平台系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113760313A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900723A (zh) * | 2021-12-08 | 2022-01-07 | 深圳市明源云科技有限公司 | 公共平台更新方法、网络设备及可读存储介质 |
CN114780173A (zh) * | 2022-01-25 | 2022-07-22 | 统信软件技术有限公司 | 一种在应用中加载插件的方法、计算设备及存储介质 |
-
2020
- 2020-06-05 CN CN202010507636.0A patent/CN113760313A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113900723A (zh) * | 2021-12-08 | 2022-01-07 | 深圳市明源云科技有限公司 | 公共平台更新方法、网络设备及可读存储介质 |
CN113900723B (zh) * | 2021-12-08 | 2022-04-08 | 深圳市明源云科技有限公司 | 公共平台更新方法、网络设备及计算机可读存储介质 |
CN114780173A (zh) * | 2022-01-25 | 2022-07-22 | 统信软件技术有限公司 | 一种在应用中加载插件的方法、计算设备及存储介质 |
CN114780173B (zh) * | 2022-01-25 | 2023-12-05 | 统信软件技术有限公司 | 一种在应用中加载插件的方法、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9734159B2 (en) | File path modification based management | |
US10528333B2 (en) | Deploying an application in a cloud computing environment | |
US10885378B2 (en) | Container image management | |
US9959306B2 (en) | Partition-based index management in hadoop-like data stores | |
US8904382B2 (en) | Creating instances of cloud computing environments | |
US10235244B2 (en) | Block level backup of virtual machines for file name level based file search and restoration | |
US9912760B2 (en) | Dynamically generating solution stacks | |
US10585760B2 (en) | File name level based file search and restoration from block level backups of virtual machines | |
US11029802B2 (en) | Automated command-line interface | |
CN113760313A (zh) | 云平台的升级方法、装置、设备、云平台系统及存储介质 | |
US11429596B2 (en) | Update for configuration file | |
US11526379B2 (en) | Application building in a distributed computing environment | |
US20180167273A1 (en) | Determining identities for executing cloud processing and approvers of the executing | |
WO2022116737A1 (en) | Automatic generation of affinity and anti-affinity rules | |
US11422791B2 (en) | Upgrading a sequence of microservices in a cloud computing environment | |
US20220229804A1 (en) | Container image migration service | |
US20210141562A1 (en) | Output management in command line interface | |
US10635463B2 (en) | Adapting the tone of the user interface of a cloud-hosted application based on user behavior patterns | |
WO2023202427A1 (en) | Dynamic update of a computer program in memory | |
US11880668B2 (en) | Dynamically altering a code execution workflow during development using augmented reality | |
US11520809B2 (en) | Checkpoint management in a database system | |
US11620275B2 (en) | Multi-text interconnection | |
US11243961B2 (en) | Complex query optimization | |
US10331651B2 (en) | Updating web files based on detected legacy model file changes |
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 |