CN107533503A - 在部署期间选择虚拟化环境的方法和装置 - Google Patents

在部署期间选择虚拟化环境的方法和装置 Download PDF

Info

Publication number
CN107533503A
CN107533503A CN201680022913.0A CN201680022913A CN107533503A CN 107533503 A CN107533503 A CN 107533503A CN 201680022913 A CN201680022913 A CN 201680022913A CN 107533503 A CN107533503 A CN 107533503A
Authority
CN
China
Prior art keywords
virtualization
virtualized environment
workload
virtualization applications
feature
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
Application number
CN201680022913.0A
Other languages
English (en)
Other versions
CN107533503B (zh
Inventor
K·高拉夫
H·K·帕内姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weirui LLC
Original Assignee
VMware LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VMware LLC filed Critical VMware LLC
Priority claimed from PCT/US2016/020938 external-priority patent/WO2016141309A1/en
Publication of CN107533503A publication Critical patent/CN107533503A/zh
Application granted granted Critical
Publication of CN107533503B publication Critical patent/CN107533503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3442Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/4555Para-virtualisation, i.e. guest operating system has to be modified
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

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的计算资源设置、需求、请求等,
B)工作负载140、141的操作系统(例如,基于Linux的操作系统,Microsoft等),
C)工作负载140、141的网络需求,
D)工作负载140、141是否包括一组元素(例如,vApp或其他虚拟机和/或应用程序包),以及
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 (24)

