国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      虛擬機(jī)獨(dú)占緩存的制作方法

      文檔序號:6533965閱讀:243來源:國知局
      虛擬機(jī)獨(dú)占緩存的制作方法
      【專利摘要】用于在虛擬計(jì)算環(huán)境中緩存的技術(shù)、系統(tǒng)和制造品。一種方法包括:迫使在主機(jī)物理機(jī)上的主機(jī)頁面緩存器僅僅存儲基礎(chǔ)鏡像數(shù)據(jù);以及迫使在對應(yīng)的客機(jī)虛擬機(jī)上的至少一個(gè)客機(jī)頁面緩存器的每一個(gè)僅僅存儲由客機(jī)虛擬機(jī)在所述客機(jī)虛擬機(jī)啟動后生成的數(shù)據(jù),其中每個(gè)客機(jī)虛擬機(jī)在主機(jī)物理機(jī)上實(shí)現(xiàn)。
      【專利說明】虛擬機(jī)獨(dú)占緩存

      【技術(shù)領(lǐng)域】
      [0001] 本發(fā)明的實(shí)施例一般涉及信息技術(shù),更具體地,涉及內(nèi)存緩存管理。

      【背景技術(shù)】
      [0002] 內(nèi)存緩存管理是影響云計(jì)算系統(tǒng)的性能的重要因素。在具有高內(nèi)存壓力的環(huán)境 中,在主機(jī)緩存器和客機(jī)(guest)緩存器中消除重復(fù)頁面是很重要的。然而,現(xiàn)有的緩存器 重復(fù)數(shù)據(jù)刪除方法具有高復(fù)雜性,因此,不能廣泛適用。因此,存在解決在存儲相同的數(shù)據(jù) 塊上浪費(fèi)內(nèi)存使用的問題的需要。


      【發(fā)明內(nèi)容】

      [0003] 在本發(fā)明的一個(gè)方面,提供了一種用于虛擬機(jī)獨(dú)占緩存的技術(shù)。示例性的用于在 虛擬計(jì)算環(huán)境中緩存的計(jì)算機(jī)實(shí)現(xiàn)的方法可以包括以下步驟:迫使在主機(jī)物理機(jī)上的主機(jī) 頁面緩存器僅僅存儲基礎(chǔ)鏡像數(shù)據(jù);以及迫使在對應(yīng)的客機(jī)虛擬機(jī)上的至少一個(gè)客機(jī)頁面 緩存器的每一個(gè)僅僅存儲由客機(jī)虛擬機(jī)在客機(jī)虛擬機(jī)啟動后生成的數(shù)據(jù),其中每個(gè)客機(jī)虛 擬機(jī)在主機(jī)物理機(jī)上實(shí)現(xiàn)。
      [0004] 本發(fā)明的另一個(gè)方面包括一種系統(tǒng),其包括具有至少一個(gè)計(jì)算機(jī)文件系統(tǒng)的主機(jī) 物理機(jī),每個(gè)系統(tǒng)存儲至少一個(gè)虛擬機(jī)鏡像,其中,主機(jī)物理機(jī)使用內(nèi)存段作為主機(jī)緩存 器,每個(gè)虛擬機(jī)鏡像包含至少一個(gè)操作系統(tǒng)和零個(gè)或更多個(gè)應(yīng)用程序;在主機(jī)物理機(jī)上駐 留的至少一個(gè)虛擬機(jī),其中,每個(gè)虛擬機(jī)具有從虛擬機(jī)鏡像加載的虛擬磁盤,每個(gè)虛擬機(jī)從 主機(jī)物理機(jī)中分配內(nèi)存段以用作每個(gè)虛擬磁盤的客機(jī)緩存器;以及分區(qū)引擎,其將虛擬磁 盤內(nèi)容劃分為兩個(gè)非空且非重疊的子集,其中,第一子集將被緩存在客機(jī)緩存器中,第二子 集將被緩存在主機(jī)緩存器中。
      [0005] 在本發(fā)明的另一個(gè)方面,一種系統(tǒng)包括:一個(gè)或多個(gè)基礎(chǔ)鏡像模板,其在通過一個(gè) 或多個(gè)網(wǎng)絡(luò)連接的一個(gè)或多個(gè)物理主機(jī)計(jì)算機(jī)上的一個(gè)或多個(gè)主機(jī)緩存器上存儲,其中網(wǎng) 絡(luò)位于計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中;一個(gè)或多個(gè)虛擬計(jì)算機(jī)進(jìn)程,其駐留在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境上,虛 擬計(jì)算機(jī)進(jìn)程能夠訪問在物理主機(jī)計(jì)算機(jī)上駐留的一個(gè)或多個(gè)虛擬機(jī)上的一個(gè)或多個(gè)客 機(jī)緩存器,客機(jī)緩存器具有特定于虛擬計(jì)算機(jī)進(jìn)程的一個(gè)或多個(gè)的一個(gè)或多個(gè)私有數(shù)據(jù)鏡 像;控制模塊,其監(jiān)控虛擬計(jì)算機(jī)進(jìn)程的一個(gè)或多個(gè)的啟動,在啟動后,控制模塊將基礎(chǔ)鏡 像模板的一個(gè)或多個(gè)從主機(jī)緩存器的一個(gè)或多個(gè)加載到虛擬計(jì)算機(jī)進(jìn)程的一個(gè)或多個(gè)上 并執(zhí)行;以及重定向模塊,其讀取一個(gè)或多個(gè)數(shù)據(jù)請求,并確定是否將請求導(dǎo)向主機(jī)緩存器 的一個(gè)或多個(gè)或者客機(jī)緩存器的一個(gè)或多個(gè)。
      [0006] 本發(fā)明或其單元的另一個(gè)方面可以采用有形地具體化計(jì)算機(jī)可讀指令的制造品 的形式實(shí)現(xiàn),該計(jì)算機(jī)可讀指令在執(zhí)行時(shí)使計(jì)算機(jī)執(zhí)行多個(gè)方法步驟,如在此所描述的。另 夕卜,本發(fā)明或其單元的另一個(gè)方面可以采用包括存儲器和連接到存儲器并可操作以執(zhí)行所 提到的方法步驟的至少一個(gè)處理器的裝置的形式實(shí)施。此外,本發(fā)明或其單元的再一個(gè)方 面可以采用用于實(shí)現(xiàn)在此描述的方法步驟的裝置或其單元的形式實(shí)現(xiàn);該裝置可包括(i) 硬件模塊、(ii)軟件模塊、或(iii)硬件和軟件模塊的結(jié)合;(i)至(iii)中的任意一個(gè)實(shí) 現(xiàn)在此提出的特定技術(shù),軟件模塊被存儲在有形的計(jì)算機(jī)可讀存儲介質(zhì)(或多個(gè)這樣的介 質(zhì))中。
      [0007] 根據(jù)以下結(jié)合附圖來閱讀的說明性實(shí)施例的詳細(xì)描述,本發(fā)明的這些和其它目 標(biāo)、特征和優(yōu)點(diǎn)將變得顯而易見。

      【專利附圖】

      【附圖說明】
      [0008] 圖1是根據(jù)本發(fā)明的實(shí)施例的表示數(shù)據(jù)讀請求的控制流和數(shù)據(jù)流的圖;
      [0009] 圖2是根據(jù)本發(fā)明的實(shí)施例的表示示例性輸入/輸出流的圖;
      [0010] 圖3是根據(jù)本發(fā)明的實(shí)施例的表示用于在虛擬計(jì)算環(huán)境中緩存的技術(shù)的流程圖;
      [0011] 圖4是在其上可以實(shí)施本發(fā)明的至少一個(gè)實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)的系統(tǒng)圖。

      【具體實(shí)施方式】
      [0012] 如在此所描述的,本發(fā)明的一個(gè)方面包括虛擬機(jī)(VM)獨(dú)占緩存。本發(fā)明的至少一 個(gè)實(shí)施例包括提供基于功能劃分的緩存機(jī)制。在該機(jī)制中,VM主機(jī)緩存基礎(chǔ)鏡像中的數(shù)據(jù), 每個(gè)單獨(dú)的VM客機(jī)緩存它自己的在它啟動后生成的"私有數(shù)據(jù)"。因此,主機(jī)和每個(gè)客機(jī)都 可確定是否緩存數(shù)據(jù)塊而不需要任何其它的信息交換。
      [0013] 在此的本發(fā)明的示例實(shí)施例的描述包括使用術(shù)語"基礎(chǔ)鏡像數(shù)據(jù)"和"私有數(shù)據(jù)"。 在云產(chǎn)品中,每個(gè)虛擬機(jī)從來自由云管理器提供的鏡像目錄的基礎(chǔ)鏡像中啟動。該鏡像例 如包括操作系統(tǒng)、DB2軟件和所安裝的一些基礎(chǔ)包。用戶可以選擇該基礎(chǔ)鏡像,啟動虛擬 機(jī),并開始使用DB2。當(dāng)用戶開始填充DB2數(shù)據(jù)庫時(shí),新填充的數(shù)據(jù)屬于私有數(shù)據(jù)。換句話 說,作為例子,基礎(chǔ)鏡像類似于許多虛擬機(jī)的模板,而私有數(shù)據(jù)是每個(gè)虛擬機(jī)相對該模板的 變化。
      [0014] 在主機(jī)上,可以確定數(shù)據(jù)塊的哪個(gè)部分相對于私有數(shù)據(jù)屬于基礎(chǔ)鏡像數(shù)據(jù)。例如, 當(dāng)虛擬機(jī)從頭開始時(shí),基礎(chǔ)鏡像數(shù)據(jù)構(gòu)成100%,私有數(shù)據(jù)構(gòu)成0%。當(dāng)修改數(shù)據(jù)塊時(shí),它被 主機(jī)標(biāo)志為私有數(shù)據(jù),并被標(biāo)志為不再屬于基礎(chǔ)鏡像數(shù)據(jù)。在客機(jī)上,檢測塊的修改時(shí)間。 如果修改時(shí)間晚于虛擬機(jī)啟動時(shí)間,則數(shù)據(jù)是私有數(shù)據(jù)。否則,數(shù)據(jù)是基礎(chǔ)鏡像數(shù)據(jù)。本發(fā) 明的至少一個(gè)實(shí)施例包括通過檢查數(shù)據(jù)塊所屬的文件的修改時(shí)間來近似。
      [0015] 如將在此詳述的,在客機(jī)上,當(dāng)讀請求是針對塊的基礎(chǔ)鏡像數(shù)據(jù)部分中的數(shù)據(jù)塊 時(shí),該請求被直接發(fā)送到主機(jī)緩存器。因此,數(shù)據(jù)沒有機(jī)會進(jìn)入客機(jī)緩存器。在主機(jī)上有存 儲所有私有數(shù)據(jù)的文件,主機(jī)可以使用直接輸入/輸出(I/O)模式打開該文件。在這種模 式中,所有讀請求繞過主機(jī)緩存器而直接轉(zhuǎn)到磁盤。因此,私有數(shù)據(jù)沒有機(jī)會進(jìn)入主機(jī)緩存 器。
      [0016] 此外,本發(fā)明的至少一個(gè)實(shí)施例包括對Linux操作系統(tǒng)內(nèi)核的補(bǔ)丁以迫使內(nèi)核避 免在緩存器中保存干凈的數(shù)據(jù)頁面。進(jìn)一步地,這種實(shí)施例還可以包括對虛擬化驅(qū)動器的 補(bǔ)丁,其迫使內(nèi)核僅僅保存VM鏡像中的數(shù)據(jù)塊。
      [0017] 應(yīng)當(dāng)注意,本發(fā)明的各個(gè)方面包括將信息劃分成基礎(chǔ)部分和私有部分,以硬件級 別緩存基礎(chǔ)信息,并跨過VM的各層緩存私有信息。另外,本發(fā)明的至少一個(gè)實(shí)施例可用于 任何網(wǎng)絡(luò)緩存以及在云環(huán)境中使用。
      [0018] 圖1是根據(jù)本發(fā)明的實(shí)施例的表示數(shù)據(jù)讀請求的控制流和數(shù)據(jù)流的圖。通過說 明,圖1描述了客機(jī)頁面緩存器102和104、客機(jī)磁盤106和108、主機(jī)頁面緩存器110和主 機(jī)磁盤112。
      [0019] 因此,在虛擬環(huán)境中,針對數(shù)據(jù)塊的讀請求經(jīng)過多個(gè)軟件層。圖1顯示了當(dāng)讀請求 到達(dá)時(shí)的控制流和數(shù)據(jù)流。為了簡化論述,假定客機(jī)文件系統(tǒng)和主機(jī)文件系統(tǒng)使用相同的 塊大小作為內(nèi)存頁面(例如,4KB),并且請求是針對單個(gè)數(shù)據(jù)塊的。應(yīng)當(dāng)注意,在圖1中,虛 線箭頭線表示控制流。因此,針對客機(jī)頁面緩存器(102)檢查讀請求。如果請求是在客機(jī) 頁面緩存器中未命中,則該請求被轉(zhuǎn)發(fā)到客機(jī)磁盤(106),并在頁面緩存器中分配新的頁面 作為該請求的緩沖區(qū)。到客機(jī)磁盤的請求被輸入/輸出(I/O)虛擬層轉(zhuǎn)換成到鏡像文件的 主機(jī)級別讀請求。針對主機(jī)頁面緩存器110檢查該讀請求,并在未命中的情況下將該讀請 求轉(zhuǎn)發(fā)到主機(jī)磁盤112。
      [0020] 在圖1中,實(shí)線箭頭線表示數(shù)據(jù)流。當(dāng)數(shù)據(jù)塊被主機(jī)磁盤112準(zhǔn)備就緒時(shí),它將通 過直接存儲器存?。―MA)被傳輸?shù)街鳈C(jī)頁面緩存請器110。然后,I/O虛擬層將觸發(fā)從主機(jī) 頁面緩存器110到客機(jī)頁面緩存器(106)的內(nèi)存?zhèn)鬏敚瑪?shù)據(jù)最終返回給調(diào)用應(yīng)用。一些云 系統(tǒng)在遠(yuǎn)程連接到運(yùn)行管理程序的VM主機(jī)的存儲服務(wù)器上存儲VM鏡像。在這種環(huán)境中, 主機(jī)頁面緩存器與主機(jī)磁盤之間的交互涉及遠(yuǎn)程存儲服務(wù)器。
      [0021] 數(shù)據(jù)讀請求的性能取決于它是否以及在哪里得到緩存命中。如果請求是在客機(jī)緩 存器中命中,則延遲包含從客機(jī)緩存器到應(yīng)用空間的一個(gè)內(nèi)存復(fù)制。如果請求是在客機(jī)緩 存器中未命中而在主機(jī)緩存器中命中,則延遲包含兩個(gè)內(nèi)存復(fù)制:一個(gè)從主機(jī)緩存器到客 機(jī)緩存器,另一個(gè)從客機(jī)緩存器到應(yīng)用空間。如果請求是在兩個(gè)緩存器中都未命中,則延遲 包含兩個(gè)內(nèi)存復(fù)制和一個(gè)磁盤傳輸。
      [0022] 另外,可存在其它因素影響I/O性能。例如,當(dāng)前Linux內(nèi)核采取積極的預(yù)取策略。 對于緩存命中和緩存未命中兩者,在所請求的塊之后的若干塊將被附加到請求上。另外,每 個(gè)客機(jī)緩存未命中產(chǎn)生對主機(jī)操作系統(tǒng)(OS)的系統(tǒng)調(diào)用,這導(dǎo)致額外的上下文切換。此 夕卜,客機(jī)內(nèi)存通常比主機(jī)內(nèi)存更快,而主機(jī)內(nèi)存通常比主機(jī)磁盤更快。
      [0023] 在諸如以上所述的存儲分層結(jié)構(gòu)中,主機(jī)緩存器和客機(jī)緩存器都可被配置為開 (ON)或關(guān)(OFF)。本發(fā)明的至少一個(gè)實(shí)施例還可以包括不同的客機(jī)/主機(jī)緩存器配置。一 種這樣的配置是:主機(jī)緩存器=0N,客機(jī)緩存器=0N。該配置可以使數(shù)據(jù)塊被緩存在客機(jī) 和主機(jī)級別兩者上。當(dāng)內(nèi)存充裕時(shí),這增加了數(shù)據(jù)塊在內(nèi)存中緩存的機(jī)會。當(dāng)內(nèi)存資源不 足時(shí),這將導(dǎo)致性能退化,因?yàn)榇鎯χ貜?fù)數(shù)據(jù)浪費(fèi)了緩存空間。此外,整體預(yù)取可能變得太 過積極,因?yàn)榭蜋C(jī)緩存器將若干塊附加到讀請求上,即使是完全隨機(jī)的。這給主機(jī)緩存器帶 來不正確的確認(rèn),并使其增加預(yù)取深度。
      [0024] 另一種配置是:主機(jī)緩存器=0FF,客機(jī)緩存器=0N。與該配置匹配的理解是每個(gè) 客機(jī)具有關(guān)于其1/0模式的最精確的知識,因此,它是確定保存什么頁面的最合邏輯的單 元。然而,該配置完全消除內(nèi)容感知共享的機(jī)會。還有另一種配置是:主機(jī)緩存器=〇N,客 機(jī)緩存器=OFF。當(dāng)主機(jī)完全負(fù)責(zé)1/0緩存時(shí),客機(jī)可潛在地要求更少的內(nèi)存。以這種方 式,主機(jī)有充足的機(jī)會以采用智能內(nèi)存管理機(jī)制。該配置節(jié)省了所使用的內(nèi)存的總量,因?yàn)?所有緩存的數(shù)據(jù)塊可以用內(nèi)容感知技術(shù)來進(jìn)行重復(fù)數(shù)據(jù)刪除。然而,該配置表示完全沒有 客機(jī)內(nèi)存訪問,這可創(chuàng)造高的上下文切換開銷。
      [0025] 此外,另一種配置是:主機(jī)緩存器=OFF,客機(jī)緩存器=OFF。采用該配置,不利的 是所有I/O請求都直接到達(dá)磁盤,系統(tǒng)將遭受沉重的I/O負(fù)載。因此,在生產(chǎn)云平臺中使用 具有客機(jī)緩存器=ON的兩種配置。取決于主機(jī)的資源可用性,它們相對于彼此是有利的。
      [0026] 如在此詳述的,本發(fā)明的至少一個(gè)實(shí)施例包括可被實(shí)施以用于通用虛擬環(huán)境并且 不需要限于工作負(fù)載專用的優(yōu)化的機(jī)制。
      [0027] 實(shí)現(xiàn)緩存獨(dú)占的挑戰(zhàn)是頻繁的信息交換。例如,在客戶端-服務(wù)器架構(gòu)中,如果服 務(wù)器想要僅僅緩存在客戶端緩存器中不存在的數(shù)據(jù)塊,則客戶端需要向服務(wù)器通知每一個(gè) 緩存回收。假定高頻率的緩存操作,則這可導(dǎo)致高開銷。
      [0028] 避免通信開銷的示例性技術(shù)是功能劃分(FP)。類似于在對等系統(tǒng)中使用的分布式 哈希表(DHT),F(xiàn)P通過對每個(gè)部件建立規(guī)則以理解它自己的任務(wù)或數(shù)據(jù)部分來避免頻繁的 記賬(bookke印ing)。另外,與在DHT中使用的隨機(jī)分布規(guī)則相比,F(xiàn)P中的規(guī)則考慮任務(wù)和 部件的不同特性。一個(gè)例子包括通過將系統(tǒng)任務(wù)聚集到多核系統(tǒng)中的專用內(nèi)核來緩解操作 系統(tǒng)(OS)抖動。
      [0029] 本發(fā)明的至少一個(gè)實(shí)施例包括采用功能劃分原則以及指定客機(jī)緩存器和主機(jī)緩 存器以存儲VM磁盤數(shù)據(jù)的不同部分。在某些示例性實(shí)施例中,主機(jī)緩存器可使用更多空間 存儲干凈的基礎(chǔ)鏡像數(shù)據(jù),因此,主機(jī)頁面緩存器中的基礎(chǔ)鏡像數(shù)據(jù)可以在所有客機(jī)之中 共享。另外,客機(jī)的緩存空間可以專用于它自己的私有數(shù)據(jù)。因?yàn)閮蓚€(gè)單獨(dú)的VM客機(jī)生成 相同的私有數(shù)據(jù)頁面的可能性很低,所以那些頁面可以在客機(jī)內(nèi)存中保存以用于更快的訪 問。在單獨(dú)的VM邊界內(nèi)保存私有數(shù)據(jù)還可通過防止一個(gè)客機(jī)生成大量的數(shù)據(jù)并污染所共 享的主機(jī)緩存器來增強(qiáng)性能隔離。
      [0030] 圖2是根據(jù)本發(fā)明的實(shí)施例的表示示例性輸入/輸出流的圖。通過說明,圖2描 述了基礎(chǔ)鏡像202、客機(jī)頁面緩存器204和206、客機(jī)磁盤208和210、主機(jī)頁面緩存器212 和主機(jī)磁盤214。
      [0031] 在迫使客機(jī)僅僅緩存它的私有數(shù)據(jù)中存在挑戰(zhàn)。例如,在客機(jī)級別上,不容易確定 塊是屬于私有數(shù)據(jù)還是基礎(chǔ)鏡像。正如在圖2中所描述的,本發(fā)明的至少一個(gè)實(shí)施例包括 在步驟202中進(jìn)行這種確定。這可包括檢查包含數(shù)據(jù)塊的文件的修改時(shí)間(m時(shí)間)。如果 文件在客機(jī)系統(tǒng)啟動時(shí)間之后已被修改,則該塊被認(rèn)為是私有數(shù)據(jù),并遵循在圖1中詳述 的訪問路徑。
      [0032] 當(dāng)讀請求被分類為基礎(chǔ)鏡像數(shù)據(jù)時(shí),本發(fā)明的至少一個(gè)實(shí)施例包括試圖避免將其 存儲在客機(jī)緩存器中。示例技術(shù)基于直接1/0。對于屬于基礎(chǔ)鏡像的每個(gè)客機(jī)級別文件,試 圖遵循0DIRECT系統(tǒng)標(biāo)志的數(shù)據(jù)訪問路徑。例如,在Linux中,當(dāng)文件以正常模式打開時(shí) (沒有0DIRECT),數(shù)據(jù)訪問路徑如圖1中所示。如果使用0DIRECT標(biāo)志,則針對該文件的 所有讀和寫請求將繞過頁面緩存器。當(dāng)針對一個(gè)數(shù)據(jù)的讀請求到達(dá)時(shí),將不針對緩存器檢 查它。相反,直接1/0請求被發(fā)送到磁盤(208),由調(diào)用應(yīng)用提供的內(nèi)存緩沖區(qū)被用作DM 傳輸?shù)哪康牡亍?br> [0033] 根據(jù)本發(fā)明的至少一個(gè)實(shí)施例,當(dāng)在打開文件時(shí)使用0_DIRECT標(biāo)志時(shí),針對該文 件的所有數(shù)據(jù)請求將通過直接向硬盤發(fā)送塊1/0請求來提供服務(wù)。如果在打開文件時(shí)沒有 使用〇_DIRECT標(biāo)志,則針對該文件的所有數(shù)據(jù)請求將首先針對文件系統(tǒng)緩存器進(jìn)行檢查。 如果所請求的數(shù)據(jù)在緩存器中不可用,則將在緩存器中創(chuàng)建內(nèi)存頁面,塊1/0請求將使用 緩存器內(nèi)存頁面作為傳輸目的地來發(fā)送到磁盤。
      [0034] 如圖2中所示,如果文件在客機(jī)級別用0DIRECT打開,則應(yīng)用緩沖區(qū)被直接用于 接收從主機(jī)傳輸?shù)臄?shù)據(jù)。假定包含數(shù)據(jù)的主機(jī)級別文件沒有用0DIRECT打開,則針對主機(jī) 緩存器212檢查請求。如果在主機(jī)緩存器中發(fā)現(xiàn)數(shù)據(jù),則該數(shù)據(jù)被內(nèi)存復(fù)制到客機(jī)應(yīng)用緩 沖區(qū)。否則,在主機(jī)緩存器212中創(chuàng)建頁面作為從主機(jī)磁盤214接收的接收緩沖區(qū)。然后, 數(shù)據(jù)通過DM從主機(jī)磁盤214傳輸?shù)街鳈C(jī)緩存器212,并被復(fù)制到客機(jī)應(yīng)用緩沖區(qū)。因此, 客機(jī)緩存器(204)空間可以從存儲基礎(chǔ)鏡像數(shù)據(jù)中節(jié)省,并不需要額外的內(nèi)存復(fù)制以從主 機(jī)側(cè)獲得數(shù)據(jù)。
      [0035]另外,在本發(fā)明的至少一個(gè)實(shí)施例中,來自磁盤文件系統(tǒng)的數(shù)據(jù)傳輸是以文件系 統(tǒng)塊為單位的,并且請求的文件偏移與文件系統(tǒng)的塊大小對齊。此外,在這種情況下,由請 求提供的緩沖區(qū)也需要對齊文件系統(tǒng)的塊大小。該對齊在某些設(shè)備驅(qū)動器執(zhí)行DM時(shí)被它 們期望。
      [0036] 迫使主機(jī)僅僅緩存基礎(chǔ)鏡像數(shù)據(jù)可以例如通過用0DIRECT標(biāo)志打開寫入時(shí)復(fù)制 (copy-on-write)文件和以正常模式打開基礎(chǔ)鏡像文件來執(zhí)行。作為例子,當(dāng)打開快速模擬 器(QEMU)寫入時(shí)復(fù)制文件時(shí),用相同的緩存標(biāo)志打開用作其"后備文件"的基礎(chǔ)鏡像文件。 本發(fā)明的一個(gè)方面包括修改QEMU驅(qū)動器,以使得寫入時(shí)復(fù)制文件不將0DIRECT標(biāo)志傳遞 給它的基礎(chǔ)文件。 「00371 另外,如在此詳沭的,#VM鐿像夕中可存在高內(nèi)容相似性。壓縮比被定義為:

      【權(quán)利要求】
      1. 一種用于在虛擬計(jì)算環(huán)境中緩存的方法,所述方法包括: 迫使主機(jī)物理機(jī)上的主機(jī)頁面緩存器僅僅存儲基礎(chǔ)鏡像數(shù)據(jù);以及 迫使在對應(yīng)的客機(jī)虛擬機(jī)上的至少一個(gè)客機(jī)頁面緩存器的每一個(gè)僅僅存儲由所述客 機(jī)虛擬機(jī)在所述客機(jī)虛擬機(jī)啟動后生成的數(shù)據(jù),其中,每個(gè)客機(jī)虛擬機(jī)在所述主機(jī)物理機(jī) 上實(shí)現(xiàn)。
      2. 根據(jù)權(quán)利要求1所述的方法,包括: 如果讀請求是針對由所述客機(jī)虛擬機(jī)在所述客機(jī)虛擬機(jī)啟動后生成的數(shù)據(jù),則從所述 客機(jī)頁面緩存器為所述讀請求提供服務(wù)。
      3. 根據(jù)權(quán)利要求1所述的方法,包括: 如果讀請求是針對所述基礎(chǔ)鏡像數(shù)據(jù),則直接從所述主機(jī)頁面緩存器為讀請求提供服 務(wù)。
      4. 一種制造品,包括具有在其上有形地具體化的計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀存儲介 質(zhì),所述計(jì)算機(jī)可讀指令在執(zhí)行時(shí)使計(jì)算機(jī)執(zhí)行多個(gè)方法步驟,包括: 迫使在主機(jī)物理機(jī)上的主機(jī)頁面緩存器僅僅存儲基礎(chǔ)鏡像數(shù)據(jù);以及 迫使在對應(yīng)的客機(jī)虛擬機(jī)上的至少一個(gè)客機(jī)頁面緩存器的每一個(gè)僅僅存儲由所述客 機(jī)虛擬機(jī)在所述客機(jī)虛擬機(jī)啟動后生成的數(shù)據(jù),其中,每個(gè)客機(jī)虛擬機(jī)在所述主機(jī)物理機(jī) 上實(shí)現(xiàn)。
      5. 根據(jù)權(quán)利要求4所述的制造品,其中,所述方法步驟包括: 如果讀請求是針對由所述客機(jī)虛擬機(jī)在所述客機(jī)虛擬機(jī)啟動后生成的數(shù)據(jù),則從所述 客機(jī)頁面緩存器為所述讀請求提供服務(wù)。
      6. 根據(jù)權(quán)利要求4所述的制造品,其中,所述方法步驟包括: 如果讀請求是針對所述基礎(chǔ)鏡像數(shù)據(jù),則直接從所述主機(jī)頁面緩存器為所述讀請求提 供服務(wù)。
      7. -種用于虛擬計(jì)算環(huán)境的緩存系統(tǒng),所述系統(tǒng)包括: 主機(jī)物理機(jī),其具有至少一個(gè)計(jì)算機(jī)文件系統(tǒng),每個(gè)系統(tǒng)存儲至少一個(gè)虛擬機(jī)鏡像,其 中,所述主機(jī)物理機(jī)使用內(nèi)存段作為主機(jī)緩存器,每個(gè)虛擬機(jī)鏡像包含至少一個(gè)操作系統(tǒng) 和零個(gè)或更多個(gè)應(yīng)用程序; 駐留在所述主機(jī)物理機(jī)上的至少一個(gè)虛擬機(jī),其中,每個(gè)虛擬機(jī)具有從虛擬機(jī)鏡像加 載的虛擬磁盤,每個(gè)虛擬機(jī)從所述主機(jī)物理機(jī)中分配內(nèi)存段以用作每個(gè)虛擬磁盤的客機(jī)緩 存器;以及 分區(qū)引擎,其將虛擬磁盤內(nèi)容劃分成兩個(gè)非空且非重疊的子集,其中,第一子集將被緩 存在所述客機(jī)緩存器中,第二子集將被緩存在所述主機(jī)緩存器中。
      8. 根據(jù)權(quán)利要求7所述的系統(tǒng),包括: 在所述每個(gè)虛擬機(jī)內(nèi)運(yùn)行的一個(gè)或多個(gè)用戶進(jìn)程,其中,每個(gè)用戶進(jìn)程向所述虛擬機(jī) 的所述虛擬磁盤發(fā)布一個(gè)或多個(gè)數(shù)據(jù)請求。
      9. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述第一子集包含在所述虛擬機(jī)啟動后已被修 改或已被添加到所述虛擬磁盤上的所有數(shù)據(jù)塊。
      10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述第二子集包含所述虛擬磁盤上的剩余數(shù)據(jù) 塊。
      11. 根據(jù)權(quán)利要求7所述的系統(tǒng),包括: 自適應(yīng)監(jiān)控引擎,其在所述系統(tǒng)中的空閑內(nèi)存量高于預(yù)定義閾值時(shí),禁用所述分區(qū)引 擎,并擴(kuò)大所述第一子集和所述第二子集兩者以等于整個(gè)虛擬磁盤。
      12. -種虛擬計(jì)算機(jī)緩存系統(tǒng),包括: 一個(gè)或多個(gè)基礎(chǔ)鏡像模板,其在通過一個(gè)或多個(gè)網(wǎng)絡(luò)連接的一個(gè)或多個(gè)物理主機(jī)計(jì)算 機(jī)上的一個(gè)或多個(gè)主機(jī)緩存器上存儲,所述網(wǎng)絡(luò)位于計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境中; 一個(gè)或多個(gè)虛擬計(jì)算機(jī)進(jìn)程,其駐留在所述計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境上,所述虛擬計(jì)算機(jī)進(jìn)程 能夠訪問在所述一個(gè)或多個(gè)物理主機(jī)計(jì)算機(jī)上駐留的一個(gè)或多個(gè)虛擬機(jī)上的一個(gè)或多個(gè) 客機(jī)緩存器,所述客機(jī)緩存器具有特定于所述虛擬計(jì)算機(jī)進(jìn)程的一個(gè)或多個(gè)的一個(gè)或多個(gè) 私有數(shù)據(jù)鏡像; 控制模塊,其監(jiān)控所述虛擬計(jì)算機(jī)進(jìn)程的一個(gè)或多個(gè)的啟動,在啟動后,所述控制模塊 將所述基礎(chǔ)鏡像模板的一個(gè)或多個(gè)從所述主機(jī)緩存器的一個(gè)或多個(gè)加載到所述虛擬計(jì)算 機(jī)進(jìn)程的一個(gè)或多個(gè)上并執(zhí)行;以及 重定向模塊,其讀取一個(gè)或多個(gè)數(shù)據(jù)請求,并確定是否將所述請求導(dǎo)向所述主機(jī)緩存 器的一個(gè)或多個(gè)或者所述客機(jī)緩存器的一個(gè)或多個(gè)。
      13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述基礎(chǔ)鏡像模板包括一個(gè)或多個(gè)操作系統(tǒng)、 一個(gè)或多個(gè)數(shù)據(jù)庫程序和一個(gè)或多個(gè)基礎(chǔ)數(shù)據(jù)集合。
      14. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,如果所述數(shù)據(jù)請求是請求所述基礎(chǔ)鏡像模板 的一個(gè)或多個(gè),則所述重定向模塊將所述數(shù)據(jù)請求導(dǎo)向?qū)⒒A(chǔ)鏡像數(shù)據(jù)集合提供給各自的 虛擬計(jì)算機(jī)進(jìn)程的所述主機(jī)緩存器的一個(gè)或多個(gè)。
      15. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,如果所述數(shù)據(jù)請求是請求所述私有數(shù)據(jù)鏡像 的一個(gè)或多個(gè),則所述重定向模塊將所述請求導(dǎo)向?qū)⑺接袛?shù)據(jù)集提供給各自的虛擬計(jì)算機(jī) 進(jìn)程的所述客機(jī)緩存器的一個(gè)或多個(gè)。
      16. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述客機(jī)緩存器的一個(gè)或多個(gè)駐留在所述主 機(jī)計(jì)算機(jī)的一個(gè)或多個(gè)上的一個(gè)或多個(gè)磁盤存儲器上。
      17. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述基礎(chǔ)鏡像模板的一個(gè)或多個(gè)駐留在所述 主機(jī)計(jì)算機(jī)的一個(gè)或多個(gè)內(nèi)的動態(tài)存儲裝置上。
      18. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述基礎(chǔ)鏡像模板和所述私有數(shù)據(jù)鏡像駐留 在分離的存儲器上。
      19. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,所述客機(jī)緩存器采用緩存器分層結(jié)構(gòu)。
      20. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中,存儲所述基礎(chǔ)鏡像模板的一個(gè)或多個(gè)存儲器 采用緩存器分層結(jié)構(gòu)。
      【文檔編號】G06F12/08GK104380255SQ201380026137
      【公開日】2015年2月25日 申請日期:2013年5月3日 優(yōu)先權(quán)日:2012年5月24日
      【發(fā)明者】陳涵, 雷暉, 張喆 申請人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1