TWI564803B - 用於儲存虛擬化的系統和方法 - Google Patents

用於儲存虛擬化的系統和方法 Download PDF

Info

Publication number
TWI564803B
TWI564803B TW104106236A TW104106236A TWI564803B TW I564803 B TWI564803 B TW I564803B TW 104106236 A TW104106236 A TW 104106236A TW 104106236 A TW104106236 A TW 104106236A TW I564803 B TWI564803 B TW I564803B
Authority
TW
Taiwan
Prior art keywords
storage
data
virtual machine
temporary
virtual
Prior art date
Application number
TW104106236A
Other languages
English (en)
Other versions
TW201610853A (zh
Inventor
楊 傑瑞尼 梭
梭 郝 布蘭特 林
飛克朗 喬斯
麥可 布朗
布拉珊斯 拉哈瑞斯南
大衛 弗林
布哈飛斯 麥塔
Original Assignee
桑迪士克科技有限責任公司
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
Priority claimed from US14/245,893 external-priority patent/US10073656B2/en
Application filed by 桑迪士克科技有限責任公司 filed Critical 桑迪士克科技有限責任公司
Publication of TW201610853A publication Critical patent/TW201610853A/zh
Application granted granted Critical
Publication of TWI564803B publication Critical patent/TWI564803B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

用於儲存虛擬化的系統和方法
本揭示涉及虛擬計算系統、包含虛擬桌面基礎設施(VDI)環境,並且具體地涉及用於改良虛擬環境下的輸入/輸出(I/O)操作的性能和/或增加所部署的虛擬機器的密度的系統和方法。
主機可以包括部署在虛擬桌面基礎設施(“VDI”)環境下的多個虛擬機器。該等虛擬機器可以使用類似的作業系統和應用。這些共同點會提出I/O性能和冗餘挑戰。例如,當該等虛擬機器中的大多數虛擬機器啟動時,該等虛擬機器可以存取類似儲存系統上儲存的類似檔案,這會引起產生會對I/O資源造成壓倒態勢的“啟動風暴(boot storm)”。而且,I/O會引起在快取(cache)儲存器中將多重、雙重檔案副本加以快取,從而造成快取可用性降低和快取資源浪費。
提供了一種方法。所述方法包括:接收與虛擬機器的暫態資料有關的而被指向到特定儲存卷的輸入/輸出(I/O)請求;以及藉由使用主機計算裝置的與該特定儲存卷分開的儲存資源來為所接收到的該等I/O請求服務。
提供了一種設備。所述設備包括:虛擬機器,該虛擬機器可 配置成用於使臨時檔案與指定儲存卷相關聯,其中,該虛擬機器進一步可配置成用於向該指定儲存卷發出與該臨時檔案有關的寫入請求,其中,該指定儲存卷被配置成用於和該虛擬機器的主機所管理的儲存裝置相關聯,且其中,該虛擬機器的儲存棧可配置成用於回應於資料被寫入至該主機而與該儲存裝置分開的臨時儲存器而接收向該臨時檔案寫入資料的請求的完成確認。
提供了一設備。所述設備包括:整合模組,該整合模組呈現虛擬機器內的虛擬磁碟,該虛擬磁碟被配置成用於在主機計算系統上操作,其中,該虛擬機器被配置成用於向該虛擬磁碟發出與該虛擬機器的臨時資料有關的寫入請求;以及過渡儲存模組,該過渡儲存模組儲存被指向至該虛擬磁碟的寫入請求的資料,其中,該虛擬磁碟與主儲存卷相關聯,且其中,該過渡儲存模組將該等寫入請求的該資料儲存在該主機計算系統而與該主儲存卷分開的暫用儲存器中。
提供了一系統。所述系統包括:共享模組,該共享模組向在虛擬機器主機上運行的兩個或更多個虛擬機器提供對該虛擬機器主機的儲存資源中所儲存的檔案資料的存取;以及臨時儲存模組,該臨時儲存模組使用該虛擬機器主機的分開的儲存資源為與該等虛擬機器的臨時資料有關而被指向至各別的主儲存卷的輸入/輸出(I/O)請求服務。
100A‧‧‧系統
100B‧‧‧系統
100C‧‧‧系統
100D‧‧‧系統
101‧‧‧主機計算裝置
101B-N‧‧‧主機計算裝置
102‧‧‧處理資源
103‧‧‧記憶體資源
104‧‧‧通信介面
105‧‧‧基礎操作環境
106‧‧‧I/O棧
107‧‧‧網路
110‧‧‧虛擬化基礎設施
112‧‧‧虛擬化環境
114A-N‧‧‧虛擬機器
115‧‧‧I/O請求
116‧‧‧臨時I/O請求
120‧‧‧I/O管理器
121‧‧‧I/O監控器
122‧‧‧過渡儲存模組
123‧‧‧VM監控器
124‧‧‧整合模組
126‧‧‧重指向模組
127‧‧‧傳輸模組
129‧‧‧虛擬磁碟機
130‧‧‧儲存模組
132‧‧‧供應器
134‧‧‧轉換模組
135‧‧‧I/O元資料
136‧‧‧主機儲存資源
138‧‧‧暫用儲存器
139A-N‧‧‧臨時資料
160‧‧‧主儲存資源
162‧‧‧主儲存卷
164‧‧‧儲存資源
165‧‧‧儲存資源
166‧‧‧儲存卷
167‧‧‧儲存卷
170A-N‧‧‧虛擬磁碟
171A-N‧‧‧虛擬磁碟
172A-N‧‧‧檔案
174A‧‧‧非臨時檔案
175A‧‧‧臨時檔案
178A‧‧‧臨時資料
179A‧‧‧臨時資料
180‧‧‧快取管理系統(CMS)
184‧‧‧資料標記
185‧‧‧集合
185A-N‧‧‧資料標記
185X、185Y‧‧‧標記集合
188‧‧‧快取儲存器
301‧‧‧儲存位址空間
302‧‧‧快取塊
304‧‧‧儲存單元
311A-N‧‧‧虛擬位址空間
312‧‧‧虛擬塊
314‧‧‧虛擬位址
401‧‧‧快取策略模組
402‧‧‧標記轉換模組
404‧‧‧快取標記模組
406‧‧‧時脈掃描模組
408‧‧‧竊用候選者模組
410‧‧‧快取策略模組
412‧‧‧有效單元映射模組
414‧‧‧頁大小管理模組
416‧‧‧介面模組
418‧‧‧快取標記保留模組
419‧‧‧快取標記快照模組
436‧‧‧快取執行模組
500‧‧‧系統
503‧‧‧儲存用戶端
506‧‧‧儲存棧
512‧‧‧檔案共享標記
513A-N‧‧‧檔案層
515‧‧‧I/O請求
516‧‧‧I/O請求
521‧‧‧VM I/O監控器
524‧‧‧檔案共享策略模組
535‧‧‧VLUN磁碟
536‧‧‧VLUN驅動器
538‧‧‧檔案共享儲存器
540‧‧‧配置介面
550‧‧‧VM檔案共享模組(VM FSM)
553‧‧‧檔案共享策略模組
555‧‧‧唯一文件識別符(UFID)
556‧‧‧資料識別符(DID)
564‧‧‧檔案共享字典
565‧‧‧檔案共享接納策略
567A-N‧‧‧快照
857‧‧‧儲存位置
859‧‧‧識別符
900‧‧‧方法
910‧‧‧步驟
920‧‧‧步驟
1000‧‧‧方法
1010‧‧‧步驟
1020‧‧‧步驟
1100‧‧‧方法
1110‧‧‧步驟
1120‧‧‧步驟
1200‧‧‧方法
1210‧‧‧步驟
1220‧‧‧步驟
本揭示包括並且引用附圖,該等附圖提供了在此揭示的實施例中的更具體的描述。然而,本揭示不侷限於附圖中所描繪的特定實施例。本揭示 的教導可以用於和/或適合於其他實施例,和/或在不脫離本揭示範圍的情況下,可以對所揭露的實施例作出改變。
圖1A係包括I/O管理器的系統的一個實施例之方塊圖,該管理器被配置成用於為與臨時資料有關的I/O請求服務;圖1B係包括I/O管理器的系統的另一個實施例之方塊圖,該管理器被配置成用於為與臨時資料有關的I/O請求服務;圖1C係包括I/O管理器的系統的另一個實施例之方塊圖,該管理器被配置成用於為與臨時資料有關的I/O請求服務;圖1D係包括I/O管理器的系統的另一個實施例的方塊圖,該管理器被配置成用於快取VM資料和/或為與臨時資料有關的I/O請求服務;圖2係展示I/O元資料之實施例的方塊圖;圖3係展示I/O元資料的進一步的實施例的方塊圖;圖4係快取管理系統的一個實施例之方塊圖;圖5係I/O管理器的一個實施例之方塊圖,該管理器被配置成用於管理臨時資料和檔案共享;圖6描繪了檔案選擇標準的實施例;圖7描繪了檔案共享字典的實施例;圖8描繪了檔案共享字典的進一步實施例;圖9係用於管理虛擬化I/O的方法的一個實施例之流程圖;圖10係用於管理虛擬化I/O的方法的另一個實施例之流程圖;圖11係用於管理虛擬化I/O的方法的另一個實施例之流程圖;以及圖12係用於管理虛擬化I/O的方法的另一個實施例之流程圖。
主機計算裝置可以被配置成用於提供被配置成用於託管多個虛擬機器的虛擬化基礎設施110。該等虛擬機器(VM)可以部署在虛擬桌面基礎設施(VDI)環境中。計算系統能夠託管的VM的數量會受到尤其VM的I/O要求的限制。在某些實施例中,該主機計算裝置包括I/O管理器,該管理器被配置成用於藉由尤其減少VM的寫入負荷開銷和/或在VM之間實現資料共享(例如,管理該等虛擬機器中的兩個或更多個虛擬機器共享的單個資料副本)來改良VM I/O性能。
如在此所使用的,VM的寫入負荷指在為VM的寫入請求服務時涉及到的開銷(其可以包括但不限於來自/至共享的主儲存資源的頻寬)。該I/O管理器可以被配置成用於藉由尤其使用指定儲存資源(例如,本地高性能儲存裝置)來為所選擇的VM的寫入請求服務來減少在主機計算系統和/或裝置上運行的VM強加的寫入負荷。在某些實施例中,該I/O管理器實現寫入向量化(write vectoring)。如在此所使用的,“寫入向量化”指基於I/O請求的特性(例如,I/O請求的持久化要求)對用於為I/O請求服務的I/O資源進行適配。適用於寫入向量化的資料包括在相應的儲存用戶端(例如,VM)運行的同時有待保留但特定時間後和/或回應於特定條件和/或觸發(例如,使VM循環)可以被丟棄的資料。特定時間後和/或回應於特定條件和/或觸發可以被丟棄的資料在此被稱為“臨時資料(ephemeral data)”、“暫時資料(temporary data)”、“暫態資料(transient data)”、“過渡資料(interim data)”、“寫入向量化資料(write-vectored data)”、“一次性資料(disposable data)”等等。臨時資料可以包括但不限於:交換 檔案(例如,虛擬記憶體檔案,如pagefile.sys等等);暫時檔案,如內容暫時目錄(例如,“/tmp”等等):暫時應用文件(例如,微軟Word®的本地快取等等);虛擬記憶體管理檔案;資料庫快取檔案;I/O緩衝檔案等等。相比之下,非臨時資料、持久化資料或長期資料指應被無限期保留和/或被保留直到資料被明確地擦除、刪除、解除配置等等。相應地,非臨時資料可以被保留持續多個VM循環。如在此所使用的,儲存用戶端(例如,VM)的“循環”指重啟操作、重新啟動、重置、電力循環、關機、死機、無效關機、電力喪失等等。
如在此所使用的,寫入向量化可以包括a)標識與暫態資料有關的I/O請求,以及b)使用與寫入請求被指向至其上的主儲存資源分開的指定儲存資源而為所標識的I/O請求服務。
如在此所使用的,分開的儲存資源指能夠和/或被配置成用於獨立操作的儲存資源、儲存卷和/或儲存裝置。分開的儲存資源可以指是物理上不同的儲存資源(例如,包括和/或與不同儲存裝置、儲存介質等等相對應的資源)。因此,與主儲存卷分開的儲存資源分開的儲存資源可以指與包括該主儲存卷的儲存資源和/或裝置分開和/或不同的儲存資源。可替代地,儲存資源可以是邏輯上分開的。在一個實施例中,例如,可以藉由在邏輯上對儲存介質(例如,磁碟)進行分區、為特定用戶端保留儲存資源等等來將儲存資源分開。
被指定用於儲存寫入向量化資料的儲存資源在此可以被稱為臨時儲存器、暫態儲存器、過渡儲存器、暫用儲存器等等。臨時儲存資源可以包括但不限於:持久化儲存資源(例如,固態儲存裝置)、易失性儲 存資源(例如,易失性記憶體)、持久化和易失性儲存資源的組合等等。
在某些實施例中,回應於移除條件和/或觸發,可以從過渡性儲存資源中移除臨時資料。如在此所使用的,臨時資料的移除條件指指示相應的臨時資料不再需要被保留在儲存資源上的條件,如VM重啟。移除條件可以包括但不限於使VM循環(例如,重新啟動和/或重啟VM)、VM關機、VM無效(例如,VM移除和/或破壞)、VM資料傳輸(例如,將VM的臨時資料移至另一個儲存位置)等等。如在此所使用的,移除臨時資料可以包括但不限於:從儲存資源擦除臨時資料,記錄資料在使用的儲存容量係可恢復的,將用於儲存該資料的儲存資源(多個)解除配置,將用於儲存該資料的儲存資源(多個)取消映射(例如,藉由使用TRIM消息),使該臨時資料無效等等。
在某些實施例中,使用主機計算系統的本地固態儲存介質(例如,與主機計算系統的本地匯流排耦合)為與臨時資料有關的寫入請求服務。相應地,可以在不存取相應主儲存資源(多個)的情況下完成寫入向量化儲存操作。因此,在某些實施例中,寫入向量化可以被稱為永不寫入快取模式。如在此所使用的,永不寫入快取模式指主儲存資源的資料快取在持久化快取儲存器中的快取模式,但不被降級(destaged)到後備儲存器(例如,不被直寫入和/或回寫入至後備儲存器)。可替代地,寫入向量化儲存操作可以被稱為臨時儲存模式,以該儲存模式藉由使用被配置成用於保留I/O操作的資料一段有限時期(例如,直至相應的VM重啟,或者其他觸發條件)來為該等I/O操作服務。
在某些實施例中,整合模組呈現VM內的虛擬儲存資源( ,虛擬磁碟和/或卷)。該虛擬儲存資源可以被指定用於儲存臨時資料。在某些實施例中,VM被配置成用於使臨時檔案與指定的虛擬儲存資源相關聯。如在此所使用的,臨時檔案指包括如在此所揭露的臨時資料的檔案(和/或其他儲存物件或實體)。相應地,臨時檔案指包括不需要在VM循環之間保留的資料(例如,包括虛擬記憶體交換資料、暫時資料、緩衝資料等等)的檔案。臨時檔案還可以被稱為暫時檔案、暫態檔案、過渡性檔案、寫入向量化檔案等等。被指定用於臨時檔案資料的虛擬儲存資源可以與虛擬化主機(例如,虛擬化內核、虛擬化基礎設施、管理程式等等)所管理的儲存裝置和/或儲存卷相關聯。在某些實施例中,該儲存裝置和/或儲存卷包括該虛擬化主機所管理的一次性磁碟。
該VM可以配置成使臨時檔案與虛擬儲存資源相關聯。在某些實施例中,重指向模組可以被配置成用於使特定檔案、特定檔案路徑、特定檔案卷等等與虛擬儲存資源相關聯(例如,使c:\pagefile.sys與x:\pagefile.sys相關聯,其中x對應於虛擬儲存資源)。該重指向模組可以包括例如可由VM執行用於修改一組檔案的原始卷關聯性的腳本,這樣使得該等檔案與指定的虛擬儲存資源相關聯,與原始卷形成對照。
過渡儲存模組可以對寫入向量操作做出以下管理:a)標識與臨時資料有關的I/O請求(例如,被指向至指定的虛擬儲存資源和/或相關聯的儲存裝置的I/O請求),以及b)使用過渡儲存器為該等I/O請求服務。該過渡儲存器可以與和如以上所揭露的虛擬機器主機的虛擬儲存資源相關聯的儲存裝置和/或資源分開或與其無關。該過渡儲存模組可以將通過該指定的虛擬儲存卷發出的I/O請求標識為臨時I/O請求(例如,與臨時資 料有關的I/O請求),並且可以使用該過渡儲存器為所標識的臨時I/O請求服務。
該過渡儲存模組可以管理該過渡儲存器中儲存的VM資料,該管理可以包括標記和/或記錄如以上所揭露的回應於移除條件和/或觸發可以從過渡儲存器中移除VM資料(例如,回應於確定正在重啟VM)。在某些實施例中,該過渡儲存模組包括將該過渡儲存器的儲存容量分配給VM的供應器(provisioner)。標記用於移除的資料可以包括標記被分配給VM用於解除配置的儲存資源(和/或重新分配給虛擬化主機上的其他VM)。可替代地或此外,可以藉由尤其將用於引用過渡儲存器中的VM的臨時資料的邏輯識別符(例如,邏輯塊位址)取消映射來移除VM資料。
在某些實施例中,VM管理器檢測VM操作條件,該等條件可以包括但不限於:特定VM當前是否正在運行,特定VM是否已經重啟和/或將要重啟,特定VM是否已經關機和/或將要關機,特定VM是否已經休眠和/或將要休眠,特定VM是否被移至另一個主機等等。該過渡儲存模組可以被配置成用於回應於如以上所揭露的所確定的VM操作條件而將該過渡儲存器中的VM資料移除、無效化和/或解除配置。在一個示例中,該過渡儲存模組可以回應於確定VM正在運行和/或已經休眠而將VM資料保留在該過渡儲存器中。該過渡儲存模組可以回應於確定VM關機、重啟等等而將VM資料移除、無效化和/或解除配置。
該過渡儲存模組可以被進一步配置成用於回應於尤其確定VM從主機計算裝置遷移出來而傳輸和/或寫入該過渡儲存器中所儲存的VM資料。在某些實施例中,該過渡儲存模組包括資料傳輸模組,該資料傳 輸模組回應於確定VM被傳輸至另一個主機而或者a)向該VM的目的地主機計算裝置提供該VM的臨時資料和/或b)將該VM的臨時資料傳輸至其他儲存位置(多個),例如,像與該VM中呈現的指定的虛擬儲存資源相關聯的儲存資源(多個)。
在此揭露了一用於在VDI環境下管理I/O操作的方法的實施例,該方法包括接收與虛擬機器的暫態資料有關的被指向到特定儲存卷的輸入/輸出(I/O)請求,以及藉由使用主機計算裝置的與該特定儲存卷分開的儲存資源來為所接收到的該等I/O請求服務。該方法可以進一步包括回應於檢測到與該虛擬機器相關聯的重啟操作而記錄與所接收到的該等I/O請求相關聯的儲存在該儲存資源上的資料使用的儲存容量係可恢復的。該方法可以進一步包括:確定該虛擬機器關機,以及將該儲存資源中所儲存的該虛擬機器的資料解除配置。
在某些實施例中,該特定儲存卷表示超過在該主機計算裝置的該儲存資源中為該虛擬機器提供的儲存容量的儲存容量。在這種實施例中,該方法可以進一步包括:回應於填充在該儲存資源中為該虛擬機器供應的該儲存容量,使用與該特定儲存卷相對應的磁碟為該虛擬機器的I/O請求服務,和/或配置該特定儲存卷,這樣使得回應於虛擬機器重啟,該特定儲存卷對應於空儲存卷。
該方法可以進一步包括回應於確定該虛擬機器不在該主機計算裝置上運行而將在該儲存資源中為該虛擬機器供應的儲存容量解除配置。該特定儲存卷可以對應於該主機計算裝置所管理的一次性虛擬磁碟。該方法可以進一步包括回應於確定該虛擬機器從該主機計算裝置遷移出來 而將該儲存資源中儲存的該虛擬機器的資料傳輸至另一個主機計算裝置。在某些實施例中,該方法進一步包括回應於確定該虛擬機器從該主機計算裝置遷移出來而將該儲存資源中儲存的該虛擬機器的資料寫入至該特定儲存卷。
在此揭露了一設備的實施例,該設備包括:虛擬機器,該虛擬機器可配置成用於使臨時檔案與指定儲存卷相關聯,其中,該虛擬機器進一步可配置成用於向該指定儲存卷發出與該臨時檔案有關的寫入請求,其中,該指定儲存卷被配置成用於和該虛擬機器的主機所管理的儲存裝置相關聯,並且其中,該虛擬機器的儲存棧可配置成用於回應於資料被寫入至該主機的與該儲存裝置分開的臨時儲存器而接收向該臨時檔案寫入資料的請求的完成確認。該設備可以進一步包括重指向模組,該重指向模組可配置成用於將該臨時檔案從原始儲存卷重新指向至該指定儲存卷。
在此揭露了一設備的進一步的實施例,該設備包括:整合模組,該整合模組呈現虛擬機器內的虛擬磁碟,該虛擬磁碟被配置成用於主機計算系統上的操作,其中,該虛擬機器被配置成用於向該虛擬磁碟發出與臨時資料有關的寫入請求;以及過渡儲存模組,該過渡儲存模組儲存被指向至該虛擬磁碟的寫入請求的資料,其中,該虛擬磁碟與主儲存卷相關聯,並且其中,該過渡儲存模組將該等寫入請求的該資料儲存在該主機計算系統的與該主儲存卷分開的暫用儲存器中。該過渡儲存模組可以被配置成用於回應於確定已經重啟了該虛擬機器而對該虛擬機器的有待從該暫用儲存器中移除的資料做標記。在某些實施例中,該設備包括驅動器,該驅動器對被指向至該主機計算系統的儲存棧中的虛擬磁碟的寫入請求進行標 識;和/或重指向腳本,該重指向腳本被配置成用於將該虛擬機器的臨時檔案重指向至與該虛擬磁碟相關聯的儲存卷,其中,該虛擬機器的該臨時資料包括該臨時檔案的資料。該設備可以進一步包括虛擬機器傳輸模組,該虛擬機器傳輸模組藉由以下各項中的一項或多項來保留該暫用儲存器中所儲存的該虛擬機器的資料:a)向另一個主機計算系統提供該暫用儲存器中所儲存的該虛擬機器的該資料以及b)將該暫用儲存器中所儲存的該虛擬機器的該資料移至該主儲存卷。該主機計算系統可配置成用於託管多個虛擬機器,並且該設備可以進一步包括資料共享模組,該資料共享模組為該等虛擬機器中的兩個或更多個虛擬機器提供對該等虛擬機器中的這兩個或更多個虛擬機器共同的重複資料的存取。在這種實施例中,該資料共享模組可以被配置成用於將該重複資料標引為該重複資料的簽章,並且該資料共享模組回應於包括該簽章的請求而可以提供對該重複資料的存取。這兩個或更多個虛擬機器可以被配置成用於保持對應的持久化字典,該等字典使與該重複資料有關的檔案名與該重複資料的該簽章相關聯。
在此揭露了一系統的實施例,該系統包括:共享模組,取決於虛擬機器主機,該共享模組向在該虛擬機器主機上運行的兩個或更多個虛擬機器提供對該虛擬機器主機的儲存資源中所儲存的檔案資料的存取;以及臨時儲存模組,該臨時儲存模組使用該虛擬機器主機的分開的儲存資源為與該等虛擬機器的臨時資料有關的被指向至對應的主儲存卷的輸入/輸出(I/O)請求服務。該系統可以進一步包括I/O過濾器,該過濾器標識與以下各項有關的I/O請求:a)該儲存資源中所儲存的該等虛擬機器中的兩個或更多個虛擬機器共同的檔案資料和b)儲存棧中的虛擬機器的臨時資 料。
圖1A係方塊圖,描繪了包括主機計算裝置101的系統100A的一個實施例,該主機計算裝置被配置成用於託管多個虛擬機器114A-N。主機計算裝置101可以包括處理資源102、易失性記憶體資源103、通信介面104等等。處理資源102可以包括但不限於通用中央處理單元(CPU)、專用積體電路(ASIC)和可程式邏輯元件,如現場可程式閘陣列(FPGA)、可程式邏輯陣列(PLA)等等。記憶體資源103可以包括易失性隨機存取記憶體(RAM),如動態RAM(DRAM)、快取記憶體(例如,處理器快取)等等。通信介面104可以被配置成用於通信地將主機計算裝置101與網路107耦合。網路107可以包括任何合適的通信網路,包括但不限於傳輸控制協定/互聯網協定(TCP/IP)網路、局域網(LAN)、廣域網路(WAN)、虛擬私人網路(VPN)、或儲存區域網(SAN)。主機計算裝置101可以進一步包括基礎操作環境105,該環境可以包括基礎作業系統、裸金屬作業系統等等。
主機計算裝置101可以包括被配置成用於為VM 114A-N實現虛擬化環境112的虛擬化基礎設施110。虛擬化基礎設施110可以包括但不限於基於內核的虛擬化基礎設施(如虛擬化內核等等)、管理程式、虛擬機器監控器、虛擬操作平臺等等。虛擬化環境112可以包括客戶機操作環境、基於內核的VM環境(KVM)等等。
可以藉由使用I/O堆疊106為虛擬機器114A-N的I/O請求115服務。I/O堆疊106可以包括主機計算裝置101、基礎操作環境105、和/或虛擬化基礎設施110中的一項或多項的I/O和/或儲存架構。I/O棧106可 以包括框架,在該框架中部署儲存服務,如檔案系統驅動器、卷驅動器、磁碟機、小型電腦系統介面(SCSI)驅動器等等。
VM 114A-N的I/O請求115可以藉由尤其I/O棧106被指向至主儲存卷162和/或主儲存資源160。主儲存資源160可以包括但不限於:一個或多個儲存裝置、磁碟、硬碟驅動器、儲存系統、廉價磁碟冗餘陣列(RAID)、集束磁碟(JBOD)、網路附加儲存(NAS)、SAN、邏輯儲存單元(LUN)、虛擬LUN(vLUN)、記憶體、電池支持RAM等等。部署在其他主機計算裝置(未示出)上的多個VM 114A-N和/或VM可以共享主儲存資源160。
主機計算裝置101可以包括VM I/O管理器120,該管理器包括為與VM 114A-N的臨時資料有關的I/O請求服務的過渡儲存模組122。過渡儲存模組122可以藉由使用尤其I/O監控器模組121來標識與臨時資料有關的I/O請求。I/O監控器模組121可以包括被配置用於在I/O棧106內運行的驅動器。I/O監控器模組121可以被配置成用於藉由基礎操作環境105和/或虛擬化基礎設施110公開的I/O應用程式設計發展介面(API)和/或庫來監控I/O請求。相應地,可以在VM 114A-N與主儲存資源160(和/或VM114A-N的其他儲存資源)之間的I/O“路徑”上實現I/O監控器模組121。在一個實施例中,I/O監控器模組121包括過濾器驅動器,該過濾器驅動器被配置成用於監控微軟視窗(Windows)®作業系統的I/O棧106內的I/O請求包(IRP)。然而,本揭露在此方面不受限制,並且可以與任何作業系統(例如,Unix作業系統、Linux作業系統、OSX作業系統等等)和/或虛擬化基礎設施110的任何合適的I/O框架和/或I/O棧一起使用。
過渡儲存模組122可以標識與VM 114A-N的臨時資料有關的I/O請求115(臨時I/O請求116),並且可以使用暫用儲存器138為臨時I/O請求116服務。暫用儲存器138可以包括和/或對應於和I/O請求115被指向至其上的主儲存卷162和/或主儲存資源160分開和/或與其無關的主機儲存資源136。在某些實施例中,主機儲存資源136包括持久化非易失性儲存介質,其可以包括但不限於:NAND快閃記憶體、NOR快閃記憶體、奈米RAM(NRAM)、磁阻RAM(MRAM)、相變RAM(PRAM)、賽道記憶體(Racetrack memory)、記憶電阻器記憶體、基於奈米晶體線的記憶體、基於氧化矽的亞10奈米進程記憶體、石墨烯記憶體、矽氧化氮氧化矽(SONOS)記憶體、電阻型RAM(RRAM)、可程式金屬化單元(PMC)記憶體、導電橋接RAM(CBRAM)等等。可替代地或此外,主機儲存資源136可以包括易失性記憶體資源、快取儲存器資源等等。儘管在此揭露了儲存裝置和/或儲存介質的特定實施例,但本揭露的教導可以應用於任何合適的儲存介質,包括非易失性和易失性形式兩種。在某些實施例中,主機儲存資源136可以包括主機計算裝置101的本機存放區資源(例如,藉由使用如PCI匯流排、儲存匯流排等等匯流排與主機計算裝置101耦合)。可替代地,主機儲存資源136可以藉由網路107和/或另一種通信基礎設施與主機計算裝置101通信地耦合。
儲存模組130可以包括對向VM 114A-N的資源配置進行管理的供應器132。在某些實施例中,供應器132分配主機儲存資源136的儲存容量以便用於儲存對應的VM 114A-N的臨時資料。供應器132可以根據VM 114A-N的I/O要求(例如,VM 114A-N上的寫入負荷)來適配資源配 置。供應器132可以被進一步配置成用於根據分配策略對分配給VM 114A-N的I/O頻寬和/或I/O操作(IOP)進行管理。該分配策略可以包括該等VM 114A-N中的一個或多個的服務品質(QoS)要求,並且供應器132可以被配置成用於以滿足該等QoS要求的方式將快取儲存器和/或IOP資源配置給該等VM 114A-N。供應器132可以被配置成用於藉由尤其預防如此處進一步詳細揭露的寫入前讀取安全危險來保護主機儲存資源136中所儲存的資料。
如以上所揭露的,VM 114A-N可以被配置成用於存取主儲存卷162的儲存資源。虛擬化基礎設施110可以藉由存取與主儲存卷162相對應的主儲存資源160來為VM 114A-N的I/O請求115服務,這可以包括通過虛擬化基礎設施110(和/或主機計算裝置101)的I/O棧106向主儲存資源160發出I/O請求115。相應地,在主機計算裝置101上運行的多個VM 114A-N的I/O請求115可以集中在主儲存資源160。此外,在其他主機計算裝置(未示出)運行的其他主儲存資源160可以利用主儲存資源160,這會進一步增加主儲存資源160和/或I/O基礎設施(例如,網路107、I/O匯流排等等)上的負荷。
過渡儲存模組122可以被配置成用於藉由尤其使用暫用儲存器138為某些I/O請求115服務來減少主儲存資源160上的I/O負荷。VM 114A-N可以發出與不需要長期保留(例如,不需要在VM循環之間被保留)的臨時資料有關的I/O請求115。如以上所揭露的,在相應的VM 114A-N運行時,臨時資料會具有關鍵重要性,但在重啟循環和/或重新開機後可能不被需要。臨時資料可以包括但不限於:交換檔案,如虛擬記憶體檔案(例 如,pagefile.sys等等);暫時檔案,如內容暫時目錄(例如,/tmp等等):暫時應用文件(例如,微軟Word®的本地快取等等);等等。
在某些實施例中,過渡儲存模組122使用暫用儲存器138為與臨時資料有關的I/O請求(臨時I/O請求116)服務,該暫用儲存器可以與主儲存資源160分開和/或與其無關。當VM 114A-N運行時,保留臨時I/O請求116的資料,但在VM循環之間不需要被保留(例如,VM 114A-N的臨時資料在VM重啟循環之間不需要被保留)。因此,為臨時I/O請求116服務可以包括存取主機儲存資源136而不存取主儲存資源160(例如,不將臨時資料直寫入和/或回寫入至主儲存資源160)。主機儲存資源136可以包括主機計算裝置101的本地的和/或與其緊密耦合的高性能儲存裝置。使用過渡儲存模組122為臨時I/O請求116服務可以提供顯著的性能益處:臨時I/O請求116不需要存取主儲存資源160,並且如此不加重主儲存資源160的I/O負荷。而且,可以將與主儲存資源160相關聯的時延從用於為I/O請求116服務的“關鍵路徑(critical path)”中移除,這樣使得可以更高效地為請求116服務。如在此所使用的,“關鍵路徑”指I/O操作和/或請求的定時和/或時延路徑。在直寫入式快取配置下,例如,I/O請求115直到資料被直寫入到相應的主儲存資源160才可以完成。因此,I/O操作的關鍵路徑包括一次或多次高時延主儲存器存取。相比之下,臨時I/O請求116可以專門在主機儲存資源136內完成,而不存取主儲存資源160。相應地,臨時I/O請求116的關鍵路徑不包括對主儲存資源160的高時延存取。因此,除了減少VM 114A-N的時延,過渡儲存模組122可以提供減少I/O頻寬和/或主儲存資源160上的負荷的附加益處。
在某些實施例中,過渡儲存模組122標識與臨時資料有關的I/O請求(臨時I/O請求116),並且使用暫用儲存器138為所標識的I/O請求116服務。可以藉由以下內容為臨時I/O請求116服務:a)將臨時I/O請求116的資料寫入至暫用儲存器138,b)從暫用儲存器138中讀出資料等等。在某些實施例中,供應器132將主機儲存資源136內的儲存容量分配給特定VM 114A-N。因此,為臨時I/O請求116服務可以包括藉由使用轉換模組134將臨時I/O請求116映射和/或轉換到主機儲存資源136的特定區域和/或部分(例如,已經被分配給相應VM 114A-N的區域和/或部分)。轉換模組134可以例如藉由使VM 114A-N的識別符與主機儲存資源136的識別符的集合、範圍和/或廣度(extent)(例如,邏輯識別符、邏輯塊位址、虛擬位址、物理儲存位址的集合、範圍和/或廣度等等)相關聯來將VM 114A-N映射到所供應的儲存資源。轉換模組134可以被進一步配置成用於將與臨時I/O請求116有關的資料識別符(主識別符)映射到暫用儲存器138的識別符(過渡性識別符)。如在此所使用的,主識別符對應於VM 114A-N、虛擬化基礎設施110和/或主機計算裝置101所使用的識別符以引用主儲存卷162和/或主儲存資源160內儲存的資料。因此,主識別符可以包括與臨時I/O請求116有關的主儲存卷162和/或主儲存資源160上的資料的識別符和/或位址(例如,主儲存資源160的邏輯位址空間內的邏輯塊位址,主儲存資源160的物理位址空間內的物理位址和/或偏移等等)和/或從其中被導出。如圖1A中所示,過渡儲存模組122可以被配置成用於為在主機計算裝置101上運行的多個VM 114A-N的臨時I/O請求116服務。相應地,在某些實施例中,指派給暫用儲存器138中所儲存的臨時資料的主位址可以進一步包 括和/或結合與VM 114A-N相對應的對應的VM識別符(VMID)。該等VMID可以用於區分不同VM 114A-N的資料和/或主識別符和/或防止未經授權存取VM資料。如在此所使用的,過渡性識別符對應於暫用儲存器138中所儲存的臨時資料的識別符和/或位址。相應地,過渡性識別符可以包括暫用儲存器138內的臨時資料的識別符和/或位址(例如,邏輯識別符、邏輯位址、虛擬位址、物理位址等等)和/或從其中被導出。
在某些實施例中,轉換模組134保持元資料135,該元資料包括暫用儲存器138中所儲存的VM 114A-N的臨時資料的主識別符(多個)與主機儲存資源136內儲存的資料的相應的過渡性識別符(多個)之間的關聯性(例如,使用資料標記,如在此進一步詳細揭露的)。元資料135可以包括前向映射,該前向映射將分配給特定VM 114A-N的過渡性識別符指派給暫用儲存器138中所儲存的特定VM 114A-N的資料的主識別符。元資料135可以進一步包括和/或標識分配給特定VM 114A-N的未指派的過渡性識別符。如在此所使用的,未指派的過渡性識別符指當前未用於引用主機儲存資源136中所儲存的資料和/或不與特定VM 114A-N的主識別符相關聯的過渡性識別符。相應地,VM 114A-N的未指派的過渡性識別符表示可供用於儲存VM 114A-N的臨時資料的儲存容量。未指派的過渡性識別符還可以被稱為未映射的過渡性識別符、無約束的過渡性識別符、可用的過渡性識別符等等。當前正用於引用暫用儲存器138內所儲存的臨時資料的過渡性識別符可以被稱為是已指派的、受約束的、不可用的、被佔用的等等。相應地,在某些實施例中,為VM 114A-N的臨時I/O請求116服務可以包括:a)標識分配給VM 114A-N的可用的過渡性識別符(使用元資料135), b)將臨時I/O請求116的資料寫入至暫用儲存器138內的所標識的過渡性識別符,以及c)將所標識的過渡性識別符映射到與臨時I/O請求116相對應的主識別符。可以藉由以下內容為讀取臨時I/O請求116的資料的後續請求服務:a)藉由尤其確定與臨時I/O請求116相對應的主識別符是否被映射到元資料135中的過渡性識別符來確定與臨時I/O請求116相對應的資料在暫用儲存器138中是否可用,以及b)存取與暫用儲存器138內所儲存的臨時I/O請求116相對應的資料(使用指派給主識別符的過渡性識別符)。
如以上所揭露的,過渡儲存模組122可以藉由尤其監控I/O棧106內的I/O請求115(藉由使用I/O監控器模組121)來標識臨時I/O請求116。可以使用尤其臨時選擇標準過濾I/O請求115,該臨時選擇標準可以包括但不限於:檔案名、檔案路徑、主儲存資源160、主儲存卷162、主識別符(例如,特定的識別符或物理儲存位址範圍)等等。在某些實施例中,過渡儲存模組122被配置成用於對被指向至特定主儲存卷162和/或主儲存資源160的所有I/O請求115進行過濾(例如,將被指向至特定主儲存卷162和/或主儲存資源160的所有I/O請求115標識為臨時I/O請求116)。可替代地或此外,過渡儲存模組122可以被配置成用於將通過VM 114A-N的特定虛擬磁碟和/或儲存卷接收的所有I/O請求115標識為臨時I/O請求116。在某些實施例中,VM 114A-N被配置成用於標識與臨時資料有關的I/O請求115,這可以包括以下各項中的一項或多項:包括帶有I/O請求115的元資料來指示I/O請求115與臨時資料有關(例如,標記該等請求115,使用IOCTL參數等等);將I/O請求115指向至指定的虛擬儲存資源、裝置、磁碟和/或卷;等等。I/O管理器120可以被配置成用於:a)監控被指向至 主儲存卷162和/或主儲存資源160的I/O請求115(藉由使用I/O監控器121),b)標識與VM 114A-N的臨時資料有關的I/O請求115(例如,對臨時I/O請求116進行過濾),以及c)將所標識的臨時I/O請求116重指向至過渡儲存模組122。過渡儲存模組122可以使用為相應的VM 114A-N供應的暫用儲存器138為臨時I/O請求116服務,這可以包括讀取臨時I/O請求116的資料和/或將其寫入至暫用儲存器138而不需存取主儲存卷162和/或主儲存資源160。I/O管理器120和/或過渡儲存模組122可以回應於使用暫用儲存器138(並且不需要存取主儲存卷162)為所標識的臨時I/O請求116服務來確認完成請求116。可以藉由使用I/O棧106確認臨時I/O請求116(例如,藉由發出確認消息,提供返回值等等)。因此,I/O管理器120和/或過渡儲存模組122可以藉由以下內容為I/O請求115服務並且確認其完成:a)標識被指向至主儲存卷162和/或主儲存資源160的與臨時資料有關的I/O請求115,b)將所標識的臨時I/O請求116重指向至過渡儲存模組122,c)使用暫用儲存器138為所標識的臨時I/O請求116服務,以及d)回應於讀取和/或寫入暫用儲存器138中的臨時資料來確認完成臨時I/O請求116(並且不需要存取臨時I/O請求116所被指向至的主儲存卷162和/或主儲存資源160)。
過渡儲存模組122可以被配置成用於對主機儲存資源136和/或暫用儲存器138上儲存的VM 114A-N的臨時資料139A-N進行管理。如圖1A中所示,暫用儲存器138包括VM 114A的臨時資料139A、VM 114B的臨時資料139B、VM 114N的臨時資料139N等等。過渡儲存模組122可以被配置成用於回應於移除條件和/或觸發(如VM重啟操作)而移除用於儲 存VM 114A-N的臨時資料139A-N的儲存資源、使其無效和/或恢復。如以上所揭露的,過渡儲存模組122可以使暫用儲存器138中所儲存的臨時資料139A-N與對應的VMID相關聯(藉由使用元資料135)。過渡儲存模組122可以被進一步配置成用於回應於一個或多個移除條件和/或觸發(在元資料135中)而標記和/或記錄可以移除的特定VM 114A-N的臨時資料139A-N。過渡儲存模組122可以例如回應於檢測到與特定VM 114A-N相關聯的重啟操作而記錄特定VM 114A-N的臨時資料139A-N在使用的儲存容量係可恢復的。相應地,與暫用儲存器138上所儲存的臨時資料139A-N相對應的元資料135可以:a)標識與臨時資料139A-N相關聯的VM 114A-N,b)將臨時資料139A-N映射到對應的主識別符(和/或過渡性識別符),和/或c)回應於和相應的VM 114A-N有關的移除條件和/或觸發而指示可以移除臨時資料139A-N。
I/O管理器120可以包括對VM 114A-N的運行狀態進行監控的VM監控器123。VM監控器123可以藉由以下各項中的一項或多項來監控VM狀態:存取虛擬化基礎設施110的API、模組、和/或庫;主動地詢問VM 114A-N;等等。VM監控器123可以被配置成用於確定尤其特定VM 114A-N當前是否正在在主機計算裝置101上運行、是否重啟和/或重新啟動、是否關機、是否被移除(例如,刪除)、是否被傳輸至另一個主機等等。
回應於確定VM 114A-N正在重啟、重新啟動、關機和/或被移除(例如,刪除),過渡儲存模組122可以移除與VM 114A-N相對應的臨時資料139A-N。移除VM 114A-N的臨時資料139A-N可以包括以下各項中的一項或多項:a)從主機儲存資源136刪除臨時資料139A-N,b)將包括臨 時資料139A-N的儲存資源解除配置,c)指示包括臨時資料139A-N的儲存資源係可恢復的(例如,將該資料取消映射和/或使該資料無效)等等。在某些實施例中,過渡儲存模組122可以向儲存模組130發出解除配置提示(例如,TRIM消息)以將儲存模組130配置成移除特定VM 114A-N的臨時資料139A-N。將臨時資料139A-N解除配置、取消映射和/或使其無效可以允許主機儲存資源136在垃圾回收和/或儲存恢復操作時移除臨時資料139A-N。供應器132可以被配置成用於為一個或多個其他VM 114A-N供應相應的儲存資源。
在某些實施例中,可以將VM 114A-N從主機計算裝置101傳輸至其他主機計算系統(未示出)。正在被傳輸的VM 114A-N可能需要存取暫用儲存器138中所儲存的相應的臨時資料139A-N。VM監控器123可以確定VM 114A-N正在從主機計算裝置101移出,並且作為回應,過渡儲存模組122可以:a)向新的主機計算裝置提供VM 114A-N的臨時資料139A-N,和/或b)將VM 114A-N的臨時資料139A-N傳輸至替代性儲存位置(例如,主儲存卷162和/或主儲存資源160)。2012年7月3日為維克拉姆.喬希(Vikram Joshi)等人提交的標題為“用於虛擬機器快取的系統、方法和設備(Systems,Methods,and Apparatus for a Virtual Machine Cache)”的美國專利序號13/541,659和2012年11月28日提交的標題為“用於快取傳輸的系統、方法和設備(Systems,Methods,and Apparatus for Cache Transfers)”的美國專利申請序號13/687,979中揭露了用於傳輸與VM有關的資料的系統和方法的進一步的實施例,該等申請中的每個申請藉由引用以其全部內容結合於此。
可以限制分配給暫用儲存器138中的VM 114A-N的儲存容量。VM 114A-N的臨時資料可能超過為其分配的儲存容量。作為回應,供應器132可以根據VM 114A-N的臨時資料要求調整VM 114A-N的儲存分配。由於臨時資料139A-N僅存在於暫用儲存器138中(資料139A-N沒有被直寫入和/或回寫入至主儲存資源160),過渡儲存模組122可以不移除(逐出)現有的臨時資料139A-N來釋放加容量。在某些實施例中,當用盡分配給VM 114A-N的儲存容量(並且附加容量不可供使用)時,過渡儲存模組122可以將接納附加臨時資料的請求重指向至主儲存卷162(例如,I/O請求116的原始目的地)。相應地,附加資料可以從暫用儲存器138溢出至主儲存卷162。
圖1B係包括包含I/O管理器120的主機計算裝置101的的系統100B的另一個實施例的方塊圖,該管理器被配置成用於管理與臨時資料有關的I/O請求。如圖1B中所示,VM 114A-N可以包括對應的虛擬磁碟170A-N(例如,對應的虛擬儲存資源、磁碟、卷等等)。VM 114A-N可以使用對應的虛擬磁碟170A-N執行I/O操作,該等操作可以包括讀取和/或寫入檔案172A-N。虛擬磁碟170A-N可以用於管理VM 114A-N的儲存物件,如檔案等等。在某些實施例中,虛擬磁碟170A-N可以對應於VM 114A-N的作業系統和/或檔案系統的對應的驅動器和/或卷(例如,Windows作業系統的“c:\”驅動器、UNIX和/或Linux檔案系統的根等等)。虛擬磁碟170A-N可以與對應的主儲存資源(多個)160(例如,儲存資源(多個)164和/或儲存卷166)相關聯。虛擬化基礎設施110可以藉由使用如以上所揭露的I/O棧106和/或儲存資源(多個)164為被指向至虛擬磁碟170A-N的I/O請求 服務。相應地,將資料寫入至特定檔案172A(例如,非臨時檔案174A)可以包括將資料寫入至儲存資源164和/或儲存卷166。如圖1B中所示,非臨時檔案174A的資料儲存在與虛擬磁碟170A相關聯的儲存卷166(和儲存資源(多個)164)內。VM 114B-N的虛擬磁碟170B-N可以與對應的儲存卷(多個)和/或儲存資源(多個)相關聯,但沒有被示出以避免使所示實施例的細節模糊。
在圖1B的實施例中,I/O管理器120包括被配置成用於呈現VM 114A-N內的虛擬磁碟171A-N的整合模組124。虛擬磁碟171A-N可以包括和/或對應於虛擬儲存資源,如卷、磁碟等等(例如,虛擬機器磁碟格式(VMDK)磁碟、虛擬儲存卷等等)。虛擬磁碟171A-N可以被指定用於與臨時資料一起使用,並且如此,可以被稱為指定的虛擬磁碟和/或指定的磁碟171A-N。整合模組124可以藉由使用虛擬化基礎設施110的API、庫、配置、和/或設置來呈現VM 114A-N內的指定的虛擬磁碟171A-N。指定的虛擬磁碟171A-N可以與主儲存資源160(如儲存資源165上的主儲存卷167)相關聯。在某些實施例中,與指定的虛擬磁碟171A-N相關聯的主儲存卷167包括虛擬化基礎設施110所管理的一次性儲存卷167(例如,一次性磁碟)。如在此所使用的,一次性儲存卷指丟棄相應的VM 114A-N的運行期間做出的變化的儲存卷。儘管指定的虛擬磁碟171A-N的主儲存卷167和/或主儲存資源165被顯示為與其他儲存卷(多個)166分開或/或與其無關,但本揭露在此方面不受限制,並且可以被適配成在與虛擬磁碟170A-N的儲存卷164相同的儲存資源(多個)集合上實現主儲存卷167。
VM 114A-N可以包括對應的檔案172A-N的集合,該等檔案 可以由VM 114A-N的尤其客戶機作業系統和/或檔案系統管理。檔案172A可以最初與虛擬磁碟170A相關聯(“基礎(base)”虛擬磁碟170A)。如在此所揭露的,某些檔案172A-N可以包括不需要在VM循環之間被保留的臨時資料(臨時檔案175A)。VM 114A可以使臨時檔案175A與指定的虛擬磁碟171A相關聯。其他非臨時檔案174A可以繼續與基礎虛擬磁碟171A相關聯。VM 114A可以向基礎虛擬磁碟170A發出與非臨時檔案174A有關的I/O請求115,並且可以向指定的虛擬磁碟171A發出與臨時檔案175A有關的I/O請求115。I/O監控器121可以被配置成用於將被發至指定的虛擬磁碟171A-N的I/O請求標識為臨時I/O請求116,如以上所揭露的,可以由過渡儲存模組122(和暫用儲存器138)為該等請求服務。可以藉由使用與虛擬磁碟170A-N相關聯的儲存卷(多個)166和/或資源(多個)164來為被發至基礎虛擬磁碟171A-N(和/或其他虛擬儲存資源)的請求服務。為被指向至指定的虛擬磁碟171A-N的臨時I/O請求服務可以包括讀取與臨時I/O請求116有關的資料和/或將其寫入至主機儲存資源136上的暫用儲存器138(例如,根據分配給相應的VM 114A-N的儲存容量)而不存取與指定的虛擬磁碟171A-N相關聯的主儲存資源(多個)160(例如,儲存資源165和/或儲存卷167)。相應地,I/O管理器120可以被配置成用於將與指定的虛擬磁碟171A-N相關聯的I/O請求115從相應的主儲存資源(多個)160(例如,儲存卷(多個)167和/或資源(多個)165)重指向至過渡儲存模組122。過渡儲存模組122可以回應於使用主機儲存資源136而不存取與指定的虛擬磁碟171A相關聯的主儲存資源160(例如,儲存卷167和/或儲存資源165)來為臨時I/O請求116服務而確認完成臨時I/O請求116。
與VM 114A的非臨時檔案174A有關的資料可以儲存在儲存卷166中,並且如此,與文件174A有關的I/O請求115會消耗主機計算裝置101的資源、來自/至主儲存資源(多個)160的頻寬(例如,網路頻寬)、消耗儲存資源(多個)164的IOP等等。如圖1B中所示,系統100B可以包括多個主機計算裝置101B-N,該等主機計算裝置可以託管多個VM。主儲存資源160可以由VM VM 114A-N和在其他主機計算裝置101B-N上運行的VM共享。因此,主儲存資源160(儲存資源164和/或165)的可用性可以限制可以在系統100B中運行的VM的數量(例如,是系統100B的瓶頸和/或限制因素)。然而,將I/O請求115從主儲存資源160重指向至主機計算裝置101的主機儲存資源(多個)136可以減少所共享的主儲存資源(多個)160上的負荷並且由此使系統100B能夠託管大量VM和/或提高VM的性能。
在圖1B的實施例中,VM 114A的臨時檔案175A的資料儲存在暫用儲存器138中,與和指定的虛擬磁碟171A相關聯的主儲存資源(多個)160(例如,儲存卷167和/或儲存資源(多個)167)形成對照。因此,與臨時檔案175A有關的I/O操作不會增加共享的主儲存資源160上的負荷。
如以上所揭露的,過渡儲存模組122可以記錄可以回應於移除觸發和/或條件(例如,VM重啟)將暫用儲存器138內所儲存的臨時檔案175A的資料從主機儲存資源136中移除。VM監控器123可以監控VM 114A的運行狀態以便檢測移除條件和/或觸發(例如,VM重啟、關機、刪除等等)。作為回應,過渡儲存模組122可以從暫用儲存器138中移除與檔案175A有關的臨時資料,這可以包括a)刪除臨時檔案175A的資料,b)記錄可以恢復用於儲存臨時檔案175A的資料的儲存資源,c)將臨時檔案175 的資料解除配置和/或將其取消映射等等。
在某些實施例中,系統100B包括重指向模組126,該重指向模組將VM 114A(和/或其他VM 114B-N)的某些檔案172A從原始基礎虛擬磁碟170A重指向至指定的虛擬磁碟171A。重指向模組126可以例如替換一個或多個檔案的用於使該一個或多個檔案、路徑、目錄和/或卷與指定的虛擬磁碟171A相關聯的檔案路徑(例如,將“c:\pagefile.sys”的引用重指向至“x:\pagefile.sys”,將“c:\tmp”重指向至“x:\tmp”等等)。重指向模組126可以包括被配置成用於作為一次性初始化操作的一部分使臨時檔案175A與指定的虛擬磁碟171A相關聯的腳本。可替代地或此外,當標識新的臨時檔案175A時,重指向模組126可以即時地(和/或在根據需要的基礎上)修改檔案關聯性。在一個實施例中,重指向模組126可以回應於在VM 114A-N上安裝新的應用和/或服務而指定新的臨時檔案175A。例如,重指向模組126可以回應於安裝和/或啟動VM 114A上的資料庫應用而使該資料庫應用的一個或多個緩衝檔案與指定的虛擬磁碟171A相關聯。
與指定的虛擬磁碟171A-N相關聯的對應的儲存卷167表示空的儲存卷(多個)(例如,空的格式化NTFS儲存卷)。相應地,當VM 114A-N初始啟動時,指定的虛擬磁碟171A-N將顯示為是空的(例如,讀取請求將不會返回任何資料,而不管資料是否被寫入至之前會話中的指定的虛擬磁碟171A)。被寫入至指定的虛擬磁碟171A-N的臨時資料可以儲存在暫用儲存器138中,而不被直寫入和/或回寫入至主儲存卷167。當相應的VM 114A-N重啟時,被寫入至暫用儲存器138的臨時資料可以被移除,並且如此,VM 114A-N每次循環時,指定的虛擬磁碟171A-N包括空的儲存卷。
整合模組124可以將虛擬磁碟171A-N配置成用於表示VM 114A-N內的固定大小的儲存裝置(例如,1TB磁碟)。虛擬磁碟171A-N所表示的固定大小可以與供應器132動態地供應給VM 114A-N的儲存容量不同。可以不給指定的虛擬磁碟171A-N供應什麼內容,這樣使得指定的虛擬磁碟171A-N表示比供應器132供應給相應的VM 114A-N的儲存容量更大的儲存容量。相應地,特定的VM 114A-N可以試圖寫入比分配給該特定VM 114A-N的儲存容量更多的臨時資料139A-N。作為回應,供應器132可以試圖增加供應給特定VM 114A-N的儲存容量。如果足夠的儲存容量不可用,則過渡儲存模組122可以將後續臨時I/O請求116重指向至主儲存卷167(藉由使用I/O棧106)。因此,主儲存卷167可以包括VM 114A-N的溢流臨時資料178A。如以上所揭露的,主儲存卷167可以包括虛擬化基礎設施110所管理的一次性磁碟。相應地,當VM 114A循環時,可以不保留VM 114A的溢流臨時資料178A,並且指定的虛擬磁碟171A會顯示為是空的格式化磁碟。
如以上所揭露的,VM 114A-N可以從主機計算裝置101傳輸至另一個主機計算裝置101B-N。VM監控器123可以確定有待傳輸特定VM 114A-N(和/或在被傳輸的過程中)。作為回應,I/O管理器120的傳輸模組127可以被配置成用於向目的地主機計算裝置101B-N提供VM 114A-N的臨時資料139A-N。在某些實施例中,傳輸模組127被配置成用於保留VM 114A-N的臨時資料139A-N直至目的地主機計算裝置101B-N請求該資料。可替代地或此外,傳輸模組127可以將臨時資料139A-N(例如,推送臨時資料139A-N)傳送至目的地主機計算裝置101B-N。2012年7月3日為維克 拉姆.喬希(Vikram Joshi)等人提交的標題為“用於虛擬機器快取的系統、方法和設備(Systems,Methods,and Apparatus for a Virtual Machine Cache)”的美國專利序號13/541,659和2012年11月28日提交的標題為“用於快取傳輸的系統、方法和設備(Systems,Methods,and Apparatus for Cache Transfers)”的美國專利申請序號13/687,979中揭露了用於傳輸VM資料的系統和方法的進一步的實施例,該等申請中的每個申請藉由引用以其全部內容結合於此。可替代地或此外,傳輸模組127可以被配置成用於移動VM 114A-N的臨時資料139A-N,該臨時資料正從主機計算裝置101被傳輸至主儲存資源160(例如,儲存卷167和/或儲存資源165)。移動VM 114A-N的臨時資料139A-N可以包括將臨時資料139A(包括臨時檔案175A的資料)寫入至主儲存卷167(作為被傳輸的臨時資料179A)。傳輸的臨時資料179A可以包括VM 114A的識別符(例如,VMID)。目的地主機計算裝置101B可以被配置成用於存取從主儲存卷167和/或從主儲存資源165傳輸的臨時資料。
傳輸模組127可以被進一步配置成用於存取從一個或多個其他主機計算裝置101B-N傳輸至主機計算裝置101的VM 114A-N的臨時資料。I/O管理器120可以回應於接收到VM 114A-N的臨時I/O請求116而確定VM 114A-N已經被傳輸至主機計算裝置101。可替代地或此外,VM監控器123可以被配置成用於檢測VM傳輸事件,包括檢測正被傳輸至主機計算裝置101的VM 114A-N。回應於檢測到新的VM 114A-N,供應器132可以為暫用儲存器138中的VM 114A-N分配儲存資源。傳輸模組127可以被配置成用於a)從原始主機計算裝置101B-N存取VM 114A-N的臨時資料, b)存取主儲存卷167和/或主儲存資源(多個)165中的VM 114A-N的臨時資料等等。傳輸模組127可以被進一步配置成用於用所存取的臨時資料填充被分配給VM 114A-N的臨時儲存139A-N。可替代地或此外,過渡儲存模組122可以被配置成用於將與進入的VM 114A-N有關的臨時I/O請求重指向至與VM 114A-N的指定的虛擬磁碟171A-N相關聯的主儲存卷165和/或主儲存資源(多個)165。
如以上所揭露的,與指定的虛擬磁碟171A相關聯的主儲存卷167可以包括由虛擬化基礎設施110管理的一次性磁碟,並且如此,可以回應於VM重啟(和/或其他移除觸發和/或條件)而將溢流臨時資料178A和/或所傳輸的臨時資料179A從主儲存卷167中移除。
圖1C描繪了包括I/O管理器120的系統100C的另一個實施例,該管理器被配置成用於對在主機計算裝置101上運行的VM 114A-N的I/O請求進行管理。在圖1C的實施例中,整合模組124包括虛擬磁碟機129(例如,VLUN驅動器等等)。虛擬磁碟機129可以被配置成用於接收被下發至指定的虛擬磁碟171A-N的I/O請求116。(可以藉由使用I/O棧106來為下發至VM 114A-N的其他虛擬磁碟(如虛擬磁碟170A-N)的I/O請求115服務)。虛擬磁碟機129可以接收被下發至指定的虛擬磁碟171A-N的臨時I/O請求116,如在此所揭露的,可以藉由使用過渡儲存模組122(和暫用儲存器138)為該等請求服務。儘管指定的虛擬磁碟171A-N被顯示為與主儲存資源(儲存卷167和/或儲存資源165)相關聯,但本揭露在此方面不受限制,並且可以被適配成用於直接為臨時I/O請求116服務,而不使指定的虛擬磁碟171A-N與主儲存卷(多個)和/或資源相關聯。2014年2月28日為 潔琳哲洋(Jerene Zhe Yang)等人提交的標題為“用於儲存虛擬化的系統和方法(Systems and Methods for Storage Virtualization)”的美國臨時專利申請序號61/946,708、2013年3月14日為拉姆.喬希(Vikram Joshi)等人提交的標題為“用於自我調整快取持久化的系統、方法和介面(Systems,Methods,and Interfaces for Adaptive Cache Persistence)”的美國專利申請序號13/829,358、2013年3月14日為拉姆.喬希(Vikram Joshi)等人提交的標題為“用於自我調整持久化的系統、方法和介面(Systems,Methods,and Interfaces for Adaptive Cache Persistence)”的美國專利申請序號13/829,835、以及2012年8月31日為拉姆.喬希(Vikram Joshi)等人提交的“用於自我調整持久化的系統、方法和介面(Systems,Methods and Interfaces for Adaptive Persistence)”美國臨時專利申請序號61/696,126中揭露了用於寫入向量化儲存的系統和方法的進一步的實施例。
圖1D描繪了包括I/O管理器120的系統100D的另一個實施例。圖1D的實施例可以包括快取管理系統(CMS)180,該快取管理系統被配置成用於藉由使用I/O元資料135(如快取標記184,例如,像以下圖2中所示的資料標記184)管理VM快取資料。CMS 180可以被配置成用於快取在主機計算裝置101上運行的VM 114A-N的資料。CMS 180管理為對應的VM 114A-N管理資料標記185A-N的單獨集合。資料標記185A-N可以對應於被分配給VM 114A-N的儲存資源。CMS 180可以被進一步配置成用於管理資料標記集合185X和/或185Y,該等資料標記與被供應給VM I/O管理器120的其他服務和/或模組(如過渡儲存模組122)(例如,用於用作暫用儲存器138)的儲存資源相對應。
圖2描繪了I/O元資料135的實施例,包括資料標記184的集合185的實施例。資料標記184可以被配置成用於表示主機儲存資源136中的儲存位置(例如,頁、塊、磁區等等)。資料標記184可以用於管理和/或引用臨時資料,如在此所揭露的。可替代地或此外,資料標記184可以用於管理主機儲存資源136上快取的VM 114A-N的資料。相應地,資料標記184可以指臨時資料標記和/或快取資料標記。在某些實施例中,資料標記184可以用於如在此進一步詳細揭露的共享檔案資料。
CMS 180可以根據由供應器132供應給VM 114A-N的儲存資源來將資料標記184分配給VM 114A-N。CMS 180可以被配置成用於回應於VM儲存分配的變化而添加/移除資料標記184A-N。CMS 180可以被配置成用於回應於供應器132增加分配給VM 114A的儲存(如在此進一步詳細揭露的或者臨時儲存和/或快取儲存)而向VM 114A增加資料標記184A。CMS 180可以回應於供應器132減少對VM 114A的儲存分配而移除資料標記184A。
CMS 180可以使用資料標記184表示儲存位置(多個),這樣使得每個資料標記184對應於主機儲存資源136的對應的儲存單元。相應地,資料標記184可以被配置成用於使與後備儲存器(主儲存資源160)相對應的資料與暫用儲存器138中快取的資料相關聯。快取標記可以包括一個或多個欄位,包括但不限於主儲存識別符(PRID)欄位、主機儲存識別符(HSID)欄位、狀態欄位、下一欄位等。PRID欄位可以包括被配置成用於使資料標記184關聯於如以上所揭露的儲存資源(例如,主儲存卷、資源等等)的資訊。HSID欄位可以引用主機儲存資源136中的儲存位置。在 某些實施例中,資料標記184可以對應於連續虛擬位址集合。相應地,可以基於記憶體資源103中的資料標記184的偏移和/或位置來確定特定資料標記184的HSID。集合185中的第一資料標記184(儲存在記憶體偏移0)可以對應於虛擬位址0,集合185中的第二資料標記184可以對應於虛擬位址1,以此類推。在這種實施例中,可以從資料標記184資料結構中省略HSID欄位。
狀態欄位可以包括與資料標記184的當前狀態有關的資訊,如當前正在用於引用主儲存器的資料(例如,臨時資料)的資料標記184是否是髒的(dirty)等等。狀態欄位可以進一步包括與資料標記184的存取和/或使用特性有關的資訊(例如,讀取存取特性、寫入存取特性、最後存取時間、存取頻率等等),該資訊可以用於尤其標識用於從暫用儲存器138逐出的資料。狀態欄位可以被進一步配置成用於標識最初將資料標記184的資料接納進入暫用儲存器138內的VM 114A-N,這可以用於預防寫入前讀取條件(例如,防止VM 114A讀取另一個VM 114B-N接納進入快取內的資料)。狀態欄位可以被進一步配置成用於指示資料標記184的持久化級別,這可以包括但不限於資料標記184的快取模式,如直寫入、回寫入、永不寫入(可丟棄的)、臨時、移除觸發條件等等。下一欄位可以包括至集合185的下一資料標記184的連結和/或對其的引用。在資料標記184以預先確定的方式(連續儲存)被安排在記憶體資源103內的實施例中,可以省略下一欄位(例如,下一欄位可以源自與當前標記184的偏移)。2011年2月15日提交的標題為“用於管理I/O操作的系統和方法(Systems and Methods for Managing I/O Operations)”的美國專利申請序號13/028,149中揭 露了快取管理系統和/或相應的快取元資料的進一步的實施例,該申請藉由引用以其全部內容結合於此。
在某些實施例中,資料標記184可以藉由使用虛擬位址(例如,間接位址)來引用主機儲存資源136。如在此所使用的,虛擬位址指CMS 180與主機儲存資源136之間的中間映射層的識別符。CMS 180和/或供應器132可以平衡中間映射層以分配連續的虛擬位址範圍和/或廣度,而不管相應的主機儲存資源136的位址和/或佈置如何。轉換模組134可以被配置成用於將虛擬識別符(例如,過渡性識別符)映射到主機儲存資源136上的虛擬位址和/或特定儲存位置。
圖3描繪了與資料標記184和主機儲存資源136之間的轉換層相對應的I/O元資料135的進一步的實施例。主機儲存資源136可以包括多個快取儲存單元304,該等單元可以對應於頁、塊、磁區、儲存分區、擦除塊、邏輯頁(例如,兩個或更多個頁)。
如圖3中所示,供應器132可以被配置成用於將主機儲存資源136的儲存容量分區成多個塊302。如在此所使用的,“塊”指任意大小的儲存容量部分。塊302可以包括儲存單元304的集合、範圍和/或廣度。在特定實施例中,每個塊302對應於256MB(百萬位元組)的儲存容量,這樣使得具有1TB(太位元組)的容量的主機儲存資源136被劃分為4,192個塊302。如以上所揭露的,塊302可以包括多個能夠持久儲存資料的儲存單元304。如在此所揭露的,轉換模組134可以將塊302映射到對應的虛擬位址空間(多個)311A-N內的虛擬位址(虛擬塊位址312)。
供應器132可以被配置成用於分配塊302以便由CMS 180 用於快取VM 114A-N的資料(和/或以便用作暫用儲存器138來儲存VM 114A-N的臨時資料)。供應器132可以被配置成用於回應於主機計算裝置101、VM 114A-N等等上的I/O負荷來動態地修改分配。分配給特定VM 114A-N的塊302的數量可以決定CMS 180可用來快取VM 114A-N的資料的快取儲存容量。類似地,被分配作為臨時儲存器的塊302的數量可以決定VM 114A-N可用的臨時儲存容量。儲存資源(塊302)可以被分配在主機儲存資源136的儲存位址空間301內。可以根據可用性、磨損特性、可靠性特性等等分配塊302。相應地,分配給特定VM 114A-N的塊302在儲存位址空間301中是呈片段的(例如,塊302可以對應於儲存位址空間301的不連續和/或不連貫的區域)。在圖3的實施例中,供應器132已經將塊VM_A[0]-VM_A[P]分配給VM 114A;已經將塊VM_N[0]-VM_N[Q]分配給VM 114N等等。圖3中所描繪的分配可以對應於快取和/或臨時資料儲存器。
轉換模組134可以被配置成用於在資料標記184的虛擬位址314與主機儲存資源136的儲存位址空間301內的儲存單元304(和/或虛擬塊位址312和塊302)之間提供轉換層。轉換模組134可以允許根據虛擬位址314的連續範圍和/或廣度管理儲存資源。如圖3中所示,供應器132可以將快取資源配置給對應的連續虛擬位址空間311A-N(例如,虛擬塊位址312的範圍)內的VM 114A-N。本揭露在此方面不受限制,然而,並且可以被適配成用於以其他方式管理虛擬位址,如將連續的虛擬位址範圍分配給單個邏輯和/或虛擬位址空間內的VM 114A-N。轉換模組134被配置成用於將虛擬塊312內的虛擬位址映射到儲存位址空間301的塊302內的對應的快取儲存單元304。相應地,供應給VM 114A-N的儲存資源(和/或I/O管理 器120的其他服務)可以被表示為連續的虛擬位址314範圍,而不管儲存位址空間301內的基礎塊302的安排如何。如圖3中所示,供應給VM 114A的虛擬塊(VM_A[0]-VM_A[P])對應於虛擬位址空間311A內的連續虛擬位址範圍,而相應塊302不連續地分佈貫穿儲存位址空間301。
在某些實施例中,CMS 180被配置成用於快取VM 114A-N的資料。CMS 180可以被配置成用於使用資料標記184映射所快取的資料的識別符(I/O位址)和/或使其與暫用儲存器138中的資料的儲存位置相關聯。可替代地或此外,過渡儲存模組122可以使用資料標記184管理暫用儲存器138中所儲存的VM 114A-N的臨時資料139A-N。
轉換模組134被配置成用於轉換使資料標記184與主機儲存資源136的位址空間內的對應的儲存單元304相關聯的虛擬位址。在某些實施例中,資料標記184被以線性方式組織在計算系統100的RAM或其他記憶體資源103內,這可以允許從資料標記184的記憶體位置和/或偏移中導出資料標記184的虛擬位址(例如,基於每個資料標記184與虛擬位址和/或快取儲存單元304具有1:1線性對應關係的假設)。可替代地或此外,資料標記184可以被組織成另一個資料結構,如散清單、樹等等。每個資料標記184可以與相應的快取儲存單元304相關聯。
返回參照圖1D,如以上所揭露的,I/O管理器120可以被配置成用於為與臨時資料有關的I/O請求115(例如,臨時I/O請求116)服務。I/O管理器120可以被進一步配置用於藉由使用CMS 180為與非臨時資料有關的I/O請求115服務。快取VM資料可以包括藉由使用如以上所揭露的I/O監控器121尤其監控I/O棧106來標識VM 114A-N的I/O請求115。I/O管理 器120可以將與臨時資料有關的I/O請求115(例如,臨時I/O請求116)重指向至如以上所揭露的過渡儲存模組122。其他I/O請求115可以被指向至CMS 180,該CMS可以藉由使用快取儲存器188為該等I/O請求115請求服務。快取儲存器188可以包括分配給如以上所揭露的(主機儲存資源136內的)VM 114A-N的對應的儲存容量區域。
圖4係描繪CMS 180的一實施例的方塊圖。CMS 180可以包括一個或多個模組,包括快取策略模組401、標記轉換模組402、快取標記模組404、時脈掃描模組406、竊用候選者模組408、快取頁管理模組410、有效單元映射模組412、頁大小管理模組414、介面模組416、快取標記保留模組418、以及快取標記快照模組419。
快取策略模組401可以被配置成用於基於各快取接納標準和/或策略選擇被接納進入快取儲存器188內的資料。CMS 180可以進一步包括快取執行模組436,該快取執行模組可以被配置成用於在主機儲存資源136中執行儲存操作(藉由使用儲存模組130),包括但不限於:將資料寫入至快取儲存器188,修改快取儲存器188中所儲存的資料,從快取儲存器188中讀取資料,將資料降級至主儲存資源160等等。快取執行模組436可以被配置成用於根據一種或多種快取模式和/或配置管理快取資料;快取執行模組436可以被配置成用於以直寫入快取模式快取資料,這可以包括藉由將資料寫入到主儲存資源160和快取儲存器188來為寫入I/O請求115服務。在直寫入式快取模式下,CMS 180可以直到資料被寫入至主儲存資源160才確認完成寫入I/O請求115。
標記轉換模組402可以被配置成用於藉由使用資料標記184 使I/O請求115的識別符(例如,VM 114A-N的主識別符,如與主儲存資源160相對應的位址)與虛擬位址相關。資料標記184的虛擬位址可以藉由使用如以上所揭露的轉換模組134被映射到快取塊302和/或儲存單元304。快取標記管理器404可以被配置成用於管理分配給VM 114A-N(和/或其他服務)的快取標記185A-N的集合,這可以包括維護虛擬機器識別符(例如,邏輯識別符、位址、主儲存位址)與快取儲存器188中的資料之間的關聯,並且保持快取元資料,如存取特性、持久化級別、快取模式等等。
時脈掃描模組406可以被配置成用於使用尤其一個或多個時脈指標掃描計時器確定和/或保持快取老化元資料。竊用候選者模組408可以被配置成用於基於尤其時脈掃描元資料或其他快取策略標識係用於從快取儲存器188逐出的候選者的快取資料和/或快取標記。在某些實施例中,竊用候選者模組408可以被配置成用於對該等資料標記184的持久化級別元資料預測快取標記逐出。例如,竊用候選者模組408可以不選擇儲存在一次性快取儲存器內用於逐出的資料標記184。
快取頁管理模組410可以被配置成用於管理快取資源(例如,快取塊302和/或儲存單元304)和相關操作。有效單元映射模組412可以被配置成用於標識快取儲存199和/或主儲存資源160中所儲存的有效資料。頁大小管理模組414可以被配置成用於執行各種頁大小的分析和調整操作以增強快取性能。介面模組416可以被配置成用於提供一個或多個介面以允許其他元件、裝置、和/或系統與CMS 180介面連接。
快取標記保留模組418可以被配置成用於回應於將VM 114A-N傳輸至不同的主機(例如,不同的計算裝置101)而保留VM 114A-N 的資料標記185A-N的集合。如在此進一步詳細揭露的,與所保留的資料標記185A-N的集合相對應的資料可以從快取儲存器188、主儲存資源160、和/或其他資源被傳輸至目的地主機。當在目的地主機請求資料標記184的快取資料時,可以傳輸快取資料。可替代地或此外,可以在批量傳輸操作中預獲取和/或傳輸快取資料,該操作可以包括獨立於對快取資料的請求而傳輸快取資料。在某些實施例中,可以基於快取傳輸策略選擇性地預獲取快取資料,該快取傳輸策略可以尤其基於時脈掃描模組406和/或竊用候選者模組408和/或其他快取策略元資料(例如,熱度、冷度、最近最少使用等等)的快取老化元資料。快取標記快照模組419可以被配置成用於保持特定VM 114A-N的快取的工作集的一個或多個“快照(snapshot)”(例如,資料標記集合185A-N)。如在此所使用的,快照指在特定時間的資料標記集合185A-N的狀態。快照模組419可以被配置成用於將快照儲存在持久化儲存介質上和/或將所儲存的快照從持久化儲存器載入到CMS 180內。
CMS 180可以被配置成用於快取VM 114A-N的資料。參照圖1D,快取VM資料可以包括藉由尤其監控I/O棧106來標識VM 114A-N的I/O請求115並且藉由使用快取儲存器188為I/O請求115服務。CMS 180可以被配置成用於藉由以下內容為來自特定VM 114A-N(例如,VM 114A)的讀取I/O請求115服務:確定與I/O請求115相對應的資料是否已經被接納進入快取中,並且如果被接納,則存取快取儲存器188內所儲存的所請求的資料。CMS 180可以藉由使用被供應給VM 114A的資料標記集合185A來確定在快取儲存器188中是否可獲得所請求的資料。讀取I/O請求115可以包括與所請求的資料(如以上所揭露的PRID)相對應的識別符。主識別 符可以包括但不限於:名稱、位址、識別符、邏輯位址、邏輯塊位址(LBA)、後端識別符、LUN位址、vLUN位址、物理儲存位址、磁碟位址(例如,磁柱、扇區、或頭位址)、卷地址、SCSI地址等等。CMS 180可以確定VM 114A的資料標記集合185A是否包括與讀取I/O請求115相對應的資料標記184,並且如果包括,則可以確定在快取儲存器188中可獲得所請求的資料。CMS 180可以被進一步配置成用於使用與所標識的資料標記184相關聯的虛擬快取位址存取所請求的資料。
如果資料標記集合185A不包括與I/O請求115資料相對應的快取標記,則CMS 180可以確定還沒有將資料接納進入快取儲存器188內(發生缺失)。回應於快取缺失,CMS 180可以藉由快取策略模組401確定是否將資料接納進快取儲存器188內。可以根據各接納策略和/或因素預測接納進入快取儲存器188內,如資料標記184在分配給VM 114A的集合185A中的可獲得性,集合185A中的其他資料標記184的存取特性(例如,竊用和/或逐出候選者)等等。CMS 180可以藉由以下內容來接納資料:將資料標記184指派給資料(例如,將資料標記(多個)184的後備儲存器識別符設置成讀取I/O請求115的識別符),存取主儲存資源160中的資料,並且將該資料寫入至與快取標記(多個)184相對應的虛擬快取位址(多個)處的快取儲存器188。
CMS 180可以被進一步配置成用於為寫入I/O請求115服務。為特定VM 114A-N(例如,VM 114A)的寫入I/O請求115服務可以包括確定寫入I/O請求115是否與已經被接納進入快取儲存器188的識別符有關(例如,藉由標識與如以上所揭露的資料標記集合185A中的寫入I/O請 求115相對應的資料標記184)。回應於確定寫入I/O請求115與已經被接納進入快取儲存器188內的識別符相對應(寫入缺失),CMS 180可以確定是否將資料接納進如以上所揭露的快取儲存器188內。為寫入I/O請求115服務可以包括藉由使用快取執行模組436將I/O請求115的資料寫入至快取儲存器188。為寫入I/O請求115服務可以進一步包括根據指派給資料的持久化級別和/或快取模式將該資料寫入至主儲存資源160。
圖5係包括I/O管理器120的系統500的另一個實施例之方塊圖,該管理器被配置成用於對在主機計算裝置101上運行的VM的I/O操作進行管理。圖5的實施例的I/O管理器120可以包括檔案共享模組(FSM)522。FSM 522可以被配置成用於管理VM 114A-N中的兩個或更多個VM共有的檔案資料,這可以包括尤其向VM 114A-N中的兩個或更多個VM提供對主機儲存器136中所儲存的檔案資料之存取。
在某些實施例中,VM 114A-N可以共享共有的I/O特性,這會對主機計算裝置101的I/O基礎設施、主儲存資源160和/或網路107造成壓力。VM 114A-N可以共享相似的資料集(例如,作業系統、應用、使用者簡介資訊等等),並且可以被配置成用於在相似的時間(例如,在啟動、通電期間、在登錄時等等)存取此共有資料。結果“啟動風暴”會使主儲存資源160、主機計算裝置101的I/O基礎設施和/或網路107承受不了,這會顯著降低總體系統性能。回應於這VM 114A-N載入特定應用、存取共享資料、存取使用者簡介資訊、執行登錄過程等等,會出現相似檔案存取風暴。而且,在某些實施例中,I/O管理器120包括CMS 180,其可以將相似的資料集接納進入快取儲存器188,如在此所揭露的,用重複資料填充快取 儲存器188。圖5中沒有描繪CMS 180和快取儲存器188以避免使所示實施例的細節模糊。
FSM 522管理VM 114A-N共有的檔案資料。供應器132可以被配置成用於為FSM 522分配資源以便用作尤其文件共享儲存器538。供應器132可以被配置成用於分配快取儲存容量(例如,塊302)以便用作如在此所揭露的檔案共享儲存器538。可以在帶有暫用儲存器138的主機儲存資源136內和/或在單獨的儲存資源內供應檔案共享儲存器538。轉換模組134可以被配置成用於使用如在此所揭露的尤其I/O元資料135(例如,資料標記184)將分配給檔案共享儲存器538的儲存資源的虛擬位址映射至資料識別符。
如圖5中所描繪的,主機計算裝置101可以被配置成用於託管多個VM 114A-N。VM 114A-N可以包括VM檔案共享模組(VM FSM)550,該模組可以包括VM I/O監控器521,該監控器被配置成用於監控對應的VM 114A-N內的(對應的VM 114A-N的儲存棧506內的)VM I/O請求515。如在此所揭露的,VM I/O監控器521可以包括I/O驅動器、過濾器驅動器等等。VM I/O監控器521可以包括多級和/或檔案級I/O監控器,該監控器被配置成用於監控儲存棧506的各個層513A-N處的I/O請求515。VM FMS 550可以被配置成用於保持與和層(多個)513A-N有關的I/O請求515有關的層特定元資料。2011年11月2日提交的標題為“用於檔案級快取的系統和方法(Systems and Methods for a File-Level Cache)”的喬希.維克拉姆(Joshi Vikram)的美國專利申請號13/287,998中揭露了檔案級和多級快取的進一步的實施例。
VM FSM 550可以被配置成用於標識適合於接納進入檔案共享儲存器538(由FSM 522管理)內的資料。適合於接納進入檔案共享儲存器538內的資料可以包括在多個VM 114A-N中使用的並且“穩定的(stable)”(例如,資料很少被更新和/或被修改)檔案資料。VM FSM 550可以被配置成用於藉由使用VM I/O監控器521和/或檔案共享策略模組553監控VM 114A-N的儲存棧506內的I/O請求515來標識適合於接納的資料。VM I/O監控器521可以包括但不限於:驅動器、儲存器驅動器、過濾器驅動器等等。在某些實施例中,VM FSM 550可以在儲存棧506的檔案層513A運行,並且如此可以被配置成用於監控與VM 114A內的文件操作有關的I/O請求515。可替代地和/或此外,VM I/O監控器521可以監控儲存棧506的其他層513B-N(卷層、磁碟層、SCSI層等等)內的I/O請求515。
檔案共享策略模組553可以被配置成用於基於尤其檔案共享接納策略565來標識適合於接納進入檔案共享儲存器538內的檔案。檔案共享接納策略565可以包括檔案選擇標準,該標準可以包括但不限於:檔案名匹配、副檔名匹配、卷匹配、磁碟匹配、包含清單、排除列表等等。該檔案選擇標準可以包括動態的和/或學習到的標準。例如,在某些實施例中,檔案共享策略模組553可以被配置成用於監控對應的VM 114A-N內的檔案I/O存取模式(由各儲存用戶端503存取)以動態地標識適合於接納進入檔案共享儲存器538內的檔案。例如,檔案共享策略模組553可以被配置成用於監控寫入操作和讀取操作中的一項或多項操作的檔案存取頻率。可以選擇經歷多項讀取操作(和很少(如果有的話)寫入操作)的檔案用於接納進入檔案共享儲存器538。在某些實施例中,檔案共享策略模組553可 以回應於I/O請求515、AIP調用和/或其他消息選擇用於接納的檔案。儲存用戶端503所發出的I/O請求可以例如包括指示相應的資料應被接納進入檔案共享儲存器538內的標記和/或其他元資料。可替代地或此外,VM FSM 550可以被配置成用於通過配置介面540接收接納配置和/或提示。配置介面540可以被配置成用於藉由以下各項中的一項或多項接收檔案共享接納策略資訊:專用API、塊裝置介面調用、I/O請求、預建議(fadvise)調用、IOCTL調用、預分配(fallocate)調用、參數、標誌等等。
檔案共享策略模組553可以被配置成用於防止資料被冗餘地快取在多個快取層,這可以包括防止已經被接納進入檔案共享儲存器538內的資料被接納進入快取儲存器(例如,快取儲存器188)中。可以從由如在此所揭露的CMS 180管理的快取儲存器188中省略被接納進入檔案共享儲存器538內的資料。
圖6描繪了包括檔案選擇標準的檔案共享接納策略565的一個實施例。檔案共享接納策略565可以包括模式匹配和/或萬用字元標準。如圖6中所示,具有“.sys”副檔名的檔案被標識為適合於接納進入檔案共享儲存器538,並且應排除具有“.dat”副檔名的文件。檔案共享接納策略565可以基於合格的檔案名的卷和/或部分來標識合適的檔案。如圖6中所示,“windows\system32”或“\windows\system”路徑下的檔案適合於重複刪除,而排除“working_files”目錄中的檔案。檔案共享接納策略565可以標識特定檔案(例如,corporate_template.doc)、檔案模式、卷、驅動器等等。在某些實施例中,檔案共享接納策略565可以基於應用級知識(例如,基於與I/O請求相關聯的應用和/或儲存用戶端503)標識適合於接納進入檔案 共享儲存器538內的檔案。在一個實施例中,某些應用可以用唯讀模式存取檔案資料。檔案共享接納策略565可以指示這種應用所存取的檔案適合於接納進入檔案共享儲存器538(例如,“應用X”所存取的文件係可被接納的)。檔案共享接納策略565可以被進一步配置成用於藉由使用檔案屬性指定用於接納進入檔案共享儲存器538內(或從其排除)的文件。如圖6中所示,包括特定屬性值“X”的檔案會適合於用於接納(例如,唯讀標誌)。儘管在此展示了檔案共享接納策略565的特定示例,但本揭露在此方面不受限制並且可以結合任何合適的檔案選擇標準,包括但不限於:模式匹配、規則運算式、專家系統、I/O存取模式、預建議資訊、預分配資訊、I/O控制(IOCTL)資訊等。
返回參照圖5,VM FSM 550可以被配置成用於a)監控VM I/O請求515(藉由使用VM I/O監控器521)和b)使用尤其檔案共享策略模組553標識與適合於檔案共享儲存器538的文件有關的I/O請求516。VM FSM 550可以被進一步配置成用於藉由使用在虛擬化基礎設施110(管理程式)內運行的FSM 522為所標識的I/O請求516服務。在某些實施例中,VM FSM 550被配置成用於藉由使用VLUN驅動器536藉由使用VM 114A中所呈現的VLUN磁碟535將所標識的I/O請求516重指向至FSM 522。可替代地或此外,VM FSM 550可以被配置成用於標記所標識的I/O請求516以使得能夠在儲存棧506中由VM I/O監控器521標識I/O請求516。VM FSM 550可以被配置成用於提供與所標識的I/O請求516的附加元資料。在某些實施例中,VM FSM 550包括帶有所標識的I/O請求516的資料識別符(DID)556,該資料識別符可以使FSM 522能夠a)確定檔案共享儲存器538中是否存在 相應的檔案資料和/或b)存取與該檔案資料相對應的檔案共享標記512。
VM FSM 550可以被配置成用於保持與已經被接納進入文件共享儲存器538內的資料有關的檔案共享元資料。該元資料可以包括檔案共享字典564。檔案共享字典564可以包括被配置成用於使特定VM 114A的唯一文件識別符(UFID)555與上下文自由DID 556相關聯的索引。UFID 555可以標識關於特定VM 114A-N的檔案(例如,唯一地標識VM 114A的檔案系統和/或作業系統的命名空間內的檔案)。檔案的UFID 555可以包括檔案名與卷識別符(VID)的組合,卷識別符可以包括卷GUID、卷名等等(例如,“\\VID:\windows\system32\kernel32.dll”)。可以藉由使用上下文獨立的識別符進一步標識檔案。如在此所使用的,上下文獨立或上下文自由的識別符指獨立於特定VM 114A-N的命名空間的識別符。上下文獨立和/或上下文自由的識別符可以用於允許不同的VM 114A-N共享對檔案共享儲存器538內的資料的存取。在某些實施例中,上下文獨立的識別符包括DID 556,其可以從檔案的內容(例如,檔案資料)中導出。DID 556可以包括但不限於:散列值(例如,SHA-1、MD5等等)、校檢和、循環冗餘校驗(CRC)值、CRC32、簽章等等。相應地,上下文獨立的識別符和/或DID可以包括和/或被稱為檔案簽章。生成檔案資料的DID 556可以包括讀取該檔案資料的至少一部分(例如,檔案的內容)和使用該檔案資料來生成DID 556(例如,藉由對該檔案資料進行散列,給該檔案資料簽章,處理該檔案資料等等)。檔案的DID 556可以是VM 114A-N和/或檔案共享儲存器538共有的。相應地,檔案的DID 556可以包括該檔案的上下文自由和/或通用識別符,FSM 522和/或任何主機計算裝置101的任何VM 114A-N可以使用該識別符 引用該檔案資料。
FSM 522可以被配置成用於回應於來自VM 114A-N的接納請求(多個)而將檔案資料接納進入檔案共享儲存器538內。FSM 522可以被配置成用於藉由使用檔案共享標記集合512(或檔案目錄)標引文件資料。如在此進一步詳細揭露的,檔案共享標記512可以被配置成用於藉由使用上下文獨立的識別符(如DID 556)來將檔案共享儲存器538中所儲存的檔案資料檔案資料映射到其上和/或對該檔案資料進行標引,這可以允許具有不同檔案命名慣例和/或檔案路徑的不同VM 114A-N存取檔案共享儲存器538內的資料。例如,VM 114A上的“kernel32.dll”的UFID可以由“\\VID_1\windows\system32\kernel32.dll”引用,該UFID可以與另一個VM 114B-N上的UFID不同(例如,VN 114B上的“kernel32.dll”的UFID可以是“\\VID_2:\windows_install\system32\kernell32.dll”)。然而,由於DID 556係從檔案資料中導出的,與檔案名和/或路徑形成對照,VM 114A-N所使用的引用“kernel32.dll”的DID 556可以相同。
如以上所揭露的,對應的VM FSM 550在對應的VM 114A-N內所保持的檔案共享字典564可以被配置成用於使已經被接納進入檔案共享儲存器538內的檔案的UFID 555與對應的DID 556相關聯。可以使用任何合適的資料結構(包括但不限於:樹、散清單、鏈表、查閱資料表、內容可定址映射(CAM)等等)來實現檔案共享字典564。圖7描繪了檔案共享字典564的一實施例。圖7的檔案共享字典564使虛擬機器特定UFID 555與相應的內容獨立的DID 556(以Hex格式表示)相關聯。如以上所揭露的,UFID 555可以對應於特定VM 114A-N的UFID(例如,完全合格的檔案名), 並且DID 556可以包括檔案的上下文獨立的識別符,該識別符可以從檔案的內容中導出。VM FSM 550可以被配置成用於藉由使用UFID 555來標識已經被接納進入檔案共享儲存器538內的檔案並且藉由使用相應的上下文獨立的DID 556引用資料。
參照圖5,FSM 522可以為檔案共享儲存器538的內容進行以下管理:將VM 114A-N的檔案資料接納進入檔案共享儲存器538並且向VM 114A-N中的兩個或更多個VM提供對所所儲存的檔案資料的存取。供應器132可以給FSM 522分配儲存容量(例如,塊302和/或312)以便用於儲存VM 114A-N的檔案資料。FSM 522可以使用尤其如以上所揭露的資料標記184和/或檔案共享標記512來管理分配給其的儲存容量。FSM 522可以使用檔案共享標記512來將被接納進入檔案共享儲存器538內的檔案資料的上下文獨立的識別符(多個)(例如,在此揭露的DID 556)映射到檔案共享儲存器538中的相應檔案資料的儲存位置。檔案共享標記512可以對應於供應器132分配給FSM 522的容量(例如,每個檔案共享標記512可以對應於對應的快取塊302和/或312)。FSM 522可以回應於如在此所揭露的供應器132的分配操作而動態地添加和/或移除檔案共享標記512。檔案共享標記512可以保持在任何合適的資料結構中,包括但不限於連續記憶體、表格、樹等等。圖8描繪了檔案共享標記512的集合的一實施例。如圖8中所示,檔案共享標記512可以被配置成用於使被接納進入檔案共享儲存器538內的檔案和/或檔案資料的DID 556與主機儲存資源136(例如,檔案共享儲存器538)內的檔案資料的對應的儲存位置857相關聯。儲存位置857可以包括對藉由如在此所揭露的轉換模組134被轉換成物理位址的虛擬位址的引 用。可替代地,儲存位置857可以包括直接引用檔案共享儲存器538中所儲存的資料的物理快取位址。與在此揭露的資料標記184相同,檔案共享標記512可以包括附加元資料(未示出),如存取矩陣、計時器資料等,該等可以用於管理接納至檔案共享儲存器538和/或從其中逐出。檔案共享標記512可以進一步包括與已經被接納進入檔案共享儲存器538內的檔案資料相關聯的VM 114A-N的識別符(VMID)859。如在此進一步詳細揭露的,VMID 859可以用於保護被接納進入檔案共享儲存器538內的資料和/或預防寫入前讀取危險。
返回參照圖5,如在此所揭露的,VM FSM 550可以被配置成用於a)標識與適合於接納進入檔案共享儲存器538內的文件有關的I/O請求516,和b)確定I/O請求516的資料是否已經被接納進入檔案共享儲存器538。VM FSM 550可以藉由使用檔案共享字典564確定所標識的I/O請求516的資料是否已經被接納進入檔案共享儲存器538。如果檔案共享字典564包括與和I/O請求516相對應的檔案的UFID 555相對應的有效條目,VM FSM 550可以試圖使用檔案共享儲存器538為該請求服務,這可以包括使用檔案共享字典564中相應的DID 556從檔案共享儲存器538請求資料。參照圖7,VM FSM 550可以使用相應的DID 556“EA733BA0”從FSM 522請求“VID\windows\system32\kernel32.dll”的檔案資料。
FSM 522可以從VM 114A-N接收與文件共享儲存器538中的檔案資料有關的I/O請求516。可以直接通過VLUN驅動器536(通過對應的VM 114A-N內的相應的VLUN磁碟535發出)和/或藉由監控如在此揭露的I/O棧106來接收I/O請求516。I/O請求516可以包括和/或引用DID 556 (DID 556可以由相應的VM 114A-N的VM FSM 550確定)。回應於I/O請求516,FSM 522可以藉由使用檔案共享標記512確定在檔案共享儲存器538中是否可獲得與該請求相對應的資料。FSM 522可以試圖引用與I/O請求516的DID 556相對應的檔案共享標記512。如果存在有效檔案共享標記512,則FSM 522可以回應於I/O請求516存取檔案共享儲存器538中的相應檔案資料並且向VM FSM 550提供該資料。如果檔案共享儲存器538不具有所請求的資料(例如,不存在與DID 556相對應的有效檔案共享標記512),則FSM 522可以發出“缺失”指示的信號(或者其他錯誤代碼)。作為回應,VM FSM 550可以試圖將檔案資料接納進入檔案共享儲存器538。接納該資料可以包括從主儲存資源160(或者另一個儲存資源)讀取該檔案的資料,確定該檔案資料的DID 556,以及發出將該檔案資料接納至檔案共享儲存器538的請求(例如,藉由向FSM 522發出檔案資料接納I/O請求516)。該接納請求可以包括該檔案資料和相應的DID 556。VM FSM 550可以被配置成用於在儲存棧506和/或I/O棧106中的原始I/O請求515的關鍵路徑之外的單獨執行緒和/或進程中生成接納請求。如在此所使用的,I/O請求515和/或116的關鍵路徑指對該請求的時延有貢獻的操作序列。由於在單獨的執行緒和/或進程中執行將資料接納進入檔案共享儲存器538中,可以正常地為I/O請求515服務並且其不會顯著影響I/O請求的執行。
在某些實施例中,VM FSM 550可以被配置成用於將檔案的多個部分接納進入檔案共享儲存器538。檔案共享策略模組524可以確定被接納進入檔案共享儲存器538內的檔案的最大大小。VM FSM 550可以確定檔案是否超過最大檔案大小,並且如果超過,則可以試圖僅接納該檔案的 一部分和/或塊。例如,大的檔案“large.dll”可以被分割成16個塊,這可以由相對索引:“large1.dll”、“large2.dll”等等來標識。檔案共享標記512可以包括該檔案的每個段的單獨條目(和相應的DID 556)。VM FSM 550可以試圖根據需要(例如,回應於與該檔案的各個部分有關的I/O請求516)接納該檔案的各個部分。檔案共享策略模組524可以被配置成用於回應於來自VM 114A-N的請求而將檔案資料選擇性地接納進入檔案共享儲存器538內。檔案共享策略模組524可以基於各種因素確定是否將資料接納進入檔案共享儲存器538,該等因素可以包括但不限於:資源可用性、存取矩陣(例如,有多少不同的VM 114A-N已經請求檔案資料和/或該等請求的存取矩陣)等等。
回應於確定接納資料,FSM 522可以被配置成用於:為該請求分配一個或多個檔案共享標記512;使所分配的檔案共享標記512與該請求的DID(多個)556相關聯;以及提供用於將檔案資料儲存在檔案共享儲存器538中(與相應檔案共享標記512的虛擬位址相關聯)。接納該資料可以進一步包括向VM FSM 550提供資料成功被接納進入檔案共享儲存器538中的指示。回應於該指示,VM FSM 550可以更新VM檔案共享字典564,這可以包括添加條目以使檔案的UFID 555與相應的DID 556相關聯。VM FSM 550可以被進一步配置成用於指示該檔案正由文件共享儲存器538中的FSM 522管理,這樣使得其他I/O服務和/或快取層不冗餘地快取該檔案的資料。
如果沒有滿足接納請求,由於快取策略或錯誤條件,FSM 522會向VM FSM 550返回錯誤代碼(或其他指示)。作為回應,VM FSM 550 可以移除與來自檔案共享字典564的接納請求的DID(多個)556相對應的條目(如果有的話)和/或向其他I/O服務和/或快取層指示該檔案還沒有被接納進入檔案共享儲存器538內。
如在此所揭露的,每個VM 114A-N可以使用相同的上下文自由的DID 556值引用檔案資料。參照圖8,每個VM 114A-N可以使用相同的DID 556“EA733BA0”引用“kernel32.dll”的檔案資料。相應地,存取“kernel32.dll”並且確定“kernel32.dll”適合於接納進入檔案共享儲存器538內的每個VM 114A-N將試圖使用相同的DID 556“EA733BA0”接納該文件。當每個VM 114A-N第一次試圖存取“kernel32.dll”時,對應的VM 114A-N的VM檔案共享字典564將不包括用於該檔案的條目。因此,VM FSM 550將試圖將該檔案接納進入檔案共享儲存器538,如以上所揭露的,這可以包括:讀取文件“kernel32.dll”,計算DID 556(“EA733BA0”),以及發出將該檔案資料接納進入檔案共享儲存器538內的請求。相應地,檔案共享儲存器538可以接收許多不同接納同一資料(例如,與同一DID 556相關聯的資料)的請求。
回應於接納與特定DID 556相對應的檔案資料的請求,FSM 522可以藉由尤其參考檔案共享標記512來確定(不同的VM 114A-N)是否已經接納與DID 556相對應資料。如果已經存在與DID 556相關聯的有效檔案共享標記512,則FSM 522可以確定已經接納了接納請求的檔案資料。FSM 522可以確認接納請求而不重新接納檔案資料。然而,FSM 522可以更新檔案共享標記(多個)512以指示授權相應的VM 114A-N從檔案共享儲存器538讀取檔案資料(例如,更新檔案共享標記(多個)512的VMID 859)。
在某些實施例中,VM FSM 550被配置成用於驗證檔案共享儲存器538中的現有檔案資料是否與接納請求中的檔案資料相匹配。這種驗證可以用於預防由於DID衝突引起的錯誤。如在此所使用的,DID衝突指不同的檔案資料產生相同DID 556的情形。使用較短、不那麼複雜的DID 556會引起DID衝突。DID 556的大小和/或複雜度係a)計算、傳達和/或儲存DID 556所需的開銷與b)DID衝突的概率之間的折衷。儘管大的複雜DID 556會顯著降低DID衝突的可能性,但這種DID 556的開銷會是不令人期望的。在某些實施例中,DID 556的大小和/或複雜度可以基於尤其可以被接納進入檔案共享儲存器538內的唯一檔案(和/或檔案版本)的數量。需要更少唯一檔案和/或檔案版本的實施例可以被配置成用於使用不那麼複雜和/或更小的DID 556。需要相對大量唯一檔案和/或檔案版本的實施例可以被配置成用於使用大的更複雜的DID 556。可以藉由使用配置介面540和/或檔案共享策略模組524管理DID 556的大小和/或其他配置資訊。
在某些實施例中,FSM 522可以被配置成用於驗證兩個或更多個DID 556之間的匹配不是由DID衝突引起的。驗證DID 556可以包括對從其中確定DID 556的檔案資料進行比較(例如,逐位元組比較)。相應地,回應於確定接納請求的DID 556與和有效重複刪除檔案共享標記512相關聯的DID 556匹配,FSM 522可以被配置成用於藉由尤其對接納資料請求中的資料與檔案共享儲存器538中的資料進行比較來驗證基礎檔案資料匹配;對更強烈的散列、簽章和/或CRC值進行比較;等等。如果該匹配係由於衝突引起的,則檔案共享儲存器538可以被配置成用於向VM FSM 550返回指示未能滿足接納請求的錯誤。可替代地,檔案共享儲存器538可以被配置 成用於使用替代性DID 556接納資料,並且可以回應於成功將資料寫入入檔案共享儲存器538來向VM FSM 550提供替代性DID 556。可以用確定性的方式生成替代性DID 556,這樣使得後續請求(來自其他VM 114A-N的VM FSM 550)還將產生相同的替代性DID 556。替代性DID 556可以從原始DID 556中導出和/或可以從檔案資料本身中導出。例如,可以使用替代性散列、簽章或其他演算法計算替代性DID 556。可替代地或此外,替代性DID 556可以包括兩部分識別符,該識別符包括從原始DID 556導出的第一部分和由檔案共享儲存器538和/或VM FSM 550生成的第二部分。
如以上所揭露的,回應於接收到滿足接納請求的確認,VM FSM 550可以更新VM檔案共享字典564以使檔案UFID 555與相應的DID 556(或替代性DID 556)相關聯。VM FSM 550可以藉由使用文件共享儲存器538為與該檔案有關的後續I/O請求服務,這可以包括:a)標識與該檔案有關的I/O請求516,b)參照VM檔案共享字典564確定該檔案已經被接納進入檔案共享儲存器538(例如,使該檔案的UFID與檔案共享字典564中的有效條目匹配),c)請求資料滿足來自檔案共享儲存器538的I/O請求516,以及d)使用檔案共享儲存器538所提供的資料滿足I/O請求516。因此,VM FSM 550可以將被指向至主儲存資源160的I/O請求516重指向至FSM 522,這可以從主儲存資源160、網路107等等中移除負荷和/或I/O開銷。
在某些實施例中,VM FSM 550被配置成用於將檔案共享字典564(例如,快照567A)儲存在持久化儲存介質(如主儲存資源160等等)上。如以上所揭露的,快照指與已經被特定VM 114A-N接納進入檔案 共享儲存器538內的資料相關的當前狀態資訊。相應地,儲存VM FSM 550的快照567A可以包括儲存包括VM 114A的檔案共享字典564的條目,如已經被VM 114A接納進入檔案共享儲存器538內的資料的UFID 555和DID 556。其他VM 114A-N可以被配置成用於儲存對應的快照567B-N。可以用任何合適的格式持久化快照567A-N,包括但不限於:檔案,配置儲存庫,如註冊表或持久化設置、資料庫、快取儲存等等。
在某些實施例中,VM FSM 550被配置成用於在相應的VM 114A-N經歷重啟、重新啟動、電力循環和/或主機傳輸操作後載入相應的快照567A-N。載入快照567A-N可以包括用已經被對應的VM 114A-N接納進入檔案共享儲存器538內的檔案的UFID 555和相應的DID 556填充VM 114A-N的檔案共享字典564。因此,當VM 114A-N重新啟動時,VM FSM 550可以存取被接納進入檔案共享儲存器538內的檔案的資料而不存取主儲存資源160,這可以減少由多個VM 114A-N試圖同時存取檔案資料而引起的“啟動風暴”之影響。
如以上所揭露的,多個VM 114A-N之間可以共享檔案共享儲存器538的內容。如此,檔案共享儲存器538和/或VM FSM 550可以被配置成用於管理對被接納進入檔案共享儲存器538內的檔案的修改,因為這種修改會對正在存取檔案的其他VM 114A-N造成不利影響。相應地,在某些實施例中,檔案共享儲存器538可以被配置成用於以“唯讀”模式運行,這樣使得在接納後不能修改資料。
在某些實施例中,VM FSM 550被配置成用於監控VM儲存棧506內的I/O請求以標識對已經被接納進入檔案共享儲存器538內的檔案 進行修改的請求。回應於標識這種請求,VM FSM 550可以被配置成用於使與檔案共享字典564內的檔案相對應的檔案共享字典條目(或多個條目)無效。VM FSM 550可以被進一步配置成用於更新相應的快照567A-N。相應地,與該文件有關的後續I/O請求可以依靠主儲存資源160運行。VM FSM 550可以被進一步配置成用於通知FSM 522該檔案不再被VM 114A-N使用。作為回應,FSM 522可以將VM 114A-N的VMID從相應的檔案共享標記512中移除(將與該檔案相對應的條目的VMID 859移除)。
如以上所揭露的,供應器132可以被配置成用於回應於尤其VM 114A-N的I/O請求而將儲存資源動態地分配給FSM 522。FSM 522可以被配置成用於回應於分配給檔案共享儲存器538的資源而對該檔案共享儲存器的內容進行管理。管理檔案共享儲存器538可以包括但不限於:a)選擇性地接納(和/或拒絕接納)至檔案共享儲存器538,b)保持存取矩陣,如最近最少使用(LRU)、竊用計時器等等,和/或c)從檔案共享儲存器538中移除檔案資料。FSM 522可以回應於容量限制、老化、資源配置變化等等而移除檔案資料。可替代地或此外,可以回應於來自外部實體的請求而移除檔案資料(經由配置介面540和/或檔案共享策略模組524)。例如,檔案共享儲存器538中的檔案資料可能被損壞或者包括病毒、木馬程式等等。回應於檢測到檔案資料的問題,FSM 522(或其他實體)可以移除該資料。移除該資料可以包括但不限於:使該資料無效和/或從主機儲存資源136中將其移除,移除與該資料相對應的檔案共享標記512等。因此,對該資料的後續請求會造成快取缺失,這會引起將資料重新接納進入如在此所揭露的檔案共享儲存器538。
在某些實施例中,FSM 522被配置成用於保護其中儲存的資料。保護該資料可以包括預防寫入前讀取危險。如在此所使用的,寫入前讀取危險指實體讀取未被其寫入的資料的嘗試(和/或實體為未經授權存取的資料)。在圖8的實施例中,寫入前讀取危險可以包括VM 114B試圖讀取沒有被VM 114A接納進入檔案共享儲存器538內的檔案。如以上所揭露的,檔案共享標記512可以包括被配置成用於標識被授權存取特定檔案的VM 114A-N的存取列表。參照圖8,重複刪除檔案共享標記512的VMID 859可以標識被授權存取特定檔案資料的VM 114A-N。FSM 522可以回應於確定VM 114A-N可以存取基礎檔案資料(例如,存取主儲存資源160上的檔案)來確定VM 114A-N被授權存取檔案。因此,FSM 522可以回應於VM 114A-N將該檔案接納(和/或試圖接納)進入如在此所揭露的檔案共享儲存器538而確定VM 114A-N被授權存取特定檔案。參照圖8,FSM 522可以限制VM 114B存取檔案“45AD342E”;可以防止VM 114A和VM 114C-N存取此資料直至它們試圖將具有DID“45AD342E”的檔案接納進入檔案共享儲存器538內。
在某些實施例中,可以提升或放鬆寫入前讀取安全限制。例如,當將檔案資料接納進入快取內時,VM 114A-N可以指示該檔案資料係“公共的(public)”並且可以不受限制地被存取。例如,系統檔案(如“kernel32.dll”)可以被指定為“公共的”。可以用存取列表中的萬用字元指示符等等表示公共存取(例如,DID“20AE45EA”的資料可以是可公共存取)。允許無限制存取檔案資料在某些情況下可以是有利的。例如,並且如以上所揭露的,在被傳輸至另一個主機之後,VM 114A-N可以載入檔案 共享字典564的快照567A-N。然而,VM 114A-N可能不試圖接納目的地主機上的引用檔案,並且如此,可能不出現在目的地主機的FSM 550所保持的存取列表(多個)上,意味著VM 114A-N在存取檔案(多個)前將必須試圖重新接納目的地主機處的檔案(多個)。如果該等檔案被標記為是可公共存取的,則VM 114A-N可以立即存取目的地主機處的檔案而不進一步存取主儲存資源160,如以上所揭露的,這可以緩解當VM 114A-N重啟、重新啟動、和/或作為傳輸的一部分的電力循環時的啟動風暴問題。可替代地或此外,當VM 114A-N被遷移至另一個主機時,之前的主機可以向目的地主機提供與VM 114A-N有關的文件共享元資料。目的地主機可以使用該元資料授權VM 114A-N存取目的地主機的檔案共享儲存器538中的資料。該檔案共享元資料可以包括VM 114A-N被授權存取的檔案資料的DID 556(例如,與特定VM 114A-N有關的檔案共享標記512)。2013年1月25日為維克拉姆.喬希(Vikram Joshi)等人提交的標題為“用於重複刪除快取的系統和方法(Systems and Methods for a De-Duplication Cache)”的美國專利申請號13/750,904中揭露了用於檔案共享的系統和方法的進一步的實施例,該申請藉由引用以其全部內容結合於此。
圖9係用於管理虛擬化I/O的方法900的一實施例之流程圖。在某些實施例中,方法900的步驟中的一個或多個步驟可以被體現為儲存介質上儲存的電腦可讀取指令。該等指令可以被適配成用於將計算裝置配置成執行方法900(和/或在此揭露的其他方法和/或過程)的一個或多個步驟。可替代地或此外,方法900和/或在此揭露的其他方法的步驟可以藉由使用特定機器組件和/或模組(包括但不限於:處理器、控制器、通信 介面、匯流排等等)來實現。
步驟910可以包括接收與VM 114A-N的暫態資料有關的I/O請求。步驟910可以包括監控如在此所揭露的I/O棧106的I/O請求115。步驟910可以包括基於策略、選擇標準、過濾標準等等來標識與暫態資料有關的I/O請求116。在某些實施例中,VM 114A-N可以被配置成用於標記暫態I/O請求116,這可以包括以下各項中的一項或多項:包括I/O請求116中的元資料;設置I/O請求116的特性和/或參數;以及將I/O請求116指向至指定的卷、磁碟等等(例如,虛擬磁碟171A-N)。步驟190中的I/O請求116可以被指向至如在此所揭露的主儲存資源160(如儲存資源165和/或儲存卷167)和/或引用該儲存資源。
步驟920可以包括藉由使用主機計算裝置101的儲存資源(如主機儲存資源136)為在步驟910接收的I/O請求116服務。主機儲存資源136可以與和I/O請求116相對應的主儲存資源160分開和/或與其無關。在某些實施例中,主機儲存資源136與主機計算裝置101耦合和/或直接與其通信。主機儲存資源136可以例如包括與主機計算裝置101的內部I/O匯流排耦合的固態儲存裝置。可以藉由使用如在此所揭露的過渡儲存模組122為I/O請求116服務。過渡儲存模組122可以被配置成用於將該資料儲存在暫用儲存器138中。步驟920可以包括a)將I/O請求116的資料寫入至暫用儲存器138中和b)記錄回應於移除條件和/或觸發(如VM重啟、循環等等),可以移除I/O請求116的資料。步驟920可以進一步包括確認完成I/O請求116而不存取相應的主儲存資源160(例如,不將資料直寫入和/或回寫入至主儲存資源160)。
步驟920中的暫用儲存器138可以用於為在主機計算裝置101上運行的多個不同VM 114A-N的暫態I/O請求116服務。因此,步驟920可以進一步包括藉由使用供應器132將儲存容量分配給暫用儲存器138內的VM 114A-N。供應器132可以根據VM 114A-N的I/O要求(例如,VM 114A-N中的一個或多個VM的QoS要求、I/O負荷等等)分配容量。不能藉由使用分配給VM 114A-N的容量服務的I/O請求116可以被重指向至如在此所揭露的主儲存資源160,這可以包括由虛擬化基礎設施110管理的指定的虛擬磁碟171A-N(和/或一次性卷)。步驟920可以進一步包括回應於確定VM 114A-N有待重新安置到另一個主機計算裝置和/或將VM 114A-N的臨時資料傳輸至如在此所揭露的另一個主機而保留VM 114A-N的資料。
圖10係用於管理虛擬化I/O的方法1000的另一個實施例的流程圖。步驟1010可以包括對包括兩個或更多個VM 114A-N所共有的檔案資料的檔案共享儲存器538進行管理。步驟1010可以包括FSM 522將上下文獨立的識別符(DID 556)標引至檔案共享儲存器538中所儲存的檔案資料。檔案共享儲存器538可以包括主機計算裝置101的本地(和/或緊密耦合的)儲存資源。步驟1010可以進一步包括為VM 114A-N中的兩個或更多個VM提供對檔案共享儲存器538中的檔案資料的存取。
步驟1020可以包括藉由使用尤其主機計算裝置101的過渡儲存器(例如,主機儲存資源136上的暫用儲存器138)為VM 114A-N的臨時資料有關的I/O請求116服務。步驟1020可以包括:監控主機計算裝置101的I/O棧106中的VM 114A-N的I/O請求115,標識臨時I/O請求116,以及為所標識的臨時I/O請求116服務。臨時I/O請求116可以被指向至對 應的儲存資源(多個)(例如,主儲存資源160、164和/或165、和/或卷162、166和/或167)。步驟1020可以包括將臨時I/O請求116重指向至暫用儲存器138(藉由使用過渡儲存模組122)。步驟1020可以進一步包括回應於VM重啟、關機等等標記用於從主機儲存資源136中移除VM 114A-N的臨時資料。
圖11係用於管理虛擬化I/O的方法1100的另一個實施例之流程圖。步驟1110可以進一步包括為如在此所揭露的在主機計算裝置101的虛擬化基礎設施110內運行的多個VM 114A-N的臨時資料有關的I/O請求116服務。
步驟1120可以包括藉由使用CMS 180將VM 114A-N的非臨時資料快取在主機儲存資源136上。步驟1120可以包括藉由使用VM I/O監控器121監控I/O請求,以及使用如在此所揭露的CMS 180(例如,將I/O請求115重指向至CMS 180)為非臨時I/O請求115服務。
圖12係用於管理虛擬化I/O的方法1200的另一個實施例之流程圖。步驟1210可以包括使VM 114A-N的臨時檔案與指定的儲存資源(例如,指定的虛擬磁碟171A-N、虛擬卷等等)相關聯。步驟1210可以包括修改一個或多個檔案的路徑、磁碟、卷等等中的一項或多項。指定的儲存資源可以對應於主機計算裝置101所管理的(例如,虛擬化基礎設施110所管理的)儲存裝置、卷、和/或路徑。在某些實施例中,步驟1210包括執行如在此所揭露的VM 114A-N內的腳本(例如,藉由使用重指向模組126)。
步驟1220可以包括向步驟1210中的指定的儲存資源(多個)發出與臨時檔案有關的I/O請求。步驟1220可以進一步包括回應於藉由使 用主機計算裝置101的過渡儲存器為I/O請求服務而接收該等I/O請求的完成確認。該過渡儲存器可以與和如在此所揭露的指定的儲存資源相關聯的儲存資源分開或與其無關。
貫穿本說明書,對特徵、優點或類似語言的引用並不暗示所有該等可以實現的特徵和優點可以包括在任何單個實施例中。而是,指代特徵和優點的語言應被理解成意味著與實施例結合描述的特徵、優點或特性包括在至少一個實施例中。因此,對貫穿本說明書的特徵和優點和類似語言的討論可以但不一定指同一實施例。
此外,在此描述的特徵、優點和特性可以用任何合適的方式組合在一個或多個實施例中。相關技術領域內的技術人員將認識到可以在沒有特定實施例的特定特徵或優點中的一個或多個的情況下實踐所揭露的實施例。在其他實例中,可以在可能沒有在所有實施例中呈現的某些實施例中認識到附加特徵和優點。所揭露的實施例的該等特徵和優點將從之前描述和所附申請專利範圍中變得更為充分地明顯,或者可以藉由實踐在此所闡述的實施例來瞭解。
本說明書中所描述的功能單元中的許多功能單元已經被標記為模組,以便更具體地強調其實現方式的獨立性。例如,模組可以被實現為包括定制VLSI電路或閘陣列、成品半導體(如邏輯晶片、電晶體或其他離散元件)之硬體電路。模組還可以被實現在可程式的硬體裝置內,如現場可程式閘陣列、可程式陣列邏輯裝置、可程式邏輯裝置等等。
還可以用各種類型的處理器執行的軟體的方式實現模組。所標識的可執行代碼的模組例如包括一個或多個可以例如被組織成為物件、 程式或功能的電腦指令的物理或邏輯塊。然而,所標識的模組的可執行檔案不需要物理上定位在一起,而是可以包括儲存在不同位置的不同指令,當在邏輯上結合在一起時,該等指令包括該模組並且實現該模組的所闡述之目的。
的確,可執行代碼的模組可以是單個指令、或許多指令,並且甚至可以分佈在若干不同碼段上、不同程式當中、和若干記憶體裝置上。類似地,在此可以在多個模組內標識和展示運算資料,並且其可以用任何合適的形式體現並且組織在任何合適類型的資料結構內。運算資料可以被收集為單個資料集,或可以分佈在不同位置上,該等不同位置包括在不同儲存裝置上,並且可以至少部分地僅作為電子信號存在於系統或網路上。在以軟體實現模組或模組的各部分的情況下,軟體部分儲存在一個或多個電腦可讀取介質上。
貫穿本說明書對“一個實施例”或“實施例或類似語言的引用意味著在至少一個實施例中包括了與該實施例結合描述的特定特徵、結構或特性。因此,貫穿本說明書各處的短語“在一個實施例中”和“在一實施例中”和類似語言可以但不一定都指同一個實施例。
對電腦可讀取介質的引用可以採取任何能夠將機器可讀取指令儲存在數位處理設備上的形式。電腦可讀取介質可以由緻密磁碟、數位視訊光磁碟、磁帶、貝努里驅動器、磁碟、穿孔卡片、快閃記憶體、積體電路、或其他數位處理設備記憶體裝置被體現。
此外,在此揭露的特徵、結構或特性可以用任何適當的方式組合成一個或多個實施例中。在之前描述中,提供了許多特定細節,如程 式設計、軟體模組、使用者選擇、網路事務、資料庫查詢、資料庫結構、硬體模組、硬體電路和硬體晶片的示例,以提供對所揭露的實施例的徹底理解。然而,相關技術領域內的技術人員將認識到可以在沒有特定細節的一個或多個細節情況下或用其他方法、元件、材料等等來實踐本揭露之教導。在其他實例中,沒有詳細地示出或描述熟知的結構和功能,以避免使所揭露的各方面模糊。
按照邏輯流程圖概括地闡述了包括在此的示意性流程圖。如此,所描繪的順序和所標記的步驟指示本方法的一實施例。可以設想在功能、邏輯、或效果上與所展示的方法的一個或多個不同或其多個部分等效的其他步驟和方法。此外,所使用的格式和符號被提供用於解釋本方法之邏輯步驟並且應被理解成不限制本方法之範圍。儘管可以在流程圖中使用各種箭頭類型和線類型,但它們應被理解成不限制相應方法之範圍。的確,某些箭頭或其他連接子可以用於僅指示本方法之邏輯流程。例如,箭頭可以指示在所描述的方法的多個所枚舉的步驟之間等待或監控一段未指定的時間段。此外,特定方法發生的順序可以或可以不嚴格遵循所示相應步驟之順序。
900‧‧‧方法
910‧‧‧步驟
920‧‧‧步驟