1.一种方法,包括:
经由处理器确定正在等待部署的虚拟化应用的特征;
经由所述处理器分析所述虚拟化应用的所述特征,以选择能够执行所述虚拟化应用的虚拟化环境子集,所述虚拟化环境子集选自在数据中心中使用的不同虚拟化环境类型的虚拟化环境集;
经由所述处理器将所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境进行比较,以确定所述虚拟化环境的分数;和
基于所述分数在所述虚拟化环境之一中部署所述虚拟化应用。
2.根据权利要求1所述的方法,其中确定所述特征包括确定所述虚拟化应用的计算资源的量。
3.根据权利要求2所述的方法,其中比较所述虚拟化环境的所述特征包括将所述虚拟化应用的计算资源的量与所述虚拟化环境中可用的计算资源的量进行比较。
4.根据权利要求1所述的方法,还包括访问所存储的评估配置数据以确定要在确定所述分数时使用的评估标准集。
5.根据权利要求1所述的方法,还包括确定所述虚拟化应用是否包括要使用相同操作系统来部署的多个虚拟化应用。
6.根据权利要求5所述的方法,还包括当所述虚拟化应用包括要部署的所述多个虚拟化应用时,将利用操作系统虚拟化的第一虚拟化环境的第一分数增加第一量,所述第一量大于对利用完全虚拟化的第二虚拟化环境的第二分数增加的第二量。
7.根据权利要求1所述的方法,其中确定所述虚拟化应用的所述特征包括获得关于所述执行所述虚拟化应用的用户输入。
8.根据权利要求1所述的方法,其中所述虚拟化环境类型包括完全虚拟化、半虚拟化和操作系统虚拟化。
9.一种装置,包括:
工作负载分析器,用于确定正在等待部署的虚拟化应用的特征;
可行性分析器,用于分析所述虚拟化应用的所述特征,以选择能够执行所述虚拟化应用的虚拟化环境子集,所述虚拟化环境子集选自在数据中心中使用的不同虚拟化环境类型的虚拟化环境集;
分数生成器,用于将所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境进行比较,以确定所述虚拟化环境的分数;和
工作负载部署器,用于基于所述分数在所述虚拟化环境之一中部署所述虚拟化应用。
10.根据权利要求9所述的装置,其中所述工作负载分析器通过确定在所述虚拟化应用中可用的计算资源的量来确定所述特征。
11.根据权利要求10所述的装置,其中所述分数生成器用于比较所述虚拟化环境的所述特征,包括比较所述虚拟化应用的计算资源的量与所述虚拟化环境的计算资源的量。
12.根据权利要求9所述的装置,其中所述分数生成器用于访问所存储的评估配置数据,以确定要在确定所述分数时使用的评估标准集。
13.根据权利要求9所述的装置,其中所述工作负载分析器用于确定所述虚拟化应用是否包括要使用相同操作系统来部署的多个虚拟化应用。
14.根据权利要求13所述的装置,其中当所述虚拟化应用包括要部署的所述多个虚拟化应用时,所述分数生成器用于将利用操作系统虚拟化的第一虚拟化环境的第一分数增加第一量,所述第一量大于对利用完全虚拟化的第二虚拟化环境的第二分数增加的第二量。
15.根据权利要求9所述的装置,其中所述工作负载分析器通过获得关于所述执行所述虚拟应用的用户输入来确定所述虚拟化应用的所述特征。
16.根据权利要求9所述的装置,其中所述虚拟化环境类型包括完全虚拟化、半虚拟化和操作系统虚拟化。
17.一种有形计算机可读存储介质,包括指令,所述指令当被执行时,使得机器至少:
经由处理器确定正在等待部署的虚拟化应用的特征;
经由所述处理器分析所述虚拟化应用的所述特征,以选择能够执行所述虚拟化应用的虚拟化环境子集,所述虚拟化环境子集选自在数据中心中使用的不同虚拟化环境类型的虚拟化环境集;
经由所述处理器将所述虚拟化应用的所述特征与所述虚拟化环境子集的所述虚拟化环境进行比较,以确定所述虚拟化环境的分数;和
基于所述分数在所述虚拟化环境之一中部署所述虚拟化应用。
18.根据权利要求17所述的有形计算机可读存储介质,其中所述指令当被执行时使得所述机器通过确定所述虚拟化应用的计算资源的量而确定所述特征。
19.根据权利要求18所述的有形计算机可读存储介质,其中所述指令当被执行时使得所述机器通过将所述虚拟化应用的计算资源的量与所述虚拟化环境中可用的计算资源的量进行比较来比较所述虚拟化环境的所述特征。
20.根据权利要求17所述的有形计算机可读存储介质,其中所述指令当被执行时使得所述机器访问所存储的评估配置数据,以确定要在确定所述分数时使用的评估标准集。
21.根据权利要求17所述的有形计算机可读存储介质,其中所述指令当被执行时使得所述机器确定所述虚拟化应用是否包括要使用相同操作系统来部署的多个虚拟化应用。
22.根据权利要求21所述的有形计算机可读存储介质,其中所述指令当被执行时使得所述机器在当所述虚拟化应用包括要部署的所述多个虚拟化应用时,将利用操作系统虚拟化的第一虚拟化环境的第一分数增加第一量,所述第一量大于对利用完全虚拟化的第二虚拟化环境的第二分数增加的第二量。
23.根据权利要求17所述的有形计算机可读存储介质,其中所述指令当被执行时使得所述机器通过获得关于所述执行所述虚拟化应用的用户输入来确定所述虚拟化应用的所述特征。
24.根据权利要求17所述的有形计算机可读存储介质,其中所述虚拟化环境类型包括完全虚拟化、半虚拟化和操作系统虚拟化。
CN201680022913.0A 2015-03-05 2016-03-04 在部署期间选择虚拟化环境的方法和数据中心 Active CN107533503B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN1095CH2015 2015-03-05
IN1095/CHE/2015 2015-03-05
US14/707,012 US9766919B2 (en) 2015-03-05 2015-05-08 Methods and apparatus to select virtualization environments during deployment
US14/707,012 2015-05-08
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 true CN107533503A (zh) 2018-01-02
CN107533503B 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020029995A1 (en) * 2018-08-08 2020-02-13 Huawei Technologies Co., Ltd. Application upgrading through sharing dependencies
CN114661465A (zh) * 2022-03-17 2022-06-24 维塔科技(北京)有限公司 资源管理的方法、装置、存储介质及电子设备

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6693513B2 (ja) * 2015-04-24 2020-05-13 Agc株式会社 熱サイクルシステム用組成物および熱サイクルシステム
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
US11218427B1 (en) 2020-10-24 2022-01-04 Zscaler, Inc. Detecting lagging nodes in a time-synchronized distributed environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070771A1 (en) * 2007-08-31 2009-03-12 Tom Silangan Yuyitung Method and system for evaluating virtualized environments
CN102150105A (zh) * 2008-09-09 2011-08-10 凯思网络公司 虚拟容器的部署和管理
US20110231899A1 (en) * 2009-06-19 2011-09-22 ServiceMesh Corporation System and method for a cloud computing abstraction layer
CN102202049A (zh) * 2010-03-23 2011-09-28 思杰系统有限公司 用于多虚拟机设备的网络策略实现
US20120272234A1 (en) * 2011-04-20 2012-10-25 Cisco Technology, Inc. Scoring of Computing Equipment for Virtualized Computing Environments
US20130198354A1 (en) * 2012-02-01 2013-08-01 Softlayer Technologies, Inc. System and Method for Portable and Flexible Deployment of Servers

