CN103389910A - 构建虚拟机的方法、虚拟机的管理方法及其装置 - Google Patents
构建虚拟机的方法、虚拟机的管理方法及其装置 Download PDFInfo
- Publication number
- CN103389910A CN103389910A CN2013103018233A CN201310301823A CN103389910A CN 103389910 A CN103389910 A CN 103389910A CN 2013103018233 A CN2013103018233 A CN 2013103018233A CN 201310301823 A CN201310301823 A CN 201310301823A CN 103389910 A CN103389910 A CN 103389910A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- state point
- point
- state
- information
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
提供了一种构建虚拟机的方法和装置以及虚拟机的管理方法和管理装置。一种构建虚拟机的方法,包括:下载并显示虚拟机状态拓扑,接收用户选择的状态点;确定需要下载虚拟机补丁的状态点以及状态点之间的转换路径;按照转换路径将下载到的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点虚拟机。一种虚拟机的管理方法,包括:当接收到虚拟机状态拓扑下载请求时,根据存储的各个状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑,并将所述虚拟机状态拓扑发送给客户机。采用本发明所述方法及装置,不仅能够快速创建出指定状态的虚拟机,而且还为虚拟机在各种状态下的备份数据提供了一个合理的管理机制。
Description
技术领域
本申请涉及一种构建虚拟机的方法和装置以及虚拟机的管理方法和管理装置,尤其涉及一种通过补丁的形式管理各个状态的虚拟机数据并且利用虚拟机在各状态点的拓扑依赖关系快速创建虚拟机的技术。
背景技术
虚拟机(Virtual Machine)是一种通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。现有技术在创建虚拟机时需要使用大量的模板数据创建,传统的模板是某虚拟机的一个备份,这个备份可以是块级别备份,也可以是文件级别备份;可以是全量备份,也可以是增量备份。创建虚拟机时,对于块级别备份,可以在块级别中,把所有的块拷贝到目标设备中;对于文件级别备份,可以把模板中文件拷贝到目标设备中。但是无论采用哪种数据形式进行备份,这些备份数据模板都占据了大量的系统资源,而且一直也没有一套合理的管理机制对这些备份模板进行维护。
发明内容
本发明的目的在于提供一种构建虚拟机的方法和装置以及虚拟机的管理方法和管理装置,以补丁形式管理各个状态的虚拟机数据,使用最少的数据快速创建出指定状态的虚拟机,从而有效避免虚拟机备份数据时对系统资源的大量占用。
根据本发明的一方面,提供一种构建虚拟机的方法,所述方法包括:向管理服务器发送虚拟机状态拓扑下载请求;从管理服务器接收虚拟机状态拓扑,所述虚拟机构建拓扑包括状态点信息以及状态点之间的依赖信息;显示接收的虚拟机状态拓扑,以接收用户选择的目标状态点信息;根据本机上虚拟机的当前状态点信息、接收的目标状态点信息以及接收的虚拟机状态拓扑,确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径;向管理服务器发送包括确定的状态点的信息的虚拟机补丁下载请求;从管理服务器接收确定的状态点的虚拟机补丁;按照确定的状态点之间的转换路径,将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点的虚拟机。
优选地,所述状态点信息是时间点信息、状态信息或版本信息。
优选地,虚拟机状态拓扑的初始状态点与空的设备对应。
优选地,所述确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径的步骤包括:将从初始状态点到目标状态点的路径确定为转换路径。
优选地,所述确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径的步骤包括:如果确定本机的状态点与目标状态点不在同一拓扑分支上,则将从初始状态点到目标状态点的路径确定为转换路径。
优选地,所述确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径的步骤包括:如果确定所述当前状态点与目标状态点不在同一拓扑分支上,则找到从初始状态点到所述当前状态点的路径与从初始状态点到目标状态点的路径的交汇状态点,并且将从所述当前状态点到所述交汇状态点再到目标状态点的路径确定为转换路径。
优选地,所述按照确定的状态点之间的转换路径将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁的步骤包括:如果确定所述当前状态点与目标状态点不在同一拓扑分支上,则按照所述当前状态点起到所述交汇状态点的路径,对所述虚拟机逆向打补丁,再从所述交汇状态点到目标状态点对所述虚拟机顺向打补丁。
优选地,所述方法还包括:根据用户输入的状态点的信息,基于当前状态点的虚拟机生成虚拟机补丁,并且将包括生成的虚拟机补丁以及当前状态点和用户输入的状态点的信息的虚拟机补丁上载请求发送给管理服务器。
根据本发明的另一方面,提供一种构建虚拟机的装置,所述装置包括:请求发送单元,用于向管理服务器发送虚拟机状态拓扑下载请求和向管理服务器发送包括确定的状态点的信息的虚拟机补丁下载请求;数据接收单元,用于从管理服务器接收虚拟机状态拓扑,所述虚拟机构建拓扑包括状态点信息以及状态点之间的依赖信息,和从管理服务器接收确定的状态点的虚拟机补丁;拓扑显示单元,用于显示接收的虚拟机状态拓扑,以接收用户选择的目标状态点信息;选择确定单元,用于根据本机上虚拟机的当前状态点信息、接收的目标状态点信息以及接收的虚拟机状态拓扑,确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径;构建单元,用于按照确定的状态点之间的转换路径,将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点的虚拟机。
优选地,所述状态点信息是时间点信息、状态信息或版本信息。
优选地,虚拟机状态拓扑的初始状态点与空的设备对应。
优选地,所述选择确定单元将从初始状态点到目标状态点的路径确定为转换路径。
优选地,如果确定本机的状态点与目标状态点不在同一拓扑分支上,所述选择确定单元将从初始状态点到目标状态点的路径确定为转换路径。
优选地,如果确定所述当前状态点与目标状态点不在同一拓扑分支上,所述选择确定单元找到从初始状态点到所述当前状态点的路径与从初始状态点到目标状态点的路径的交汇状态点,并且将从所述当前状态点到所述交汇状态点再到目标状态点的路径确定为转换路径。
优选地,如果确定所述当前状态点与目标状态点不在同一拓扑分支上,所述构建单元按照所述当前状态点起到所述交汇状态点的路径,对所述虚拟机逆向打补丁,再从所述交汇状态点到目标状态点对所述虚拟机顺向打补丁。
优选地,所述装置还包括:更新单元,用于根据用户输入的状态点的信息,基于当前状态点的虚拟机生成虚拟机补丁,并且通过请求发送单元将包括生成的虚拟机补丁以及当前状态点和用户输入的状态点的信息的虚拟机补丁上载请求发送给管理服务器。
根据本发明的另一方面,提供一种虚拟机的管理方法,所述方法包括:当从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求时,存储所述虚拟机补丁以及当前状态点和更新状态点的信息;当从第二客户机接收到虚拟机状态拓扑下载请求时,根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑,并且将所述虚拟机状态拓扑发送给所述第二客户机,其中,任一对当前状态点与更新状态点的信息指示自所述当前状态点到所述更新状态点的依赖关系。
优选地,所述状态点信息是时间点信息、状态信息或版本信息。优选地,虚拟机状态拓扑的初始状态点与空的设备对应。
优选地,使用版本管理工具存储和管理接收的虚拟机补丁以及当前状态点和更新状态点的信息。
优选地,以版本管理工具的元数据的形式存储和管理虚拟机补丁的信息以及当前状态点和更新状态点的信息。
优选地,当从第三客户机接收到包括至少一个状态点的信息的虚拟机补丁下载请求时,从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁发送给第三客户机。
优选地,第一客户机和第二客户机是同一客户机。
优选地,第一客户机、第二客户机和第三客户机当中的任意两个客户机是同一客户机,或者,第一客户机、第二客户机和第三客户机是同一客户机。
根据本发明的另一方面,提供一种虚拟机的管理装置,所述装置包括:请求接收单元,用于从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求,和从第二客户机接收到虚拟机状态拓扑下载请求;存储单元,用于当请求接收单元从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求时候,存储所述虚拟机补丁以及当前状态点和更新状态点的信息;拓扑构建单元,用于当请求接收单元从第二客户机接收到虚拟机状态拓扑下载请求时,根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑,其中,任一对当前状态点与更新状态点的信息指示自所述当前状态点到所述更新状态点的依赖关系;数据发送单元,用于将所述拓扑构建单元构建的虚拟机状态拓扑发送给所述第二客户机。
优选地,所述状态点信息是时间点信息、状态信息或版本信息。
优选地,虚拟机状态拓扑的初始状态点与空的设备对应。
优选地,所述存储单元使用版本管理工具存储和管理接收的虚拟机补丁以及当前状态点和更新状态点的信息。
优选地,以版本管理工具的元数据的形式存储和管理虚拟机补丁的信息以及当前状态点和更新状态点的信息。
优选地,所述装置还包括:查询单元,用于当请求接收单元从第三客户机接收到包括至少一个状态点的信息的虚拟机补丁下载请求时,从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁通过数据发送单元发送给第三客户机。
优选地,第一客户机和第二客户机是同一客户机。
优选地,第一客户机、第二客户机和第三客户机当中的任意两个客户机是同一客户机,或者,第一客户机、第二客户机和第三客户机是同一客户机。
有益效果
与现有技术相比,本发明具有以下优点:
本发明不仅能够用最少的数据快速创建出指定状态的虚拟机,有效避免虚拟机备份数据时对系统资源的大量占用,而且还为这些备份数据提供了一个合理的管理机制。另外,本发明通过采用将增量备份和版本管理工具相结合的方式,充分利用两者各自的优势,不仅有效减少了因为导入全部模板数据对本机硬盘资源的消耗,而且能够更为规范地维护和管理虚拟机在各状态下产生的备份数据,进而缩短了虚拟机的创建的过程。
附图说明
通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是示出根据本发明的示例性实施例的构建虚拟机的方法的流程图;
图2是示出根据本发明的示例性实施例的虚拟机的管理方法的流程图;
图3是示出根据本发明的示例性实施例的构建虚拟机的装置的结构框图;
图4是示出根据本发明的示例性实施例的虚拟机的管理装置的结构框图;
图5是示出根据本发明的示例性实施例的某虚拟机状态拓扑的示意图。
具体实施方式
以下,将参照附图来详细说明本发明的实施例。
本发明的总体构思是,完全通过补丁(patch)的形式管理各个状态的虚拟机。在虚拟机使用的整个过程中划分成若干个状态点或时间点,在每个状态点为虚拟机做一个模板,模板的内容是基于上一个状态点的增量数据,并将其定义为一个补丁,所述补丁是块级别的。由于虚拟机在使用过程中会根据用户需要部署不同的工作环境,因此可以在不同的状态点为虚拟机保留不同的部署环境,这样不同的状态点将对应不同的补丁,而各个状态点之间的转换连接关系就构成了虚拟机状态拓扑,所述虚拟机状态拓扑不仅为虚拟机在各个状态点之间的创建或切换提供了依据,还为虚拟机在各个状态点生成的模板提供了一个有效的管理机制。其次,当用户想要构建预定状态的虚拟机时,可下载所述虚拟机状态拓扑,通过所述虚拟机状态拓扑确定需要下载的补丁,从而构建目标状态的虚拟机。
图1示出了本发明一种构建虚拟机的方法的优选实施例的流程图。图3示出的一种构建虚拟机的装置可用于实现图1中所述的方法。
参照图1,在步骤S110,所述装置向管理服务器发送虚拟机状态拓扑下载请求。
当所述管理服务器接收到虚拟机状态拓扑下载请求时,将根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的的虚拟机状态拓扑,并将所述虚拟机状态拓扑发送至所述装置。
在步骤S120,所述装置从管理服务器接收虚拟机状态拓扑,所述虚拟机构建拓扑包括状态点信息以及状态点之间的依赖信息。
其中,所述状态点信息是虚拟机在该时刻的时间点信息、状态信息或版本信息,所述状态信息可以包括虚拟机在该时刻的补丁增量的大小、虚拟机部署环境的状态描述、上一个状态点的ID等等。当所述状态点信息记录的是虚拟机的初始状态时,由于虚拟机在初始状态的数据内容为空,则所述虚拟机状态拓扑的初始状态点与空的设备相对应。具体地,可参看图5中示出的某虚拟机状态拓扑示意图。图中的S[0,1,2,3,4……]表示的是t[0,1,2,3,4……]时刻的增量数据,也就是所述虚拟机在该时刻备份的补丁。对于任意一个Sx,其中S0表示的是虚拟机的初始状态,即空的设备。S1、S2、S11、S12…表示的是虚拟机在其它不同时刻的状态点。在步骤S130,所述装置显示接收的虚拟机状态拓扑,以接收用户选择的目标状态点信息。
所述装置可提供UI交互接口显示所述虚拟机状态拓扑,另外还可以显示所述虚拟机状态拓扑各个状态点包含的状态描述信息,用户在看到这些状态描述信息后可根据自己的需要在UI中选择要准备创建或切换的目标状态点,所述装置通过UI交互接口获取用户选择的目标状态点信息。
在步骤S140,所述装置根据本机上虚拟机的当前状态点信息、接收的目标状态点信息以及接收的虚拟机状态拓扑,确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径。
根据本发明的可选实施例,所述装置将从初始状态点到目标状态点的路径确定为转换路径。具体地,仍以图5为例进行说明,假设虚拟机设备当前状态为空设备,当虚拟机准备从当前状态S0转换到目标状态S12时,根据本实施所述转换路径方法得到:该虚拟机的转换路径为S0→S1→S11→S12,根据该路径中所涉及的状态点,进而确定需要下载的补丁为S0、S1、S11、S12。
根据本发明的另一可选实施例,在确定自当前状态点到目标状态点的转换路径时,如果确定所述当前状态点与目标状态点不在同一拓扑分支上,则所述装置找到从初始状态点到所述当前状态点的路径与从初始状态点到目标状态点的路径的交汇状态点,并且将从所述当前状态点到所述交汇状态点再到目标状态点的路径确定为转换路径。具体地,仍以图5为例进行说明,假设虚拟机设备当前状态为S12,当虚拟机准备从当前状态S12转换到目标状态S41时,根据本实施所述转换路径方法得到:所述交汇状态点为S1,则该虚拟机的转换路径为S12→S11→S1→S2→S3→S4→S41,根据该路径中所涉及的状态点,进而确定需要下载的补丁为S12、S11、S1、S2、S3、S4、S41。
根据本发明的又一可选实施例,在确定自当前状态点到目标状态点的转换路径时,如果确定本机的状态点与目标状态点不在同一拓扑分支上,则所述装置将从初始状态点到目标状态点的路径确定为转换路径。具体地,仍以图5为例进行说明,假设虚拟机设备当前状态为S12,当虚拟机准备从当前状态S12转换到目标状态S41时,根据本实施所述转换路径方法得到:该虚拟机的转换路径为S0→S1→S2→S3→S4→S41,根据该路径中所涉及的状态点,进而确定需要下载的补丁为S0、S1、S2、S3、S4、S41。
在步骤S150,所述装置向管理服务器发送包括确定的状态点的信息的虚拟机补丁下载请求。
当所述管理服务器接收到包括确定的状态点的信息的虚拟机补丁下载请求时,从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁通过数据发送单元发送给所述装置。
在步骤S160,所述装置从管理服务器接收确定的状态点的虚拟机补丁。
在步骤S170,所述装置按照确定的状态点之间的转换路径,将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点的虚拟机。
需要说明的是,由于所述装置在步骤S140中可能采用不同的实施方式确定转换路径,因此所述装置在向虚拟机打补丁时也会不同。
根据本发明的示例性实施例,当所述虚拟机的当前状态为空的设备时,所述确定的状态点之间的转换路径为S0→S1→S11→S12,根据该路径中所涉及的状态点,所述装置按照顺序将接收到的S0、S1、S11、S12状态点对应的补丁打到虚拟机的空设备中。
根据本发明的另一示例性实施例,当所述虚拟机的当前状态为S12时,所述确定的状态点之间的转换路径为S12→S11→S1→S2→S3→S4→S41,根据该路径中所涉及的状态点,与前述实施例不同的是,由于S12→S11→S1(即交汇点)是逆向的,因此所述装置需要逆向打补丁,即逐个删除补丁,直到S1状态,所述装置才能按照顺序将接收到的S2、S3、S4、S41状态点对应的补丁打到虚拟机中。
根据本发明的又一示例性实施例,当所述虚拟机的当前状态为S12时,所述确定的状态点之间的转换路径为S0→S1→S2→S3→S4→S41,由于虚拟机的当前状态不是空的设备,因此所述装置需要将虚拟机还原到空的设备状态S0,才能按照顺序将接收到的S0、S1、S2、S3、S4、S41状态点对应的补丁打到虚拟机中。
可以看出,不管是顺序打补丁还是逆向打补丁,都是数据的拷贝和更改,而所述管理服务器中记录了每一个补丁的大小,所以不论是采用上述哪种方法都能计算出转换路径所涉及到的数据传输量,进而找出最合适的路径来创建或切换新的虚拟机。
另外,为了将用户在虚拟机中部署或配置的新环境备份至日后使用,根据本发明的一个可选实施例,所述装置还根据用户输入的状态点的信息,基于当前状态点的虚拟机生成虚拟机补丁,并且将包括生成的虚拟机补丁以及当前状态点和用户输入的状态点的信息的虚拟机补丁上载请求发送给管理服务器。
所述管理服务器在接收到所述上载请求后,将存储所述虚拟机补丁以及当前状态点和更新状态点的信息,以备日后下载给其他客户端创建或切换虚拟机使用。
图2示出了本发明一种虚拟机的管理方法的优选实施例流程图。图4示出的一种虚拟机的管理装置用于实现图2所述的管理方法。
参照图2,在步骤S210,所述管理装置从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求。
在步骤S220,所述管理装置存储所述虚拟机补丁以及当前状态点和更新状态点的信息。
在步骤S230,所述管理装置从第二客户机接收到虚拟机状态拓扑下载请求。
在步骤S240,所述管理装置根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑,其中,任一对当前状态点与更新状态点的信息指示自所述当前状态点到所述更新状态点的依赖关系。
在步骤S250,所述管理装置将所述虚拟机状态拓扑发送给所述第二客户机。
其中,所述状态点信息记录的是虚拟机在某一时刻的时间点信息及其对应的状态信息,所述状态点信息是虚拟机在该时刻的时间点信息、状态信息或版本信息,所述状态信息可以包括虚拟机在该时刻的补丁增量的大小、虚拟机部署环境的状态描述及上一个状态点的ID等等。当所述状态点信息记录的是虚拟机的初始状态时,由于虚拟机在初始状态时的数据内容为空,因此所述虚拟机状态拓扑的初始状态点与空的设备相对应。
为了更为高效地管理和维护虚拟机在各个时刻做的备份数据,减少开发量,根据本发明另一个优选实施例,所述管理装置可采用版本管理工具(例如,svn、git等)存储和管理接收的虚拟机补丁以及当前状态点和更新状态点的信息。
根据本发明采用版本管理工具管理备份数据的实施例,所述管理装置在执行步骤S220时,将以版本管理工具的元数据的形式存储和管理虚拟机补丁的信息以及当前状态点和更新状态点的信息。
相应地,所述管理装置在执行步骤S240时,所述管理装置通过版本管理工具中的记录的信息获取存储的各个当前状态点和更新状态点的信息,以构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑。另外,当所述管理装置从第三客户机接收到包括至少一个状态点的信息的虚拟机补丁下载请求时,根据本发明的另一个可选实施例,所述管理装置从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁发送给第三客户机。
根据本发明采用版本管理工具管理备份数据的实施例,所述管理装置通过版本管理工具查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁发送给第三客户机。
为了便于说明,在图2示出的实施例中,将与所述管理服务器交互的客户机分别称为第一客户机、第二客户机和第三客户机,而实际上,所述的第一客户机、第二客户机和第三客户机当中的任意两个客户机可以是同一客户机,或者,所述的第一客户机、第二客户机和第三客户机可以是同一客户机。
图3示出了本发明一种构建虚拟机的装置的优选实施例结构框图。
参照图3,所述装置至少包括请求发送单元301、数据接收单元302和拓扑显示单元303、选择确定单元304和构建单元305。
其中,请求发送单元301用于向管理服务器发送虚拟机状态拓扑下载请求和向管理服务器发送包括确定的状态点的信息的虚拟机补丁下载请求。
数据接收单元302用于从管理服务器接收虚拟机状态拓扑,所述虚拟机构建拓扑包括状态点信息以及状态点之间的依赖信息;和从管理服务器接收确定的状态点的虚拟机补丁。其中,所述状态点信息是时间点信息、状态信息或版本信息。当所述状态点信息记录的是虚拟机的初始状态时,则所述虚拟机状态拓扑的初始状态点与空的设备相对应。
拓扑显示单元303用于显示接收的虚拟机状态拓扑,并接收用户选择的目标状态点信息。
选择确定单元304用于根据本机上虚拟机的当前状态点信息、接收的目标状态点信息以及接收的虚拟机状态拓扑,确定需要下载的虚拟机补丁的状态点以及确定的状态点之间的转换路径。
构建单元305用于按照确定的状态点之间的转换路径,将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点的虚拟机。
其中,所述选择确定单元304在确定需要下载的虚拟机补丁的状态点以及确定的状态点之间的转换路径时,本发明还提供了以下几种可选实施例:
根据本发明其中一个可选实施例,所述选择确定单元304将从初始状态点到目标状态点的路径确定为转换路径。
根据本发明另一个可选实施例,如果确定所述当前状态点与目标状态点不在同一拓扑分支上,则所述选择确定单元304找到从初始状态点到所述当前状态点的路径与从初始状态点到目标状态点的路径的交汇状态点,并且将从所述当前状态点到所述交汇状态点再到目标状态点的路径确定为转换路径。
根据本发明另一个可选实施例,如果确定本机的状态点与目标状态点不在同一拓扑分支上,则所述选择确定单元304将从初始状态点到目标状态点的路径确定为转换路径。
相应地,所述构建单元305根据上述实施确定的转换路径在向所述虚拟机打补丁时,也会有不同的实施方案。
具体地,当将从初始状态点到目标状态点的路径确定为转换路径时,如果所述虚拟机的当前状态为空的设备,则所述构建单元305将按照顺序将转换路径涉及的状态点对应的补丁打到虚拟机的空设备中;如果所述虚拟机的当前状态不为空的设备,则所述构建单元305需要将虚拟机还原到空的设备状态S0,才能按照顺序将转换路径涉及的状态点对应的补丁打到虚拟机的空设备中。
如果确定所述当前状态点与目标状态点不在同一拓扑分支上,当所述选择确定单元304将所述当前状态点到交汇状态点再到目标状态点的路径确定为转换路径时,所述构建单元305将按照所述当前状态点起到所述交汇状态点的路径,对所述虚拟机逆向打补丁,再从所述交汇状态点到目标状态点对所述虚拟机顺向打补丁。
为了能够将用户在虚拟机中部署或配置的新环境保留至日后使用,根据本发明的一个可选实施例,所述装置还包括:更新单元(未示出),用于根据用户输入的状态点的信息,基于当前状态点的虚拟机生成虚拟机补丁,并且通过请求发送单元301将包括生成的虚拟机补丁以及当前状态点和用户输入的状态点的信息的虚拟机补丁上载请求发送给管理服务器。
图4示出了本发明一种虚拟机的管理装置的优选实施例结构框图。
参照图4,所述管理装置至少包括请求接收单元401、存储单元402和拓扑构建单元403、数据发送单元404。
其中,请求接收单元401用于从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求,和从第二客户机接收到虚拟机状态拓扑下载请求。
存储单元402用于当请求接收单元401从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求时候,存储所述虚拟机补丁以及当前状态点和更新状态点的信息。
拓扑构建单元403用于当请求接收单元401从第二客户机接收到虚拟机状态拓扑下载请求时,根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑。
数据发送单元404用于将所述拓扑构建单元403构建的虚拟机状态拓扑发送给所述第二客户机,其中,任一对当前状态点与更新状态点的信息指示自所述当前状态点到所述更新状态点的依赖关系。
其中,所述状态点信息记录的是虚拟机在某一时刻的时间点信息及其对应的状态信息,当所述状态点信息记录的是虚拟机的初始状态时,由于虚拟机在初始状态时的数据内容为空,则所述虚拟机状态拓扑的初始状态点与空的设备相对应。
为了更为高效地管理和维护虚拟机在各个时刻做的备份数据,根据本发明另一个优选实施例,所述管理装置可采用版本管理工具(例如,svn、git等)存储和管理接收的虚拟机补丁以及当前状态点和更新状态点的信息。
根据本发明采用版本管理工具管理备份数据的实施例,所述存储单元402将以版本管理工具的元数据的形式存储和管理虚拟机补丁的信息以及当前状态点和更新状态点的信息。
相应地,所述拓扑构建单元403通过版本管理工具中的记录的信息获取存储的各个当前状态点和更新状态点的信息,以构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑。
当所述请求接收单元401从第三客户机接收到包括至少一个状态点的信息的虚拟机补丁下载请求时,根据本发明的另一个可选实施例,所述管理装置还包括:
查询单元(未示出)用于从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁发送给第三客户机。
另外,需要说明的是,本发明所述的第一客户机、第二客户机和第三客户机当中的任意两个客户机可以是同一客户机,或者,所述的第一客户机、第二客户机和第三客户机可以是同一客户机。
通过利用虚拟机在各状态点的拓扑关系管理虚拟机各状态点补丁增量数据的方式,不仅在服务器端对虚拟机各状态点生成的模板数据提供了一个合理的数据管理机制,还有效避免了因为虚拟机模板数据备份对本机系统资源的占用。与此同时,本发明还通过采用补丁增量存储虚拟机各状态点的模板数据,计算创建虚拟机转换路径上所需增量的方法,将对本机硬盘的读写的消耗降到了最小,并有效缩短了虚拟机创建的时间。
由此可见,与现有技术相比本发明不仅能够用最少的数据快速创建出指定状态的虚拟机,有效避免虚拟机备份数据时对系统资源的大量占用,而且还为这些备份数据提供了一个合理的管理机制。另外,本发明通过采用将增量备份和版本管理工具相结合的方式,充分利用两者各自的优势,不仅有效减少了因为导入全部模板数据对本机硬盘资源的消耗,而且能够更为规范地维护和管理虚拟机在各状态下产生的备份数据,进而缩短了虚拟机的创建的过程。
需要指出,根据实施的需要,可将本申请中描述的各个步骤拆分为更多步骤,也可将两个或多个步骤或者步骤的部分操作组合成新的步骤,以实现本发明的目的。
上述根据本发明的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
尽管已参照优选实施例表示和描述了本发明,但本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对这些实施例进行各种修改和变换。
Claims (32)
1.一种构建虚拟机的方法,包括:
向管理服务器发送虚拟机状态拓扑下载请求;
从管理服务器接收虚拟机状态拓扑,所述虚拟机构建拓扑包括状态点信息以及状态点之间的依赖信息;
显示接收的虚拟机状态拓扑,以接收用户选择的目标状态点信息;
根据本机上虚拟机的当前状态点信息、接收的目标状态点信息以及接收的虚拟机状态拓扑,确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径;
向管理服务器发送包括确定的状态点的信息的虚拟机补丁下载请求;
从管理服务器接收确定的状态点的虚拟机补丁;
按照确定的状态点之间的转换路径,将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点的虚拟机。
2.如权利要求1所述的方法,其特征在于,所述状态点信息是时间点信息、状态信息或版本信息。
3.如权利要求2所述的方法,其特征在于,虚拟机状态拓扑的初始状态点与空的设备对应。
4.如权利要求3所述的方法,其特征在于,所述确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径的步骤包括:
将从初始状态点到目标状态点的路径确定为转换路径。
5.如权利要求3所述的方法,其特征在于,所述确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径的步骤包括:
如果确定本机的状态点与目标状态点不在同一拓扑分支上,则将从初始状态点到目标状态点的路径确定为转换路径。
6.如权利要求3所述的方法,其特征在于,所述确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径的步骤包括:
如果确定所述当前状态点与目标状态点不在同一拓扑分支上,则找到从初始状态点到所述当前状态点的路径与从初始状态点到目标状态点的路径的交汇状态点,并且将从所述当前状态点到所述交汇状态点再到目标状态点的路径确定为转换路径。
7.如权利要求3所述的方法,其特征在于,所述按照确定的状态点之间的转换路径将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁的步骤包括:
如果确定所述当前状态点与目标状态点不在同一拓扑分支上,则按照所述当前状态点起到所述交汇状态点的路径,对所述虚拟机逆向打补丁,再从所述交汇状态点到目标状态点对所述虚拟机顺向打补丁。
8.如权利要求1~7中任一项所述的方法,还包括:
根据用户输入的状态点的信息,基于当前状态点的虚拟机生成虚拟机补丁,并且将包括生成的虚拟机补丁以及当前状态点和用户输入的状态点的信息的虚拟机补丁上载请求发送给管理服务器。
9.一种构建虚拟机的装置,包括:
请求发送单元,用于向管理服务器发送虚拟机状态拓扑下载请求和向管理服务器发送包括确定的状态点的信息的虚拟机补丁下载请求;
数据接收单元,用于从管理服务器接收虚拟机状态拓扑,所述虚拟机构建拓扑包括状态点信息以及状态点之间的依赖信息,和从管理服务器接收确定的状态点的虚拟机补丁;
拓扑显示单元,用于显示接收的虚拟机状态拓扑,以接收用户选择的目标状态点信息;
选择确定单元,用于根据本机上虚拟机的当前状态点信息、接收的目标状态点信息以及接收的虚拟机状态拓扑,确定需要下载虚拟机补丁的状态点以及确定的状态点之间的转换路径;
构建单元,用于按照确定的状态点之间的转换路径,将接收的状态点对应的虚拟机补丁逐个向所述虚拟机打补丁,以构建目标状态点的虚拟机。
10.如权利要求9所述的装置,其特征在于,所述状态点信息是时间点信息、状态信息或版本信息。
11.如权利要求10所述的装置,其特征在于,虚拟机状态拓扑的初始状态点与空的设备对应。
12.如权利要求11所述的装置,其特征在于,所述选择确定单元将从初始状态点到目标状态点的路径确定为转换路径。
13.如权利要求11所述的装置,其特征在于,如果确定本机的状态点与目标状态点不在同一拓扑分支上,所述选择确定单元将从初始状态点到目标状态点的路径确定为转换路径。
14.如权利要求11所述的装置,其特征在于,如果确定所述当前状态点与目标状态点不在同一拓扑分支上,所述选择确定单元找到从初始状态点到所述当前状态点的路径与从初始状态点到目标状态点的路径的交汇状态点,并且将从所述当前状态点到所述交汇状态点再到目标状态点的路径确定为转换路径。
15.如权利要求11所述的装置,其特征在于,如果确定所述当前状态点与目标状态点不在同一拓扑分支上,所述构建单元按照所述当前状态点起到所述交汇状态点的路径,对所述虚拟机逆向打补丁,再从所述交汇状态点到目标状态点对所述虚拟机顺向打补丁。
16.如权利要求9~15中任一项所述的装置,还包括:
更新单元,用于根据用户输入的状态点的信息,基于当前状态点的虚拟机生成虚拟机补丁,并且通过请求发送单元将包括生成的虚拟机补丁以及当前状态点和用户输入的状态点的信息的虚拟机补丁上载请求发送给管理服务器。
17.一种虚拟机的管理方法,包括:
当从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求时,存储所述虚拟机补丁以及当前状态点和更新状态点的信息;
当从第二客户机接收到虚拟机状态拓扑下载请求时,根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑,并且将所述虚拟机状态拓扑发送给所述第二客户机,其中,任一对当前状态点与更新状态点的信息指示自所述当前状态点到所述更新状态点的依赖关系。
18.如权利要求17所述的方法,其特征在于,所述状态点信息是时间点信息、状态信息或版本信息。
19.如权利要求18所述的方法,其特征在于,虚拟机状态拓扑的初始状态点与空的设备对应。
20.如权利要求19所述的方法,其特征在于,使用版本管理工具存储和管理接收的虚拟机补丁以及当前状态点和更新状态点的信息。
21.如权利要求20所述的方法,其特征在于,以版本管理工具的元数据的形式存储和管理虚拟机补丁的信息以及当前状态点和更新状态点的信息。
22.如权利要求17~21中任一项所述的方法,还包括:
当从第三客户机接收到包括至少一个状态点的信息的虚拟机补丁下载请求时,从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁发送给第三客户机。
23.如权利要求17~21中任一项所述的方法,其特征在于,第一客户机和第二客户机是同一客户机。
24.如权利要求22所述的方法,其特征在于,第一客户机、第二客户机和第三客户机当中的任意两个客户机是同一客户机,或者,第一客户机、第二客户机和第三客户机是同一客户机。
25.一种虚拟机的管理装置,包括:
请求接收单元,用于从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求,和从第二客户机接收到虚拟机状态拓扑下载请求;
存储单元,用于当请求接收单元从第一客户机接收到包括虚拟机补丁以及当前状态点和更新状态点的信息的虚拟机补丁上载请求时候,存储所述虚拟机补丁以及当前状态点和更新状态点的信息;
拓扑构建单元,用于当请求接收单元从第二客户机接收到虚拟机状态拓扑下载请求时,根据存储的各个当前状态点和更新状态点的信息构建包括至少一个状态点的信息以及状态点之间的依赖信息的虚拟机状态拓扑,其中,任一对当前状态点与更新状态点的信息指示自所述当前状态点到所述更新状态点的依赖关系;
数据发送单元,用于将所述拓扑构建单元构建的虚拟机状态拓扑发送给所述第二客户机。
26.如权利要求25所述的管理装置,其特征在于,所述状态点信息是时间点信息、状态信息或版本信息。
27.如权利要求26所述的管理装置,其特征在于,虚拟机状态拓扑的初始状态点与空的设备对应。
28.如权利要求27所述的管理装置,其特征在于,所述存储单元使用版本管理工具存储和管理接收的虚拟机补丁以及当前状态点和更新状态点的信息。
29.如权利要求28所述的管理装置,其特征在于,以版本管理工具的元数据的形式存储和管理虚拟机补丁的信息以及当前状态点和更新状态点的信息。
30.如权利要求25~29中任一项所述的管理装置,还包括:
查询单元,用于当请求接收单元从第三客户机接收到包括至少一个状态点的信息的虚拟机补丁下载请求时,从存储的虚拟机补丁以及当前状态点和更新状态点的信息查找与所述至少一个状态点的每个状态点的信息匹配的虚拟机补丁,并且将匹配的状态点的虚拟机补丁通过数据发送单元发送给第三客户机。
31.如权利要求25~29中任一项所述的管理装置,其特征在于,第一客户机和第二客户机是同一客户机。
32.如权利要求30所述的管理,其特征在于,第一客户机、第二客户机和第三客户机当中的任意两个客户机是同一客户机,或者,第一客户机、第二客户机和第三客户机是同一客户机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310301823.3A CN103389910B (zh) | 2013-07-18 | 2013-07-18 | 构建虚拟机的方法、虚拟机的管理方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310301823.3A CN103389910B (zh) | 2013-07-18 | 2013-07-18 | 构建虚拟机的方法、虚拟机的管理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103389910A true CN103389910A (zh) | 2013-11-13 |
CN103389910B CN103389910B (zh) | 2016-03-30 |
Family
ID=49534189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310301823.3A Active CN103389910B (zh) | 2013-07-18 | 2013-07-18 | 构建虚拟机的方法、虚拟机的管理方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103389910B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298559A (zh) * | 2014-09-30 | 2015-01-21 | 深圳市深信服电子科技有限公司 | 物理主机系统虚拟化的方法及装置 |
WO2016045428A1 (zh) * | 2014-09-24 | 2016-03-31 | 华为技术有限公司 | 一种创建虚拟机的方法和创建虚拟机的装置 |
CN106201625A (zh) * | 2016-07-19 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本更新方法、更新装置及其电子设备 |
CN115104293A (zh) * | 2019-10-29 | 2022-09-23 | 阿姆多克斯发展公司 | 用于网络的闭环管理的系统、方法和计算机程序 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374146A (zh) * | 2007-08-24 | 2009-02-25 | 赛门铁克公司 | 对物理计算机系统的虚拟表示的按需访问 |
WO2010031701A1 (en) * | 2008-09-18 | 2010-03-25 | International Business Machines Corporation | System and method for managing virtual world environments based upon existing physical environments |
US20100114825A1 (en) * | 2008-10-27 | 2010-05-06 | Vmware, Inc. | Version control environment for virtual machines |
CN102422266A (zh) * | 2009-05-13 | 2012-04-18 | 国际商业机器公司 | 构建和更新运行时刻环境的系统和方法 |
CN102799445A (zh) * | 2012-05-03 | 2012-11-28 | 陈昊 | 一种基于Android平台的应用升级方法及系统 |
-
2013
- 2013-07-18 CN CN201310301823.3A patent/CN103389910B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101374146A (zh) * | 2007-08-24 | 2009-02-25 | 赛门铁克公司 | 对物理计算机系统的虚拟表示的按需访问 |
WO2010031701A1 (en) * | 2008-09-18 | 2010-03-25 | International Business Machines Corporation | System and method for managing virtual world environments based upon existing physical environments |
US20100114825A1 (en) * | 2008-10-27 | 2010-05-06 | Vmware, Inc. | Version control environment for virtual machines |
CN102422266A (zh) * | 2009-05-13 | 2012-04-18 | 国际商业机器公司 | 构建和更新运行时刻环境的系统和方法 |
CN102799445A (zh) * | 2012-05-03 | 2012-11-28 | 陈昊 | 一种基于Android平台的应用升级方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045428A1 (zh) * | 2014-09-24 | 2016-03-31 | 华为技术有限公司 | 一种创建虚拟机的方法和创建虚拟机的装置 |
US10331470B2 (en) | 2014-09-24 | 2019-06-25 | Huawei Technologies Co., Ltd. | Virtual machine creation according to a redundancy policy |
CN104298559A (zh) * | 2014-09-30 | 2015-01-21 | 深圳市深信服电子科技有限公司 | 物理主机系统虚拟化的方法及装置 |
CN104298559B (zh) * | 2014-09-30 | 2018-03-02 | 深信服科技股份有限公司 | 物理主机系统虚拟化的方法及装置 |
CN106201625A (zh) * | 2016-07-19 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种软件版本更新方法、更新装置及其电子设备 |
CN115104293A (zh) * | 2019-10-29 | 2022-09-23 | 阿姆多克斯发展公司 | 用于网络的闭环管理的系统、方法和计算机程序 |
Also Published As
Publication number | Publication date |
---|---|
CN103389910B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3657358B1 (en) | Method, device and system for persistent data processing, and readable storage medium | |
KR20200027413A (ko) | 데이터 저장 방법, 장치 및 시스템 | |
CN103678319B (zh) | 资源文件更新方法、装置和系统及服务器 | |
CN101677325B (zh) | 发布媒体描述信息和获取媒体的方法、装置、系统 | |
CN111966633B (zh) | 用于查询目录下子节点的方法、装置、电子设备及介质 | |
CN102857578B (zh) | 一种网络硬盘的文件上传方法、系统及网盘客户端 | |
CN104915268A (zh) | 桌面布局的存储、恢复方法及其装置、终端设备、系统 | |
CN104488248A (zh) | 一种文件同步方法、服务器及终端 | |
US9690796B2 (en) | Non-transitory computer-readable media storing file management program, file management apparatus, and file management method | |
CN104426955A (zh) | 共享文件的处理方法及云存储服务器 | |
CN105493077A (zh) | 利用占位符的文件管理 | |
CN105786646B (zh) | 一种数据备份方法、装置及电子设备 | |
CN108121783A (zh) | 一种存储数据的自动清理方法、装置、计算机和存储介质 | |
CN105573667A (zh) | 一种数据读取方法和存储服务器 | |
CN104410660A (zh) | 多媒体资源的下载方法、装置、路由器及服务器 | |
CN103780676A (zh) | 一种文件传输方法、设备和系统 | |
CN113760453B (zh) | 容器镜像分发系统及容器镜像推送、拉取和删除方法 | |
CN103389910B (zh) | 构建虚拟机的方法、虚拟机的管理方法及其装置 | |
CN106161523A (zh) | 一种数据处理方法和设备 | |
CN111800468A (zh) | 一种基于云的多集群管理方法、装置、介质及电子设备 | |
CN103747032A (zh) | 一种文件传输方法、设备和系统 | |
CN106341485A (zh) | 一种云存储的方法及装置 | |
CN109492200A (zh) | 协同文档还原方法、装置、存储介质及电子设备 | |
CN102882960A (zh) | 一种资源文件的发送方法及装置 | |
CN115563071A (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |