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