CN107810475A - Method and apparatus for the software life cycle management of virtual computation environmental - Google Patents
Method and apparatus for the software life cycle management of virtual computation environmental Download PDFInfo
- Publication number
- CN107810475A CN107810475A CN201680038585.3A CN201680038585A CN107810475A CN 107810475 A CN107810475 A CN 107810475A CN 201680038585 A CN201680038585 A CN 201680038585A CN 107810475 A CN107810475 A CN 107810475A
- Authority
- CN
- China
- Prior art keywords
- software
- installation
- virtual
- determining
- computing resource
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
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)
- Stored Programmes (AREA)
Abstract
Description
相关申请related application
于2015年6月30日提交的序列号为3344/CHE/2015的印度临时专利申请,均于2016年6月20日提交的序列号为15/187,452的美国专利申请以及序列号为15/187,480的美国专利申请通过引用整体并入本文。Indian Provisional Patent Application Serial No. 3344/CHE/2015 filed June 30, 2015, U.S. Patent Application Serial No. 15/187,452 and Serial No. 15/187,480 both filed June 20, 2016 The U.S. Patent Application for is hereby incorporated by reference in its entirety.
技术领域technical field
本公开总地涉及虚拟计算环境,并且更具体地,涉及用于虚拟计算环境的软件生命周期管理的方法和装置。The present disclosure relates generally to virtual computing environments, and more particularly, to methods and apparatus for software lifecycle management of virtual computing environments.
背景技术Background technique
使计算机系统虚拟化提供了诸如在单个硬件计算机上执行多个计算机系统的能力、复制计算机系统、在多个硬件计算机之间移动计算机系统等优点。用于使计算机系统虚拟化的示例系统在2007年9月21日提交的名称为“用于管理虚拟机和实机的方法和系统(METHOD AND SYSTEM FOR MANAGING VIRTUAL AND REAL MACHINES)”的美国专利申请第11/903,374号,以及被授权为美国专利8,171,485的2007年3月26日提交的标题为“用于管理虚拟机和实机的方法和系统(METHOD AND SYSTEM FOR MANAGING VIRTUAL AND REALMACHINES)”的美国临时专利申请第60/919,965号,以及2012年12月12日提交的标题为“用于虚拟化计算的方法和装置(METHODS AND APPARATUS FOR VIRTUALIZED COMPUTING)”的美国临时专利申请第61/736,422号中描述过,所有这三个专利申请通过引用整体并入本文。Virtualizing a computer system provides advantages such as the ability to execute multiple computer systems on a single hardware computer, duplicate a computer system, move a computer system between multiple hardware computers, and the like. EXAMPLE SYSTEM FOR VIRTUALIZING COMPUTER SYSTEMS US Patent Application entitled "METHOD AND SYSTEM FOR MANAGING VIRTUAL AND REAL MACHINES" filed September 21, 2007 11/903,374, and U.S. Patent No. 8,171,485, filed March 26, 2007, entitled "METHOD AND SYSTEM FOR MANAGING VIRTUAL AND REALMACHINES" Provisional Patent Application No. 60/919,965, and U.S. Provisional Patent Application No. 61/736,422, entitled "METHODS AND APPARATUS FOR VIRTUALIZED COMPUTING," filed December 12, 2012 As described, all three patent applications are hereby incorporated by reference in their entirety.
“基础设施即服务”(通常也称为“IaaS”)通常将由服务提供商提供的一套技术描述为允许弹性创建虚拟化、联网和合并计算平台(有时称为“云计算平台”)的整体解决方案。企业可以使用IaaS作为业务内部组织云计算平台(有时也称为“私有云”),其使应用程序开发人员能够访问基础设施资源,诸如虚拟服务器、存储和网络资源。通过提供对运行应用程序所需的硬件资源的即时访问,云计算平台使开发人员能够以比以往更大的规模和更快的速度构建、部署和管理网页应用程序(或任何其他类型的联网应用程序)的生命周期。"Infrastructure as a Service" (also commonly referred to as "IaaS") generally describes a set of technologies offered by a service provider as a holistic solution. Enterprises can use IaaS as an in-house organizational cloud computing platform (sometimes referred to as a "private cloud") that enables application developers to access infrastructure resources such as virtual servers, storage, and network resources. By providing instant access to the hardware resources needed to run applications, cloud computing platforms enable developers to build, deploy and manage web applications (or any other type of networked application) at a greater scale and faster than ever before program) life cycle.
云计算环境可以由许多处理单元(例如,服务器)组成。处理单元可以被安装在被称为机架的标准化框架中,其通过允许处理单元垂直堆叠来提供地板空间的有效利用。机架可以另外包括云计算环境的其他组件,诸如存储设备、联网设备(例如交换机)等。A cloud computing environment may consist of many processing units (eg, servers). Processing units may be mounted in standardized frames called racks, which provide efficient use of floor space by allowing processing units to be stacked vertically. The racks may additionally include other components of the cloud computing environment, such as storage devices, networking devices (eg, switches), and the like.
附图说明Description of drawings
图1A是示例环境的框图,其中物理机架由示例系统集成商准备以分配给客户。1A is a block diagram of an example environment in which physical racks are prepared by an example system integrator for distribution to customers.
图1B是示例环境的框图,其中示例物理机架被部署在示例客户端(customerpremise)。FIG. 1B is a block diagram of an example environment in which an example physical rack is deployed at an example customer premises.
图2描绘了示例虚拟服务器机架部署中的示例物理机架。Figure 2 depicts an example physical rack in an example virtual server rack deployment.
图3是图1A和/或图1B的软件管理器的示例实现方式的框图。3 is a block diagram of an example implementation of the software manager of FIGS. 1A and/or IB.
图4是图2的示例生命周期管理器的示例实现方式的框图。4 is a block diagram of an example implementation of the example lifecycle manager of FIG. 2 .
图5是表示可以被执行以实现图1A、图1B和/或图3的示例软件管理器的示例机器可读指令的流程图。5 is a flow diagram representing example machine readable instructions that may be executed to implement the example software manager of FIGS. 1A , 1B and/or 3 .
图6-8是表示可以被执行以实现图2和/或图4的示例生命周期管理器的机器可读指令的流程图。6-8 are flowcharts representative of machine readable instructions that may be executed to implement the example lifecycle manager of FIGS. 2 and/or 4 .
图9是能够执行图5的示例机器可读指令以实现图1A、图1B和/或图3的示例软件管理器的示例处理平台的框图。9 is a block diagram of an example processing platform capable of executing the example machine-readable instructions of FIG. 5 to implement the example software manager of FIGS. 1A , 1B, and/or 3 .
图10是能够执行图6-8的示例机器可读指令以实现图2和/或图4的示例生命周期管理器的示例处理平台的框图。10 is a block diagram of an example processing platform capable of executing the example machine-readable instructions of FIGS. 6-8 to implement the example lifecycle manager of FIGS. 2 and/or 4 .
具体实施方式Detailed ways
云计算基于跨网络的许多物理资源的部署、将物理资源虚拟化为虚拟资源以及供应虚拟资源用于跨云计算服务和应用。当启动云计算环境或向已建立的云计算环境添加资源时,数据中心运营商努力提供成本效益好的服务,同时使基础设施(例如,存储硬件、计算硬件和联网硬件)的资源相互协作以实现无痛(pain-free)安装/操作并优化资源以提高性能。用于建立和维护数据中心以提供云计算服务的现有技术经常将数据中心锁定为单源硬件资源,因为需要使用专门为特定类型的硬件设计的定制虚拟化软件。本文公开的示例使得能够使用供应商无关的(vendor-agnostic)虚拟化软件来建立和维护数据中心。通过这种方式,数据中心运营商可以灵活地从多个硬件制造商中选择任何一个,以满足数据中心的物理硬件需求,同时使数据中心运营商能够相对容易地初始化、虚拟化和供应新资源。也就是说,数据中心运营商可以使用本文公开的示例来从许多制造商中的任何一个获取硬件资源,而不需要数据中心运营商承担开发新软件以初始化、虚拟化和供应这样的资源的负担。Cloud computing is based on the deployment of many physical resources across a network, the virtualization of physical resources into virtual resources, and the provisioning of virtual resources for cross-cloud computing services and applications. When launching a cloud computing environment or adding resources to an established cloud computing environment, data center operators strive to provide cost-effective services while making the resources of the infrastructure (e.g., storage hardware, computing hardware, and networking hardware) Enables pain-free installation/operation and optimizes resources for performance. Existing techniques for building and maintaining data centers to provide cloud computing services often lock data centers into single-source hardware resources, requiring the use of custom virtualization software designed for specific types of hardware. Examples disclosed herein enable the use of vendor-agnostic virtualization software to build and maintain data centers. In this way, data center operators have the flexibility to choose any one of multiple hardware manufacturers to meet the physical hardware needs of the data center, while enabling data center operators to initialize, virtualize and provision new resources with relative ease . That is, a data center operator can use the examples disclosed herein to acquire hardware resources from any of many manufacturers without requiring the data center operator to bear the burden of developing new software to initialize, virtualize, and provision such resources .
本文公开的示例方法和装置便于管理数据中心计算元件的软件生命周期。例如,所述方法和装置便于更新、修补、升级等在计算元件集群中实现计算元件的多个硬件元件(例如,计算元件可以是多个计算组件的自包含物理机架(例如网络交换机、处理器、存储器等),其可以与其他自包含物理机架结合以形成计算资源的云或群集。在许多计算环境中,不希望中断、干扰等计算环境的操作(例如,计算环境可能每天运行24小时,并且可能没有自然的停机时间,在此期间系统可能为了维护而离线)。示例方法和装置通过利用冗余和/或离线/备用的计算资源来辅助安排和执行诸如更新、修补、升级等,以减少和/或消除对操作计算环境的影响。The example methods and apparatus disclosed herein facilitate managing the software lifecycle of data center computing elements. For example, the methods and apparatus facilitate updating, patching, upgrading, etc. implementing multiple hardware elements of a computing element in a computing element cluster (e.g., a computing element may be a self-contained physical rack of multiple computing components (e.g., network switches, processing servers, storage, etc.), which can be combined with other self-contained physical racks to form a cloud or cluster of computing resources. In many computing environments, it is undesirable to interrupt, interfere with, etc., the operation of the computing environment (for example, the computing environment may run 24 hours a day hours, and there may be no natural downtime during which the system may be offline for maintenance). Example methods and apparatus assist in scheduling and performing tasks such as updates, patching, upgrades, etc., by utilizing redundant and/or offline/standby computing resources , to reduce and/or eliminate the impact on the operating computing environment.
图1A描绘了示例环境100,其中物理机架102由示例系统集成商104准备以分配给客户。图1B描绘了示例环境117,其中示例物理机架102被部署在示例客户端118处。FIG. 1A depicts an example environment 100 in which physical racks 102 are prepared by an example system integrator 104 for distribution to customers. FIG. 1B depicts an example environment 117 in which an example physical rack 102 is deployed at an example client 118 .
图1的示例环境100包括示例物理机架102、示例系统集成商104、一个或更多示例硬件/软件供应商106、示例网络108、示例虚拟系统解决方案提供商110以及示例虚拟成像设备112。The example environment 100 of FIG. 1 includes an example physical rack 102 , an example system integrator 104 , one or more example hardware/software vendors 106 , an example network 108 , an example virtual system solution provider 110 , and an example virtual imaging device 112 .
所示示例的系统集成商104接收并履行计算硬件的客户订单。图1A的示例的系统集成商104从其他供应商(诸如一个或更多示例硬件/软件供应商106)获得计算机硬件和/或软件,并将各个硬件组件和/或软件组装成功能计算单元以履行客户订单。可选地,系统集成商104可以设计和/或构建用于组装计算单元的部分或全部硬件组件和/或软件。根据所示示例,系统集成商104为其他实体(例如,不拥有/雇佣并且不被系统集成商104拥有/雇佣的企业和/或个人)准备计算单元。可选地,系统集成商104可以组装计算单元以供与系统集成商104相同的实体使用(例如,系统集成商104可以是公司的部门,其中公司订购和/或利用组装的计算单元)。如本文所使用的,术语“客户”是指接收和/或操作由系统集成商104提供的计算单元的任何个人和/或实体。在一些示例中,系统集成商104是独立于设备制造商的实体,诸如提供没有品牌化的硬件的白标签设备制造商。在其他示例中,系统集成商104是原始装备制造商(OEM)合作伙伴或原始设备制造商(ODM)合作伙伴,其与提供品牌标签硬件的OEM或ODM(例如,非白标签装备制造商)合作。示例的OEM/ODM硬件包括OEM/ODM服务器(诸如Hewlett-(HP)服务器和服务器),以及OEM/ODM交换机(诸如Arista交换机)和/或由原始制造商标记的任何其他OEM/ODM服务器、交换机或装备。The system integrator 104 of the illustrated example receives and fulfills customer orders for computing hardware. The system integrator 104 of the example of FIG. 1A obtains computer hardware and/or software from other suppliers, such as one or more example hardware/software suppliers 106, and assembles the individual hardware components and/or software into functional computing units to Fulfill customer orders. Optionally, system integrator 104 may design and/or build some or all of the hardware components and/or software used to assemble the computing unit. According to the illustrated example, system integrator 104 prepares computing units for other entities (eg, businesses and/or individuals not owned/employed by and not owned/employed by system integrator 104 ). Alternatively, system integrator 104 may assemble computing units for use by the same entity as system integrator 104 (eg, system integrator 104 may be a division of a company that orders and/or utilizes assembled computing units). As used herein, the term “customer” refers to any individual and/or entity that receives and/or operates a computing unit provided by the system integrator 104 . In some examples, system integrator 104 is an entity independent of a device manufacturer, such as a white label device manufacturer that provides unbranded hardware. In other examples, the system integrator 104 is an original equipment manufacturer (OEM) partner or an original equipment manufacturer (ODM) partner that works with an OEM or ODM (e.g., a non-white label equipment manufacturer) that provides branded label hardware. Cooperation. Exemplary OEM/ODM hardware includes OEM/ODM servers such as Hewlett- (HP) servers and servers), and OEM/ODM switches (such as Arista switches) and/or any other OEM/ODM servers, switches or equipment marked by the original manufacturer.
根据所示示例,由示例系统集成商104订购和/或组装的一种类型的计算单元是物理机架102。物理机架102是计算硬件和已安装软件的组合,其可以被客户利用以创建和/或添加到虚拟计算环境。例如,物理机架102可以包括处理单元(例如多个刀片服务器)、网络交换机,以将处理单元互联并将物理机架102与其他计算单元(例如,网络环境中的物理机架102的其他计算单元,诸如云计算环境)和/或数据存储单元(例如,网络附接的存储、存储区域网络硬件等)相连接。所示示例的物理机架102由系统集成商104以部分配置的状态准备,以使计算设备能够快速部署在客户位置(例如,少于2小时)。例如,系统集成商104可以安装操作系统、驱动程序、操作软件、管理软件等。所安装的组件可以配置为具有一些系统细节(例如,辅助物理机架102的组件之间的相互通信的系统细节)和/或者可以配备有软件,以当虚拟服务器机架被安装并且首次由客户供电时,可以从客户收集更多信息。According to the illustrated example, one type of computing unit ordered and/or assembled by an example system integrator 104 is a physical rack 102 . Physical rack 102 is a combination of computing hardware and installed software that can be utilized by customers to create and/or add to a virtual computing environment. For example, the physical rack 102 may include processing units (e.g., multiple blade servers), network switches to interconnect the processing units and connect the physical rack 102 to other computing units (e.g., other computing devices of the physical rack 102 in a network environment). units, such as cloud computing environments) and/or data storage units (eg, network-attached storage, storage area network hardware, etc.). The physical rack 102 of the illustrated example is prepared by the system integrator 104 in a partially configured state to enable rapid deployment of computing equipment at a customer location (eg, in less than 2 hours). For example, system integrator 104 may install operating systems, drivers, operating software, management software, and the like. The installed components may be configured with some system details (e.g., system details that facilitate intercommunication between components of the physical rack 102) and/or may be equipped with software to When powering on, more information can be collected from customers.
为了辅助物理机架102的准备以分配给客户,示例系统集成商104利用虚拟成像设备112,以在将示例服务器机架102运送给客户之前在物理机架102上准备和配置操作系统、系统配置、软件等。所示示例的虚拟成像设备112是由示例虚拟系统解决方案提供商110经由示例网络108提供给系统集成商104的虚拟计算设备。示例虚拟成像设备112由示例系统集成商104在系统集成商104的虚拟计算环境中执行。例如,虚拟成像设备112可以是虚拟计算镜像、虚拟应用程序、容器虚拟机镜像、安装在系统集成商104的计算单元的操作系统中的软件应用程序等。虚拟成像设备112可以可选地由任何其他实体提供和/或可以是物理计算设备、可以是多个物理计算设备和/或可以是虚拟和物理计算组件的任何组合。To aid in the preparation of the physical racks 102 for distribution to customers, the example system integrator 104 utilizes a virtual imaging appliance 112 to prepare and configure operating systems, system configurations, on the physical racks 102 prior to shipping the example server racks 102 to customers. , software, etc. The illustrated example virtual imaging device 112 is a virtual computing device provided by the example virtual system solution provider 110 to the system integrator 104 via the example network 108 . The example virtual imaging device 112 is implemented by the example system integrator 104 within the system integrator's 104 virtual computing environment. For example, virtual imaging device 112 may be a virtual computing image, a virtual application, a container virtual machine image, a software application installed in an operating system of a computing unit of system integrator 104, or the like. Virtual imaging device 112 may alternatively be provided by any other entity and/or may be a physical computing device, may be multiple physical computing devices, and/or may be any combination of virtual and physical computing components.
所示示例的虚拟成像设备112在物理机架102的准备期间经由网络108从虚拟系统解决方案提供商110检索软件镜像和配置数据以安装在物理机架102上。所示示例的虚拟成像设备112将软件镜像和配置数据推送(例如,传输、发送等)到物理机架102的组件。例如,所示示例的虚拟成像设备112包括多个网络连接(例如虚拟网络连接、物理网络连接和/或虚拟连接和网络连接的任何组合)。例如,所示示例的虚拟成像设备112连接到安装在物理机架102中的一个或更多网络交换机的管理接口,在一个或更多网络交换机上安装网络配置信息,并且重新启动一个或更多交换机以加载所安装的配置,以将虚拟成像设备112与经由一个或更多网络交换机可通信地耦合的一个或更多计算单元可通信地耦合。示例虚拟成像设备112还连接到安装在示例物理机架102中的一个或更多服务器的管理网络接口(例如,带外(OOB)接口),以使得一个或更多操作系统被安装(例如利用操作系统安装程序的预启动执行环境(PXE)启动)。示例虚拟成像设备112还用于安装虚拟环境管理组件(在下文中结合图3-6进一步详细描述)并且引起虚拟环境管理组件启动以使得它们可以接管示例服务器机架102的部署。The virtual imaging appliance 112 of the illustrated example retrieves software images and configuration data from the virtual system solution provider 110 via the network 108 during preparation of the physical rack 102 for installation on the physical rack 102 . The virtual imaging device 112 of the illustrated example pushes (eg, transmits, sends, etc.) software images and configuration data to components of the physical rack 102 . For example, the virtual imaging device 112 of the illustrated example includes multiple network connections (eg, virtual network connections, physical network connections, and/or any combination of virtual and network connections). For example, virtual imaging device 112 of the illustrated example connects to the management interface of one or more network switches installed in physical rack 102, installs network configuration information on one or more network switches, and restarts one or more switch to load the installed configuration to communicatively couple the virtual imaging device 112 with one or more computing units communicatively coupled via one or more network switches. The example virtual imaging device 112 is also connected to a management network interface (e.g., an out-of-band (OOB) interface) of one or more servers installed in the example physical rack 102 to enable one or more operating systems to be installed (e.g., using Preboot Execution Environment (PXE) boot of the operating system installer). The example virtual imaging appliance 112 is also used to install virtual environment management components (described in further detail below in conjunction with FIGS. 3-6 ) and to cause the virtual environment management components to start up so that they can take over deployment of the example server rack 102 .
示例虚拟成像设备112被配置为在没有用户干预并且不需要示例系统集成商104的用户手动地连接到示例物理机架102的组件的各种接口的情况下执行部署的许多操作。此外,示例虚拟成像设备112的用户免除了定位配置示例物理机架102所需的各种软件镜像的负担(例如,一个或更多网络交换机的固件镜像、一个或更多服务器的操作系统镜像、安装在物理机架102中的硬件组件的一个或更多操作系统驱动程序等)。另外,由示例虚拟成像设备112部署的虚拟环境管理组件由虚拟成像设备112配置,以辅助物理机架102在客户位置处的容易部署。例如,由示例虚拟成像设备112安装在物理机架102上的虚拟管理组件包括图形用户界面,其引导客户通过该进程输入配置参数(例如,客户网络的细节、关于现有虚拟环境的信息等等)。另外,示例虚拟管理组件自动发现关于客户系统的一些信息(例如,自动发现关于现有虚拟环境的信息)。The example virtual imaging device 112 is configured to perform many of the operations of the deployment without user intervention and without requiring users of the example system integrator 104 to manually connect to the various interfaces of the components of the example physical rack 102 . Furthermore, the user of the example virtual imaging device 112 is relieved of the burden of locating the various software images needed to configure the example physical rack 102 (e.g., firmware images for one or more network switches, operating system images for one or more servers, One or more operating system drivers for hardware components installed in the physical rack 102, etc.). Additionally, the virtual environment management components deployed by the example virtual imaging appliance 112 are configured by the virtual imaging appliance 112 to facilitate easy deployment of the physical racks 102 at customer locations. For example, the virtual management component installed on the physical rack 102 by the example virtual imaging appliance 112 includes a graphical user interface that guides the customer through the process of entering configuration parameters (e.g., details of the customer network, information about the existing virtual environment, etc. ). In addition, the example virtual management component automatically discovers some information about the guest system (eg, automatically discovers information about existing virtual environments).
所示示例的网络108将示例系统集成商104与虚拟系统解决方案提供商110可通信地耦合,并且将示例硬件/软件供应商106与示例虚拟系统解决方案提供商110可通信地耦合。根据所示示例,网络108是互联网。可选地,网络108可以是任何类型的局域网、广域网、无线网络、有线网络、网络的任何组合等。尽管图1A的网络108被示为单个网络,但是该网络可以是任何数量和/或类型的网络。例如,网络108可以由局域网、广域网、无线网络、有线网络、虚拟网络等中的一个或更多个来实现。The illustrated example network 108 communicatively couples an example system integrator 104 with a virtual system solution provider 110 and communicatively couples an example hardware/software provider 106 with an example virtual system solution provider 110 . According to the example shown, network 108 is the Internet. Optionally, network 108 may be any type of local area network, wide area network, wireless network, wired network, any combination of networks, or the like. Although network 108 of FIG. 1A is shown as a single network, the network may be any number and/or type of networks. For example, the network 108 may be implemented by one or more of a local area network, a wide area network, a wireless network, a wired network, a virtual network, and the like.
参考图1B,示例客户端118是示例物理机架102(例如,部署多个物理机架102)所处的位置。例如,客户端118可以是数据中心、云提供商的位置、商业位置或希望实现由一个或更多个物理机架102组成的虚拟计算环境的任何其他位置。根据所示的示例,示例客户端118(以及位于示例客户端118处的示例物理机架102)可通信地耦合到示例网络108,以将示例客户端118与示例虚拟系统解决方案提供商110可通信地耦合。Referring to FIG. 1B , an example client 118 is where an example physical rack 102 (eg, multiple physical racks 102 are deployed) resides. For example, client 118 may be a data center, a cloud provider's location, a business location, or any other location where it is desired to implement a virtual computing environment consisting of one or more physical racks 102 . According to the illustrated example, the example client 118 (and the example physical rack 102 located at the example client 118) are communicatively coupled to the example network 108 to connect the example client 118 with the example virtual system solution provider 110. communicatively coupled.
所示示例的虚拟系统解决方案提供商110分配(例如销售)和/或支持示例虚拟成像设备112。所示示例的虚拟系统解决方案提供商110还提供镜像的储存库116和/或其他类型的软件(例如,虚拟机镜像、驱动程序、操作系统等),其可由A)虚拟成像设备112检索并安装在物理机架102上和/或B)在示例物理机架102被部署在示例客户端118处之后(如图1B所示),可由示例物理机架102检索。虚拟系统解决方案提供商110可选地由多个实体(例如,来自软件的一个或更多制造商)和/或任何其他类型的实体来实现。The illustrated example virtual system solutions provider 110 distributes (eg, sells) and/or supports the example virtual imaging device 112 . The virtual system solution provider 110 of the illustrated example also provides a repository 116 of images and/or other types of software (e.g., virtual machine images, drivers, operating systems, etc.) that can be retrieved by A) the virtual imaging device 112 and Installed on the physical rack 102 and/or B) retrievable by the example physical rack 102 after the example physical rack 102 is deployed at the example client 118 (as shown in FIG. 1B ). Virtual system solution provider 110 is optionally implemented by multiple entities (eg, from one or more manufacturers of software) and/or any other type of entity.
图1A和1B的所示示例的示例虚拟系统解决方案提供商110包括示例软件管理器114和示例储存库116。示例软件管理器114和示例储存库116一起提供软件至A)的图1A的示例虚拟成像设备112,用于在示例系统集成商104处供应示例物理机架102和/或B)至图1B的示例用户端118处的一个或更多示例物理机架102,用于更新、升级、打补丁等在一个或更多示例物理机架102中包括的计算资源。The example virtual system solution provider 110 of the illustrated example of FIGS. 1A and 1B includes an example software manager 114 and an example repository 116 . The example software manager 114 and the example repository 116 together provide software to A) the example virtual imaging device 112 of FIG. One or more example physical racks 102 at an example client 118 for updating, upgrading, patching, etc. computing resources included in the one or more example physical racks 102 .
示例软件管理器114从一个或更多示例硬件/软件供应商106接收软件,并且将数据存储在示例储存库116中。该软件可以包括用于包括在示例物理机架102中的计算资源的新的和/或更新的驱动程序、操作系统、固件等等。例如,软件可以包括安装在物理机架102中的网络交换机的固件/操作系统、用于在安装在物理机架102中的服务器硬件上执行的超级管理程序(hypervisor)、安装在物理机架102中的存储设备的驱动程序、安装在由物理机架102提供的计算环境中的操作系统的安全更新等。The example software manager 114 receives software from one or more example hardware/software vendors 106 and stores data in an example repository 116 . The software may include new and/or updated drivers, operating systems, firmware, etc. for the computing resources included in the example physical rack 102 . For example, software may include firmware/operating system for a network switch installed in physical rack 102, a hypervisor for execution on server hardware installed in physical rack 102, Drivers for storage devices in the storage device, security updates for operating systems installed in the computing environment provided by the physical rack 102, and the like.
示例软件管理器114从示例虚拟成像设备112接收对机架安装镜像的请求、检索所请求的一个或更多镜像,并且将所请求的一个或更多镜像经由网络108传送给示例虚拟成像设备112,以通过示例虚拟成像设备112辅助在示例物理机架102上安装一个或更多镜像。示例软件管理器114可以在从一个或更多示例硬件/软件供应商106接收到更新的软件之后,向示例虚拟成像设备112另外提供一个或更多更新的镜像。例如,示例虚拟成像设备112可以周期性地发送对更新的一个或更多镜像的请求和/或当更新的镜像已准备好时,示例软件管理器114可以通知示例虚拟成像设备112(例如,在新软件已被接收、测试并添加到新镜像之后)。The example software manager 114 receives a request for a rackmount image from the example virtual imaging device 112, retrieves the requested one or more images, and transmits the requested one or more images to the example virtual imaging device 112 via the network 108 , to assist in installing one or more images on the example physical rack 102 via the example virtual imaging device 112 . The example software manager 114 may additionally provide one or more updated images to the example virtual imaging device 112 after receiving updated software from the one or more example hardware/software vendors 106 . For example, the example virtual imaging device 112 may periodically send requests for updated one or more images and/or the example software manager 114 may notify the example virtual imaging device 112 when an updated image is ready (e.g., at After the new software has been received, tested, and added to the new mirror).
示例软件管理器114还在示例物理机架102已经部署在示例客户端118之后从示例物理机架102接收对更新软件的请求。例如,当示例物理机架102在示例客户端118处被部署为物理机架102群集的一部分时,物理机架102中的一个可以周期性地发送对更新的软件包的请求(例如,包括与安装在示例物理机架102中的多个计算资源相关联的软件的一组软件)。响应于这样的请求,示例软件管理器114检索包括软件包版本的清单文件,使得物理机架102可以确定软件包是否包括相对于当前安装在示例物理机架102的计算资源上的软件而言是新的、更新的、改进的等的软件。例如,如果清单文件标识比当前安装在示例物理机架102上的软件包的版本更新的版本,则该软件包包括新软件(例如,已经被选择安装在示例物理机架102中安装的网络交换机上的新固件)。在一些实例中,虚拟系统解决方案提供商110可以支持多个不同的物理机架实现方式(例如,安装在示例物理机架102中的计算资源和/或软件的不同组合)。在这样的情况下,清单文件可以附加地包括示例物理机架102中的组件的特定组合的标识符。例如,清单文件可以标识与示例物理机架102相关联的库存单元(SKU),以允许物理机架102确认接收到的清单文件标识特定物理机架102的软件。The example software manager 114 also receives requests from the example physical racks 102 to update software after the example physical racks 102 have been deployed on the example clients 118 . For example, when example physical racks 102 are deployed at example clients 118 as part of a cluster of physical racks 102, one of physical racks 102 may periodically send requests for updated software packages (e.g., including A set of software associated with a plurality of computing resources installed in the example physical rack 102). In response to such a request, the example software manager 114 retrieves a manifest file that includes the version of the software package so that the physical rack 102 can determine whether the software package includes software that is currently installed on the computing resources of the example physical rack 102. New, updated, improved, etc. software. For example, if the manifest file identifies a newer version than the version of the software package currently installed on the example physical rack 102, then the software package includes new software (e.g., a network switch that has been selected for installation in the example physical rack 102). new firmware on the ). In some instances, virtual system solution provider 110 may support multiple different physical rack implementations (eg, different combinations of computing resources and/or software installed in example physical rack 102 ). In such cases, the manifest file may additionally include identifiers for the particular combination of components in the example physical rack 102 . For example, the manifest file may identify a stock keeping unit (SKU) associated with an example physical rack 102 to allow the physical rack 102 to confirm that the received manifest file identifies software for the particular physical rack 102 .
结合图3描述示例软件管理器114的示例实现方式。An example implementation of the example software manager 114 is described in connection with FIG. 3 .
示例储存库116存储从一个或更多示例硬件/软件供应商106接收的软件,以及由示例软件管理器114生成的用于示例软件的清单文件。所示示例的储存库116与示例软件管理器114可通信地耦合,以允许示例软件管理器114存储和检索软件。示例储存库116是数据库。可选地,示例储存库可以是任何其他类型的存储,例如网络附接的存储、硬盘驱动器、共享网络驱动器、文件、文件夹等。The example repository 116 stores software received from one or more example hardware/software vendors 106 , as well as manifest files generated by the example software manager 114 for the example software. Repository 116 of the example shown is communicatively coupled with example software manager 114 to allow example software manager 114 to store and retrieve software. An example repository 116 is a database. Alternatively, the example repository may be any other type of storage, such as network-attached storage, hard drive, shared network drive, file, folder, or the like.
图2描绘了虚拟服务器机架206的示例部署中的示例物理机架202、204。例如,物理机架202、204可以是由图1A的示例系统集成商104组装的物理机架102中的物理机架。在所示示例中,第一物理机架202具有示例机架顶部(ToR)交换机A210、示例ToR交换机B 212、示例管理交换机207以及示例服务器主机节点(0)209。在所示示例中,管理交换机207和服务器主机节点(0)209运行用于第一物理机架202的硬件管理系统(HMS)208。所示示例的第二物理机架204还具有示例ToR交换机A 216、示例ToR交换机B 218、示例管理交换机213以及示例服务器主机节点(0)211。在所示示例中,管理交换机213和服务器主机节点(0)211运行用于第二物理机架204的HMS 214。FIG. 2 depicts example physical racks 202 , 204 in an example deployment of virtual server racks 206 . For example, physical racks 202, 204 may be physical racks in physical racks 102 assembled by example system integrator 104 of FIG. 1A. In the example shown, a first physical rack 202 has an example top of rack (ToR) switch A 210 , an example ToR switch B 212 , an example management switch 207 , and an example server host node ( 0 ) 209 . In the example shown, a management switch 207 and a server host node ( 0 ) 209 run a hardware management system (HMS) 208 for the first physical rack 202 . The example second physical rack 204 shown also has an example ToR switch A 216 , an example ToR switch B 218 , an example management switch 213 , and an example server host node (0) 211 . In the example shown, management switch 213 and server host node (0) 211 run HMS 214 for second physical rack 204 .
在所示示例中,相应的物理机架202、204的管理交换机207、213运行相应的HMS208、214的相应的带外(OOB)代理和OOB插件(plugin)。此外,在所示示例中,相应的物理机架202、204的服务器主机节点(0)209、211运行相应的IB代理、IB插件、HMS服务API和聚合器。In the example shown, the management switch 207 , 213 of the respective physical rack 202 , 204 runs a respective out-of-band (OOB) agent and OOB plugin of the respective HMS 208 , 214 . Furthermore, in the example shown, the server host nodes (0) 209, 211 of the respective physical racks 202, 204 run respective IB agents, IB plugins, HMS service APIs and aggregators.
在所示示例中,HMS 208、214连接到服务器主机节点(0)209、211的服务器管理端口(例如,使用基板管理控制器(BMC)),连接到ToR交换机210、212、216、218的ToR交换机管理端口(例如,使用1Gbps链路),并且还连接到一个或更多个主干(spine)交换机222的主干交换机管理端口。这些示例连接形成用于OOB管理的不可路由的专用互联网协议(IP)管理网络。所示示例的HMS 208、214使用到服务器主机节点(0)209、211的服务器管理端口的该OOB管理接口进行服务器硬件管理。另外,所示示例的HMS 208、214使用到ToR交换机210、212、216、218的ToR交换机管理端口以及到一个或更多个主干交换机222的主干交换机管理端口的该OOB管理接口进行交换机管理。在本文公开的示例中,ToR交换机210、212、216、218连接到物理机架202、204中的服务器主机的服务器网络接口卡(NIC)端口(例如,使用10Gbps链路)用于下行链路通信,并且连接到一个或更多主干交换机(例如,使用40Gbps链路)用于上行链路通信。在所示的示例中,管理交换机207、213还连接到ToR交换机210、212、216、218(例如,使用10Gbps链路),用于管理交换机207、213和ToR交换机210、212、216、218之间的内部通信。此外,在所示示例中,HMS 208、214具有到物理机架202、204的个体服务器节点(例如,在示例物理硬件资源224、226中的服务器节点)的IB连接。在所示示例中,IB连接经由在服务器节点上运行的操作系统使用特定于OS的API(诸如vSphere API)、命令行接口(CLI)和/或诸如来自分布式管理任务组(DMTF)的公共信息模型之类的接口接合到物理硬件资源224、226。In the example shown, the HMS 208, 214 is connected to a server management port of a server host node (0) 209, 211 (e.g., using a baseboard management controller (BMC)), to a The ToR switch management port (eg, using a 1 Gbps link) is also connected to the spine switch management ports of one or more spine switches 222 . These example connections form a non-routable private Internet Protocol (IP) management network for OOB management. The HMS 208, 214 of the example shown uses this OOB management interface to the server management port of the server host node (0) 209, 211 for server hardware management. Additionally, the HMS 208 , 214 of the illustrated example uses this OOB management interface to the ToR switch management ports of the ToR switches 210 , 212 , 216 , 218 and to the spine switch management ports of the one or more spine switches 222 for switch management. In the example disclosed herein, ToR switches 210, 212, 216, 218 are connected to server network interface card (NIC) ports (e.g., using 10Gbps links) of server hosts in physical racks 202, 204 for downlink communicate, and connect to one or more backbone switches (eg, using 40Gbps links) for uplink communication. In the example shown, the management switches 207, 213 are also connected to the ToR switches 210, 212, 216, 218 (e.g., using 10Gbps links) for the management switches 207, 213 and the ToR switches 210, 212, 216, 218 internal communication between. Furthermore, in the example shown, the HMS 208, 214 has IB connections to individual server nodes of the physical racks 202, 204 (eg, server nodes in the example physical hardware resources 224, 226). In the example shown, the IB connection is via the operating system running on the server node using OS-specific APIs (such as the vSphere API), command-line interface (CLI), and/or public APIs such as those from the Distributed Management Task Force (DMTF). Interfaces such as information models interface to physical hardware resources 224,226.
相应的物理机架202、204的HMS 208、214与相应的物理机架202、204的虚拟机架管理器(VRM)225、227接口,以使用物理机架202、204的物理硬件资源224、226(例如,处理器、网络接口卡、服务器、交换机、存储设备、外围设备、电源等)来实例化和管理虚拟服务器机架206。在所示示例中,第一物理机架202的VRM 225在第一物理机架202的三个服务器主机节点上运行,其中一个是服务器主机节点(0)209。如本文所使用的,术语“主机”是指物理硬件资源224、226的功能上不可分割的单元,诸如物理服务器,其作为整体被配置或分配给虚拟机架和/或工作负载;全部上电或断电;或者可以被认为是完整的功能单元。此外,在所示示例中,第二物理机架204的VRM 227在第二物理机架204的三个服务器主机节点上运行,其中一个是服务器主机节点(0)211。在所示示例中,相应的物理机架202、204的VRM 225、227通过一个或更多个主干交换机222相互通信。此外,在所示示例中,物理机架202、204的物理硬件资源224、226之间的通信在物理机架202、204的TOR交换机210、212、216、218之间通过一个或更多个主干交换机222交换。在所示的示例中,TOR交换机210、212、216、218中的每一个连接到两个主干交换机222中的每一个。在其他示例中,可以使用更少或更多的主干交换机。例如,当物理机架被添加到虚拟服务器机架206时,可以添加额外的主干交换机。The HMS 208, 214 of the respective physical rack 202, 204 interfaces with the virtual rack manager (VRM) 225, 227 of the respective physical rack 202, 204 to use the physical hardware resources 224, 224, 227 of the physical rack 202, 204. 226 (eg, processors, network interface cards, servers, switches, storage devices, peripherals, power supplies, etc.) to instantiate and manage the virtual server rack 206. In the example shown, the VRM 225 of the first physical rack 202 runs on three server host nodes of the first physical rack 202 , one of which is the server host node ( 0 ) 209 . As used herein, the term "host" refers to a functionally indivisible unit of a physical hardware resource 224, 226, such as a physical server, configured or assigned to a virtual rack and/or workload as a whole; all powered on or de-energized; or can be considered a complete functional unit. Furthermore, in the example shown, the VRM 227 of the second physical rack 204 runs on three server host nodes of the second physical rack 204 , one of which is the server host node (0) 211 . In the example shown, the VRMs 225 , 227 of respective physical racks 202 , 204 communicate with each other through one or more spine switches 222 . Furthermore, in the example shown, communication between the physical hardware resources 224, 226 of the physical racks 202, 204 passes between the TOR switches 210, 212, 216, 218 of the physical racks 202, 204 through one or more Backbone switch 222 switches. In the example shown, each of the TOR switches 210 , 212 , 216 , 218 is connected to each of the two spine switches 222 . In other examples, fewer or more spine switches may be used. For example, when physical racks are added to virtual server racks 206, additional spine switches may be added.
在本文公开的示例中,使用命令行接口(CLI)和API来管理ToR交换机210、212、216、218。例如,HMS 208、214使用CLI/API来填充对应于ToR交换机210、212、216、218的交换对象。在HMS启动时,HMS 208、214用静态可用信息填充初始交换对象。另外,HMS 208、214使用周期性轮询机制作为HMS交换机管理应用线程的一部分,以收集来自TOR交换机210、212、216、218的统计和健康数据(例如,链路状态、分组统计、可用性等等)。还有一个配置缓冲区作为交换对象的一部分,其存储要在交换机上应用的配置信息。In the examples disclosed herein, the ToR switches 210, 212, 216, 218 are managed using a command line interface (CLI) and an API. For example, the HMS 208, 214 uses the CLI/API to populate the exchange objects corresponding to the ToR switches 210, 212, 216, 218. At HMS startup, the HMS 208, 214 populates the initial exchange object with statically available information. In addition, the HMS 208, 214 uses a periodic polling mechanism as part of the HMS switch management application thread to collect statistics and health data (e.g., link status, packet statistics, availability, etc.) from the TOR switches 210, 212, 216, 218 Wait). There is also a configuration buffer as part of the switch object, which stores configuration information to be applied on the switch.
图2所示示例的示例VRM 225、227包括示例生命周期管理器(LCM)228、230。示例LCM 228、230负责从示例虚拟系统解决方案提供商110请求软件并管理示例软件的安装。当从示例虚拟系统解决方案提供商110接收到标识关于软件包的信息的清单文件时,示例LCM228、230确定清单是否适用于示例物理机架202、204,验证安装软件包的软件组件所需的依赖性(或解决这种依赖性)的存在,确保有足够的计算资源用于安装软件包的软件组件、安排用于安装的软件组件以及执行软件组件的安装。The example VRM 225 , 227 of the example shown in FIG. 2 includes an example Lifecycle Manager (LCM) 228 , 230 . The example LCM 228, 230 is responsible for requesting software from the example virtual system solution provider 110 and managing the installation of the example software. When a manifest file identifying information about a software package is received from the example virtual system solution provider 110, the example LCM 228, 230 determines whether the manifest is applicable to the example physical rack 202, 204, verifies that the software components required to install the software package The existence of dependencies (or the resolution of such dependencies) ensures that sufficient computing resources are available to install the software components of the software package, schedule the software components for installation, and perform the installation of the software components.
图4示出了LCM 228、230的示例实现方式。为了简单起见,本说明书的其余部分将参考示例LCM 228。然而,其中包括的描述和示例实现方式也可以应用于示例LCM 230。FIG. 4 shows an example implementation of the LCM 228 , 230 . For simplicity, the remainder of this description will refer to an example LCM 228 . However, the description and example implementations included therein also apply to the example LCM 230 .
图3是1A和/或1B的软件管理器114的示例实现方式的框图。图3的示例软件管理器114包括示例软件接收器302、示例包管理器304和示例储存库接口306以及示例请求处理器308。3 is a block diagram of an example implementation of software manager 114 of 1A and/or 1B. The example software manager 114 of FIG. 3 includes an example software receiver 302 , an example package manager 304 and example repository interface 306 and an example request handler 308 .
所示示例的示例软件接收器302从示例硬件/软件供应商106接收软件组件(例如,驱动程序、固件、操作系统、应用程序等),并且将软件组件传输到示例包管理器304。例如,软件接收器302可以在新软件可用时接收来自一个或更多示例硬件/软件供应商106的通知,和/或可以周期性地向一个或更多示例硬件/软件供应商106查询新软件的可用性。The example software receiver 302 of the illustrated example receives software components (eg, drivers, firmware, operating systems, applications, etc.) from the example hardware/software vendor 106 and transmits the software components to the example package manager 304 . For example, software receiver 302 may receive notifications from one or more example hardware/software suppliers 106 when new software is available, and/or may periodically query one or more example hardware/software suppliers 106 for new software availability.
示例包管理器304从示例软件接收器302接收软件、协调软件的测试并在测试之后将软件添加到示例储存库116。当将软件添加到示例储存库116时,示例包管理器304将对软件的引用添加到与软件被添加到的软件包(例如,用于特定物理机架版本/实现方式的软件的集合)相关联的清单文件。例如,包管理器304可以向软件的清单文件添加新的条目,和/或可以用软件的新版本替换在清单文件中标识的软件的先前版本。软件的测试可以通过管理员将软件安装在测试物理机架上,并且验证软件是否按预期安装并且不会干扰测试物理机架的运行(例如,不会造成错误、不会与我们的软件或硬件冲突等)来完成。在测试软件期间,示例包管理器304收集依赖性信息(例如,关于安装软件可能需要什么软件组件的信息)。示例包管理器304将依赖性信息存储在与软件被添加到的软件包相关联的清单文件中。例如,示例包管理器304可以接收标识软件依赖性的用户输入,可以接收标识软件依赖性的输入文件,可以监视软件安装以通过编程方式确定软件依赖性等。The example package manager 304 receives software from the example software receiver 302 , coordinates testing of the software, and adds the software to the example repository 116 after testing. When software is added to the example repository 116, the example package manager 304 adds a reference to the software to the package associated with the software to which it was added (e.g., a collection of software for a particular physical chassis version/implementation) Linked manifest file. For example, package manager 304 may add new entries to the software's manifest file, and/or may replace a previous version of the software identified in the manifest file with a new version of the software. Testing of software can be done by an administrator installing the software on a test physical rack and verifying that the software installs as expected and does not interfere with the operation of the test physical rack (e.g., does not cause errors, does not interfere with our software or hardware) conflicts, etc.) to complete. During testing of software, the example package manager 304 collects dependency information (eg, information about what software components may be required to install the software). The example package manager 304 stores dependency information in a manifest file associated with the software package to which the software is added. For example, the example package manager 304 may receive user input identifying software dependencies, may receive input files identifying software dependencies, may monitor software installations to programmatically determine software dependencies, and the like.
示例储存库接口306与示例储存库116接口。例如,储存库接口306可以是示例软件管理器114的数据库接口。可选地,储存库接口306可以是任何其他类型的接口,其辅助示例包管理器304和/或示例请求处理器308存储和/或被检索来自示例储存库116的清单文件和/或软件。The example repository interface 306 interfaces with the example repository 116 . For example, repository interface 306 may be a database interface of example software manager 114 . Alternatively, repository interface 306 may be any other type of interface that assists example package manager 304 and/or example request handler 308 to store and/or be retrieved manifest files and/or software from example repository 116 .
示例请求处理器308从图1A的示例虚拟成像设备112和/或图1B的示例客户端118处的示例物理机架102接收对软件镜像和/或更新的软件包的请求。响应于该请求,示例请求处理器308检索所请求的信息。例如,请求处理器308可以检索清单文件并且将清单文件发送到请求源(例如,示例虚拟成像设备112和/或示例物理机架102),以允许请求源确定清单文件是否标识与物理机架102相关联的软件,该软件将要在物理机架102上安装。例如,清单文件可以标识SKU,该SKU针对与物理机架102相关联的SKU被检查。当请求源指示清单文件标识期望的软件时,请求处理器308可以从示例储存库116检索软件(例如,软件镜像、软件包等),并且将软件传输到请求源。The example request handler 308 receives a request for a software image and/or updated software package from the example virtual imaging device 112 of FIG. 1A and/or the example physical rack 102 at the example client 118 of FIG. IB. In response to the request, the example request handler 308 retrieves the requested information. For example, the request processor 308 may retrieve the manifest file and send the manifest file to the requesting source (e.g., the example virtual imaging device 112 and/or the example physical rack 102) to allow the requesting source to determine whether the manifest file identifies a physical rack 102 Associated software that is to be installed on the physical rack 102. For example, the manifest file may identify SKUs that are checked against SKUs associated with physical racks 102 . When the requesting source indicates that the manifest file identifies desired software, request handler 308 may retrieve the software (eg, software image, software package, etc.) from example repository 116 and transmit the software to the requesting source.
结合图5描述示出用于实现图1A、1B和/或3的示例软件管理器114的示例指令的流程图。A flowchart illustrating example instructions for implementing the example software manager 114 of FIGS. 1A , 1B, and/or 3 is described in connection with FIG. 5 .
虽然实现图1A和/或1B的软件管理器114的示例方式在图3中示出,但是图3中所示的一个或更多个元件、过程和/或设备可以被组合、分割、重新安排、省略、消除和/或以任何其他方式实现。此外,图3的示例软件接收器302、示例包管理器304、示例储存库接口306、示例请求处理器308和/或更一般地示例软件管理器114,可以由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,图3的示例软件接收器302、示例包管理器304、示例储存库接口306、示例请求处理器308和/或更一般地示例软件管理器114中的任一个,可以由一个或更多个模拟或数字电路、逻辑电路、一个或更多可编程处理器、一个或更多专用集成电路(ASIC)、一个或更多可编程逻辑器件(PLD)和/或一个或更多现场可编程逻辑器件(FPLD)来实现。当读取本专利的任何装置或系统权利要求以覆盖纯软件和/或固件实现方式时,图3的示例软件接收器302、示例包管理器304、示例储存库接口306、示例请求处理器308和/或更一般地示例软件管理器114中的至少一个,在此明确地定义为包括存储软件和/或固件的有形计算机可读存储设备或存储盘,诸如存储器、数字多功能盘(DVD)、光盘(CD)、蓝光盘等。另外,图1A和/或1B的示例软件管理器114可以包括除图3中所示之外的或代替其的一个或更多个元件、过程和/或设备,和/或可以包括任何或全部所示元件、过程和设备中的不止一个。Although an example manner of implementing the software manager 114 of FIGS. 1A and/or 1B is shown in FIG. 3 , one or more elements, processes and/or devices shown in FIG. 3 may be combined, divided, rearranged , omitted, eliminated and/or implemented in any other way. Additionally, the example software receiver 302, example package manager 304, example repository interface 306, example request handler 308, and/or more generally example software manager 114 of FIG. 3 may be implemented by hardware, software, firmware, and/or Any combination of hardware, software and/or firmware. Thus, for example, any of the example software receiver 302, the example package manager 304, the example repository interface 306, the example request handler 308, and/or more generally the example software manager 114 of FIG. more analog or digital circuits, logic circuits, one or more programmable processors, one or more application-specific integrated circuits (ASICs), one or more programmable logic devices (PLDs), and/or one or more field Programmable logic device (FPLD) to achieve. When reading any apparatus or system claims of this patent to cover pure software and/or firmware implementations, the example software receiver 302, example package manager 304, example repository interface 306, example request handler 308 of FIG. and/or more generally exemplifying at least one of software managers 114, expressly defined herein to include a tangible computer-readable storage device or disk, such as a memory, a digital versatile disk (DVD), that stores software and/or firmware , Compact Disc (CD), Blu-ray Disc, etc. Additionally, the example software manager 114 of FIGS. 1A and/or 1B may include one or more elements, processes, and/or devices in addition to or instead of those shown in FIG. 3 , and/or may include any or all More than one of the elements, processes and devices shown is shown.
图4是图2的示例物理机架202的示例VRM 225中的LCM 228的示例实现方式的框图(例如,部署在示例客户端118处的物理机架102)。示例LCM 228包括示例包管理器402、示例生命周期储存库404、示例用户界面406、示例依赖性分析器408、示例容量分析器410以及示例安装协调器412。4 is a block diagram of an example implementation of the LCM 228 in the example VRM 225 of the example physical rack 202 of FIG. 2 (eg, the physical rack 102 deployed at the example client 118). The example LCM 228 includes an example package manager 402 , an example lifecycle repository 404 , an example user interface 406 , an example dependency analyzer 408 , an example capacity analyzer 410 , and an example installation coordinator 412 .
示例包管理器402与图1B的示例虚拟系统解决方案提供商110的示例性软件管理器114相接口,以接收清单文件和待部署在示例物理机架202和/或部署在集群中的其他物理机架202处的软件。示例包管理器402周期性地轮询示例软件管理器114,以确定是否存在要被分析的更新的清单文件以适用于示例物理机架202。可选地,当新的清单文件可用时,包管理器402可以接收通知(例如,如果包管理器402已经向虚拟系统解决方案提供商110注册以接收这样的通知)。当包管理器402接收到新的清单时,包管理器402确定清单是否适用于物理机架,并且如果是的话,示例包管理器402通知示例用户界面406已经接收到新的清单。如果示例用户界面406通知包管理器402管理员已经批准/安排了软件包的下载,则示例包管理器402检索由示例清单文件标识的软件,并且将该软件与清单文件一起存储在示例生命周期储存库中。The example package manager 402 interfaces with the example software manager 114 of the example virtual system solution provider 110 of FIG. Software at rack 202. The example package manager 402 periodically polls the example software manager 114 to determine if there is an updated manifest file to be analyzed for the example physical rack 202 . Optionally, package manager 402 may receive notifications when new manifest files are available (eg, if package manager 402 has registered with virtual system solution provider 110 to receive such notifications). When package manager 402 receives a new manifest, package manager 402 determines whether the manifest applies to the physical rack, and if so, example package manager 402 notifies example user interface 406 that the new manifest has been received. If the example user interface 406 notifies the package manager 402 that the administrator has approved/scheduled the download of the software package, the example package manager 402 retrieves the software identified by the example manifest file and stores the software along with the manifest file in the example lifecycle in the repository.
所示示例的生命周期储存库404存储经由示例包管理器402从示例虚拟系统解决方案提供商110接收的清单文件和软件。示例生命周期储存库404是软件数据库。可选地,生命周期储存库404可以通过任何类型的文件和/或数据存储来实现,诸如,例如网络附接的存储、硬盘驱动器、共享网络驱动器、文件、文件夹等。The illustrated example lifecycle repository 404 stores manifest files and software received from the example virtual system solution provider 110 via the example package manager 402 . An example lifecycle repository 404 is a software database. Alternatively, lifecycle repository 404 may be implemented by any type of file and/or data storage, such as, for example, network-attached storage, hard drives, shared network drives, files, folders, and the like.
图4的示例用户界面406向物理机架202的管理员提供通知并接收来自管理员的指令。例如,当示例包管理器402通知示例用户界面406已经接收到新的清单/软件包时,示例用户界面406向管理员呈现通知并且请求关于管理员是否想要下载软件包和/或安排软件包的安装的管理员输入。当示例用户界面406从管理员接收到下载软件包的指令时,示例用户界面406通知示例包管理器406。当示例用户界面406从管理员接收到安排软件包的安装的指令时,示例用户界面406通知示例依赖性分析器408、示例容量分析器410和/或示例安装协调器412。示例用户界面406另外呈现由示例依赖性分析器408、示例容量分析器410和/或示例安装协调器412生成的任何错误通知。The example user interface 406 of FIG. 4 provides notifications to and receives instructions from an administrator of the physical rack 202 . For example, when the example package manager 402 notifies the example user interface 406 that a new manifest/package has been received, the example user interface 406 presents a notification to the administrator and requests information on whether the administrator wants to download the package and/or schedule the package Installed administrator input. When the example user interface 406 receives an instruction from an administrator to download a software package, the example user interface 406 notifies the example package manager 406 . When the example user interface 406 receives an instruction from an administrator to schedule installation of a software package, the example user interface 406 notifies the example dependency analyzer 408 , the example capacity analyzer 410 , and/or the example installation coordinator 412 . The example user interface 406 additionally presents any error notifications generated by the example dependency analyzer 408 , the example capacity analyzer 410 , and/or the example installation coordinator 412 .
所示示例的依赖性分析器408从示例用户界面406接收管理员已请求安装软件包的通知。响应于该通知,示例依赖性分析器408通过分析清单文件来确定软件包的依赖性要求,检查依赖性要求与安装在物理机架202上的硬件和软件组件的当前状态,并且通知安装协调器412由软件包的依赖性要求期望和/或需要的软件安装的顺序。例如,依赖性分析器408可以确定驱动程序的版本3.0要求版本2.0当前被安装,并且在确定版本1.0当前被安装之后,将版本2.0添加到安装安排。在另一个示例中,清单文件可以指示网页服务器更新需要同样在清单文件中标识的数据库更新。在这种情况下,示例依赖性分析器408将通知示例安装协调器412,在该示例中,应该在更新网页服务器之前安排数据库更新。Dependency analyzer 408 of the illustrated example receives notification from example user interface 406 that an administrator has requested installation of a software package. In response to the notification, the example dependency analyzer 408 determines the dependency requirements of the software package by analyzing the manifest file, checks the dependency requirements against the current state of the hardware and software components installed on the physical rack 202, and notifies the installation coordinator 412 The order in which the software is installed is desired and/or required by a package dependency. For example, dependency analyzer 408 may determine that version 3.0 of a driver requires version 2.0 to be currently installed, and after determining that version 1.0 is currently installed, add version 2.0 to the installation schedule. In another example, the manifest file may indicate that the web server update requires a database update also identified in the manifest file. In this case, the example dependency analyzer 408 will notify the example installation coordinator 412 that, in this example, a database update should be scheduled prior to updating the web server.
所示示例的容量分析器410从示例用户界面406接收管理员已请求安装软件包的通知。响应于该通知,示例容量分析器410从示例生命周期储存库404中检索该软件包的清单文件。示例容量分析器410确定示例物理机架202(和可能被集群的其他物理机架202)的硬件和/或软件计算资源将受到软件包安装的影响。例如,容量分析器410确定哪些硬件和/或软件组件将需要重新启动以便执行软件包的安装。容量分析器410将该计算资源影响与示例物理机架202(和物理机架202的集群)的可用计算资源以及示例物理机架202的操作要求(例如,指示所需计算资源可用性和/或冗余的服务等级协议)相比较。示例容量分析器410确定是否有足够的计算资源来执行软件安装而不干扰操作要求。示例容量分析器410通过确定受影响的计算资源(例如,确定已经被安排用于更新的工作负载域)来确定可用的计算资源,并且查询与操作环境相关联的应用程序接口(API)(例如,查询VMware服务器)。例如,容量分析器410可以确定在示例物理机架202中安装有两个ToR交换机210、212,并且因此当软件安装需要交换机重启以更新交换机时,ToR交换机210、212中的一个可以重启一次而不影响物理机架202的性能。可选地,容量分析器410可以确定分配给特定工作负载域(或任何其他类型的计算资源集群)的所有处理资源正在使用中(例如,工作负载当前正在所有计算资源上执行,使得没有计算资源可以暂时停用以用于更新)。在这种情况下,示例容量分析器410将分配(或尝试分配)一个或更多额外的计算资源(例如,将另一个服务器添加到工作负载域),以便当计算资源被更新时,执行工作负载可以从工作负载域中的计算资源(例如,一次一个)暂时迁移到一个或更多附加计算资源上。例如,在工作负载从计算资源中的一个迁移之后,计算资源可以被移动到维护模式、更新、重启、返回到操作模式。因此,除了分析用于安装软件包的容量之外,示例容量分析器410在需要时辅助容量的增加。容量分析器410将关于容量安排的信息传送给示例安装协调器412,以在安排安装时使用(例如,用于向安装协调器412通知可在安装期间使用的附加计算资源的可用性)。The capacity analyzer 410 of the illustrated example receives a notification from the example user interface 406 that an administrator has requested that a software package be installed. In response to the notification, the example capacity analyzer 410 retrieves the package's manifest file from the example lifecycle repository 404 . The example capacity analyzer 410 determines that the hardware and/or software computing resources of the example physical rack 202 (and possibly other physical racks 202 that are clustered) will be affected by software package installation. For example, capacity analyzer 410 determines which hardware and/or software components will need to be rebooted in order to perform the installation of a software package. Capacity analyzer 410 relates the computing resource impact to the available computing resources of the example physical rack 202 (and clusters of physical racks 202) and the operational requirements of the example physical rack 202 (e.g., indicating required computing resource availability and/or redundancy). Other Service Level Agreements) for comparison. The example capacity analyzer 410 determines whether there are sufficient computing resources to perform software installation without interfering with operational requirements. The example capacity analyzer 410 determines available computing resources by determining affected computing resources (e.g., determining workload domains that have been scheduled for updates), and querying application programming interfaces (APIs) associated with the operating environment (e.g., , query VMware server). For example, the capacity analyzer 410 may determine that there are two ToR switches 210, 212 installed in the example physical rack 202, and thus when a software installation requires a switch reboot to update the switch, one of the ToR switches 210, 212 may reboot once and not The performance of the physical rack 202 is not affected. Optionally, capacity analyzer 410 may determine that all processing resources assigned to a particular workload domain (or any other type of computing resource cluster) are in use (e.g., the workload is currently executing on all computing resources such that no computing resources can be temporarily disabled for updates). In this case, the example capacity analyzer 410 will allocate (or attempt to allocate) one or more additional computing resources (e.g., add another server to the workload domain) so that when the computing resources are updated, the work Workloads may be temporarily migrated (eg, one at a time) from computing resources in a workload domain to one or more additional computing resources. For example, after a workload is migrated from one of the computing resources, the computing resource can be moved to maintenance mode, updated, restarted, returned to operational mode. Thus, in addition to analyzing the capacity for installing software packages, the example capacity analyzer 410 facilitates the addition of capacity when needed. Capacity analyzer 410 communicates information about capacity scheduling to example installation coordinator 412 for use in scheduling installations (eg, to notify installation coordinator 412 of the availability of additional computing resources that may be used during installation).
示例安装协调器412接收由示例依赖性分析器408和示例容量分析器410收集的信息,并且安排接收到的清单中标识的软件包的软件的安装。示例安装协调器412安排(或尝试安排)软件的安装,以满足依赖性要求并且避免中断物理机架202(和/或多个物理机架202)的操作。根据所示的示例,安装协调器412针对独立不可用性来安排设备(例如,安排冗余设备的不可用性,使得至少一个冗余设备始终可用)。此外,示例安装协调器412在安装期间安排虚拟机的临时移动/迁移。The example installation coordinator 412 receives the information collected by the example dependency analyzer 408 and the example capacity analyzer 410 and schedules the installation of the software for the software packages identified in the received manifest. The example installation coordinator 412 schedules (or attempts to schedule) the installation of software to satisfy dependency requirements and avoid disrupting the operation of the physical rack 202 (and/or multiple physical racks 202). According to the example shown, installation coordinator 412 schedules devices for independent unavailability (eg, schedules unavailability of redundant devices such that at least one redundant device is always available). Additionally, the example installation coordinator 412 arranges for temporary moves/migration of virtual machines during installation.
结合图6-8描述示出了用于实现图2和/或4的示例LCM 228的示例指令的流程图。A flowchart illustrating example instructions for implementing the example LCM 228 of FIGS. 2 and/or 4 is described in conjunction with FIGS. 6-8 .
尽管在图4中示出了实现图2的LCM 228(和/或示例LCM 230)的示例方式,图4中所示的一个或更多个元件、过程和/或设备可以被组合、分割、重新安排、省略、消除和/或以任何其他方式实现。此外,图4的示例包管理器402、示例生命周期储存库404、示例用户界面406、示例依赖性分析器408、示例容量分析器410、示例安装协调器412和/或更一般地示例LCM 228,可以由一个或更多个模拟或数字电路、逻辑电路、一个或更多可编程处理器、一个或更多专用集成电路(ASIC)、一个或更多可编程逻辑器件(PLD)和/或一个或更多现场可编程逻辑器件(FPLD)来实现。当读取本专利的任何装置或系统权利要求以覆盖纯粹的软件和/或固件实现方式时,图4的示例包管理器402、示例生命周期储存库404、示例用户界面406、示例依赖性分析器408、示例容量分析器410、示例安装协调器412和/或更一般地示例LCM 228中的至少一个,在此明确地定义为包括存储软件和/或固件的有形计算机可读存储设备或存储盘,诸如存储器、数字多功能盘(DVD)、光盘(CD)、蓝光盘等。此外,图2的示例LCM228可以包括除图4中所示之外的或代替其的一个或更多个元件、过程和/或设备,和/或可以包括任何或全部所示的元件、过程和/或设备中的不止一个。Although an example manner of implementing the LCM 228 (and/or the example LCM 230) of FIG. 2 is shown in FIG. 4, one or more elements, processes, and/or devices shown in FIG. rearranged, omitted, eliminated and/or effected in any other way. Additionally, the example package manager 402, example lifecycle repository 404, example user interface 406, example dependency analyzer 408, example capacity analyzer 410, example installation coordinator 412, and/or more generally the example LCM 228 of FIG. , which may consist of one or more analog or digital circuits, logic circuits, one or more programmable processors, one or more application-specific integrated circuits (ASICs), one or more programmable logic devices (PLDs), and/or One or more field programmable logic devices (FPLD) to achieve. When reading any apparatus or system claims of this patent to cover pure software and/or firmware implementations, the example package manager 402, example lifecycle repository 404, example user interface 406, example dependency analysis of FIG. at least one of an example capacity analyzer 408, an example capacity analyzer 410, an example installation coordinator 412, and/or more generally an example LCM 228, expressly defined herein to include a tangible computer-readable storage device or storage that stores software and/or firmware discs, such as memory, digital versatile discs (DVDs), compact discs (CDs), Blu-ray discs, and the like. Additionally, the example LCM 228 of FIG. 2 may include one or more elements, processes, and/or devices in addition to or instead of those shown in FIG. 4, and/or may include any or all of the elements, processes, and /or more than one of the devices.
图5中示出了表示用于实现图1A、1B和/或3的示例软件管理器114的示例机器可读指令的流程图。在该示例中,机器可读指令包括由处理器(诸如下面结合图5讨论的示例处理器平台900中示出的处理器912)执行的程序。该程序可以体现为存储在有形计算机可读存储介质(诸如CD-ROM、软盘、硬盘驱动器、数字多功能盘(DVD)、蓝光盘或与处理器912相关联的存储器)上的软件中,但是整个程序和/或其部分可选地可由除了处理器912之外的设备来执行和/或体现为固件或专用硬件。此外,尽管参照图5所示的流程图描述了示例程序,可选地可以使用实现示例软件管理器114的许多其他方法。例如,可以改变框的执行顺序和/或可以改变、消除或组合所描述的一些框。A flowchart representative of example machine-readable instructions for implementing the example software manager 114 of FIGS. 1A , 1B and/or 3 is shown in FIG. 5 . In this example, the machine readable instructions comprise a program executed by a processor, such as the processor 912 shown in the example processor platform 900 discussed below in connection with FIG. 5 . The program may be embodied in software stored on a tangible computer-readable storage medium, such as a CD-ROM, floppy disk, hard drive, digital versatile disk (DVD), Blu-ray Disc, or memory associated with the processor 912, but The entire program and/or portions thereof may optionally be executed by a device other than the processor 912 and/or embodied as firmware or dedicated hardware. Furthermore, although the example program is described with reference to the flowchart shown in FIG. 5, many other methods of implementing the example software manager 114 could alternatively be used. For example, the order of execution of the blocks may be changed and/or some of the blocks described may be changed, eliminated, or combined.
如上所述,图5的示例过程可以使用存储在有形计算机可读存储介质(诸如硬盘驱动器、闪存、只读存储器(ROM)、光盘(CD)、数字多功能盘(DVD)、高速缓存、随机存取存储器(RAM))和/或任何其他存储设备或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓冲和/或高速缓存信息)的存储盘)上的编码指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语有形计算机可读存储介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号以及排除传输介质。如本文所使用的,“有形计算机可读存储介质”和“有形机器可读存储介质”可互换使用。附加地或可选地,可以使用存储在非暂时性计算机和/或机器可读介质(例如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器)和/或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓冲和/或高速缓存信息)的存储盘上的编码指令(例如,计算机和/或机器可读指令)来实现图5的示例过程。As noted above, the example process of FIG. 5 may use data stored on a tangible computer-readable storage medium, such as a hard access memory (RAM)) and/or any other storage device or disk in which information is stored for any duration (e.g. for an extended period of time, permanently, transiently, temporarily buffering and/or caching information) coded instructions (e.g., computer and/or machine-readable instructions). As used herein, the term tangible computer readable storage medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, "tangible computer readable storage medium" and "tangible machine readable storage medium" are used interchangeably. Additionally or alternatively, storage on a non-transitory computer and/or machine-readable medium (e.g., hard drive, flash memory, read-only memory, compact disk, digital versatile disk, cache memory, random access memory) and and/or encoded instructions (e.g., computer and/or machine-readable instructions) on a storage disk in which information is stored for any duration (e.g., for an extended period of time, permanently, transiently, temporarily buffering and/or caching information) ) to implement the example process of Figure 5.
如本文所使用的,术语非暂时性计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号以及排除传输介质。如本文所使用的,当短语“至少”被用作权利要求的前序中的过渡词时,其是开放式的,与术语“包括”是开放式的方式相同。As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable storage device and/or storage disk and to exclude propagating signals and to exclude transmission media. As used herein, the phrase "at least" when used as a transition word in the preamble of a claim is open-ended in the same way that the term "comprises" is open-ended.
当示例软件管理器114的示例软件接收器302从硬件/软件供应商接收软件时(框502),图5的程序开始。例如,软件可以包括应用程序、驱动程序、操作系统、配置文件等。软件可以在来自硬件/软件供应商的通知中被接收,可以响应于对软件供应商的轮询由示例软件接收器302接收等。The process of FIG. 5 begins when the example software receiver 302 of the example software manager 114 receives software from a hardware/software vendor (block 502). For example, software may include applications, drivers, operating systems, configuration files, and the like. Software may be received in a notification from a hardware/software vendor, may be received by the example software receiver 302 in response to a poll of the software vendor, and the like.
示例软件接收器302然后呈现将新软件包括在适当的包中的请求(框504)。例如,软件接收器302可以将项目添加到请求批准将软件添加到包的任务列表,可以在图形用户界面上呈现通知等。示例软件接收器302确定将软件添加到包的指令是否已被接收(框506)。当已经接收到不将软件添加到包的指令时,示例软件接收器302丢弃接收到的软件(框508)。The example software receiver 302 then presents a request to include the new software in the appropriate package (block 504). For example, software receiver 302 may add an item to a task list requesting approval to add software to a package, may present a notification on a graphical user interface, and the like. The example software receiver 302 determines whether an instruction to add software to the package has been received (block 506). When an instruction not to add software to the package has been received, the example software receiver 302 discards the received software (block 508).
当已经接收到将软件添加到包的指令时(框506),示例包管理器304存储用于包的软件(例如,将软件存储在示例储存库116中)(框510)。示例包管理器然后标记用于测试的软件(框512)。例如,管理员可以在示例物理机架102上和/或在示例虚拟服务器机架206中安装软件,以验证软件如预期那样操作,并且不干扰其他操作等。示例包管理器304然后确定在测试之后是否已经接收到继续将软件添加到包的指令(框514)。当已经接收到不将软件添加到包的指令时(例如,因为软件的测试标识出问题),示例包管理器304丢弃软件(框508)。When instructions to add software to the package have been received (block 506), the example package manager 304 stores the software for the package (eg, stores the software in the example repository 116) (block 510). The example package manager then marks the software for testing (block 512). For example, an administrator may install software on the example physical rack 102 and/or in the example virtual server rack 206 to verify that the software operates as expected, does not interfere with other operations, etc. The example package manager 304 then determines whether an instruction to continue adding software to the package has been received after the test (block 514). When an instruction not to add the software to the package has been received (eg, because testing of the software identified a problem), the example package manager 304 discards the software (block 508 ).
当示例包管理器304接收到继续将软件添加到包的指令时(框514),示例包管理器304捕获示例软件的依赖性(框516)。依赖性可以通过跟踪软件的测试以跟踪在测试期间被访问的依赖性,通过接收标识软件所需的依赖性的依赖性记录(例如,文件),通过接收标识依赖性的用户输入等来捕获依赖性。根据所示示例,通过将依赖性记录在清单文件中来捕获,该清单文件要采用包括软件的包被分配。可选地,依赖性可以以任何其他方式被捕获(例如,存储在被访问以构建清单的数据库中)。When the example package manager 304 receives instructions to continue adding software to the package (block 514), the example package manager 304 captures the dependencies of the example software (block 516). Dependencies can be captured by tracking testing of the software to track which dependencies are accessed during testing, by receiving dependency records (e.g., files) identifying dependencies required by the software, by receiving user input identifying dependencies, etc. sex. According to the example shown, the dependency is captured by recording it in a manifest file to be distributed with the package comprising the software. Alternatively, dependencies may be captured in any other way (eg, stored in a database accessed to build the manifest).
示例储存库接口306公布利用依赖性信息生成的清单文件(框518)。根据所示示例,储存库接口306将清单(例如,和清单中标识的软件)存储在图1的示例储存库116中,以使请求处理器308能够服务请求。例如,可以将清单标识为最当前的清单(例如,替换先前最当前的清单),使得由示例请求处理器308接收到的软件请求通过传输最当前清单和/或软件来服务。The example repository interface 306 publishes the manifest file generated using the dependency information (block 518). According to the example shown, repository interface 306 stores a manifest (eg, and the software identified in the manifest) in example repository 116 of FIG. 1 to enable request handler 308 to service the request. For example, the manifest may be identified as the most current manifest (eg, replacing a previous most current manifest), such that software requests received by the example request handler 308 are serviced by transmitting the most current manifest and/or software.
根据所示示例,当与虚拟服务器机架相关联的软件包被更新时,示例请求处理器308更新由图1的示例虚拟成像设备112使用的虚拟服务器机架镜像,以确保虚拟成像设备112在部署虚拟服务器机架时将使用最新的软件(框520)。According to the illustrated example, the example request handler 308 updates the virtual server rack image used by the example virtual imaging device 112 of FIG. The latest software will be used when deploying the virtual server rack (block 520).
所示示例的请求处理器308确定是否接收到包加速指令(框522)。包加速指令指示应该比下一个计划的软件发布更快地将软件包部署到虚拟服务器机架。例如,当现有软件包包含由最当前软件包打补丁的漏洞时,可能会加快包的分配。包加速指令可以从用户接收,可以在由示例软件接收器302接收的软件的属性中标识等。The request processor 308 of the illustrated example determines whether a packet acceleration instruction has been received (block 522). The package acceleration directive indicates that the software package should be deployed to the virtual server rack faster than the next planned software release. For example, distribution of packages may be expedited when existing packages contain vulnerabilities that are patched by the most current package. Package acceleration instructions may be received from a user, may be identified in properties of software received by the example software receiver 302, and the like.
当示例请求处理器308确定没有接收到包加速指令时(框522),图5的程序终止。当示例请求处理器308确定接收到包加速指令时,示例请求处理器308和/或示例储存库接口306公布用于加速发布的包(框524)。根据所示示例,示例请求处理器308通知示例储存库接口306在示例储存库116中存储包被安排加速发布的指示(例如,标记)。因此,当示例请求处理器308接收到来自虚拟服务器机架的请求(例如,软件更新请求)时,示例请求处理器308将检测该标记并通知请求的虚拟服务器机架加速的包是可用的(例如,用于建议虚拟服务器机架应该部署包,即使不是计划发布的时间)。然后图5的程序终止。When the example request processor 308 determines that a packet acceleration instruction has not been received (block 522), the routine of FIG. 5 terminates. When the example request processor 308 determines that a package acceleration instruction has been received, the example request processor 308 and/or the example repository interface 306 publishes the package for accelerated publication (block 524 ). According to the illustrated example, the example request handler 308 notifies the example repository interface 306 to store in the example repository 116 an indication (eg, a flag) that the package is scheduled for accelerated publication. Thus, when the example request handler 308 receives a request from a virtual server rack (e.g., a software update request), the example request handler 308 will detect this flag and notify the requesting virtual server rack that an accelerated package is available ( For example, used to suggest that a rack of virtual servers should deploy the package, even if it is not when the release is scheduled). Then the program of Fig. 5 is terminated.
图6-8示出了表示用于实现图2和/或图4的示例生命周期管理器228的示例机器可读指令的流程图。在这些示例中,机器可读指令包括由处理器(诸如下面结合图6-8讨论的示例处理器平台1000中示出的处理器1012)执行的一个或更多程序。该程序可以体现为存储在有形计算机可读存储介质(诸如CD-ROM、软盘、硬盘驱动器、数字多功能盘(DVD)、蓝光盘或与处理器1012相关联的存储器)上的软件,但是整个程序和/或其部分可选地可由除了处理器1012之外的设备执行和/或体现为固件或专用硬件。另外,尽管参照图6-8所示的流程图描述了示例程序,可选地可以使用实现示例生命周期管理器228的许多其他方法。例如,可以改变框的执行顺序和/或可以改变、消除或组合所描述的一些框。6-8 illustrate flowcharts representative of example machine-readable instructions for implementing the example lifecycle manager 228 of FIGS. 2 and/or 4 . In these examples, the machine-readable instructions comprise one or more programs executed by a processor, such as processor 1012 shown in the example processor platform 1000 discussed below in connection with FIGS. 6-8 . The program may be embodied as software stored on a tangible computer-readable storage medium such as a CD-ROM, floppy disk, hard drive, digital versatile disk (DVD), Blu-ray disk, or memory associated with the processor 1012, but the entire Programs and/or portions thereof may optionally be executed by devices other than processor 1012 and/or embodied as firmware or dedicated hardware. Additionally, although the example programs are described with reference to the flowcharts shown in FIGS. 6-8 , many other methods of implementing the example lifecycle manager 228 may alternatively be used. For example, the order of execution of the blocks may be changed and/or some of the blocks described may be changed, eliminated, or combined.
如上所述,图6-8的示例过程可以使用存储在有形计算机可读存储介质(例如硬盘驱动器、闪存、只读存储器(ROM)、压缩盘(CD)、数字多功能盘(DVD)、高速缓存、随机存取存储器(RAM)和/或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓存和/或高速缓存信息)的任何其他存储设备或存储盘)上的编码指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语有形计算机可读存储介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号以及排除传输介质。如本文所使用的,“有形计算机可读存储介质”和“有形机器可读存储介质”可互换使用。附加地或可选地,可以使用存储在非暂时性计算机和/或机器可读介质(例如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓存和/或高速缓存信息)的任何其他存储设备或存储盘)上的编码指令(例如,计算机和/或机器可读指令)来实现图6-8的示例过程。As noted above, the example processes of FIGS. Cache, Random Access Memory (RAM) and/or any other storage device or storage disk in which information is stored for any duration (e.g. for an extended period of time, permanently, for a short period of time, temporarily caches and/or caches information) ) coded instructions (e.g., computer and/or machine-readable instructions). As used herein, the term tangible computer-readable storage medium is expressly defined to include any type of computer-readable storage device and/or storage disk, and to exclude propagating signals and to exclude transmission media. As used herein, "tangible computer readable storage medium" and "tangible machine readable storage medium" are used interchangeably. Additionally or alternatively, storage on a non-transitory computer and/or machine-readable medium (e.g., hard drive, flash memory, read-only memory, compact disk, digital versatile disk, cache memory, random access memory, and/or or any other storage device or disk in which information is stored for any duration (e.g. for an extended period of time, permanently, for a brief period of time, temporarily cached and/or cached information) (for example, a computer and/or or machine readable instructions) to implement the example processes of FIGS. 6-8.
当示例包管理器402确定接收到的清单是否是新的时(框602),图6的过程开始。示例包管理器402可以接收请求中的包,以向示例软件管理器112的示例请求处理器308发送对新包的请求,可以从示例请求处理器308发送到示例包管理器402的通知中接收清单等。示例包管理器402可以确定清单是否是新的(例如,先前未处理),但是分析存储在生命周期管理器中的信息(例如,分析经处理的包的列表、分析版本号以确定新接收到的清单中标识的版本号是否大于最近安装的包的版本号等)。当示例包管理器402确定清单不是新的时,包管理器402丢弃清单(框604)。The process of FIG. 6 begins when the example package manager 402 determines whether the received manifest is new (block 602). The example package manager 402 may receive a package in a request to send a request for a new package to the example request handler 308 of the example software manager 112, which may be received from a notification sent by the example request handler 308 to the example package manager 402 list etc. The example package manager 402 may determine if the manifest is new (e.g., not previously processed), but analyze information stored in the lifecycle manager (e.g., analyze a list of processed packages, analyze version numbers to determine newly received if the version number identified in the manifest's manifest is greater than the version number of the most recently installed package, etc.). When the example package manager 402 determines that the manifest is not new, the package manager 402 discards the manifest (block 604).
当示例包管理器402确定清单是新的时(框602),示例包管理器402确定清单是否撤销先前接收到的清单(框606)。例如,清单可以指示先前接收到的清单已经被撤销,并且应当被阻止安装和/或应当卸载在撤销的清单中标识的软件,而不是标识新的和/或更新的软件(框608)。When the example package manager 402 determines that the manifest is new (block 602), the example package manager 402 determines whether the manifest revokes a previously received manifest (block 606). For example, the manifest may indicate that a previously received manifest has been revoked and should be prevented from being installed and/or that software identified in the revoked manifest should be uninstalled instead of identifying new and/or updated software (block 608).
当示例包管理器402确定清单未撤销先前清单时(框606),示例包管理器402将虚拟服务器机架206的标识信息与包含在清单中的标识信息进行比较,以确定清单是否标识虚拟服务器机架206(框610)。例如,使用不同软件的不同迭代的虚拟服务器机架可以被分配。当清单与虚拟服务器机架206不匹配时,示例包管理器402丢弃示例清单(框606)。When the example package manager 402 determines that the manifest does not revoke the previous manifest (block 606), the example package manager 402 compares the identification information of the virtual server rack 206 with the identification information contained in the manifest to determine whether the manifest identifies a virtual server Rack 206 (block 610). For example, different iterations of virtual server racks using different software can be allocated. When the manifest does not match the virtual server rack 206, the example package manager 402 discards the example manifest (block 606).
当示例包管理器402确定清单与示例虚拟服务器机架206匹配时(框610),示例用户接口406通知虚拟服务器机架206的管理员已经接收到新的清单(框612)。例如,示例用户接口406可以向管理员发送电子消息、可以设置通知、可以将任务添加到任务列表等。示例用户接口406从管理员接收下载时间表(框614)。可选地,可以通过分析系统来自动确定下载时间表,以确定系统资源可用于下载在清单中标识的软件的时间,和/或可以在管理员被通知新的清单之前、之时和/或之后自动开始下载。利用该时间表(或自动地),示例包管理器402下载在清单中标识的软件组件(框616)。可以从示例软件管理器114、从软件分销商、从硬件制造商(例如,制造商可以分配硬件驱动器)等下载软件组件。示例包管理器402将软件包存储在示例生命周期储存库404中(框618)。然后图6的过程终止。When the example package manager 402 determines that the manifest matches the example virtual server rack 206 (block 610), the example user interface 406 notifies the administrator of the virtual server rack 206 that a new manifest has been received (block 612). For example, the example user interface 406 can send electronic messages to administrators, can set notifications, can add tasks to a task list, and the like. The example user interface 406 receives the download schedule from the administrator (block 614). Optionally, the download schedule may be determined automatically by analyzing the system to determine when system resources are available to download software identified in the manifest, and/or may be before, when and/or when the administrator is notified of the new manifest The download will then start automatically. Using this schedule (or automatically), the example package manager 402 downloads the software components identified in the manifest (block 616). Software components may be downloaded from the example software manager 114, from a software distributor, from a hardware manufacturer (eg, the manufacturer may distribute hardware drivers), or the like. The example package manager 402 stores the software package in the example lifecycle repository 404 (block 618). The process of Figure 6 then terminates.
图7是示出了可以被执行以实现示例生命周期管理器228来安排下载的软件(例如,由图6所示的过程下载的软件)的安装的示例机器可读指令的流程图。当示例用户接口406接收到将先前下载的软件包安装到示例生命周期储存库404的指令时(框702),图7的示例过程开始。示例安装协调器412检查下载的软件的有效性(框704)。有效性检查可以包括针对已知的有效值(例如,由软件的分销商发布的示例软件管理器114公开的已知值等)来验证签名、指纹、校验和、散列等。附加地或可选地,可以扫描软件以查找病毒、恶意软件、恶意行为等。附加地或可选地,可以通过分析在示例虚拟服务器机架206上操作的软件和在示例虚拟服务器机架206上安装的配置来检查软件与示例虚拟服务器机架206的兼容性(例如,在示例虚拟服务器机架206的管理员已经定制了由示例虚拟成像设备112实现的库存配置之外的示例虚拟服务器机架206。7 is a flow diagram illustrating example machine readable instructions that may be executed to implement the example lifecycle manager 228 to schedule installation of downloaded software (eg, downloaded by the process shown in FIG. 6 ). The example process of FIG. 7 begins when the example user interface 406 receives an instruction to install a previously downloaded software package into the example lifecycle repository 404 (block 702 ). The example installation coordinator 412 checks the validity of the downloaded software (block 704). Validity checks may include validating signatures, fingerprints, checksums, hashes, etc. against known valid values (eg, known values published by example software manager 114 issued by a distributor of the software, etc.). Additionally or alternatively, the software may be scanned for viruses, malware, malicious behavior, and the like. Additionally or alternatively, software compatibility with the example virtual server rack 206 may be checked by analyzing the software operating on the example virtual server rack 206 and the configuration installed on the example virtual server rack 206 (e.g., in An administrator of the example virtual server rack 206 has customized the example virtual server rack 206 outside of the stock configuration implemented by the example virtual imaging appliance 112 .
然后示例安装协调器412基于安装指令来确定将被影响的物理设备(框706)。包可以包括用于示例虚拟服务器机架206的物理机架202、204中包括的一个或更多个物理设备的软件。例如,包可以包括用于升级ToR交换机A,B 210、212、216、216、218的固件的软件。在这样的示例中,示例安装协调器412确定ToR交换机A,B 210、212、216、216、218上的软件的安装将需要重新启动这些交换机中的每一个。The example installation coordinator 412 then determines the physical devices to be affected based on the installation instructions (block 706). A package may include software for one or more physical devices included in the physical racks 202 , 204 of the example virtual server rack 206 . For example, the package may include software for upgrading the firmware of the ToR switches A, B 210, 212, 216, 216, 218. In such an example, the example installation coordinator 412 determines that the installation of the software on the ToR switches A, B 210, 212, 216, 216, 218 will require a reboot of each of these switches.
示例依赖性分析器408另外确定可以独立执行包中的哪个软件安装(框708)。当软件安装不依赖于另一个软件安装或不是作为安装一部分的进程时,则可以独立执行软件安装。示例依赖性分析器408还分析包中的软件以确定哪个软件安装依赖于其他软件安装或操作(框710)。例如,依赖性分析器408可以分析由示例软件管理器114生成的软件包清单文件中包括的依赖性信息。根据所示示例,依赖性分析器408表示来自框708和710在经排序的软件清单中的具有在经排序的清单中标识的依赖性的信息。The example dependency analyzer 408 additionally determines which software installations in the package can be performed independently (block 708). A software installation can be performed independently when it is not dependent on another software installation or a process that is not part of the installation. The example dependency analyzer 408 also analyzes the software in the package to determine which software installations are dependent on other software installations or operations (block 710). For example, dependency analyzer 408 may analyze dependency information included in a software package manifest file generated by example software manager 114 . According to the example shown, dependency analyzer 408 represents information in the ordered software inventory from blocks 708 and 710 with dependencies identified in the ordered inventory.
示例安装协调器412分析在框706-710中收集的信息,以生成安装时间表,以使软件安装在示例虚拟服务器机架206中(框712)。根据所示的示例,当那些安装不影响相同的物理设备时,安装协调器412并行地安排非依赖性安装的安装。安装协调器412另外安排软件组件的安装,以确保在安装需要依赖性的软件之前安装所需的依赖性。示例安装协调器412根据生成的时间表来执行软件的安装。可选地,示例安装协调器412可以安排其他组件来执行安装(例如,使用要在其上安装软件的物理设备的安装代理来安排软件安装)。The example installation coordinator 412 analyzes the information collected in blocks 706-710 to generate an installation schedule for software installation in the example virtual server rack 206 (block 712). According to the example shown, installation coordinator 412 schedules installations of non-dependent installations in parallel when those installations do not affect the same physical devices. The installation coordinator 412 additionally schedules the installation of software components to ensure that required dependencies are installed before software that requires them. The example installation coordinator 412 performs the installation of the software according to the generated schedule. Alternatively, the example installation coordinator 412 may arrange for other components to perform the installation (eg, arrange for the software installation using an installation agent for the physical device on which the software is to be installed).
图8是示出可以被执行以实现示例生命周期管理器228来安装下载的软件(例如,由图7中示出的示例过程安排的软件安装)的示例机器可读指令的流程图。当示例安装协调器412确定所请求的软件安装是否包括对无中断安装的请求(框802)时,图8的示例过程开始。例如,示例用户接口406可以接收执行无中断安装(例如,通过最小化完全不可用的资源来减少或消除对虚拟服务器机架206的用户的影响的安装)的用户请求。例如,可以通过在任何给定时间使得不会所有冗余资源不可用(例如,通过更新和重新启动一次ToR交换机A,B 210、212、216、218)来消除对用户的影响。尽管无中断安装减少了对用户的影响,但是安装过程可能需要更长时间,并且因此在所有情况下管理员可能都不想要(例如,当需要软件补丁来解决虚拟服务器机架206的漏洞或问题)。8 is a flow diagram illustrating example machine readable instructions that may be executed to implement the example lifecycle manager 228 to install downloaded software (eg, software installation scheduled by the example process shown in FIG. 7 ). The example process of FIG. 8 begins when the example installation coordinator 412 determines whether a requested software installation includes a request for a non-disruptive installation (block 802). For example, the example user interface 406 may receive a user request to perform a non-disruptive installation (eg, an installation that reduces or eliminates impact on users of the virtual server rack 206 by minimizing completely unavailable resources). For example, the impact on users can be eliminated by making not all redundant resources unavailable at any given time (eg, by updating and restarting ToR switches A, B 210, 212, 216, 218 once). Although non-disruptive installation reduces the impact on users, the installation process may take longer and thus may not be desired by administrators in all cases (for example, when a software patch is required to address a vulnerability or problem with a virtual server rack 206 ).
当不请求无中断关闭时(框802),控制进行到框816。When a hitless shutdown is not requested (block 802 ), control proceeds to block 816 .
当请求无中断关闭时(框802),示例安装协调器412尝试安排给物理设备以独立不可用(例如,使得在任何给定时间不会全部备用设备不可用)。示例容量分析器410然后确定用于执行分派给示例虚拟服务器机架206的一个或更多工作负载的计算资源需求(框806)。根据所示示例,容量分析器410通过分析与一个或更多工作负载相关联的一个或更多服务等级协议来确定一个或更多工作负载需求。附加地或可选地,容量分析器410可以执行对一个或更多工作负载需求的现场分析(例如,通过监视活动、峰值、平均值等资源利用率(例如,处理器利用率、存储器利用率、存储利用率等))。示例容量分析器410然后确定安装时间表是否会减少可用的计算资源,从而不能满足一个或更多工作负载的计算需求(框808)。示例容量分析器410考虑计算资源需求以及所需的服务等级协议要求,诸如所需的计算资源冗余(例如,所有处理资源包括冗余处理资源的要求)。When a non-disruptive shutdown is requested (block 802), the example installation coordinator 412 attempts to schedule physical devices to be independently unavailable (eg, so that not all standby devices are unavailable at any given time). The example capacity analyzer 410 then determines computing resource requirements for executing the one or more workloads assigned to the example virtual server rack 206 (block 806 ). According to the illustrated example, capacity analyzer 410 determines one or more workload requirements by analyzing one or more service level agreements associated with the one or more workloads. Additionally or alternatively, capacity analyzer 410 may perform on-site analysis of one or more workload demands (e.g., by monitoring active, peak, average, etc. resource utilization (e.g., processor utilization, memory utilization , storage utilization, etc.)). The example capacity analyzer 410 then determines whether the installation schedule would reduce the available computing resources to meet the computing needs of one or more workloads (block 808 ). The example capacity analyzer 410 considers computing resource requirements as well as required service level agreement requirements, such as required computing resource redundancy (eg, all processing resources including a requirement for redundant processing resources).
当没有足够的计算资源来根据时间表执行安装并满足一个或更多工作负载的计算资源需求时(框808),示例安装协调器412将附加计算资源添加到用于一个或更多工作负载的集群(框812)。例如,如果集群与8个物理计算资源224相关联,并且全部8个物理计算资源224需要满足在集群上执行一个或更多工作负载的需求,则不可能执行物理计算资源224的更新,即使一次只有一个计算资源将会脱机。相应地,安装协调器412临时添加另一个计算资源(例如,另一个物理计算资源224)。要被添加到集群的计算资源可以来自未使用的、空闲的、备用的等计算资源池,可以来自另一个集群,其包括比满足在集群中执行的一个或更多工作负载的需求所需的计算资源更多的计算资源。When there are not enough computing resources to perform the installation according to the schedule and meet the computing resource requirements of the one or more workloads (block 808), the example installation coordinator 412 adds additional computing resources to the Clustering (block 812). For example, if a cluster is associated with 8 physical computing resources 224, and all 8 physical computing resources 224 are required to satisfy the demands of executing one or more workloads on the cluster, it is not possible to perform an update of the physical computing resources 224 even once Only one computing resource will be offline. Accordingly, installation coordinator 412 temporarily adds another computing resource (eg, another physical computing resource 224). Computing resources to be added to a cluster may come from a pool of unused, idle, spare, etc. computing resources, may come from another cluster, which includes more than is required to satisfy the demands of one or more workloads executing in the cluster Computing resources More computing resources.
在确定存在足够的计算资源(框808)或增加额外的计算资源(框812)之后,示例安装协调器将虚拟计算元件从要更新的计算资源中移出(框814)。虚拟计算元件可被移动以在集群中可用的另一计算资源(例如,处理资源、存储资源、网络资源等)和/或已被添加到集群的另一计算资源上执行。After determining that sufficient computing resources exist (block 808 ) or adding additional computing resources (block 812 ), the example installation coordinator removes virtual computing elements from the computing resources to be updated (block 814 ). A virtual computing element may be moved to execute on another computing resource available in the cluster (eg, processing resources, storage resources, network resources, etc.) and/or another computing resource that has been added to the cluster.
在移动虚拟机资源(框814)或确定未请求无中断关闭(框802)之后,示例安装协调器412将软件包安装在当前选择的计算资源上(框816)。根据所示示例,安装包括任何所需的重新启动,以便准备软件用于执行。After moving the virtual machine resource (block 814) or determining that a hitless shutdown was not requested (block 802), the example installation coordinator 412 installs the software package on the currently selected computing resource (block 816). According to the example shown, the installation includes any reboots required to prepare the software for execution.
在计算资源被更新之后,在框814中如果虚拟计算资源被移出更新的物理计算资源,则示例安装协调器412将虚拟计算资源移回到更新的物理计算资源(框818)。After the computing resource is updated, if the virtual computing resource was moved out of the updated physical computing resource in block 814, the example installation coordinator 412 moves the virtual computing resource back to the updated physical computing resource (block 818).
示例安装协调器412确定是否有附加的物理计算资源要被更新(框820)。当有附加的计算资源被更新时,示例安装协调器412选择下一个物理计算资源(框822)并且控制返回到框814(如果请求无中断关闭)或框816(如果没有请求无中断关闭)。The example installation coordinator 412 determines whether there are additional physical computing resources to be updated (block 820). When additional computing resources are updated, the example installation coordinator 412 selects the next physical computing resource (block 822) and control returns to block 814 (if a hitless shutdown was requested) or block 816 (if a hitless shutdown was not requested).
当没有其他计算资源要更新时(框824),示例安装协调器412确定计算资源是否被添加到计算集群(例如,如果执行了框812)(框824)。当没有附加的计算资源被添加到集群时,图8的过程终止。当有附加的计算资源被添加到集群时,示例安装协调器412将所添加的计算资源返回到它们的先前状态(框826),并且图8的过程终止。例如,安装协调器412可以将计算资源移回到空闲状态、备用状态、包括过量计算资源的另一个集群等。When there are no other computing resources to update (block 824), the example installation coordinator 412 determines whether a computing resource is added to the computing cluster (eg, if block 812 was performed) (block 824). The process of Figure 8 terminates when no additional computing resources are added to the cluster. When additional computing resources are added to the cluster, the example installation coordinator 412 returns the added computing resources to their previous state (block 826), and the process of FIG. 8 terminates. For example, installation coordinator 412 may move computing resources back to an idle state, a standby state, another cluster including excess computing resources, or the like.
图9是能够执行图5的指令以实现图1A、图1B和/或图3的软件管理器114的示例处理器平台900的框图。处理器平台900可以是例如服务器、个人计算机、移动设备(例如,手机、智能电话、诸如iPadTM的平板电脑)、个人数字助理(PDA)、互联网设备、DVD播放器、CD播放器、数字录像机、蓝光播放器、游戏机、个人录像机、机顶盒或任何其他类型的计算设备。FIG. 9 is a block diagram of an example processor platform 900 capable of executing the instructions of FIG. 5 to implement the software manager 114 of FIGS. 1A , 1B and/or 3 . The processor platform 900 can be, for example, a server, a personal computer, a mobile device (e.g., a cell phone, a smart phone, a tablet computer such as an iPad ™ ), a personal digital assistant (PDA), an Internet appliance, a DVD player, a CD player, a digital video recorder , Blu-ray player, game console, personal video recorder, set-top box, or any other type of computing device.
所示示例的处理器平台900包括处理器912。所示示例的处理器912是硬件。例如,处理器912可以由来自任何期望的家族或制造商的一个或更多个集成电路、逻辑电路、微处理器或控制器来实现。示例处理器912包括示例软件接收器302、示例包管理器304、示例储存库接口306和示例请求处理器308。The processor platform 900 of the illustrated example includes a processor 912 . The processor 912 of the example shown is hardware. For example, processor 912 may be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. The example processor 912 includes an example software receiver 302 , an example package manager 304 , an example repository interface 306 , and an example request handler 308 .
所示示例的处理器912包括本地存储器913(例如,高速缓存)。所示示例的处理器912经由总线918与包括易失性存储器914和非易失性存储器916的主存储器进行通信。易失性存储器914可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器设备实现。非易失性存储器916可以由闪存和/或任何其他期望类型的存储器设备来实现。访问主存储器914、916由存储器控制器控制。The processor 912 of the illustrated example includes local memory 913 (eg, a cache). The processor 912 of the illustrated example communicates with main memory including volatile memory 914 and non-volatile memory 916 via a bus 918 . Volatile memory 914 may be implemented by synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS dynamic random access memory (RDRAM), and/or any other type of random access memory device. Non-volatile memory 916 may be implemented by flash memory and/or any other desired type of memory device. Access to main memory 914, 916 is controlled by a memory controller.
所示示例的处理器平台900还包括接口电路920。接口电路920可以由任何类型的接口标准来实现,诸如以太网接口、通用串行总线(USB)和/或PCI Express接口。The processor platform 900 of the illustrated example also includes interface circuitry 920 . Interface circuit 920 may be implemented by any type of interface standard, such as Ethernet interface, Universal Serial Bus (USB) and/or PCI Express interface.
在所示示例中,一个或更多个输入设备922连接到接口电路920。一个或更多个输入设备922允许用户将数据和命令输入到处理器1012中。一个或更多个输入设备可以由例如音频传感器、麦克风、照相机(定格画面或视频)、键盘、按钮、鼠标、触摸屏、跟踪板、跟踪球、等点和/或语音识别系统实现。In the example shown, one or more input devices 922 are connected to interface circuit 920 . One or more input devices 922 allow a user to enter data and commands into processor 1012 . The one or more input devices may be implemented by, for example, audio sensors, microphones, cameras (still frame or video), keyboards, buttons, mice, touch screens, trackpads, trackballs, etc., and/or voice recognition systems.
一个或更多个输出设备924也连接到所示示例的接口电路920。输出设备1024可以由例如显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器、阴极射线管显示器(CRT)、触摸屏、触觉输出设备、打印机和/或扬声器)来实现。所示示例的接口电路920因此通常包括图形驱动器卡、图形驱动器芯片或图形驱动器处理器。One or more output devices 924 are also connected to the interface circuit 920 of the example shown. Output device 1024 can be implemented by, for example, a display device such as a light emitting diode (LED), organic light emitting diode (OLED), liquid crystal display, cathode ray tube display (CRT), touch screen, tactile output device, printer, and/or speakers. The interface circuit 920 of the illustrated example thus typically includes a graphics driver card, a graphics driver chip, or a graphics driver processor.
所示示例的接口电路920还包括通信设备(诸如发射机、接收机、收发机、调制解调器和/或网络接口卡),以辅助经由网络926(例如,以太网连接、数字用户线路(DSL)、电话线路、同轴电缆、蜂窝电话系统等)与外围机器(例如,任何种类的计算设备)交换数据。The interface circuitry 920 of the illustrated example also includes communication devices, such as transmitters, receivers, transceivers, modems, and/or network interface cards, to facilitate communication via a network 926 (e.g., Ethernet connection, Digital Subscriber Line (DSL), telephone lines, coaxial cables, cellular telephone systems, etc.) exchange data with peripheral machines (eg, computing devices of any kind).
所示示例的处理器平台900还包括用于存储软件和/或数据的一个或更多个大容量存储设备928。这种大容量存储设备928的示例包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光盘驱动器、RAID系统和数字多功能盘(DVD)驱动器。The processor platform 900 of the illustrated example also includes one or more mass storage devices 928 for storing software and/or data. Examples of such mass storage devices 928 include floppy disk drives, hard disk drives, optical disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.
图5的编码指令932可以被存储在大容量存储设备928、易失性存储器914、非易失性存储器916中和/或可移除有形计算机可读存储介质(诸如CD或DVD)上。The encoded instructions 932 of FIG. 5 may be stored in the mass storage device 928, the volatile memory 914, the non-volatile memory 916, and/or on a removable tangible computer readable storage medium such as a CD or DVD.
图10是能够执行图6-8的指令以实现图2和/或图4的生命周期管理器228的示例处理器平台1000的框图。处理器平台1000可以是例如服务器、个人计算机、移动设备(例如,手机、智能电话、诸如iPadTM的平板电脑)、个人数字助理(PDA)、互联网设备、DVD播放器、CD播放器、数字录像机、蓝光播放器、游戏机、个人录像机、机顶盒或任何其他类型的计算设备。10 is a block diagram of an example processor platform 1000 capable of executing the instructions of FIGS. 6-8 to implement the lifecycle manager 228 of FIGS. 2 and/or 4 . The processor platform 1000 can be, for example, a server, a personal computer, a mobile device (e.g., a cell phone, a smart phone, a tablet computer such as an iPad ™ ), a personal digital assistant (PDA), an Internet appliance, a DVD player, a CD player, a digital video recorder , Blu-ray player, game console, personal video recorder, set-top box, or any other type of computing device.
所示示例的处理器平台1000包括处理器1012。所示示例的处理器1012是硬件。例如,处理器1012可以由来自任何期望的家族或制造商的一个或更多个集成电路、逻辑电路、微处理器或控制器来实现。示例处理器1012包括示例包管理器402、示例用户接口406、示例依赖性分析器408、示例容量分析器410以及示例安装协调器412。The processor platform 1000 of the illustrated example includes a processor 1012 . The processor 1012 of the example shown is hardware. For example, processor 1012 may be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer. The example processor 1012 includes an example package manager 402 , an example user interface 406 , an example dependency analyzer 408 , an example capacity analyzer 410 , and an example installation coordinator 412 .
所示示例的处理器1012包括本地存储器1013(例如,高速缓存)。所示示例的处理器1012经由总线1018与包括易失性存储器1014和非易失性存储器1016的主存储器进行通信。易失性存储器1014可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器1016可以由闪存和/或任何其他期望类型的存储器设备来实现。访问主存储器1014、1016由存储器控制器来控制。The processor 1012 of the illustrated example includes local memory 1013 (eg, a cache). Processor 1012 of the illustrated example communicates with main memory including volatile memory 1014 and non-volatile memory 1016 via bus 1018 . Volatile memory 1014 may be implemented by synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS dynamic random access memory (RDRAM), and/or any other type of random access memory device. Non-volatile memory 1016 may be implemented by flash memory and/or any other desired type of memory device. Access to main memory 1014, 1016 is controlled by a memory controller.
所示示例的处理器平台1000还包括接口电路1020。接口电路1020可以由任何类型的接口标准来实现,诸如以太网接口、通用串行总线(USB)和/或PCI Express接口。The processor platform 1000 of the illustrated example also includes interface circuitry 1020 . Interface circuit 1020 may be implemented by any type of interface standard, such as Ethernet interface, Universal Serial Bus (USB) and/or PCI Express interface.
在所示示例中,一个或更多个输入设备1022连接到接口电路1020。一个或更多个输入设备1022允许用户将数据和命令输入到处理器1012中。一个或更多个输入设备可以由例如音频传感器、麦克风、照相机(定格画面或视频)、键盘、按钮、鼠标、触摸屏、跟踪板、跟踪球、等点和/或语音识别系统来实现。In the example shown, one or more input devices 1022 are connected to the interface circuit 1020 . One or more input devices 1022 allow a user to enter data and commands into processor 1012 . The one or more input devices may be implemented by, for example, audio sensors, microphones, cameras (still frame or video), keyboards, buttons, mice, touch screens, trackpads, trackballs, etc., and/or voice recognition systems.
一个或更多个输出设备1024也连接到所示示例的接口电路1020。输出设备1024可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器、阴极射线管显示器(CRT)、触摸屏、触觉输出设备、打印机和/或扬声器)来实现。因此,所示示例的接口电路1020通常包括图形驱动器卡、图形驱动器芯片或图形驱动器处理器。One or more output devices 1024 are also connected to the interface circuit 1020 of the example shown. Output device 1024 can be implemented, for example, by a display device such as a light emitting diode (LED), organic light emitting diode (OLED), liquid crystal display, cathode ray tube display (CRT), touch screen, tactile output device, printer, and/or speaker. Thus, the interface circuit 1020 of the illustrated example typically includes a graphics driver card, a graphics driver chip, or a graphics driver processor.
所示示例的接口电路1020还包括通信设备(诸如发射机、接收机、收发机、调制解调器和/或网络接口卡),以辅助经由网络1026(例如,以太网连接、数字用户线路(DSL)、电话线路、同轴电缆、蜂窝电话系统等)与外围机器(例如,任何其他种类的计算设备)交换数据。The interface circuitry 1020 of the illustrated example also includes communication devices, such as transmitters, receivers, transceivers, modems, and/or network interface cards, to facilitate communication via the network 1026 (e.g., Ethernet connection, Digital Subscriber Line (DSL), telephone lines, coaxial cables, cellular telephone systems, etc.) to exchange data with peripheral machines (eg, any other kind of computing device).
所示示例的处理器平台1000还包括用于存储软件和/或数据的一个或更多个大容量存储设备1028。这种大容量存储设备1028的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、RAID系统和数字多功能盘(DVD)驱动器。The processor platform 1000 of the illustrated example also includes one or more mass storage devices 1028 for storing software and/or data. Examples of such mass storage devices 1028 include floppy disk drives, hard disk drives, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.
图6-8的编码指令1032可以被存储在大容量存储设备1028、易失性存储器1014、非易失性存储器1016中和/或可移除有形计算机可读存储介质(诸如CD或DVD)上。The encoded instructions 1032 of FIGS. 6-8 may be stored in the mass storage device 1028, the volatile memory 1014, the non-volatile memory 1016, and/or on a removable tangible computer-readable storage medium such as a CD or DVD. .
从上文所述将认识到,上述公开的方法、装置和制品有助于更新包括在虚拟服务器机架架构中的计算资源的软件、固件、补丁、驱动程序等。在一些示例中,软件更新被部署到包括在虚拟服务器机架中的各种物理计算资源,同时最小化对这些计算资源的操作的影响。在一些示例中,生命周期管理器管理软件安装过程,以安排异构计算环境的软件更新,以确保满足依赖性和软件执行要求。It will be appreciated from the foregoing that the methods, apparatus and articles of manufacture disclosed above facilitate updating software, firmware, patches, drivers, etc. of computing resources included in a virtual server rack architecture. In some examples, software updates are deployed to various physical computing resources included in virtual server racks while minimizing impact on the operation of those computing resources. In some examples, the lifecycle manager manages the software installation process to schedule software updates for heterogeneous computing environments to ensure that dependencies and software execution requirements are met.
尽管本文已经公开了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利权利要求范围内的所有方法、装置和制品。Although certain example methods, apparatus, and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.
Claims (42)
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN3344CH2015 | 2015-06-30 | ||
| IN3344/CHE/2015 | 2015-06-30 | ||
| US15/187,452 | 2016-06-20 | ||
| US15/187,480 US10740081B2 (en) | 2015-06-30 | 2016-06-20 | Methods and apparatus for software lifecycle management of a virtual computing environment |
| US15/187,452 US10635423B2 (en) | 2015-06-30 | 2016-06-20 | Methods and apparatus for software lifecycle management of a virtual computing environment |
| US15/187,480 | 2016-06-20 | ||
| PCT/US2016/040205 WO2017004269A1 (en) | 2015-06-30 | 2016-06-29 | Methods and apparatus for software lifecycle management of a virtual computing environment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN107810475A true CN107810475A (en) | 2018-03-16 |
| CN107810475B CN107810475B (en) | 2021-09-10 |
Family
ID=56413887
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201680038585.3A Active CN107810475B (en) | 2015-06-30 | 2016-06-29 | Method and apparatus for software lifecycle management for virtual computing environments |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN107810475B (en) |
| WO (1) | WO2017004269A1 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109343808A (en) * | 2018-09-06 | 2019-02-15 | 郑州云海信息技术有限公司 | A kind of remote KVM mouse mode adaptation method, device, terminal and storage medium |
| CN111427588A (en) * | 2019-01-10 | 2020-07-17 | 慧与发展有限责任合伙企业 | Aborting firmware package installation |
| CN113039520A (en) * | 2018-11-20 | 2021-06-25 | 思科技术公司 | Extending central cluster membership to additional computing resources |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11314500B2 (en) | 2020-07-09 | 2022-04-26 | Nutanix, Inc. | System and method for modularizing update environment in life cycle manager |
| US11803368B2 (en) | 2021-10-01 | 2023-10-31 | Nutanix, Inc. | Network learning to control delivery of updates |
Citations (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010029605A1 (en) * | 1998-06-19 | 2001-10-11 | Jonathan A. Forbes | Software package management |
| US20030204838A1 (en) * | 2002-04-30 | 2003-10-30 | Eric Caspole | Debugging platform-independent software applications and related code components |
| US20040187103A1 (en) * | 2003-03-17 | 2004-09-23 | Wickham Robert T. | Software updating system and method |
| US20050027843A1 (en) * | 2003-07-28 | 2005-02-03 | Erol Bozak | Install-run-remove mechanism |
| EP1521172A2 (en) * | 2003-09-02 | 2005-04-06 | Microsoft Corporation | Software decomposition into components |
| EP1736868A2 (en) * | 2005-06-07 | 2006-12-27 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
| CN101076782A (en) * | 2004-12-10 | 2007-11-21 | 英特尔公司 | Method and device for providing virtual blade server |
| US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
| US20090171652A1 (en) * | 2007-12-27 | 2009-07-02 | Toshiba Solutions Corporation | Virtualization program, simulation apparatus and virtualization method |
| CN101971162A (en) * | 2008-02-26 | 2011-02-09 | 威睿公司 | Extending server-based desktop virtual machine architecture to client machines |
| CN102438041A (en) * | 2010-10-20 | 2012-05-02 | 微软公司 | Upgrade of highly available farm server groups |
| US20120303940A1 (en) * | 2011-05-24 | 2012-11-29 | International Business Machines Corporation | System, method and program product to manage firmware on a system board |
| US20130151681A1 (en) * | 2011-12-12 | 2013-06-13 | Microsoft Corporation | Increasing availability of stateful applications |
| CN103176833A (en) * | 2013-03-11 | 2013-06-26 | 华为技术有限公司 | Data transmission method, data receiving method and system based on virtual machine |
| CN103257870A (en) * | 2012-02-21 | 2013-08-21 | F5网络公司 | Service upgrade for management program or hardware manager |
| US20140173580A1 (en) * | 2012-12-17 | 2014-06-19 | Itron, Inc. | Utilizing a multi-system set configuration to update a utility node system set |
| US20140282519A1 (en) * | 2013-03-15 | 2014-09-18 | Bmc Software, Inc. | Managing a server template |
| US20140380308A1 (en) * | 2013-06-25 | 2014-12-25 | Vmware, Inc. | Methods and apparatus to generate a customized application blueprint |
| US20150059006A1 (en) * | 2013-08-23 | 2015-02-26 | Cellco Partnership (D/B/A Verizon Wireless) | Secure Device Management Abstraction and Unification Module |
| US20150143380A1 (en) * | 2013-11-15 | 2015-05-21 | International Business Machines Corporation | Scheduling workloads and making provision decisions of computer resources in a computing environment |
| US20150154056A1 (en) * | 2013-12-03 | 2015-06-04 | International Business Machines Corporation | Migrating a running, preempted workload in a grid computing system |
| CN104699508A (en) * | 2015-03-25 | 2015-06-10 | 南京大学 | System and method for quickly arranging and updating virtual environment in cloud computing platform |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8171485B2 (en) | 2007-03-26 | 2012-05-01 | Credit Suisse Securities (Europe) Limited | Method and system for managing virtual and real machines |
-
2016
- 2016-06-29 WO PCT/US2016/040205 patent/WO2017004269A1/en not_active Ceased
- 2016-06-29 CN CN201680038585.3A patent/CN107810475B/en active Active
Patent Citations (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010029605A1 (en) * | 1998-06-19 | 2001-10-11 | Jonathan A. Forbes | Software package management |
| US20030204838A1 (en) * | 2002-04-30 | 2003-10-30 | Eric Caspole | Debugging platform-independent software applications and related code components |
| US20040187103A1 (en) * | 2003-03-17 | 2004-09-23 | Wickham Robert T. | Software updating system and method |
| US20050027843A1 (en) * | 2003-07-28 | 2005-02-03 | Erol Bozak | Install-run-remove mechanism |
| EP1521172A2 (en) * | 2003-09-02 | 2005-04-06 | Microsoft Corporation | Software decomposition into components |
| CN101076782A (en) * | 2004-12-10 | 2007-11-21 | 英特尔公司 | Method and device for providing virtual blade server |
| EP1736868A2 (en) * | 2005-06-07 | 2006-12-27 | Rockwell Automation Technologies, Inc. | Abstracted display building method and system |
| US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
| US20090171652A1 (en) * | 2007-12-27 | 2009-07-02 | Toshiba Solutions Corporation | Virtualization program, simulation apparatus and virtualization method |
| CN101971162A (en) * | 2008-02-26 | 2011-02-09 | 威睿公司 | Extending server-based desktop virtual machine architecture to client machines |
| CN102438041A (en) * | 2010-10-20 | 2012-05-02 | 微软公司 | Upgrade of highly available farm server groups |
| US20120303940A1 (en) * | 2011-05-24 | 2012-11-29 | International Business Machines Corporation | System, method and program product to manage firmware on a system board |
| US20130151681A1 (en) * | 2011-12-12 | 2013-06-13 | Microsoft Corporation | Increasing availability of stateful applications |
| CN103257870A (en) * | 2012-02-21 | 2013-08-21 | F5网络公司 | Service upgrade for management program or hardware manager |
| US20140173580A1 (en) * | 2012-12-17 | 2014-06-19 | Itron, Inc. | Utilizing a multi-system set configuration to update a utility node system set |
| CN103176833A (en) * | 2013-03-11 | 2013-06-26 | 华为技术有限公司 | Data transmission method, data receiving method and system based on virtual machine |
| US20140282519A1 (en) * | 2013-03-15 | 2014-09-18 | Bmc Software, Inc. | Managing a server template |
| US20140380308A1 (en) * | 2013-06-25 | 2014-12-25 | Vmware, Inc. | Methods and apparatus to generate a customized application blueprint |
| US20150059006A1 (en) * | 2013-08-23 | 2015-02-26 | Cellco Partnership (D/B/A Verizon Wireless) | Secure Device Management Abstraction and Unification Module |
| US20150143380A1 (en) * | 2013-11-15 | 2015-05-21 | International Business Machines Corporation | Scheduling workloads and making provision decisions of computer resources in a computing environment |
| US20150143382A1 (en) * | 2013-11-15 | 2015-05-21 | International Business Machines Corporation | Scheduling workloads and making provision decisions of computer resources in a computing environment |
| US20150154056A1 (en) * | 2013-12-03 | 2015-06-04 | International Business Machines Corporation | Migrating a running, preempted workload in a grid computing system |
| CN104699508A (en) * | 2015-03-25 | 2015-06-10 | 南京大学 | System and method for quickly arranging and updating virtual environment in cloud computing platform |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109343808A (en) * | 2018-09-06 | 2019-02-15 | 郑州云海信息技术有限公司 | A kind of remote KVM mouse mode adaptation method, device, terminal and storage medium |
| CN113039520A (en) * | 2018-11-20 | 2021-06-25 | 思科技术公司 | Extending central cluster membership to additional computing resources |
| CN111427588A (en) * | 2019-01-10 | 2020-07-17 | 慧与发展有限责任合伙企业 | Aborting firmware package installation |
| CN111427588B (en) * | 2019-01-10 | 2025-06-27 | 慧与发展有限责任合伙企业 | Abort the installation of the firmware package |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107810475B (en) | 2021-09-10 |
| WO2017004269A1 (en) | 2017-01-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10740081B2 (en) | Methods and apparatus for software lifecycle management of a virtual computing environment | |
| US10901721B2 (en) | Methods and apparatus for version aliasing mechanisms and cumulative upgrades for software lifecycle management | |
| US11444765B2 (en) | Methods and apparatus to manage credentials in hyper-converged infrastructures | |
| US11405274B2 (en) | Managing virtual network functions | |
| US12175294B2 (en) | Methods and apparatus to manage workload domains in virtual server racks | |
| US11675585B2 (en) | Methods and apparatus to deploy workload domains in virtual server racks | |
| US10348574B2 (en) | Hardware management systems for disaggregated rack architectures in virtual server rack deployments | |
| US10044795B2 (en) | Methods and apparatus for rack deployments for virtual computing environments | |
| US10313479B2 (en) | Methods and apparatus to manage workload domains in virtual server racks | |
| US10656983B2 (en) | Methods and apparatus to generate a shadow setup based on a cloud environment and upgrade the shadow setup to identify upgrade-related errors | |
| CN107810475B (en) | Method and apparatus for software lifecycle management for virtual computing environments | |
| US12124857B2 (en) | Server management apparatus and server management method |
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 | ||
| CP03 | Change of name, title or address | ||
| CP03 | Change of name, title or address |
Address after: California, USA Patentee after: Weirui LLC Country or region after: U.S.A. Address before: California, USA Patentee before: VMWARE, Inc. Country or region before: U.S.A. |