TWI439939B - 有效率的將資料載入計算系統之記憶體中 - Google Patents

有效率的將資料載入計算系統之記憶體中 Download PDF

Info

Publication number
TWI439939B
TWI439939B TW099141591A TW99141591A TWI439939B TW I439939 B TWI439939 B TW I439939B TW 099141591 A TW099141591 A TW 099141591A TW 99141591 A TW99141591 A TW 99141591A TW I439939 B TWI439939 B TW I439939B
Authority
TW
Taiwan
Prior art keywords
memory
data block
data
copy
loaded
Prior art date
Application number
TW099141591A
Other languages
English (en)
Other versions
TW201135595A (en
Inventor
Michael E Factor
Kalman Zvi Meth
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW201135595A publication Critical patent/TW201135595A/zh
Application granted granted Critical
Publication of TWI439939B publication Critical patent/TWI439939B/zh

Links

Classifications

    • 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
    • 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
    • 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)

Description

有效率的將資料載入計算系統之記憶體中
所揭示之標的物大體而言係關於計算系統,且更特定言之,係關於有效的將資料載入一主控複數個虛擬機之計算系統的記憶體中。
著作權及商標聲明
本專利文件之揭示內容之一部分含有受著作權保護之材料。著作權人不反對當專利文件或專利揭示內容中之任一者出現在專利商標局的專利檔案或記錄中時對其之傳真複製,但無論如何在其他情況下保留所有著作權。
本文中所參考之特定標記可為與申請人或受讓人有關或無關之第三方之普通法或註冊商標。此等標記之使用是為了藉由實例提供授權揭示內容,且不應被解釋為將所主張之標的物之範疇限於與此等標記相關聯之材料。
在虛擬化環境中,執行於一或多個軟體或硬體基礎結構(亦即,主機)上之主機軟體(亦即,超管理器(hypervisor))可模擬或虛擬化用於一或多個客機軟體之主機。換言之,超管理器可實施一或多個虛擬機(VM)。
超管理器藉由將用以實施VM之資料(亦即,VM之影像)自資料儲存系統載入主機之記憶體中而實施VM。若影像係自同一影像(亦即,主影像)得出,則該等影像可共有相當大量之資料。在現有實施中,超管理器獨立地擷取該等影像中之每一者並將其載入記憶體之一單獨磁碟區中,而不識別多個VM影像所共有之資料。因此,超管理器因重複地擷取並載入共同資料而浪費資源(例如,處理能力、記憶體空間、儲存及網路頻寬)。
出於概述之目的,本文中已描述特定態樣、優點及新穎特徵。應理解,根據任何一特定實施例不可能達成所有此等優點。因此,可以一達成或最佳化一優點或優點群組而不達成本文中所教示或建議之所有優點的方式來體現或執行所揭示之標的物。
根據一實施例,提供一種用於將一或多個虛擬機部署於一主機計算系統上之方法。該方法包含自一資料儲存系統接收映射資訊。該映射資訊使儲存於該資料儲存系統中之一第一資料區塊(data chunk)與一唯一識別符相關聯以支援將一第一虛擬機部署於一主機計算系統上。一旦接收該映射資訊,隨即利用該映射資訊來判定是否已關聯於將該第一虛擬機或一第二虛擬機部署於該主機計算系統上而將該第一資料區塊之任何複本載入該主機計算系統之一記憶體中。若尚未將該第一資料區塊之複本載入該記憶體中,則自該資料儲存系統擷取該第一資料區塊,將其載入該記憶體中,且利用該第一資料區塊將該第一虛擬機部署於該主機計算系統上。
根據一或多個實施例,提供一種包含一或多個邏輯單元之系統。該一或多個邏輯單元經組態以執行與上文所揭示之方法相關聯之功能及操作。在又一實施例中,提供一種電腦程式產品,其包含具有一電腦可讀程式之電腦可讀儲存媒體。該電腦可讀程式在執行於一電腦上時使該電腦執行與上文所揭示之方法相關聯之功能及操作。
下文參看附圖更詳細地提供除特定替代例之外的上文所揭示之實施例中之一或多者。然而,所揭示之標的物並不限於所揭示之任何特定實施例。
根據一或多個實施例,在不同圖中由相同數字參考之特徵、元件及態樣表示相同、等效或類似的特徵、元件或態樣。
藉由參看如下文所提供之所附圖式中之諸圖,可更好地理解所揭示之實施例。
在下文中,闡述眾多特定細節以提供對各種實施例之透徹描述。可在無此等特定細節或在細節有一些變化之情況下實踐特定實施例。在一些情況下,較不詳細地描述特定特徵以免混淆其他態樣。不應將與元件或特徵中之每一者相關聯之詳細程度解釋為證明一特徵比其他特徵新穎或重要。
參看圖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))而連接至使用者電腦,或可(例如,使用網際網路服務提供者,經由網際網路)連接至外部電腦。
參考根據實施例之方法、裝置(系統)及電腦程式產品的流程圖說明及/或方塊圖來揭示特定實施例。將理解,可藉由電腦程式指令來實施該等流程圖說明及/或方塊圖之每一方塊及該等流程圖說明及/或方塊圖中之方塊的組合。可將此等電腦程式指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理裝置之處理器而執行之指令創建用於實施流程圖及/或方塊圖方塊中所指定之功能/動作之構件。
亦可將此等電腦程式指令儲存於一電腦可讀媒體中,該電腦可讀媒體可指導電腦或其他可程式化資料處理裝置或其他器件以特定方式發揮作用,以使得儲存於該電腦可讀儲存媒體中之指令產生包括實施流程圖及/或方塊圖方塊中所指定之功能/動作之指令的一製作物件。
亦可將該等電腦程式指令載入至電腦、其他可程式化資料處理裝置或其他器件上,以使一系列操作步驟執行於該電腦、其他可程式化裝置或其他器件上以產生一電腦實施處理程序,使得在該電腦或其他可程式化裝置上執行之指令提供用於實施流程圖及/或方塊圖方塊中所指定之功能/動作之處理程序。
諸圖中之流程圖及方塊圖說明根據各種實施例之系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一方塊可表示程式碼之模組、區段或部分,其包含用於實施指定邏輯功能的一或多個可執行指令。亦應注意,在一些替代實施中,方塊中所指出之功能可能不按圖中所指出之次序發生。
舉例而言,取決於所涉及之功能性,連續展示之兩個方塊實際上可實質上同時執行,或該等方塊有時可能按相反次序執行。亦將注意,可藉由執行指定功能或動作之基於專用硬體之系統或專用硬體與電腦指令之組合來實施方塊圖及/或流程圖說明中之每一方塊及方塊圖及/或流程圖說明中之方塊的組合。
本文中已參考一或多個特徵或實施例來提供所揭示之標的物。熟習此項技術者將認識到且瞭解,無論本文中所提供之例示性實施例之詳細性質如何,均可在不限制或不脫離通常所欲之範疇的情況下將改變及修改應用於該等實施例。本文中所提供之實施例之此等及各種其他調適及組合係在如申請專利範圍或其等效物之完整集合所界定的所揭示標的物之範疇內。
100...虛擬化環境
110...資料儲存系統
112...儲存器件
114...儲存控制器
120...主機
122...記憶體
124...記憶體控制器
126...超管理器
130...虛擬機(VM)
1101...處理器
1102...本端記憶體
1103...輸入/輸出控制器
1104...快取記憶體
1105...使用者介面器件
1106...儲存媒體
1107...顯示螢幕
1108...通信介面單元
1100...系統匯流排
1110...硬體環境
1120...軟體環境
1121...系統軟體
1122...應用軟體
1124...使用者介面
1126...瀏覽器軟體
圖1說明根據一或多個實施例之例示性虛擬化環境。
圖2A及圖2B為根據一實施例之用於擷取一或多個VM影像並將其載入記憶體中之方法的流程圖。
圖3及圖4為根據一或多個實施例之硬體及軟體環境的方塊圖,本發明之系統可於該等硬體及軟體環境中操作。
100...虛擬化環境
110...資料儲存系統
112...儲存器件
114...儲存控制器
120...主機
122...記憶體
124...記憶體控制器
126...超管理器
130...虛擬機(VM)

Claims (19)

  1. 一種用於將一或多個虛擬機部署於一主機計算系統上之方法,該方法包含:自一資料儲存系統接收映射資訊,其中該映射資訊使儲存於該資料儲存系統中之一第一資料區塊與一唯一識別符相關聯,以支援將一第一虛擬機部署於一主機計算系統上;利用該映射資訊來判定是否已關聯於將該第一虛擬機或一第二虛擬機部署於該主機計算系統上而將該第一資料區塊之任何複本載入該主機計算系統之一記憶體中;及回應於判定尚未將該第一資料區塊之複本載入該記憶體中而:自該資料儲存系統擷取該第一資料區塊;將該第一資料區塊載入該記憶體中;及利用該第一資料區塊將該第一虛擬機部署於該主機計算系統上。
  2. 如請求項1之方法,其進一步包含:回應於判定已至少將該第一資料區塊之一第一複本載入該記憶體中而利用已載入該記憶體中之該第一資料區塊之該第一複本將該第一虛擬機部署於該主機計算系統上。
  3. 如請求項1之方法,其進一步包含:回應於判定已至少將該第一資料區塊之一第一複本載入該記憶體中而利用根據已載入該記憶體中之該第一資料區塊之該第一複本而產生之該第一資料區塊的一第二複本。
  4. 如請求項1之方法,其中該第一資料區塊係根據一空間有效儲存方案而儲存於該資料儲存系統中。
  5. 如請求項1之方法,其中該第一資料區塊係根據一空間有效記憶體方案而儲存於該記憶體中。
  6. 如請求項1之方法,其中與該第一資料區塊相關聯之該唯一識別符係基於該第一資料區塊之一儲存位置而產生。
  7. 如請求項6之方法,其中若在一特定時間點之後未修改該第一資料區塊,則與該第一資料區塊相關聯之該唯一識別符包含用於該資料儲存系統中之一第一存放磁碟區之一識別符及該第一資料區塊在該第一存放磁碟區內之一位置;或其中若在一特定時間點之後修改該第一資料區塊,則與該第一資料區塊相關聯之該唯一識別符包含用於該資料儲存系統中之一第二存放磁碟區之一識別符及該第一資料區塊在該第二存放磁碟區內之一位置。
  8. 如請求項1之方法,其中與該第一資料區塊相關聯之該唯一識別符包含該第一資料區塊之一實體位址。
  9. 如請求項1之方法,其中該唯一識別符係基於該第一資料區塊之內容而產生;或其中該唯一識別符包含根據該第一資料區塊之該內容而產生之一雜湊值。
  10. 如請求項1之方法,其中該第一資料區塊係使用寫時複製而儲存於該資料儲存系統中,且由該第一虛擬機及該第二虛擬機共用。
  11. 如請求項10之方法,其中在於該資料儲存系統中修改該第一資料區塊之前產生該第一資料區塊之一複本,使得該第一資料區塊之未修改複本可用於部署該第二虛擬機;或其中回應於在該資料儲存系統中修改該第一資料區塊而在該資料儲存系統中更新與該第一資料區塊相關聯之該唯一識別符。
  12. 如請求項1之方法,其中該第一資料區塊係使用寫時複製而儲存於該記憶體中,且由該第一虛擬機及該第二虛擬機共用。
  13. 如請求項12之方法,其中在於該記憶體中修改該第一資料區塊之前在該記憶體中產生該第一資料區塊之一複本,使得該第一資料區塊之該未修改複本可用於部署該第二虛擬機;或其中回應於在該記憶體中修改該第一資料區塊而在該記憶體中更新與該第一資料區塊相關聯之該唯一識別符。
  14. 一種用於將一資料集載入一計算系統之一記憶體中的方法,該方法包含:自一資料儲存系統接收映射資訊,其中該映射資訊使儲存於該資料儲存系統中之一第一資料區塊與一唯一識別符相關聯,以支援將包含該第一資料區塊之一第一資料集載入一計算系統之一記憶體中;利用該映射資訊來判定是否已關聯於將一第二資料集自該資料儲存系統載入該記憶體中而將該第一資料區塊之一複本載入該記憶體中;回應於判定尚未將該第一資料區塊之複本載入該記憶體中而自該資料儲存系統擷取該第一資料區塊;及回應於判定尚未將該第一資料區塊之複本載入該記憶體中而將該第一資料區塊載入該記憶體中。
  15. 如請求項14之方法,其進一步包含:回應於判定已至少將該第一資料區塊之一第一複本載入該記憶體中而利用已載入該記憶體中之該第一資料區塊之該第一複本。
  16. 一種用於將一資料集載入一計算系統之一記憶體中的系統,該系統包含:用於自一資料儲存系統接收映射資訊的一邏輯單元,其中該映射資訊使儲存於該資料儲存系統中之一第一資料區塊與一唯一識別符相關聯,以支援將包含該第一資料區塊之一第一資料集載入一計算系統之一記憶體中;用於利用該映射資訊來判定是否已關聯於將一第二資料集自該資料儲存系統載入該記憶體中而將該第一資料區塊之一複本載入該記憶體中的一邏輯單元;用於回應於判定尚未將該第一資料區塊之複本載入該記憶體中而自該資料儲存系統擷取該第一資料區塊的一邏輯單元;及用於回應於判定尚未將該第一資料區塊之複本載入該記憶體中而將該第一資料區塊載入該記憶體中的一邏輯單元。
  17. 如請求項16之系統,其進一步包含用於回應於判定已至少將該第一資料區塊之一第一複本載入該記憶體中而利用已載入該記憶體中之該第一資料區塊之該第一複本的一邏輯單元。
  18. 一種電腦程式產品,其包含具有一電腦可讀程式之一電腦可讀儲存媒體,其中該電腦可讀程式在執行於一電腦上時使該電腦進行以下操作:自一資料儲存系統接收映射資訊,其中該映射資訊使儲存於該資料儲存系統中之一第一資料區塊與一唯一識別符相關聯,以支援將包含該第一資料區塊之一第一資料集載入該電腦之一記憶體中;利用該映射資訊來判定是否已關聯於將一第二資料集自該資料儲存系統載入該記憶體中而將該第一資料區塊之一複本載入該記憶體中;回應於判定尚未將該第一資料區塊之複本載入該記憶體中而自該資料儲存系統擷取該第一資料區塊;及回應於判定尚未將該第一資料區塊之複本載入該記憶體中而將該第一資料區塊載入該記憶體中。
  19. 如請求項18之電腦程式產品,其中該電腦可讀程式在執行於一電腦上時進一步使該電腦回應於判定已至少將該第一資料區塊之一第一複本載入該記憶體中而利用已載入該記憶體中之該第一資料區塊之該第一複本。
TW099141591A 2009-12-13 2010-11-30 有效率的將資料載入計算系統之記憶體中 TWI439939B (zh)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
TW201135595A TW201135595A (en) 2011-10-16
TWI439939B true TWI439939B (zh) 2014-06-01

Family

ID=43648316

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099141591A TWI439939B (zh) 2009-12-13 2010-11-30 有效率的將資料載入計算系統之記憶體中

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)

Families Citing this family (27)

* 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
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
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
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage 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
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata 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
CN102880515A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种云海os中虚拟机快速部署方法
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
US9396586B2 (en) 2014-03-14 2016-07-19 Matterport, Inc. Processing and/or transmitting 3D data
US9940377B1 (en) * 2014-09-16 2018-04-10 Amazon Technologies, Inc. Instant copies of storage volumes
WO2016089343A1 (en) * 2014-12-01 2016-06-09 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
US10466927B2 (en) * 2016-02-17 2019-11-05 Honeywell International Inc. Replication of memory image for efficient simultaneous uses
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
CN107533602B (zh) 2016-04-22 2021-01-12 慧与发展有限责任合伙企业 计算设备及其方法,以及计算系统
US20190378016A1 (en) * 2018-06-07 2019-12-12 International Business Machines Corporation Distributed computing architecture for large model deep learning
US11061709B2 (en) 2018-08-21 2021-07-13 International Business Machines Corporation Storage management for deployment of virtual machine

