CN110389775B - 升级编排器 - Google Patents

升级编排器 Download PDF

Info

Publication number
CN110389775B
CN110389775B CN201910308222.2A CN201910308222A CN110389775B CN 110389775 B CN110389775 B CN 110389775B CN 201910308222 A CN201910308222 A CN 201910308222A CN 110389775 B CN110389775 B CN 110389775B
Authority
CN
China
Prior art keywords
host
upgrade
virtual machine
service
components
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.)
Active
Application number
CN201910308222.2A
Other languages
English (en)
Other versions
CN110389775A (zh
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN110389775A publication Critical patent/CN110389775A/zh
Application granted granted Critical
Publication of CN110389775B publication Critical patent/CN110389775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

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)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及升级编排器。本公开提供了用于在虚拟环境中执行升级的系统和方法。一些实施方式针对使用升级服务以在主机上提供预升级部件检测和验证。可以将软件包提交至主机的现有软件升级工序。软件包可以包括升级可执行文件,当升级可执行文件启动时,提供新的软件服务,包括初始化一个或多个新的面向公共API以提供预升级主机部件检测和验证。一些实施方式针对使用在另一联网机器或第二主机上启动的升级服务来协调第一主机的升级。当运行升级服务时,当运行升级服务的第一主机或第一主机的VM关掉时,第一主机可以向第二主机提出请求,以协调第一主机的部件的升级。

Description

升级编排器
背景技术
由企业利用的计算机系统和计算机系统集群可以采用硬件虚拟化。硬件虚拟化通常涉及对具有操作系统的计算机系统的虚拟机(VM)等进行仿真的创建和使用。硬件虚拟化的常见优点包括更大的整体硬件资源利用率、改善的系统可扩展性以及简化/集中系统的行政管理。
数据中心是可以使用虚拟化以实现这些优点的一类系统。一些数据中心系统将存储、计算和网络资源虚拟化。这些系统有时被称作超会聚(hyperconverged)系统。在这种系统中,节点或服务器的集群可以共享节点上运行的各个VM之中的资源。
发明内容
本文公开的实施方式针对用于在虚拟环境中执行升级的系统和方法。
在第一组实施例中,本文所述的系统和方法针对在一个或多个主机上提供预升级部件检测和验证。
在第一组实施例的实施方式中,一种可以存储可执行指令的非瞬态计算机可读介质,在所述指令由一个或多个处理器执行时,执行包括以下步骤的方法:在主机上启动升级服务的实例;升级服务初始化提供对部件检测子系统和验证子系统的访问的一个或多个API;使用至少部件检测子系统以确定并返回在主机上的可升级的部件的列表;接收对所列出的可升级部件中的一个或多个进行选择的用户输入;以及使用至少验证子系统以在对主机上所选择的部件进行升级之前执行所选择的部件的兼容性测试。升级服务可以在主机的VM(例如虚拟控制器)上启动。
在实施方式中,初始化一个或多个API可以包括:启动的升级服务初始化一接口,该接口采用新的统一资源标识符(URI)命名空间将启动的升级服务自身注册至VM的HTTP或HTTPS网络服务器中。
在实施方式中,使用至少部件检测子系统以确定并返回在主机上的可升级的部件的列表可以包括以下中的一个或多个:(i)联系VM的一个或多个内部API以确定VM的当前版本;以及将VM的当前版本与VM的可用于升级的版本进行比较;(ii)联系运行VM的超级管理器以确定超级管理器的当前版本;以及将超级管理器的当前版本与超级管理器的可用于升级的版本进行比较;以及(iii)联系主机的基板管理控制器(BMC)以确定主机的当前BIOS版本或固件版本;以及将BIOS或固件的当前版本与BIOS或固件的可用于升级的版本进行比较。
在实施方式中,使用至少验证子系统以在对主机上所选择的部件进行升级之前执行所选择的部件的兼容性测试可以包括:针对所选择的部件中的每一个,测试所选择的部件与现有主机软件、主机硬件或所选择的部件的另一个的兼容性;以及基于所选择的部件的兼容性测试而返回针对所选择的部件中的每一个的验证测试结果。
在实施方式中,方法可以进一步包括:在第二主机的VM上启动升级服务的第二实例;使用至少部件检测子系统以确定并返回在第二主机上的可升级的部件的列表;接收对第二主机的所列出的可升级部件中的一个或多个进行选择的用户输入,其中对第二主机的所列出的可升级部件中的一个或多个进行选择的用户输入与对第一主机的所列出的可升级部件中的一个或多个进行选择的用户输入并行接收;以及使用至少验证子系统以在对第二主机上所选择的部件进行升级之前执行第二主机的所选择的可升级部件的兼容性测试。
在实施方式中,在第一主机上的可升级的部件的返回列表以及在第二主机上的可升级的部件的返回列表可以聚合至列表中,并且在用户界面上向用户展现以用于选择。聚合列表可以显示第一主机和第二主机的可升级部件中的每一个的当前版本,以及可用于第一主机和第二主机的可升级部件中的每一个的升级版本。
在实施方式中,方法可以进一步包括:基于主机中的每一个的所选择的可升级部件的兼容性测试而聚合从主机中的每一个接收的验证测试结果;以及在用户界面上向用户展示聚合的验证测试结果。在某些情况下,所展示的聚合的验证测试结果可以展示用于减缓或校正与故障或生成警报的验证测试结果相关联问题的指令。
在第二组实施例中,本文所述的系统和方法针对使用在另一联网机器或与第一主机通信的第二主机上启动的升级服务而协调第一主机的升级。
在第二组实施例的实施方式中,一种可以存储可执行指令的非瞬态计算机可读介质,在所述指令由一个或多个处理器执行时,执行包括以下步骤的方法:在主机上启动升级服务;使用至少启动的升级服务来选择主机的要升级的一个或多个部件;在选择主机的要升级的一个或多个部件之后,当主机关机时或当主机的VM关机时,在主机处向在另一联网机器上启动的升级服务提出请求,以升级主机的一个或多个所选择的部件;在另一联网机器上启动的升级服务处,协调一个或多个所选择的部件的升级;以及在主机处,验证一个或多个所选择的部件的升级。在这些实施方式中,可以在向另一联网机器上启动的升级服务提出请求的VM(例如虚拟控制器)上启动升级服务,升级的协调可以在VM关机之后发生,并且VM可以在其开机之后验证升级。
在实施方式中,方法进一步包括:当VM关机时,在VM处提出请求以升级主机的一个或多个所选择的部件之前,主机的升级服务升级存储堆栈软件(storage stacksoftware)。
在实施方式中,另一联网机器是对等主机。在这些实施方式中,在主机的VM处提出请求可以包括:针对在对等主机的VM上启动的升级服务提出请求,以升级一个或多个所选择的部件。
在一些实施方式中,主机可以在提出请求之前启动在另一联网机器上的升级服务。在一些实施方式中,主机的VM可以针对对等主机的VM提出请求以启动升级服务。
在实施方式中,一个或多个所选择的部件可以包括以下中的一个或多个:主机的VM、运行了主机的VM的超级管理器以及BIOS或固件。
在实施方式中,协调一个或多个所选择的部件的升级可以包括:等待VM关机;调节关机的VM的一个或多个参数;升级以下中的一个或多个:(i)运行VM的超级管理器,和(ii)主机的BIOS或固件;以及在调节关机的VM的一个或多个参数之后重启主机,并且升级以下中的一个或多个:(i)运行主机的超级管理器,和(ii)主机的BIOS或固件。在实施方式中,协调一个或多个所选择的部件的升级可以包括:在执行前述步骤之后再次使VM开机。
在一些实施方式中,方法可以进一步包括:在验证升级之后,主机向运行升级服务的实例的第二主机发送信号以升级第二主机的部件。
在第二组实施例的一些实施方式中,一种可以存储可执行指令的非瞬态计算机可读介质,所述指令在由一个或多个处理器执行时,执行包括以下步骤的方法:在集群的一组主机的第一主机的VM上启动升级服务的实例;使用升级服务的至少启动的实例来选择第一主机的要升级的一个或多个部件;当第一主机的VM关机时,在第一主机的VM处向在该一组主机的另一主机的VM上启动的升级服务的实例提出请求,以升级第一主机的一个或多个所选择的部件;在另一主机的VM上启动的升级服务的实例处,协调第一主机的一个或多个所选择的部件的升级;以及在第一主机的VM处,验证第一主机的一个或多个所选择的部件的升级。
结合通过示例方式图示根据各个实施例的特征的附图,本公开的其他特征和特征将从以下详细描述中变得明显。摘要不意在限制本发明的范围,其仅由所附权利要求限定。
附图说明
根据一个或多个不同实施例,参照以下附图详细描述本公开。附图仅为了说明的目的而提供并且仅描绘典型的或示例的实施例。提供这些附图以有助于读者理解各个实施例并且这些附图不应视为限制本公开的宽度、范围或适用性。应该注意,为了清楚和便于说明,这些附图不必按照比例绘制。
图1是图示其中可以实施本文所述的技术的示例数据虚拟化系统的示意性框图。
图2是图示根据实施方式的升级编排器的示例子系统的框图。
图3是图示根据实施方式的可以在一个或多个主机上实施以提供预升级部件检测和验证的示例方法的操作流程图。
图4是图示示例方法的操作流程图,可以在主机集群上并行实施该示例方法以在主机上提供预升级部件检测以用于向用户展示。
图5是图示示例方法的操作流程图,可以在主机集群上并行实施该示例方法以提供所检测的可升级部件的预升级验证以用于向用户展示。
图6图示根据实施方式的可以向用户展示以用于在多个主机集群上实施预升级部件检测和验证的GUI。
图7是图示根据实施方式的特定示例方法的序列图,可以在两个主机的集群上实施该特定示例方法以初始化升级编排器并且提供预升级部件检测和验证。
图8是图示示例方法的操作流程图,可以实施该示例方法以使用在另一联网机器上启动的升级编排器而协调第一主机的升级。
图9是图示根据实施方式的示例方法的操作流程图,可以由运行在连接至主机的联网机器(例如对等主机)上的升级编排器实施该示例方法,以协调主机的部件的升级。
图10是图示根据实施方式的示例方法的操作流程图,可以在多主机集群中实施该示例方法,以通过使用对等主机对集群的主机进行升级而协调VM关闭的主机的升级。
图11是图示根据实施方式的示例方法的序列图,可以在两个主机的集群上实施该示例方法以初始化升级编排器并且提供预升级部件检测和验证。
图12是可以结合本公开的各个实施例使用的计算模块的示例。
附图不意在穷举或将各个实施例限定于所公开的精确形式。应该理解,可以采用修改和替换而实践各个实施例。
具体实施方式
如上所述,存储、计算和网络资源的虚拟化可以针对诸如数据中心的系统提供各种优点。然而,当到了更新虚拟化环境时,这些系统可能存在问题,虚拟化环境包括由系统以及用于对运行虚拟化平台和/或系统的主机的硬件进行控制的固件一起虚拟化的各种虚拟化平台和/或计算系统。
传统虚拟化系统中的第一个问题在于,它们当前不提供可靠的和健壮的方法以用于在系统的用户/管理员为一个或多个主机的升级过程投入大量时间之前预验证升级。具体地,这种系统不提供如下机制:用于对集群中运行的主机执行检测和预升级验证逻辑以确定什么主机部件可以要求升级。此外,这种系统中没有机制用于确定那些主机部件的升级是否预期是成功的。例如,在超会聚数据中心系统中软件存储堆栈升级的一些当前实施方式中,在升级过程期间,系统管理员可以接收的仅有反馈是升级失败的通知。在联系客户支持代表之前,该反馈不为系统管理员提供尝试解决故障原因的机制。此外,这为在其上执行升级的主机增加了具有停机时间的不便。
在运行在这种系统上的升级客户端的一个当前实施方式中,升级客户端可以查询存在于存储堆栈软件的运行版本上的面向外部的应用程序接口(API),以确定是否允许升级。然而,使得升级客户端查询现有面向外部API存在许多缺点。它迫使业务逻辑深度嵌入升级客户端软件中,这可能是限制性的并且可能是在架构上不适当的。此外,经由外部API暴露的信息集合可以足以使得一些但是不是全部部件要求可应用性和环境验证检查。该实施方式不足以计划未来的增强,未来的增强诸如超级管理器软件更新、服务器固件更新、专用VM升级以及可以在这些系统中实施的其他升级。即使并非不可能,可能也难以使用现有的API以查询之前无法以自动方式升级的现有软件部件的状态,因为在前一软件发布时刻还不知道如何封装新版本的特定细节以及从运行系统需要什么细节。
虚拟化系统中的另一问题涉及为宾客VM运行资源分配软件的VM的升级。在超会聚数据中心环境中,运行在VM内的软件堆栈可以从主机的BIOS、主机的固件、运行VM的超级管理器以及从VM自身的内容调用代码。当VM(以及有时超级管理器)关机时,可以通常仅执行VM内容自身外的任何区域(例如VM的容器、超级管理器、主机的BIOS/固件等)的升级。例如,超级管理器升级将通常要求超级管理器以及在其内运行的VM的硬重启。BIOS或主机固件升级可能需要主机自身重启。甚至调节VM的容器元数据或配置中的参数也可以要求关掉VM。在所有这些示例中,VM无法执行所要求的升级步骤。
这有几个问题。首先,因为当升级逻辑关机时,升级逻辑无法运行在VM上,因此VM可能不能向运行升级的用户/管理员报告升级的状态。这接着使得用户更难以追踪升级和执行错误恢复。其次,这要求升级用户手动升级主机的部件,这将导致VM(例如运行VM的超级管理器、主机固件/BIOS等)的关机。该手动升级过程许多需要关掉专用于运行资源分配的VM的数个独立操作,这可能增加主机停机时间。
本文所述的技术的实施例针对在更新虚拟环境的过程期间出现的这些和其他问题的解决。
根据第一组实施例,本文所述的技术针对一种升级服务(本文称作“升级编排器”),其被配置为对一个或多个主机(例如运行在集群上的一个或多个主机)提供预升级部件检测和验证。根据实施方式,升级编排器可以实施为可以提交至主机的现有软件升级工序的软件包。该软件包可以包括可执行的升级,当可执行的升级启动时,提供包括初始化一个或多个新的、面向公共API以提供预升级主机部件检测和验证的新软件服务。根据一些实施方式,可以在多个主机上启动升级编排器的实例,并且升级编排器的实例可以被配置为允许升级服务在多个主机上并行执行主机部件检测和验证的功能。
根据第二组实施例,所述技术针对第一主机的升级的协调,第一主机使用另一联网机器或与第一主机通信的第二主机上启动的升级编排器。例如,另一联网机器可以是与第一主机运行在相同集群上的第二主机。第一主机可以通过运行其自身的升级编排器而初始化升级过程,并且在该过程期间,当第一主机或者第一主机的运行升级编排器的VM关掉时,第一主机可以向第二主机提出请求,以协调第一主机的部件(例如超级管理器、VM容器、主机固件/BIOS)的升级。
在描述本文所述的升级编排器的实施方式之前,有益的是对升级编排器可以实施在其中的示例数据虚拟化系统进行描述。图1是图示一个这种示例的示意性框图。数据虚拟化系统包括多个主机器或主机100-1至100-N(称作“主机100”),多个主机器或主机100-1至100-N分组到共享可以分配至运行VM的主机资源(例如计算和存储器资源)的集群150-1和150-2(称作“集群150”)中。
每个主机100可以实施为物理服务器(例如具有x86或x64架构的服务器)或其他合适的计算设备。每个主机100可以提供可以分配至VM 120、130的计算和存储器资源,和/或与集群150中的其他主机100共享的计算和存储器资源。例如,集群150可以包括实施为具有64GB存储器和以10GHz运行的两个CPU的x86服务器的两个主机100。集群150可以具有128GB存储器和20GHz计算能力的聚合体,128GB存储器和20GHz计算能力可以被分配至在集群150中的主机100上的运行VM 120、130。在集群150的操作期间,被分配至运行在集群150中的一个或多个主机100上的VM120、130的资源可以取决于主机的需求而动态地调节。在实施方式中,资源池可以以任何合适的方式(例如基于企业部门需求)被划分并且被指派至主机内的一个或多个VM 120、130。
图1的数据虚拟化系统可以实施为超会聚数据中心,该超会聚数据中心提供诸如重复数据删除、数据压缩、数据优化、数据备份、数据恢复、数据克隆、数据管理等的功能。例如,VM数据可以同时写入集群150内的两个主机100,以提供用于重启故障主机的VM和/或用于提供VM数据备份的故障保护机制。作为另一示例,VM数据可以从一个主机移动至另一主机。
尽管图1的数据虚拟化系统具体化了多集群系统,但是在其他实施方式中,本文所述的技术可以实施在具有主机的单个集群的系统中。此外,尽管在此示例中每个集群150被图示为具有多个主机100,但是在其他实施方式中,本文所述的技术可以实施在具有单个主机100的集群150中。在一些实施方式中,本文所述的技术可以实施在不是集群的一部分(共用资源)的单个主机100中。
每个主机100可以包括超级管理器110和硬件部件,硬件部件诸如存储驱动器101(例如具有若干硬盘驱动器(HHD)和/或固态驱动器(SSD)的RAID存储)、基板管理控制器(BMC)102、存储器103(例如RAM、ROM、闪存等)、一个或多个处理器104、以及用于在网络之上(例如在TCP/IP网络之上与其他主机或者与互联网)通信的网络接口105中的一个或多个。
超级管理器110可以被配置为创建和/或运行一个或多个宾客VM 130和虚拟控制器VM 120(本文称作“VC VM”或“VC”)。超级管理器110可以实施为软件(例如由处理资源可执行的机器可读指令)、固件和/或硬件。在特定实施方式中,超级管理器110可以实施为VMWARE ESX/ESXi、XEN、HYPER-V或用于创建并且运行VM的一些其他合适的超级管理器。
在此示例系统中,VC 120是被配置为运行存储堆栈软件122的VM。软件122可以用于执行功能,功能诸如管理由VM 130对存储驱动器101的访问、提供动态资源共享、在存储驱动器101之间移动VM数据、提供数据移动和/或执行任意前述超会聚数据中心功能。可以针对当前运行在主机100上的VM 130和/或运行在属于相同集群150的主机上的所有VM 130而执行这些功能。在实施方式中,VC 120可以专用于其相应主机100(例如它不与其他主机共享其资源池)。在特定实施方式中,VC 120可以使用HPE
Figure BDA0002030557270000071
而实施。
在图1的示例系统中,VM管理服务器170可以提供中心化管理应用程序以连接至主机100并且管理主机100(例如提供资源),主机100包括托管的VM 130,并用于执行其他相关功能。中心化管理应用程序可以提供图形用户界面(GUI),该图形用户界面允许用户针对单个节点、节点的集群或所有节点管理软件升级。在特定实施方式中,VM管理服务器170可以采用
Figure BDA0002030557270000081
Figure BDA0002030557270000082
实施。在由图1所图示的系统中,管理工作站160可以访问VM管理服务器170以连接至主机100并且管理主机100。在其他实施方式中(例如在仅具有少数VM/单个主机的实施方式中),管理工作站160可以直接连接至主机和VM并且管理主机和VM而没有VM管理服务器。
在主机100的升级期间,包括可执行的升级编排器180的软件包可以上传至主机的VC VM 120。如由图2所图示的,升级编排器180可以包括部件检测子系统210和验证子系统220,部件检测子系统210提供主机上的可升级部件的预升级检测,验证子系统220验证由部件检测子系统210所检测的可升级部件的预升级。升级编排器180也可以包括对等主机升级子系统230,对等主机升级子系统230当对等主机的VC 120关机时协调对等主机的某些部件的升级。在某些情况下,升级编排器180可以实施为包括执行前述功能所必需的部件(例如可执行文件、文档、环境变量和库等)的一个或多个容器。
升级编排器180在图2中图示为包括用于提供部件检测、部件验证和对等升级协调的子系统。然而,在可替代实施方式中,分立的升级编排器可以上传至主机以提供:i)预升级部件检测和验证以及ii)对等主机升级协调的功能。应该知晓,可以在一些实施方式中彼此独立地实施预升级部件检测和验证以及对等主机升级协调的功能。
在一些实施方式中,当被初始化时,升级编排器180可以附接至VC 120的网络服务器的命名空间,并且初始化以下进一步所述的一个或多个面向公共API,这可以提供诸如主机的预升级部件检测和验证的服务。此外,升级编排器可以被配置为对在相同集群上的另一对等主机上的升级过程进行协调,并且提供诸如更新存储堆栈软件122的其他服务。在升级过程期间,用户可以使用升级UI 161以与升级编排器180交互,并且动态地查看预升级或升级结果。
图3是图示根据实施方式的可以在一个或多个主机上实施以提供预升级部件检测和验证的示例方法300的操作流程图。例如,可以通过上传并且在主机100的VC 120上启动升级编排器180而实施方法300。
在操作310处,包括可执行的升级编排器的软件包可以上传至运行在主机上的VM。例如,管理工作站160可以将软件包上传至运行在主机的超级管理器110上的VC 120。在实施方式中,可以使用与用于VC的现有软件升级工序相同的机制而将软件包上传至VC 120。
在操作320处,可以初始化升级编排器(例如通过运行可执行文件)。当被初始化时,升级编排器可以初始化预升级部件检测API和预升级验证API,预升级部件检测API和预升级验证API可以分别提供对部件检测子系统和预升级验证子系统的访问。在一些实施方式中,这可以由对新的表述性状态转移(REST)服务进行初始化的升级编排器完成,该新的表述性状态转移(REST)服务采用新的统一资源标识符(URI)命名空间将其自身注册至VM的HTTP或HTTPS网络服务器中。该新的接口可以提供对部件检测和验证API的访问,这在一些实施方式中可以是通用的和可扩展的,以允许当未来开发主机部件的新版本时其他部件类型和验证检查的未来添加。
在其他实施方式中,升级编排器可以自身包括嵌入式HTTP网络服务器,该嵌入式HTTP网络服务器可以提供面向外部的API而不附接至VM的现有HTTP/HTTPs网络服务器。
在一些实施方式中,当在属于集群的主机上初始化升级编排器时,可以在属于该集群的所有其他主机上初始化该升级编排器的实例。例如,可以在集群的所有主机的VC上初始化升级编排器的实例,以初始化预升级部件检测API和预升级验证API。
在操作330处,部件检测子系统(例如由部件检测API所访问的一个部件检测子系统)可以用于确定并且返回主机的可升级部件的列表。部件检测子系统可以被配置为返回主机的可以升级的所有部件的列表,并且针对每个部件,部件检测子系统可以包括部件的当前状态和/或当前版本,以及部件可以升级至的可用新版本的列表。例如,部件检测子系统可以确定是否超级管理器、VC、主机固件/BIOS和/或其他主机部件的新版本是可升级至新版本的。可以通过使用包括了升级编排器的软件包中所包括的元数据而确定可用于升级的部件的版本。
凭借部件检测子系统,可以确定可升级部件而不求助于面向外部的API。在一些实施方式中,部件检测子系统可以与VM的一个或多个内部API联系以确定VM的当前版本;并且将VM的当前版本与VM的可用于升级的版本进行比较。在一些实施方式中,部件检测子系统可以与运行VM的超级管理器联系以确定超级管理器的当前版本;并且将超级管理器的当前版本与超级管理器的可用于升级的版本进行比较。在一些实施方式中,部件检测子系统可以与主机的基板管理控制器(BMC)联系以确定主机的当前BIOS版本或固件版本。
在一些实施方式中,由部件检测子系统返回的列表可以是空的(例如没有可用的升级)。在一些实施方式中,由部件检测子系统返回的列表可以为给定部件的升级提供多个选择(例如用户可以具有将超级管理器的版本6.0升级至版本6.1至6.5中的任意一个版本的选项)。
在操作340处,升级编排器可以接收对要在主机上升级的可升级部件进行选择的用户输入(例如通过升级GUI 161)。取决于系统需求,用户可以选择所有可升级部件、可升级部件的子集或者没有部件要升级。
在操作350处,在主机上升级部件之前,验证子系统(例如由验证API访问的一个验证子系统)可以用于执行所选择的部件的兼容性测试。在实施方式中,每个测试可以与现有硬件和软件至所选择的部件的兼容性相关、与所选择的部件彼此的兼容性相关、与所选择的部件至其他外部因素(例如像VM管理服务器那样)的兼容性相关、或与其他外部环境因素相关。
在特定实施方式中,验证可以“跳过”(如果不可应用)、“通过”(在预期升级成功的情况下)、“警报”(在预期升级成功但是减少特征或性能的情况下,除非用户动作缓解相关问题)、或“失败”(在预期升级失败的情况下,除非用户动作缓解相关问题)。
在操作360处,可以向用户展示验证测试结果。在其中一个或多个验证失败或者产生警报(例如“警报”或“失败”)的实施方式中,测试结果可以向用户返回关于用户可以如何缓解问题并且重新运行验证的指令,使得用户可以在开始升级之前解决所有已知问题。
图4是图示示例方法400的操作流程图,示例方法400可以在主机集群上并行实施以在主机上提供预升级部件检测以用于向用户展示。例如,可以通过在主机上(例如在每个主机的VC中)并行运行升级编排器的多个实例而实施方法400。在操作410处,针对每个主机,可以确定可升级部件的现行版本。在操作420处,针对每个主机,可以将可升级部件的现行版本与现行发布中可用的可升级部件的版本进行比较,以确定针对每个主机的可升级部件的列表。随后,可以聚合(操作430)主机列表并且向用户展示(操作440)主机列表。例如,聚合的主机列表可以以可扩展的/可折叠的树格式展示,可扩展的/可折叠的树格式包括每个主机的所有可升级部件的当前状态以及那些可升级部件可以升级至的版本。
图5是图示示例方法500的操作流程图,示例方法500可以在主机集群上并行实施以提供所检测的可升级部件的预升级验证以用于向用户展示。例如,可以通过在主机上并行运行升级编排器的多个实例而实施方法500(例如在方法400之后)。在操作510处,在验证之前,每个主机可以接收用户所选择的要升级的部件版本(例如参照操作340如上所述)。在操作520处,可以将用户所选择的部件版本中的每一个的兼容性与现有硬件、现有软件、其他所选择的部件版本、或其他因素进行比较。在操作530处,每个主机可以返回针对每个部件的验证测试结果。在操作540处,可以聚合从每个主机接收的验证测试结果。在操作550处,可以在UI(例如升级UI 161)上向用户展示聚合的确认测试结果。例如,可以以可扩展的/可折叠的树格式展示聚合的确认测试结果。
图6图示根据实施方式的可以向用户展示以用于在多个主机集群上实施预升级部件检测和验证的示例GUI 600。在此示例中,GUI 600显示在完成部件检测和验证之后的结果。如所图示的,GUI 600可以显示结果的可扩展的/可折叠的树610,包括针对从结果树610所选择的结果的测试细节620。在有问题结果(例如警报或失败)的情况下,测试细节620可以包括给用户的关于用户可以如何减缓问题并且重新运行验证的指令,以便用户可以在开始升级之前解决所有已知问题。
图7是图示根据实施方式的特定示例方法的序列图,该特定示例方法可以在两个主机的集群上实施以初始化升级编排器并且提供预升级部件检测和验证。在图7的示例中,UI可以实施为管理工作站160的UI 161,每个主机的VC可以实施为VC 120,每个主机的超级管理器可以实施为超级管理器110,并且vCenter可以实施在VM管理服务器170上。
如所图示的,图7的方法可以使用新的服务启动器710、部件检测子系统720和验证子系统730实施。例如,服务启动器710可以被配置为执行与操作310-320相对应的操作,部件检测子系统720可以被配置为执行与操作330相对应的操作,并且验证子系统730可以被配置为执行与操作340-360相对应的操作。
参照新的服务启动器710,系统管理员可以通过升级UI(例如升级UI 161)与主机1和主机2(例如主机100)通信。通过UI,系统管理员可以将软件包上传至主机1的VC。上传的软件包可以包括升级编排器(在该图中称作“新的服务”)。此后,系统管理员可以在每个主机上实行现有的软件升级机制,从而在每个主机上启动新的升级服务。在启动时,新的服务可以初始化包括部件检测API和验证API的新API。
参照部件检测子系统720,在每个主机上初始化新的服务之后,UI可以开始与在每个本地协调器(新的服务)上初始化的新API通信,每个本地协调器可以与本地VC(例如通过访问内部API)和本地超级管理器直接通信,以返回当前状态和可用部件以用于升级。例如,部件检测子系统可以返回每个VC的软件堆栈版本、每个VC的超级管理器版本等。
参照验证子系统730,系统管理员可以从可用部件选择由部件检测子系统所展示的升级。一旦系统管理员已经基于由部件检测子系统所展示的可用选项决定采取什么动作,那些选项就可以提交返回至每个主机的本地升级编排器。这可以发起本地验证,包括与每个本地VC通信以访问内部API、与本地超级管理器通信以执行环境检查以及与VM管理服务器通信以执行环境检查。来自主机中的每一个的验证结果被聚合并且被向系统管理员显示。
图8是图示示例方法800的操作流程图,可以实施示例方法800以使用在另一联网机器上启动的升级编排器而协调第一主机的升级。例如,可以通过在多个主机100上上传并且启动升级编排器180和/或通过在主机100和管理工作站160上启动升级编排器180而实施方法800。
在操作810处,在主机的要升级的VM上启动升级服务。例如,可以参照图3如上所述在主机100的VC 120上启动升级编排器180。可替代地,可以使用一些其他机制(例如在主机上手动运行安装可执行文件)而在主机100上启动升级服务。
在操作820处,启动的升级服务可以用于确定主机的要升级的部件。在一个实施方式中,可以通过实施如上所述的预升级部件检测和验证方法300而确定要升级的一个或多个部件。在可替代实施方式中,要升级的一个或多个部件可以作为用户输入从升级服务的用户(例如系统管理员)接收。此外,还可以预定要升级的一个或多个部件(例如其中升级服务总是采用相同版本更新相同部件)。
在操作830处,启动的升级服务可以用于初始化主机上的升级过程。例如,在图1的示例环境中,启动的升级服务可以开始存储堆栈软件122的升级。在其中主机是多集群环境的一部分的实施方式(例如图1)中,可以针对集群的多个主机并行或顺序地执行操作810-830中的一个或多个。
当升级过程在主机上继续时,升级可以到达其中VM可能需要关机和/或主机需要重启(例如以完成升级)的点。因而,在操作840处,主机的正在升级的VM向在对等主机(例如相同集群上的主机)的VM上或另一联网机器(例如管理工作站、VM管理服务器等)上启动的升级服务提出请求,以继续升级主机上的正在升级的部件。在实施方式中,该请求可以传送主机的要求升级的部件(例如VM、超级管理器、主机BIOS/固件等)。
在其中主机的正在升级的VM向在对等主机的VM上启动的升级服务提出请求的实施方式中,对等主机的升级服务可以已经运行。可替代地,主机的正在升级的VM可以一经正在升级的主机的需要而启动对等主机的升级服务。在一些实施方式中,主机的正在升级的VM可以在升级服务在对等主机上启动之前,将升级服务的实例发送至对等主机。
在其中主机不是集群的一部分或者是单个成员集群的成员的实施方式中,该主机可以接触外部联网机器(例如管理工作站)以协调/编排升级。在该实施方式中,可以在外部联网机器上手动开启升级服务的实例,并且正在升级的主机可以将需要编排/协调的步骤通知外部运行的升级服务。
在操作850处,在主机的VM关机之后,在对等主机或联网机器上的升级服务协调主机的部件的升级。例如,对等主机或联网机器上的升级服务可以调节关机的VM的一个或多个参数、升级运行VM的超级管理器、更新主机的BIOS或固件和/或重启主机。
在操作860处,在主机的VM再次开机之后,VM可以继续如原始设计的升级、验证由对等主机或另一联网机器所执行的升级步骤成功完成。
图9是图示示例方法900的操作流程图,可以由运行在连接至主机的联网机器(例如对等主机)上的升级编排器实施示例方法900,以协调主机的部件的升级。例如,方法900可以是操作850的特定实施方式。
在操作910处,联网机器可以等待主机的正在升级的VM关机。在实施方式中,联网机器可以与VM管理服务器170通信以确定主机何时关机。一旦VM关机,在操作920处,联网机器可以调节关机的VM的VM参数。例如,联网机器可以调节参数,参数诸如分配给VC的存储器或CPU处理性能的量。
在操作930处,联网机器可以升级主机的超级管理器(例如运行VM的超级管理器)。例如,联网机器可以将超级管理器置于维护模式、执行超级管理器的任何必需升级以及退出维护模式以将超级管理器返回至主动模式。在其中主机是集群(例如集群150)的一部分的实施方式中,当超级管理器置于维护模式时,主机的宾客VM(例如宾客VM 130)可以迁移至集群中的其他主机或者临时关机。在这些实施方式中,超级管理器可以执行将VM关机和/或将它们迁移至其他主机的操作。可替代地,在一些实施方式中,升级服务可以包括用于执行这些操作的机器可读指令(例如,如果超级管理器此时并不支持该功能)。
在操作940处,联网机器可以执行主机的BIOS和/或固件升级。在操作950处,联网机器可以使得主机重启(例如以完成BIOS/固件升级和/或超级管理器升级)。在操作960处,联网机器可以使得重启的主机的VM再次开机。在一个实施方式中,这可以通过将主机返回置于主动模式而完成,这可以使得超级管理器重启所有VM(例如返回至当主机处于维护模式时关机的运行状态VM)。在操作970处,联网机器可以等待主机开机,并且可以由主机完成并且验证升级过程。
如由方法900所图示的,凭借在单个工作流中编排主机的多个升级的联网机器(例如对等主机),可以仅需要完成一次主机重启(例如操作950)。否则,如果手动并且分立地执行升级,则诸如超级管理器升级(操作930)和BIOS/固件升级(操作940)的操作可以每个要求它们自己的重启。这可以减少总停机时间和升级成本。
应该注意,尽管已经在编排了主机的VM、超级管理器、以及BIOS/固件的升级的联网机器的上下文中描述了方法900,但是在一些实施方式中,联网机器可以仅需要编排这些部件的子集的升级(例如,取决于由主机选择的用于升级的部件)。此外,在一些实施方式中,联网机器可以编排主机的其他软件、固件和/或硬件部件的升级。
图10是图示示例方法1000的操作流程图,可以在多主机集群中实施示例方法1000,以通过使用对等主机对集群的主机进行升级而协调VM关闭的主机的升级。在操作1010处,可以在集群的每个主机的VM上启动升级服务的实例,并且可以确定每个主机的要升级的部件。例如,参照图3-图7如上所述,可以在每个主机100的VC120上启动升级编排器180,并且升级编排器180可以用于确定每个主机的什么部件要求升级。可替代地,可以实施其他方法以启动每个主机上的升级编排器的实例,并且确定每个主机的什么部件要求升级。
在操作1020处,当VM关闭时,主机的正在升级的VM向在集群的对等主机的VM上启动的升级服务提出请求,以编排主机的正在升级的部件的升级。在实施方式中,该请求可以传送指示主机的要升级的部件(例如VM、超级管理器、主机BIOS/固件等)的信息。在一些实施方式中,可以一经正在升级的主机的需要而在对等主机上启动升级服务。
在操作1030处,运行在对等主机的VM上的升级服务可以在主机的VM离线时升级主机的正在升级的部件。在操作1040处,在升级的主机的VM开机之后,该VM可以验证所有升级步骤成功完成。在验证之后,如果集群上存在要求升级的额外主机(判定1050),则在操作1060处,升级的主机的VM可以向要求升级的额外主机的VM发送信号以开始升级过程,并且操作1020-1050可以迭代。
图11是图示根据实施方式的示例方法的序列图,可以在两个主机的集群上实施该示例方法以初始化升级编排器并且提供预升级部件检测和验证的。在图11的示例中,每个主机的VC可以实施为VC 120,每个主机的升级编排器可以实施为升级编排器180,每个主机的超级管理器可以实施为超级管理器110,BMC可以实施为BMC 102,并且vCenter可以实施在VM管理服务器170上。
如在此示例中所图示的,管理员可以运行VM或物理计算系统上的升级管理器。UI可以询问管理员关于要更新至什么版本以及要升级什么主机的问题。可替代地,这可以预定(例如通过如上所述的部件检测和验证过程)。UI可以用于对主机1的VC进行API调用以执行软件堆栈升级,并且开启在主机1和2上的升级编排器。
主机1的VC可以随后(例如通过API)与主机2的VC的升级编排器通信以协调主机1的升级。主机2的升级编排器可以等待主机1的VC自己关机。一旦关机,升级编排器可以调节VM参数。升级编排器可以随后与vCenter通信以使得主机1的超级管理器进入维护模式,这可以关掉主机1的所有VM,包括VC。一旦主机1的超级管理器进入维护模式,升级编排器就可以执行超级管理器升级。此外,升级编排器可以执行主机1的BIOS和/或固件升级并且使得主机1重启。一旦主机1重启,升级编排器就可以与vCenter通信以使得主机1的超级管理器退出维护模式,这可以使得超级管理器再次使所有VM(包括VC)开机。
一旦开机,主机1的VC可以验证升级,并且向主机2的VC发送信号以开始主机2的升级。此后,针对正在升级的主机1的如上所述的相同的升级步骤可以发生在主机2上,主机1的升级编排器驱动主机2的升级过程。
应该注意,尽管本文描述的实施方式已经在虚拟化环境中的实施升级服务的上下文中进行了主要描述,但是在某些情况下,可以有利地在不必利用虚拟化的环境中或者在利用虚拟化但不启动VM上的升级服务的环境中实施所公开的技术。例如,在一些实施方式中,可以通过启动物理主机上的升级服务而执行使用另一联网机器的用于协调主机的升级的前述过程,物理主机向在另一联网机器上启动的升级服务提出请求,以协调主机上的部件的升级,并且当主机的一个或多个部件关机时,另一联网机器的升级服务协调主机的部件的升级。
图12图示可以用于实施本文所公开的方法的各个特征的示例计算模块。
如本文所使用的,术语模块可以描述可以根据本申请的一个或多个实施例执行的给定功能单元。如本文所使用的,模块可以利用任何硬件、软件或其组合的形式实施。例如,可以实施一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑部件、软件例程或其他机制以构成模块。在实施方式中,本文所述的各种模块可以实施为分立模块或功能,并且所述特征可以部分地或完全地在一个或多个模块之中共享。换言之,如在阅读了本说明书之后对于本领域技术人员明显的是,本文所述的各种特征和功能可以实施在任何给定应用中,并且可以以各种组合和排列实施在一个或多个分立或共享的模块中。即使各种特征或功能要素可以单独地描述或请求作为分立模块,但是本领域技术人员应该理解,这些特征和功能可以在一个或多个公共软件和硬件元件之中共享,并且该描述不应要求或暗示分立硬件或软件部件用于实施该特征或功能。
其中本申请的部件或模块完全或部分使用软件实施,在一个实施例中,可以实施这些软件元件以采用能够执行关于其所述的功能的计算或处理模块(例如CPU)而操作。一个这种示例计算模块在图12中示出。根据该示例计算模块1500描述各个实施例。在阅读了本说明书之后,对于相关技术领域的人员来说,如何使用其他计算模块或架构实施本申请将变得明显。
现在参照图12,计算模块1500可以表示例如在以下设备内找到的计算或处理能力:台式计算机、膝上型计算机、笔记本电脑和平板计算机、手持式计算设备(平板、PDA、智能电话、蜂窝电话、掌上型电脑等)、大型主机、超级计算机、工作站或服务器、或者可期望或适于给定应用或环境的任何其他类型特殊目的或通用目的的计算设备。计算模块1500也可以表示嵌入在给定设备内或者另外可用于给定设备的计算能力。例如,计算模块可以在其他电子设备中找到,其他电子设备诸如例如数字相机、导航系统、蜂窝电话、便携式计算设备、调制解调器、路由器、WAP、终端和可以包括处理能力的一些形式的其他电子设备。
计算模块1500可以包括例如一个或多个处理器、控制器、控制模块、或其他处理设备,诸如处理器1504。处理器1504可以使用诸如例如微处理器、控制器或其他控制逻辑的通用或专用处理引擎实施。在所图示的示例中,处理器1504连接至总线1502,尽管可以使用任何通信介质以有助于与计算模块1500的其他部件交互或者向外通信。
计算模块1500也可以包括一个或多个存储器模块,本文中简单地称作主存储器1508。例如,优选地可以使用随机访问存储器(RAM)或其他动态存储器以用于存储信息和要由处理器1504执行的指令。主存储器1508也可以用于在要由处理器1504执行指令的执行期间存储临时变量或其他中间信息。计算模块1500可以同样包括耦接至总线1502以用于存储静态信息和处理器1504的指令的只读存储器(“ROM”)或其他静态存储设备。
计算模块1500也可以包括一个或多个不同形式的信息存储机制1510,信息存储机制1510可以包括例如介质驱动器1512和存储单元接口1520。介质驱动器1512可以包括驱动器或其他机制以支持固定的或可移除的存储介质1514。例如,可以提供硬盘驱动器、固态驱动器、光盘驱动器、CD、DVD、或蓝光驱动器(R或RW)、或其他可移除的或固定的介质驱动器。因此,存储介质1514可以包括例如硬盘、固态驱动器、盒式磁带、光盘、CD、DVD、蓝光、或由介质驱动器1512读取、写入至介质驱动器1512或由介质驱动器1512访问的其他固定的或可移除的介质。如这些示例所图示,存储介质1514可以包括其中存储有计算机软件或数据的计算机可使用存储介质。
在可替代实施例中,信息存储机制1510可以包括其他类似工具以用于允许将计算机程序或其他指令或数据加载至计算模块1500中。这种工具可以包括例如固定的或可移除的存储单元1522和接口1520。这种存储单元1522和接口1520的示例可以包括程序盒(program cartridge)和盒式接口(cartridge interface)、可移除的存储器(例如闪存或其他可移除的存储器模块)和存储器插槽、PCMCIA插槽和卡、以及允许将软件和数据从存储单元1522传输至计算模块1500的其他固定的或可移除的存储单元1522和接口1520。
计算模块1500也可以包括通信接口1524。通信接口1524可以用于允许在计算模块1500和外部设备之间传输软件和数据。通信接口1524的示例可以包括调制解调器或软调制解调器、网络接口(诸如以太网、网络接口卡、WiMedia、IEEE xx或其他接口)、通信端口(诸如例如USB端口、IR端口、RS232端口
Figure BDA0002030557270000171
接口、或其他端口)或其他通信接口。通常可以在信号上携带经由通信接口1524传输的软件和数据,信号可以是电子的、电磁的(包括光学的)或能够由给定通信接口1524交换的其他信号。这些信号可以经由信道1528提供至通信接口1524。信道1528可以携带信号并且可以使用有线或无线通信介质实施。信道的一些示例可以包括电话线、蜂窝链路、RF链路、光学链路、网络接口、本地或广域网以及其他有线或无线通信信道。
在此文献中,术语“计算机可读介质”、“计算机可使用介质”和“计算机程序介质”用于通常指易失性的或非易失性的非瞬态介质,非瞬态介质诸如例如存储器1508、存储单元1522和介质1514。这些和其他不同形式的计算机程序介质或计算机可使用介质可以涉及将一个或多个指令的一个或多个序列传送至处理设备以用于执行的。具体化在介质上的这些指令通常称作“计算机程序代码”或“计算机程序产品”(其可以以计算机程序或其他分组的形式而分组)。当执行时,这些指令可以使得计算模块1500能够执行如本文所述的本申请的特征或功能。
尽管以上根据各个示例实施例和实施方式进行了描述,但是应该理解,在单个实施例的一个或多个中所述的各种特征、方面和功能不限于它们对于它们所属的特定实施例的适用性,而是相反地可以单独或以各种组合适用于本申请的其他实施例中的一个或多个,不论这些实施例是否描述也不论这些特征是否展示作为所述实施例的一部分。因此,本申请的宽度和范围不应受限于任意上述示例性实施例。
除非另外明确说明,在本文献中所使用的术语和短语以及其变形应该解释为开放式而非限定性。作为前述的示例:术语“包括”应该解读为意味着“包括但不限于”等;术语“示例”用于提供讨论中的项的示例性实例,而非其穷举或限定性列表;术语“一”应该解读为意味着“至少一个”、“一个或多个”等;并且形容词诸如“传统的”、“惯例的”、“常规的”、“标准的”、“已知的”和类似含义的术语不应解释为将所述项限定于给定时间段或给定时间可获得的项,而是相反地应该解读为包括现在和在未来任意时刻可获得或已知的传统的、惯例的、常规的或标准的技术。同样,在文献涉及对本领域技术人员明显或已知的技术的情况下,这些技术包括现在或者未来任意时刻对本领域技术人员明显或已知的那些技术。
在某些情况下,诸如“一个或多个”、“至少”、“但不限于”或其他类似短语的扩展词语和短语的存在不应解读为意味着在可能不存在这些扩展词语的情况下有意或要求较窄的情况。术语“模块”的使用并不暗示所述或请求保护的作为模块的一部分的部件或功能均配置在共同封装中。实际上,不论是控制逻辑或其他部件,模块的任何或所有各种部件可以组合在单个封装中或可以分立地维护,并且可以进一步分布在多个群组或封装中或跨多个位置。
此外,根据示例性框图、流程图和其他示意图描述本文阐述的各个实施例。如在阅读了本文献之后,对于本领域技术人员变得明显的是,可以实施所图示的实施例和它们的各种可替代例而并不限于所图示的示例。例如,框图和它们的所附图示不应解释为强制特定的架构或配置。
尽管以上已经描述了本公开的各个实施例,但是应该理解,仅通过示例而非限定方式展示它们。同样,各个附图可以描绘针对本公开的示例架构或其他配置,这样做帮助理解可以在本公开中包括的特征和功能。本公开不受所图示的示例架构或配置约束,而是可以使用各种可替代架构和配置实施所希望的特征。实际上,对于本领域技术人员将明显的是,可以如何实施可替代的功能、逻辑或物理划分和配置以实施本公开的所希望特征。另外,除了那些本文所描绘的之外,大量不同构成模块名称可以适用于各种划分。此外,关于流程图、操作描述和方法权利要求,其中本文展示的步骤的顺序不应强制实施各个实施例来以相同顺序执行所述功能,除非上下文另外规定。
尽管以上依据各个示例实施例和实施方式描述了本公开,应该理解,在单个实施例的一个或多个中所述的各个特征、特征方面和功能不限于将它们可应用于采用它们所描述的特定实施例,而是替代地可以单独或以各种组合适用于本公开的其他实施例的一个或多个,不论是否描述了该实施例也不论该特征是否展示为所述实施例的一部分。因此,本公开的宽度和范围不应受限于上述示例实施例。

Claims (19)

1.一种非瞬态计算机可读介质,所述非瞬态计算机可读介质具有存储在所述非瞬态计算机可读介质上的可执行指令,所述指令在由一个或多个处理器执行时,执行以下操作:
在主机的虚拟机上启动升级服务;
使用至少所启动的升级服务来选择所述主机的要升级的一个或多个部件;
在选择所述主机的要升级的所述一个或多个部件之后,在所述主机的所述虚拟机处向在另一联网机器上启动的升级服务提出请求,以在所述主机的所述虚拟机关机时升级所述主机的一个或多个所选择的部件;
在所述虚拟机关机之后,在另一联网机器上启动的所述升级服务处,协调一个或多个所选择的部件的所述升级;以及
在所述虚拟机开机之后,在所述主机处,验证一个或多个所选择的部件的所述升级。
2.根据权利要求1所述的非瞬态计算机可读介质,其中,所述另一联网机器是对等主机,其中在所述主机的所述虚拟机处提出所述请求包括:针对所述对等主机的虚拟机上启动的升级服务提出请求,以升级一个或多个所选择的部件。
3.根据权利要求2所述的非瞬态计算机可读介质,其中,一个或多个所选择的部件包括以下中的一个或多个:所述主机的所述虚拟机、运行所述主机的所述虚拟机的超级管理器以及BIOS或固件。
4.根据权利要求1所述的非瞬态计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:在提出所述请求之前,所述主机在所述另一联网机器上启动所述升级服务。
5.根据权利要求1所述的非瞬态计算机可读介质,其中,协调一个或多个所选择的部件的所述升级包括:
等待所述虚拟机关机;以及
调节关机的虚拟机的一个或多个参数。
6.根据权利要求5所述的非瞬态计算机可读介质,其中,协调一个或多个所选择的部件的所述升级进一步包括:
升级以下中的一个或多个:运行所述虚拟机的超级管理器和所述主机的BIOS或固件;以及
在调节关机的虚拟机的一个或多个参数之后重启所述主机,并且升级以下中的一个或多个:运行所述主机的所述超级管理器和所述主机的所述BIOS或所述固件。
7.根据权利要求6所述的非瞬态计算机可读介质,其中,协调一个或多个所选择的部件的所述升级包括:
升级运行所述虚拟机的所述超级管理器;以及
升级所述主机的所述BIOS或所述固件。
8.根据权利要求6所述的非瞬态计算机可读介质,其中,协调一个或多个所选择的部件的所述升级进一步包括:再次使所述虚拟机开机。
9.根据权利要求1所述的非瞬态计算机可读介质,其中,所述主机的所述虚拟机是所述主机的超级管理器的专用虚拟机,其中所述专用虚拟机被配置为运行存储堆栈软件。
10.根据权利要求9所述的非瞬态计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:当所述虚拟机关机时,在所述虚拟机处提出所述请求以升级所述主机的一个或多个所选择的部件之前,所述主机的所述升级服务升级所述存储堆栈软件。
11.根据权利要求2所述的非瞬态计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:所述主机的所述虚拟机针对所述对等主机的所述虚拟机提出请求,以启动所述升级服务。
12.根据权利要求1所述的非瞬态计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:在验证所述升级之后,所述主机向运行所述升级服务的实例的第二主机发送信号以升级所述第二主机的部件。
13.根据权利要求1所述的非瞬态计算机可读介质,其中,协调一个或多个所选择的部件的所述升级包括:升级运行所述虚拟机的超级管理器;以及其中所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:在升级所述超级管理器之前,临时使运行在所述超级管理器上的虚拟机关机或将运行在所述超级管理器上的虚拟机迁移至与所述主机在相同集群中的其他主机。
14.一种非瞬态计算机可读介质,具有存储在所述非瞬态计算机可读介质上的可执行指令,所述指令在由一个或多个处理器执行时,执行以下操作:
在集群的多个主机中的第一主机的虚拟机上启动升级服务的实例;
使用至少所述升级服务的所启动的实例来选择所述第一主机的要升级的一个或多个部件;
当所述第一主机的所述虚拟机关机时,在所述第一主机的所述虚拟机处向在所述多个主机中的另一主机的虚拟机上启动的所述升级服务的实例提出请求,以升级所述第一主机的一个或多个所选择的部件;
在所述第一主机的所述虚拟机关机之后,在所述另一主机的所述虚拟机上启动的所述升级服务的所述实例处,协调所述第一主机的一个或多个所选择的部件的所述升级;以及
在所述第一主机的所述虚拟机开机之后,在所述第一主机的所述虚拟机处,验证所述第一主机的一个或多个所选择的部件的所述升级。
15.根据权利要求14所述的非瞬态计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:在验证之后,所述第一主机的所述虚拟机向所述多个主机中的第二主机的虚拟机发送信号以开始升级。
16.根据权利要求14所述的非瞬态计算机可读介质,其中,所述指令在由所述一个或多个处理器执行时,进一步执行以下操作:针对所述集群的所述多个主机中的每一个主机:
在所述主机的虚拟机上启动升级服务的实例;
使用至少所述升级服务的所启动的实例来选择所述主机的要升级的一个或多个部件;以及
当所述主机的所述虚拟机关机时,在所述主机的所述虚拟机处向所述多个主机中的另一主机的虚拟机上启动的升级服务提出请求,以升级所述主机的一个或多个所选择的部件。
17.根据权利要求14所述的非瞬态计算机可读介质,其中,所述第一主机的所述虚拟机是所述第一主机的超级管理器的专用虚拟机,其中所述专用虚拟机被配置为运行存储堆栈软件。
18.一种方法,包括:
在主机的虚拟机上启动升级服务;
使用至少所启动的升级服务来选择所述主机的要升级的一个或多个部件;
在选择所述主机的要升级的一个或多个部件之后,在所述主机的所述虚拟机处向在另一联网机器上启动的升级服务提出请求,以当所述虚拟机关机时升级所述主机的一个或多个所选择的部件;
在所述虚拟机关机之后,在另一联网机器上启动的所述升级服务处,协调一个或多个所选择的部件的所述升级;以及
在所述虚拟机开机之后,在所述虚拟机处验证一个或多个所选择的部件的所述升级。
19.根据权利要求18所述的方法,当所述另一联网机器是与所述主机在相同集群中的对等主机时,其中在所述主机的所述虚拟机处提出所述请求包括:针对所述对等主机的虚拟机上启动的升级服务提出请求,以升级一个或多个所选择的部件。
CN201910308222.2A 2018-04-17 2019-04-17 升级编排器 Active CN110389775B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/955,678 2018-04-17
US15/955,678 US10261775B1 (en) 2018-04-17 2018-04-17 Upgrade orchestrator