Claims (21)

  1. 一種用於虛擬機器輸入/輸出(I/O)之方法,包括:修改對應於一第一儲存卷(volume)之一虛擬機器之一檔案引用(reference)以使該虛擬機器將與該檔案有關之I/O請求指向到一第二儲存卷,其中該第二儲存卷對應於由運行於一主機計算裝置上之該虛擬機器之一管理程式(hypervisor)所管理之一虛擬磁碟;接收被指向到該第二儲存卷的I/O請求;藉由使用該主機計算裝置的一本地儲存資源而不存取由該管理程式所管理之該虛擬磁碟來為所接收到的該等I/O請求之一或多者進行服務;以及回應於檢測到該虛擬機器在該主機計算裝置處之一停用(deactivation)而使該虛擬機器之所接收到的該等I/O請求之暫態資料無效。
  2. 如申請專利範圍第1項所述之方法,進一步包括回應於檢測到該虛擬機器在該主機計算裝置處之該停用而記錄與所接收到的該等I/O請求相關聯而儲存在該儲存資源上的資料所使用的儲存容量係可恢復的。
  3. 如申請專利範圍第1項所述之方法,其中檢測到該虛擬機器在該主機計算裝置處之該停用包括下列一或多者:檢測到該虛擬機器之一關機、檢測到該虛擬機器之一重啟、檢測到該虛擬機器之一休眠及檢測到該虛擬機器自該主機計算裝置移除。
  4. 如申請專利範圍第1項所述之方法,其中,該第二儲存卷表示一超過在該主機計算裝置的該儲存資源中為該虛擬機器供應的儲存容量的儲存容量,該方法進一步包括: 回應於填充在該主機計算裝置之該儲存資源中為該虛擬機器供應的該儲存容量,使用由該管理程式所管理之該虛擬磁碟為該虛擬機器的一I/O請求進行服務。
  5. 如申請專利範圍第1項所述之方法,進一步包括配置該第二儲存卷,使得回應於一次虛擬機器重啟,該第二儲存卷對應於一空儲存卷。
  6. 如申請專利範圍第1項所述之方法,進一步包括回應於確定該虛擬機器不在該主機計算裝置上運行而將在該儲存資源中為該虛擬機器供應的儲存容量解除配置。
  7. 如申請專利範圍第1項所述之方法,其中該管理程式經組態以回應於該虛擬機器之一重啟而重新初始化(reinitialize)該一次性磁碟(disposable disk)。
  8. 如申請專利範圍第1項所述之方法,進一步包括回應於確定該虛擬機器從該主機計算裝置遷移出來而將該儲存資源中所儲存的該虛擬機器的資料傳輸至另一個主機計算裝置。
  9. 如申請專利範圍第1項所述之方法,進一步包括回應於確定該虛擬機器從該主機計算裝置遷移出來而將該儲存資源中所儲存的該虛擬機器的資料寫入至該特定儲存卷。
  10. 一種用於虛擬機器儲存之設備,該設備包括:一重指向模組,其修改與一虛擬機器內之一臨時(ephemeral)檔案相關聯之一儲存卷以使該虛擬機器使該臨時檔案與一指定儲存卷相關聯,俾使該虛擬機器向該指定儲存卷發出與該臨時檔案有關的後續寫入請求,其中,該指定儲存卷被配置成用於和該虛擬機器的一主機所管理的一 儲存裝置相關聯,且其中,該虛擬機器的一儲存棧可配置成用於回應於資料被寫入至與該儲存裝置分開的該主機之一臨時儲存器而接收一向該臨時檔案寫入資料的請求的完成確認,及一過渡(interim)儲存模組,其回應於檢測到該虛擬機器在該主機計算裝置處之一關機及重新啟動中之一或多者而使該臨時檔案之資料無效。
  11. 如申請專利範圍第10項所述之設備,其中該重指向模組經組態以修改該臨時檔案在該虛擬機器內之一路徑。
  12. 一種用於虛擬機器儲存之設備,該設備包括:一重指向模組,其將經組態以修改於一主機計算系統之一虛擬化環境內運行之一虛擬機器之一檔案引用,將該檔案引用由一原始儲存卷修改為與由該虛擬化環境所管理之一虛擬磁碟相關聯之一儲存卷;一過渡儲存模組,該過渡儲存模組儲存被指向至該虛擬磁碟的該虛擬機器之寫入請求的資料,其中,該過渡儲存模組將該等寫入請求的該資料儲存在該主機計算系統的暫用(scratch)儲存器中,該暫用儲存器與由該虛擬化環境所管理之主儲存卷分開;以及一虛擬機器監控器,其經組態以檢測該虛擬機器在該主機計算系統處之一重啟、關機及休眠中之一或多者,其中該過渡儲存模組經組態以回應於該檢測而使該等寫入請求之該資料無效。
  13. 如申請專利範圍第12項所述之設備,其中該過渡儲存模組經組態以藉由從該暫用儲存器中移除該等寫入請求之該資料而使該等寫入請求之該資料無效。
  14. 如申請專利範圍第12項所述之設備,進一步包括一驅動器,該驅動器在該主機計算系統的一儲存棧中對被指向至該虛擬磁碟的寫入請求進行標識。
  15. 如申請專利範圍第12項所述之設備,其中該重指向模組包括經組態以於該虛擬機器內執行之一腳本。
  16. 如申請專利範圍第12項所述之設備,進一步包括一虛擬機器傳輸模組,該虛擬機器傳輸模組藉由以下各項中的一項或多項來保留該等寫入請求之該資料:a)向另一個主機計算系統提供該等寫入請求之該資料以及b)將該等寫入請求之該資料移至該主儲存卷。
  17. 如申請專利範圍第12項所述之設備,其中,該主機計算系統可配置成用於託管複數個虛擬機器,該設備進一步包括一資料共享模組,該資料共享模組為該等虛擬機器中的兩個或更多個虛擬機器提供對該等虛擬機器中的這兩個或更多個虛擬機器共同的重複資料之存取。
  18. 如申請專利範圍第17項所述之設備,其中,該資料共享模組將該重複資料標引為該重複資料的一簽章,並且其中該資料共享模組回應於一包括該簽章的請求而提供對該重複資料之存取。
  19. 如申請專利範圍第18項所述之設備,其中,這兩個或更多個虛擬機器被配置成用於保持各別的持久化字典,該等字典使與該重複資料有關的一檔案名與該重複資料的該簽章相關聯。
  20. 一種用於虛擬機器儲存之系統,該系統包括:一共享模組,該共享模組向在一虛擬機器主機上運行的兩個或更多個虛擬機器提供對該虛擬機器主機的一儲存資源中所儲存的檔案資料的存 取;以及一臨時儲存模組,該臨時儲存模組使用藉由該虛擬機器主機而與一一次性儲存卷相關聯之一儲存資源分開之該虛擬機器主機的一儲存資源而為與該等虛擬機器的臨時資料有關而被指向至由該虛擬機器主機所管理之該一次性儲存卷的輸入/輸出(I/O)請求進行服務;一重指向模組,其修改至該等虛擬機器之一或多個檔案之引用以使該等虛擬機器將與該一或多個檔案有關之I/O請求指向到該一次性儲存卷;以及一虛擬機器監控器,其經組態以檢測一虛擬機器在該虛擬機器主機上之一關機,其中該臨時儲存模組經組態以使對應於該經關機虛擬機器之經服務I/O請求之資料無效。
  21. 如申請專利範圍第20項所述之系統,進一步包括一個I/O過濾器,該過濾器標識與以下各項有關的I/O請求:a)該儲存資源中所儲存的該等虛擬機器中的兩個或更多個虛擬機器共同的檔案資料和b)該等虛擬機器在一儲存棧(stack)中的臨時資料。
TW104106236A 2014-02-28 2015-02-26 用於儲存虛擬化的系統和方法 TWI564803B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461946708P 2014-02-28 2014-02-28
US14/245,893 US10073656B2 (en) 2012-01-27 2014-04-04 Systems and methods for storage virtualization

Publications (2)

Publication Number Publication Date
TW201610853A TW201610853A (zh) 2016-03-16
TWI564803B true TWI564803B (zh) 2017-01-01

Family

ID=52686464

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104106236A TWI564803B (zh) 2014-02-28 2015-02-26 用於儲存虛擬化的系統和方法

Country Status (2)

Country Link
TW (1) TWI564803B (zh)
WO (1) WO2015130799A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI780521B (zh) * 2020-11-24 2022-10-11 大陸商合肥沛睿微電子股份有限公司 電子裝置及空間複用方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040169885A1 (en) * 2003-02-28 2004-09-02 Mellor Douglas J. Memory management
US6898670B2 (en) * 2000-04-18 2005-05-24 Storeage Networking Technologies Storage virtualization in a storage area network
TW200939051A (en) * 2008-01-10 2009-09-16 Diskeeper Corp Selecting storage location for file storage based on storage longevity and speed
US7975169B2 (en) * 2008-06-03 2011-07-05 International Business Machines Corporation Memory preserved cache to prevent data loss
US20120191928A1 (en) * 2007-03-27 2012-07-26 Yasuaki Nakamura Computer system preventing storage of duplicate files
US8312471B2 (en) * 2010-04-26 2012-11-13 Vmware, Inc. File system independent content aware cache
US20130036093A1 (en) * 2009-12-17 2013-02-07 National Ict Australia Limited Reliable Writing of Database Log Data
US20130117744A1 (en) * 2011-11-03 2013-05-09 Ocz Technology Group, Inc. Methods and apparatus for providing hypervisor-level acceleration and virtualization services
US20130339958A1 (en) * 2011-03-29 2013-12-19 Brainlab Ag Processing of digital data, in particular medical data by a virtual machine

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898670B2 (en) * 2000-04-18 2005-05-24 Storeage Networking Technologies Storage virtualization in a storage area network
US20040169885A1 (en) * 2003-02-28 2004-09-02 Mellor Douglas J. Memory management
US20120191928A1 (en) * 2007-03-27 2012-07-26 Yasuaki Nakamura Computer system preventing storage of duplicate files
TW200939051A (en) * 2008-01-10 2009-09-16 Diskeeper Corp Selecting storage location for file storage based on storage longevity and speed
US7975169B2 (en) * 2008-06-03 2011-07-05 International Business Machines Corporation Memory preserved cache to prevent data loss
US20130036093A1 (en) * 2009-12-17 2013-02-07 National Ict Australia Limited Reliable Writing of Database Log Data
US8312471B2 (en) * 2010-04-26 2012-11-13 Vmware, Inc. File system independent content aware cache
US20130339958A1 (en) * 2011-03-29 2013-12-19 Brainlab Ag Processing of digital data, in particular medical data by a virtual machine
US20130117744A1 (en) * 2011-11-03 2013-05-09 Ocz Technology Group, Inc. Methods and apparatus for providing hypervisor-level acceleration and virtualization services

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI780521B (zh) * 2020-11-24 2022-10-11 大陸商合肥沛睿微電子股份有限公司 電子裝置及空間複用方法

Also Published As

Publication number Publication date
WO2015130799A1 (en) 2015-09-03
TW201610853A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
US10073656B2 (en) Systems and methods for storage virtualization
US10834224B2 (en) Transaction log acceleration
US9824018B2 (en) Systems and methods for a de-duplication cache
JP6709245B2 (ja) 適応持続性システム、方法、インタフェース
US9697130B2 (en) Systems and methods for storage service automation
US9767017B2 (en) Memory device with volatile and non-volatile media
US10339056B2 (en) Systems, methods and apparatus for cache transfers
US9811276B1 (en) Archiving memory in memory centric architecture
US9842053B2 (en) Systems and methods for persistent cache logging
US10817421B2 (en) Persistent data structures
US20170315832A1 (en) Virtualization support for storage devices
EP2433217B1 (en) Shortcut input/output in virtual machine systems
US8966188B1 (en) RAM utilization in a virtual environment
US20140012940A1 (en) Systems, Methods and Apparatus for a Virtual Machine Cache
US9778860B2 (en) Re-TRIM of free space within VHDX
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US8769196B1 (en) Configuring I/O cache
TWI564803B (zh) 用於儲存虛擬化的系統和方法
AU2010249649B2 (en) Shortcut input/output in virtual machine systems

Legal Events

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