Family Cites Families (30)

* Cited by examiner, † Cited by third party
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
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
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
US8949431B2 (en) 2011-08-24 2015-02-03 Radware, Ltd. Method for live migration of virtual machines
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
CN104272281A (zh) 2012-06-25 2015-01-07 株式会社日立制作所 计算机系统和应用程序运行环境转移方法
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
WO2014145777A1 (en) 2013-03-15 2014-09-18 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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070771A1 (en) * 2007-08-31 2009-03-12 Tom Silangan Yuyitung Method and system for evaluating virtualized environments
CN102150105A (zh) * 2008-09-09 2011-08-10 凯思网络公司 虚拟容器的部署和管理
US20110231899A1 (en) * 2009-06-19 2011-09-22 ServiceMesh Corporation System and method for a cloud computing abstraction layer
CN102202049A (zh) * 2010-03-23 2011-09-28 思杰系统有限公司 用于多虚拟机设备的网络策略实现
US20120272234A1 (en) * 2011-04-20 2012-10-25 Cisco Technology, Inc. Scoring of Computing Equipment for Virtualized Computing Environments
US20130198354A1 (en) * 2012-02-01 2013-08-01 Softlayer Technologies, Inc. System and Method for Portable and Flexible Deployment of Servers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020029995A1 (en) * 2018-08-08 2020-02-13 Huawei Technologies Co., Ltd. Application upgrading through sharing dependencies
CN114661465A (zh) * 2022-03-17 2022-06-24 维塔科技(北京)有限公司 资源管理的方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
EP3265911B1 (en) 2020-07-22
EP3265911A1 (en) 2018-01-10
US20180004567A1 (en) 2018-01-04
EP3265911A4 (en) 2018-10-17
US9766919B2 (en) 2017-09-19
US20160259660A1 (en) 2016-09-08
US10678581B2 (en) 2020-06-09
CN107533503B (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN107533503A (zh) 在部署期间选择虚拟化环境的方法和装置
US10489215B1 (en) Long-range distributed resource planning using workload modeling in hyperconverged computing clusters
US10673981B2 (en) Workload rebalancing in heterogeneous resource environments
US20160259665A1 (en) Methods and apparatus to select virtualization environments for migration
US10447806B1 (en) Workload scheduling across heterogeneous resource environments
US11144306B2 (en) Scheduling upgrades in distributed computing systems
US11094031B2 (en) GPU resource usage display and dynamic GPU resource allocation in a networked virtualization system
US10333861B2 (en) Modular cloud computing system
US9952782B1 (en) Method and system for accessing data between different virtual disk formats in a virtualization environment
CN110417613B (zh) 基于Jmeter的分布式性能测试方法、装置、设备及存储介质
US11715025B2 (en) Method for forecasting distributed resource utilization in a virtualization environment
US9851989B2 (en) Methods and apparatus to manage virtual machines
US11665064B2 (en) Utilizing machine learning to reduce cloud instances in a cloud computing environment
US20200026560A1 (en) Dynamic workload classification for workload-based resource allocation
US20200026576A1 (en) Determining a number of nodes required in a networked virtualization system based on increasing node density
JP5346405B2 (ja) ネットワークシステム
US20190332409A1 (en) Identification and storage of logical to physical address associations for components in virtualized systems
US20230367652A1 (en) Methods and apparatus to allocate hardware in virtualized computing architectures
US11886898B2 (en) GPU-remoting latency aware virtual machine migration
US9971785B1 (en) System and methods for performing distributed data replication in a networked virtualization environment
US20230106025A1 (en) Methods and apparatus to expose cloud infrastructure resources to tenants in a multi-tenant software system
WO2016141309A1 (en) Methods and apparatus to select virtualization environments during deployment
WO2016141305A1 (en) Methods and apparatus to select virtualization environments for migration
JP2023544192A (ja) ファンクション実行のためのコンピューティング・リソースのタグ・ドリブン・スケジューリング
US10826795B2 (en) Architecture for implementing service level management for a virtualization environment

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