Publications (2)

Publication Number Publication Date
CN110389775A CN110389775A (zh) 2019-10-29
CN110389775B true CN110389775B (zh) 2022-04-05

Family

ID=66098442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910308222.2A Active CN110389775B (zh) 2018-04-17 2019-04-17 升级编排器

Country Status (3)

Country Link
US (2) US10261775B1 (zh)
EP (1) EP3557410B1 (zh)
CN (1) CN110389775B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949190B2 (en) * 2018-04-17 2021-03-16 Hewlett Packard Enterprise Development Lp Upgradeable component detection and validation
US20190334765A1 (en) * 2018-04-30 2019-10-31 Nutanix, Inc. Apparatuses and methods for site configuration management
US10740079B2 (en) * 2018-05-15 2020-08-11 Microsoft Technology Licensing, Llc Maintaining tight coupling between driver and application versions
US10915350B2 (en) * 2018-07-03 2021-02-09 Vmware, Inc. Methods and systems for migrating one software-defined networking module (SDN) to another SDN module in a virtual data center
US11182191B2 (en) * 2018-12-19 2021-11-23 Vmware, Inc. Nested host manager in a hyper-converged infrastructure
US11231951B2 (en) * 2018-12-19 2022-01-25 Vmware, Inc. Fault tolerant hyper-converged infrastructure upgrades in an environment with no additional physical infrastructure
GB2592647B (en) * 2020-03-05 2022-08-03 Jaguar Land Rover Ltd Power management on a vehicle
US11720386B2 (en) * 2020-04-02 2023-08-08 Vmware, Inc. Validation and pre-check of combined software/firmware updates
US11327738B2 (en) * 2020-04-02 2022-05-10 Vmware, Inc. Software and firmware updates in a combined single pane of glass interface
US11907742B2 (en) 2020-04-02 2024-02-20 Vmware, Inc. Software-defined network orchestration in a virtualized computer system
US11561821B1 (en) * 2020-05-07 2023-01-24 Amazon Technologies, Inc. Controlling placement of virtualized resources based on desirability index for host pools
US20220004417A1 (en) * 2020-07-01 2022-01-06 Vmware, Inc. Logical network platform install and upgrade in a virtualized computer system
US11520673B2 (en) 2020-07-21 2022-12-06 Hewlett Packard Enterprise Development Lp Maintenance operations based on analysis of collected data
US11593095B2 (en) * 2020-10-30 2023-02-28 Vmware, Inc. Upgrade of a distributed service in a virtualized computing system
US11720341B2 (en) * 2021-10-05 2023-08-08 Vmware, Inc. Simulation of updates in a software defined network (SDN) virtualized computing environments
US11748089B2 (en) * 2021-12-02 2023-09-05 Vmware, Inc. Obtaining software updates from neighboring hosts in a virtualized computing system
CN116541034A (zh) * 2022-01-26 2023-08-04 瑞昱半导体股份有限公司 基于显示端口界面的多流传输模式的固件升级方法及固件升级系统
US20230237027A1 (en) * 2022-01-27 2023-07-27 Dell Products L.P. Server Device Updates Using Update Baselines Tagged Across Multiple Management Consoles

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103001923A (zh) * 2003-06-05 2013-03-27 英特特拉斯特技术公司 用于对等服务编排的可互操作系统和方法
CN103092657A (zh) * 2013-01-18 2013-05-08 郑州威科姆科技股份有限公司 一种基于p2p的嵌入式设备升级方法
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
CN104169881A (zh) * 2012-01-18 2014-11-26 Dh2I公司 用于服务器集群应用程序虚拟化的系统和方法
CN104579752A (zh) * 2014-12-15 2015-04-29 南昌市科陆智能电网科技有限公司 远程自动升级系统及远程自动升级方法
CN104823160A (zh) * 2012-12-04 2015-08-05 微软技术许可有限责任公司 虚拟机-保留主机更新
CN104850429A (zh) * 2015-04-22 2015-08-19 北京五悦信息科技有限公司 一种面向智能设备的软件升级方法及系统
CN105204902A (zh) * 2015-09-24 2015-12-30 华为技术有限公司 一种虚拟机的安全补丁升级方法,及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6966058B2 (en) 2002-06-12 2005-11-15 Agami Systems, Inc. System and method for managing software upgrades in a distributed computing system
US20070124411A1 (en) 2005-11-18 2007-05-31 Dandekar Shree A Centralized third party software and services upgrading and authorization
WO2008017001A2 (en) 2006-08-02 2008-02-07 Moka5, Inc. Sharing live appliances
US9032053B2 (en) 2010-10-29 2015-05-12 Nokia Corporation Method and apparatus for upgrading components of a cluster
JP5655677B2 (ja) 2011-04-04 2015-01-21 富士通株式会社 ハイパーバイザ置き換え方法および情報処理装置
US8560662B2 (en) 2011-09-12 2013-10-15 Microsoft Corporation Locking system for cluster updates
US8875124B2 (en) * 2012-01-11 2014-10-28 Dell Products L.P. In-band hypervisor-managed firmware updates
US9170852B2 (en) * 2012-02-02 2015-10-27 Microsoft Technology Licensing, Llc Self-updating functionality in a distributed system
US10031783B2 (en) * 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US8572679B1 (en) 2012-07-24 2013-10-29 Microsoft Corporation Automatic system upgrade orchestrator
US9459856B2 (en) 2013-01-02 2016-10-04 International Business Machines Corporation Effective migration and upgrade of virtual machines in cloud environments
US9785427B2 (en) 2014-09-05 2017-10-10 Oracle International Corporation Orchestration of software applications upgrade using checkpoints
US10445123B2 (en) * 2015-01-19 2019-10-15 Vmware, Inc. Hypervisor exchange with virtual-machine consolidation
US10303458B2 (en) 2016-09-29 2019-05-28 Hewlett Packard Enterprise Development Lp Multi-platform installer
US10721125B2 (en) 2017-07-20 2020-07-21 Vmware, Inc. Systems and methods for update propagation between nodes in a distributed system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103001923A (zh) * 2003-06-05 2013-03-27 英特特拉斯特技术公司 用于对等服务编排的可互操作系统和方法
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
CN104169881A (zh) * 2012-01-18 2014-11-26 Dh2I公司 用于服务器集群应用程序虚拟化的系统和方法
CN104823160A (zh) * 2012-12-04 2015-08-05 微软技术许可有限责任公司 虚拟机-保留主机更新
CN103092657A (zh) * 2013-01-18 2013-05-08 郑州威科姆科技股份有限公司 一种基于p2p的嵌入式设备升级方法
CN104579752A (zh) * 2014-12-15 2015-04-29 南昌市科陆智能电网科技有限公司 远程自动升级系统及远程自动升级方法
CN104850429A (zh) * 2015-04-22 2015-08-19 北京五悦信息科技有限公司 一种面向智能设备的软件升级方法及系统
CN105204902A (zh) * 2015-09-24 2015-12-30 华为技术有限公司 一种虚拟机的安全补丁升级方法,及装置

