用于虚拟计算环境的软件生命周期管理的方法和装置与流程

文档序号:13950606阅读:269来源:国知局
用于虚拟计算环境的软件生命周期管理的方法和装置与流程

相关申请

于2015年6月30日提交的序列号为3344/che/2015的印度临时专利申请,均于2016年6月20日提交的序列号为15/187,452的美国专利申请以及序列号为15/187,480的美国专利申请通过引用整体并入本文。

本公开总地涉及虚拟计算环境,并且更具体地,涉及用于虚拟计算环境的软件生命周期管理的方法和装置。



背景技术:

使计算机系统虚拟化提供了诸如在单个硬件计算机上执行多个计算机系统的能力、复制计算机系统、在多个硬件计算机之间移动计算机系统等优点。用于使计算机系统虚拟化的示例系统在2007年9月21日提交的名称为“用于管理虚拟机和实机的方法和系统(methodandsystemformanagingvirtualandrealmachines)”的美国专利申请第11/903,374号,以及被授权为美国专利8,171,485的2007年3月26日提交的标题为“用于管理虚拟机和实机的方法和系统(methodandsystemformanagingvirtualandrealmachines)”的美国临时专利申请第60/919,965号,以及2012年12月12日提交的标题为“用于虚拟化计算的方法和装置(methodsandapparatusforvirtualizedcomputing)”的美国临时专利申请第61/736,422号中描述过,所有这三个专利申请通过引用整体并入本文。

“基础设施即服务”(通常也称为“iaas”)通常将由服务提供商提供的一套技术描述为允许弹性创建虚拟化、联网和合并计算平台(有时称为“云计算平台”)的整体解决方案。企业可以使用iaas作为业务内部组织云计算平台(有时也称为“私有云”),其使应用程序开发人员能够访问基础设施资源,诸如虚拟服务器、存储和网络资源。通过提供对运行应用程序所需的硬件资源的即时访问,云计算平台使开发人员能够以比以往更大的规模和更快的速度构建、部署和管理网页应用程序(或任何其他类型的联网应用程序)的生命周期。

云计算环境可以由许多处理单元(例如,服务器)组成。处理单元可以被安装在被称为机架的标准化框架中,其通过允许处理单元垂直堆叠来提供地板空间的有效利用。机架可以另外包括云计算环境的其他组件,诸如存储设备、联网设备(例如交换机)等。

附图说明

图1a是示例环境的框图,其中物理机架由示例系统集成商准备以分配给客户。

图1b是示例环境的框图,其中示例物理机架被部署在示例客户端(customerpremise)。

图2描绘了示例虚拟服务器机架部署中的示例物理机架。

图3是图1a和/或图1b的软件管理器的示例实现方式的框图。

图4是图2的示例生命周期管理器的示例实现方式的框图。

图5是表示可以被执行以实现图1a、图1b和/或图3的示例软件管理器的示例机器可读指令的流程图。

图6-8是表示可以被执行以实现图2和/或图4的示例生命周期管理器的机器可读指令的流程图。

图9是能够执行图5的示例机器可读指令以实现图1a、图1b和/或图3的示例软件管理器的示例处理平台的框图。

图10是能够执行图6-8的示例机器可读指令以实现图2和/或图4的示例生命周期管理器的示例处理平台的框图。

具体实施方式

云计算基于跨网络的许多物理资源的部署、将物理资源虚拟化为虚拟资源以及供应虚拟资源用于跨云计算服务和应用。当启动云计算环境或向已建立的云计算环境添加资源时,数据中心运营商努力提供成本效益好的服务,同时使基础设施(例如,存储硬件、计算硬件和联网硬件)的资源相互协作以实现无痛(pain-free)安装/操作并优化资源以提高性能。用于建立和维护数据中心以提供云计算服务的现有技术经常将数据中心锁定为单源硬件资源,因为需要使用专门为特定类型的硬件设计的定制虚拟化软件。本文公开的示例使得能够使用供应商无关的(vendor-agnostic)虚拟化软件来建立和维护数据中心。通过这种方式,数据中心运营商可以灵活地从多个硬件制造商中选择任何一个,以满足数据中心的物理硬件需求,同时使数据中心运营商能够相对容易地初始化、虚拟化和供应新资源。也就是说,数据中心运营商可以使用本文公开的示例来从许多制造商中的任何一个获取硬件资源,而不需要数据中心运营商承担开发新软件以初始化、虚拟化和供应这样的资源的负担。

