国产精品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>

      一種鏡像文件訪問方法、裝置及系統(tǒng)的制作方法

      文檔序號:6369580閱讀:218來源:國知局
      專利名稱:一種鏡像文件訪問方法、裝置及系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種鏡像文件訪問方法、裝置及系統(tǒng)。
      背景技術(shù)
      集群環(huán)境中利用鏈接克隆能非??焖俚牟渴鹛摂M機,并極大的減少虛擬機的升級時間和存儲空間的浪費。鏈接克隆指利用快照技術(shù)快速創(chuàng)建一定量的增量文件即子鏡像, 所有子鏡像都鏈 接到父鏡像中。子鏡像加上父鏡像組成一個真正的虛擬機磁盤文件供虛擬機訪問。虛擬機對父鏡像的修改都寫到增量文件中,讀取數(shù)據(jù)時則根據(jù)需要到子鏡像或父鏡像中讀取所需的數(shù)據(jù)。虛擬機之間相同的數(shù)據(jù)存儲在父鏡像中供虛擬機共享,因此能夠減少空間的浪費。集群環(huán)境下多用共享存儲,可以為共享存儲系統(tǒng)提供統(tǒng)一的存儲空間,并提供更好的數(shù)據(jù)保護和可擴展性,能保證應(yīng)用程序的內(nèi)置高可用性和共享存儲系統(tǒng)端的業(yè)務(wù)連續(xù)性,并減輕系統(tǒng)維護的成本和復(fù)雜性。但是隨著虛擬化技術(shù)和物理主機性能的提升,單個集群支撐的主機個數(shù)越來越多,主機上的虛擬機密度也越來越大,一般單個集群能支持上千臺虛擬機同時運行,對共享存儲系統(tǒng)中共享存儲的磁盤I0(Input/0utput,輸入/輸出)是一個很大的挑戰(zhàn)。隨著虛擬化技術(shù)和物理機性能的提升,單個集群中虛擬機個數(shù)越來越多。一般集群需支持上千臺虛擬機同時運行。鏈接克隆場景下,多個虛擬機運行在同一物理主機上,父鏡像的數(shù)據(jù)被所有虛擬機共享,訪問頻率高。但是,虛擬機個數(shù)的大量增加會導(dǎo)致共享存儲的磁盤IO隨機性增大,影響共享存儲的磁盤IO的性能,數(shù)據(jù)命中率也隨之下降。

      發(fā)明內(nèi)容
      本發(fā)明實施例提供一種鏡像文件訪問方法、裝置及系統(tǒng),可減少共享存儲系統(tǒng)的 IO訪問壓力。一方面,本發(fā)明實施例提供了一種鏡像文件訪問方法,包括在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù);若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。另一方面,本發(fā)明實施例還提供了一種鏡像文件訪問裝置,包括監(jiān)控模塊和存儲模塊,所述存儲模塊,用于存儲父鏡像副本,其中,所述父鏡像副本為存儲在共享存儲系統(tǒng)中共享存儲的父鏡像的副本;所述監(jiān)控模塊,用于在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù);若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。再一方面,本發(fā)明實施例還提供了一種鏡像文件訪問系統(tǒng),包括共享存儲系統(tǒng)和至少一個計算機節(jié)點,其中,所述共享存儲系統(tǒng)用于存儲父鏡像和子鏡像;所述計算機節(jié)點包括如權(quán)利要求上述的鏡像文件訪問裝置。實施本發(fā)明實施例,具有如下有益效果本發(fā)明通過獲取父鏡像副本存儲到本地,使得在虛擬機訪問鏡像文件時,可以先行訪問本地的父鏡像副本,查詢數(shù)據(jù),在未沒有查詢到所需數(shù)據(jù)時,再訪問共享存儲系統(tǒng)中共享存儲的父鏡像,查詢數(shù)據(jù),有效地利用了本地存儲容量和IO能力,提高了數(shù)據(jù)命中率, 減少了共享存儲系統(tǒng)的IO訪問壓力。



      為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明的鏡像文件訪問方法的第一實施例流程示意圖;圖2是本發(fā)明的鏡像文件訪問方法的第二實施例流程示意圖;圖3是本發(fā)明的鏡像文件訪問方法的第三實施例流程示意圖;圖4是本發(fā)明的鏡像文件訪問裝置的第一實施例結(jié)構(gòu)組成示意圖;圖5是本發(fā)明的鏡像文件訪問裝置的第二實施例結(jié)構(gòu)組成示意圖;圖6是本發(fā)明的鏡像文件訪問系統(tǒng)的結(jié)構(gòu)組成示意圖。
      具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。請參見圖1,是本發(fā)明的鏡像文件訪問方法的第一實施例流程示意圖,本實施例中,在共享存儲系統(tǒng)中共享存儲有父鏡像,并存儲有根據(jù)所述父鏡像創(chuàng)建鏈接克隆得到的增量文件即子鏡像,并且所有子鏡像都鏈接到所述父鏡像中,同時,在創(chuàng)建得到子鏡像后, 每個子鏡像中包括了與其關(guān)聯(lián)的父鏡像的存儲地址即第二存儲地址,所述子鏡像中可以以元數(shù)據(jù)的形式存儲所述第二存儲地址。用戶可根據(jù)這些子鏡像在計算機節(jié)點上創(chuàng)建相應(yīng)的虛擬機。在虛擬機需要讀取數(shù)據(jù)時,所述方法包括SlOl :在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)。
      S102:若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。所述父鏡像副本可通過拷貝共享存儲系統(tǒng)中共享存儲的父鏡像得到,并存儲在本地存儲器中,同時在本地記錄存儲所述父鏡像副本的存儲地址即第一存儲地址,所述第一存儲地址可以以元數(shù)據(jù)的形式記錄并維護。存儲所述父鏡像的第二存儲地址在創(chuàng)建相應(yīng)子鏡像時由子鏡像記錄并維護。虛擬機可根據(jù)本地記錄的所述第一存儲地址,到本地存儲器的所述第一存儲地址下存儲的父鏡像副本中查詢所需數(shù)據(jù),或者根據(jù)本虛擬機對應(yīng)的子鏡像中存儲的所述第二存儲地址到共享存儲系統(tǒng)中所述第二存儲地址下存儲的父鏡像中查詢所需數(shù)據(jù)。另外,在需要時,可以將所述第一存儲地址和第二存儲地址均存儲到本地存儲器中或者緩存中,以便于在需要到父鏡像中查詢數(shù)據(jù)時,直接根據(jù)本地存儲的第一存儲地址和第二存儲地址查找父鏡像副本和父鏡像;也可以將所述第一存儲地址和第二存儲地址存儲在相應(yīng)的子鏡像中,以便于在需要到父鏡像中查詢數(shù)據(jù)時,從虛擬機對應(yīng)的子鏡像中獲取第一存儲地址和第二存儲地址,根據(jù)獲取的第一存儲地址和第二存儲地址查找父鏡像副本和父鏡像。
      在虛擬機需要查詢數(shù)據(jù)時,獲取本地記錄的第一存儲地址或者從虛擬機對應(yīng)子鏡像中獲取相應(yīng)的第二存儲地址,以從父鏡像副本或者父鏡像中查詢所需數(shù)據(jù);所述網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址和所述本地存儲器中存儲父鏡像副本的第一存儲地址可預(yù)置在本地存儲器中常駐,以便在虛擬機需要訪問數(shù)據(jù)時,能夠隨時查詢相應(yīng)的存儲地址,以從父鏡像副本或者父鏡像中查詢所需數(shù)據(jù)。進一步的,在本地存儲器中存儲了所述父鏡像副本后,可開辟獨立緩存用于緩存該父鏡像副本中常用的數(shù)據(jù),即緩存常用副本數(shù)據(jù),在虛擬機需要到父鏡像中查詢數(shù)據(jù)時, 根據(jù)所述第一存儲地址,確定所述常用副本數(shù)據(jù)在本地緩存中的地址,并到相應(yīng)緩存地址中緩存的常用副本數(shù)據(jù)中查詢數(shù)據(jù),所述常用副本數(shù)據(jù)包括所述父鏡像副本中常被查詢的數(shù)據(jù);若在緩存中的常用副本數(shù)據(jù)中沒有查詢得到數(shù)據(jù)時,再到本地存儲器的所述第一存儲地址下的父鏡像副本中查詢數(shù)據(jù)。共享存儲系統(tǒng)也可緩存常用父鏡像數(shù)據(jù),所述常用父鏡像數(shù)據(jù)包括所述父鏡像中常被查詢的數(shù)據(jù),共享存儲系統(tǒng)具體可在監(jiān)測到子鏡像的個數(shù)達到預(yù)設(shè)的閾值時,獲取所述父鏡像中的常用父鏡像數(shù)據(jù),并將所述常用父鏡像數(shù)據(jù)緩存到共享存儲系統(tǒng)共享緩存中。若虛擬機在所述父鏡像副本中沒有查詢得到數(shù)據(jù),根據(jù)所述第二存儲地址,確定共享存儲系統(tǒng)的緩存中緩存常用父鏡像數(shù)據(jù)的緩存地址,到該緩存地址下緩存的常用父鏡像數(shù)據(jù)中查詢數(shù)據(jù);若在所述共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中沒有查詢得到數(shù)據(jù),訪問所述第二存儲地址下的父鏡像查詢數(shù)據(jù)。共享存儲系統(tǒng)包括在NAS (Network Access Server,網(wǎng)絡(luò)接入共享存儲系統(tǒng))架構(gòu)下的共享存儲系統(tǒng),如NFS (Network File System,網(wǎng)絡(luò)文件系統(tǒng))架構(gòu)、CIFS (Common Internet File System,通用 Internet 文件系統(tǒng))架構(gòu);在 SAN(Storage Area Network and SAN Protocols存儲區(qū)域網(wǎng)絡(luò)及其協(xié)議)架構(gòu)下的共享存儲系統(tǒng),如IP-SAN架構(gòu)。在NAS架構(gòu)下的共享存儲系統(tǒng)的緩存中劃分出一塊緩存用于緩存常用父鏡像數(shù)據(jù),而在共享存儲系統(tǒng)中單獨維護一塊緩存用于緩存常用父鏡像數(shù)據(jù)。用戶在通過計算機節(jié)點上的虛擬機查詢數(shù)據(jù)時,各個虛擬機(例如圖6中的VMl、 VM2.VM3以及VM4)可通過第一虛擬機(例如圖6中的DomO)訪問相應(yīng)的父鏡像或者父鏡像副本。所述第一虛擬機為特權(quán)虛擬機,其為一種特殊的GeustOS虛擬機,亦可稱為驅(qū)動域, 這種特殊的虛擬機在Xen Hypervisor平臺上被稱作DomO,在該虛擬機中安裝了例如網(wǎng)卡、 SCSI磁盤等真實物理設(shè)備的驅(qū)動程序,能檢測和直接訪問這些真實物理設(shè)備。其他虛擬機則可利用Hypervisor提供的相應(yīng)機制通過特權(quán)虛擬機訪問真實物理設(shè)備。其中,以DomO 為例,其被允許使用控制接口來操控應(yīng)用級的管理軟件,可以創(chuàng)建和終止后續(xù)的虛擬機,控制這些后續(xù)創(chuàng)建的虛擬機的相關(guān)調(diào)度參數(shù)、物理存儲分配以及對給定的存儲設(shè)備或網(wǎng)絡(luò)設(shè)備的訪問。當(dāng)然,每個虛擬機也可根據(jù)用戶需要,直接訪問鏡像文件讀取數(shù)據(jù)。另外,用戶還可預(yù)先設(shè)置一個訪問標(biāo)識,該訪問標(biāo)識用來在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,判定是否優(yōu)先訪問本地存儲的父鏡像副本,具體的,該訪問標(biāo)識的值為 local時用來標(biāo)識優(yōu)先訪問本地存儲的父鏡像副本,而為share時,則標(biāo)識優(yōu)先訪問共存存儲系統(tǒng)中存儲的父鏡像。在遷移源計算機節(jié)點的虛擬機至本端時,判斷本端是否存儲有所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本;在判斷結(jié)果為是時,將源計算機節(jié)點的虛擬機遷移至本端; 在判斷結(jié)果為否時,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像的標(biāo)識,并將源計算機節(jié)點的虛擬機遷移至本端;在遷移完成,且確定本端獲取并存儲了所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本后,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問本地存儲的父鏡像副本的標(biāo)識。通過上述實施例的描述可知,本發(fā)明具有以下優(yōu)點本發(fā)明通過獲取父鏡像副本存儲到本地,使得在虛擬機訪問鏡像文件時,可以先行訪問本地的父鏡像副本,查詢數(shù)據(jù),在未沒有查詢到所需數(shù)據(jù)時,再訪問共享存儲系統(tǒng)中共享存儲的父鏡像,查詢數(shù)據(jù),有效地利用了本地存儲容量和IO能力,提高了數(shù)據(jù)命中率, 減少了共享存儲系統(tǒng)的IO訪問壓力。再請參見圖2,是本發(fā)明的鏡像文件訪問方法的第二實施例流程示意圖,在本實施例中,在共享存儲系統(tǒng)共享存儲父鏡像,并存儲有根據(jù)所述父鏡像創(chuàng)建鏈接克隆得到的增量文件即子鏡像,并且所有子鏡像都鏈接到所述父鏡像中,同時,在創(chuàng)建得到子鏡像后,每個子鏡像中包括了與其關(guān)聯(lián)的父鏡像的存儲地址即第二存儲地址。用戶可根據(jù)這些子鏡像在計算機節(jié)點上創(chuàng)建相應(yīng)的虛擬機,并獲取虛擬機對應(yīng)的子鏡像同所述父鏡像的映射關(guān)系。本實施例的所述方法具體包括S201 :獲取共享存儲系統(tǒng)共享存儲的父鏡像的副本,并在本地存儲所述父鏡像副本。具體可直接拷貝共享存儲系統(tǒng)共享存儲器中存儲的父鏡像,得到父鏡像副本,將父鏡像副本存儲到本地存儲器中,然后在虛擬機的數(shù)據(jù)查詢過程中,監(jiān)測各虛擬機對父鏡像副本中數(shù)據(jù)的查詢情況,獲取常用副本數(shù)據(jù),并將這些常用副本數(shù)據(jù)緩存到開辟的獨立緩存。其中,獲取常用副本數(shù)據(jù)可以根據(jù)傳統(tǒng)的緩存替換算法如LRU(Least Recently Used,最近最少使用)算法,即可以做到在獨立緩存中只保存最近常被訪問的數(shù)據(jù),當(dāng)然,、也可將父鏡像副本中被讀取的次數(shù)超過預(yù)設(shè)的次數(shù)閾值的數(shù)據(jù)作為常用副本數(shù)據(jù)。需要說明的是,開辟獨立緩存存儲所述父鏡像副本為可選的。進一步具體的,所述S201具體可以包括判斷是否滿足父鏡像副本的獲取觸發(fā)條件,其中,滿足所述獲取觸發(fā)條件包括本地虛擬機的個數(shù)達到預(yù)設(shè)的個數(shù)閾值,或者輸入輸出口 IO時延達到預(yù)設(shè)的時延閾值;在判斷結(jié)果為滿足觸發(fā)條件時,獲取共享存儲系統(tǒng)中共享存儲的父鏡像的副本,并在本地存儲器中存儲所述父鏡像副本。S202:在虛擬機需要查詢數(shù)據(jù)時,從預(yù)置的數(shù)據(jù)查詢指示中,確定本次需要查詢的數(shù)據(jù)是存儲在所述虛擬機對應(yīng)的子鏡像中,還是存儲在父鏡像中;當(dāng)虛擬機需要訪問鏡像文件以查詢數(shù)據(jù)時,需要確定其需要查詢的數(shù)據(jù)是存儲在子鏡像中,還是存儲在父鏡像中。所述數(shù)據(jù)查詢指示預(yù)先設(shè)置在各個子鏡像中,可以以元數(shù)據(jù)的形式表示,在虛擬機需要查詢數(shù)據(jù)時,首先找到其對應(yīng)的子鏡像并讀取子鏡像中的該數(shù)據(jù)查詢指示,以確定待查詢的數(shù)據(jù)是存儲在子鏡像中還是父鏡像中,當(dāng)確定在子鏡像中時,執(zhí)行S203,否則執(zhí)行S204。S203:當(dāng)確定本次需要查詢的數(shù)據(jù)是存儲在所述子鏡像中時,訪問所述虛擬機對應(yīng)的子鏡像,并查詢數(shù)據(jù);S204:當(dāng)確定本次需要查詢的數(shù)據(jù)是存儲在所述父鏡像中時,則虛擬機需要到父鏡像中查詢數(shù)據(jù),先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)。 在所述S204中,可以將常被查詢使用的父鏡像副本中的數(shù)據(jù)緩存到本地獨立緩存中,則所述S204具體可以包括在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,獲取在本地存儲器中存儲父鏡像副本的第一存儲地址;根據(jù)所述第一存儲地址,到本地獨立緩存中緩存的常用副本數(shù)據(jù)中查詢數(shù)據(jù),所述常用副本數(shù)據(jù)包括所述父鏡像副本中常被查詢的數(shù)據(jù);若在所述獨立緩存中緩存的常用副本數(shù)據(jù)中沒有查詢得到數(shù)據(jù)時,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,查詢數(shù)據(jù)。其中,根據(jù)第一存儲地址找到相應(yīng)的緩存地址以找到緩存中的常用副本數(shù)據(jù)為現(xiàn)有技術(shù),在此不贅述。若所述S204成功查詢到所需數(shù)據(jù)即命中數(shù)據(jù)時,則結(jié)束,否則,執(zhí)行S205。S205:若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。同樣,網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)也可以將所述父鏡像常被查詢使用的數(shù)據(jù)緩存到共享緩存中,所述S205具體可以包括若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址;根據(jù)所述第二存儲地址,到共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中查詢數(shù)據(jù),所述常用父鏡像數(shù)據(jù)包括所述父鏡像中常被查詢的數(shù)據(jù);若在所述共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中沒有查詢得到數(shù)據(jù),訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。其中,根據(jù)第二存儲地址找到相應(yīng)的緩存地址以找到緩存中的常用父鏡像數(shù)據(jù)為現(xiàn)有技術(shù),在此不贅述。所述共享存儲系統(tǒng)可以是在監(jiān)測到子鏡像的個數(shù)達到預(yù)設(shè)的閾值時將所述常用父鏡像數(shù)據(jù)緩存到共享存儲系統(tǒng)共享緩存中的。另外,如果虛擬機需要訪問鏡像文件,以向子鏡像寫入相應(yīng)數(shù)據(jù)時,直接向共享存儲系統(tǒng)存儲的該虛擬機對應(yīng)的子鏡像寫入數(shù)據(jù)即可。通過上述實施例的描述可知,本發(fā)明實施例具有以下優(yōu)點本發(fā)明實施例中,通過獲取父鏡像副本存儲到計算機節(jié)點本地,使得在虛擬機需要訪問鏡像文件查詢數(shù)據(jù)時,可以先行訪問計算機節(jié)點本地存儲器中存儲的父鏡像副本讀取查詢數(shù)據(jù),在未命中查詢得到數(shù)據(jù)時,再訪問服務(wù)器共享存儲系統(tǒng)共享存儲父鏡像讀取數(shù)據(jù),換言之,本地存儲器(如磁盤)分擔(dān)了一部分共享存儲系統(tǒng)的IO訪問壓力,即利用了本地存儲容量和IO能力,有效利用本地存儲資源,減少了共享存儲系統(tǒng)的IO訪問壓力, 提高訪問性能,從而提高父鏡像的讀取效率,提升虛擬機的IO性能,一定程度上消除磁盤 IOPS性能瓶頸;此外,多個黃金鏡像備份提高容災(zāi)能力;
      進一步的,在計算機節(jié)點本地開辟獨立的緩存用于緩存父鏡像副本中常被查詢使用的數(shù)據(jù),并且在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中開辟緩存用于存儲父鏡像中常被查詢使用的數(shù)據(jù),使得在查詢數(shù)據(jù)時,可先到緩存中查詢數(shù)據(jù),在不能夠在緩存中查詢到所需數(shù)據(jù)時,再到存儲器中查詢數(shù)據(jù),進一步地提高了父鏡像的讀取效率。再請參見圖3,是本發(fā)明的鏡像文件訪問方法的第三實施例流程示意圖,本實施例的所述方法具體包括S301 :判斷是否滿足父鏡像副本的獲取觸發(fā)條件,其中,滿足所述獲取觸發(fā)條件包括本地虛擬機的個數(shù)達到預(yù)設(shè)的個數(shù)閾值,或者輸入輸出口 IO時延達到預(yù)設(shè)的時延閾值。S302 :在判斷結(jié)果為滿足觸發(fā)條件時,獲取共享存儲系統(tǒng)中共享存儲的父鏡像的副本,并在本地存儲所述父鏡像副本。否則,繼續(xù)執(zhí)行所述S301。S303:在虛擬機需要查詢數(shù)據(jù)時,從預(yù)置的數(shù)據(jù)查詢指示中,確定本次需要查詢的數(shù)據(jù)是存儲在所述虛擬機對應(yīng)的子鏡像中,還是存儲在父鏡像中。S304:當(dāng)確定本次需要查詢的數(shù)據(jù)是存儲在所述子鏡像中時,訪問所述虛擬機對應(yīng)的子鏡像,并查詢數(shù)據(jù)。S305:當(dāng)確定本次需要查詢的數(shù)據(jù)是存儲在所述父鏡像中時,則虛擬機需要到父鏡像中查詢數(shù)據(jù),先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)。S306 :根據(jù)所述第一存儲地址,到本地獨立緩存中緩存的常用副本數(shù)據(jù)中查詢數(shù)據(jù),所述常用副本數(shù)據(jù)包括所述父鏡像副本中常被查詢的數(shù)據(jù)。S307:若在所述獨立緩存中緩存的常用副本數(shù)據(jù)中沒有查詢得到數(shù)據(jù)時,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,查詢數(shù)據(jù)。S308:若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址。S309 :根據(jù)所述第二存儲地址,到共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中查詢數(shù)據(jù),所述常用父鏡像數(shù)據(jù)包括所述父鏡像中常被查詢的數(shù)據(jù)。其中,所述共享存儲系統(tǒng)是在監(jiān)測到子鏡像的個數(shù)達到預(yù)設(shè)的閾值時將所述常用父鏡像數(shù)據(jù)緩存到共享存儲系統(tǒng)共享緩存中的。S310 :若在所述共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中沒有查詢得到數(shù)據(jù),訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。進一步可選的,在本實施例中,在執(zhí)行所述S303確定本次需要查詢的數(shù)據(jù)是存儲在所述父鏡像中時之后,執(zhí)行所述S305之前,還可包括如下步驟根據(jù)預(yù)置的訪問標(biāo)識判斷是否優(yōu)先訪問本地存儲的父鏡像副本;若是,則執(zhí)行所述S305 ;否則,直接獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      進一步可選的,在用戶需要將源計算機節(jié)點的虛擬機遷移到目標(biāo)計算機節(jié)點時, 即將源計算機節(jié)點的虛擬機遷移至本端時,包括以下步驟判斷本端是否存儲有所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本;在判斷結(jié)果為是時,將源計算機節(jié)點的虛擬機遷移至本端;在判斷結(jié)果為否時,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像的標(biāo)識,并將源計算機節(jié)點的虛擬機遷移至本端;在遷移完成,且確定本端獲取并存儲了所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本后,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問本地存儲的父鏡像副本的標(biāo)識。通過上述實施例的描述可知,本發(fā)明實施例具有以下優(yōu)點本發(fā)明實施例中,通過獲取父鏡像副本存儲到計算機節(jié)點本地,使得在虛擬機需要訪問鏡像文件查詢數(shù)據(jù)時,可以先行訪問計算機節(jié)點本地存儲器中存儲的父鏡像副本讀取查詢數(shù)據(jù),在未命中查詢得到數(shù)據(jù)時,再訪問服務(wù)器共享存儲系統(tǒng)共享存儲父鏡像讀取數(shù)據(jù),換言之,本地存儲器(如磁盤)分擔(dān)了一部分共享存儲系統(tǒng)的IO訪問壓力,即利用了本地存儲容量和IO能力,有效利用本地存儲資源,減少了共享存儲系統(tǒng)的IO訪問壓力, 提高訪問性能,從而提高父鏡像的讀取效率,提升虛擬機的IO性能,一定程度上消除磁盤 IOPS性能瓶頸;此外,多個黃金鏡像備份提高容災(zāi)能力;進一步的,在計算機節(jié)點本地開辟獨立的緩存用于緩存父鏡像副本中常被查詢使用的數(shù)據(jù),并且在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中開辟緩存用于存儲父鏡像中常被查詢使用的數(shù)據(jù),使得在查詢數(shù)據(jù)時,可先到緩存中查詢數(shù)據(jù),在不能夠在緩存中查詢到所需數(shù)據(jù)時,再到存儲器中查詢數(shù)據(jù),進一步地提高了父鏡像的讀取效率。下面對本發(fā)明的鏡像文件訪問系統(tǒng)及裝置進行詳細描述。具體如圖4所示,是本發(fā)明的鏡像文件訪問裝置的第一實施例結(jié)構(gòu)組成示意圖。 所述鏡像文件訪問裝置設(shè)置在如上述方法第一實施例中所述的DomO等特權(quán)虛擬機中。本實施例中,所述鏡像文件訪問裝置具體包括存儲模塊21和監(jiān)控模塊22。所述存儲模塊21,用于存儲父鏡像副本,其中,所述父鏡像副本為存儲在共享存儲系統(tǒng)共享存儲的父鏡像的副本;所述監(jiān)控模塊22,用于在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù);若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。所述鏡像文件訪問裝置可以通過直接拷貝共享存儲系統(tǒng)中共享存儲的父鏡像的方式,獲得父鏡像副本并保存在所述存儲模塊21中。所述子鏡像中的在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)存儲父鏡像的第二存儲地址是在創(chuàng)建鏈接克隆時由子鏡像來記錄并維護,子鏡像可以以元數(shù)據(jù)的形式記錄并維護所述第二存儲地址,所述監(jiān)控模塊22可在需要時到相應(yīng)虛擬機對應(yīng)的子鏡像中獲取第二存儲地址;在通過拷貝等方式得到父鏡像副本,并存儲到本地存儲器后,所述鏡像文件訪問裝置會記錄在所述本地存儲器中存儲父鏡像副本的第一存儲地址,所述第一存儲地址可同樣以元數(shù)據(jù)的形式記錄并維護。在虛擬機需要訪問數(shù)據(jù)時,所述監(jiān)控模塊22可獲取相應(yīng)的第一存儲地址或者第二存儲地址,以從父 鏡像副本或者父鏡像中查詢所需數(shù)據(jù);所述第二存儲地址和所述第一存儲地址可存儲到本地存儲器中常駐,以便在虛擬機需要訪問數(shù)據(jù)時,所述監(jiān)控模塊22能夠隨時查詢相應(yīng)的存儲地址,從父鏡像副本或者父鏡像中查詢所需數(shù)據(jù)。通過上述實施例的描述可知,本發(fā)明具有以下優(yōu)點本發(fā)明通過獲取父鏡像副本存儲到本地,使得在虛擬機訪問鏡像文件時,可以先行訪問本地的父鏡像副本,查詢數(shù)據(jù),在未沒有查詢到所需數(shù)據(jù)時,再訪問共享存儲系統(tǒng)中共享存儲的父鏡像,查詢數(shù)據(jù),有效地利用了本地存儲容量和IO能力,提高了數(shù)據(jù)命中率, 減少了共享存儲系統(tǒng)的IO訪問壓力。進一步的再請參見圖5,是本發(fā)明的鏡像文件訪問裝置的第二實施例結(jié)構(gòu)組成示意圖。所述鏡像文件訪問裝置可設(shè)置在如上述方法第一實施例中所述的DomO等特權(quán)虛擬機中。在本實施例中,所述鏡像文件訪問裝置包括上述第一實施例中的存儲模塊21和監(jiān)控模塊22。進一步的,在本實施例中,所述監(jiān)控模塊22具體包括確定單元221,用于在虛擬機需要查詢數(shù)據(jù)時,從預(yù)置的數(shù)據(jù)查詢指示中,確定本次需要查詢的數(shù)據(jù)是存儲在所述虛擬機對應(yīng)的子鏡像中,還是存儲在父鏡像中;子鏡像訪問單元222,用于當(dāng)所述確定單元221確定本次需要查詢的數(shù)據(jù)是存儲在所述子鏡像中時,訪問所述虛擬機對應(yīng)的子鏡像,并查詢數(shù)據(jù);父鏡像訪問單元223,用于當(dāng)所述確定單元221確定本次需要查詢的數(shù)據(jù)是存儲在所述父鏡像中時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù);若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。進一步的,所述鏡像文件訪問裝置還可包括緩存模塊23。所述緩存模塊23,用于獲取所述父鏡像副本中的常用副本數(shù)據(jù),并緩存所述獲取的常用副本數(shù)據(jù),其中,獲取常用副本數(shù)據(jù)可以根據(jù)傳統(tǒng)的緩存替換算法如LRU算法,即可以做到在獨立緩存中只保存父鏡像副本中最近常被訪問的數(shù)據(jù)。當(dāng)然也可將父鏡像副本中被讀取的次數(shù)超過預(yù)設(shè)的次數(shù)閾值的數(shù)據(jù)。將常用的父鏡像副本數(shù)據(jù)緩存到緩存中,可加快對這些常用數(shù)據(jù)的查詢,同時,在網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中,也可以將父鏡像中常被查詢使用的數(shù)據(jù)緩存到共享緩存中。所述共享存儲系統(tǒng)包括在NAS(Network Access Server,網(wǎng)絡(luò)接入共享存儲系統(tǒng))架構(gòu)下的共享存儲系統(tǒng),如NFS(Network File System,網(wǎng)絡(luò)文件系統(tǒng))架構(gòu)、 CIFS(Common Internet File System,通用 Internet 文件系統(tǒng))架構(gòu);在 SAN(Storage Area Network and SAN Protocols存儲區(qū)域網(wǎng)絡(luò)及其協(xié)議)架構(gòu)下的共享存儲系統(tǒng),如 IP-SAN架構(gòu)。在NAS架構(gòu)下的共享存儲系統(tǒng)的緩存中劃分出一塊緩存用于緩存常用父鏡像數(shù)據(jù),而在共享存儲系統(tǒng)中單獨維護一塊緩存用于緩存常用父鏡像數(shù)據(jù)。在此情況下,所述父鏡像訪問單元223具體可包括地址獲取子單元,用于獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,所述第一存儲地址預(yù)置在本地存儲器中;第一訪問子單元,用于根據(jù)所述第一存儲地址,到所述緩存模塊中緩存的常用副本數(shù)據(jù)中查詢數(shù)據(jù);根據(jù)第一存儲地址可以找到該地址下存儲的父鏡像副本對應(yīng)常用副本數(shù)據(jù)在緩存中的緩存地址。第二訪問子單元,用于若在所述第一訪問子單元在緩存模塊中緩存的常用副本數(shù)據(jù)中沒有查詢得到數(shù)據(jù)時,再訪問本地存儲器中所述第一存儲地址下的父鏡像副本,查詢數(shù)據(jù);所述地址獲取子單元還用于若在所述第二訪問子單元在父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,所述第二存儲地址預(yù)置在本地存儲器中;第三訪問子單元,用于根據(jù)所述第二存儲地址,到共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中查詢數(shù)據(jù),所述常用父鏡像數(shù)據(jù)包括所述父鏡像中常被查詢的數(shù)據(jù),其中,所述共享存儲系統(tǒng)是在監(jiān)測到子鏡像的個數(shù)達到預(yù)設(shè)的閾值時將所述常用父鏡像數(shù)據(jù)緩存到共享存儲系統(tǒng)共享緩存中的;根據(jù)第一存儲地址可以找到該地址下存儲的父鏡像副本對應(yīng)常用副本數(shù)據(jù)在緩存中的緩存地址。第四訪問子單元,用于若在所述第三訪問子單元在共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中沒有查詢得到數(shù)據(jù),訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。上述的根據(jù)第一存儲地址或第二存儲地址找到相應(yīng)的緩存地址為現(xiàn)有技術(shù),在此不贅述。進一步的,所述鏡像文件訪問裝置還可包括獲取模塊24,用于判斷是否滿足父鏡像副本的獲取觸發(fā)條件,并在判斷結(jié)果為滿足觸發(fā)條件時,獲取共享存儲系統(tǒng)共享存儲的父鏡像的副本,并將所述獲取的父鏡像副本存儲到所述存儲模塊21中; 其中,滿足所述獲取觸發(fā)條件包括本地虛擬機的個數(shù)達到預(yù)設(shè)的個數(shù)閾值,或者輸入輸出口 10時延達到預(yù)設(shè)的時延閾值。進一步的,所述鏡像文件訪問裝置還可設(shè)置一訪問標(biāo)識,該訪問標(biāo)識用于確定是否優(yōu)先訪問本地存儲的父鏡像副本,該訪問標(biāo)識的值可以為local和shared,當(dāng)值為local 時,優(yōu)先訪問本地存儲的父鏡像副本,當(dāng)值為shared時,則優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像。具體如圖5所示,所述鏡像文件訪問裝置還可包括標(biāo)識檢測模塊25,用于在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,根據(jù)預(yù)置的訪問標(biāo)識判斷是否優(yōu)先訪問本地存儲的父鏡像副本;若是,則通知所述監(jiān)控模塊22先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù);否則,通知所述監(jiān)控模塊22直接獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。在計算機節(jié)點的用戶需要將其他計算機節(jié)點上的虛擬機遷移過來時,所述鏡像文件訪問裝置還需要進行遷移控制,如圖5所示,所述鏡像文件訪問裝置還包括判斷模塊26,用于計算機節(jié)點3即遷移源計算機節(jié)點的虛擬機至本端即計算機節(jié)點時,判斷本 端是否存儲有所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本;遷移模塊27,用于在所述判斷模塊26的判斷結(jié)果為是時,將源計算機節(jié)點的虛擬機遷移至本端;在所述判斷模塊的判斷結(jié)果為否時,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像的標(biāo)識,并將源計算機節(jié)點的虛擬機遷移至本端;并在遷移完成且確定本端獲取并存儲了所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本后,將所述訪問標(biāo)識置為用于表明優(yōu)先本地存儲的父鏡像副本的標(biāo)識。本實施例中,本端已經(jīng)存儲了所述源計算機節(jié)點中的各虛擬機對應(yīng)子鏡像的父鏡像的副本。所以由于計算機節(jié)點中存在父鏡像副本,所以所述遷移模塊27僅進行拷貝遷移即可。如果本端不存在父鏡像副本時,在拷貝遷移虛擬機時,就需要將訪問標(biāo)識置為表明優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像的標(biāo)識,如置為上述的shared。進一步地,所述鏡像文件訪問裝置還可包括寫入控制模塊,用于在虛擬機訪問鏡像文件寫入數(shù)據(jù)時,向共享存儲系統(tǒng)存儲的該虛擬機對應(yīng)的子鏡像寫入數(shù)據(jù)。例如,計算機節(jié)點I的用戶通過VMl需要向鏡像文件寫入數(shù)據(jù)時,所述鏡像文件訪問裝置通過所述寫入控制模塊直接向deltal寫入數(shù)據(jù)。需要說明的是,所述鏡像文件訪問裝置可以設(shè)置在DomO中,在其他實施例中,所述鏡像文件訪問裝置也可直接設(shè)置在計算機節(jié)點的每一個VM中,以完成對VM訪問鏡像文件的訪問控制。通過上述實施例的描述可知,本發(fā)明實施例具有以下優(yōu)點本發(fā)明實施例中,通過獲取父鏡像副本存儲到計算機節(jié)點本地,使得在虛擬機需要訪問鏡像文件查詢數(shù)據(jù)時,可以先行訪問計算機節(jié)點本地存儲器中存儲的父鏡像副本讀取查詢數(shù)據(jù),在未命中查詢得到數(shù)據(jù)時,再訪問服務(wù)器共享存儲系統(tǒng)共享存儲父鏡像讀取數(shù)據(jù),換言之,本地存儲器(如磁盤)分擔(dān)了一部分共享存儲系統(tǒng)的IO訪問壓力,即利用了本地存儲容量和IO能力,有效利用本地存儲資源,減少了共享存儲系統(tǒng)的IO訪問壓力, 提高訪問性能,從而提高父鏡像的讀取效率,提升虛擬機的IO性能,一定程度上消除磁盤 IOPS性能瓶頸;此外,多個黃金鏡像備份提高容災(zāi)能力;進一步的,在計算機節(jié)點本地開辟獨立的緩存用于緩存父鏡像副本中常被查詢使用的數(shù)據(jù),并且在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中開辟緩存用于存儲父鏡像中常被查詢使用的數(shù)據(jù),使得在查詢數(shù)據(jù)時,可先到緩存中查詢數(shù)據(jù),在不能夠在緩存中查詢到所需數(shù)據(jù)時,再到存儲器中查詢數(shù)據(jù),進一步地提高了父鏡像的讀取效率。請參見圖6,是本發(fā)明的鏡像文件訪問系統(tǒng)的結(jié)構(gòu)組成示意圖,本實施例的所述系統(tǒng)包括共享存儲系統(tǒng)I、計算機節(jié)點2以及計算接節(jié)點3,所述共享存儲系統(tǒng)用于存儲父鏡像和子鏡像,所述計算機節(jié)點2中包括虛擬機VM1、虛擬機VM2及其最初創(chuàng)建得到的第一虛擬機DomO,所述計算節(jié)點3中包括虛擬機VM3、虛擬機VM4及其最初創(chuàng)建得到的第一虛擬機 DomO。在計算機節(jié)點I和計算機節(jié)點3的DomO中,均包括上述任一裝置項實施例中的鏡像文件訪問裝置。所述共享存儲系統(tǒng)I可在共享存儲系統(tǒng)的共享存儲器中存儲所述父鏡像,然后根據(jù)所述父鏡像創(chuàng)建鏈接克隆得到子鏡像delta,所述共享存儲系統(tǒng)I可以在創(chuàng)建得到的子鏡像個數(shù)達到預(yù)設(shè)的閾值時,在共享存儲系統(tǒng)的緩存中開辟共享緩存用于緩存所述父鏡像中被經(jīng)常查詢的數(shù)據(jù),即緩存常用父鏡像數(shù)據(jù),用于加快對父鏡像的讀取速度。用戶可根據(jù)共享存儲系統(tǒng)I中的子鏡像delta在所述計算機節(jié)點2和計算機節(jié)點 3中創(chuàng)建虛擬機,具體的,所述計算機節(jié)點2根據(jù)所述共享存儲系統(tǒng)I中的deltal創(chuàng)建VMl, 根據(jù)delta2創(chuàng)建VM2,所述計算機節(jié)點3根據(jù)所述共享存 儲系統(tǒng)I中的delta3創(chuàng)建VM3, 根據(jù)delta4創(chuàng)建VM4。通過上述實施例的描述可知,本發(fā)明具有以下優(yōu)點本發(fā)明實施例中,通過獲取父鏡像副本存儲到計算機節(jié)點本地,使得在虛擬機需要訪問鏡像文件查詢數(shù)據(jù)時,可以先行訪問計算機節(jié)點本地存儲器中存儲的父鏡像副本讀取查詢數(shù)據(jù),在未命中查詢得到數(shù)據(jù)時,再訪問服務(wù)器共享存儲系統(tǒng)共享存儲父鏡像讀取數(shù)據(jù),換言之,本地存儲器(如磁盤)分擔(dān)了一部分共享存儲系統(tǒng)的IO訪問壓力,即利用了本地存儲容量和IO能力,有效利用本地存儲資源,減少了共享存儲系統(tǒng)的IO訪問壓力, 提高訪問性能,從而提高父鏡像的讀取效率,提升虛擬機的IO性能,一定程度上消除磁盤 IOPS性能瓶頸;此外,多個黃金鏡像備份提高容災(zāi)能力;進一步的,在計算機節(jié)點本地開辟獨立的緩存用于緩存父鏡像副本中常被查詢使用的數(shù)據(jù),并且在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中開辟緩存用于存儲父鏡像中常被查詢使用的數(shù)據(jù),使得在查詢數(shù)據(jù)時,可先到緩存中查詢數(shù)據(jù),在不能夠在緩存中查詢到所需數(shù)據(jù)時,再到存儲器中查詢數(shù)據(jù),進一步地提高了父鏡像的讀取效率。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
      權(quán)利要求
      1.一種鏡像文件訪問方法,其特征在于,包括 在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù); 若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      2.如權(quán)利要求I所述的方法,其特征在于,所述在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)之前,還包括 在虛擬機需要查詢數(shù)據(jù)時,從預(yù)置的數(shù)據(jù)查詢指示中,確定本次需要查詢的數(shù)據(jù)是存儲在所述虛擬機對應(yīng)的子鏡像中,還是存儲在父鏡像中; 當(dāng)確定本次需要查詢的數(shù)據(jù)是存儲在所述子鏡像中時,訪問所述虛擬機對應(yīng)的子鏡像,并查詢數(shù)據(jù); 當(dāng)確定本次需要查詢的數(shù)據(jù)是存儲在所述父鏡像中時,則虛擬機需要到父鏡像中查詢數(shù)據(jù),執(zhí)行所述先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)。
      3.如權(quán)利要求I或2所述的方法,其特征在于,所述在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù),包括 在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,所述第一存儲地址預(yù)置在本地存儲器中; 根據(jù)所述第一存儲地址,到本地獨立緩存中緩存的常用副本數(shù)據(jù)中查詢數(shù)據(jù),所述常用副本數(shù)據(jù)包括所述父鏡像副本中常被查詢的數(shù)據(jù); 若在所述獨立緩存中緩存的常用副本數(shù)據(jù)中沒有查詢得到數(shù)據(jù)時,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,查詢數(shù)據(jù)。
      4.如權(quán)利要求I或2所述的方法,其特征在于,所述若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù),包括 若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,所述第二存儲地址預(yù)置在本地存儲器中; 根據(jù)所述第二存儲地址,到共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中查詢數(shù)據(jù),所述常用父鏡像數(shù)據(jù)包括所述父鏡像中常被查詢的數(shù)據(jù); 若在所述共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中沒有查詢得到數(shù)據(jù),訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      5.如權(quán)利要求4所述的方法,其特征在于,所述共享存儲系統(tǒng)是在監(jiān)測到子鏡像的個數(shù)達到預(yù)設(shè)的閾值時將所述常用父鏡像數(shù)據(jù)緩存到共享存儲系統(tǒng)共享緩存中的。
      6.如權(quán)利要求I至5任一項所述的方法,其特征在于,所述在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)之前,還包括判斷是否滿足父鏡像副本的獲取觸發(fā)條件,其中,滿足所述獲取觸發(fā)條件包括本地虛擬機的個數(shù)達到預(yù)設(shè)的個數(shù)閾值,或者輸入輸出口 IO時延達到預(yù)設(shè)的時延閾值; 在判斷結(jié)果為滿足觸發(fā)條件時,獲取共享存儲系統(tǒng)中共享存儲的父鏡像的副本,并在本地存儲器中存儲所述父鏡像副本。
      7.如權(quán)利要求1-6任一項所述的方法,其特征在于,在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù)之前,還包括 虛擬機需要到父鏡像中查詢數(shù)據(jù)時,根據(jù)預(yù)置的訪問標(biāo)識判斷是否優(yōu)先訪問本地存儲的父鏡像副本; 若是,則執(zhí)行所述先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù); 否則,直接獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      8.如權(quán)利要求7所述的方法,其特征在于,還包括 在遷移源計算機節(jié)點的虛擬機至本端時,判斷本端是否存儲有所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本; 在判斷結(jié)果為是時,將源計算機節(jié)點的虛擬機遷移至本端; 在判斷結(jié)果為否時,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像的標(biāo)識,并將源計算機節(jié)點的虛擬機遷移至本端; 在遷移完成,且確定本端獲取并存儲了所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本后,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問本地存儲的父鏡像副本的標(biāo)識。
      9.一種鏡像文件訪問裝置,其特征在于,包括監(jiān)控模塊和存儲模塊, 所述存儲模塊,用于存儲父鏡像副本,其中,所述父鏡像副本為存儲在共享存儲系統(tǒng)中共享存儲的父鏡像的副本; 所述監(jiān)控模塊,用于在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù); 若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      10.如權(quán)利要求9所述的裝置,其特征在于,所述監(jiān)控模塊具體包括 確定單元,用于在虛擬機需要查詢數(shù)據(jù)時,從預(yù)置的數(shù)據(jù)查詢指示中,確定本次需要查詢的數(shù)據(jù)是存儲在所述虛擬機對應(yīng)的子鏡像中,還是存儲在父鏡像中; 子鏡像訪問單元,用于當(dāng)所述確定單元確定本次需要查詢的數(shù)據(jù)是存儲在所述子鏡像中時,訪問所述虛擬機對應(yīng)的子鏡像,并查詢數(shù)據(jù); 父鏡像訪問單元,用于當(dāng)所述確定單元確定本次需要查詢的數(shù)據(jù)是存儲在所述父鏡像中時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù); 若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      11.如權(quán)利要求10所述的裝置,其特征在于,還包括 緩存模塊,用于獲取所述父鏡像副本中的常用副本數(shù)據(jù),并緩存所述獲取的常用副本數(shù)據(jù),所述常用副本數(shù)據(jù)包括所述父鏡像副本中常被查詢的數(shù)據(jù)。
      12.如權(quán)利要求11所述的裝置,其特征在于,所述父鏡像訪問單元包括 地址獲取子単元,用于獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,所述第一存儲地址預(yù)置在本地存儲器中; 第一訪問子単元,用于根據(jù)所述第一存儲地址,到所述緩存模塊中緩存的常用副本數(shù)據(jù)中查詢數(shù)據(jù); 第二訪問子単元,用于若在所述第一訪問子単元在緩存模塊中緩存的常用副本數(shù)據(jù)中沒有查詢得到數(shù)據(jù)時,再訪問本地存儲器中所述第一存儲地址下的父鏡像副本,查詢數(shù)據(jù); 所述地址獲取子単元還用于若在所述第二訪問子単元在父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,所述第二存儲地址預(yù)置在本地存儲器中; 第三訪問子単元,用于根據(jù)所述第二存儲地址,到共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中查詢數(shù)據(jù),所述常用父鏡像數(shù)據(jù)包括所述父鏡像中常被查詢的數(shù)據(jù),其中,所述共享存儲系統(tǒng)是在監(jiān)測到子鏡像的個數(shù)達到預(yù)設(shè)的閾值時將所述常用父鏡像數(shù)據(jù)緩存到共享存儲系統(tǒng)共享緩存中的; 第四訪問子単元,用于若在所述第三訪問子単元在共享存儲系統(tǒng)的共享緩存中緩存的常用父鏡像數(shù)據(jù)中沒有查詢得到數(shù)據(jù),訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      13.如權(quán)利要求9-12任一項所述的裝置,其特征在于,還包括 獲取模塊,用于判斷是否滿足父鏡像副本的獲取觸發(fā)條件,并在判斷結(jié)果為滿足觸發(fā)條件吋,獲取共享存儲系統(tǒng)中共享存儲的父鏡像的副本,并將所述獲取的父鏡像副本存儲到所述存儲模塊中; 其中,滿足所述獲取觸發(fā)條件包括本地虛擬機的個數(shù)達到預(yù)設(shè)的個數(shù)閾值,或者輸入輸出ロ IO時延達到預(yù)設(shè)的時延閾值。
      14.如權(quán)利要求9-13任一項所述的裝置,其特征在于,還包括 標(biāo)識檢測模塊,用于在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,根據(jù)預(yù)置的訪問標(biāo)識判斷是否優(yōu)先訪問本地存儲的父鏡像副本; 若是,則通知所述監(jiān)控模塊先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù); 否則,通知所述監(jiān)控模塊直接獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。
      15.如權(quán)利要求14所述的裝置,其特征在于,還包括 判斷模塊,用于遷移源計算機節(jié)點的虛擬機至本端時,判斷本端是否存儲有所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本;遷移模塊,用于在所述判斷模塊的判斷結(jié)果為是時,將源計算機節(jié)點的虛擬機遷移至本端;在所述判斷模塊的判斷結(jié)果為否時,將所述訪問標(biāo)識置為用于表明優(yōu)先訪問共享存儲系統(tǒng)共享存儲的父鏡像的標(biāo)識,并將源計算機節(jié)點的虛擬機遷移至本端;并在遷移完成且確定本端獲取并存儲了所述源計算機節(jié)點的虛擬機對應(yīng)的父鏡像副本后,將所述訪問標(biāo)識置為用于表明優(yōu)先本地存儲的父鏡像副本的標(biāo)識。
      16.一種鏡像文件訪問系統(tǒng),其特征在于,包括共享存儲系統(tǒng)和至少ー個計算機節(jié)點,其中,所述共享存儲系統(tǒng)用于存儲父鏡像和子鏡像;所述計算機節(jié)點包括如權(quán)利要求9-15任一項所述的鏡像文件訪問裝置。
      全文摘要
      本發(fā)明實施例公開了一種鏡像文件訪問方法、裝置及系統(tǒng),其中,所述方法包括在虛擬機需要到父鏡像中查詢數(shù)據(jù)時,先獲取在本地存儲器中存儲父鏡像副本的第一存儲地址,訪問本地存儲器中所述第一存儲地址下的父鏡像副本,并查詢數(shù)據(jù);若在存儲于本地存儲器中的所述父鏡像副本中沒有查詢得到數(shù)據(jù),獲取在網(wǎng)絡(luò)側(cè)共享存儲系統(tǒng)中存儲父鏡像的第二存儲地址,訪問網(wǎng)絡(luò)側(cè)的共享存儲系統(tǒng)中所述第二存儲地址下的父鏡像,并查詢數(shù)據(jù)。采用本發(fā)明,可提高數(shù)據(jù)命中率,減輕對共享存儲的磁盤IO的訪問壓力。
      文檔編號G06F9/455GK102708060SQ20121014845
      公開日2012年10月3日 申請日期2012年5月14日 優(yōu)先權(quán)日2012年5月14日
      發(fā)明者齊江 申請人:華為技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1