镜像分析工具的制作方法

文档序号:6494786阅读:194来源:国知局
镜像分析工具的制作方法
【专利摘要】可基于对虚拟机镜像的评估来生成主镜像。主镜像包括虚拟机环境内跨虚拟机镜像共享的数据段的单个实例。主镜像还可被构建为同伴压力技术的功能,包括对主镜像内的大部分虚拟机镜像公共的数据段。主镜像内包括的数据段还可通过区分虚拟机镜像内的数据的优先级以及用同伴压力技术标识有影响力的数据来定义。
【专利说明】镜像分析工具
【背景技术】
[0001]虚拟机是诸如计算机的机器上的软件仿真,在其中软件的实现被限制在物理主机计算机的范围内。常规上,有系统虚拟机和进程虚拟机。系统虚拟机模拟包括操作系统的整个系统平台机器,而进程虚拟机模拟特定进程。不考虑虚拟机的类型,所模拟的软件被限制在由虚拟机提供的资源中。
[0002]通常,虚拟机允许主机计算机在同一计算机上同时运行多个应用环境(例如,进程)或操作系统。主机计算机将特定量的主机资源分配给每个虚拟机,其中每个虚拟机使用这样被分配的资源来执行应用和进程(包括操作系统)。典型的虚拟机利用虚拟机镜像文件(例如,虚拟机镜像)来存储希望的应用环境、操作系统,和相关联的数据。虚拟机包括虚拟硬盘驱动器(VHD)作为典型的虚拟机镜像。从主机的角度,VHD是非常类似于其它文件那样不考虑与虚拟机相关联所处理的大文件。但是,从虚拟机的角度,VHD是完整的硬盘驱动器,包括与操作系统、进程、用户信息等相关的数据。
[0003]随着虚拟机的越来越多的使用和变得越来越复杂,虚拟机镜像的大小变得大了(例如,几千兆字节)。此外,虚拟机的环境和主机相对于所分配的资源和镜像的存储位置而言很少是静态的。例如,虚拟机镜像可以从网络上的一个存储位置移到网络上的另一个存储位置。换言之,单独基于虚拟镜像文件大小的虚拟机镜像的存储位置的重新定位可以是资源密集的事件。常规上,虚拟机镜像文件以冗长且反复的转移来移动,趋向于在系统资源等方面昂贵。

【发明内容】

[0004]下面呈现了简化的
【发明内容】
,以便提供对所公开主题的某些方面的基本概念。本
【发明内容】
不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体描述的序言。
[0005]简言之,本发明大致涉及虚拟机镜像管理。虚拟机镜像可被评估,以创建包括在虚拟机镜像中找到的共享数据段的主镜像。可基于同伴压力(peer pressure)技术、离线机器学习技术、运行时机器学习技术等来生成主镜像。例如,同伴压力技术可通过包括大部分虚拟机镜像中找到的公共数据段来方便创建主镜像。在另一个示例中,同伴压力技术通过包括在虚拟机镜像内标识的有影响力的数据段来增强主镜像的生成。此外,主镜像服务器可允许对主镜像、创建主镜像的模板,和附加虚拟机镜像的访问,用于同伴压力技术的更大样本集合。
[0006]为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
【专利附图】