本文公开的示例方法和装置便于管理数据中心计算元件的软件生命周期。例如,所述方法和装置便于更新、修补、升级等在计算元件集群中实现计算元件的多个硬件元件(例如,计算元件可以是多个计算组件的自包含物理机架(例如网络交换机、处理器、存储器等),其可以与其他自包含物理机架结合以形成计算资源的云或群集。在许多计算环境中,不希望中断、干扰等计算环境的操作(例如,计算环境可能每天运行24小时,并且可能没有自然的停机时间,在此期间系统可能为了维护而离线)。示例方法和装置通过利用冗余和/或离线/备用的计算资源来辅助安排和执行诸如更新、修补、升级等,以减少和/或消除对操作计算环境的影响。

图1a描绘了示例环境100,其中物理机架102由示例系统集成商104准备以分配给客户。图1b描绘了示例环境117,其中示例物理机架102被部署在示例客户端118处。

图1的示例环境100包括示例物理机架102、示例系统集成商104、一个或更多示例硬件/软件供应商106、示例网络108、示例虚拟系统解决方案提供商110以及示例虚拟成像设备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服务器、交换机或装备。

根据所示示例,由示例系统集成商104订购和/或组装的一种类型的计算单元是物理机架102。物理机架102是计算硬件和已安装软件的组合,其可以被客户利用以创建和/或添加到虚拟计算环境。例如,物理机架102可以包括处理单元(例如多个刀片服务器)、网络交换机,以将处理单元互联并将物理机架102与其他计算单元(例如,网络环境中的物理机架102的其他计算单元,诸如云计算环境)和/或数据存储单元(例如,网络附接的存储、存储区域网络硬件等)相连接。所示示例的物理机架102由系统集成商104以部分配置的状态准备,以使计算设备能够快速部署在客户位置(例如,少于2小时)。例如,系统集成商104可以安装操作系统、驱动程序、操作软件、管理软件等。所安装的组件可以配置为具有一些系统细节(例如,辅助物理机架102的组件之间的相互通信的系统细节)和/或者可以配备有软件,以当虚拟服务器机架被安装并且首次由客户供电时,可以从客户收集更多信息。

为了辅助物理机架102的准备以分配给客户,示例系统集成商104利用虚拟成像设备112,以在将示例服务器机架102运送给客户之前在物理机架102上准备和配置操作系统、系统配置、软件等。所示示例的虚拟成像设备112是由示例虚拟系统解决方案提供商110经由示例网络108提供给系统集成商104的虚拟计算设备。示例虚拟成像设备112由示例系统集成商104在系统集成商104的虚拟计算环境中执行。例如,虚拟成像设备112可以是虚拟计算镜像、虚拟应用程序、容器虚拟机镜像、安装在系统集成商104的计算单元的操作系统中的软件应用程序等。虚拟成像设备112可以可选地由任何其他实体提供和/或可以是物理计算设备、可以是多个物理计算设备和/或可以是虚拟和物理计算组件的任何组合。

所示示例的虚拟成像设备112在物理机架102的准备期间经由网络108从虚拟系统解决方案提供商110检索软件镜像和配置数据以安装在物理机架102上。所示示例的虚拟成像设备112将软件镜像和配置数据推送(例如,传输、发送等)到物理机架102的组件。例如,所示示例的虚拟成像设备112包括多个网络连接(例如虚拟网络连接、物理网络连接和/或虚拟连接和网络连接的任何组合)。例如,所示示例的虚拟成像设备112连接到安装在物理机架102中的一个或更多网络交换机的管理接口,在一个或更多网络交换机上安装网络配置信息,并且重新启动一个或更多交换机以加载所安装的配置,以将虚拟成像设备112与经由一个或更多网络交换机可通信地耦合的一个或更多计算单元可通信地耦合。示例虚拟成像设备112还连接到安装在示例物理机架102中的一个或更多服务器的管理网络接口(例如,带外(oob)接口),以使得一个或更多操作系统被安装(例如利用操作系统安装程序的预启动执行环境(pxe)启动)。示例虚拟成像设备112还用于安装虚拟环境管理组件(在下文中结合图3-6进一步详细描述)并且引起虚拟环境管理组件启动以使得它们可以接管示例服务器机架102的部署。

示例虚拟成像设备112被配置为在没有用户干预并且不需要示例系统集成商104的用户手动地连接到示例物理机架102的组件的各种接口的情况下执行部署的许多操作。此外,示例虚拟成像设备112的用户免除了定位配置示例物理机架102所需的各种软件镜像的负担(例如,一个或更多网络交换机的固件镜像、一个或更多服务器的操作系统镜像、安装在物理机架102中的硬件组件的一个或更多操作系统驱动程序等)。另外,由示例虚拟成像设备112部署的虚拟环境管理组件由虚拟成像设备112配置,以辅助物理机架102在客户位置处的容易部署。例如,由示例虚拟成像设备112安装在物理机架102上的虚拟管理组件包括图形用户界面,其引导客户通过该进程输入配置参数(例如,客户网络的细节、关于现有虚拟环境的信息等等)。另外,示例虚拟管理组件自动发现关于客户系统的一些信息(例如,自动发现关于现有虚拟环境的信息)。

所示示例的网络108将示例系统集成商104与虚拟系统解决方案提供商110可通信地耦合,并且将示例硬件/软件供应商106与示例虚拟系统解决方案提供商110可通信地耦合。根据所示示例,网络108是互联网。可选地,网络108可以是任何类型的局域网、广域网、无线网络、有线网络、网络的任何组合等。尽管图1a的网络108被示为单个网络,但是该网络可以是任何数量和/或类型的网络。例如,网络108可以由局域网、广域网、无线网络、有线网络、虚拟网络等中的一个或更多个来实现。

参考图1b,示例客户端118是示例物理机架102(例如,部署多个物理机架102)所处的位置。例如,客户端118可以是数据中心、云提供商的位置、商业位置或希望实现由一个或更多个物理机架102组成的虚拟计算环境的任何其他位置。根据所示的示例,示例客户端118(以及位于示例客户端118处的示例物理机架102)可通信地耦合到示例网络108,以将示例客户端118与示例虚拟系统解决方案提供商110可通信地耦合。

所示示例的虚拟系统解决方案提供商110分配(例如销售)和/或支持示例虚拟成像设备112。所示示例的虚拟系统解决方案提供商110还提供镜像的储存库116和/或其他类型的软件(例如,虚拟机镜像、驱动程序、操作系统等),其可由a)虚拟成像设备112检索并安装在物理机架102上和/或b)在示例物理机架102被部署在示例客户端118处之后(如图1b所示),可由示例物理机架102检索。虚拟系统解决方案提供商110可选地由多个实体(例如,来自软件的一个或更多制造商)和/或任何其他类型的实体来实现。

图1a和1b的所示示例的示例虚拟系统解决方案提供商110包括示例软件管理器114和示例储存库116。示例软件管理器114和示例储存库116一起提供软件至a)的图1a的示例虚拟成像设备112,用于在示例系统集成商104处供应示例物理机架102和/或b)至图1b的示例用户端118处的一个或更多示例物理机架102,用于更新、升级、打补丁等在一个或更多示例物理机架102中包括的计算资源。

示例软件管理器114从一个或更多示例硬件/软件供应商106接收软件,并且将数据存储在示例储存库116中。该软件可以包括用于包括在示例物理机架102中的计算资源的新的和/或更新的驱动程序、操作系统、固件等等。例如,软件可以包括安装在物理机架102中的网络交换机的固件/操作系统、用于在安装在物理机架102中的服务器硬件上执行的超级管理程序(hypervisor)、安装在物理机架102中的存储设备的驱动程序、安装在由物理机架102提供的计算环境中的操作系统的安全更新等。

示例软件管理器114从示例虚拟成像设备112接收对机架安装镜像的请求、检索所请求的一个或更多镜像,并且将所请求的一个或更多镜像经由网络108传送给示例虚拟成像设备112,以通过示例虚拟成像设备112辅助在示例物理机架102上安装一个或更多镜像。示例软件管理器114可以在从一个或更多示例硬件/软件供应商106接收到更新的软件之后,向示例虚拟成像设备112另外提供一个或更多更新的镜像。例如,示例虚拟成像设备112可以周期性地发送对更新的一个或更多镜像的请求和/或当更新的镜像已准备好时,示例软件管理器114可以通知示例虚拟成像设备112(例如,在新软件已被接收、测试并添加到新镜像之后)。

示例软件管理器114还在示例物理机架102已经部署在示例客户端118之后从示例物理机架102接收对更新软件的请求。例如,当示例物理机架102在示例客户端118处被部署为物理机架102群集的一部分时,物理机架102中的一个可以周期性地发送对更新的软件包的请求(例如,包括与安装在示例物理机架102中的多个计算资源相关联的软件的一组软件)。响应于这样的请求,示例软件管理器114检索包括软件包版本的清单文件,使得物理机架102可以确定软件包是否包括相对于当前安装在示例物理机架102的计算资源上的软件而言是新的、更新的、改进的等的软件。例如,如果清单文件标识比当前安装在示例物理机架102上的软件包的版本更新的版本,则该软件包包括新软件(例如,已经被选择安装在示例物理机架102中安装的网络交换机上的新固件)。在一些实例中,虚拟系统解决方案提供商110可以支持多个不同的物理机架实现方式(例如,安装在示例物理机架102中的计算资源和/或软件的不同组合)。在这样的情况下,清单文件可以附加地包括示例物理机架102中的组件的特定组合的标识符。例如,清单文件可以标识与示例物理机架102相关联的库存单元(sku),以允许物理机架102确认接收到的清单文件标识特定物理机架102的软件。

结合图3描述示例软件管理器114的示例实现方式。

示例储存库116存储从一个或更多示例硬件/软件供应商106接收的软件,以及由示例软件管理器114生成的用于示例软件的清单文件。所示示例的储存库116与示例软件管理器114可通信地耦合,以允许示例软件管理器114存储和检索软件。示例储存库116是数据库。可选地,示例储存库可以是任何其他类型的存储,例如网络附接的存储、硬盘驱动器、共享网络驱动器、文件、文件夹等。

图2描绘了虚拟服务器机架206的示例部署中的示例物理机架202、204。例如,物理机架202、204可以是由图1a的示例系统集成商104组装的物理机架102中的物理机架。在所示示例中,第一物理机架202具有示例机架顶部(tor)交换机a210、示例tor交换机b212、示例管理交换机207以及示例服务器主机节点(0)209。在所示示例中,管理交换机207和服务器主机节点(0)209运行用于第一物理机架202的硬件管理系统(hms)208。所示示例的第二物理机架204还具有示例tor交换机a216、示例tor交换机b218、示例管理交换机213以及示例服务器主机节点(0)211。在所示示例中,管理交换机213和服务器主机节点(0)211运行用于第二物理机架204的hms214。

在所示示例中,相应的物理机架202、204的管理交换机207、213运行相应的hms208、214的相应的带外(oob)代理和oob插件(plugin)。此外,在所示示例中,相应的物理机架202、204的服务器主机节点(0)209、211运行相应的ib代理、ib插件、hms服务api和聚合器。

在所示示例中,hms208、214连接到服务器主机节点(0)209、211的服务器管理端口(例如,使用基板管理控制器(bmc)),连接到tor交换机210、212、216、218的tor交换机管理端口(例如,使用1gbps链路),并且还连接到一个或更多个主干(spine)交换机222的主干交换机管理端口。这些示例连接形成用于oob管理的不可路由的专用互联网协议(ip)管理网络。所示示例的hms208、214使用到服务器主机节点(0)209、211的服务器管理端口的该oob管理接口进行服务器硬件管理。另外,所示示例的hms208、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之间的内部通信。此外,在所示示例中,hms208、214具有到物理机架202、204的个体服务器节点(例如,在示例物理硬件资源224、226中的服务器节点)的ib连接。在所示示例中,ib连接经由在服务器节点上运行的操作系统使用特定于os的api(诸如vsphereapi)、命令行接口(cli)和/或诸如来自分布式管理任务组(dmtf)的公共信息模型之类的接口接合到物理硬件资源224、226。

相应的物理机架202、204的hms208、214与相应的物理机架202、204的虚拟机架管理器(vrm)225、227接口,以使用物理机架202、204的物理硬件资源224、226(例如,处理器、网络接口卡、服务器、交换机、存储设备、外围设备、电源等)来实例化和管理虚拟服务器机架206。在所示示例中,第一物理机架202的vrm225在第一物理机架202的三个服务器主机节点上运行,其中一个是服务器主机节点(0)209。如本文所使用的,术语“主机”是指物理硬件资源224、226的功能上不可分割的单元,诸如物理服务器,其作为整体被配置或分配给虚拟机架和/或工作负载;全部上电或断电;或者可以被认为是完整的功能单元。此外,在所示示例中,第二物理机架204的vrm227在第二物理机架204的三个服务器主机节点上运行,其中一个是服务器主机节点(0)211。在所示示例中,相应的物理机架202、204的vrm225、227通过一个或更多个主干交换机222相互通信。此外,在所示示例中,物理机架202、204的物理硬件资源224、226之间的通信在物理机架202、204的tor交换机210、212、216、218之间通过一个或更多个主干交换机222交换。在所示的示例中,tor交换机210、212、216、218中的每一个连接到两个主干交换机222中的每一个。在其他示例中,可以使用更少或更多的主干交换机。例如,当物理机架被添加到虚拟服务器机架206时,可以添加额外的主干交换机。

在本文公开的示例中,使用命令行接口(cli)和api来管理tor交换机210、212、216、218。例如,hms208、214使用cli/api来填充对应于tor交换机210、212、216、218的交换对象。在hms启动时,hms208、214用静态可用信息填充初始交换对象。另外,hms208、214使用周期性轮询机制作为hms交换机管理应用线程的一部分,以收集来自tor交换机210、212、216、218的统计和健康数据(例如,链路状态、分组统计、可用性等等)。还有一个配置缓冲区作为交换对象的一部分,其存储要在交换机上应用的配置信息。

