一种桌面云计算环境下的虚拟机更新方法和系统的制作方法

文档序号:7822756阅读:217来源:国知局
一种桌面云计算环境下的虚拟机更新方法和系统的制作方法
【专利摘要】本发明公开了一种桌面云计算环境下的虚拟机更新方法以及系统,所述方法包含:虚拟机模板监控步骤,监控虚拟机模板从而判断所述虚拟机模板是否被更新;虚拟机搜索步骤,当所述虚拟机模板被更新时搜索出需要更新的虚拟机;更新信息推送步骤,根据更新后的所述虚拟机模板的模板信息构造并推送虚拟机更新信息;虚拟机更新步骤,利用所述虚拟机更新信息对搜索到的所述虚拟机进行虚拟机更新操作。本发明的更新系统包含监控单元、搜索单元、更新信息构造单元以及更新操作单元。与现有技术相比,基于本发明的方法以及系统可以自动对大量虚拟机进行批量更新操作,从而大大减少了操作人员的工作量。
【专利说明】一种桌面云计算环境下的虚拟机更新方法和系统

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体说涉及一种桌面云计算环境下的虚拟机更新方法和系统。

【背景技术】
[0002]云计算是一种新兴的共享基础架构的方法,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。云计算的底层需要虚拟化技术支持。通过虚拟化技术,云计算可以实现对资源的灵活以及高效的使用,从而为用户提供优质的服务。
[0003]云计算环境可分为桌面云计算环境与服务器云计算环境,其中桌面云计算侧重于在云计算环境中实现物理桌面的虚拟化,以达到桌面使用的安全性和灵活性。用户可以通过任何设备,在任何地点,任何时间访问桌面云计算环境中的属于他们个人的桌面系统。
[0004]桌面云计算的应用场景很多,在其中一类应用场景中,用户基于统一的虚拟机模板建立多个相同的虚拟机以便用户使用。当虚拟机模板更新时,用户即需要使用基于更新后虚拟机模板创建的虚拟机。例如在学校教学场景中虚拟机部署流程如下:教师制作好统一的虚拟机模板,然后用其创建相应的桌面虚拟机,学生们使用相同的桌面虚拟机进行课堂实验。当该教师需要更新教学使用的虚拟机时,需要重新制作一个新的虚拟机模板,然后使用该虚拟机模板重新创建所有的虚拟机,并删除所有旧的虚拟机。这是一个繁琐的过程,其大大增加了教师的工作量。
[0005]因此,针对上述虚拟机应用中更新虚拟机的繁琐操作,需要一种新的虚拟机更新方法及系统以减少操作人员的工作量。


【发明内容】

[0006]为了减少虚拟机更新过程中的繁琐操作,本发明提供了一种桌面云计算环境下的虚拟机更新方法,所述方法包含以下步骤:
[0007]虚拟机模板监控步骤,监控虚拟机模板从而判断所述虚拟机模板是否被更新;
[0008]虚拟机搜索步骤,当所述虚拟机模板被更新时,搜索出所有基于更新前的所述虚拟机模板创建的虚拟机;
[0009]更新信息推送步骤,根据更新后的所述虚拟机模板的模板信息构造虚拟机更新信息,并基于搜索出的所述虚拟机的运行状态将所述虚拟机更新信息推送至搜索到的所述虚拟机;
[0010]虚拟机更新步骤,利用所述虚拟机更新信息对搜索到的所述虚拟机进行虚拟机更新操作。
[0011]在一实施例中,所述虚拟机模板监控步骤包含以下步骤:
[0012]监控模板操作步骤,监控所述虚拟机模板从而判断是否有更新操作被成功执行;
[0013]模板信息比较步骤,当所述更新操作被成功执行时比较所述更新操作前后的所述模板信息从而判断所述虚拟机模板是否被更新。
[0014]在一实施例中,所述监控模板操作步骤包含以下步骤:
[0015]在用于操作虚拟机模板的管理程序的接口位置插入钩子函数,从而利用对所述钩子函数的监控来判断是否存在虚拟机模板操作;
[0016]当存在所述虚拟机模板操作时判断所述虚拟机模板操作是否被成功执行;
[0017]当所述虚拟机模板操作被成功执行时分析所述虚拟机模板操作的具体内容从而判断所述虚拟机模板操作是否为所述更新操作。
[0018]在一实施例中,在所述监控模板操作步骤中,当所述虚拟机模板操作被成功执行时判断所述虚拟机模板操作是否为模板建立操作,当所述虚拟机模板操作为所述模板建立操作时将新建立的虚拟机模板保存入模板库。
[0019]在一实施例中,所述模板信息包含配置信息以及磁盘信息。
[0020]在一实施例中,所述模板信息比较步骤包含以下步骤:
[0021]配置信息比较步骤,比较所述更新操作前后的所述配置信息从而判断所述配置信息是否被更新;
[0022]磁盘信息比较步骤,比较所述更新操作前后的所述磁盘信息从而判断所述磁盘信息是否被更新。
[0023]在一实施例中,所述磁盘信息比较步骤包含以下步骤:
[0024]比较所述更新操作前后的磁盘数目是否相同,当所述更新操作前后的磁盘数目不同时所述磁盘信息被更新;
[0025]当所述更新操作前后的磁盘数目相同时比较每个磁盘在所述更新操作前后的磁盘快照从而判断所述磁盘信息是否被更新。
[0026]在一实施例中,所述虚拟机更新信息包含配置更新信息以及磁盘更新信息,所述更新信息推送步骤包含配置更新信息推送步骤,根据更新后的所述配置信息构造并推送所述配置更新信息。
[0027]在一实施例中,所述更新信息推送步骤还包含磁盘更新信息推送步骤,所述磁盘更新信息推送步骤包含以下步骤:
[0028]根据更新后的所述磁盘信息构造所述磁盘更新信息;
[0029]判断所述虚拟机的运行状态;
[0030]当所述虚拟机当前没有运行时,锁死所述虚拟机并推送所述磁盘更新信息;
[0031]当所述虚拟机当前正在运行时,延后推送所述磁盘更新信息。
[0032]本发明还提供了一种桌面云计算环境下的虚拟机更新系统,所述系统包含:
[0033]监控单元,用于监控虚拟机模板从而判断所述虚拟机模板是否被更新;
[0034]搜索单元,其与所述监控单元相连接,用于当所述虚拟机模板被更新时,搜索出所有基于更新前的所述虚拟机模板创建的虚拟机;
[0035]更新信息构造单元,其与所述监控单元以及所述搜索单元相连,用于当所述虚拟机模板被更新时,根据更新后的所述虚拟机模板的模板信息构造虚拟机更新信息,并基于搜索出的所述虚拟机的运行状态将所述虚拟机更新信息推送至搜索到的所述虚拟机;
[0036]更新操作单元,其与所述更新信息构造单元相连并连接到每台所述虚拟机,用于利用所述虚拟机更新信息对搜索到的所述虚拟机进行虚拟机更新操作。
[0037]与现有技术相比,基于本发明的方法以及系统可以自动对大量虚拟机进行批量更新操作,从而大大减少了操作人员的工作量。
[0038]本发明的其它特征或优点将在随后的说明书中阐述。并且,本发明的部分特征或优点将通过说明书而变得显而易见,或者通过实施本发明而被了解。本发明的目的和部分优点可通过在说明书、权利要求书以及附图中所特别指出的步骤来实现或获得。

【专利附图】

【附图说明】
[0039]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
[0040]图1是根据本发明一实施例的流程图;
[0041]图2是根据本发明一实施例的系统结构简图。

