CN102652308A - 将数据高效地载入计算系统的存储器中 - Google Patents
将数据高效地载入计算系统的存储器中 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
- 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/45579—I/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的计算机程序产品,其中所述计算机可读程序在计算机上执行时还使所述计算机响应于判定已至少将所述第一数据区块的第一副本载入所述存储器中而利用已载入所述存储器中的所述第一数据区块的所述第一副本。
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)
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)
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 |
US8850130B1 (en) | 2011-08-10 | 2014-09-30 | Nutanix, Inc. | Metadata for managing I/O and storage for a virtualization |
US8863124B1 (en) | 2011-08-10 | 2014-10-14 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
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 |
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 |
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 |
US9009106B1 (en) | 2011-08-10 | 2015-04-14 | Nutanix, Inc. | Method and system for implementing writable snapshots in a virtualized storage 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)
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)
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 | 株式会社日立製作所 | 仮想計算機を有する物理計算機 |
-
2009
- 2009-12-13 US US12/636,743 patent/US8489799B2/en not_active Expired - Fee Related
-
2010
- 2010-11-30 TW TW099141591A patent/TWI439939B/zh not_active IP Right Cessation
- 2010-12-06 JP JP2012542499A patent/JP5689475B2/ja active Active
- 2010-12-06 WO PCT/EP2010/069002 patent/WO2011069977A2/en active Application Filing
- 2010-12-06 GB GB1202745.4A patent/GB2488639B/en active Active
- 2010-12-06 DE DE112010004784T patent/DE112010004784T5/de not_active Ceased
- 2010-12-06 CN CN201080056304.XA patent/CN102652308B/zh active Active
-
2012
- 2012-09-12 US US13/611,994 patent/US8738884B2/en active Active
Patent Citations (3)
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)
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)
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 |
JP2013513841A (ja) | 2013-04-22 |
CN102652308B (zh) | 2014-12-03 |
TW201135595A (en) | 2011-10-16 |
JP5689475B2 (ja) | 2015-03-25 |
US20110145534A1 (en) | 2011-06-16 |
US8738884B2 (en) | 2014-05-27 |
US8489799B2 (en) | 2013-07-16 |
WO2011069977A3 (en) | 2011-08-11 |
TWI439939B (zh) | 2014-06-01 |
DE112010004784T5 (de) | 2012-11-08 |
GB201202745D0 (en) | 2012-04-04 |
US20130246723A1 (en) | 2013-09-19 |
GB2488639B (en) | 2015-07-22 |
WO2011069977A2 (en) | 2011-06-16 |
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 | |
KR101636870B1 (ko) | 최소 부트 이미지의 생성 방법 및 장치 | |
WO2020014939A1 (en) | Container framework for user-defined functions | |
CN101901149A (zh) | 处理信息的设备、方法和程序 | |
US8688946B2 (en) | Selecting an auxiliary storage medium for writing data of real storage pages | |
EP2466459A1 (en) | Seamless application integration apparatus and method | |
US9553761B2 (en) | Dynamic server to server configuration and initialization | |
US11205019B2 (en) | Multiple computing environments on a computer system | |
US20170371732A1 (en) | Method for debugging static memory corruption | |
JP2022548053A (ja) | 解釈可能な再帰型マルチホップ質問回答のためのフォローアップ質問の生成 | |
KR101790728B1 (ko) | 가상화 환경의 하이퍼바이저에서의 데이터 입출력 방법 및 이를 기록한 기록 매체 | |
JP2016537751A (ja) | コンピューティングデバイスにおける消費電力の低減 | |
US11366720B2 (en) | Building a resilient operating system based on durable services with kernel support | |
CN117908893A (zh) | 编译代码的存储方法、装置、电子设备和存储介质 | |
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 |