CN104133718A - 带宽高效的虚拟机映像传送的方法和系统 - Google Patents
带宽高效的虚拟机映像传送的方法和系统 Download PDFInfo
- Publication number
- CN104133718A CN104133718A CN201410169332.2A CN201410169332A CN104133718A CN 104133718 A CN104133718 A CN 104133718A CN 201410169332 A CN201410169332 A CN 201410169332A CN 104133718 A CN104133718 A CN 104133718A
- Authority
- CN
- China
- Prior art keywords
- files
- blocks
- node
- file
- vmi
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种带宽高效的虚拟机映像传送的方法和系统。响应于使用现有虚拟机映像(VMI)文件在节点中生成虚拟机(VM)的请求,标识组成所述VMI文件的一组文件块。通过建立用于以带宽高效的方式取回所述一组文件块的优化计划,从一组分布式节点中取回所述一组文件块。响应于从所述分布式节点中取回所述一组文件块,将所述一组文件块重新组装成所述VMI文件以便生成所述VM。
Description
技术领域
本申请一般地涉及改进的数据处理装置和方法,更具体地说,涉及用于带宽高效的虚拟机映像传送的机制。
背景技术
虚拟机(VM)是执行程序的物理机之类的机器(即,计算机)的软件实现。根据虚拟机的用途以及与任何实际机器的对应程度,将虚拟机分成两个主要类别:
1.系统虚拟机,其提供支持执行完整操作系统的完整系统平台。系统虚拟机通常仿真现有架构,并且其构建目的如下:在实际硬件不可用的情况下提供平台以便运行程序,或者使虚拟机的多个实例导致在能源消耗和成本效率方面更有效地使用计算资源。
2.进程虚拟机,其旨在运行单个程序,这意味着它支持单个进程。这种进程虚拟机通常非常适合于一种或多种程序设计语言,并且其构建目的是提供程序可移植性和灵活性。进程虚拟机的一个基本特征是内部运行的软件限于虚拟机提供的资源和抽象,即,进程不能脱离关联的虚拟环境。
虚拟机映像(VMI)用于在主机系统上创建虚拟机(VM)。即,无需针对VM编写代码,用户可以查找满足用户VM要求的现有VMI并且使用该标识的VMI作为其VM的基础。但是,VMI通常是大型文件(其大小范围通常从数个GB到数百个GB),并且通常存在于数据中心领域中。数据中心中的主机(物理服务器)通常通过文件系统访问VMI,其中文件系统安装在本地磁盘上或者通过网络协议访问的远程磁盘上。VMI可以包括操作系统(OS)映像、中间件、应用等。
发明内容
在一个示例性实施例中,提供一种在数据处理系统中用于带宽高效的虚拟机映像传送的方法。所述示例性实施例响应于使用现有虚拟机映像(VMI)文件在节点中生成虚拟机(VM)的请求,标识组成VMI文件的一组文件块。所述示例性实施例从一组分布式节点中取回所述一组文件块。在所述示例性实施例中,通过建立用于以带宽高效的方式取回所述一组文件块的优化计划,执行从所述分布式节点中取回所述一组文件块。所述示例性实施例响应于从所述分布式节点中取回所述一组文件块,将所述一组文件块重新组装成所述VMI文件以便生成所述VM。
在其它示例性实施例中,提供一种计算机程序产品,其包括具有计算机可读程序的计算机可用或可读介质。当在计算设备上执行时,所述计算机可读程序导致所述计算设备执行上面针对所述方法示例性实施例概述的各种操作和操作组合。
在另一个示例性实施例中,提供一种系统/装置。所述系统/装置可以包括一个或多个处理器以及耦合到所述一个或多个处理器的存储器。所述存储器可以包括指令,当由所述一个或多个处理器执行时,所述指令导致所述一个或多个处理器执行上面针对所述方法示例性实施例概述的各种操作和操作组合。
鉴于以下对本发明实例实施例的详细描述,将描述本发明的这些和其它特性和优点,或者这些和其它特性和优点对于所属技术领域的普通技术人员来说将变得显而易见。
附图说明
当结合附图阅读时,通过参考以下对示例性实施例的详细描述,将最佳地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是:
图1示出其中可以实现示例性实施例的各个方面的实例分布式数据处理系统的图形表示;
图2示出可以有利地使用示例性实施例的各个方面的数据处理系统的框图;
图3是其中可以实现示例性实施例的示例性方面的示例性虚拟化平台的框图;
图4示出根据一个示例性实施例的提供带宽高效的虚拟机映像传送的虚拟机映像传送机制;
图5示出根据一个示例性实施例的虚拟机映像(VMI)传送机制在创建和记录VMI文件块以实现带宽高效的传送时执行的操作;以及
图6示出根据一个示例性实施例的虚拟机映像(VMI)传送机制在根据用于生成虚拟机(VM)的请求从多个VMI文件块生成VMI文件时执行的操作。
具体实施方式
再次地,虚拟机映像(VMI)用于在主机系统上创建虚拟机(VM)。即,无需针对VM编写代码,用户可以查找满足用户VM要求的现有VMI并且使用该标识的VMI作为其VM的基础。但是,VMI通常是大型文件(其大小范围通常从数个GB到数百个GB),并且通常存在于数据中心领域中。数据中心中的主机(物理服务器)通常通过文件系统访问VMI,其中文件系统安装在本地磁盘上或者通过网络协议访问的远程磁盘上。VMI可以包括操作系统(OS)映像、中间件、应用等。
随着VM使用的增加,VMI开始出现在整个因特网领域中,即,跨数据中心、在本地入网点、在网络(有线和无线)的边缘,以及甚至在用户端设备(例如,台式计算机、膝上型计算机、智能电话等)处。在这些环境中,由于VMI的大小极大(比视频文件大至少1-2个数量级),扩展VMI的分布变得非常重要。如果跨这些网络可用的带宽有限,则示例性实施例通过一种机制提供VMI传送,该机制将VMI分成具有块元数据的文件块,创建表以便跨分布式节点管理块元数据,并且在客户端节点处智能地重新组装VMI的文件块。因此,各示例性实施例提供带宽高效的虚拟机映像传送。
因此,各示例性实施例可以用于许多不同类型的数据处理环境。为了针对特定元素的描述和示例性实施例的功能提供上下文,在下面图1和2被提供为其中可以实现示例性实施例的各个方面的实例环境。应该理解,图1和2只是实例并且并非旨在断言或暗示有关其中可以实现本发明的各个方面或实施例的环境的任何限制。在不偏离本发明的精神和范围的情况下可以对所示环境做出许多修改。
图1示出其中可以实现示例性实施例的各个方面的实例分布式数据处理系统的图形表示。分布式数据处理系统100可以包括其中可以实现示例性实施例的各个方面的计算机网络。分布式数据处理系统100包含至少一个网络102,其是用于在分布式数据处理系统100中连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括连接,例如有线、无线通信链路或光缆。
在所示实例中,服务器104和服务器106以及存储单元108连接到网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114例如可以是个人计算机、网络计算机等。在所示实例中,服务器104为客户端110、112和114提供数据,例如引导文件、操作系统映像和应用。在所示实例中,客户端110、112和114是服务器104的客户端。分布式数据处理系统100可以包括其它服务器、客户端和其它未示出的设备。
在所示实例中,分布式数据处理系统100是因特网,同时网络102代表全球范围内使用传输控制协议/网际协议(TCP/IP)协议集来相互通信的网络和网关的集合。在因特网的核心是主节点或主机之间的高速数据通信线路的主干,它包括数以千计的商业、政府、教育以及其它路由数据和消息的计算机系统。当然,分布式数据处理系统100也可以实现为包括许多不同类型的网络,例如内联网、局域网(LAN)、广域网(WAN)等。如上所述,图1旨在作为一个实例,并非旨在作为对本发明的不同实施例的体系架构限制,因此,图1中所示的特定元素不应该被视为有关其中可以实现本发明的示例性实施例的环境的限制。
图2示出可以有利地使用示例性实施例的各个方面的数据处理系统的框图。如图所示,数据处理系统200包括处理器卡211a-211n。每个处理器卡211a-211n包括处理器和高速缓冲存储器。例如,处理器卡211a包含处理器212a和高速缓冲存储器213a,处理器卡211n包含处理器212n和高速缓冲存储器213n。
处理器卡211a-211n连接到主总线215。主总线215支持系统平面220,系统平面220包含处理器卡211a-211n和存储卡223。系统平面还包含数据交换机221和存储控制器/高速缓存222。存储控制器/高速缓存222支持存储卡223,存储卡223包括具有多个双列直插式存储模块(DIMM)的本地存储器216。
数据交换机221连接到位于本机I/O(NIO)平面224中的总线桥217和总线桥218。如图所示,总线桥218通过系统总线219连接到外围组件互连(PCI)桥225和226。PCI桥225通过PCI总线228连接到各种I/O设备。如图所示,硬盘236可以通过小型计算机系统接口(SCSI)主机适配器230连接到PCI总线228。图形适配器231可以直接或间接连接到PCI总线228。PCI桥226经由PCI总线227通过网络适配器234和适配器卡插槽235a-235n为外部数据流提供连接。
工业标准体系结构(ISA)总线229通过ISA桥232连接到PCI总线228。ISA桥232通过具有串行连接Serial1和Serial2的NIO控制器233提供互连能力。NIO控制器233提供软盘驱动器连接、键盘连接和鼠标连接,以便允许数据处理系统200通过对应的输入设备接受来自用户的数据输入。此外,非易失性RAM(NVRAM)240提供非易失性存储器,以便保留来自系统中断或系统故障(例如电源问题)的某些类型数据。系统固件241也连接到ISA总线229,以便实现初始基本输入/输出系统(BIOS)功能。服务处理器244连接到ISA总线229,以便提供用于系统诊断或系统服务的功能。
操作系统(OS)存储在硬盘236上,硬盘236还可以为其它应用软件提供存储以便由数据处理系统执行。NVRAM240用于存储系统变量和错误信息以进行现场可更换单元(FRU)隔离。在系统启动期间,引导程序加载操作系统并且启动操作系统的执行。为了加载操作系统,引导程序首先从硬盘236查找操作系统内核类型,将OS加载到存储器中,并且跳转到操作系统内核提供的初始地址。通常,将操作系统加载到数据处理系统中的随机存取存储器(RAM)中。加载和初始化之后,操作系统控制程序的执行,并且可以提供诸如资源分配、调度、输入/输出控制和数据管理之类的服务。
所述示例性实施例可以包含在各种数据处理系统中,这些数据处理系统使用多种不同的硬件配置和软件(例如引导程序和操作系统)。数据处理系统200例如可以是独立的系统,或者是诸如局域网(LAN)或广域网(WAN)之类的网络的一部分。
图3是其中可以实现示例性实施例的示例性方面的示例性虚拟化平台的框图。虚拟化平台300中的硬件例如可以实现为图2中的数据处理系统200。虚拟化平台300包括分区硬件330、操作系统302、304、306、308以及固件310。操作系统302、304、306和308可以是单个操作系统的多个副本,或者同时在平台300上运行的多个异构操作系统。这些操作系统例如可以使用操作系统、i5/OSTM操作系统、LinuxTM操作系统等实现,它们旨在与服务器固件对接。操作系统302、304、306和308位于虚拟机303、305、307和309中。
此外,虚拟机303、305、307和309还包括固件加载器311、313、315和317。固件加载器311、313、315和317可以使用IEEE-1275标准开放固件和运行时抽象软件(RTAS)实现,RTAS可从国际商业机器公司获得。当实例化虚拟机303、305、307和309时,固件的虚拟化管理器将开放固件的副本加载到每个虚拟机中。然后将与虚拟机关联或分配给虚拟机的处理器分派到虚拟机的存储器,以便执行虚拟化固件。
分区后的硬件330包括多个处理器332-338、多个系统存储单元340-346、多个输入/输出(I/O)适配器348-362和存储单元370。分区后的硬件330还包括服务处理器390,其可以用于提供各种服务,例如处理虚拟机中的错误。可以将处理器332-338、存储单元340-346、NVRAM存储装置398和I/O适配器348-362中的每一个分配给虚拟化平台300中的多个虚拟机之一,每个虚拟机对应于操作系统302、304、306和308之一。
固件310为虚拟机303、305、307和309执行多种功能和服务,以便创建和实施虚拟化平台300的虚拟化。固件310是固件实现的虚拟机,相当于底层硬件。系统管理程序软件是可从国际商业机器公司获得的服务器固件的一个实例。固件是存储在存储芯片中的“软件”,所述存储芯片不需要电力而保存其内容,例如只读存储器(ROM)、可编程ROM(PROM)、可擦式可编程ROM(EPROM)、电可擦式可编程ROM(EEPROM)和非易失性随机存取存储器(非易失性RAM)。因此,固件310通过对虚拟化平台300的所有硬件资源进行虚拟化,允许同时执行独立的操作系统映像302、304、306和308。虚拟化是采用对用户屏蔽信息技术资源的物理性质和边界的方式,对这些资源进行池化。
可以通过硬件管理控制台(例如硬件管理控制台380)控制不同虚拟机的操作。硬件管理控制台380是单独的数据处理系统,系统管理员可以从中执行各种功能,包括将资源重新分配给不同的虚拟机。备选地,虚拟分区管理器是i5/OSTM V5R3操作系统的一个特性,其通过使用服务工具启动控制台会话,允许创建和管理操作系统逻辑虚拟机。
所属技术领域的普通技术人员应该理解,图1-3中的硬件可以根据实施方式而有所变化。除了图1-3中所示的硬件之外或替代这些硬件,可以使用其它内部硬件或外围设备,例如闪存、等效的非易失性存储器或光盘驱动器等。此外,可以将示例性实施例的过程应用于前面提及的SMP系统之外的多处理器数据处理系统,而不偏离本发明的精神和范围。
为了生成虚拟机(例如图3的虚拟机303、305、307和309),所述示例性实施例结合文件分块和文件块重新组装,使用新元数据创建和更新机制,以便通过网络实现带宽高效的虚拟机映像(VMI)传输。当VMI文件在分布式文件系统的节点中第一次出现时,对VMI文件进行分块并且创建清单,该清单包含有关VMI文件的文件块的元数据。然后将每个VM文件元数据聚合到节点处的元数据表中,该表跨多个文件跟踪块级别信息。元数据表具有有关分布式文件系统中的文件的本地和全局信息。跨分布式文件系统中的所有节点,在其它元数据表之间共享和定期更新元数据表中的信息。当接收到生成新虚拟机(VM)的请求时,结合来自其它节点的优化文件块请求,使用VMI(从在生成该VM所在的节点处缓存的任何本地文件块重新组装而成)生成该VM。
图4示出根据一个示例性实施例的提供带宽高效的虚拟机映像传送的虚拟机映像传送机制。根据各示例性实施例,虚拟机映像(VMI)传送机制(例如VMI传送机制404)存在于可以在该处生成虚拟机(VM)的分布式文件系统400中的每个节点402处。VMI传送机制404包括三个组件:文件分块和元数据创建逻辑406、文件块元数据存储和更新逻辑408,以及虚拟机映像重新组装逻辑410。
当在节点402中生成新VMI文件时,文件分块和元数据创建逻辑406处理VMI文件以便将VMI文件分成文件块集合。文件分块和元数据创建逻辑406例如使用基于滚动散列的文件分块、基于固定偏移的文件分块等,针对VMI文件执行文件分块处理。当文件分块和元数据创建逻辑406创建每个文件块416时,文件分块和元数据创建逻辑406还创建标识该文件块416的属性或特性的元数据418。将VMI文件分成具有关联元数据422的文件块420之后,文件分块和元数据创建逻辑406创建清单424,以便将VMI文件表示为文件块420的元数据422的集合。每个文件块416通过以下项中的一个或多个以其相应的元数据表示:块散列、大小、文件中的起始偏移、文件块所属的原始文件名称等。注意,可以将也可以不将原始VMI文件实际分成文件块,但文件分块和元数据创建逻辑406针对VMI文件创建文件块420的集合,并且创建清单424以便根据元数据422将VMI文件表示为文件块420的集合。文件分块和元数据创建逻辑406然后将具有关联元数据422的文件块420的集合以及清单文件424存储在本地高速缓存412中。
因为新VMI文件的文件分块过程可以在分布式文件系统400中的任何节点402中发生,所以每个其它节点402中的文件块元数据存储和更新逻辑408将存储在本地高速缓存412中与文件块关联的元数据422以及清单424聚合到元数据表414中。此外,文件块元数据存储和更新逻辑408还通过网络426与其它节点402中的其它文件块元数据存储和更新逻辑408通信,以便将存储在其本地高速缓存412中并且在其它元数据表414中标识的文件块元数据和清单文件聚合到元数据表414中,从而跨分布式文件系统400中的所有VMI文件跟踪文件块级别信息和清单。对于文件块级别信息,元数据表414包括以下项中的一个或多个:块散列、大小、文件块416所属的VMI文件名称列表、VMI文件中的起始偏移、文件块416在分布式文件系统400中的位置等。因此,每个节点402包括它自己的元数据表414以及文件块元数据存储和更新逻辑408,文件块元数据存储和更新逻辑408将VMI文件的文件块420的本地元数据422和VMI文件的清单424聚合到元数据表414中,以及聚合存在于特定节点402中的其它VMI文件和来自其它节点402的其它元数据表414的VMI文件的信息,从而获得有关全局文件块级别元数据和清单的当前信息。文件块元数据存储和更新逻辑408可以使用轮询、成对信息交换、集中协调的交换等,执行此级别的聚合。
当请求使用分布式文件系统400中的现有VMI文件生成虚拟机时,虚拟机映像重新组装逻辑410首先分析与该VMI文件关联的清单文件(从元数据表414标识该清单文件)。此外,文件块元数据存储和更新逻辑408已聚合与分布式数据处理系统400中的所有VMI文件相关的所有清单和元数据。因此,虚拟机映像重新组装逻辑410能够通过从元数据表414标识关联的清单文件,分析与该VMI文件关联的清单文件。虚拟机映像重新组装逻辑410查看文件清单,以便标识组成该VMI文件的一组文件块。虚拟机映像重新组装逻辑410搜索其本地高速缓存412,以便标识一个或多个文件块是否存在于本地高速缓存412中。
如所属技术领域的普通技术人员应该理解的,尽管VM可以在整体组成方面有所不同,但一组VM中的一个或多个文件块可能是通用的。例如,尽管三个不同的VM可以分别使用操作系统、i5/OSTM操作系统和LinuxTM操作系统,但所有三个VM可以使用相同的中间件或应用编程接口(API)。因此,可以从本地高速缓存412获得被请求VMI的API的文件块,而该VMI的操作系统的文件块可能不存在于本地高速缓存412中。对于被请求VMI的不存在于本地高速缓存412中的那些文件块,虚拟机映像重新组装逻辑410基于关联元数据表414中的元数据标识所需文件块的位置。在标识所需文件块的位置时,虚拟机映像重新组装逻辑410可以标识一个或多个所需文件块存在于其它节点402的一个以上的其它本地高速缓存412中。
如果一个或多个文件块存在于多个其它本地高速缓存412中,则虚拟机映像重新组装逻辑410创建用于收集存在于多个其它本地高速缓存412中的一个或多个块的优化计划。即,如果所需文件块仅存在于一个其它本地高速缓存412中,则虚拟机映像重新组装逻辑410必须仅从该其它本地高速缓存412取回文件块。但是,如果文件块存在于多个其它本地高速缓存412中,则虚拟机映像重新组装逻辑410创建优化计划以便以带宽高效的方式从另一本地高速缓存412取回所需文件块。因此,对于一个或多个文件块中存在于多个其它本地高速缓存412中的每个文件块,虚拟机映像重新组装逻辑410基于一个或多个准则选择要从中取回该文件块的其它本地高速缓存412。该准则可以包括到其它本地高速缓存412的带宽接入、与访问其它本地高速缓存412关联的历史数据、访问其它本地高速缓存412的优先级、该文件块与要从同一个其它本地高速缓存412中取回的其它文件块的分组、该文件块如何与其它文件块一起存储在其它本地高速缓存412中的串行基础、用于访问其它本地高速缓存412的访问控制策略等。
基于对这些准则的分析,虚拟机映像重新组装逻辑410标识要从中取回特定文件块的最佳其它本地高速缓存412。针对一个或多个文件块中存在于多个其它本地高速缓存412中的每个文件块选择最佳计划之后,虚拟机映像重新组装逻辑410按照优化计划,从它自己的本地高速缓存412和其它本地高速缓存412中取回文件块。取回所有文件块之后,虚拟机映像重新组装逻辑410基于所取回的文件块而重新组装VMI文件。此外,虚拟机映像重新组装逻辑410与块元数据存储和更新逻辑408交互,以便可选地将取回的文件块存储在本地高速缓存412中,以及更新元数据表414以指示现在将文件块存储在本地高速缓存412中。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在任意一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置、器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CDROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的计算机代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaTM、SmalltalkTM、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明示例性实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图5示出根据一个示例性实施例的虚拟机映像(VMI)传送机制在创建和记录VMI文件块以实现带宽高效的传送时执行的操作。当操作开始时,VMI传送机制接收生成新VMI文件的指示(步骤502)。VMI传送机制处理VMI文件以便将VMI文件分成文件块集合(步骤504)。当VMI传送机制创建每个文件块时,VMI传送机制创建标识该文件块的属性或特性的元数据(步骤506)。在VMI传送机制将VMI文件分成具有关联元数据的文件块之后,VMI传送机制创建清单以便将VMI文件表示为文件块的元数据集合(步骤508)。VMI传送机制然后将具有关联元数据的文件块集合以及清单文件存储在本地高速缓存中(步骤510)。VMI传送机制然后将文件块元数据以及清单聚合到元数据表中(步骤512)。VMI传送机制然后与其它节点通信以便提供对元数据表进行的更改,以及收集其它节点对其元数据表进行的更新(步骤514),此后操作结束。尽管步骤514被示为在创建和记录VMI文件块以实现带宽高效的传送的过程结束时发生,但步骤514还可以在其它时间发生,例如按照周期性时间间隔、预定时间间隔等。
图6示出根据一个示例性实施例的虚拟机映像(VMI)传送机制在根据用于生成虚拟机(VM)的请求从多个VMI文件块生成VMI文件时执行的操作。当操作开始时,VMI传送机制接收使用全部或部分存在于分布式文件系统中的某个位置的现有VMI文件生成虚拟机的请求(步骤602)。VMI传送机制分析与VMI文件关联的清单文件(从元数据表标识该清单文件)(步骤604)。VMI传送机制标识组成VMI文件的一组文件块(步骤606)。对于每个标识的文件块,VMI传送机制搜索其本地高速缓存以便标识本地高速缓存中是否存在一个或多个文件块(步骤608)。
如果在步骤608,文件块存在于它自己的本地高速缓存中,则VMI传送机制从它自己的本地高速缓存中取回文件块(步骤610)。如果在步骤608,文件块未存在于它自己的本地高速缓存中,则VMI传送机制基于关联元数据表中的元数据,标识所需文件块的位置(步骤612)。在标识存在于其它节点的其它本地高速缓存中的所有所需文件块的位置后,VMI传送机制创建用于收集存在于其它本地高速缓存中的一个或多个块的优化计划(步骤614)。即,针对未存在于它自己的本地高速缓存中的每个所需文件块,VMI传送机制基于一个或多个准则,选择要从中取回每个所需文件块的其它本地高速缓存(步骤616)。所述准则包括到其它本地高速缓存的带宽接入、与访问其它本地高速缓存关联的历史数据、访问其它本地高速缓存的优先级、该文件块与要从同一个其它本地高速缓存中取回的其它文件块的分组、该文件块如何与其它文件块一起存储在其它本地高速缓存中的串行基础、访问其它本地高速缓存的访问控制策略等。基于对这些准则的分析,VMI传送机制标识要从中取回每个文件块的最佳其它本地高速缓存。
针对一个或多个文件块中存在于其它本地高速缓存中的每个文件块选择最佳计划之后,VMI传送机制按照优化计划,从其它本地高速缓存中取回文件块(步骤618)。从步骤618或步骤610取回所有的文件块之后,VMI传送机制基于所取回的文件块重新组装VMI文件(步骤620)。此外,VMI传送机制将取回的文件块存储在其本地高速缓存中,以及更新其元数据表以指示现在将文件块存储在其本地高速缓存中(步骤622),此后操作结束。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
因此,各示例性实施例提供带宽高效的虚拟机映像传送机制。当VMI文件在分布式文件系统的节点中第一次出现时,对该VMI文件进行分块并且创建清单,该清单包含有关该VMI文件的文件块的元数据。然后将每个VM文件元数据聚合到节点处的元数据表中,该表跨多个文件跟踪块级别信息。元数据表具有有关分布式文件系统中的文件的本地和全局信息。跨分布式文件系统中的所有节点,在其它元数据表之间共享和定期更新元数据表中的信息。当接收到生成新虚拟机(VM)的请求时,结合来自其它节点的优化文件块请求,使用VMI(从在生成该VM所在的节点处缓存的任何本地文件块重新组装而成)生成该VM。
如上所述,应该理解,各示例性实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素的实施例的形式。在一个实例实施例中,各示例性实施例的机制以软件或程序代码实现,该软件或程序代码包括但不限于固件、驻留软件、微代码等。
适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接连接到存储元件的处理器。存储元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置取回代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其它数据处理系统或远程打印机或存储器件相连。调制解调器、电缆调制解调器和以太网卡只是当前可用的网络适配器类型中的少数几种。
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于所属技术领域的普通技术人员来说,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
Claims (14)
1.一种在一组分布式节点中用于带宽高效的虚拟机映像传送的方法,所述方法包括:
响应于使用现有虚拟机映像VMI文件在节点中生成虚拟机VM的请求,标识组成所述VMI文件的一组文件块;
从所述一组分布式节点内取回所述一组文件块,其中从所述一组分布式节点内取回所述一组文件块包括建立用于以带宽高效的方式取回所述一组文件块的优化计划;以及
响应于从所述一组分布式节点内取回所述一组文件块,将所述一组文件块重新组装成所述VMI文件以便生成所述VM。
2.根据权利要求1的方法,其中通过所述方法建立所述优化计划包括:
针对所述一组文件块中的每个文件块,判定该文件块是否存在于本地存储设备中;
响应于该文件块存在于所述本地存储设备中,从所述本地存储设备中取回该文件块;以及
响应于该文件块未存在于所述本地存储设备中:
标识该文件块在所述一组分布式节点内的一个或多个其它节点中的一个或多个位置;
响应于该文件块存在于所述一个或多个其它节点中的一个以上的其它节点中,基于与所述一个以上的其它节点中的每个节点关联的一组准则中的一个或多个准则,选择要从中取回该文件块的最佳节点;以及
响应于标识最佳节点,从与所述最佳节点关联的存储设备取回该文件块。
3.根据权利要求2的方法,其中所述一组准则包括以下项中的一个或多个:到所述节点的带宽接入、与访问所述节点关联的历史数据、访问所述节点的优先级、该文件块与要从所述节点中取回的其它文件块的分组、该文件块如何与其它文件块一起存储在所述节点中,或者与访问所述一个或多个其它节点中的文件块关联的访问控制策略。
4.根据权利要求2的方法,其中从元数据表中标识未存在于所述本地存储设备中的每个文件块的位置,其中所述元数据表包括有关每个文件块的信息,并且其中所述信息包括以下项中的一个或多个:块散列、大小、所述VMI文件中的起始偏移,或者该文件块所属的原始文件名称。
5.根据权利要求2的方法,其中从来自所述一个或多个其它节点的被聚合到所述元数据表中的元数据来标识未存在于所述本地存储设备中的每个文件块的位置。
6.根据权利要求5的方法,其中当生成新VMI文件时、按照周期性间隔或者按照预定间隔,将所述元数据聚合到所述元数据表中。
7.根据权利要求1的方法,其中从与所述VMI文件关联的清单文件来标识组成所述VMI文件的所述一组文件块。
8.根据权利要求7的方法,其中在在该处生成所述VM的节点中的至少一个节点中或者在所述一个或多个其它节点中的另一节点中生成所述清单文件,并且其中响应于在所述一个或多个其它节点中的所述另一节点中生成所述清单文件,将所述清单文件聚合到在该处生成所述VM的所述节点中。
9.一种装置,包括:
处理器;以及
存储器,其耦合到所述处理器,其中所述存储器包括指令,当由所述处理器执行时,所述指令导致所述处理器:
响应于使用现有虚拟机映像VMI文件在节点中生成虚拟机VM的请求,标识组成所述VMI文件的一组文件块;
从一组分布式节点内取回所述一组文件块,其中从所述一组分布式节点内取回所述一组文件块包括建立用于以带宽高效的方式取回所述一组文件块的优化计划;以及
响应于从所述一组分布式节点内取回所述一组文件块,将所述一组文件块重新组装成所述VMI文件以便生成所述VM。
10.根据权利要求9的装置,其中通过所述指令建立所述优化计划进一步导致所述处理器:
针对所述一组文件块中的每个文件块,判定该文件块是否存在于本地存储设备中;
响应于该文件块存在于所述本地存储设备中,从所述本地存储设备中取回该文件块;以及
响应于该文件块未存在于所述本地存储设备中:
标识该文件块在所述一组分布式节点内的一个或多个其它节点中的一个或多个位置;
响应于该文件块存在于所述一个或多个其它节点中的一个以上的其它节点中,基于与所述一个以上的其它节点中的每个节点关联的一组准则中的一个或多个准则,选择要从中取回该文件块的最佳节点;以及
响应于标识最佳节点,从与所述最佳节点关联的存储设备取回该文件块。
11.根据权利要求10的装置,其中所述一组准则包括以下项中的一个或多个:到所述节点的带宽接入、与访问所述节点关联的历史数据、访问所述节点的优先级、该文件块与要从所述节点中取回的其它文件块的分组、该文件块如何与其它文件块一起存储在所述节点中,或者与访问所述一个或多个其它节点中的文件块关联的访问控制策略。
12.根据权利要求10的装置,其中从元数据表中标识未存在于所述本地存储设备中的每个文件块的位置,其中所述元数据表包括有关每个文件块的信息,并且其中所述信息包括以下项中的一个或多个:块散列、大小、所述VMI文件中的起始偏移,或者该文件块所属的原始文件名称。
13.根据权利要求10的装置,其中从来自所述一个或多个其它节点的被聚合到所述元数据表中的元数据来标识未存在于所述本地存储设备中的每个文件块的位置。
14.根据权利要求13的装置,其中当生成新VMI文件时、按照周期性间隔或者按照预定间隔,将所述元数据聚合到所述元数据表中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/873,337 | 2013-04-30 | ||
US13/873,337 US9424061B2 (en) | 2013-04-30 | 2013-04-30 | Bandwidth-efficient virtual machine image delivery |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104133718A true CN104133718A (zh) | 2014-11-05 |
Family
ID=51790468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410169332.2A Pending CN104133718A (zh) | 2013-04-30 | 2014-04-25 | 带宽高效的虚拟机映像传送的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9424061B2 (zh) |
CN (1) | CN104133718A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255412A (zh) * | 2016-12-29 | 2018-07-06 | 北京京东尚科信息技术有限公司 | 用于分布式文件储存的方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104469433B (zh) * | 2013-09-13 | 2018-09-07 | 深圳市腾讯计算机系统有限公司 | 一种视频直播回看方法及装置 |
US9537745B1 (en) * | 2014-03-07 | 2017-01-03 | Google Inc. | Distributed virtual machine disk image deployment |
US9639433B2 (en) * | 2014-12-26 | 2017-05-02 | Vmware, Inc. | Reducing input/output (I/O) operations for centralized backup and storage |
US9921910B2 (en) | 2015-02-19 | 2018-03-20 | Netapp, Inc. | Virtual chunk service based data recovery in a distributed data storage system |
JP6772655B2 (ja) * | 2016-08-15 | 2020-10-21 | 富士通株式会社 | 情報処理システムおよび情報処理方法 |
US10303562B2 (en) | 2017-03-30 | 2019-05-28 | Entit Software Llc | Using metadata extracted from proxy files to access data stored in secondary storage |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188624A (zh) * | 2007-12-07 | 2008-05-28 | 华中科技大学 | 基于虚拟机的网格中间件系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7209973B2 (en) * | 2001-04-09 | 2007-04-24 | Swsoft Holdings, Ltd. | Distributed network data storage system and method |
US20060047855A1 (en) | 2004-05-13 | 2006-03-02 | Microsoft Corporation | Efficient chunking algorithm |
US7613787B2 (en) | 2004-09-24 | 2009-11-03 | Microsoft Corporation | Efficient algorithm for finding candidate objects for remote differential compression |
US8806479B2 (en) | 2007-06-05 | 2014-08-12 | International Business Machines Corporation | Creating an application virtual machine image by isolating installation artifacts in shadow area |
US20100275200A1 (en) | 2009-04-22 | 2010-10-28 | Dell Products, Lp | Interface for Virtual Machine Administration in Virtual Desktop Infrastructure |
US8595188B2 (en) | 2009-11-06 | 2013-11-26 | International Business Machines Corporation | Operating system and file system independent incremental data backup |
US9130912B2 (en) * | 2010-03-05 | 2015-09-08 | International Business Machines Corporation | System and method for assisting virtual machine instantiation and migration |
US9609044B2 (en) * | 2010-11-05 | 2017-03-28 | The Trustees Of Columbia University In The City Of New York | Methods, systems, and media for stored content distribution and access |
US8793684B2 (en) | 2011-03-16 | 2014-07-29 | International Business Machines Corporation | Optimized deployment and replication of virtual machines |
US9326001B2 (en) * | 2011-03-22 | 2016-04-26 | International Business Machines Corporation | Scalable image distribution in virtualized server environments |
US20120311575A1 (en) | 2011-06-02 | 2012-12-06 | Fujitsu Limited | System and method for enforcing policies for virtual machines |
US9110604B2 (en) * | 2012-09-28 | 2015-08-18 | Emc Corporation | System and method for full virtual machine backup using storage system functionality |
US9104331B2 (en) * | 2012-09-28 | 2015-08-11 | Emc Corporation | System and method for incremental virtual machine backup using storage system functionality |
US8838968B2 (en) * | 2012-05-14 | 2014-09-16 | Ca, Inc. | System and method for virtual machine data protection in a public cloud |
US9398053B2 (en) * | 2012-12-02 | 2016-07-19 | Microsoft Technology Licensing, Llc | Efficient data transmission between computing devices |
US9471590B2 (en) * | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
US20140280433A1 (en) * | 2013-03-14 | 2014-09-18 | Rackspace Us, Inc. | Peer-to-Peer File Distribution for Cloud Environments |
-
2013
- 2013-04-30 US US13/873,337 patent/US9424061B2/en not_active Expired - Fee Related
- 2013-08-01 US US13/956,801 patent/US9311128B2/en not_active Expired - Fee Related
-
2014
- 2014-04-25 CN CN201410169332.2A patent/CN104133718A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188624A (zh) * | 2007-12-07 | 2008-05-28 | 华中科技大学 | 基于虚拟机的网格中间件系统 |
Non-Patent Citations (1)
Title |
---|
CHUNYI PENG ETAL: "VDN: Virtual Machine Image Distribution Network for Cloud Data Centers", 《INFOCOM,2012 PROCEEDING IEEE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255412A (zh) * | 2016-12-29 | 2018-07-06 | 北京京东尚科信息技术有限公司 | 用于分布式文件储存的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US9311128B2 (en) | 2016-04-12 |
US20140325505A1 (en) | 2014-10-30 |
US9424061B2 (en) | 2016-08-23 |
US20140325507A1 (en) | 2014-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10728255B2 (en) | System and method for protection of entities across availability zones | |
US10447806B1 (en) | Workload scheduling across heterogeneous resource environments | |
CN104133718A (zh) | 带宽高效的虚拟机映像传送的方法和系统 | |
US10333986B2 (en) | Conditional declarative policies | |
EP3613179B1 (en) | Root cause discovery engine | |
CN104823162B (zh) | 对于云服务器的高可用性 | |
US10222983B2 (en) | Storage management computer and management method of storage apparatus | |
CN104714822B (zh) | 用于执行操作系统的实时更新的方法和系统 | |
US11093296B2 (en) | System, virtualization control apparatus, method for controlling a virtualization control apparatus, and program | |
US20140237016A1 (en) | System and method for hand-offs in cloud environments | |
US10067695B2 (en) | Management server, computer system, and method | |
US10243819B1 (en) | Template generation based on analysis | |
CN103973470A (zh) | 用于无共享集群的集群管理方法和设备 | |
Hossain et al. | The role of microservice approach in edge computing: Opportunities, challenges, and research directions | |
US10657230B2 (en) | Analysis of output files | |
US11159402B1 (en) | Virtual machine import/export risk assessment | |
US8914899B2 (en) | Directing users to preferred software services | |
US20220327066A1 (en) | Graph-based data flow control system | |
CN110647289A (zh) | 卫星遥感云计算平台及系统 | |
JP2021513137A (ja) | 階層型ストレージ管理システムにおけるデータ・マイグレーション | |
US10956512B2 (en) | Document link migration | |
US20210243088A1 (en) | Infrastructure resource simulation mechanism | |
US20230214253A1 (en) | Method and system for managing telemetry services for composed information handling systems | |
US20230214263A1 (en) | Method and system for performing predictive compositions for composed information handling systems using telemetry data | |
US20240028387A1 (en) | Device health driven migration of applications and its dependencies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141105 |
|
RJ01 | Rejection of invention patent application after publication |