【附图说明】
[0007]图1是虚拟机镜像系统的框图。[0008]图2是利用同伴压力技术来创建主镜像的虚拟机镜像系统的框图。
[0009]图3是由机器学习技术所增强的虚拟机镜像系统的框图。
[0010]图4是用于区分主镜像的数据段的优先级的主镜像系统的框图。
[0011]图5是便于主镜像的创建和分配的系统的框图。
[0012]图6是基于所创建的主镜像便于虚拟机镜像转移的系统的框图。
[0013]图7是从多个虚拟机镜像生成主镜像的方法的流程图。
[0014]图8是使用主镜像来迁移虚拟机镜像数据的方法的流程图。
[0015]图9是访问服务器以从多个虚拟机镜像创建主镜像的方法的流程图。
[0016]图10是示出用于本公开各方面的合适操作环境的示意性框图。
【具体实施方式】
[0017]以下细节一般涉及管理具有主镜像(例如,金色镜像)的虚拟机镜像。虚拟机通常使用许多镜像,趋向于需要大量的存储空间,使得将数据从一个位置到另一个的转移就系统资源而论是昂贵。管理这些虚拟机及各自的镜像可包括镜像迁移、虚拟机负载平衡,和虚拟机缩放。常规技术通常包括对每个虚拟机镜像的基于其大的尺寸和数量的重复且冗长的转移。上面的情况可通过虚拟机镜像的主镜像来解决。从所标识的在虚拟机间公共的数据段中生成主镜像。从这些所标识的数据段,使用每个数据段的单个实例来为虚拟机创建主镜像。在一个示例中,主镜像包括在虚拟机镜像间公共的大部分数据段,以在镜像的迁移、虚拟机负载平衡,和虚拟机缩放包括新虚拟机镜像和/或虚拟机的创建时,优化这样的操作。
[0018]现在参考附图更详细地描述本发明的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。
[0019]首先参考图1,示出了虚拟机镜像系统100。虚拟机镜像系统100创建包括在虚拟机镜像间共享的数据段的主镜像(例如,亦称“金色镜像”)。在一个示例中,主镜像是从在虚拟机镜像内最常出现的数据段中生成的(以下更详细地描述)。由于主镜像是使用在虚拟机镜像间公共的数据段来创建的,所以新的或更新的虚拟机和/或虚拟机镜像的创建用主镜像来优化。一般而言,主镜像可以是代表虚拟机镜像的基于数据的最高公共共同点及各自数据,其中主镜像包括虚拟机镜像可能的最共享的数据。换言之,主镜像可以包括虚拟机镜像间最大的可能的数据构建块。
[0020]虚拟机镜像系统100包括将虚拟机镜像进行比较以创建主镜像的生成组件110。特别是,虚拟机镜像系统100包括分析虚拟机(并且具体地,虚拟机镜像)的评估组件120。评估组件120可从虚拟机环境(例如,包括或访问虚拟机和虚拟机镜像的机器环境)接收或收集虚拟机镜像。例如,用户可以选择虚拟机镜像的一个集合或子集来评估或者选择可自动化。一旦手动或自动选择虚拟机镜像,评估组件120将来自每个虚拟机镜像的数据进行比较,以标识公共的或共享数据段。具体地,评估组件120分析虚拟机镜像以从这样的虚拟机镜像中提取公共数据段。
[0021]此外,虚拟机镜像系统100包括基于评估组件120的分析来创建主镜像(例如,也被称为“金色镜像”)的主组件130。如在这里所使用的,术语“主镜像”和“金色镜像”指包括在虚拟机镜像间公共的数据段的数据的集合。此外,主镜像可包括代表可在虚拟机环境(且具体地,在虚拟机)内执行的软件程序的数据。可以理解,主镜像可以是任何大小(例如,字节、兆字节、千兆字节等)并可包括来自虚拟机环境内的任何合适的源的任何类型的数据。如所述,主组件130通过包括由评估组件120所标识的公共数据段的单个实例来生成主镜像。换言之,主组件130可监测所标识的公共数据段并将每个数据段的单个副本结合到主镜像中。具体地,生成组件110和所结合的组件(例如评估组件120、主组件130)可实现同伴压力技术(以下更详细讨论),以标识大部分虚拟机镜像中的共享数据段。
[0022]如在此利用的,虚拟机镜像包括与虚拟机相关的任何合适的数据。作为示例而非限制,虚拟机镜像可包括虚拟机的操作系统、与虚拟机相关联的进程、与虚拟机的操作系统相关的数据、与虚拟机相关联的进程有关的数据等等。此外,虚拟机镜像可包括客户机的所有用户需要的组件/数据(例如,客操作系统的安装文件、web浏览器应用、防病毒应用、电子邮件应用等)以及对于各用户特定的组件(例如,简档、用户特定应用等)。此外,虚拟机镜像可包含数据,不管其是否存储在远程虚拟机服务器、本地虚拟硬盘驱动器(VHD)、远程VHD、基于云的服务器、基于云的虚拟机、平台即服务(PaaS)虚拟机、PaaSVHD, PaaS服务器
坐坐寸寸o
[0023]图2示出了利用同伴压力技术创建主镜像的虚拟机镜像系统200。虚拟机镜像系统200包括基于来自评估组件120和/或主组件130的分析来创建虚拟机镜像的集合的主镜像的生成组件110。可以理解,生成组件110可以是独立的组件、结合到虚拟机环境、结合到虚拟机、结合到虚拟机服务器,和/或任何合适的组合。
[0024]作为示例而非限制,虚拟机环境可包括第一组虚拟机和第二组虚拟机。第一组虚拟机可被选择,其中相关的虚拟机镜像被评估以标识(对应于所选的那组虚拟机的)虚拟机镜像间共享的数据段。换言之,位于虚拟机镜像上的公共数据段可被收集并使用,来创建主镜像,其中主镜像包括每个公共数据段的单个实例。一旦生成,主镜像可被采用用于第一组(所选的那组虚拟机)内的至少一个虚拟机和/或虚拟机镜像的迁移。此外,在新的或更新的虚拟机和/或虚拟机镜像的建立中可采用主镜像。
[0025]虚拟机镜像系统200还包括同伴压力组件210,其结合同伴压力技术来便于一组虚拟机镜像的主镜像的创建。如此处所利用的,同伴压力技术与基于计算来自样本集的主要部分和会聚到被标识为主要部分的值或数据的任何统计分析相关。换言之,同伴压力技术可提供“按数量的力量(power in numbers)”分析以标识存在于主要或大部分虚拟机镜像内的共享数据段。在另一示例中,同伴压力技术可与任何统计分析相关以标识一组虚拟机镜像内的有影响力的数据段。换言之,同伴压力技术可提供“欺负者心态(bullymentality)”分析以标识存在于虚拟机镜像内的有影响力和高优先级的数据段。通常,系统200可利用同伴压力组件210采用任何合适的统计同伴压力技术,其中同伴压力技术通过将在大部分虚拟机镜像内发现的公共数据段或被发现具有影响力的公共数据段包括在虚拟机镜像内来增强主镜像。
[0026]图3示出了用机器学习技术增强了的虚拟机镜像系统300。虚拟机镜像系统300包括生成组件110,其从一组已评估的虚拟机镜像中构建主镜像,其中主镜像包括存在于虚拟机镜像中的数据段。如所讨论的,评估组件120分析虚拟机镜像以标识一致的或存储在虚拟机镜像中的公共数据段。在采用同伴压力技术的情况中,主镜像包括一致的或存储在高百分比(例如,大于一半)的虚拟机镜像上的公共数据段。此外,主组件130收集公共数据段并构造具有在虚拟机镜像中被发现为公共的每个数据段的单个实例的主镜像。
[0027]生成组件110还可包括趋势组件310,其实现机器学习技术以查明要包括在主镜像中的公共数据段。此外,趋势组件310便于迁移和创建虚拟机和/或虚拟机镜像(结合图6更详细讨论迁移)。一般而言,趋势组件310采用离线机器学习技术和/或运行时机器学习技术。作为示例而非限制,趋势组件310可离线利用第一组机器学习技术并随后在运行时利用第二组机器学习技术,其中第二组运行时机器学习技术可更新、修改,和/或微调第一组机器学习技术。例如,除了离线分析,趋势组件310可采用剖析信息的样本组或小的信息片段。换言之,趋势组件310提供双层机器学习技术,其中离线机器学习技术通过运行时机器学习技术来加强。
[0028]例如,趋势组件310和所实施的(例如,离线/或在运行时)机器学习技术可标识虚拟机和/或虚拟机镜像的容量或大小。基于虚拟机的容量或大小和/或虚拟机镜像,趋势组件310可查明主镜像的数据大小。作为示例而非限制,主镜像大小可基于趋势组件310分析(例如离线和/或在运行时)来标识。在另一示例中,趋势组件310可提供进程级分析,监测操作系统(OSM)详情,和应用级设置(例如基于已知应用细节)。
[0029]在另一个示例中,趋势组件310可采用机器学习来从存储器中提取数据以便于在虚拟机镜像中标识公共数据段、迁移虚拟机镜像,和创建新的或更新的虚拟机。从存储器中,趋势组件310可分析存储对象来标识安全漏洞。作为示例而非限制,所标识的安全漏洞可以是迁移虚拟机和/或虚拟机镜像的因素。此外,这样的安全漏洞和相关数据段可被排除在包含在主镜像中之外。此外,趋势组件310还可采用时间系列分析、模型预测、虚拟机容量预测等。
[0030]图4示出了用于区分主镜像的数据段优先级的主镜像系统400。主镜像系统400包括基于多个虚拟机镜像的评估来创建主镜像的生成组件110具体地,如所讨论的,评估组件120分析一组虚拟机镜像410,其中可以有任何合适数量的虚拟机镜像,诸如虚拟机镜像I到虚拟机镜像N,N是正整数。与评估组件120组合,主组件130创建主镜像来包括在该组虚拟机镜像410中公共的数据段的单个实例。
[0031]主镜像系统400可包括排名组件402,其允许区分已标识的公共数据段的优先级,其中更高优先级可被转化成包括到主镜像的更高可能性。相反,更低优先级可被转化成排除到主镜像之外的更高可能性。排名组件420可接收与其中可区分数据的优先级或降低数据的优先级的特定的特点、特性和/或度量相关的优先级数据。作为示例而非限制,与用户简档相关联的数据段可被设为比应用数据段更高的优先级。在这样的示例中,虚拟机镜像间公共的用户简档数据段可被区分优先级以被包括在主镜像中在应用公共数据段(以及其它比用户简档数据段排名更低的数据段)之上。
[0032]排名组件420允许基于各种特性区分任何数据段的优先级。数据段可被排名组件420基于诸如以下的特性(但不限于此)来区分优先级:主虚拟机(例如,主存该数据段的虚拟机),虚拟机镜像上的大小、VHD上的大小、共性的百分比(例如,数据段多久出现在虚拟机镜像内一次)、数据段类型(例如,操作系统数据、用户简档数据、应用数据等)、主虚拟机位置(例如,本地、远程、基于云、基于PaaS等)、基于进程(例如,应用A数据段优先于应用B,因为应用A是安全应用)、操作系统的关联(例如,将操作系统数据段排在优先于其它数据段)、用户偏好等等。可以理解,排名组件420可以是用数据段构造主镜像中的一个因素(例如,不是唯一因素)。换言之,作为示例而非限制,排名组件420允许要被包括在所生成的主镜像中数据段的增长的可能性。然而,可以理解,排名组件420可被配置来允许区分一个数据段的优先级,以自动被包括在一组虚拟机镜像的主镜像中。
[0033]图5示出了便于主镜像的创建和分配的系统500。系统500包括生成组件110,其构造了具有在虚拟机镜像中公共的数据段的主镜像。例如,主镜像被创建以包括来自虚拟机镜像的尽可能多的共享数据。通过使用同伴压力技术,主镜像包括在大部分虚拟机镜像中公共的数据段或在虚拟机镜像内有影响力的数据段。换言之,主镜像可被看成为虚拟机镜像的数据的最高公共的共同点。
[0034]系统500包括构造如上所述的主镜像的生成组件110。此外,系统500包括主镜像服务器510 (亦称MI服务器510)。主镜像服务器510可以是本地服务器或远程服务器,其中客户机可访问主镜像540和/或虚拟机镜像。一般而言,主镜像服务器510可被本地客户机和/或远程客户机访问以上传、下载、存储,或查看主镜像540和/或虚拟机镜像。作为示例而非限制,主镜像服务器510可以是基于云的和/或基于PaaS的。此外,主镜像服务器510允许来自各个用户、客户机、企业,等对主镜像540和/或虚拟机镜像的访问(通过来自拥有者的已表达的许可)。此外,可以理解,为了简略的目的,系统500中描述了单个生成组件110和/或主镜像,但是多个主镜像、生成组件,和/或客户机(未示出)可以访问主镜像服务器510。
[0035]生成组件110创建的主镜像可被上传并存储到主镜像服务器510。可以理解,主镜像服务器510可以是选择进入或选择退出服务。在访问主镜像服务器510之前,授权组件520采用安全和授权技术。授权组件520可利用用户名、口令、安全问题、密码术、人类交互证明(HIP)等等。一般而言,授权组件520提供数据通信的被确认且安全连接。授权组件520还可请求允许分配和共享任何被上传的主镜像和/或虚拟机信息。
[0036]主镜像服务器510还包括全局同伴压力组件530。全局同伴压力组件530通过包括附加样本集(例如虚拟机镜像)以标识大部分虚拟机镜像中的公共数据段,来扩展图2中讨论的同伴压力技术。此外,全局同伴压力技术可扩展虚拟镜像的样本集,以标识虚拟机镜像中有影响力的公共数据段。因此,可以有采用使用本地虚拟机镜像作为样本集的同伴压力技术的本地同伴压力技术。此外,可以有采用使用本地虚拟机镜像和来自主镜像服务器510的虚拟机镜像作为样本集的同伴压力技术的全局同伴压力技术。可以理解,系统500可提供全局同伴压力技术和本地同伴压力技术之间的选择,而不考虑主镜像服务器510的选择进入或选择退出。在一个示例中,全局同伴压力组件430可评估主镜像要针对其被创建的本地虚拟机镜像。基于这样的评估,来自主镜像服务器510的附加虚拟机镜像可被标识,以被包括在全局同伴压力分析中,其中附加虚拟机镜像可包括共享度量、特性等。在另一个示例中,附加虚拟机镜像可被用户、客户机,或管理员在主镜像服务器510内选择或标识。
[0037]如前简单讨论的,主镜像服务器510可存储从许多虚拟机镜像中创建的和从许多虚拟机环境中创建的主镜像540。主镜像540可被查看、转移、下载等。作为示例而非限制,主镜像可被下载并在虚拟机环境中采用。具体地,主镜像可被调用,用于新的或更新了的虚拟机。在另一示例中,公司A可为第一组虚拟机镜像创建主镜像I而为第二组机器创建主镜像2,其中主镜像I和主镜像2被存储在主镜像服务器510中。此外,公司B可为一组虚拟机镜像创建主镜像3,其中主镜像3被存储在主镜像服务器510中。接着上述示例,公司B可利用主镜像I和/或主镜像2以创建主镜像4。此外,公司B可调用包括公司B本地虚拟机镜像和公司A虚拟机镜像(例如第一组虚拟机镜像和第二组虚拟机镜像)的全局同伴压力技术。
[0038] 此外,通过主镜像模板550 (亦称模板550)的采用,主镜像服务器510便于主镜像的创建。模板550可以是从中创建虚拟机镜像的主镜像的框架。模板550可基于特定虚拟机和/或虚拟机环境的标准化特性。例如,主镜像的模板可以是基于商务的、基于公司的、或基于工业的,其中商务、公司和/或工业的特性被标识并被利用以标识并包括存储在主镜像中的特定公共数据段。在另一个示例中,模板可基于虚拟机所采用的操作系统和/或进程的类型。模板550可以是基于功能的,其中特定功能包括帮助标识数据段以被包括在主镜像中的特性。例如,与会计相关的虚拟机环境可基于从主镜像服务器510中接收的模板来为本地虚拟机镜像创建主镜像,其中模板是基于会计的模板。
[0039]参见图6,示出了基于所创建的主镜像方便虚拟机镜像转移的虚拟机镜像系统600。虚拟机镜像系统600利用创建主镜像的生成组件110来精简虚拟机镜像转移、迁移、存储等。虚拟机镜像系统600还可包括迁移组件610,其利用主镜像以便于虚拟机镜像410的迁移以创建新的或更新了的虚拟机。作为示例而非限制,迁移组件610利用主镜像来在虚拟机环境中创建新的虚拟机。例如,基于离线和运行时机器学习技术,新虚拟机可以是基于附加虚拟机的需求。此外,迁移组件610可采用主镜像来升级或更新虚拟机,其中更新或升级可包括已更新的主镜像、一部分软件等等。此外,迁移组件610可利用主镜像来用于虚拟机环境内的负载平衡、缩放虚拟机环境(例如,放大一添加虚拟机/图像,缩小一减小虚拟机/图像等)、对一组虚拟机镜像进行故障查找,和/或主机计算机负载平衡。
[0040]参考若干组件之间的交互已经描述了上述系统、架构、环境等。应该理解,这样的系统和组件可以包括其中指定的那些组件或子组件,某些指定的组件或子组件,和/或附加的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在父组件中的组件。此外,一个或多个组件和/或子组件可以组合成提供聚集功能的单个组件。组件也可以与一个或多个其他组件进行交互,出于简要考虑在此未具体描述其他组件,但本领域的技术人员均已知。
[0041]此外,应该理解以上所公开的系统及以下方法的各部分可以包括或包含人工智能、机器学习或基于知识或规则的组件、子组件、进程、手段、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器…)。这样的组件和其它组件可以自动化其执行的某些机制或过程,由此使得系统和方法的各部分更为自适应以及高效及智能。作为示例而非限制,生成组件110或其一个或多个子组件可采用这样的机制来有效确定或以其他方式推断虚拟机镜像中的一组公共数据段以创建主镜像。
[0042]考虑到以上描述的示例性系统,参考图7-9的流程图将可以更好地理解依照所公开的主题实现的方法。尽管为了说明简洁起见,按照一系列框示出和描述了方法,但是,应该理解和知道,所要求保护的主题不限于框的次序,因为一些框可以按与此处所描绘和描述的不同的次序进行和/或与其他框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。[0043]图7示出了一种用于从多个虚拟机镜像生成主镜像的方法700。在附图标记710,标识多个虚拟机镜像中公共的一段数据。例如,两个或多个虚拟机镜像间的数据段可被标识。在另一示例中,同伴压力技术(例如全局同伴压力技术、本地同伴压力技术等)可被利用来查明多个虚拟机镜像中的大部分中的公共数据段。在附图标记720,包括数据段的单个实例的主镜像被生成。在附图标记730,用主镜像将虚拟机迁移到主机计算机内的更新了的存储位置。可以理解,迁移可包括对虚拟机的更新或新虚拟机的创建。
[0044]图8是使用主镜像来迁移虚拟机镜像数据的方法800的流程图。在附图标记810,机器学习技术被用于具有各自的虚拟机镜像的多个虚拟机以标识这样的虚拟机镜像中的公共数据段。在附图标记820,在所标识的公共数据段上执行同伴压力技术。可以理解,同伴压力技术可标识大部分虚拟机镜像中的公共数据段,其中大部分中的公共数据段被包括在主镜像中。此外,同伴压力技术可标识在虚拟机镜像中有影响力的数据段,其中有影响力的数据段被包括在主镜像中。在附图标记830,基于同伴压力技术创建主镜像。在附图标记840,主镜像被复制到新虚拟机或已更新虚拟机的至少一个的已更新位置。在附图标记850,新虚拟机或已更新虚拟机的至少一个被建立。
[0045]图9是用于访问服务器来为多个虚拟机镜像创建主镜像的方法900的流程图。在附图标记910,作出是否连接到主镜像(MI)服务器的判定。如果判定不连接到MI服务器(例如,“否”),方法900继续到附图标记920。在附图标记920,多个虚拟机镜像的主镜像被创建。可以理解,主镜像可基于上面讨论的技术来创建,诸如但不限于,同伴压力技术、离线机器学习、运行时机器学习、优先级技术等等。在附图标记930,主镜像被本地地存储。
[0046]如果判定连接到MI服务器(例如,“是”),方法900继续到附图标记940。在附图标记940,作出是否采用模板的判定。如果不实施模板(例如“否”),方法900继续到附图标记950,其中为多个虚拟机镜像创建主镜像。可以理解,主镜像可用全局同伴压力技术(例如,全局同伴压力技术包括利用MI服务器内包含的虚拟机镜像的大部分公共数据)或本地同伴压力技术(例如本地同伴压力技术包括利用包含在本地一而不是MI服务器内的虚拟机镜像的大部分公共数据)来创建。继续到附图标记960,主镜像被存储在MI服务器上。作为示例而非限制,所存储的主镜像可被用作潜在模板、模板的源,被另一公司/用户使用等等。
[0047]如果判定是采用模板(例如,“是”),方法900继续到附图标记970。在附图标记970,基于匹配的环境来从MI服务器选择模板。例如,所匹配的环境可以是用户选择、机器匹配、基于工业,和/或其任何组合。模板可提供与潜在公共数据段相关的度量和特性以进行收集,从而生成主镜像。在附图标记980,基于所选择的模板为虚拟机镜像创建主镜像。如上面讨论的,主镜像可用全局同伴压力技术或本地同伴压力技术来创建。在另一个示例中,用户定义的组合可在全局同伴压力技术和本地同伴压力技术之间实现,其中一部分全局虚拟机镜像被选择以被包含在混合同伴压力技术中。在到附图标记990,主镜像被存储在MI服务器上。作为示例而非限制,所存储的主镜像可被用作潜在模板、模板的源,被另一公司/用户重新使用等等。
[0048]此处使用的术语“组件”和“系统”及其各种形式旨在表示与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。[0049]在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。
[0050]如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户的状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据来自一个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护主题的自动化和/或推断的动作。
[0051]而且,对于在详细描述或权利要求书中使用术语“包括”、“包含”、“具有”、“含有”或其它形式的变型而言,这样的术语旨在以类似于术语“包括”的方式体现包含性,如同“包括”在用作权利要求书中的过渡词时所解释的那样。
[0052]为了为所要求保护主题提供上下文,图10以及以下讨论旨在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非旨在对使用范围或功能提出任何限制。
[0053]尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表)、基于微处理器或可编程消费或工业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。
[0054]参考图10,示出了示例通用计算机1010或计算设备(例如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或工业电子产品、机顶盒、游戏系统…)。计算机1010包括一个或多个处理器1020、存储器1030、系统总线1040、大容量存储1050、以及一个或多个接口组件1070。系统总线1040与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机1010可包括耦合到存储器1030的一个或多个处理器1020,该一个或多个处理器1020执行各种计算机可执行动作、指令和或组件。
[0055]处理器1020可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)JI场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器1020还可被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合DSP核的一个或多个微处理器、或任何其它这种配置。
[0056]计算机1010可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机1010来实现所要求保护主题的一个或多个方面。计算机可读介质可以是能由计算机1010访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
[0057]计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM),电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带盒、磁带……)、光盘(例如,紧致盘(⑶)、数字多功能盘(DVD)……)、以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机1010访问的任何其他介质。
[0058]通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
[0059]存储器1030和大容量存储1050是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器1030可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存)或是两者的某种组合。作为示例,包括诸如在启动期间在计算机1010内的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器1020的处理等。
[0060]大容量存储1050包括相对于存储器1030用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储1050包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒等一个或多个设备。
[0061]存储器1030和大容量存储1050可包括或其中存储有操作系统1060、一个或多个应用1062、一个或多个程序模块1064和数据1066。操作系统1060用于控制和分配计算机1010的资源。应用1062包括系统和应用软件之一或两者,并且可利用操作系统1060对资源的管理通过存储在存储器1030和/或大容量存储1050中的程序模块1064和数据1066来执行一个或多个动作。因此,应用1062可根据由此提供的逻辑来将通用计算机1010变成专用机器。
[0062]所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,生成组件110可以是应用程序1062或形成应用程序1062的一部分,并且包括存储在存储器和/或大容量存储1050中的一个或多个模块1064和数据1066,其功能可以在由所示的一个或多个处理器1020执行时实现。
[0063]根据一个特定实施例,处理器1020可与片上系统(SOC)或在单个集成电路基座上包括(或换言之集成)硬件和软件的类似体系结构相对应。此处,处理器1020可包括至少与处理器1020和存储器1030相似的一个或多个处理器以及存储器等。常规处理器包括最少量的硬件和软件并且广泛依赖于外部硬件和软件。作为对比,处理器的SOC实现更强大,因为它将硬件和软件嵌入其中以能够用最少的硬件和软件或不依赖于外部硬件和软件来启用特定功能。例如,生成组件110和/或相关联的功能可被嵌入到SOC体系结构中的硬件内。
[0064]计算机1010还包括通信地耦合到系统总线1040并便于与计算机1010的交互的一个或多个接口组件1070。作为示例,接口组件1070可以是端口(例如,串行、并行、PCMCIA、USB、火线…)或接口卡(例如,声音、视频…)等等。在一个示例实现中,接口组件1070可被具体化为用户输入/输出接口,该用户输入/输出接口使得用户能够通过一个或多个输入设备(例如,诸如鼠标的定点设备、跟踪球、指示笔、触摸垫、键盘、话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、相机、其他计算机……)来将命令和信息输入到计算机1010中。在另一示例实现中,接口组件1070可被具体化为输出外围接口,该输出外围接口向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其他计算机等提供输出。此外,接口组件1070可被具体化为网络接口,该网络接口使得能够诸如通过有线或无线通信链路与其它计算设备(未示出)通信。
[0065]以上所已经描述 的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。
【权利要求】
1.一种便于虚拟机镜像管理的方法,包括: 采用被配置成执行存储在存储器中的计算机可执行指令的至少一个处理器来执行以下动作: 标识多个虚拟机镜像间公共的数据段;以及 创建包括所述数据段的单个实例的主镜像。
2.如权利要求1所述的方法,其特征在于,基于所述主镜像来迁移所述多个虚拟机镜像的至少一个。
3.如权利要求1所述的方法,其特征在于,用所述主镜像将对应于所述多个虚拟机镜像的至少一个的虚拟机迁移到已更新的存储位置。
4.如权利要求1所述的方法,其特征在于,对所述多个虚拟机镜像的至少一个或与所述多个虚拟机镜像相关联的至少一个虚拟机采用机器学习技术。
5.如权利要求4所述的方法,其特征在于,还包括: 在与所述多个虚拟机镜像相关联的至少一个虚拟机离线时调用第一机器学习技术;以及 在与所述多个虚拟机镜像相关联的至少一个虚拟机的运行时调用第二机器学习技术。
6.如权利要求4所述的方法,其特征在于,采用所述机器学习技术以标识所述多个虚拟机镜像间公共的数据段。
7.如权利要求1所述的方法,其特征在于,执行同伴压力技术来将在所述多个虚拟机镜像的大部分中发现的公共数据段包括在所述主镜像中。
8.—种便于创建主镜像的系统,包括: 耦合到存储器的处理器,所述处理器被配置成执行以下存储在所述存储器中的计算机可执行组件: 第一组件,配置用于从多个虚拟机镜像生成主镜像,所述主镜像包括驻留在所述多个虚拟机镜像内的公共数据段的单个实例。
9.如权利要求8所述的系统,其特征在于,还包括第二组件,配置用于评估所述多个虚拟机镜像以标识在所述虚拟机镜像间共享的数据段。
10.如权利要求8所述的系统,其特征在于,还包括: 第三组件,配置用于执行同伴压力技术以查明哪个公共数据段在所述多个虚拟机镜像的大部分内;以及 第四组件,配置用于采用机器学习技术以标识在所述多个虚拟机镜像内公共数据段。
【文档编号】G06F9/06GK103493008SQ201280016723
【公开日】2014年1月1日 申请日期:2012年4月6日 优先权日:2011年4月7日
【发明者】A·萨格维, S·巴拉克里什南, V·库巴利姆特, A·温贝格, S·帕塔萨拉蒂, J·芬尼根 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1