Also Published As

Publication number Publication date
EP3557410B1 (en) 2023-05-10
US10613851B2 (en) 2020-04-07
US10261775B1 (en) 2019-04-16
CN110389775A (zh) 2019-10-29
EP3557410A1 (en) 2019-10-23
US20190317751A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
CN110389775B (zh) 升级编排器
US10949190B2 (en) Upgradeable component detection and validation
US11513809B2 (en) Kernel-integrated instance-specific operational resources with virtualization
US20190087220A1 (en) Hyperconverged system equipped with an orchestrator for installing and coordinating container pods on a cluster of container hosts
US9250918B2 (en) Server management with dynamic construction of pre-boot images
US8326449B2 (en) Augmenting a virtual machine hosting environment from within a virtual machine
US20090113408A1 (en) System synchronization in cluster
US20180088932A1 (en) Multi-platform installer
WO2019196705A1 (zh) 物理机到虚拟机迁移方法、装置及存储介质
US20230025529A1 (en) Apparatus and method for managing a distributed system with container image manifest content
US10175886B1 (en) Systems and methods for handling missing storage image layers while provisioning containers in computer clusters
US20190163461A1 (en) Upgrade managers for differential upgrade of distributed computing systems
US11256519B2 (en) Using a single process to install a UEFI-supported OS or a non-UEFI supported OS on a hardware platform
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof
US20220197633A1 (en) Software defined build infrastructure for hybrid, virtualized and native build environments
US11055115B1 (en) Virtual machine conversion in distributed system of remote desktops
US20240020103A1 (en) Parallelizing data processing unit provisioning
US12014185B2 (en) Unified boot image for multiple operating systems
US20230030000A1 (en) Declarative deployment of a virtual infrastructure management server
US20240036896A1 (en) Generating installation images based upon dpu-specific capabilities
CN115509590A (zh) 持续部署方法及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant