在一方面,随需映像流式传输(ODS)可以执行写时复制和读时复制两者,以将远程存储服务器上的数据逐渐带到主机的本地盘。可以在资源空闲的时间执行预取,以将数据从远程存储服务器带到主机的本地盘。新映像格式和用于管理程序的相应的块设备驱动器也可被提供。ODS的映像格式可以包括头部和位图,位图指示数据区段是在本地盘上还是在远程存储服务器上,以及例如以原始格式存储的映像内容。
【技术实现步骤摘要】
【国外来华专利技术】
本申请一般涉及计算机系统,且更具体而言,涉及例如用于云环境等的随需虚拟机映像流式传输(on demand virtual machine image streaming)。
技术介绍
在云计算环境中,可以从如下多个源分配虚拟机(VM)所需的块设备存储:主机的直接附加存储(DAS即本地盘)、网络附加存储(NAS例如NFS)、或存储区域网络(SAN)。这些选择提供了不同成本下的不同性能、可靠性和可用性。一种目前已知的VM创建方法将整个VM文件以原始(raw)格式(物理块设备的内容的逐字节的复制)从NAS上存储的只读映像模板复制到主机本地的DAS。只有那时,主机的VM才能被启动和执行。由于将整个映像模板复制到DAS直到新的VM可被启动和使用所需的时间,这样的方法带来了长延时。另一种已知的方法仅执行到主机的DAS的写时复制,即仅在DAS上存储修改的数据,而总是从支持映像(backing image)读取未修改的数据。使用NAS上存储的映像模板作为支持映像可以支持较快的VM创建,因为它不需要在创建新VM时将映像模板从NAS复制到DAS。但是,从NAS重复地读取未修改的数据会产生过多的网络流量和共享NAS服务器上的I/O负载。在涉及很多VM的云环境中尤其这样。这样的方法将需要云环境提供具有处理这种流量和I/O负载的足够能力的网络和NAS服务器。作为另一种考虑,现有的管理程序可以仅在VM的映像文件存储在NAS上时才迁移VM。可能是由于不能迁移在DAS运行的VM,云提供者可以简单地通知用户即将到来的主机上的维护操作,并请求用户处理失去VM的后果。这对于云服务提供者来说可能是简单的,但可能不是云用户希望的。
技术实现思路
提供了一种用于随需虚拟机映像流式传输的方法和系统。一方面,该方法可以包括将和选择的虚拟机相关的映像元数据从存储服务器复制到主机的本地存储,该存储服务器存储与一个或多个虚拟机分别对应的一个或多个映像模板(也被称为支持映像),其中主机的本地存储开始不包含选择的虚拟机的映像。该方法还可以包括使用复制的映像元数据在主机上启动选择的虚拟机,如果在主机上继续执行选择的虚拟机所需的数据未被存储在主机的本地存储上,允许选择的虚拟机从存储服务器上的映像模板读取该所需的数据。该方法还可以包括,如果读取的映像模板数据未存储在主机的本地存储上,将读取的映像模板数据从存储服务器复制到主机的本地存储。对同一数据的后续读取是从主机的本地存储进行的。该方法还可以包括设置位图中的位,以指示读取的数据存储在主机的本地存储上。该方法还可以包括利用资源空闲时间将和选择的虚拟机相关的映像模板(支持映像)的数据从存储服务器预取到主机的本地存储。另一方面,一种用于随需虚拟机映像流式传输的方法可以包括将和虚拟机相关的映像元数据从存储与虚拟机对应的映像的源计算机复制到目标计算机,其中,该目标计算机开始不包含虚拟机的映像。该方法还可以包括使用复制的映像元数据在目标计算机上启动虚拟机,且如果在目标计算机上继续执行虚拟机所需的映像数据未存储在目标计算机上,允许目标计算机上的虚拟机读取源计算机上的所需的映像数据。该方法还可以包括,如果读取的映像数据未存储在目标计算机上,将读取的映像数据从源计算机复制到目标计算机,其中,对同一数据的后续读取会读取在目标计算机上的复制的数据。该方法还可以包括设置位图中的比特,以指示读取的数据被存储在目标计算机上。在一方面,一种用于随需虚拟机映像流式传输的系统可以包括目标计算机,其可操作以从源计算机复制和虚拟机相关的映像元数据,该源计算机存储与虚拟机对应的映像模板,其中,该目标计算机开始不包含虚拟机的映像模板,以及本地附加到目标计算机的存储设备。所述目标计算机还可操作以使用复制的映像元数据在目标计算机上启动虚拟机,且如果在目标计算机上继续执行虚拟机所需的映像模板数据未被存储在目标计算机上,允许目标计算机上的虚拟机读取源计算机上的该所需的映像模板数据。如果读取的映像模板数据未存储在目标计算机上,所述目标计算机还可操作以将读取的映像模板数据从源计算机复制到本地附加到目标计算机的存储设备,其中,对同一数据的后续读取是从本地附加到目标计算机的存储设备进行的。所述目标计算机还可操作以设置位图中的比特,以指示读取的数据存储在目标计算机上。提供了一种存储指令程序的计算机可读存储介质,该指令程序可被机器执行来执行在此描述的一种或多种方法。下面参考附图来详细描述各个实施例的其他特征以及结构和操作。在图中,相同的标号表示相同或功能类似的元素。附图说明图1是示出本公开的一个实施例的系统组件和随需虚拟机(VM)流式传输所执行的操作流程的图。图2示出了本公开的一个实施例的ODS映像格式的简化图。图3是本公开的一个实施例的KVM/QEMU堆栈中的ODS驱动器。图4A和图4B示出了使用RAW映像和本公开的一个实施例中的ODS映像的VM创建的对比。图5示出了用于本公开的ODS进行的使用本地存储的虚拟机的实时迁移的系统组件和操作流程。图6是示出一个实施例中的用于创建新VM的方法的流程图。图7是示出一个实施例中的用于VM的实时迁移的方法的流程图。图8A-8D示出了本公开的一个实施例的ODS的不同特征的可能不同的用例。具体实施例方式本公开的一个实施例中的虚拟机映像的随需映像流式传输(ODS)可以执行写时复制(CoW)、读时复制(CoR)和预取。通过在计算机主机的本地盘(例如直接附加存储(DAS))上保存返回区段的副本来使用,读时复制避免了从远程存储服务器(例如网络附加存储(NAS))重复读取数据区段(sector)。预取利用空闲时间将还未被虚拟机访问的剩余映像从远程存储服务器(例如NAS)复制到本地盘(例如DAS)。在写时复制和读时复制期间,本公开的一个实施例提供了更新盘上的数据和元数据两者,其中,元数据指示数据现在被存储在本地盘(例如DAS)而不是远程存储服务器(例如NAS)上。本公开的一个实施例中的ODS可以包括新的映像格式以及用于QEMU的相应块设备驱动器。本公开的一个实施例中的ODS可以针对其映像被存储在主机的直接附加存储上的虚拟机来设计。ODS的主要用例包括(I)在直接附加存储(例如DAS,即主机的本地盘)上立即创建虚拟机(VM),而不用等待完成从远程存储服务器向DAS复制VM映像模板,以及(2)在使用DAS来寄放(host) VM的机器之间的实时VM迁移。本公开的一个实施例中的ODS可以执行写时复制和读时复制两者,以将远程存储服务器上的数据逐渐带到主机的本地盘。对于具有大量VM的云环境,读时复制避免了从远程存储服务器重复读取相同的数据区段,该重复读取会产生过多的网络流量或存储服务器上的输入/输出(I/O)负载。本公开的一个实施例的ODS还可以执行预取。它寻找空闲时间来将还未接触的映像数据从远程存储服务器复制到主机的本地盘。一个实施例中的ODS映像格式包括(I)头部,(2 )位图,其指示数据区段被存储在本地盘还是远程存储服务器上,以及(3)以原始格式存储的映像内容。图1是示出由本公开的一个实施例的系统组件和随需虚拟机(VM)流式传输所执行的操作流程的图。存储服务器102存储相应的一个或多个虚拟机的一个或多个映像模板104。存储服务器102 —般位本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】2010.09.10 US 12/879,5941.种用于虚拟机映像流式传输的方法,包括: 将和选择的虚拟机相关的映像元数据从存储服务器复制到主机的本地存储,该存储服务器存储与ー个或多个虚拟机分别对应的ー个或多个映像模板,其中,主机的本地存储开始不包含选择的虚拟机的映像; 使用复制的映像元数据在主机上启动选择的虚拟机; 如果在主机上继续执行选择的虚拟机所需的数据未存储在主机的本地存储上,允许选择的虚拟机从存储服务器上的映像模板读取该所需的数据; 如果读取的映像模板数据未存储在主机的本地存储上,将读取的映像模板数据从存储服务器复制到主机的本地存储,其中,对同一数据的后续读取是从主机的本地存储进行的; 设置位图中的位,以指示读取的数据被存储在主机的本地存储上;以及 利用资源空闲时间将和选择的虚拟机相关的映像模板数据从存储服务器预取到主机的本地存储。2.权利要求1所述的方法,其中,所述映像元数据开始包括对映像模板和位图的引用,该位图将位映射到映像模板的相应区段。3.权利要求1所述的方法,其中,在映像预取期间监视响应时间,且如果响应时间超过阈值,则暂停预取。4.权利要求1所述的方法,其中,所述位图的大小与存储服务器上的映像模板的大小成比例,而不是与主机的本地存储上存储的相应映像的大小成比例。5.权利要求1所述的方法,其中,所述位图的完整副本可被保持在存储器中。6.权利要求1所述的方法,其中,通过直接读取和/或写入位于主机的本地存储中的区段而不用检查位图和/或不用更新位图,来处理选择的虚拟机对逻辑块地址超过存储服务器上的映像模板大小的区段的读和/或写请求。7.权利要求1所述的方法,其中,在预取完成之后,直接使用存储在主机的本地存储中的映像数据,来执行选择的虚拟机所发出的一个或多个盘读和/或写请求,而不用检查位图和/或更新位图。8.权利要求1所述的方法,位图被保持在存储器中以及在主机的盘上,且其中,读时复制操作仅更新存储器中的位图而不会立即更新盘上的位图。9.权利要求1所述的方法,其中,读时复制操作不是在将数据返回到VM的关键路径上,且数据在后台被异步地保存到ODS映像,而同时VM继续处理从支持映像读取的数据。10.权利要求1所述的方法,其中,如果存储服务器上的映像模板中的数据区段被完全填充为零,则主机的本地存储中存储的位图中的数据区段的初始状态被设置,就好像该数据区段已经被复制到主机的本地存储。11.权利要求1所述的方法,其中,所述方法在管理程序中实现,提供管理程序的功能而不用对选择的虚拟机进行修改。12.种用于随需虚拟机映像流式传输的方法,包括: 将和虚拟机相关的映像元数据从源计算机复制到目标计算机,该源计算机存储与虚拟机对应的映像模板,其中,该目标计算机开始不包含虚拟机的映像模板; 使用复制的映像元数据在目标计算机上启动虚拟机;如果在目标计算机上继续执行虚拟机所需的映像模板数据未存储在目标计算机上,允许目标计算机上的虚拟机读取源计算机上的该所需的映像模板数据; 如果读取的映像模板数据未被存储在目标计算机上,将读取的映像模板数据从源计算机复制到目标计算机,其中,对同一数据的后续读取会读取在目标计算机上的复制数据;以及 设置位图中的位,以指示读取的数据存储在目标计算机上。13.权利...
【专利技术属性】
技术研发人员:唐春强,
申请(专利权)人:国际商业机器公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。