图2所示示例的示例vrm225、227包括示例生命周期管理器(lcm)228、230。示例lcm228、230负责从示例虚拟系统解决方案提供商110请求软件并管理示例软件的安装。当从示例虚拟系统解决方案提供商110接收到标识关于软件包的信息的清单文件时,示例lcm228、230确定清单是否适用于示例物理机架202、204,验证安装软件包的软件组件所需的依赖性(或解决这种依赖性)的存在,确保有足够的计算资源用于安装软件包的软件组件、安排用于安装的软件组件以及执行软件组件的安装。

图4示出了lcm228、230的示例实现方式。为了简单起见,本说明书的其余部分将参考示例lcm228。然而,其中包括的描述和示例实现方式也可以应用于示例lcm230。

图3是1a和/或1b的软件管理器114的示例实现方式的框图。图3的示例软件管理器114包括示例软件接收器302、示例包管理器304和示例储存库接口306以及示例请求处理器308。

所示示例的示例软件接收器302从示例硬件/软件供应商106接收软件组件(例如,驱动程序、固件、操作系统、应用程序等),并且将软件组件传输到示例包管理器304。例如,软件接收器302可以在新软件可用时接收来自一个或更多示例硬件/软件供应商106的通知,和/或可以周期性地向一个或更多示例硬件/软件供应商106查询新软件的可用性。

示例包管理器304从示例软件接收器302接收软件、协调软件的测试并在测试之后将软件添加到示例储存库116。当将软件添加到示例储存库116时,示例包管理器304将对软件的引用添加到与软件被添加到的软件包(例如,用于特定物理机架版本/实现方式的软件的集合)相关联的清单文件。例如,包管理器304可以向软件的清单文件添加新的条目,和/或可以用软件的新版本替换在清单文件中标识的软件的先前版本。软件的测试可以通过管理员将软件安装在测试物理机架上,并且验证软件是否按预期安装并且不会干扰测试物理机架的运行(例如,不会造成错误、不会与我们的软件或硬件冲突等)来完成。在测试软件期间,示例包管理器304收集依赖性信息(例如,关于安装软件可能需要什么软件组件的信息)。示例包管理器304将依赖性信息存储在与软件被添加到的软件包相关联的清单文件中。例如,示例包管理器304可以接收标识软件依赖性的用户输入,可以接收标识软件依赖性的输入文件,可以监视软件安装以通过编程方式确定软件依赖性等。

示例储存库接口306与示例储存库116接口。例如,储存库接口306可以是示例软件管理器114的数据库接口。可选地,储存库接口306可以是任何其他类型的接口,其辅助示例包管理器304和/或示例请求处理器308存储和/或被检索来自示例储存库116的清单文件和/或软件。

示例请求处理器308从图1a的示例虚拟成像设备112和/或图1b的示例客户端118处的示例物理机架102接收对软件镜像和/或更新的软件包的请求。响应于该请求,示例请求处理器308检索所请求的信息。例如,请求处理器308可以检索清单文件并且将清单文件发送到请求源(例如,示例虚拟成像设备112和/或示例物理机架102),以允许请求源确定清单文件是否标识与物理机架102相关联的软件,该软件将要在物理机架102上安装。例如,清单文件可以标识sku,该sku针对与物理机架102相关联的sku被检查。当请求源指示清单文件标识期望的软件时,请求处理器308可以从示例储存库116检索软件(例如,软件镜像、软件包等),并且将软件传输到请求源。

结合图5描述示出用于实现图1a、1b和/或3的示例软件管理器114的示例指令的流程图。

虽然实现图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中所示之外的或代替其的一个或更多个元件、过程和/或设备,和/或可以包括任何或全部所示元件、过程和设备中的不止一个。

图4是图2的示例物理机架202的示例vrm225中的lcm228的示例实现方式的框图(例如,部署在示例客户端118处的物理机架102)。示例lcm228包括示例包管理器402、示例生命周期储存库404、示例用户界面406、示例依赖性分析器408、示例容量分析器410以及示例安装协调器412。

示例包管理器402与图1b的示例虚拟系统解决方案提供商110的示例性软件管理器114相接口,以接收清单文件和待部署在示例物理机架202和/或部署在集群中的其他物理机架202处的软件。示例包管理器402周期性地轮询示例软件管理器114,以确定是否存在要被分析的更新的清单文件以适用于示例物理机架202。可选地,当新的清单文件可用时,包管理器402可以接收通知(例如,如果包管理器402已经向虚拟系统解决方案提供商110注册以接收这样的通知)。当包管理器402接收到新的清单时,包管理器402确定清单是否适用于物理机架,并且如果是的话,示例包管理器402通知示例用户界面406已经接收到新的清单。如果示例用户界面406通知包管理器402管理员已经批准/安排了软件包的下载,则示例包管理器402检索由示例清单文件标识的软件,并且将该软件与清单文件一起存储在示例生命周期储存库中。

所示示例的生命周期储存库404存储经由示例包管理器402从示例虚拟系统解决方案提供商110接收的清单文件和软件。示例生命周期储存库404是软件数据库。可选地,生命周期储存库404可以通过任何类型的文件和/或数据存储来实现,诸如,例如网络附接的存储、硬盘驱动器、共享网络驱动器、文件、文件夹等。

图4的示例用户界面406向物理机架202的管理员提供通知并接收来自管理员的指令。例如,当示例包管理器402通知示例用户界面406已经接收到新的清单/软件包时,示例用户界面406向管理员呈现通知并且请求关于管理员是否想要下载软件包和/或安排软件包的安装的管理员输入。当示例用户界面406从管理员接收到下载软件包的指令时,示例用户界面406通知示例包管理器406。当示例用户界面406从管理员接收到安排软件包的安装的指令时,示例用户界面406通知示例依赖性分析器408、示例容量分析器410和/或示例安装协调器412。示例用户界面406另外呈现由示例依赖性分析器408、示例容量分析器410和/或示例安装协调器412生成的任何错误通知。