【具体实施方式】
[0042]以下将结合附图及实施例来详细说明本发明的实施方式,借此本发明的实施人员可以充分理解本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程并依据上述实现过程具体实施本发明。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0043]在桌面云计算环境下,虚拟机的创建以及使用具有众多不同的方式。其中一种方式是基于虚拟机模板创建虚拟机。首先建立统一的虚拟机模板,然后根据虚拟机模板创建多个相同的虚拟机以便用户使用。在此种情况中,如果虚拟机模板被更新,那么就需要根据新的虚拟机模板创建新的虚拟机以便用户使用。此时就需要针对每一个用户创建新的虚拟机并删除旧的虚拟机。整个虚拟机的创建以及删除工作势必带来巨大的工作量。
[0044]本发明公开了一种云计算环境下的虚拟机更新方法以及系统。基于本发明的方法以及系统可以自动对基于统一虚拟机模板建立的大量虚拟机进行批量更新操作,从而大大减少了操作人员的工作量。接下来基于流程图来详细说明本发明的一实施例的详细执行过程。附图的流程图中示出的步骤可以在包含诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了各步骤的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0045]本发明的虚拟机更新方法的目的是在虚拟机模板被更新后自动更新相应的虚拟机。在本发明一实施例中,执行虚拟机更新方法首先要判断虚拟机模板是否被更新,如图1所示,执行虚线框192内的步骤。当虚拟机模板被更新后则更新相应的虚拟机。
[0046]基于对虚拟机模板的相关特征分析,在本实施例中,将虚拟机模板的信息分为两大类。一类是配置信息,其包含创建虚拟机所需的处理器(CPU)、内存、网卡设备信息等设备信息。另一类是磁盘信息,其包含创建虚拟机所需的磁盘数目以及每个磁盘上的数据信息。本实施例基于模板信息的分类构造了用于虚拟机更新的更新数据结构体。更新数据结构体中包含有用于更新的的配置信息以及磁盘信息。考虑到磁盘信息的数据量较大,因此在本实施例的更新数据结构体中使用了磁盘更新标志位,磁盘更新的标志位用于标记是否要进行磁盘更新,磁盘更新时所需的具体磁盘信息则参照更新后的虚拟机模板的磁盘信息。
[0047]在本实施例中,首先要判断虚拟机模板是否被更新,这就要判断上述虚拟机模板的信息是否发生变化。当上述虚拟机模板的信息发生变化时,即虚拟机模板被更新,此时就需要对相应的虚拟机进行更新。判断虚拟机模板的信息是否发生变化,首先要获取虚拟机模板的初始信息(即变化前的信息)。因此虚拟机更新系统启动时首先要执行一个初始化步骤。在本实施例中,在云计算平台管理程序启动过程的最后,执行初始化步骤,获取虚拟机模板的初始信息,初始化更新数据结构体以及相关用于虚拟机更新的存储器。
[0048]如图1所示,在初始化步骤中,针对虚拟机模板的配置信息执行步骤S101,获取当前虚拟机模板的配置信息并保存到内存中。
[0049]在本实施例中,虚拟机的磁盘信息包括磁盘数目以及每个磁盘上的数据信息。针对虚拟机模板的磁盘信息,首先执行步骤S103,获取当前虚拟机模板的磁盘数目并保存到内存中。由于磁盘上的数据信息通常数据量很大,因此本实施例中基于磁盘快照来分析磁盘信息的变换。在这里执行步骤S102,对当前虚拟机模板的所有磁盘做磁盘快照,并将快照保存到指定位置,将快照的位置信息保存在内存中。
[0050]接下来就可以执行虚线框192内的虚拟机模板监控步骤,监控虚拟机模板从而判断虚拟机模板是否被更新。由于监控行为应当是即时进行的,即系统要一直进行监控操作。为了减少系统负担,本实施例采用了逐层递进的监控方式,首先监控最容易监控的变量,根据监控需求逐级触发计算量更大的监控判断层面。从而在不影响最终监控判断结果的准确度的情况下尽可能的降低系统需要一直保持的监控操作的计算量。
[0051]在本实施例中,判断虚拟机模板是否被更新首先是要检测是否存在更新操作。这里执行步骤S111,插入钩子函数,在编辑、新建虚拟机模板等可能导致虚拟机模板发生变化的管理程序接口位置插入钩子函数。接下来就可以执行步骤S112,监控钩子函数,从而利用对钩子函数的监控来判断是否存在虚拟机模板操作。
[0052]系统不断的监控设置的钩子函数是否被触发。当钩子函数没有被触发时则说明当前不存在虚拟机模板操作,当钩子函数被触发时则说明当前存在虚拟机模板操作,此时执行步骤S113,判断操作执行成败,即判断触发了钩子函数的虚拟机模板操作是否被成功的执行。
[0053]在本实施例中,虚拟机模板操作可分为更新操作以及模板建立操作两类。更新操作是基于现有的模板进行操作,更新现有模板的相关信息,从而生成所需的虚拟机模板。模板建立操作则是建立全新的虚拟机模板。本发明的主要目的是在虚拟机模板被更新后自动更新相应的虚拟机。不难理解,当虚拟机模板操作为建立新模板操作时,并没有以创建好的虚拟机与新模板对应,接下来需要的是基于新建立的模板创建新的虚拟机,因此接下来也就暂时不需要进行虚拟机更新操作。
[0054]因此在本实施例中,当虚拟机模板操作被成功执行时就需要执行步骤S121,分析虚拟机模板操作的具体内容从而判断虚拟机模板操作是否为更新操作,也就是判断是否建立了新的模板。当虚拟机模板操作为更新操作时,即用户没有建立新的模板而是基于现有的模板进行操作时就可以执行模板信息比较步骤,比较虚拟机模板操作前后的模板信息从而判断虚拟机模板是否被更新。
[0055]相较建立新的模板,基于现有的模板进行更新操作会大大减少操作步骤,从而减少工作量。为了使得用户在调用模板时拥有更大的选择范围,需要不断扩充系统中所保存的模板的数量。因此在本实施例中,当虚拟机模板操作为模板建立操作时,执行步骤S122,将新的模板保存到样本模板库中以便以后调用。
[0056]新模板被保存后,系统接下来就需要对新模板监控,从而在新模板更新后更新由新模板创建的虚拟机。因此为了对新模板进行监控,在监控新模板之前还要执行步骤S123,保存新模板的初始信息,即针对新模板执行类似步骤S101、S102以及S103的操作,将新样本模板的配置信息更新到内存中,对新样本模板的磁盘做磁盘快照,并将快照保存到指定位置,将快照的位置信息保存在内存中。
[0057]在本实施例中,考虑到用户在建立新的样本模板时也有可能建立出与原有样本模板相同的样本模板。因此在步骤S121中还需要一个二次确认步骤。即将新建的模板与所有原有的模板作对比,当新建的模板与所有模板均不一致时才可以确定虚拟机模板操作为模板建立操作且建立了新的模板。当然的,基于实际情况,上述二次确认步骤也可以省略。
[0058]本实施例将模板信息分为了配置信息以及磁盘信息。因此模板信息比较时首先执行步骤S131,配置信息比较步骤,比较虚拟机模板操作前后的虚拟机模板配置信息从而获取比较结果。系统获取更新后的配置信息,并与内存中保存的配置信息进行比较。当更新前后的配置信息不同时,执行步骤S132,对比更新前后的配置信息的不同并将变化了的部分保存到更新数据结构体中。然后执行步骤S133,将更新后的配置信息全部保存到内存中并删除内存中保存的更新前的配置信息以便执行下一次的更新判断。
[0059]当步骤S133执行完毕或者更新前后的虚拟机模板的配置信息相同时,接下来就要执行磁盘信息比较步骤,比较虚拟机模板操作前后的磁盘信息从而获取比较结果。在本实施例中,将磁盘信息分为磁盘数目以及每个磁盘上的数据信息。不难理解,磁盘数目比较容易分析,因此首先执行步骤S141,比较虚拟机模板操作前后的磁盘数目是否相同。如果磁盘数目发生了变化,则直接说明磁盘信息发生了变化。
[0060]对当磁盘数目没有变化时,则需要执行步骤S142,对比磁盘快照,比较每个磁盘在虚拟机模板操作前后的磁盘快照是否相同。在步骤S142中,首先对虚拟机模板操作后的模板磁盘做快照,然后对比新的快照与之前步骤S102中获取的快照是否相同。如果磁盘数目发生变化或者磁盘快照不同,则需要执行步骤S143,将更新数据结构体中的磁盘更新标志位标记为是。然后执行步骤S144,删除指定位置的旧的磁盘快照并将新快照保存到指定位置。最后更新内存中的快照的位置信息以及磁盘数目信息。
[0061]当磁盘信息以及配置信息的对比判断都完成后就可以执行步骤S150,判断是否需要执行更新操作。在本实施例中,即是检查生成的更新数据结构体是否为空。
[0062]本发明的目的是对所有需要更新的虚拟机自动进行更新。因此当需要执行更新操作时,首先要筛选出需要更新的虚拟机。本实施例中,虚拟机是基于虚拟机模板创建的,如果用于创建虚拟机的虚拟机模板被更新了,那么基于更新前的该模板被创建的虚拟机就需要被更新。因此在本实施例中需要执行步骤S160,虚拟机搜索步骤,当某一虚拟机模板被更新时,搜索出所有基于更新前的该虚拟机模板创建的虚拟机。在此过程中,系统根据更新数据结构体中的虚拟机模板编号从数据库中查找所有使用该虚拟机模板的虚拟机。
[0063]然后就可以执行更新信息推送步骤,基于虚拟机的运行状态根据更新后的虚拟机模板的模板信息构造并推送虚拟机更新信息。在本实施例中,虚拟机更新信息包含配置更新信息以及磁盘更新信息。针对不同的虚拟机更新信息采取不同的构造以及推送策略。因此在更新信息推送步骤以及之后的虚拟机更新步骤是针对每个虚拟机依次完成的。循环处理每一个虚拟机,当所有的虚拟机都处理完毕,则本次更新过程结束。
[0064]在更新信息推送步骤中,系统首先执行步骤S171,判断是否需要更新配置信息。当需要更新配置信息时,执行步骤S172,根据更新后的配置信息构造并推送配置更新信息。
[0065]然后执行步骤S173,判断是否需要更新磁盘信息。检查更新数据结构体中的磁盘更新标志位,若标志位为是,即当需要更新磁盘信息时,执行步骤S174,根据更新后的磁盘信息构造磁盘更新信息。由于磁盘信息无法在虚拟机运行时进行更新,因此在步骤S174之后需要执行步骤S175,判断虚拟机是否运行。当虚拟机正在运行,则执行步骤S176,延迟推送直到虚拟机停止运行。
[0066]为了执行步骤S176中,本实施例在最初的初始化步骤中就首先初始化一个定时器以及一块定时推送缓冲区。计时器用于定期检查缓冲区内容以及系统其他变量,以确定是否发起推送操作。定时推送缓冲区用于保存当前需要延迟推送的磁盘更新信息,包括虚拟机编号、虚拟机模板编号、更新的磁盘列表。需要指出的是,本实施例中的初始化步骤,即S10US102以及S103中的信息获取操作以及上述定时器、定时推送缓冲区的初始化操作只需要在虚拟机更新系统刚启动时执行。
[0067]在步骤S176中,将更新数据结构体中的磁盘信息连同虚拟机编号、虚拟机模板编号作为一条记录保存到定时推送缓冲区中。为了保证操作的唯一性,定时推送缓冲区中的虚拟机编号是唯一的,即同一时刻,一个虚拟机在定时推送缓冲区中只能有一条记录;当新的记录发送到定时推送缓冲区而旧的记录还未处理时,则将新的记录覆盖掉旧的记录,从而避免冲突问题。
[0068]根据预先设置好的定时器间隔,更新模块每隔设定好的时间间隔,读出定时推送缓冲区中的内容,循环处理每条记录,根据每条记录中的虚拟机编号,获取虚拟机信息并检查虚拟机是否处于运行状态,如果虚拟机状态为正在运行,则本过程结束,否则发起推送并在推送成功后删除定时推送缓冲区中该条记录。
[0069]当虚拟机停止运行时,则首先执行步骤S177,锁死虚拟机。在锁死状态下,虚拟机无法进行任何操作。然后执行步骤S178,推送磁盘更新信息。
[0070]最后则可以根据推送出的配置更新信息或磁盘更新信息进行步骤S181(更新虚拟机磁盘)或步骤S182(更新虚拟机配置)。在本实施例中,首先执行步骤S182。步骤S182既可以可以在虚拟机停止运行时执行也可以在虚拟机运行的同时执行。在步骤S182中,根据更新数据结构体中的数据类型的不同,分别调用底层的虚拟机接口完成CPU热插拔、内存在线分配、网卡热插拔等操作。
[0071]接下来执行步骤S181,步骤181只能在虚拟机停止运行时执行且在执行步骤S181时虚拟机无法被操作。在步骤S181中,根据更新数据结构体中的磁盘更新标志位决定是否更新磁盘,如不需要更新,则本步骤结束;如需要更新,则删除虚拟机的所有磁盘,并根据更新数据结构体中的磁盘信息,将虚拟机模板的所有磁盘复制为虚拟机的磁盘。为了保证其他虚拟机的读写效率,在本实施例中,同时进行磁盘更新的虚拟机不超过3个。
[0072]基于本发明的虚拟机更新方法,本发明还提出了一种虚拟机更新系统。图2所示为使用本实施例的虚拟机更新方法的一套虚拟机系统。本实施例主要依托中标麒麟高级服务器虚拟化版来构建虚拟机更新系统,需要指出的是,本发明的虚拟机更新系统也可以依托其他虚拟机控制平台来构建。
[0073]如图2所示,从整体架构上看,虚拟机控制平台包含管理节点254、储存设备210以及集群节点250、251以及252。存储设备210是整个云计算环境的基础设备之一,虚拟机磁盘、模板磁盘都保存在存储设备上。如图2所示,存储设备210内保存有虚拟机磁盘212、213以及214、模板磁盘211。
[0074]管理节点和集群节点通过网络与存储设备连接,并可在存储设备上进行相关操作。在本实施例中,桌面云计算平台中允许存在一个管理节点以及多个集群节点,管理节点通过网络对多个集群节点进行管理。如图2中,管理节点254下管理集群节点250、251以及 252。
[0075]管理节点254是虚拟机控制平台的管理端,其上构造并运行着对桌面云计算环境进行管理的云计算平台管理模块200。
[0076]云计算平台管理模块200,其包含模板操作单元201以及模板配置单元203。用户通过模板操作单元201在模板配置单元中选取或创建虚拟机模板,配置所需的虚拟机模板配置,并在存储设备中构建与上述配置相应的模板磁盘211。接着基于虚拟机模板配置以及模板磁盘211创建相应的虚拟机。
[0077]在本实施例中,一个虚拟机包括桌面虚拟机(虚拟机运行环境、系统等配置设定)以及虚拟机磁盘。基于一个虚拟机模板配置以及相应的模板磁盘可以创建多个相同的虚拟机。如图2中桌面虚拟机242和对应的虚拟机磁盘212、桌面虚拟机243和对应的虚拟机磁盘213以及桌面虚拟机244和对应的虚拟机磁盘214就是基于同一个虚拟机模板配置以及模板磁盘211创建的相同的三套虚拟机。另外在本实施例中,用户还可以在管理节点上配置多个不同的虚拟机模板并基于不同的虚拟机模板创建不同的虚拟机。
[0078]集群节点是提供桌面虚拟机服务的服务器,例如集群节点250上运行有桌面虚拟机 242、243 以及 244。
[0079]本实施例的虚拟机更新系统依托虚拟机控制平台构建,其包含监控单元220、搜索单元260、更新信息构造单元270以及更新操作单元230。监控单元220、搜索单元260、更新信息构造单元270被构造在管理节点254上。其中,监控单元220与云计算平台管理模块200相连,用于监控虚拟机模板从而判断虚拟机模板是否被更新作用。
[0080]搜索单元260与监控单元220相连,用于基于监控单元220的判断结果搜索使用被更新的虚拟机模板的虚拟机并输出搜索结果,当虚拟机模板被更新时搜索出所有使用被更新的虚拟机模板的虚拟机。
[0081]更新信息构造单元270与监控单元220以及搜索单元260相连,用于当虚拟机模板被更新时基于被更新的虚拟机的运行状态根据更新后的虚拟机模板的模板信息构造并推送虚拟机更新信息。
[0082]在本实施例中,为了便于针对不同的集群节点执行虚拟机更新操作,在每个集群节点上构造有相应的更新操作单元。如图2所示集群节点250上构造有更新操作单元230。当然的也可以针对所有集群节点构造一个统一的更新操作单元。更新操作单元230与更新信息构造单元270相连并连接到集群节点250上的每台虚拟机,用于基于虚拟机更新信息对相应的虚拟机执行更新操作。
[0083]在本实施例中,监控单元220监控所有虚拟机模板的变化,包括配置信息、磁盘、网络设备等。当监控单元220发现某个虚拟机模板被更新时,激活搜索单元260。搜索单元260查找云计算平台管理模块200的数据库,查找所有使用该虚拟机模板的虚拟机。与此同时更新信息构造单元270也构造相应的虚拟机更新信息(配置更新信息以及磁盘更新信息)。假如搜索单元260的搜索结果是发生更新的虚拟机模板对应的虚拟机为集群节点250上运行的虚拟机,则更新信息构造单元270将构造好的虚拟机更新信息推送给更新操作单元230。(当然,在推送过程中需要检测虚拟机的运行状态,这里就不多加赘述。)更新操作单元230基于虚拟机更新信息调用相关虚拟机所在节点上的操作模块或直接操作存储设备进行不同的处理。即对存储设备中的虚拟机磁盘212、213以及214,还有集群节点250上的桌面虚拟机242、243以及244执行更新操作。
[0084] 虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。本发明所述的方法还可有其他多种实施例。在不背离本发明实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变或变形,但这些相应的改变或变形都应属于本发明的权利要求的保护范围。
【权利要求】
1.一种桌面云计算环境下的虚拟机更新方法,其特征在于,所述方法包含以下步骤: 虚拟机模板监控步骤,监控虚拟机模板从而判断所述虚拟机模板是否被更新; 虚拟机搜索步骤,当所述虚拟机模板被更新时,搜索出所有基于更新前的所述虚拟机模板创建的虚拟机; 更新信息推送步骤,根据更新后的所述虚拟机模板的模板信息构造虚拟机更新信息,并基于搜索出的所述虚拟机的运行状态将所述虚拟机更新信息推送至搜索到的所述虚拟机; 虚拟机更新步骤,利用所述虚拟机更新信息对搜索到的所述虚拟机进行虚拟机更新操作。
2.如权利要求1所述的方法,其特征在于,所述虚拟机模板监控步骤包含以下步骤: 监控模板操作步骤,监控所述虚拟机模板从而判断是否有更新操作被成功执行; 模板信息比较步骤,当所述更新操作被成功执行时比较所述更新操作前后的所述模板信息从而判断所述虚拟机模板是否被更新。
3.如权利要求2所述的方法,其特征在于,所述监控模板操作步骤包含以下步骤: 在用于操作虚拟机模板的管理程序的接口位置插入钩子函数,从而利用对所述钩子函数的监控来判断是否存在虚拟机模板操作; 当存在所述虚拟机模板操作时判断所述虚拟机模板操作是否被成功执行; 当所述虚拟机模板操作被成功执行时分析所述虚拟机模板操作的具体内容从而判断所述虚拟机模板操作是否为所述更新操作。
4.如权利要求3所述的方法,其特征在于,在所述监控模板操作步骤中,当所述虚拟机模板操作被成功执行时判断所述虚拟机模板操作是否为模板建立操作,当所述虚拟机模板操作为所述模板建立操作时将新建立的虚拟机模板保存入模板库。
5.如权利要求2所述的方法,其特征在于,所述模板信息包含配置信息以及磁盘信息。
6.如权利要求5所述的方法,其特征在于,所述模板信息比较步骤包含以下步骤: 配置信息比较步骤,比较所述更新操作前后的所述配置信息从而判断所述配置信息是否被更新; 磁盘信息比较步骤,比较所述更新操作前后的所述磁盘信息从而判断所述磁盘信息是否被更新。
7.如权利要求6所述的方法,其特征在于,所述磁盘信息比较步骤包含以下步骤: 比较所述更新操作前后的磁盘数目是否相同,当所述更新操作前后的磁盘数目不同时所述磁盘信息被更新; 当所述更新操作前后的磁盘数目相同时比较每个磁盘在所述更新操作前后的磁盘快照从而判断所述磁盘信息是否被更新。
8.如权利要求5所述的方法,其特征在于,所述虚拟机更新信息包含配置更新信息以及磁盘更新信息,所述更新信息推送步骤包含配置更新信息推送步骤,根据更新后的所述配置信息构造并推送所述配置更新信息。
9.如权利要求8所述的方法,其特征在于,所述更新信息推送步骤还包含磁盘更新信息推送步骤,所述磁盘更新信息推送步骤包含以下步骤: 根据更新后的所述磁盘信息构造所述磁盘更新信息; 判断所述虚拟机的运行状态; 当所述虚拟机当前没有运行时,锁死所述虚拟机并推送所述磁盘更新信息; 当所述虚拟机当前正在运行时,延后推送所述磁盘更新信息。
10.一种桌面云计算环境下的虚拟机更新系统,其特征在于,所述系统包含: 监控单元,用于监控虚拟机模板从而判断所述虚拟机模板是否被更新; 搜索单元,其与所述监控单元相连接,用于当所述虚拟机模板被更新时,搜索出所有基于更新前的所述虚拟机模板创建的虚拟机; 更新信息构造单元,其与所述监控单元以及所述搜索单元相连,用于当所述虚拟机模板被更新时,根据更新后的所述虚拟机模板的模板信息构造虚拟机更新信息,并基于搜索出的所述虚拟机的运行状态将所述虚拟机更新信息推送至搜索到的所述虚拟机; 更新操作单元,其与所述更新信息构造单元相连并连接到每台所述虚拟机,用于利用所述虚拟机更新信息对搜索到的所述虚拟机进行虚拟机更新操作。
【文档编号】H04L29/08GK104461693SQ201410766455
【公开日】2015年3月25日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】姚远, 乔咏, 赵峰, 马立克, 蒋涛, 张维婷, 宋潇豫, 张永军 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1