CN102652308A - 将数据高效地载入计算系统的存储器中 - Google Patents

将数据高效地载入计算系统的存储器中 Download PDF

Info

Publication number
CN102652308A
CN102652308A CN201080056304XA CN201080056304A CN102652308A CN 102652308 A CN102652308 A CN 102652308A CN 201080056304X A CN201080056304X A CN 201080056304XA CN 201080056304 A CN201080056304 A CN 201080056304A CN 102652308 A CN102652308 A CN 102652308A
Authority
CN
China
Prior art keywords
block
storer
written
data
copy
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
Application number
CN201080056304XA
Other languages
English (en)
Other versions
CN102652308B (zh
Inventor
M·法克特
K·梅特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102652308A publication Critical patent/CN102652308A/zh
Application granted granted Critical
Publication of CN102652308B publication Critical patent/CN102652308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供一种用于将一个或多个虚拟机部署在主机计算系统上的方法。所述方法包括从数据存储系统接收映射信息。所述映射信息将存储在所述数据存储系统中的第一数据区块与唯一标识符关联,以支持将第一虚拟机部署在主机计算系统上。一旦接收所述映射信息,随即利用所述映射信息来判定是否已关联于将所述第一虚拟机或第二虚拟机部署在所述主机计算系统上而将所述第一数据区块的任何副本载入所述主机计算系统的存储器中。如果尚未将所述第一数据区块的任何副本载入所述存储器中,则从所述数据存储系统取回所述第一数据区块,将其载入所述存储器中,且利用所述第一数据区块将所述第一虚拟机部署在所述主机计算系统上。

Description

将数据高效地载入计算系统的存储器中
技术领域
所揭示的主题总体上涉及计算系统,更具体地说,涉及将数据高效地载入托管多个虚拟机的计算系统的存储器中。
背景技术
在虚拟化环境中,在一个或多个软件或硬件基础结构(即,主机)上运行的主机软件(即,系统管理程序(hypervisor))可模拟或虚拟化用于一个或多个客户软件的主机。换言之,系统管理程序可实施一个或多个虚拟机(VM)。
系统管理程序通过将用于实施VM的数据(即,VM的映像)从数据存储系统载入主机的存储器中而实施VM。如果各映像源自同一映像(即,主映像),则这些映像可共有相当大量的数据。在现有实施方式中,系统管理程序独立地取回这些映像中的每个映像并将其载入存储器的单独区域,而不识别多个VM映像所共有的数据。因此,系统管理程序因重复地取回并载入共同数据而浪费资源(例如,处理能力、存储器空间、存储和网络带宽)。
美国公开专利申请20090182928披露了一种用于使用标识符跟踪虚拟机的运动的方法和系统。美国公开专利申请US20080263296披露了一种用于判定信息块是否已存储在存储单元中的方法和系统。美国专利7500048披露了一种用于判定在第一候选存储器页与第二候选存储器页之间是否存在散列匹配的方法和系统。美国专利7356665披露了一种用于维护将处理系统内的机器存储器块映射到每个虚拟机内的物理存储器块的反向映射结构的方法和系统。美国专利7246200披露了一种用于基于映射信息检查与虚拟机关联的映像是否存储在存储设备中的方法。
这些现有技术文献均未解决因需要重复地取回和载入共同数据而导致的资源浪费问题。
发明内容
出于概述目的,本文中已描述特定方面、优点及新颖特性。应理解,根据任何一个特定实施例,可能未实现所有此类优点。因此,可以以实现或优化一个优点或一组优点而不实现本文中所教示或建议的所有优点的方式来体现或执行所揭示的主题。
根据一个实施例,提供一种用于将一个或多个虚拟机部署在主机计算系统上的方法。所述方法包括从数据存储系统接收映射信息。所述映射信息将存储在所述数据存储系统中的第一数据区块(data chunk)与唯一标识符关联,以支持将第一虚拟机部署在主机计算系统上。一旦接收所述映射信息,随即利用所述映射信息来判定是否已关联于将所述第一虚拟机或第二虚拟机部署在所述主机计算系统上而将所述第一数据区块的任何副本载入所述主机计算系统的存储器中。如果尚未将所述第一数据区块的任何副本载入所述存储器中,则从所述数据存储系统取回所述第一数据区块,将其载入所述存储器中,且利用所述第一数据区块将所述第一虚拟机部署在所述主机计算系统上。
根据一个或多个实施例,提供一种包括一个或多个逻辑单元的系统。所述一个或多个逻辑单元被配置为执行与上文所揭示的方法关联的功能及操作。在又一实施例中,提供一种计算机程序产品,其包括具有计算机可读程序的计算机可读存储介质。所述计算机可读程序在计算机上执行时使所述计算机执行与上文所揭示的方法关联的功能及操作。
下文参看附图更详细地提供除特定备选物之外的上文所揭示的实施例中的一个或多个。然而,所揭示的主题并不限于所揭示的任何特定实施例。
附图说明
现在将仅通过实例的方式参考附图描述本发明的优选实施例,这些附图是:
图1示出根据一个或多个实施例的示意性虚拟化环境;
图2A及图2B是根据一个实施例的用于取回一个或多个VM映像并将其载入存储器中的方法的流程图;
图3及图4是根据一个或多个实施例的硬件及软件环境的方块图,本发明的系统可在这些硬件及软件环境中操作。
根据一个或多个实施例,在不同图中由相同数字参考的特征、组件及方面表示相同、等效或类似的特征、组件或方面。
具体实施方式
在下文中,阐述众多特定细节以提供对各种实施例的透彻描述。可在无此类特定细节或在细节有一些变化的情况下实施特定实施例。在一些情况下,较不详细地描述特定特征以免混淆其它方面。不应将与组件或特征中的每一者关联的详细程度解释为证明一个特征比其它特征新颖或重要。
参看图1,根据一个或多个实施例,示意性虚拟化环境100包括数据存储系统110及主机120。数据存储系统110包括用于存储数据的一个或多个存储设备112及用于管理数据的存储控制器114。主机120包括用于存储数据的存储器122、用于管理数据的存储器控制器124及用于实施一个或多个VM 130的系统管理程序126。
参看图1、图2A及图2B,根据一个实施例,可自存储设备112取回用于实施VM 130的数据(即,VM映像)且将其载入存储器122中。存储控制器114根据存储方案将VM映像存储在存储设备112中(P200),所述存储方案使用写时复制(copy-on-write)、去除重复(de-duplication)或用于防止或消除共同共享的数据的多个副本被存储在数据存储系统110中的其它空间高效的存储机制。值得注意的是,如果各VM映像源自主映像,则各VM映像可共有相当大量的数据。例如,在一个实施方式中,可通过生成主映像的空间高效的时间点副本(例如,快照)且接着修改该副本而自主映像得出VM映像。
可有利地将存储在数据存储系统110中的每个数据区块与唯一标识符关联(P210)。数据区块指数据块、数据范围或其它数据分组。取决于实施方式,与数据区块关联的唯一标识符可根据存储位置、根据数据区块的内容或用于生成此类标识符的其它机制而生成。因此,在一些实施方式中,可将数据区块的存储在同一存储位置中或具有相同内容的多个副本与同一唯一标识符关联。
在一个示意性实施例中,当使用写时复制来存储数据区块的时间点副本时,取决于在特定时间点之后是否已修改该数据区块,可将该数据区块的一个或多个副本存储在第一存储卷(storage volume)或第二存储卷中。在此类存储方案中,用于该数据区块的未修改副本的唯一标识符可包括(例如)用于第一存储卷的标识符及该副本在所述第一存储卷内的位置。用于该数据区块的已修改副本的唯一标识符可包括(例如)用于第二存储卷的标识符及该副本在所述第二存储卷内的位置。
在其它存储方案中,用于数据区块的唯一标识符可包括(例如)该数据区块的物理地址。备选地,用于数据区块的唯一标识符可包括(例如)根据该数据区块的内容而生成的散列值或其它值。
仍参看图1、图2A及图2B,存储控制器114向系统管理程序126提供将VM映像的每个数据区块与唯一标识符关联的信息(即,映射信息)(P220)。取决于实施方式,通过系统管理程序126将对此类信息的显式请求发送至存储控制器114或通过背负在从存储控制器114流动至系统管理程序126的其它业务上,或通过用于获得此类信息的任何其它可用构件,系统管理程序126可获得此类映射信息。应理解,所揭示的主题并不限于特定实施方式。
对于将从数据存储系统110取回且载入存储器122中的VM映像的每个数据区块,系统管理程序126利用与该数据区块关联的唯一标识符来判定是否已作为部署第一VM映像(即,当前VM映像)或第二VM映像(即,先前所部署的VM映像)的一部分而取回该数据区块的一个副本且将其载入存储器122中(P230)。如果已取回该数据区块的一个副本且将其载入存储器122中,则为了部署第一VM映像,将不取回同一数据区块的第二副本且不将其载入存储器122中。取而代之,第一VM映像共享已载入存储器122中的所述数据区块的所述副本(P240)。备选地,系统管理程序126请求存储器控制器124执行数据区块的存储器至存储器复制而不是再次自数据存储系统110取回该数据区块。
如果尚未取回该数据区块的先前副本且未将其载入存储器122中,则系统管理程序126自数据存储系统110取回该数据区块且将该数据区块提供给存储器控制器124(P250)。在接收该数据区块后,存储器控制器124使用空间高效的存储器方案将该数据区块载入存储器122中(P260),该存储器方案防止或消除共同共享的数据的多个副本被存储在存储器122中。一旦将该数据区块载入存储器122中,系统管理程序126随即更新数据结构(例如,表、数组、位图等)以指示已将该数据区块载入存储器122中(P270)。
在特定实施方式中,归因于VM的状态的改变而可修改VM。如果如此,则将在第一VM与第二VM之间共同共享的第一VM的数据区块载入存储器122中之后,可修改该数据区块。在此类实施方式中,系统管理程序126可更新与载入存储器122中的该数据区块关联的唯一标识符,使其包括(例如)时间戳或版本号,以区分该数据区块是与第一VM关联而非与第二VM关联。在此情境下,如果已部署第二VM,则保留修改之前的数据区块的副本且关联于第二VM而将其载入。备选地,系统管理程序126可禁止在使用数据区块的同时修改数据区块。
上文所提供的过程防止不止一次地自存储设备取回同一数据的存储在数据存储系统的不同存储卷中的副本并将其载入存储器中。因此,在不浪费处理能力(例如,输入/输出(I/O)操作)、存储器空间或存储及网络带宽的情况下取回数据且将其载入存储器中。此外,可将上文所提供的过程应用于自一组存储卷载入任何类型的计算系统的存储器中的任何类型的数据。因此,不应将所要求保护的主题的范围解释为限于将VM映像载入托管VM的计算系统的存储器中。
在不同实施例中,所揭示的主题可实施为硬件组件与软件组件的组合,或者完全以硬件形式或完全以软件形式来实施。此外,本文中所揭示的计算系统及程序软件可包括受控计算环境,所述受控计算环境可用硬件组件或被执行以执行实现本文中预期的结果的方法及过程的逻辑代码来呈现。所述方法及过程在由通用计算系统或机器执行时将通用机器转换成专用机器。
参看图3及图4,根据一个示意性实施例的计算系统环境可包括硬件环境1110及软件环境1120。硬件环境1110可包括为软件环境1120的组件提供执行环境的逻辑单元、电路或其它机械及设备。而软件环境1120可为硬件环境1110的各种组件提供包括基础操作设置及配置的执行指令。
参看图3,本文中所揭示的应用软件及逻辑代码可以以计算机可读代码的形式来实施,所述计算机可读代码由示意性硬件环境1110所表示的一个或多个计算系统来执行。如图所示,硬件环境1110可包括处理器1101,处理器1101通过系统总线1100耦合至一个或多个存储组件。例如,存储组件可包括本地存储器1102、存储介质1106、高速缓冲存储器1104或其它计算机可用介质或计算机可读介质。在本发明的情况下,计算机可用介质或计算机可读存储介质可包括可用于包含、存储、传送、传播或传输程序代码的任何可记录物品。
计算机可读存储介质可为电子、磁性、光学、电磁、红外线或半导体介质、系统、装置或器件。计算机可读存储介质亦可(不限于)实施于传播介质中(在此类实施被视为法定主题的范围内)。计算机可读存储介质的实例在适当情况下可包括半导体或固态存储器、磁带、可抽换式计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘、光盘或载波。光盘的当前实例包括紧密光盘-只读存储器(CD-ROM)、紧密光盘-读取/写入(CD-R/W)、数字视频盘(DVD)、高清晰度视频盘(HD-DVD)或Blue-rayTM盘。
在一个实施例中,处理器1101将可执行代码自存储介质1106载入至本地存储器1102中。高速缓冲存储器1104通过提供临时存储而优化处理时间,临时存储有助于减少载入代码以供执行的次数。一个或多个用户接口设备1105(例如,键盘、指针设备等)及显示屏1107可直接或(例如)经由中间I/O控制器1103耦合至硬件环境1110中的其它组件。可提供诸如网络适配器的通信接口单元1108以使硬件环境1110能够经由中间专用或公用网络(例如,因特网)与本地或位于远程的计算系统、打印机及存储设备通信。有线或无线调制解调器及以太网卡为示意性网络适配器类型中的少数几个。
值得注意的是,在特定实施方式中,硬件环境1110可能不包括以上组件中的一些或全部,或可能包括用于提供补充功能性或效用的额外组件。取决于预期的用途及配置,硬件环境1110可为桌上型或膝上型计算机,或为可选地体现于嵌入式系统中的其它计算设备,诸如,机顶盒、个人数字助理(PDA)、个人媒体播放机、行动通信单元(例如,无线电话)或具有信息处理或数据存储能力的其它类似硬件平台。
在一些实施例中,通信接口1108充当数据通信端口以通过发送并接收数字、电子、电磁及光学信号而提供与一个或多个计算系统通信的构件,这些信号承载表示各种类型的信息(包括程序代码)的模拟或数字数据流。可通过本地或远程网络或者通过经由空气或其它介质的传输来建立通信,所述传输包括(但不限于)经由载波的传播。
如本文中所提供,在所示硬件组件上执行的所揭示软件组件根据本质上为示意性的逻辑或功能关系来定义。然而,应注意,通过所述示意性软件组件所实施的相应方法亦可通过(例如)被配置且编程的处理器、专用集成电路(ASIC)、场可编程门阵列(FPGA)及数字信号处理器(DSP)编码在这些硬件组件中。
参看图4,软件环境1120可大体上分为两个类别,包括在一个或多个硬件环境1110上执行的系统软件1121及应用软件1122。在一个实施例中,本文中所揭示的方法及过程可实施为系统软件1121、应用软件1122或其组合。系统软件1121可包括诸如操作系统(OS)或信息管理系统的控制程序,其指示硬件环境1110中的一个或多个处理器1101(例如,微控制器)如何工作并处理信息。应用软件1122可包括(但不限于)可由处理器1101读取、分析或执行的程序代码、数据结构、固件、驻留软件、微码或任何其它形式的信息或例程。
换言之,应用软件1122可实施为嵌入在形式为计算机可用或计算机可读存储介质的计算机程序产品中的程序代码,所述计算机可用或计算机可读存储介质提供由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统而使用的程序代码。此外,应用软件1122可包括在自存储介质1106载入本地存储器1102中之后在系统软件1121之上执行的一个或多个计算机程序。在客户机-服务器架构中,应用软件1122可包括客户端软件及服务器软件。例如,在一个实施例中,可在与服务器计算系统不同且分离的客户端计算系统上执行客户端软件,在服务器计算系统上执行服务器软件。
软件环境1120亦可包括用于存取经由本地或远程计算机网络可获得的数据的浏览器软件1126。此外,软件环境1120可包括用于接收用户命令及数据的用户接口1124(例如,图形用户接口(GUI))。值得重复的是,上文所描述的硬件及软件架构及环境是为了举例。因而,可在任何类型的系统架构、功能或逻辑平台或处理环境上实施一个或多个实施例。
亦应理解,逻辑代码、程序、模块、过程、方法及执行每一方法的相应过程的次序仅仅为示意性的。取决于实施方式,除非本发明另有指示,否则可按任何次序执行或同时执行这些过程或任何基础子过程及方法。此外,除非特定地另有陈述,否则在本发明的情况下对逻辑代码的定义与任何特定编程语言无关或不限于任何特定编程语言,且可包括可在分布式、非分布式、单或多处理环境中的一个或多个处理器上执行的一个或多个模块。
如本领域技术人员将了解,软件实施例可包括固件、驻留软件、微码等。包括软件或硬件或组合软件与硬体方面的特定组件在本文中可通称为“电路”、“模块”或“系统”。此外,所揭示的主题可实施为体现于一个或多个计算机可读存储介质中的计算机程序产品,所述一个或多个计算机可读存储介质上体现有计算机可读程序代码。可利用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可为计算机可读信号介质或计算机可读存储介质。例如,计算机可读存储介质可为(但不限于)电子、磁性、光学、电磁、红外线或半导体系统、装置、或器件或前述各者的任何合适组合。
在本文件的情况下,计算机可读存储介质可为可含有或存储供指令执行系统、装置或器件使用或结合指令执行系统、装置或器件而使用的程序的任何有形介质。计算机可读信号介质可包括(例如)在基频中或作为载波的一部分的体现有计算机可读程序代码的传播数据信号。此类传播信号可采用多种形式中的任一者,包括(但不限于)电磁、光学或其任何合适组合。计算机可读信号介质可为并非计算机可读存储介质且可传送、传播或传输供指令执行系统、装置或器件使用或结合指令执行系统、装置或器件而使用的程序的任何计算机可读存储介质。
体现于计算机可读存储介质上的程序代码可使用任何适当介质来传输,这些介质包括(但不限于)无线、有线、光缆、RF等,或前述各者的任何合适组合。可以一种或多种编程语言的任何组合来撰写用于执行所揭示的操作的计算机程序码,所述一种或多种编程语言包括诸如Java、Smalltalk、C++之类的面向对象的编程语言及诸如“C”编程语言或类似编程语言的常规过程编程语言。
程序代码可完全在用户计算机上执行,部分地在用户计算机上执行,作为独立软件包执行,部分地在用户计算机上执行且部分地在远程计算机上执行,或完全在远程计算机或服务器上执行。在后一种情境下,远程计算机可经由任何类型的网络(包括局域网络(LAN)或广域网络(WAN))而连接至用户计算机,或可(例如,使用因特网服务提供者,经由因特网)连接至外部计算机。
参考根据实施例的方法、装置(系统)及计算机程序产品的流程图及/或方块图来揭示特定实施例。将理解,可通过计算机程序指令来实施这些流程图及/或方块图的每一方块及这些流程图及/或方块图中的方块的组合。可将这些计算机程序指令提供至通用计算机、专用计算机或其它可编程数据处理装置的处理器以生成一机器,以使得经由所述计算机或其它可编程数据处理装置的处理器而执行的指令创建用于实施流程图及/或方块图方块中所指定的功能/动作的构件。
亦可将此类计算机程序指令存储在计算机可读介质中,所述计算机可读介质可指示计算机或其它可编程数据处理装置或其它设备以特定方式工作,以使得存储在所述计算机可读存储介质中的指令生成包括实施流程图及/或方块图方块中所指定的功能/动作的指令的制品。
亦可将这些计算机程序指令载入至计算机、其它可编程数据处理装置或其它设备上,以使一系列操作步骤执行于所述计算机、其它可编程装置或其它设备上以生成计算机实施的过程,使得在所述计算机或其它可编程装置上执行的指令提供用于实施流程图及/或方块图方块中所指定的功能/动作的过程。
附图中的流程图及方块图示出根据各种实施例的系统、方法及计算机程序产品的可能实施方式的架构、功能性及操作。就此而言,流程图或方块图中的每一方块可表示代码的模块、区段或部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。亦应注意,在一些备选实施方式中,方块中所指出的功能可能不按图中所指出的次序发生。
例如,取决于所涉及的功能性,连续示出的两个方块实际上可基本上同时执行,或这些方块有时可能按相反次序执行。亦将注意,可通过执行指定功能或动作的基于专用硬件的系统或专用硬件与计算机指令的组合来实施方块图及/或流程图说明中的每一方块及方块图及/或流程图说明中的方块的组合。
本文中已参考一个或多个特性或实施例来提供所揭示的主题。本领域技术人员将认识到并了解,无论本文中所提供的示意性实施例的详细性质为何,均可在不限制或不脱离总体预期范围的情况下将改变及修改应用于这些实施例。本文中所提供的实施例的这些及各种其它改变及组合在如权利要求或其等效物的完整集合所限定的所揭示主题的范围内。

Claims (23)

1.一种用于将一个或多个虚拟机部署在主机计算系统上的方法,所述方法包括:
从数据存储系统接收映射信息,其中所述映射信息将存储在所述数据存储系统中的第一数据区块与唯一标识符关联,以支持将第一虚拟机部署在主机计算系统上;
利用所述映射信息来判定是否已关联于将所述第一虚拟机或第二虚拟机部署在所述主机计算系统上而将所述第一数据区块的任何副本载入所述主机计算系统的存储器中;以及
响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而执行以下操作:
从所述数据存储系统取回所述第一数据区块;
将所述第一数据区块载入所述存储器中;以及
利用所述第一数据区块将所述第一虚拟机部署在所述主机计算系统上。
2.如权利要求1的方法,还包括:响应于判定已至少将所述第一数据区块的第一副本载入所述存储器中而利用已载入所述存储器中的所述第一数据区块的所述第一副本将所述第一虚拟机部署在所述主机计算系统上。
3.如权利要求1的方法,还包括:响应于判定已至少将所述第一数据区块的第一副本载入所述存储器中而利用根据已载入所述存储器中的所述第一数据区块的所述第一副本而生成的所述第一数据区块的第二副本。
4.如权利要求1的方法,其中所述第一数据区块根据空间高效的存储方案而存储在所述数据存储系统中。
5.如权利要求1的方法,其中所述第一数据区块根据空间高效的存储器方案而存储在所述存储器中。
6.如权利要求1的方法,其中基于所述第一数据区块的存储位置而生成与所述第一数据区块关联的所述唯一标识符。
7.如权利要求6的方法,其中如果在特定时间点之后未修改所述第一数据区块,则与所述第一数据区块关联的所述唯一标识符包括用于所述数据存储系统中的第一存储卷的标识符和所述第一数据区块在所述第一存储卷内的位置。
8.如权利要求6的方法,其中如果在特定时间点之后修改所述第一数据区块,则与所述第一数据区块关联的所述唯一标识符包括用于所述数据存储系统中的第二存储卷的标识符和所述第一数据区块在所述第二存储卷内的位置。
9.如权利要求1的方法,其中与所述第一数据区块关联的所述唯一标识符包括所述第一数据区块的物理地址。
10.如权利要求1的方法,其中基于所述第一数据区块的内容而生成所述唯一标识符。
11.如权利要求10的方法,其中所述唯一标识符包括根据所述第一数据区块的所述内容而生成的散列值。
12.如权利要求1的方法,其中使用写时复制将所述第一数据区块存储在所述数据存储系统中,并且所述第一数据区块由所述第一虚拟机和所述第二虚拟机所共享。
13.如权利要求12的方法,其中在所述数据存储系统中修改所述第一数据区块之前生成所述第一数据区块的副本,使得所述第一数据区块的未修改副本可用于部署所述第二虚拟机。
14.如权利要求13的方法,其中响应于在所述数据存储系统中修改所述第一数据区块而在所述数据存储系统中更新与所述第一数据区块关联的所述唯一标识符。
15.如权利要求1的方法,其中使用写时复制将所述第一数据区块存储在所述存储器中,并且所述第一数据区块由所述第一虚拟机和所述第二虚拟机所共享。
16.如权利要求15的方法,其中在所述存储器中修改所述第一数据区块之前在所述存储器中生成所述第一数据区块的副本,使得所述第一数据区块的未修改副本可用于部署所述第二虚拟机。
17.如权利要求16的方法,其中响应于在所述存储器中修改所述第一数据区块而在所述存储器中更新与所述第一数据区块关联的所述唯一标识符。
18.一种用于将数据集载入计算系统的存储器中的方法,所述方法包括:
从数据存储系统接收映射信息,其中所述映射信息将存储在所述数据存储系统中的第一数据区块与唯一标识符关联,以支持将包括所述第一数据区块的第一数据集载入计算系统的存储器中;
利用所述映射信息来判定是否已关联于将第二数据集从所述数据存储系统载入所述存储器中而将所述第一数据区块的副本载入所述存储器中;
响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而从所述数据存储系统取回所述第一数据区块;以及
响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而将所述第一数据区块载入所述存储器中。
19.如权利要求18的方法,还包括:响应于判定已至少将所述第一数据区块的第一副本载入所述存储器中而利用已载入所述存储器中的所述第一数据区块的所述第一副本。
20.一种用于将数据集载入计算系统的存储器中的系统,所述系统包括:
用于从数据存储系统接收映射信息的逻辑单元,其中所述映射信息将存储在所述数据存储系统中的第一数据区块与唯一标识符关联,以支持将包括所述第一数据区块的第一数据集载入计算系统的存储器中;
用于利用所述映射信息来判定是否已关联于将第二数据集从所述数据存储系统载入所述存储器中而将所述第一数据区块的副本载入所述存储器中的逻辑单元;
用于响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而从所述数据存储系统取回所述第一数据区块的逻辑单元;以及
用于响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而将所述第一数据区块载入所述存储器中的逻辑单元。
21.如权利要求20的系统,还包括用于响应于判定已至少将所述第一数据区块的第一副本载入所述存储器中而利用已载入所述存储器中的所述第一数据区块的所述第一副本的逻辑单元。
22.一种计算机程序产品,其包括具有计算机可读程序的计算机可读存储介质,其中所述计算机可读程序在计算机上执行时使所述计算机进行以下操作:
从数据存储系统接收映射信息,其中所述映射信息将存储在所述数据存储系统中的第一数据区块与唯一标识符关联,以支持将包括所述第一数据区块的第一数据集载入所述计算机的存储器中;
利用所述映射信息来判定是否已关联于将第二数据集从所述数据存储系统载入所述存储器中而将所述第一数据区块的副本载入所述存储器中;
响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而从所述数据存储系统取回所述第一数据区块;以及
响应于判定尚未将所述第一数据区块的任何副本载入所述存储器中而将所述第一数据区块载入所述存储器中。
23.如权利要求22的计算机程序产品,其中所述计算机可读程序在计算机上执行时还使所述计算机响应于判定已至少将所述第一数据区块的第一副本载入所述存储器中而利用已载入所述存储器中的所述第一数据区块的所述第一副本。
CN201080056304.XA 2009-12-13 2010-12-06 将数据高效地载入计算系统的存储器中的方法和系统 Active CN102652308B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/636,743 US8489799B2 (en) 2009-12-13 2009-12-13 Efficient loading of data into memory of a computing system
US12/636,743 2009-12-13
PCT/EP2010/069002 WO2011069977A2 (en) 2009-12-13 2010-12-06 Efficient loading of data into memory of a computing system

Publications (2)

Publication Number Publication Date
CN102652308A true CN102652308A (zh) 2012-08-29
CN102652308B CN102652308B (zh) 2014-12-03

Family

ID=43648316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080056304.XA Active CN102652308B (zh) 2009-12-13 2010-12-06 将数据高效地载入计算系统的存储器中的方法和系统

Country Status (7)

Country Link
US (2) US8489799B2 (zh)
JP (1) JP5689475B2 (zh)
CN (1) CN102652308B (zh)
DE (1) DE112010004784T5 (zh)
GB (1) GB2488639B (zh)
TW (1) TWI439939B (zh)
WO (1) WO2011069977A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880515A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种云海os中虚拟机快速部署方法
CN106462999A (zh) * 2014-03-14 2017-02-22 马特伯特股份有限公司 处理和/或传输3d数据
CN108604183A (zh) * 2016-02-17 2018-09-28 霍尼韦尔国际公司 用于高效同时使用的存储器映像的复制
CN110580197A (zh) * 2018-06-07 2019-12-17 国际商业机器公司 大型模型深度学习的分布式计算架构

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560825B2 (en) 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
US9038066B2 (en) * 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9805197B2 (en) * 2012-06-11 2017-10-31 Ent. Services Development Corporation Lp Secure host operating system running a virtual guest operating system
JP6111148B2 (ja) * 2012-06-22 2017-04-05 株式会社半導体エネルギー研究所 情報処理装置
US8806489B2 (en) * 2012-07-05 2014-08-12 International Business Machines Corporation Virtual machine image distribution network
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9021478B1 (en) * 2012-09-27 2015-04-28 Emc Corporation Provisioning virtual machines from template by splitting and building index for locating content portions via content-centric network
US8756237B2 (en) * 2012-10-12 2014-06-17 Architecture Technology Corporation Scalable distributed processing of RDF data
US9069677B2 (en) 2013-04-29 2015-06-30 International Business Machines Corporation Input/output de-duplication based on variable-size chunks
US8937562B1 (en) * 2013-07-29 2015-01-20 Sap Se Shared data de-duplication method and system
US9940377B1 (en) * 2014-09-16 2018-04-10 Amazon Technologies, Inc. Instant copies of storage volumes
US10417010B2 (en) * 2014-12-01 2019-09-17 Hewlett-Packard Development Company, L.P. Disk sector based remote storage booting
US9785552B2 (en) * 2015-01-14 2017-10-10 Kabushiki Kaisha Toshiba Computer system including virtual memory or cache
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
EP3274896B1 (en) 2016-04-22 2019-08-21 Hewlett-Packard Enterprise Development LP Configuration of a memory controller for copy-on-write with a resource controller
US11061709B2 (en) 2018-08-21 2021-07-13 International Business Machines Corporation Storage management for deployment of virtual machine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080271016A1 (en) * 2007-04-30 2008-10-30 International Business Machines Corporation Hypervisor with cloning-awareness notifications
US20080294696A1 (en) * 2007-05-22 2008-11-27 Yuval Frandzel System and method for on-the-fly elimination of redundant data
CN101414277A (zh) * 2008-11-06 2009-04-22 清华大学 一种基于虚拟机的按需增量恢复容灾系统及方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134444A (ja) * 1999-11-04 2001-05-18 Victor Co Of Japan Ltd コンピュータシステムにおけるデータ処理装置
US6760828B1 (en) * 2000-06-27 2004-07-06 Emc Corporation Method and apparatus for using logical volume identifiers for tracking or identifying logical volume stored in the storage system
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US6915397B2 (en) * 2001-06-01 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for generating point in time storage copy
US7360034B1 (en) * 2001-12-28 2008-04-15 Network Appliance, Inc. Architecture for creating and maintaining virtual filers on a filer
US20040254964A1 (en) * 2003-06-12 2004-12-16 Shoji Kodama Data replication with rollback
US7246200B1 (en) * 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US7356665B2 (en) * 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US20060174074A1 (en) * 2005-02-03 2006-08-03 International Business Machines Corporation Point-in-time copy operation
US7500048B1 (en) * 2005-12-15 2009-03-03 Vmware, Inc. Transparent page sharing on commodity operating systems
US7496613B2 (en) * 2006-01-09 2009-02-24 International Business Machines Corporation Sharing files among different virtual machine images
JP2008077144A (ja) * 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム
JP4952308B2 (ja) * 2007-03-09 2012-06-13 日本電気株式会社 メモリ共有システム、方法、及び、プログラム
US7900003B2 (en) * 2007-04-20 2011-03-01 International Business Machines Corporation System, method and computer program product for storing an information block
US8949827B2 (en) * 2007-06-22 2015-02-03 Red Hat, Inc. Tracking a virtual machine
WO2009066611A1 (ja) * 2007-11-20 2009-05-28 Nec Corporation 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム
US8135918B1 (en) * 2007-12-31 2012-03-13 Emc Corporation Data de-duplication for iSCSI
US20090204718A1 (en) * 2008-02-08 2009-08-13 Lawton Kevin P Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication
US8099571B1 (en) * 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
JP5235751B2 (ja) * 2009-03-30 2013-07-10 株式会社日立製作所 仮想計算機を有する物理計算機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080271016A1 (en) * 2007-04-30 2008-10-30 International Business Machines Corporation Hypervisor with cloning-awareness notifications
US20080294696A1 (en) * 2007-05-22 2008-11-27 Yuval Frandzel System and method for on-the-fly elimination of redundant data
CN101414277A (zh) * 2008-11-06 2009-04-22 清华大学 一种基于虚拟机的按需增量恢复容灾系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IVAN KRSUL等: "VMPlants:Providing and Managing Virtual Machine Execution Environments for Grid Computing", 《PROCEEDINGS OF THE ACM/IEEE SC2004 CONFERENCE》, 6 November 2004 (2004-11-06), pages 1 - 7 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880515A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种云海os中虚拟机快速部署方法
CN106462999A (zh) * 2014-03-14 2017-02-22 马特伯特股份有限公司 处理和/或传输3d数据
US10586386B2 (en) 2014-03-14 2020-03-10 Matterport, Inc. Processing and/or transmitting 3D data associated with a 3D model of an interior environment
US11094117B2 (en) 2014-03-14 2021-08-17 Matterport, Inc. Processing and/or transmitting 3D data associated with a 3D model of an interior environment
US11741669B2 (en) 2014-03-14 2023-08-29 Matterport, Inc. Processing and/or transmitting 3D data associated with a 3D model of an interior environment
CN108604183A (zh) * 2016-02-17 2018-09-28 霍尼韦尔国际公司 用于高效同时使用的存储器映像的复制
CN108604183B (zh) * 2016-02-17 2023-06-06 霍尼韦尔国际公司 用于高效同时使用的存储器映像的复制
CN110580197A (zh) * 2018-06-07 2019-12-17 国际商业机器公司 大型模型深度学习的分布式计算架构
CN110580197B (zh) * 2018-06-07 2023-05-02 国际商业机器公司 大型模型深度学习的分布式计算架构

Also Published As

Publication number Publication date
GB2488639A (en) 2012-09-05
TWI439939B (zh) 2014-06-01
GB201202745D0 (en) 2012-04-04
US8489799B2 (en) 2013-07-16
DE112010004784T5 (de) 2012-11-08
US20110145534A1 (en) 2011-06-16
JP5689475B2 (ja) 2015-03-25
TW201135595A (en) 2011-10-16
JP2013513841A (ja) 2013-04-22
WO2011069977A2 (en) 2011-06-16
WO2011069977A3 (en) 2011-08-11
US8738884B2 (en) 2014-05-27
GB2488639B (en) 2015-07-22
CN102652308B (zh) 2014-12-03
US20130246723A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
CN102652308B (zh) 将数据高效地载入计算系统的存储器中的方法和系统
US10691417B2 (en) System and method for executing native client code in a storage device
US9870288B2 (en) Container-based processing method, apparatus, and system
JP6412583B2 (ja) 修正されたメモリー圧縮
US8863129B2 (en) Automated caching and mirroring of immutable data in distributed virtual machines via native interface components
WO2020014939A1 (en) Container framework for user-defined functions
CN101901149A (zh) 处理信息的设备、方法和程序
US9557980B2 (en) Seamless application integration apparatus and method
US8683169B2 (en) Selecting an auxiliary storage medium for writing data of real storage pages
US9317340B2 (en) Intelligent virtual machine (VM) re-location
US9325576B2 (en) Dynamic server to server configuration and initialization
US11205019B2 (en) Multiple computing environments on a computer system
US20150222485A1 (en) Dynamic server configuration and initialization
US20170364400A1 (en) Method for debugging static memory corruption
US20150116208A1 (en) Terminal apparatus, information processing apparatus, and display control method
CN112379945A (zh) 用于运行应用的方法、装置、设备以及存储介质
JP2016537751A (ja) コンピューティングデバイスにおける消費電力の低減
US11366720B2 (en) Building a resilient operating system based on durable services with kernel support
CN117908893A (zh) 编译代码的存储方法、装置、电子设备和存储介质
US9436743B1 (en) Systems and methods for expanding search results
JP2014164614A (ja) 情報処理装置および方法、並びにプログラム
JP2005115778A (ja) 電子機器装置およびコンピュータ読み取り可能な記録媒体

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