所示示例的依赖性分析器408从示例用户界面406接收管理员已请求安装软件包的通知。响应于该通知,示例依赖性分析器408通过分析清单文件来确定软件包的依赖性要求,检查依赖性要求与安装在物理机架202上的硬件和软件组件的当前状态,并且通知安装协调器412由软件包的依赖性要求期望和/或需要的软件安装的顺序。例如,依赖性分析器408可以确定驱动程序的版本3.0要求版本2.0当前被安装,并且在确定版本1.0当前被安装之后,将版本2.0添加到安装安排。在另一个示例中,清单文件可以指示网页服务器更新需要同样在清单文件中标识的数据库更新。在这种情况下,示例依赖性分析器408将通知示例安装协调器412,在该示例中,应该在更新网页服务器之前安排数据库更新。

所示示例的容量分析器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通知可在安装期间使用的附加计算资源的可用性)。

示例安装协调器412接收由示例依赖性分析器408和示例容量分析器410收集的信息,并且安排接收到的清单中标识的软件包的软件的安装。示例安装协调器412安排(或尝试安排)软件的安装,以满足依赖性要求并且避免中断物理机架202(和/或多个物理机架202)的操作。根据所示的示例,安装协调器412针对独立不可用性来安排设备(例如,安排冗余设备的不可用性,使得至少一个冗余设备始终可用)。此外,示例安装协调器412在安装期间安排虚拟机的临时移动/迁移。

结合图6-8描述示出了用于实现图2和/或4的示例lcm228的示例指令的流程图。

尽管在图4中示出了实现图2的lcm228(和/或示例lcm230)的示例方式,图4中所示的一个或更多个元件、过程和/或设备可以被组合、分割、重新安排、省略、消除和/或以任何其他方式实现。此外,图4的示例包管理器402、示例生命周期储存库404、示例用户界面406、示例依赖性分析器408、示例容量分析器410、示例安装协调器412和/或更一般地示例lcm228,可以由一个或更多个模拟或数字电路、逻辑电路、一个或更多可编程处理器、一个或更多专用集成电路(asic)、一个或更多可编程逻辑器件(pld)和/或一个或更多现场可编程逻辑器件(fpld)来实现。当读取本专利的任何装置或系统权利要求以覆盖纯粹的软件和/或固件实现方式时,图4的示例包管理器402、示例生命周期储存库404、示例用户界面406、示例依赖性分析器408、示例容量分析器410、示例安装协调器412和/或更一般地示例lcm228中的至少一个,在此明确地定义为包括存储软件和/或固件的有形计算机可读存储设备或存储盘,诸如存储器、数字多功能盘(dvd)、光盘(cd)、蓝光盘等。此外,图2的示例lcm228可以包括除图4中所示之外的或代替其的一个或更多个元件、过程和/或设备,和/或可以包括任何或全部所示的元件、过程和/或设备中的不止一个。

图5中示出了表示用于实现图1a、1b和/或3的示例软件管理器114的示例机器可读指令的流程图。在该示例中,机器可读指令包括由处理器(诸如下面结合图5讨论的示例处理器平台900中示出的处理器912)执行的程序。该程序可以体现为存储在有形计算机可读存储介质(诸如cd-rom、软盘、硬盘驱动器、数字多功能盘(dvd)、蓝光盘或与处理器912相关联的存储器)上的软件中,但是整个程序和/或其部分可选地可由除了处理器912之外的设备来执行和/或体现为固件或专用硬件。此外,尽管参照图5所示的流程图描述了示例程序,可选地可以使用实现示例软件管理器114的许多其他方法。例如,可以改变框的执行顺序和/或可以改变、消除或组合所描述的一些框。

如上所述,图5的示例过程可以使用存储在有形计算机可读存储介质(诸如硬盘驱动器、闪存、只读存储器(rom)、光盘(cd)、数字多功能盘(dvd)、高速缓存、随机存取存储器(ram))和/或任何其他存储设备或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓冲和/或高速缓存信息)的存储盘)上的编码指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语有形计算机可读存储介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号以及排除传输介质。如本文所使用的,“有形计算机可读存储介质”和“有形机器可读存储介质”可互换使用。附加地或可选地,可以使用存储在非暂时性计算机和/或机器可读介质(例如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器)和/或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓冲和/或高速缓存信息)的存储盘上的编码指令(例如,计算机和/或机器可读指令)来实现图5的示例过程。

如本文所使用的,术语非暂时性计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号以及排除传输介质。如本文所使用的,当短语“至少”被用作权利要求的前序中的过渡词时,其是开放式的,与术语“包括”是开放式的方式相同。

当示例软件管理器114的示例软件接收器302从硬件/软件供应商接收软件时(框502),图5的程序开始。例如,软件可以包括应用程序、驱动程序、操作系统、配置文件等。软件可以在来自硬件/软件供应商的通知中被接收,可以响应于对软件供应商的轮询由示例软件接收器302接收等。

示例软件接收器302然后呈现将新软件包括在适当的包中的请求(框504)。例如,软件接收器302可以将项目添加到请求批准将软件添加到包的任务列表,可以在图形用户界面上呈现通知等。示例软件接收器302确定将软件添加到包的指令是否已被接收(框506)。当已经接收到不将软件添加到包的指令时,示例软件接收器302丢弃接收到的软件(框508)。

当已经接收到将软件添加到包的指令时(框506),示例包管理器304存储用于包的软件(例如,将软件存储在示例储存库116中)(框510)。示例包管理器然后标记用于测试的软件(框512)。例如,管理员可以在示例物理机架102上和/或在示例虚拟服务器机架206中安装软件,以验证软件如预期那样操作,并且不干扰其他操作等。示例包管理器304然后确定在测试之后是否已经接收到继续将软件添加到包的指令(框514)。当已经接收到不将软件添加到包的指令时(例如,因为软件的测试标识出问题),示例包管理器304丢弃软件(框508)。

当示例包管理器304接收到继续将软件添加到包的指令时(框514),示例包管理器304捕获示例软件的依赖性(框516)。依赖性可以通过跟踪软件的测试以跟踪在测试期间被访问的依赖性,通过接收标识软件所需的依赖性的依赖性记录(例如,文件),通过接收标识依赖性的用户输入等来捕获依赖性。根据所示示例,通过将依赖性记录在清单文件中来捕获,该清单文件要采用包括软件的包被分配。可选地,依赖性可以以任何其他方式被捕获(例如,存储在被访问以构建清单的数据库中)。

示例储存库接口306公布利用依赖性信息生成的清单文件(框518)。根据所示示例,储存库接口306将清单(例如,和清单中标识的软件)存储在图1的示例储存库116中,以使请求处理器308能够服务请求。例如,可以将清单标识为最当前的清单(例如,替换先前最当前的清单),使得由示例请求处理器308接收到的软件请求通过传输最当前清单和/或软件来服务。

根据所示示例,当与虚拟服务器机架相关联的软件包被更新时,示例请求处理器308更新由图1的示例虚拟成像设备112使用的虚拟服务器机架镜像,以确保虚拟成像设备112在部署虚拟服务器机架时将使用最新的软件(框520)。

所示示例的请求处理器308确定是否接收到包加速指令(框522)。包加速指令指示应该比下一个计划的软件发布更快地将软件包部署到虚拟服务器机架。例如,当现有软件包包含由最当前软件包打补丁的漏洞时,可能会加快包的分配。包加速指令可以从用户接收,可以在由示例软件接收器302接收的软件的属性中标识等。

当示例请求处理器308确定没有接收到包加速指令时(框522),图5的程序终止。当示例请求处理器308确定接收到包加速指令时,示例请求处理器308和/或示例储存库接口306公布用于加速发布的包(框524)。根据所示示例,示例请求处理器308通知示例储存库接口306在示例储存库116中存储包被安排加速发布的指示(例如,标记)。因此,当示例请求处理器308接收到来自虚拟服务器机架的请求(例如,软件更新请求)时,示例请求处理器308将检测该标记并通知请求的虚拟服务器机架加速的包是可用的(例如,用于建议虚拟服务器机架应该部署包,即使不是计划发布的时间)。然后图5的程序终止。

图6-8示出了表示用于实现图2和/或图4的示例生命周期管理器228的示例机器可读指令的流程图。在这些示例中,机器可读指令包括由处理器(诸如下面结合图6-8讨论的示例处理器平台1000中示出的处理器1012)执行的一个或更多程序。该程序可以体现为存储在有形计算机可读存储介质(诸如cd-rom、软盘、硬盘驱动器、数字多功能盘(dvd)、蓝光盘或与处理器1012相关联的存储器)上的软件,但是整个程序和/或其部分可选地可由除了处理器1012之外的设备执行和/或体现为固件或专用硬件。另外,尽管参照图6-8所示的流程图描述了示例程序,可选地可以使用实现示例生命周期管理器228的许多其他方法。例如,可以改变框的执行顺序和/或可以改变、消除或组合所描述的一些框。

如上所述,图6-8的示例过程可以使用存储在有形计算机可读存储介质(例如硬盘驱动器、闪存、只读存储器(rom)、压缩盘(cd)、数字多功能盘(dvd)、高速缓存、随机存取存储器(ram)和/或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓存和/或高速缓存信息)的任何其他存储设备或存储盘)上的编码指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语有形计算机可读存储介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号以及排除传输介质。如本文所使用的,“有形计算机可读存储介质”和“有形机器可读存储介质”可互换使用。附加地或可选地,可以使用存储在非暂时性计算机和/或机器可读介质(例如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂的情况、临时缓存和/或高速缓存信息)的任何其他存储设备或存储盘)上的编码指令(例如,计算机和/或机器可读指令)来实现图6-8的示例过程。

当示例包管理器402确定接收到的清单是否是新的时(框602),图6的过程开始。示例包管理器402可以接收请求中的包,以向示例软件管理器112的示例请求处理器308发送对新包的请求,可以从示例请求处理器308发送到示例包管理器402的通知中接收清单等。示例包管理器402可以确定清单是否是新的(例如,先前未处理),但是分析存储在生命周期管理器中的信息(例如,分析经处理的包的列表、分析版本号以确定新接收到的清单中标识的版本号是否大于最近安装的包的版本号等)。当示例包管理器402确定清单不是新的时,包管理器402丢弃清单(框604)。

当示例包管理器402确定清单是新的时(框602),示例包管理器402确定清单是否撤销先前接收到的清单(框606)。例如,清单可以指示先前接收到的清单已经被撤销,并且应当被阻止安装和/或应当卸载在撤销的清单中标识的软件,而不是标识新的和/或更新的软件(框608)。

当示例包管理器402确定清单未撤销先前清单时(框606),示例包管理器402将虚拟服务器机架206的标识信息与包含在清单中的标识信息进行比较,以确定清单是否标识虚拟服务器机架206(框610)。例如,使用不同软件的不同迭代的虚拟服务器机架可以被分配。当清单与虚拟服务器机架206不匹配时,示例包管理器402丢弃示例清单(框606)。

当示例包管理器402确定清单与示例虚拟服务器机架206匹配时(框610),示例用户接口406通知虚拟服务器机架206的管理员已经接收到新的清单(框612)。例如,示例用户接口406可以向管理员发送电子消息、可以设置通知、可以将任务添加到任务列表等。示例用户接口406从管理员接收下载时间表(框614)。可选地,可以通过分析系统来自动确定下载时间表,以确定系统资源可用于下载在清单中标识的软件的时间,和/或可以在管理员被通知新的清单之前、之时和/或之后自动开始下载。利用该时间表(或自动地),示例包管理器402下载在清单中标识的软件组件(框616)。可以从示例软件管理器114、从软件分销商、从硬件制造商(例如,制造商可以分配硬件驱动器)等下载软件组件。示例包管理器402将软件包存储在示例生命周期储存库404中(框618)。然后图6的过程终止。

图7是示出了可以被执行以实现示例生命周期管理器228来安排下载的软件(例如,由图6所示的过程下载的软件)的安装的示例机器可读指令的流程图。当示例用户接口406接收到将先前下载的软件包安装到示例生命周期储存库404的指令时(框702),图7的示例过程开始。示例安装协调器412检查下载的软件的有效性(框704)。有效性检查可以包括针对已知的有效值(例如,由软件的分销商发布的示例软件管理器114公开的已知值等)来验证签名、指纹、校验和、散列等。附加地或可选地,可以扫描软件以查找病毒、恶意软件、恶意行为等。附加地或可选地,可以通过分析在示例虚拟服务器机架206上操作的软件和在示例虚拟服务器机架206上安装的配置来检查软件与示例虚拟服务器机架206的兼容性(例如,在示例虚拟服务器机架206的管理员已经定制了由示例虚拟成像设备112实现的库存配置之外的示例虚拟服务器机架206。

然后示例安装协调器412基于安装指令来确定将被影响的物理设备(框706)。包可以包括用于示例虚拟服务器机架206的物理机架202、204中包括的一个或更多个物理设备的软件。例如,包可以包括用于升级tor交换机a,b210、212、216、216、218的固件的软件。在这样的示例中,示例安装协调器412确定tor交换机a,b210、212、216、216、218上的软件的安装将需要重新启动这些交换机中的每一个。

示例依赖性分析器408另外确定可以独立执行包中的哪个软件安装(框708)。当软件安装不依赖于另一个软件安装或不是作为安装一部分的进程时,则可以独立执行软件安装。示例依赖性分析器408还分析包中的软件以确定哪个软件安装依赖于其他软件安装或操作(框710)。例如,依赖性分析器408可以分析由示例软件管理器114生成的软件包清单文件中包括的依赖性信息。根据所示示例,依赖性分析器408表示来自框708和710在经排序的软件清单中的具有在经排序的清单中标识的依赖性的信息。

示例安装协调器412分析在框706-710中收集的信息,以生成安装时间表,以使软件安装在示例虚拟服务器机架206中(框712)。根据所示的示例,当那些安装不影响相同的物理设备时,安装协调器412并行地安排非依赖性安装的安装。安装协调器412另外安排软件组件的安装,以确保在安装需要依赖性的软件之前安装所需的依赖性。示例安装协调器412根据生成的时间表来执行软件的安装。可选地,示例安装协调器412可以安排其他组件来执行安装(例如,使用要在其上安装软件的物理设备的安装代理来安排软件安装)。

图8是示出可以被执行以实现示例生命周期管理器228来安装下载的软件(例如,由图7中示出的示例过程安排的软件安装)的示例机器可读指令的流程图。当示例安装协调器412确定所请求的软件安装是否包括对无中断安装的请求(框802)时,图8的示例过程开始。例如,示例用户接口406可以接收执行无中断安装(例如,通过最小化完全不可用的资源来减少或消除对虚拟服务器机架206的用户的影响的安装)的用户请求。例如,可以通过在任何给定时间使得不会所有冗余资源不可用(例如,通过更新和重新启动一次tor交换机a,b210、212、216、218)来消除对用户的影响。尽管无中断安装减少了对用户的影响,但是安装过程可能需要更长时间,并且因此在所有情况下管理员可能都不想要(例如,当需要软件补丁来解决虚拟服务器机架206的漏洞或问题)。

当不请求无中断关闭时(框802),控制进行到框816。

当请求无中断关闭时(框802),示例安装协调器412尝试安排给物理设备以独立不可用(例如,使得在任何给定时间不会全部备用设备不可用)。示例容量分析器410然后确定用于执行分派给示例虚拟服务器机架206的一个或更多工作负载的计算资源需求(框806)。根据所示示例,容量分析器410通过分析与一个或更多工作负载相关联的一个或更多服务等级协议来确定一个或更多工作负载需求。附加地或可选地,容量分析器410可以执行对一个或更多工作负载需求的现场分析(例如,通过监视活动、峰值、平均值等资源利用率(例如,处理器利用率、存储器利用率、存储利用率等))。示例容量分析器410然后确定安装时间表是否会减少可用的计算资源,从而不能满足一个或更多工作负载的计算需求(框808)。示例容量分析器410考虑计算资源需求以及所需的服务等级协议要求,诸如所需的计算资源冗余(例如,所有处理资源包括冗余处理资源的要求)。

当没有足够的计算资源来根据时间表执行安装并满足一个或更多工作负载的计算资源需求时(框808),示例安装协调器412将附加计算资源添加到用于一个或更多工作负载的集群(框812)。例如,如果集群与8个物理计算资源224相关联,并且全部8个物理计算资源224需要满足在集群上执行一个或更多工作负载的需求,则不可能执行物理计算资源224的更新,即使一次只有一个计算资源将会脱机。相应地,安装协调器412临时添加另一个计算资源(例如,另一个物理计算资源224)。要被添加到集群的计算资源可以来自未使用的、空闲的、备用的等计算资源池,可以来自另一个集群,其包括比满足在集群中执行的一个或更多工作负载的需求所需的计算资源更多的计算资源。

在确定存在足够的计算资源(框808)或增加额外的计算资源(框812)之后,示例安装协调器将虚拟计算元件从要更新的计算资源中移出(框814)。虚拟计算元件可被移动以在集群中可用的另一计算资源(例如,处理资源、存储资源、网络资源等)和/或已被添加到集群的另一计算资源上执行。

在移动虚拟机资源(框814)或确定未请求无中断关闭(框802)之后,示例安装协调器412将软件包安装在当前选择的计算资源上(框816)。根据所示示例,安装包括任何所需的重新启动,以便准备软件用于执行。

在计算资源被更新之后,在框814中如果虚拟计算资源被移出更新的物理计算资源,则示例安装协调器412将虚拟计算资源移回到更新的物理计算资源(框818)。

示例安装协调器412确定是否有附加的物理计算资源要被更新(框820)。当有附加的计算资源被更新时,示例安装协调器412选择下一个物理计算资源(框822)并且控制返回到框814(如果请求无中断关闭)或框816(如果没有请求无中断关闭)。

当没有其他计算资源要更新时(框824),示例安装协调器412确定计算资源是否被添加到计算集群(例如,如果执行了框812)(框824)。当没有附加的计算资源被添加到集群时,图8的过程终止。当有附加的计算资源被添加到集群时,示例安装协调器412将所添加的计算资源返回到它们的先前状态(框826),并且图8的过程终止。例如,安装协调器412可以将计算资源移回到空闲状态、备用状态、包括过量计算资源的另一个集群等。

图9是能够执行图5的指令以实现图1a、图1b和/或图3的软件管理器114的示例处理器平台900的框图。处理器平台900可以是例如服务器、个人计算机、移动设备(例如,手机、智能电话、诸如ipadtm的平板电脑)、个人数字助理(pda)、互联网设备、dvd播放器、cd播放器、数字录像机、蓝光播放器、游戏机、个人录像机、机顶盒或任何其他类型的计算设备。

所示示例的处理器平台900包括处理器912。所示示例的处理器912是硬件。例如,处理器912可以由来自任何期望的家族或制造商的一个或更多个集成电路、逻辑电路、微处理器或控制器来实现。示例处理器912包括示例软件接收器302、示例包管理器304、示例储存库接口306和示例请求处理器308。

所示示例的处理器912包括本地存储器913(例如,高速缓存)。所示示例的处理器912经由总线918与包括易失性存储器914和非易失性存储器916的主存储器进行通信。易失性存储器914可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机存取存储器(rdram)和/或任何其他类型的随机存取存储器设备实现。非易失性存储器916可以由闪存和/或任何其他期望类型的存储器设备来实现。访问主存储器914、916由存储器控制器控制。

所示示例的处理器平台900还包括接口电路920。接口电路920可以由任何类型的接口标准来实现,诸如以太网接口、通用串行总线(usb)和/或pciexpress接口。

在所示示例中,一个或更多个输入设备922连接到接口电路920。一个或更多个输入设备922允许用户将数据和命令输入到处理器1012中。一个或更多个输入设备可以由例如音频传感器、麦克风、照相机(定格画面或视频)、键盘、按钮、鼠标、触摸屏、跟踪板、跟踪球、等点和/或语音识别系统实现。

一个或更多个输出设备924也连接到所示示例的接口电路920。输出设备1024可以由例如显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器、阴极射线管显示器(crt)、触摸屏、触觉输出设备、打印机和/或扬声器)来实现。所示示例的接口电路920因此通常包括图形驱动器卡、图形驱动器芯片或图形驱动器处理器。

所示示例的接口电路920还包括通信设备(诸如发射机、接收机、收发机、调制解调器和/或网络接口卡),以辅助经由网络926(例如,以太网连接、数字用户线路(dsl)、电话线路、同轴电缆、蜂窝电话系统等)与外围机器(例如,任何种类的计算设备)交换数据。

所示示例的处理器平台900还包括用于存储软件和/或数据的一个或更多个大容量存储设备928。这种大容量存储设备928的示例包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光盘驱动器、raid系统和数字多功能盘(dvd)驱动器。

图5的编码指令932可以被存储在大容量存储设备928、易失性存储器914、非易失性存储器916中和/或可移除有形计算机可读存储介质(诸如cd或dvd)上。

图10是能够执行图6-8的指令以实现图2和/或图4的生命周期管理器228的示例处理器平台1000的框图。处理器平台1000可以是例如服务器、个人计算机、移动设备(例如,手机、智能电话、诸如ipadtm的平板电脑)、个人数字助理(pda)、互联网设备、dvd播放器、cd播放器、数字录像机、蓝光播放器、游戏机、个人录像机、机顶盒或任何其他类型的计算设备。

所示示例的处理器平台1000包括处理器1012。所示示例的处理器1012是硬件。例如,处理器1012可以由来自任何期望的家族或制造商的一个或更多个集成电路、逻辑电路、微处理器或控制器来实现。示例处理器1012包括示例包管理器402、示例用户接口406、示例依赖性分析器408、示例容量分析器410以及示例安装协调器412。

所示示例的处理器1012包括本地存储器1013(例如,高速缓存)。所示示例的处理器1012经由总线1018与包括易失性存储器1014和非易失性存储器1016的主存储器进行通信。易失性存储器1014可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机存取存储器(rdram)和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器1016可以由闪存和/或任何其他期望类型的存储器设备来实现。访问主存储器1014、1016由存储器控制器来控制。

所示示例的处理器平台1000还包括接口电路1020。接口电路1020可以由任何类型的接口标准来实现,诸如以太网接口、通用串行总线(usb)和/或pciexpress接口。

在所示示例中,一个或更多个输入设备1022连接到接口电路1020。一个或更多个输入设备1022允许用户将数据和命令输入到处理器1012中。一个或更多个输入设备可以由例如音频传感器、麦克风、照相机(定格画面或视频)、键盘、按钮、鼠标、触摸屏、跟踪板、跟踪球、等点和/或语音识别系统来实现。

一个或更多个输出设备1024也连接到所示示例的接口电路1020。输出设备1024可以例如由显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器、阴极射线管显示器(crt)、触摸屏、触觉输出设备、打印机和/或扬声器)来实现。因此,所示示例的接口电路1020通常包括图形驱动器卡、图形驱动器芯片或图形驱动器处理器。

所示示例的接口电路1020还包括通信设备(诸如发射机、接收机、收发机、调制解调器和/或网络接口卡),以辅助经由网络1026(例如,以太网连接、数字用户线路(dsl)、电话线路、同轴电缆、蜂窝电话系统等)与外围机器(例如,任何其他种类的计算设备)交换数据。

所示示例的处理器平台1000还包括用于存储软件和/或数据的一个或更多个大容量存储设备1028。这种大容量存储设备1028的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、raid系统和数字多功能盘(dvd)驱动器。

图6-8的编码指令1032可以被存储在大容量存储设备1028、易失性存储器1014、非易失性存储器1016中和/或可移除有形计算机可读存储介质(诸如cd或dvd)上。

从上文所述将认识到,上述公开的方法、装置和制品有助于更新包括在虚拟服务器机架架构中的计算资源的软件、固件、补丁、驱动程序等。在一些示例中,软件更新被部署到包括在虚拟服务器机架中的各种物理计算资源,同时最小化对这些计算资源的操作的影响。在一些示例中,生命周期管理器管理软件安装过程,以安排异构计算环境的软件更新,以确保满足依赖性和软件执行要求。

尽管本文已经公开了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利权利要求范围内的所有方法、装置和制品。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1