虚拟机镜像分析的制作方法

文档序号:6495745阅读:267来源:国知局
虚拟机镜像分析的制作方法
【专利摘要】讨论用于分析虚拟机镜像的技术。在一个实施例中,从一个或多个虚拟机镜像中提取设置的子集,虚拟机镜像在其中存储设置的值。设置由在虚拟机镜像的虚拟机上执行的软件来分别使用。各虚拟机镜像的一个目标虚拟机镜像被选择,并且设置的目标值从该目标虚拟机镜像中获得。设置的样本值从多个虚拟机镜像中获得。通过标识值在虚拟机镜像间的相似性和差异来形成子集。
【专利说明】虚拟机镜像分析
[0001]背景
[0002]在管理虚拟机上的软件的领域中,虚拟机客操作系统中的大量变量可导致一个人难以在相对于某任意目的而言有关或意义重大的软件设置间进行区分。例如,用(虚拟机的)客操作系统的配置设置和/或其上安装的应用软件进行实验的人可能,例如直接通过手动编辑、作为诸如安装或卸载软件的副作用等,来随时间作出许多配置改变。由于这些配置或设置改变积累,可能难以回溯一个人的步骤,并标识可能是什么导致了虚拟机开始在期望的或不期望的状态运行。
[0003]不仅难以在虚拟机的许多改变状态参数中标识那些具有含义或意义的,也难以在虚拟机上的可变值的不同类型或类别间进行区分。有些可能是真实的配置参数,客操作系统或应用软件可读取它们以确定如何运行。其它的可能包含由客操作系统输出的操作数据,诸如性能度量、时戳、使用计数等。即便是在这些中,可能很难为了评估虚拟机的目的,来确定与虚拟机的期望或不期望的当前状态相关的操作数据和实际上独立于虚拟机的状态的操作数据。
[0004]以下讨论与使用同伴压力类型算法来分析虚拟机镜像相关的技术。
[0005]概述
[0006]以下概述仅是为了介绍在以下详细描述中讨论的某些概念而被包括的。本概述并不是全面的,并且不旨在描绘所要求保护的主题的范围,该范围由所附的权利要求书来阐明。
[0007]讨论用于分析虚拟机镜像的技术。在一个实施例中,从一个或多个虚拟机镜像中提取设置的子集,虚拟机镜像在其中存储设置的值。设置由在虚拟机镜像的虚拟机上执行的软件来分别使用。各虚拟机镜像的一个目标虚拟机镜像被选择,并且设置的目标值从该目标虚拟机镜像中获得。设置的样本值从多个虚拟机镜像中获得。通过标识值在虚拟机镜像间的相似性和差异来形成子集。可例如使用贝叶斯估计来在统计上分析相似性和差异。
[0008]许多附带特征将参考以下的详细描述并结合附图考虑以在下文解释。
【专利附图】

【附图说明】
[0009]根据附图阅读以下详细描述,将更好地理解本发明,其中在所附描述中使用相同的附图标记来指代相同的部分。
[0010]图1示出示例虚拟化层。
[0011]图2示出关于虚拟机和虚拟机映像的虚拟化层的过程和交互。
[0012]图3示出可如何捕捉执行中的虚拟机的快照。
[0013]图4示出了普通同伴压力算法。
[0014]图5示出了获得设置的不同途径。
[0015]图6示出了虚拟机镜像中的示例设置。
[0016]图7示出了设置和值的示例数据库。
[0017]图8示出了使用同伴压力组件的系统和示例输出。[0018]详细描述
[0019]下面讨论的各实施例涉及分析虚拟机镜像。如在背景中所述,对于用户而言难以筛选虚拟机上的许多可观察的值,以标识哪些值用于感兴趣的设置或参数而哪些是没兴趣的。为了从虚拟机上可呈现的许多中标识有意义的设置,基于贝叶斯的同伴压力技术被用来对虚拟机的参数或设置进行等级划分或分类。以机器虚拟化总览进行讨论,接着是同伴压力算法的讨论,接着是如何将同伴压力算法应用到从虚拟机镜像中提取的数据上的解释。
[0020]图1示出示例虚拟化层100。计算机102具有硬件104,该硬件104包括中央处理单元(CPU) 106、存储器108、网络接口 110、非易失性存储112以及没有示出的其他组件,诸如总线、显示适配器等。虚拟化层100管理和促进虚拟机114的执行。尽管图1中未示出,每个虚拟机114通常具有相关联的虚拟盘镜像和客操作系统。为简明起见,虚拟机114的操作系统和可能的应用软件有时会被称作访客,访客存储在与虚拟机114相关联的虚拟盘镜像中并且从与虚拟机114相关联的虚拟盘镜像中执行。
[0021]虚拟化层100可以是任何各种已知或未来的实现,诸如Hyper-V服务器(TM)、VMWare ESX服务器(TM)、Xen、Oracle VM (TM)等。虚拟化层的体系结构可以是带有在主机操作系统上运行的虚拟机监视器(VMM)的托管类型,或者是带有直接在计算机102的硬件104上运行的系统管理程序等的裸金属类型。如本文中所使用的,术语虚拟机摂是指模拟任何特定的硬件架构(例如,x86)(该硬件架构能够运行用于该硬件架构的本机代码)的系统型虚拟机;对于访客而言,几乎无法把虚拟机与硬件机器区分开。在本文中所讨论的虚拟机不是诸如Java虚拟机等抽象或进程型的虚拟机。
[0022]虚拟化层100执行管理虚拟机114以及由其本身和虚拟机114 二者共享硬件104的基本功能。可以使用各种技术中的任何一种把虚拟机114和硬件104隔离开。在一个实施例中,虚拟化层可以提供对应于虚拟机114的不同的隔离开的环境中(即,分区或域)。虚拟化层100的一些,诸如共享虚拟设备驱动程序、虚拟机间通信设施以及虚拟机管理API (应用编程接口),可以运行在一个特殊的特权分区或域中,从而允许紧凑且高效的系统管理程序。在其他实施例中,用于虚拟机管理和对硬件104的一致共享的功能可以驻留在单片金属上(on-the-metal)系统管理程序中。
[0023]图2示出关于虚拟机114和虚拟机映像140的虚拟化层100的过程和交互。虚拟化层100可能根据相应的虚拟机配置参数执行启动并执行虚拟机114的过程142。当虚拟机(VM) 114被启动时,虚拟化层标识相关联的虚拟机镜像140。在实践中,任何虚拟机114可以使用任何虚拟机镜像140。虚拟机镜像140可以是虚拟化层100的文件系统141上的特殊格式的文件(如,VHD) ο虚拟化层100加载所标识的虚拟机映像140。启动的虚拟机114也许通过寻求主引导记录或其他引导信息来安装和读取虚拟机镜像140,并且引导开始执行的客操作系统。
[0024]虚拟化层100管理虚拟机114的执行,处理对访客的内核的特定调用、超级调用等,以及协调虚拟机114对底层硬件104的访问。随着访客及其软件运行,虚拟化层100可以维护虚拟盘镜像140上的访客的状态;当访客或由访客运行的应用向“盘”写数据时,虚拟化层100将该数据转换成虚拟盘镜像140的格式并写入到该镜像。
[0025]虚拟化层100可以执行用于关闭虚拟机114的过程144。当接收到停止虚拟机114的指令时,虚拟机114及其访客的状态被保存到虚拟盘镜像140,并且正在执行的虚拟机114过程(或分区)被删除。可以保留虚拟机114的规范以用于虚拟机114的稍后重启。
[0026]图3示出可如何捕捉执行中的虚拟机114的快照。虚拟机114具有在其上使用硬件104来执行的客操作系统180。运行中的虚拟机113提供存储客操作系统180和安装在客操作系统180上的任何应用或其它软件的虚拟盘存储。访客操作系统180和应用的总状态182可以物理存在于由虚拟化层100管理的整个硬件104。总之,几乎任何已知的物理机器的硬件或软件的特征都可在虚拟机114上具有等同物。虚拟化层100包括执行过程186以捕捉快照188的快照组件184。当虚拟机114正在运行时,接收捕捉虚拟机114的快照的指令。例如,虚拟化管理系统可以跨网络传送被虚拟化层100接收到的指令。在一些虚拟化实现中,在捕捉快照之前可能需要进行一些初步的准备。例如缓存可能需要刷新,文件系统或存储系统可能需要被停顿,客操作系统180的存储器页面可能需要被存储,等等。
[0027]可以用已知的技术或现有的虚拟化实现技术来执行捕捉快照188。值得注意的是,快照188可以包括在等同的运行中物理机器上可用的任何信息。例如,快照188可以包括虚拟机113的存储器的副本,该副本可以包括执行中过程190、内核数据结构192或虚拟机113的虚拟化物理存储器中的任何信息。此外,快照188可以包括从虚拟机113使用的物理或虚拟设备捕捉的信息,该信息包括寄存器的值、缓冲区的内容等。在一些实现中,快照过程186也可以捕捉与虚拟机113的虚拟物理环境有关的信息,诸如虚拟CPU信息(虚拟核或CPU的数量)、内存和存储数量、虚拟设备、虚拟网络接口卡、BIOS、虚拟主机板、设备驱动,等等。一些虚拟化实现可以将快照链接到虚拟机的盘映像,并且该快照可以包括与虚拟机的盘映像不同的执行中的虚拟机的存储块。总之,快照188是持久对象,诸如包含了所捕捉的虚拟机的工作状态的文件。大多数虚拟化实现允许加载和执行快照;正执行快照的虚拟机(可能是不同于从其捕获快照的原始虚拟机的虚拟机)开始执行,好像拍快照时的原始虚拟机。换言之,执行中的虚拟机的状态可以被捕捉并且后来在同一个或一个新的虚拟机中继续。
[0028]应当注意,在一些虚拟实现中,快照和盘镜像文件在功能上可互换。因此,如在此使用的,术语“虚拟机镜像”将指特殊格式文件和快照两者,虚拟化层将特殊格式文件作为虚拟盘提供给虚拟机,快照从执行虚拟机捕捉。
[0029]图4示出了普通同伴压力算法。应用于诊断故障机器的同伴压力算法在《Automatic Misconfiguration Troubleshooting with PeerPressure (使用同伴压力的自动误配置故障查找)》(H.Wang, J.Platt, Y.Chen, R.Zhang,和 Y.-M.Wang; USENIX0SDI,2004)中详述。上述参考文献通过引用结合于此。对图4的以下讨论概述并概括了引用的参考文献中描述的算法。
[0030]在步骤220,由用户选择目标机器,例如,故障机器。在步骤222,目标相关的设置值对被提取。一般而言,可位于虚拟机镜像中的任何类型的设置值对可被提取(如此处所使用的,“设置”也将指操作状态或写/输出数据,诸如日志文件或任何客/应用状态或被持久存储到虚拟机镜像的输出)。例如,设置值对可以是注册表项及其内容(值)、文件目录和该目录中文件的名称、文件及该文件的第一行,日志文件和该日志文件行的数量、虚拟化参数(例如,存储器分配)及其值等等。即,设置,或参数,是标识虚拟机镜像上的对应值来自其中的位置的一些信息,而值是在那个位置的内容。[0031]在步骤224,目标设置值对可被规范化。这仅涉及将设置和值置为某种规范形式以允许它们在语义上精确比较。例如,拼写或形式的变化可被更正(例如“#1”可被转换成“1”),值可被隐去,等。
[0032]在步骤226,相关虚拟机的样本组被标识,并且对应于来自步骤222的设置的设置值对(或仅值)的样本组被获得。虚拟机可在任何基础上(也许用户定义)被标识。例如,基于相同虚拟机镜像(诸如金色镜像)的虚拟机可被选择。具有相同应用的虚拟机可被标识。用户选择的一组虚拟机可被标识。接着值被提取。值可从所标识的虚拟机的虚拟机镜像中被提前提取,并随后以规范形式被存储在数据库中(见图7),在需要时从那里获得它们。值也可以从虚拟机镜像直接提取并在它们被需要时被规范化。
[0033]在步骤228,同伴压力算法执行统计分析以得到关于设置的信息。即,执行计算来帮助标识哪些设置可能为目标机器感兴趣(从步骤220),而哪些可能没有兴趣。换言之,统计计算精选出被找到相对于样本的虚拟机而言具有实质上影响(或信令)目标虚拟机行为的低可能性的设置。尽管上面参考的论文提供了详情,然而后面还有一些解释。
[0034]一般的概念是,对于一些给定设置,在各虚拟机之间比较设置的值。具有倾向于跨全部机器高度一致的值的设置,不太可能是影响机器行为或用作机器行为指示性的设置。具有倾向于高度不一致的值的设置,也不太可能是行为控制或行为指示。换言之,如果全部的虚拟机对于一个给定设置具有不同的值,该设置不太可能影响或预测目标虚拟机的特性。在中间,是那些值有些不一致但是在统计上有显著变化的设置。例如,如果机器中的一半或三分之一具有设置的不同值,而其余具有相同值,很可能该设置是被蓄意改变并有效果的。估计步骤228排除高度一致和高度不一致的设置以标识设置的用户可能感兴趣的子集。在一个实施例中,贝叶斯统计估计被使用,如前面包括的论文中完整解释的。
[0035]图5示出了获得设置的不同途径。在一个实施例中,将虚拟机114A与虚拟机114B相关。它们可以被相关是因为两者都具有从同一基础或“金色”虚拟机镜像中得到的虚拟机镜像。它们可能是时间相关;一个可能是另一个在晚些时间的版本(作为直接子孙或作为另一个的克隆/快照)等等。它们可以被相关是因为它们两者都具有同一软件安装、客操作系统等。随着时间,虚拟机114A、114B遭受修改、更新、配置编辑,和其它如各虚拟机镜像中反映的持久状态改变。例如,虚拟机114AU14B两者可具有诸如设置252A、252B的同一设置的实例(“setting-1 (设置-1)”)。随时间,设置252A、252B可采用不同值。如果单个虚拟机随时间被快照或捕捉/复制,那些实例可用作为样本组(见上面步骤226),且那一世系的虚拟机可用作为目标虚拟机。即,同一虚拟机的相同设置在不同时间的值可用作为样本组。
[0036]图6示出了虚拟机镜像270中的示例设置。如上所述,这些设置可以是虚拟机镜像中的任何持久可寻址值。例如,文件系统对象、注册表项、(例如在虚拟机镜像头部中的)虚拟机元数据等等。设置的值可随时间改变,并可在值跨样本空间一致程度上改变。一些设置可具有高度一致的值,而一些值可具有高度不一致值(例如,反映特定机器的“特征”的值,诸如主机名、网络地址、用户名等)。
[0037]图7示出了设置和值的示例数据库290。列标签,诸如“设置”是自解释的。在此示例中,可用虚拟机群体中的每个虚拟机具有其自身的值的列或向量。在实践中,设置(行)的数量可达到数万或更多。应当注意对于某些设置,值可能跨虚拟机大部分一致,例如,“安装目录”设置对于每个虚拟机具有相同值。其它设置可具有高度不一致的值。例如,“注册表项X”对于每个分别的机器具有不同值。其它设置可具有既不高度一致也不高度不一致的值;用针对特定实现的参数进行的贝叶斯统计分析可被用来标识哪些设置可能被感兴趣。在一个实施例中,多维数据库被使用。例如,同一机器的值可跨不同时间、不同修订来被索引。
[0038]图8示出了使用同伴压力组件310的系统和示例输出312A、312B。向同伴压力组件310传递目标设置值对的目标组314(或者仅仅值,如果一组不变的设置要被使用)。样本组316也被传递到同伴压力组件310。同伴压力组件310在输入上执行统计分析以生成输出,输出可被存储在记录介质中、显示在显示器上、通过网络传输等等。在一个实施例中,输出312A是一组被分类的设置,诸如被认为一致的设置、被认为不一致的设置,以及那些被认为是兴趣候选的设置。在另一个实施例中,输出312B是来自所输入的目标设置值对314中的一组划分了可能性等级的设置。输出312B可被减少到前M (例如,前三)组划分了等级的设置。可替代地,可使用可能性阈值。
[0039]可以理解,实施例的变型和替换被构想并被以下权利要求包含。
[0040]结语
[0041]以上讨论的实施例和特征都可用储存在易失性或非易失性计算机或设备可读介质中的信息的形式来实现。这被认为至少包括诸如光学存储(例如,紧致盘只读存储器(CD-ROM)、磁介质、闪速只读存储器(ROM)、或存储数字信息的任何现有或未来手段等介质。所存储的信息可采用机器可执行指令(例如,经编译的可执行二进制代码)、源代码、字节代码、或可用于允许或配置计算机设备来执行上述各实施例的信息的任何其它形式。这还被认为至少包括诸如随机存取存储器(RAM)和/或在程序的执行以实现一实施例的期间存储诸如中央处理单元(CPU)指令等信息的虚拟存储器等易失性存储器,以及存储允许程序或可执行代码被加载和执行的信息的非易失性介质。实施例和特征可在任何类型的计算设备上执行,这些计算设备包括便携设备、工作站、服务器、移动无线设备等。
【权利要求】
1.一种用于选择提取自一个或多个虚拟机镜像的设置的子集的方法,所述虚拟机镜像中存储了所述设置的值,所述设置分别由在所述虚拟机镜像的虚拟机上执行的软件来使用,所述方法包括: 选择所述虚拟机镜像的一个目标虚拟机镜像,并从所述目标虚拟机镜像中获得所述设置的目标值; 访问所述设置的样本值,所述样本值已经从多个虚拟机镜像中被获取;以及 通过标识所述值在所述虚拟机镜像间的相似性和差异来形成所述子集。
2.如权利要求1所述的方法,其特征在于,还包括执行包括操作于所述相似性和差异的计数的贝叶斯统计函数的同伴压力算法。
3.如权利要求1所述的方法,其特征在于,所述目标虚拟机镜像包括用户选择的虚拟机镜像,并且所述多个虚拟机镜像相互相关且与所述目标虚拟机镜像相关。
4.如权利要求3所述的方法,其特征在于,所述多个虚拟机镜像和所述目标虚拟机镜像作为同一虚拟机镜像在不同时间点的副本而相关。
5.如权利要求3所述的方法,其特征在于,所述多个虚拟机镜像和所述目标虚拟机镜像作为最初曾是同一虚拟机镜像的副本而相关。
6.如权利要求5所述的方法,其特征在于,所述多个虚拟机镜像已作为虚拟机执行,并且所述值的至少一些在所述虚拟机镜像正作为虚拟机执行时被生成。
7.一种标识虚拟机的设置的方法,所述方法包括: 从目标虚拟机提取目标设置的多个目标值; 选择一组样本虚拟机并获取所述虚拟机的对应于所述目标设置的样本值;以及 根据所述样本值和所述目标值标识所述目标设置的子集。
8.如权利要求7所述的方法,其特征在于,所述标识包括根据样本值和目标值之间的一致程度来执行统计计算。
9.如权利要求8所述的方法,其特征在于,所述标识包括多个贝叶斯估计计算。
10.如权利要求7所述的方法,其特征在于,还包括,根据所述设置中的一个给定设置的各样本值的一致程度,确定是否将所述给定设置包括在所述子集中。
11.如权利要求10所述的方法,其特征在于,当所述各样本值被确定为具有足够的统计一致性时,所述给定设置被包括在所述子集中。
12.如权利要求11所述的方法,其特征在于,为具有统计一致性的所述各样本值确定一特定值,且所述确定是基于所述给定值不同于所述特定值的。
13.如权利要求7所述的方法,其特征在于,所述样本虚拟机包括彼此分别不同的虚拟机镜像,所述样本值已从所述虚拟机镜像中获得。
14.如权利要求7所述的方法,其特征在于,所述设置包括所述虚拟机上的软件的配置设置。
15.如权利要求7所述的方法,其特征在于,所述样本虚拟机包括在不同时间点的同一虚拟机镜像。
【文档编号】G06F9/44GK103620550SQ201280031966
【公开日】2014年3月5日 申请日期:2012年6月8日 优先权日:2011年6月28日
【发明者】R·弗莱尔斯, S·帕塔萨拉蒂, G·亨特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1