Family Cites Families (23)

* 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
US8458694B2 (en) * 2007-04-30 2013-06-04 International Business Machines Corporation Hypervisor with cloning-awareness notifications
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
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
CN101414277B (zh) * 2008-11-06 2010-06-09 清华大学 一种基于虚拟机的按需增量恢复容灾系统及方法
JP5235751B2 (ja) * 2009-03-30 2013-07-10 株式会社日立製作所 仮想計算機を有する物理計算機

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI439939B (zh) 有效率的將資料載入計算系統之記憶體中
US11604708B2 (en) Memory first live snapshot
US8850426B2 (en) Managing remote deployment of a virtual machine and service request to be processed by the virtual machines based on network bandwith and storage connectivity
US9612859B2 (en) Comparing states of a virtual machine
US9639432B2 (en) Live rollback for a computing environment
US9733964B2 (en) Live snapshot of a virtual machine
US8209290B1 (en) Generic granular restore of application data from a volume image backup
US20160019081A1 (en) Viewing a snapshot of a virtual machine
US20150244802A1 (en) Importing and exporting virtual disk images
RU2580016C1 (ru) Способ передачи управления между областями памяти
US11231953B2 (en) Minimizing downtime when importing virtual machines from other platforms
US20140244822A1 (en) Management apparatus and method of managing server node
US20130198742A1 (en) Subsequent operation input reduction systems and methods for virtual machines
US10459823B1 (en) Debugging using dual container images
US11263082B2 (en) Data recovery of guest virtual machines
JP2012208752A (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
JP2023169287A (ja) コンピューティングデバイス上でアプリケーションを更新するための、メモリ効率のよいソフトウェアパッチング
US20230185580A1 (en) Single node deployment of container platform
US20110185223A1 (en) Target Operating System and File System Agnostic Bare-Metal Restore
US10831520B2 (en) Object to object communication between hypervisor and virtual machines
US20230251891A1 (en) Modifying a state of a virtual machine
US9207927B2 (en) Dynamic image composition method employing fenced applications
KR20220038053A (ko) 커널 지원을 가진 지속 가능한 서비스들에 기초하여 회복성 운영 시스템을 구축하는 방법

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees