CN107533503B - 在部署期间选择虚拟化环境的方法和数据中心 - Google Patents
在部署期间选择虚拟化环境的方法和数据中心 Download PDFInfo
- Publication number
- CN107533503B CN107533503B CN201680022913.0A CN201680022913A CN107533503B CN 107533503 B CN107533503 B CN 107533503B CN 201680022913 A CN201680022913 A CN 201680022913A CN 107533503 B CN107533503 B CN 107533503B
- Authority
- CN
- China
- Prior art keywords
- virtualization
- virtualized application
- virtualized
- score
- workload
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000008569 process Effects 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 32
- 238000003491 array Methods 0.000 claims description 8
- 238000004519 manufacturing process Methods 0.000 claims description 8
- 238000011156 evaluation Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000002955 isolation Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3442—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/4555—Para-virtualisation, i.e. guest operating system has to be modified
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/815—Virtual
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
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 Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
公开了选择虚拟化环境的方法和装置。示例性方法包括:经由处理器确定正在等待部署的虚拟化应用的特征,经由处理器分析虚拟化应用的特征,以选择能够执行虚拟化应用的虚拟化环境子集,所述虚拟化环境子集选自在数据中心中使用的不同虚拟化环境类型的虚拟化环境集,经由处理器将虚拟化应用的特征与虚拟化环境子集的虚拟化环境进行比较,以确定虚拟化环境的分数,并基于分数在虚拟化环境中部署虚拟化应用。
Description
相关申请的交叉引用
本申请要求2015年3月5日提交的申请号为1095/CHE/2015的印度非临时专利申请和2015年5月8日提交的申请号为14/707,012的美国非临时专利申请的权益,其两者均通过引用整体并入本文中。
技术领域
本公开总地涉及虚拟计算,更具体地涉及选择虚拟化环境的方法和装置。
背景
虚拟化计算机系统提供了益处,诸如在单个硬件计算机上执行多个计算机系统的能力,复制计算机系统、在多个硬件计算机之间移动计算机系统等。
“基础设施即服务”(Infrastructure-as-a-Service,通常也称为“IaaS”)通常描述了一套由服务提供商提供的、作为综合解决方案以允许弹性创建虚拟化、网络化和池化(pooled)的计算平台(有时被称为“云计算平台”)的技术。企业可将IaaS用作企业内部的组织云计算平台(有时称为“私有云”),这使应用程序开发人员能够访问基础设施资源,诸如虚拟化服务器、存储和网络资源。通过提供对运行应用程序所需的硬件资源的就绪访问,云计算平台使开发人员能够以更大的规模和比以往任何时候更快的步调构建、部署和管理网络应用程序(或任何其他类型的联网应用程序)的生命周期。
附图说明
图1是示例性虚拟计算环境的框图,其中虚拟化平台管理器可以如本文所公开的那样操作。
图2是虚拟化平台管理器的示例性实现方式的框图。
图3-7是表示可以被执行以实现图1和/或图2的示例性虚拟化平台管理器的机器可读指令的流程图。
图8是能够执行图3-7的示例性机器可读指令以实现图1和/或图2的示例性虚拟化平台管理器的示例性处理平台的框图。
详细描述
用于虚拟化计算机系统的示例性系统在以下专利申请中描述: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 REAL MACHINES”、申请号为60/919,965的美国临时专利申请,以及在2012年12月12日提交的题为“METHODS ANDAPPARATUS FOR VIRTUALIZED COMPUTING”、申请号为61/736,422的美国临时专利申请,其全部三个通过引用整体并入本文中。
物理计算环境包括物理计算资源,诸如服务器、存储装置等。物理计算资源在维护上可能昂贵,和/或可能需要专业知识来操作和/或服务。虚拟计算环境(有时被称为“虚拟数据中心”)虚拟化这样的物理资源或物理组件,使得实际上不拥有物理计算资源(例如服务器、存储组件和网络)的某人有可能通过商业交易利用物理计算资源。虚拟化将各种物理资源聚集并呈现为虚拟计算环境中的虚拟资源。另外或替代地,虚拟化允许在相同的硬件或相同的硬件资源池上执行的工作负载(workload)的隔离。本文使用的工作负载是应用程序实例或应用程序实例集要执行的工作的抽象。例如,工作负载可能正在实现网络服务器、支付处理服务器,实现网络服务器农场(farm),实现多层应用程序等。因此,虚拟化允许在相同底层硬件上执行的网络服务器和支付处理服务器被隔离、可以访问单独的虚拟硬件等。
存在许多不同类型的虚拟化环境。虚拟化环境的三种示例性类型有:完全虚拟化、半虚拟化和操作系统虚拟化。
如本文所使用的,完全虚拟化是其中硬件资源由超级管理程序(hypervisor)管理以向虚拟机提供虚拟硬件资源的虚拟化环境。在完全虚拟化环境中,虚拟机无法访问底层硬件资源。在典型的完全虚拟化中,具有嵌入式超级管理程序(例如,)的主机操作系统安装在服务器硬件上。包括虚拟硬件资源的虚拟机然后被部署在超级管理程序上。客户机操作系统被安装在虚拟机中。超级管理程序管理服务器硬件的硬件资源与分配给虚拟机的虚拟资源之间的关联(例如,将物理随机存取存储器(RAM)与虚拟RAM相关联)。通常,在完全虚拟化中,虚拟机和客户机操作系统无法对底层服务器的硬件资源可见和/或访问。此外,在完全虚拟化中,完全客户机操作系统通常被安装在虚拟机中,而主机操作系统则安装在服务器硬件上。示例性虚拟化环境包括Microsoft和基于内核的虚拟机(KVM)。
如本文所使用的,半虚拟化是其中硬件资源由超级管理程序管理以向虚拟机提供虚拟硬件资源,并且客户机操作系统还被允许访问服务器的一些或所有的底层硬件资源(例如,不访问中间虚拟硬件资源)的虚拟化环境。在典型的半虚拟化系统中,主机操作系统(例如,基于Linux的操作系统)安装在服务器硬件上。超级管理程序(例如,超级管理程序)在主机操作系统上执行。包括虚拟硬件资源的虚拟机随后被部署在超级管理程序上。超级管理程序管理服务器硬件的硬件资源与分配给虚拟机的虚拟资源之间的关联(例如,将物理随机存取存储器(RAM)与虚拟RAM相关联)。在半虚拟化中,安装在虚拟机中的客户机操作系统也被配置为向服务器直接访问一些或全部硬件资源。例如,客户机操作系统可以采用允许客户机操作系统访问硬件资源而无需经过虚拟硬件层的特殊驱动程序被预编译。例如,客户机操作系统可以采用允许客户机操作系统访问安装在服务器硬件中的声卡的驱动程序被预编译。直接访问硬件(例如,不访问虚拟机的虚拟硬件资源)可更高效,可以允许执行虚拟机和/或超级管理程序不支持的操作等。
操作系统虚拟化在本文中也称为容器(container)虚拟化。如本文所使用的,操作系统虚拟化是指在操作系统中进程被隔离的系统。在典型的操作系统虚拟化系统中,主机操作系统安装在服务器硬件上。可替代地,主机操作系统可以安装在完全虚拟化环境或半虚拟化环境的虚拟机中。操作系统虚拟化系统的主机操作系统被配置(例如,利用定制内核)成为在主机操作系统(例如,在主机操作系统上执行的应用程序)内执行的进程提供隔离和资源管理。进程的隔离称为容器。因此,进程在容器内执行,所述容器将该进程与在主机操作系统上执行的其他进程隔离。因此,操作系统虚拟化提供隔离和资源管理能力,而没有完全虚拟化环境或半虚拟化环境所使用的资源开销。示例性操作系统虚拟化环境包括Linux Containers LXC和LXD,DockerTM,OpenVZTM等。
在某些情况下,数据中心(或链接数据中心池)可包括多个不同的虚拟化环境。例如,数据中心可以包括由完全虚拟化环境、半虚拟化环境和操作系统虚拟化环境管理的硬件资源。在这样的数据中心中,工作负载可以部署到任何虚拟化环境。
本文中公开的一些方法和装置分析要部署的工作负载的特征以及可用虚拟化环境的特征,以确定部署工作负载的虚拟化环境。本文中公开的一些方法和装置分析部署在第一虚拟化环境中的工作负载,以确定工作负载是否应迁移到(可用虚拟化环境的)第二虚拟化环境。在一些这样的方法和装置中,第一虚拟化环境基于工作负载的分析接收执行工作负载的第一分数(score),第二虚拟化环境基于工作负载的分析接收执行工作负载的第二分数,以及当第二分数超过(或满足)第一分数时,工作负载将被迁移。
图1是示例性虚拟计算环境100的框图,其中虚拟化平台管理器112可以如本文所公开的那样操作。
图1的示例性虚拟计算环境100包括与示例性计算服务器104通信的存储阵列102的示例性网络。存储阵列102的示例性网络可以使用任何合适的有线和/或无线存储来实现,包括例如一个或更多个光纤通道(Fiber Channel)存储区域网络(Storage AreaNetwork,SAN)阵列、一个或更多个因特网小型计算机系统接口(Internet Small ComputerSystem Interface,iSCSI)SAN阵列、一个或更多个网络附加存储(Network AttachedStorage,NAS)阵列等。在所示示例中,存储阵列102的网络通过存储区域网络连接到服务器104组并在其之间共享,从而使能存储资源的聚集,并且使能供给存储资源到例如虚拟化平台107、108和109的增加的灵活性。虽然示例性虚拟计算环境100包括连接到每个计算服务器104的单个存储阵列102,但是可以使用任何数目的存储阵列102且可以使用任何其他类型的共享和非共享的存储硬件(例如,安装在每个计算服务器104中的硬盘驱动器、基于存储资源的云等)。
在图1所示的示例中,示例性服务器104可以是经由示例性网络106与存储阵列102的示例性网络通信的x86服务器。图1中的网络106可以使用任何合适的有线和/或无线网络来实现,诸如,例如一个或更多个数据总线、一个或更多个局域网(LAN)、一个或更多个无线LAN、一个或更多个蜂窝网络、互联网等。
图1的示例性虚拟化平台108-109在示例性计算服务器104的相应计算服务器上执行。根据所示示例,示例性的第一虚拟化平台107实现示例性虚拟机110在其中执行的完全虚拟化环境。示例性的第二虚拟化平台108实现示例性虚拟机115在其中执行的半虚拟化环境。示例性的第三虚拟化平台108实现示例性应用程序120在其中在由示例性的第三虚拟化平台109创建的容器内执行的操作系统虚拟化环境。在其他实现方式中,可以使用任何数目的虚拟化平台和虚拟化环境和/或其组合。
示例性虚拟化平台107-109包括管理工具和系统以辅助虚拟化平台107-109的管理。例如,管理工具可以为管理员提供接入,以为应用程序120配置虚拟机110、115和/或容器。另外或者替代地,管理工具可以为管理员提供接入,以配置将示例性服务器104的硬件资源分配给虚拟化平台107-109。示例性虚拟化平台107-109可以各自包括单独的管理工具和系统,和/或可以提供管理工具和系统,来管理整个虚拟计算环境100。例如,虚拟计算环境100可以包括云管理实施系统(cloud management administration system)(例如,VMware vCloud Automation)。
示例性虚拟化平台100包括正在等待部署的第一工作负载140。例如,工作负载140可以是需要部署在虚拟化平台上用于执行的网络服务器、数据库服务器、信用卡处理服务器等。示例性虚拟化平台100还包括部署在在示例性第一虚拟化平台107中执行的示例性虚拟机110之一中的第二工作负载141。尽管作为示例提供了两个工作负载140、141,但是任何数目的待部署和已部署的工作负载可以被包括在示例性虚拟环境100的实现方式中。
为了管理示例性虚拟计算环境100,图1的示例性虚拟计算环境100包括示例性虚拟化平台管理器112。示例性虚拟化平台管理器112管理将工作负载(例如,示例性工作负载140和示例性工作负载141)指派给示例性虚拟化平台107-109中的一个或多个。根据所示示例,在接收到在示例性虚拟环境100中部署新工作负载的请求时,调用虚拟化平台管理器112。例如,虚拟化平台管理器112可以使用管理客户端114接收来自用户的请求,可以从环境管理工具(例如,云管理工具)接收请求等。还调用示例性虚拟化平台管理器112以查看所部署的工作负载,以确定是否应将工作负载从一个虚拟化平台107-109迁移到另一个虚拟化平台107-109。例如,虚拟化平台管理器112可以被配置为自动地、定期地(例如,根据时间表)分析所部署的工作负载、不定期地分析所部署的工作负载、根据来自使用管理客户端114的用户的请求分析所部署的工作负载、根据使用管理客户端114的用户的请求分析所有部署的工作负载。
一旦被调用,示例性虚拟化平台管理器112分析感兴趣的工作负载的特征(例如,要被部署的示例性工作负载140或被考虑从示例性虚拟化平台107迁移到示例性虚拟化平台107-109中的另一个的示例性已部署工作负载141)和示例性虚拟化平台107-109的特征,以确定示例性虚拟化平台107-109中的哪一个或哪些可以用于工作负载141、140(例如,示例性虚拟化平台107-109中的哪些与工作负载140、141兼容)。当多于一个示例性虚拟化平台107-109可以用于工作负载140、141时,示例性虚拟化平台管理器112进一步分析工作负载140、141的特征以及示例性虚拟化平台107-109的特征,以确定示例性虚拟化平台107-109的分数(例如,确定被确定为与工作负载140、141兼容的每个虚拟化平台107-109的分数)。示例性虚拟化平台107-109将工作负载140、141部署或迁移到具有最佳分数(例如,最高分数、最低分数等)的示例性虚拟化平台107-109之一。示例性虚拟化平台管理器112可以另外包括用于处理当两个或多个虚拟化平台107-109接收相等分数(例如,随机指派给相等分数的虚拟化平台107-109之一,指派给相等分数的虚拟化平台107-109之一,以努力平衡虚拟化平台107-109上的负载等)时的情况的操作。
图2是虚拟化平台管理器112的示例性实现方式的框图。图2的示例性虚拟化平台管理器112包括示例性工作负载分析器202、示例性虚拟化环境分析器204、示例性可行性分析器206、示例性配置数据存储208、示例性分数生成器210、示例性工作负载部署器212和示例性工作负载迁移器214。
图2的示例性工作负载分析器202分析将为其选择虚拟化平台(例如,第一虚拟化平台107、第二虚拟化平台108和/或第三虚拟化平台109)的工作负载(例如,示例性工作负载140和/或示例性工作负载141)。示例性工作负载分析器202分析工作负载140、141以确定工作负载140、141的特征。例如,工作负载分析器202可以分析工作负载140、141的配置信息(例如,在开发/创建工作负载140、141期间创建的配置文件,工作负载140、141的配置设置等)。示例性工作负载分析器202确定:
A)用于工作负载140、141的计算资源设置、需求、请求等,
C)工作负载140、141的网络需求,
E)工作负载140、141是否需要在稍后的时间升级(例如通过安装安全补丁来升级)。
示例性工作负载分析器202可以附加地或替代地收集关于工作负载140、141的任何其他特征和/或状态信息。例如,示例性工作负载分析器202可以确定工作负载140、141的操作状态(例如,工作负载分析器202可以确定工作负载141是否正在执行和/或是否处于工作负载141能够被迁移的状态)。
在收集示例性工作负载140、141的特征之后,示例性工作负载分析器202将特征信息提供给示例性可行性分析器206和示例性分数生成器210。另外,示例性工作负载分析器202将关于工作负载140、141的信息提供给工作负载部署器212和/或工作负载迁移器214,用于分别在部署工作负载140、141和/或迁移工作负载140、141中使用。
示例性虚拟化环境分析器204分析示例性虚拟计算环境100的示例性虚拟化平台107-109以确定虚拟化平台107-109的特征。示例性虚拟化环境分析器204通过查询虚拟化平台107-109的管理平台的应用程序编程接口(application programming interface,API)来收集虚拟化平台107-109的特征信息。虚拟化环境分析器204可以附加地或替代地通过访问与虚拟化平台107-109相关联的配置文件、访问虚拟化平台107-109的配置设置、访问用于虚拟化平台107-109的操作状态信息等来分析虚拟化平台107-109的配置信息。
示例性虚拟化环境分析器204确定:
A)虚拟化平台107-109所使用的操作系统和
B)虚拟化平台107-109中可用的计算资源。
虚拟化环境分析器204可附加地或替代地收集关于虚拟化平台107-109的任何其他特征和/或状态信息。
在收集示例性虚拟化平台107-109的特征之后,示例性虚拟化环境分析器204将特征信息提供给示例性可行性分析器206和示例性分数生成器210。
图2的示例性可行性分析器206从示例性配置数据存储208检索配置信息,并且使用配置信息将配置信息与工作负载140、141的特征和虚拟化平台107-109的特征进行比较,以确定虚拟化平台107-109中的哪一个能够执行工作负载140、141。结合图5#描述了用于确定在示例性虚拟化平台107-109中执行工作负载140、141的可行性信息的示例性过程。
图2的示例性配置数据存储208存储配置信息,所述配置信息在选择用于部署和/或迁移工作负载140、141的虚拟化平台107-109之一中使用。示例性配置数据存储208存储文件,所述文件包含用于确定虚拟化平台107-109中的哪一个能够执行工作负载140、141的第一规则集和用于对虚拟化平台107-109执行工作负载140、141进行计分的第二规则集。可替代地,可以存储单个规则集和/或附加规则集或其他配置信息。
配置数据存储208可以由任何类型的存储装置来实现,诸如,例如硬盘、闪存驱动器、网络附加存储、示例性存储阵列102或任何其他类型的存储。此外,配置数据存储208可以以任何类型的格式存储配置,诸如,例如逗号分隔值(CSV)文件、可扩展标记语言(XML)文件等。
图2的示例性分数生成器210从示例性配置数据存储208检索配置信息,并且使用配置信息将配置信息与工作负载140、141的特征和虚拟化平台107-109的特征进行比较,以确定用于执行工作负载140、141的虚拟化平台107-109的分数。示例性分数生成器210接收能够执行工作负载140、141的虚拟化平台107-109中的各个的标识。所示示例的分数生成器210根据可行性分析器206确定能够执行工作负载140、141的每个虚拟化平台107-109的分数。因此,示例性分数生成器210不消耗计算资源针对不能够执行工作负载140、141的虚拟化平台107-109中的各个生成分数。结合图6#和图7#描述用于确定分数的示例性过程。
在生成用于示例性虚拟化平台107-109的分数之后,图2的示例性分数生成器210标识虚拟化平台107-109中具有最佳分数(例如,最高分数、最低分数等)的所选择的一个。分数生成器210将虚拟化平台107-109中所选择的一个标识到示例性工作负载部署器212和示例性工作负载迁移器214。结合图6#描述用于确定在示例性虚拟化平台107-109中执行工作负载140、141的分数信息的示例性过程。
图2的示例性工作负载部署器212从示例性工作负载分析器202接收关于工作负载140、141的信息,并且当工作负载140、141是要新部署的工作负载(例如,示例性工作负载140)时,工作负载部署器212将工作负载140、141部署在由示例性分数生成器210标识的虚拟化平台107-109中。例如,示例性工作负载部署器212可以将工作负载140、141的数据传送到存储阵列102,并使工作负载140、141在虚拟化平台107-109中由分数生成器210标识的所选择的一个上被执行。
图2的示例性工作负载迁移器214从示例性工作负载分析器202接收关于工作负载140、141的信息,并且当工作负载140、141是将要从虚拟化平台107-109中的第一个迁移到虚拟化平台107-109中的第二个的工作负载(例如,示例性工作负载141)时,工作负载迁移器214将工作负载140、141迁移到由示例性分数生成器210标识的虚拟化平台107-109。例如,示例性工作负载迁移器214可以使得工作负载140、141被关闭(turned off)、停止(shutdown)、暂停(suspended)等等,然后被传送到虚拟化平台107-109中由分数生成器210标识的所选择的一个。在另一示例中,工作负载迁移器214可以调用在线转换,其中工作负载在执行时被分析,直到工作负载被完全传送,然后在旧平台上停止工作负载并在新平台上启动。可替代地,可以利用用于迁移工作负载140、141的任何其他过程。
尽管实现图1的示例性虚拟化平台管理器112的示例性方式在图2中示出,然而图2所示的元件、过程和/或装置中的一个或更多个可以以任何其他方式组合、划分、重新布置、省略、消除和/或实现。此外,图1中的示例性工作负载分析器202、示例性虚拟化环境分析器204、示例性可行性分析器206、示例性分数生成器210、示例性工作负载部署器212、示例性工作负载迁移器214和/或更一般地,示例性虚拟化平台管理器112可以由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,图1中的任何示例性工作负载分析器202、示例性虚拟化环境分析器204、示例性可行性分析器206、示例性分数生成器210、示例性工作负载部署器212、示例性工作负载迁移器214和/或更一般地,示例性虚拟化平台管理器112可以由一个或更多个模拟或数字电路、逻辑电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)来实现。当阅读本专利的覆盖纯粹的软件和/或固件实现方式的任何装置或系统权利要求时,示例性工作负载分析器202、示例性虚拟化环境分析器204、示例性可行性分析器206、示例分数生成器210、示例性工作负载部署器212和/或示例性工作负载迁移器214中的至少一个特此被明确地定义为包括存储软件和/或固件的有形计算机可读存储装置或存储盘,诸如存储器、数字通用盘(DVD)、光盘(CD)、蓝光盘(Blu-ray disk)等。此外,图1的示例性虚拟化平台管理器112可以包括除了图2所示的以外的或代替其的一个或更多个元件、过程和/或装置,和/或可以包括任何或全部所示元件、过程和装置中的不止一个。
代表用于实现图1和/或2的虚拟化平台管理器112的示例性机器可读指令的流程图在图3-7中示出。在该示例中,机器可读指令包括用于由处理器(诸如下面结合图8讨论的示例性处理器平台800中所示的处理器812)执行的程序。该程序可以具体化在存储在诸如CD-ROM、软盘、硬盘驱动器、数字通用盘(DVD)、蓝光盘或与处理器812相关联的存储器的有形计算机可读存储介质上的软件中,但是整个程序和/或其部分可以替代地由除处理器812之外的装置执行和/或具体化在固件或专用硬件中。此外,虽然参考图3-7所示的流程图描述了示例性程序,但可以替代地使用实现示例性虚拟化平台管理器112的许多其他方法。例如,可以改变块的执行顺序和/或可以改变、消除或组合所描述的一些块。
图3#是可以被执行以部署新的工作负载(例如,图1的工作负载140)的示例性机器可读指令的流程图。图3#的过程开始于当工作负载分析器202接收到要部署的新的工作负载140时(块3#02)。例如,新的工作负载140可以由利用图1的示例性管理客户端114的用户来标识,可以从云管理工具接收等等。然后,如结合图5的过程5#00所描述的,图1和图2的示例性虚拟化平台管理器112确定图1的示例性虚拟化平台107-109中的哪些能够执行示例性工作负载140(块5#00)。然后,如结合图6#的过程6#00所描述的,示例性虚拟化平台管理器112确定示例性虚拟化平台107-109(在块5#00中被确定为能够执行工作负载140的虚拟化平台107-109)中的哪一个接收到最佳分数(块6#00)。然后,图2的示例性工作负载部署器212将新的工作负载140部署在块6#00标识的虚拟化平台107-109之一中(块3#04)。
图4#是可以被执行以将当前部署在第一虚拟化平台(例如,示例性第一虚拟化平台107)上的工作负载(例如,图1的工作负载141)迁移到第二虚拟化平台(例如,示例性第三虚拟化平台109)的示例性机器可读指令的流程图。图4#的过程开始于当工作负载分析器202接收到要被迁移的所部署的工作负载141的标识时(块4#02)。例如,工作负载141可以在所部署的工作负载的周期性查看期间被标识、可以由利用图1的示例性管理客户端114的用户来标识等。然后,如结合图5#的过程5#00所描述的,图1和图2的示例性虚拟化平台管理器112确定图1的示例性虚拟化平台107-109中的哪些能够执行示例性工作负载141(块5#00)。然后,如结合图6#的过程6#00所描述的,示例性虚拟化平台管理器112确定示例性虚拟化平台107-109(在块5#00中被确定为能够执行工作负载141的虚拟化平台107-109)中的哪一个接收到最佳分数(块6#00)。
然后,图2的示例性工作负载迁移器214确定其中部署了工作负载141的当前虚拟化平台107-109(块4#04)。工作负载迁移器214确定在块6#00中标识的虚拟化平台107-109是否与在其中已经部署工作负载141的当前虚拟化平台107-109相同(块4#06)。如果工作负载141已经部署在块6#00标识的虚拟化平台107-109中,则图4#的过程结束。
如果工作负载141尚未部署在块6#00标识的虚拟化平台107-109中(块4#06),则示例性工作负载迁移器214将工作负载141从虚拟化平台107-109的当前一个迁移到块6#00标识的虚拟化平台107-109之一中(块4#08)。例如,工作负载迁移器214可以使已部署的工作负载141被暂停和/或停止、从当前虚拟化平台107-109导出、导入到块6#00标识的虚拟化平台107-109中、以及被唤醒和/或重新启动。可替代地,工作负载迁移器214可以执行示例性工作负载141从当前虚拟化平台107-109到块6#00标识的虚拟化平台107-109的实时迁移。
图5#是示出用于确定在虚拟化平台107-109上执行工作负载140、141的可行性信息的示例性过程5#00的流程图。图5#的示例性过程开始于当示例性可行性分析器206从示例性配置数据存储208检索可行性配置数据时(块5#02)。块5#04-5#18所示的过程基于可行性配置数据标识的规则。块5#04-5#18的过程可根据可行性配置数据标识的规则而改变。
示例性工作负载分析器202检索与工作负载140、141相关联的客户机操作系统的标识(块5#04)。示例性可行性分析器206确定工作负载分析器202标识的客户机操作系统是否是未经修改的(块5#06)。例如,工作负载分析器202可以确定客户机操作系统是否具有经修改的内核。如果客户机操作系统是经修改的(例如,经修改的内核),则示例性可行性分析器206从可用虚拟化平台集合中移除任何半虚拟化环境(例如,第二虚拟化平台108)(块5#08)。
然后示例性可行性分析器206确定与工作负载140、141相关联的客户机操作系统是否由操作系统虚拟化环境(例如,第三虚拟化平台109)支持(块5#10)。当客户机操作系统不被操作系统虚拟化环境支持时,示例性可行性分析器206从可用虚拟化平台集合中移除任何操作系统虚拟化环境(例如,第三虚拟化平台109)(块5#18)。
如果客户机操作系统由操作系统虚拟化环境支持(块5#10),则然后示例性可行性分析器206确定工作负载140、141的处理需求是否允许使用共享(例如,共享访问处理资源)而不是预留的处理资源(block5#12)。当工作负载140、141请求和/或需要反向(reverse)处理资源时,示例性可行性分析器206从可用虚拟化平台集合中移除任何操作系统虚拟化环境(例如,第三虚拟化平台109)(块5#18)。
如果工作负载140、141的处理需求允许使用共享(块5#12),则然后示例性可行性分析器206确定工作负载140、141的内存需求是否允许使用限制(例如,可以被使用的共享存储器的最大量),而不是预留的存储器(块5#14)。当工作负载140、141请求和/或需要反向存储器资源时,示例性可行性分析器206从可用虚拟化平台集合中移除任何操作系统虚拟化环境(例如,第三虚拟化平台109)(块5#18)。
如果内存需求允许使用限制(块5#14),则然后示例性可行性分析器206确定工作负载140、141的网络需求是否包括操作系统虚拟化环境无法处理的任何需求(块5#16)。例如,工作负载140、141可能需要操作系统虚拟化环境不支持的虚拟交换机功能。当工作负载140、141请求和/或需要不能由操作系统虚拟化环境处理的网络需求时,示例性可行性分析器206从可用虚拟化平台集合中移除任何操作系统虚拟化环境(例如,第三虚拟化平台109)(块5#18)。
在检查可行性需求(例如,块5#06和5#10-5#16)并且移除虚拟化平台107-109中不满足工作负载140、141要求的一个或多个(例如,容器)之后(例如,块5#08和5#18),示例性可行性分析器206将虚拟化平台107-109中支持的虚拟化平台示例性传达给分数生成器210(块5#20)。例如,可行性分析器206可以将虚拟化平台107-109中支持的示例性虚拟化平台的标识存储在示例性配置数据存储208中。
图6#是示出用于确定在虚拟化平台107-109上执行工作负载140、141的分数信息的示例性过程6#00的流程图。图6#的示例性过程开始于当示例性分数生成器210从示例性配置数据存储208检索评估配置数据时(块6#02)。
分数生成器210确定虚拟化平台107-109中是否不止一个示例性虚拟化平台被可行性分析器206标识为支持用于执行工作负载140、141(块6#04)。如果只有一个虚拟化平台107-109被标识为支持(例如,通过图5#所示的过程),则示例性分数生成器210将所选择的一个虚拟化平台107-109报告给工作负载部署器212和工作负载迁移器214(块6#10)。
如果不止一个虚拟化平台107-109被标识为支持(块6#04),则示例性分数生成器210分析工作负载140、141的特征和虚拟化平台107-109的特征(块6#06)。结合图7#描述用于分析工作负载140、141的特征和虚拟化平台107-109的特征的示例性过程。
在分析工作负载140、141的特征和虚拟化平台107-109的特征之后,示例性分数生成器210确定每个虚拟化平台107-109的分数(块6#08)。例如,分数生成器210可以将排名信息转换为数字分数。根据所示示例,分数与工作负载和虚拟化平台的组合相关联。因此,如果针对三个平台分析两个工作负载,则将生成针对第一工作负载的第一分数集(例如,每个平台一个分数),并且可以选择最大分数,以及将生成针对第二工作负载的第二分数集(例如,每个平台一个分数),并且可以选择第二分数集中的最大分数。
然后,示例性分数生成器210确定虚拟化平台107-109中具有最大分数的一个虚拟化平台,并向工作负载部署器212和工作负载迁移器214报告虚拟化平台107-109中具有最大分数的一个虚拟化平台(块6#10)。
图7#示出了用于针对执行工作负载140、141对虚拟化平台107-109计分的示例性过程。图7#的过程可以用于实现图6#的块6#06。
图7#的示例性过程开始于当虚拟化环境分析器204确定虚拟计算环境100可用的计算资源的量时(块7#02)。例如,虚拟化环境分析器204可以查询与虚拟计算环境100相关联的API,以确定可用于分配到虚拟化平台107-109中的新的工作负载的RAM的量。然后分数生成器210将虚拟计算环境100可用的资源与所确定的示例性工作负载分析器202的资源需求进行比较,以确定虚拟计算环境是否具有足够的资源来分配给工作负载140、141(块7#04)。如果没有足够的资源可用于分配给工作负载140、141,则可以利用共享资源、低开销环境(例如,诸如第三虚拟化平台109的操作系统虚拟化环境)。因此,完全虚拟化和半虚拟化环境用低(LOW)分数标记,并且操作系统虚拟化(例如,容器环境)用高(HIGH)分数标记(块7#06)。可替代地,如果有足够的资源可用于分配给工作负载140、141,则所有虚拟化环境用HIGH分数标记(块7#08)。
然后分数生成器210确定是否期望工作负载140、141的客户机操作系统的快速启动时间(块7#10)。例如,工作负载分析器202可以基于与工作负载140、141相关联的配置信息来确定快速启动时间。可替代地,分数生成器210可以提示用户(例如,利用管理客户端114)来指示是否期望工作负载的快速启动时间。如果不期望和/或不需要快速启动时间,则不对虚拟化平台107-109标记分数(块7#12)。可替代地,如果期望和/或需要快速启动时间,则完全虚拟化和半虚拟化环境用LOW分数标记,并且操作系统虚拟化用HIGH分数标记(块7#14)。
然后分数生成器210确定是否将供给元件组(例如,使用相同的客户机操作系统的若干虚拟机和/或容器)(块7#16),例如,工作负载分析器202可以通过分析工作负载140、141中包含的信息来确定工作负载包括元件组。可替代地,分数生成器210可以提示用户(例如,利用管理客户端114)来指示元件组是否或者将被期望包括在工作负载140、141中。如果工作负载140、141中不包括元件组,则到不对虚拟化平台107-109标记分数(块7#18)。可替代地,如果元件组被包括在或者将被期望包括在工作负载140、141中,则全部虚拟化环境用LOW分数标记,半虚拟化环境用中等(MEDIUM)分数标记,并且操作系统虚拟化用HIGH分数标记(块7#20)。
然后分数生成器210确定对于工作负载140、141是否需要或是否期望扩容(scaleout)(块7#22)。例如,分数生成器210可以提示用户(例如,利用管理客户端114)来指示是否需要或是否期望扩容。扩容是工作负载的附加实例被部署的过程(例如,以处理附加的客户访问)。如果不期望扩容,则不对虚拟化平台107-109标记分数(块7#24)。可替代地,如果期望扩容,则完全虚拟化环境和半虚拟化环境用MEDIUM分数进行标记,而操作系统虚拟化用HIGH分数标记(块7#26)。
然后分数生成器210确定工作负载140、141的客户机操作系统是否将在稍后的时间升级(例如,在部署工作负载140、141之后将安装安全补丁或其他升级)(块7#28)。例如,评估配置数据可以指示哪些客户机操作系统利用安全补丁。可替代地,示例性分数生成器210可以提示用户(例如,利用管理客户端114)来指示是否将安装升级。如果不安装升级,则不对虚拟化平台107-109标记分数(块7#30)。可替代地,如果在部署工作负载之后安装升级,则完全虚拟化环境用MEDIUM分数标记,半虚拟化环境用LOW分数标记,而操作系统虚拟化用HIGH分数标记(块7#32)。
然后分数生成器210确定工作负载140、141是否需要或期望高可用性(HA)(例如,容错、故障转移(failover)能力、冗余操作等)(块7#34)。例如,分数生成器210可以提示用户(例如,利用管理客户端114)来指示是否需要或期望HA。如果不期望HA,则不对虚拟化平台107-109标记分数(块7#36)。可替代地,如果期望HA,则完全虚拟化环境用HIGH分数标记,并且半虚拟化环境和操作系统虚拟化用LOW分数标记(块7#38)。
然后分数生成器210确定工作负载140、141是否在生产环境(例如,与开发和/或测试环境相对的)中被利用(块7#40)。例如,分数生成器210可以提示用户(例如,利用管理客户端114)来指示工作负载140、141是否在生产环境中被利用和/或是否将被利用。如果工作负载140、141在生产环境中不被利用和/或将不被利用,则不对虚拟化平台107-109标记分数(块7#42)。可替代地,如果工作负载140、141在生产环境中被利用和/或将被利用,则完全虚拟化环境和半虚拟化环境用HIGH分数标记,并且操作系统虚拟化用LOW分数标记(块7#44)。
因此,根据图7#和图1,根据指派给完全虚拟化环境的标签来标记第一虚拟化平台107,根据指派给半虚拟化环境的标签来标记第二虚拟化平台108,并且根据指派给操作系统虚拟化环境的标签来标记第三虚拟化平台109。
在标记示例性虚拟化平台107-109之后,低(LOW)、中等(MEDIUM)和高(HIGH)的分数被指派数字值并在图6#的块6#08中相加。例如,可以将LOW标签评分为值1,可以将MEDIUM标签评分为值2,并可以将HIGH标签评分为值3。此外,在一些示例中,基于如在评估配置数据中指示的每个分数的重要性加权平均被应用于分数。例如,与块7#04和7#40相关联的分数可以用高(HIGH)重要性(例如,权重为3)进行排名,与块7#10、7#22、7#28和7#34相关联的分数可以用中等(MEDIUM)重要性(例如,权重为2)进行排名,并且与块7#16相关联的分数可以用低(LOW)重要性(例如,权重为1)进行排名。虚拟化平台107-109的加权分数可以通过将重要性值乘以相关联的标记分数、并将每个虚拟化平台107-109的乘积分别相加来计算。
图8是能够执行图3-7的指令以实现图1和/或2的虚拟化平台管理器112的示例性处理器平台800的框图。例如,处理器平台800可以是例如服务器、个人计算机、移动装置(例如,蜂窝电话、智能电话、诸如iPadTM的平板电脑)、个人数字助理(PDA)、互联网设备或任何其他类型的计算装置。
所示示例的处理器平台800包括处理器812。所示示例的处理器812是硬件。例如,处理器812可以由来自任何期望家族或制造商的一个或更多个集成电路、逻辑电路、微处理器或控制器来实现。
所示示例的处理器812包括本地存储器813(例如,高速缓存)。示例性处理器包括图2的示例性工作负载分析器202、示例性虚拟化环境分析器204、示例性可行性分析器206、示例性分数生成器210、示例性工作负载部署器212和示例性工作负载迁移器214,以实现图1和/或图2的示例性虚拟化平台管理器112。所示示例的处理器812经由总线818与包括易失性存储器814和非易失性存储器816的主存储器通信。易失性存储器814可以由同步动态随机存取存储器(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(Dynamic Random Access Memory,RDRAM)和/或任何其他类型的随机存取存储器装置。非易失性存储器816可以由闪存和/或任何其他期望类型的存储器装置实现。由存储器控制器来控制访问主存储器814、816。
所示示例的处理器平台800还包括接口电路820。接口电路820可以由任何类型的接口标准来实现,例如以太网接口、通用串行总线(USB)和/或PCI快速接口。
在所示示例中,一个或更多个输入装置822连接到接口电路820。输入装置822允许用户将数据和命令输入到处理器812中。输入装置可以由例如音频传感器、麦克风、相机(或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、等距点和/或声音识别系统来实现。
一个或更多个输出装置824还连接到所示示例的接口电路820。输出装置824可以例如由显示装置(例如,发光二极管(LED)、有机发光二极管(OLED))、液晶显示器、阴极射线管显示器(CRT)、触摸屏、触觉输出装置、打印机和/或扬声器)来实现。因此,所示示例的接口电路820通常包括图形驱动器卡、图形驱动器芯片或图形驱动器处理器。
所示示例的接口电路820还包括通信装置,诸如发射机、接收机、收发机、调制解调器和/或网络接口卡,以辅助经由网络826(例如,以太网连接、数字用户线(DSL)、电话线、同轴电缆、蜂窝电话系统等)与外部机器(例如,任何种类的计算装置)的数据交换。
所示示例的处理器平台800还包括用于存储软件和/或数据的一个或更多个大容量存储装置828。示例性大容量存储828包括图2的示例性配置数据存储208。这种大容量存储装置828的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、RAID系统和数字通用盘(DVD)驱动器。
图3-7的代码指令832可以存储在大容量存储装置828、易失性存储器814、非易失性存储器816中和/或可移除的有形计算机可读存储介质上,诸如CD或DVD。
虽然本文公开的示例被描述为在服务器硬件上实现,但是可以使用任何其他类型的硬件资源。例如,本文公开的示例性方法和装置可以在服务器、台式计算装置、膝上型计算装置、移动计算装置等的任何组合上实现。
从前述可以理解,本文公开的一些示例性方法和装置有助于选择虚拟化应用(例如,工作负载)的虚拟化环境。在一些示例性方法和装置中,选择虚拟化环境并且在所选择的虚拟化环境中部署工作负载,以减少由在不太优化的虚拟化环境中执行工作负载将利用的计算资源的量。例如,示例性方法和装置分析工作负载的特征和虚拟化环境的特征,以在完全虚拟化环境、半虚拟化环境和操作系统虚拟化环境中进行选择。在一些这样的示例中,特征包括确定执行工作负载所需的计算资源的量,并将该计算资源的量与数据中心中可用的计算资源的量进行比较。当数据中心包括足够的计算资源时,所有的三种虚拟化环境类型得分相等。然而,当数据中心不包括足够的计算资源以满足工作负载的需求时,操作系统虚拟化环境被选择,因为它可以更有效地分配数据中心的共享资源,以用于执行工作负载。因此,本文公开的在部署新的工作负载或已经部署的工作负载的转移期间应用示例性方法和装置,通过选择被确定为最佳的虚拟化环境来导致数据中心的计算资源的更有效利用。此外,根据本文公开的方法和装置实现的平台管理解决方案可以自动地(例如,按照部署、周期性地、非周期性地等)将工作负载从一个平台迁移到另一个平台,以最佳地利用数据中心的资源。
虽然本文已经公开了某些示例性方法、装置和制品,但是该专利的覆盖范围不限于此。相反,本专利涵盖落入本专利权利要求范围内的所有方法、装置和制品。
Claims (15)
1.一种用于在部署期间选择虚拟化环境的计算机实现的方法,包括:
经由处理器确定数据中心中正在等待部署的虚拟化应用的特征;
经由所述处理器分析所述虚拟化应用的所述特征,以选择能够执行所述虚拟化应用的虚拟化环境子集,所述虚拟化环境子集选自在所述数据中心中使用的不同虚拟化环境类型的虚拟化环境集,其中所述不同虚拟化环境类型至少包括提供虚拟硬件资源的完全虚拟化,提供对至少一些物理硬件资源的直接访问的半虚拟化,以及提供容器的操作系统虚拟化,所述容器将其中的进程隔离开;
经由所述处理器将所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境进行比较,以确定所述虚拟化环境子集中的每一个的分数,所述分数基于规则,所述规则标识所述虚拟化应用的所述特征和所述不同虚拟化环境类型的各个组合的不同分数,其中所述规则包括以下项中的任何一个或更多个:
所述虚拟化环境是否具有足够的资源来分配给所述虚拟化应用,
是否期望所述虚拟化应用的快速启动时间,
所述虚拟化应用是否包括元件组,
所述虚拟化应用是否需要扩容,
所述虚拟化应用的客户机操作系统是否将在稍后升级,
所述虚拟化应用是否需要高可用性,和
所述虚拟化应用是否在生产环境中被利用;和
在基于所述分数选择的所述虚拟化环境之一中部署所述虚拟化应用。
2.根据权利要求1所述的方法,其中确定所述特征包括确定用于所述虚拟化应用的计算资源的量。
3.根据权利要求2所述的方法,其中将所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境进行比较包括:将用于所述虚拟化应用的计算资源的量与所述虚拟化环境中可用的计算资源的量进行比较。
4.根据权利要求1所述的方法,还包括访问存储的评估配置数据以确定要在确定所述分数时使用的评估标准集。
5.根据权利要求1所述的方法,还包括确定所述虚拟化应用是否包括要使用相同操作系统来部署的多个虚拟化应用。
6.根据权利要求5所述的方法,还包括当所述虚拟化应用包括要部署的所述多个虚拟化应用时,将利用操作系统虚拟化的第一虚拟化环境的第一分数增加第一量,所述第一量大于对利用完全虚拟化的第二虚拟化环境的第二分数增加的第二量。
7.根据权利要求1所述的方法,其中确定所述虚拟化应用的所述特征包括获得关于所述执行所述虚拟化应用的用户输入。
8.一种用于在部署期间选择虚拟化环境的数据中心,包括:
硬件资源,由耦连到一个或更多个存储阵列的多个主机计算机服务器提供,以支持不同类型的多个虚拟化环境,其中所述不同类型包括提供虚拟硬件资源的完全虚拟化,提供对至少一些物理硬件资源的直接访问的半虚拟化,以及提供容器的操作系统虚拟化,所述容器将其中的进程隔离开;以及
虚拟化平台管理器,包括:
工作负载分析器,用于确定正在等待部署的虚拟化应用的特征;
可行性分析器,用于分析所述虚拟化应用的所述特征,以选择能够执行所述虚拟化应用的虚拟化环境子集,所述虚拟化环境子集选自在数据中心中使用的不同虚拟化环境类型的虚拟化环境集;
分数生成器,用于将所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境进行比较,以确定所述虚拟化环境的分数,所述分数基于规则,所述规则标识所述虚拟化应用的所述特征和所述不同虚拟化环境类型的组合的不同分数,其中所述规则包括以下项中的任何一个或更多个:
所述虚拟化环境是否具有足够的资源来分配给所述虚拟化应用,
是否期望所述虚拟化应用的快速启动时间,
所述虚拟化应用是否包括元件组,
所述虚拟化应用是否需要扩容,
所述虚拟化应用的客户机操作系统是否将在稍后升级,
所述虚拟化应用是否需要高可用性,和
所述虚拟化应用是否在生产环境中被利用;和
工作负载部署器,用于基于所述分数在所述虚拟化环境之一中部署所述虚拟化应用。
9.根据权利要求8所述的数据中心,其中所述工作负载分析器被配置为通过确定可用于所述虚拟化应用的计算资源的量来确定所述特征。
10.根据权利要求9所述的数据中心,其中所述分数生成器被配置为通过比较用于所述虚拟化应用的计算资源的量与所述虚拟化环境中可用的计算资源的量,来比较所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境。
11.根据权利要求8所述的数据中心,其中所述分数生成器被配置为访问存储的评估配置数据,以确定要在确定所述分数时使用的评估标准集。
12.根据权利要求8所述的数据中心,其中所述工作负载分析器被配置为确定所述虚拟化应用是否包括要使用相同操作系统来部署的多个虚拟化应用。
13.根据权利要求12所述的数据中心,其中当所述虚拟化应用包括要部署的所述多个虚拟化应用时,所述分数生成器被配置为将利用操作系统虚拟化的第一虚拟化环境的第一分数增加第一量,所述第一量大于对利用完全虚拟化的第二虚拟化环境的第二分数增加的第二量。
14.根据权利要求8所述的数据中心,其中所述工作负载分析器被配置为通过获得关于所述执行所述虚拟化应用的用户输入来确定所述虚拟化应用的所述特征。
15.一种有形计算机可读存储介质,包括指令,所述指令当被执行时,使得机器执行权利要求1-7中任意一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN1095CH2015 | 2015-03-05 | ||
IN1095/CHE/2015 | 2015-03-05 | ||
US14/707,012 | 2015-05-08 | ||
US14/707,012 US9766919B2 (en) | 2015-03-05 | 2015-05-08 | Methods and apparatus to select virtualization environments during deployment |
PCT/US2016/020938 WO2016141309A1 (en) | 2015-03-05 | 2016-03-04 | Methods and apparatus to select virtualization environments during deployment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533503A CN107533503A (zh) | 2018-01-02 |
CN107533503B true CN107533503B (zh) | 2021-06-25 |
Family
ID=56850834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680022913.0A Active CN107533503B (zh) | 2015-03-05 | 2016-03-04 | 在部署期间选择虚拟化环境的方法和数据中心 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9766919B2 (zh) |
EP (1) | EP3265911B1 (zh) |
CN (1) | CN107533503B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3287503A4 (en) * | 2015-04-24 | 2018-12-19 | AGC Inc. | Composition for use in heat cycle system, and heat cycle system |
US10728169B1 (en) * | 2015-06-26 | 2020-07-28 | Amazon Technologies, Inc. | Instance upgrade migration |
US10432548B2 (en) * | 2015-07-31 | 2019-10-01 | Hewlett Packard Enterprise Development Lp | Workload deployment in computing networks |
US10514954B2 (en) * | 2015-10-28 | 2019-12-24 | Qomplx, Inc. | Platform for hierarchy cooperative computing |
US10228924B2 (en) * | 2016-04-19 | 2019-03-12 | International Business Machines Corporation | Application deployment and monitoring in a cloud environment to satisfy integrity and geo-fencing constraints |
US10725759B2 (en) * | 2016-10-03 | 2020-07-28 | Avaya Inc. | Web application system and method to dynamically select between local installed and cloud-based resources |
US10498625B1 (en) * | 2016-10-14 | 2019-12-03 | Amazon Technologies, Inc. | Distributed testing service |
US20180357099A1 (en) * | 2017-06-08 | 2018-12-13 | Intel Corporation | Pre-validation of a platform |
US11360951B1 (en) * | 2017-11-29 | 2022-06-14 | Amazon Technologies, Inc. | Database migration systems and methods |
US10652283B1 (en) * | 2017-12-06 | 2020-05-12 | Amazon Technologies, Inc. | Deriving system architecture from security group relationships |
US20200050440A1 (en) * | 2018-08-08 | 2020-02-13 | Futurewei Technologies, Inc. | Application upgrading through sharing dependencies |
US11218427B1 (en) | 2020-10-24 | 2022-01-04 | Zscaler, Inc. | Detecting lagging nodes in a time-synchronized distributed environment |
CN114661465A (zh) * | 2022-03-17 | 2022-06-24 | 维塔科技(北京)有限公司 | 资源管理的方法、装置、存储介质及电子设备 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484208B1 (en) | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
US8209680B1 (en) * | 2003-04-11 | 2012-06-26 | Vmware, Inc. | System and method for disk imaging on diverse computers |
US7203944B1 (en) | 2003-07-09 | 2007-04-10 | Veritas Operating Corporation | Migrating virtual machines among computer systems to balance load caused by virtual machines |
US8479195B2 (en) | 2007-05-16 | 2013-07-02 | Vmware, Inc. | Dynamic selection and application of multiple virtualization techniques |
CA2697965C (en) | 2007-08-31 | 2018-06-12 | Cirba Inc. | Method and system for evaluating virtualized environments |
US8931038B2 (en) | 2009-06-19 | 2015-01-06 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer |
WO2010030703A1 (en) * | 2008-09-09 | 2010-03-18 | Kace Networks, Inc. | Deployment and management of virtual containers |
US8458717B1 (en) | 2008-09-23 | 2013-06-04 | Gogrid, LLC | System and method for automated criteria based deployment of virtual machines across a grid of hosting resources |
US8914511B1 (en) | 2009-06-26 | 2014-12-16 | VMTurbo, Inc. | Managing resources in virtualization systems |
US9069730B2 (en) | 2009-06-29 | 2015-06-30 | Hewlett-Packard Development Company, L. P. | Coordinated reliability management of virtual machines in a virtualized system |
US8910153B2 (en) | 2009-07-13 | 2014-12-09 | Hewlett-Packard Development Company, L. P. | Managing virtualized accelerators using admission control, load balancing and scheduling |
US8589921B2 (en) | 2009-11-30 | 2013-11-19 | Red Hat Israel, Ltd. | Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm |
US8364858B1 (en) * | 2009-12-07 | 2013-01-29 | Emc Corporation | Normalizing capacity utilization within virtual storage pools |
US8468288B2 (en) | 2009-12-10 | 2013-06-18 | International Business Machines Corporation | Method for efficient guest operating system (OS) migration over a network |
US8473959B2 (en) | 2010-02-22 | 2013-06-25 | Virtustream, Inc. | Methods and apparatus related to migration of customer resources to virtual resources within a data center environment |
US8887227B2 (en) * | 2010-03-23 | 2014-11-11 | Citrix Systems, Inc. | Network policy implementation for a multi-virtual machine appliance within a virtualization environtment |
US9239765B2 (en) | 2010-08-31 | 2016-01-19 | Avaya Inc. | Application triggered state migration via hypervisor |
CN102457583B (zh) | 2010-10-19 | 2014-09-10 | 中兴通讯股份有限公司 | 一种虚拟机移动性的实现方法及系统 |
US8914789B2 (en) * | 2010-11-23 | 2014-12-16 | International Business Machines Corporation | Systematic migration of workload based on classification |
US8615579B1 (en) | 2010-12-28 | 2013-12-24 | Amazon Technologies, Inc. | Managing virtual machine migration |
US9069890B2 (en) | 2011-04-20 | 2015-06-30 | Cisco Technology, Inc. | Ranking of computing equipment configurations for satisfying requirements of virtualized computing environments based on an overall performance efficiency |
US8949431B2 (en) | 2011-08-24 | 2015-02-03 | Radware, Ltd. | Method for live migration of virtual machines |
US9098345B2 (en) * | 2012-02-01 | 2015-08-04 | Softlayer Technologies, Inc. | System and method for portable and flexible deployment of servers |
US9218196B2 (en) | 2012-05-17 | 2015-12-22 | International Business Machines Corporation | Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage |
US9104461B2 (en) | 2012-06-15 | 2015-08-11 | Oracle International Corporation | Hypervisor-based management and migration of services executing within virtual environments based on service dependencies and hardware requirements |
EP2811412A4 (en) | 2012-06-25 | 2016-03-09 | Hitachi Ltd | COMPUTER SYSTEM AND METHOD FOR MIGRATION OF APPLICATION PROGRAM EXECUTION ENVIRONMENT |
US8997173B2 (en) | 2012-09-12 | 2015-03-31 | Ca, Inc. | Managing security clusters in cloud computing environments using autonomous security risk negotiation agents |
US9185114B2 (en) | 2012-12-05 | 2015-11-10 | Symantec Corporation | Methods and systems for secure storage segmentation based on security context in a virtual environment |
US9251115B2 (en) | 2013-03-07 | 2016-02-02 | Citrix Systems, Inc. | Dynamic configuration in cloud computing environments |
AU2014232562B2 (en) | 2013-03-15 | 2019-11-21 | Servicemesh, Inc. | Systems and methods for providing ranked deployment options |
US9832205B2 (en) | 2013-03-15 | 2017-11-28 | International Business Machines Corporation | Cross provider security management functionality within a cloud service brokerage platform |
US9854036B2 (en) | 2013-09-30 | 2017-12-26 | Huawei Technologies Co., Ltd. | Method for migrating memory data of virtual machine, and related apparatus and cluster system |
US9461969B2 (en) * | 2013-10-01 | 2016-10-04 | Racemi, Inc. | Migration of complex applications within a hybrid cloud environment |
US20150205542A1 (en) | 2014-01-22 | 2015-07-23 | Vmware, Inc. | Virtual machine migration in shared storage environment |
CN104915241B (zh) | 2014-03-12 | 2018-09-07 | 华为技术有限公司 | 一种虚拟机迁移控制方法及装置 |
US10191997B2 (en) | 2014-08-21 | 2019-01-29 | The Boeing Company | Visualization and diagnostic analysis of interested elements of a complex system |
-
2015
- 2015-05-08 US US14/707,012 patent/US9766919B2/en active Active
-
2016
- 2016-03-04 CN CN201680022913.0A patent/CN107533503B/zh active Active
- 2016-03-04 EP EP16759590.9A patent/EP3265911B1/en active Active
-
2017
- 2017-09-18 US US15/708,102 patent/US10678581B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107533503A (zh) | 2018-01-02 |
US9766919B2 (en) | 2017-09-19 |
EP3265911A1 (en) | 2018-01-10 |
EP3265911B1 (en) | 2020-07-22 |
US20160259660A1 (en) | 2016-09-08 |
EP3265911A4 (en) | 2018-10-17 |
US20180004567A1 (en) | 2018-01-04 |
US10678581B2 (en) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9710304B2 (en) | Methods and apparatus to select virtualization environments for migration | |
CN107533503B (zh) | 在部署期间选择虚拟化环境的方法和数据中心 | |
US11768695B2 (en) | Methods and apparatus to deploy a hybrid workload domain | |
US11086684B2 (en) | Methods and apparatus to manage compute resources in a hyperconverged infrastructure computing environment | |
US11405274B2 (en) | Managing virtual network functions | |
US20210266237A1 (en) | Methods, systems, and apparatus to scale in and/or scale out resources managed by a cloud automation system | |
US20210111957A1 (en) | Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment | |
US10362101B2 (en) | Mechanism for providing load balancing to an external node utilizing a clustered environment for storage management | |
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 | |
US8448219B2 (en) | Securely hosting workloads in virtual computing environments | |
US11263058B2 (en) | Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty | |
US11640325B2 (en) | Methods and apparatus to allocate hardware in virtualized computing architectures | |
US11343141B2 (en) | Methods and apparatus to migrate physical server hosts between virtual standard switches and virtual distributed switches in a network | |
US9841983B2 (en) | Single click host maintenance | |
US20220121472A1 (en) | Vm creation by installation media probe | |
US20200241910A1 (en) | Methods and apparatus for rack nesting in virtualized server systems | |
US9971785B1 (en) | System and methods for performing distributed data replication in a networked virtualization environment | |
WO2016141305A1 (en) | Methods and apparatus to select virtualization environments for migration | |
WO2016141309A1 (en) | Methods and apparatus to select virtualization environments during deployment | |
US20220138008A1 (en) | Methods and apparatus to manage resources in a hybrid workload domain |
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 |
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. |
|
CP03 | Change of name, title or address |