專利名稱:一種虛擬機(jī)數(shù)據(jù)的訪問方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種虛擬機(jī)數(shù)據(jù)的訪問方法和設(shè)備。
背景技術(shù):
虛擬機(jī)是通過軟件模擬實(shí)現(xiàn)具有完整硬件系統(tǒng)功能并且運(yùn)行在一個(gè)完全隔離環(huán)境中的計(jì)算機(jī)系統(tǒng)。通過虛擬機(jī)技術(shù),在一臺(tái)物理計(jì)算機(jī)上可以模擬出一臺(tái)或多臺(tái)虛擬的計(jì)算機(jī)。這些虛擬機(jī)完全就像真正的物理計(jì)算機(jī)那樣進(jìn)行工作,例如可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問網(wǎng)絡(luò)資源等。雖然虛擬機(jī)只是物理計(jì)算機(jī)上的一個(gè)應(yīng)用程序,是虛擬出來的一個(gè)計(jì)算機(jī),但是對(duì)于在虛擬機(jī)中運(yùn)行的應(yīng)用程序而言,它就像是在真正的物理計(jì)算機(jī)中進(jìn)行工作一樣。通常,虛擬機(jī)的數(shù)據(jù)存儲(chǔ)在虛擬磁盤中,而虛擬磁盤多以鏡像文件、邏輯虛擬卷、 邏輯磁盤或邏輯磁盤分區(qū)的形式存于本地的物理計(jì)算機(jī)的物理磁盤中,虛擬機(jī)通過訪問所在物理計(jì)算機(jī)的物理磁盤來訪問各種數(shù)據(jù)。如果本地物理計(jì)算機(jī)停機(jī)或者損壞,將會(huì)導(dǎo)致虛擬機(jī)的數(shù)據(jù)丟失,因此,虛擬機(jī)的數(shù)據(jù)存儲(chǔ)方式的安全性和可靠性受本地物理計(jì)算機(jī)的影響,其安全性和可靠性較差,這極大地限制了虛擬機(jī)技術(shù)的發(fā)展和應(yīng)用,如何提高虛擬機(jī)存儲(chǔ)數(shù)據(jù)的安全性和可靠性是本領(lǐng)域技術(shù)人員所面對(duì)的共同問題。
發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問方法和設(shè)備,利用目前的云計(jì)算或云存儲(chǔ)等大規(guī)模分布式計(jì)算環(huán)境,為數(shù)據(jù)存儲(chǔ)提供高可靠性,以使虛擬機(jī)的虛擬磁盤同時(shí)存于分布式存儲(chǔ)系統(tǒng)各個(gè)物理計(jì)算機(jī)的物理磁盤中,以提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。本申請(qǐng)實(shí)施例公開公開了如下技術(shù)方案一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備,包括訪問請(qǐng)求處理模塊、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊和虛擬磁盤,訪問請(qǐng)求處理模塊,用于接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊,用于從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作?!N虛擬機(jī)數(shù)據(jù)的訪問方法,包括接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作。
由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備以及實(shí)施該設(shè)備的方法,基于地址映射可以使虛擬機(jī)的虛擬磁盤同時(shí)存于分布式存儲(chǔ)系統(tǒng)各個(gè)物理計(jì)算機(jī)的物理磁盤中,最終提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。
為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,對(duì)于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的一個(gè)實(shí)施例的結(jié)構(gòu)圖;圖2為本申請(qǐng)一種基于分布式的虛擬機(jī)數(shù)據(jù)的訪問系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本申請(qǐng)一種映射關(guān)系示意圖;圖4為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖;圖5為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖;圖6為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖;圖7為本申請(qǐng)一種數(shù)據(jù)快照的原理示意圖;圖8為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問方法的一個(gè)實(shí)施例的流程圖;圖9為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問方法的另一個(gè)實(shí)施例的流程圖;圖10為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問方法的一個(gè)實(shí)施例的流程圖;圖11為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)虛擬機(jī)單機(jī)啟動(dòng)的場(chǎng)景示意圖;圖12為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)虛擬機(jī)多機(jī)啟動(dòng)的場(chǎng)景示意圖;圖13為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)虛擬機(jī)遷移的場(chǎng)景示意圖;圖14為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)共享存儲(chǔ)的場(chǎng)景示意圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本申請(qǐng)實(shí)施例進(jìn)行詳細(xì)描述。實(shí)施例一請(qǐng)參閱圖1,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的一個(gè)實(shí)施例的結(jié)構(gòu)圖,該設(shè)備訪問請(qǐng)求處理模塊101、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102和虛擬磁盤103 訪問請(qǐng)求處理模塊101,用于接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤103的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102,用于從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作。例如,當(dāng)獲取的數(shù)據(jù)訪問請(qǐng)求的類型為寫入數(shù)據(jù)時(shí),將映射得到的物理存儲(chǔ)空間信息發(fā)送給分布式存儲(chǔ)系統(tǒng),以便分布式存儲(chǔ)系統(tǒng)根據(jù)獲得的物理存儲(chǔ)空間信息執(zhí)行數(shù)據(jù)寫入;當(dāng)獲取的數(shù)據(jù)訪問請(qǐng)求的類型為讀取數(shù)據(jù)時(shí),根據(jù)映射得到的物理存儲(chǔ)空間信息從分布式存儲(chǔ)系統(tǒng)中讀取數(shù)據(jù),將讀取的數(shù)據(jù)反饋給虛擬機(jī)。其中,請(qǐng)參閱圖2,其為本申請(qǐng)中一種基于分布式的虛擬機(jī)數(shù)據(jù)的訪問系統(tǒng)的結(jié)構(gòu)示意圖。虛擬機(jī)數(shù)據(jù)的訪問設(shè)備作為虛擬機(jī)與分布式存儲(chǔ)系統(tǒng)之間的數(shù)據(jù)傳輸通道,向虛擬機(jī)提供全局的、一致的、完整的、高效的、安全的、兼容的數(shù)據(jù)訪問服務(wù)。虛擬機(jī)數(shù)據(jù)的訪問設(shè)備包括訪問請(qǐng)求處理模塊、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊和虛擬磁盤,訪問請(qǐng)求處理模塊接收虛擬機(jī)發(fā)送的每一個(gè)數(shù)據(jù)訪問請(qǐng)求,將所有接收到的數(shù)據(jù)訪問請(qǐng)求都加入到請(qǐng)求隊(duì)列中。請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,虛擬存儲(chǔ)空間進(jìn)一步與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射。例如,在虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求中包括請(qǐng)求類型、數(shù)據(jù)起始地址、數(shù)據(jù)長(zhǎng)度和地址空間,其中,請(qǐng)求類型用于指示數(shù)據(jù)訪問請(qǐng)求的類型, 例如讀取、寫入或者刪除等數(shù)據(jù)訪問請(qǐng)求類型;數(shù)據(jù)起始地址用于指示數(shù)據(jù)訪問請(qǐng)求所要訪問的數(shù)據(jù)在虛擬磁盤的虛擬存儲(chǔ)空間中的起始地址。根據(jù)數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度可以進(jìn)一步獲得每個(gè)數(shù)據(jù)訪問請(qǐng)求所要訪問的數(shù)據(jù)在虛擬磁盤的虛擬存儲(chǔ)空間的存儲(chǔ)空間。地址空間用于指示當(dāng)獲得數(shù)據(jù)訪問請(qǐng)求所要訪問的數(shù)據(jù)后,該部分?jǐn)?shù)據(jù)在虛擬機(jī)的物理計(jì)算機(jī)的內(nèi)存中進(jìn)行緩存時(shí)的存儲(chǔ)空間。訪問請(qǐng)求處理模塊從接收的數(shù)據(jù)訪問請(qǐng)求中提取出上述請(qǐng)求信息后,將提取的請(qǐng)求信息加入到請(qǐng)求隊(duì)列中,由于請(qǐng)求隊(duì)列的每一個(gè)請(qǐng)求中都包含有的請(qǐng)求類型、數(shù)據(jù)起始地址、數(shù)據(jù)長(zhǎng)度和地址空間這四個(gè)請(qǐng)求信息,由數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度可以確定每個(gè)數(shù)據(jù)訪問請(qǐng)求所要訪問的數(shù)據(jù)在虛擬磁盤的虛擬存儲(chǔ)空間的存儲(chǔ)空間,即,每個(gè)數(shù)據(jù)訪問請(qǐng)求都有其映射的虛擬磁盤的虛擬存儲(chǔ)空間,由每個(gè)數(shù)據(jù)訪問請(qǐng)求包含的數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度可以確定與數(shù)據(jù)訪問請(qǐng)求映射的虛擬存儲(chǔ)空間,該部分虛擬存儲(chǔ)空間用于存儲(chǔ)數(shù)據(jù)訪問請(qǐng)求所要訪問的數(shù)據(jù)。同時(shí),虛擬磁盤的虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射,根據(jù)映射關(guān)系,可以進(jìn)一步獲得每個(gè)數(shù)據(jù)訪問請(qǐng)求的待訪問數(shù)據(jù)在分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間。請(qǐng)參閱圖3,其為本申請(qǐng)一種映射關(guān)系示意圖。當(dāng)根據(jù)數(shù)據(jù)訪問請(qǐng)求中的數(shù)據(jù)起始地址和數(shù)據(jù)長(zhǎng)度確定了被訪問數(shù)據(jù)在分布式存儲(chǔ)系統(tǒng)中的物理存儲(chǔ)空間后,數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102由上述映射關(guān)系就可以確定了一條從虛擬機(jī)到分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)訪問通道, 根據(jù)該數(shù)據(jù)訪問通道,可以實(shí)現(xiàn)從虛擬機(jī)到分布式存儲(chǔ)系統(tǒng)的數(shù)據(jù)訪問。數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102從請(qǐng)求隊(duì)列中分別獲取各個(gè)數(shù)據(jù)訪問請(qǐng)求,例如,可以在得到訪問請(qǐng)求處理模塊101的通知后,從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,或者,也可以周期性地主動(dòng)訪問請(qǐng)求隊(duì)列,從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求。當(dāng)獲得一個(gè)數(shù)據(jù)訪問請(qǐng)求后,先將數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間進(jìn)一步映射為對(duì)應(yīng)的物理存儲(chǔ)空間。利用這種空間映射的方法獲得每個(gè)數(shù)據(jù)訪問請(qǐng)求在分布式存儲(chǔ)系統(tǒng)中的物理存儲(chǔ)空間,在數(shù)據(jù)訪問時(shí)只需要設(shè)置一種映射關(guān)系,根據(jù)映射關(guān)系實(shí)現(xiàn)數(shù)據(jù)的訪問,而并不需要在數(shù)據(jù)訪問時(shí)對(duì)數(shù)據(jù)進(jìn)行復(fù)制,從而可以進(jìn)一步減少數(shù)據(jù)復(fù)制在空間和時(shí)間上的開銷,節(jié)省系統(tǒng)資源。數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102按照上述方式獲得了每個(gè)數(shù)據(jù)訪問請(qǐng)求在分布式存儲(chǔ)系統(tǒng)中的物理存儲(chǔ)空間后,根據(jù)每個(gè)數(shù)據(jù)訪問請(qǐng)求中的請(qǐng)求類型,執(zhí)行數(shù)據(jù)訪問。需要說明的是,在多線程技術(shù)應(yīng)用中,每個(gè)請(qǐng)求隊(duì)列對(duì)應(yīng)一個(gè)線程。例如,如果可以同時(shí)啟動(dòng)16個(gè)服務(wù)線程,每個(gè)線程實(shí)現(xiàn)一個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊功能,則在虛擬機(jī)的訪問設(shè)備中,可以同時(shí)啟動(dòng)16個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊。由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備以及實(shí)施該設(shè)備的方法,基于地址映射可以使虛擬機(jī)的虛擬磁盤中的數(shù)據(jù)存于分布式存儲(chǔ)系統(tǒng)的多個(gè)物理計(jì)算機(jī)的物理磁盤中,形成了一種數(shù)據(jù)備份,最終提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。實(shí)施例二本實(shí)施例與實(shí)施例一的區(qū)別在于,為了加快數(shù)據(jù)訪問速度,在設(shè)備中還設(shè)置了一個(gè)二級(jí)緩存模塊,在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取數(shù)據(jù)后,二級(jí)緩存模塊創(chuàng)建一個(gè)二級(jí)緩存區(qū),并將數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取的數(shù)據(jù)緩存在該二級(jí)緩存區(qū)中,以便在訪問請(qǐng)求處理模塊接收到虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求后,訪問請(qǐng)求處理模塊先檢查緩存區(qū)中是否保存有待讀取的數(shù)據(jù),如果是,可以直接從緩存區(qū)中讀取數(shù)據(jù)。請(qǐng)參閱圖4,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖, 該設(shè)備包括訪問請(qǐng)求處理模塊101、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102、虛擬磁盤103和二級(jí)緩存模塊 104,其中,二級(jí)緩存模塊103,用于在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取數(shù)據(jù)后,創(chuàng)建一個(gè)二級(jí)緩存區(qū),將數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的二級(jí)緩存區(qū);則所述訪問請(qǐng)求處理模塊101,用于在接收到虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求后,從二級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,從二級(jí)緩存區(qū)中獲取數(shù)據(jù),否則,將所述數(shù)據(jù)讀取請(qǐng)求加入到請(qǐng)求隊(duì)列中。例如,每當(dāng)訪問請(qǐng)求處理模塊101接收到一個(gè)數(shù)據(jù)讀取請(qǐng)求后,如,該數(shù)據(jù)讀取請(qǐng)求指示需要讀取數(shù)據(jù)A,訪問請(qǐng)求處理模塊101先在二級(jí)緩存區(qū)中檢索,如果二級(jí)緩存區(qū)中保存有數(shù)據(jù)A,直接從二級(jí)緩存區(qū)中讀取數(shù)據(jù)A,否則,將該數(shù)據(jù)讀取請(qǐng)求加入到請(qǐng)求隊(duì)列中,以便通過數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102從分布式存儲(chǔ)系統(tǒng)中讀取數(shù)據(jù),當(dāng)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊 102讀取數(shù)據(jù)A后,二級(jí)緩存模塊104創(chuàng)建一個(gè)二級(jí)緩存區(qū),例如,預(yù)先為二級(jí)緩存模塊104 創(chuàng)建一個(gè)二級(jí)緩存存儲(chǔ)空間,在該二級(jí)緩存存儲(chǔ)空間中創(chuàng)建一個(gè)緩存項(xiàng)A作為數(shù)據(jù)A的二級(jí)緩存區(qū),并將為數(shù)據(jù)A創(chuàng)建的緩存項(xiàng)A加入到二級(jí)緩存存儲(chǔ)空間的緩存池中。每當(dāng)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取一個(gè)新數(shù)據(jù)后,二級(jí)緩存模塊104就在二級(jí)緩存存儲(chǔ)空間中創(chuàng)建一個(gè)新的緩存項(xiàng),并將該新的緩存項(xiàng)加入到該二級(jí)緩存存儲(chǔ)空間的緩存池中。需要說明的是,訪問請(qǐng)求處理模塊101和數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102已經(jīng)在實(shí)施例一中進(jìn)行了詳細(xì)地說明,相關(guān)功能可參見實(shí)施一,此處不再贅述。優(yōu)選的,為了加快虛擬機(jī)的數(shù)據(jù)訪問速度,二級(jí)緩存區(qū)為虛擬機(jī)的本地物理計(jì)算機(jī)中的物理內(nèi)存空間。由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備以及實(shí)施該設(shè)備的方法,基于地址映射可以使虛擬機(jī)的虛擬磁盤同時(shí)存于分布式存儲(chǔ)系統(tǒng)各個(gè)物理計(jì)算機(jī)的物理磁盤中,最終提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。另外,在讀取數(shù)據(jù)的同時(shí),將讀取的數(shù)據(jù)緩存在前端策略系統(tǒng)中,以便在訪問請(qǐng)求處理模塊接收到下一次的數(shù)據(jù)訪問請(qǐng)求后,如果緩存區(qū)中保存有待訪問的數(shù)據(jù),可以直接從緩存區(qū)中讀取數(shù)據(jù),進(jìn)一步加快了數(shù)據(jù)訪問速度。實(shí)施例三
本實(shí)施例與實(shí)施例一的區(qū)別在于,為了加快數(shù)據(jù)訪問速度,在設(shè)備中還設(shè)置一個(gè)三級(jí)緩存模塊,在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取數(shù)據(jù)后,三級(jí)緩存模塊創(chuàng)建一個(gè)三級(jí)緩存區(qū),并將數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取的數(shù)據(jù)緩存在該三級(jí)緩存區(qū)中,以便在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求后,數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊先檢查緩存區(qū)中是否保存有待讀取的數(shù)據(jù),如果是,可以直接從緩存區(qū)中讀取數(shù)據(jù)。請(qǐng)參閱圖5,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖, 該設(shè)備包括訪問請(qǐng)求處理模塊101,數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102、虛擬磁盤103和三級(jí)緩存模塊 105,其中,三級(jí)緩存模塊105,用于在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取數(shù)據(jù)后,創(chuàng)建一個(gè)三級(jí)緩存區(qū),將數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的三級(jí)緩存區(qū);則所述數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102,用于在從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求后,從三級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,從三級(jí)緩存區(qū)中獲取數(shù)據(jù),否則,將獲取的數(shù)據(jù)讀取請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作。例如,每當(dāng)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102從請(qǐng)求隊(duì)列中獲取了一個(gè)數(shù)據(jù)讀取請(qǐng)求后,如該數(shù)據(jù)讀取請(qǐng)求指示讀取數(shù)據(jù)C,數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102先在三級(jí)緩存區(qū)中檢索,如果三級(jí)緩存區(qū)中保存有數(shù)據(jù)C,直接從三級(jí)緩存區(qū)中讀取數(shù)據(jù)C,否則,將獲取的數(shù)據(jù)讀取請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作。當(dāng)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取數(shù)據(jù)C后,三級(jí)緩存模塊105創(chuàng)建一個(gè)三級(jí)緩存區(qū),例如,預(yù)先為三級(jí)緩存模塊105創(chuàng)建一個(gè)三級(jí)緩存存儲(chǔ)空間,在該三級(jí)緩存存儲(chǔ)空間中創(chuàng)建一個(gè)緩存項(xiàng)C作為數(shù)據(jù)C的三級(jí)緩存區(qū),并將為數(shù)據(jù)C創(chuàng)建的緩存項(xiàng)C加入到三級(jí)緩存存儲(chǔ)空間的緩存池中。每當(dāng)數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102讀取一個(gè)新數(shù)據(jù)后,三級(jí)緩存模塊105就在三級(jí)緩存存儲(chǔ)空間中創(chuàng)建一個(gè)新的緩存項(xiàng),并將該新的緩存項(xiàng)加入到該三級(jí)緩存存儲(chǔ)空間的緩存池中。需要說明的是,訪問請(qǐng)求處理模塊101和數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102已經(jīng)在實(shí)施例一中進(jìn)行了詳細(xì)地說明,相關(guān)功能可參見實(shí)施一,此處不再贅述。優(yōu)選的,為了加快虛擬機(jī)的數(shù)據(jù)訪問速度,三級(jí)緩存區(qū)為虛擬機(jī)的本地物理計(jì)算機(jī)中的物理內(nèi)存空間。還需要說明的是,當(dāng)訪問設(shè)備中同時(shí)包括二級(jí)緩存模塊和三級(jí)緩存模塊時(shí),由于訪問請(qǐng)求先到達(dá)訪問請(qǐng)求處理模塊,且對(duì)內(nèi)存數(shù)據(jù)的速度比對(duì)磁盤數(shù)據(jù)的速度快,為了使虛擬機(jī)的數(shù)據(jù)訪問速度更快,優(yōu)選的,二級(jí)緩存區(qū)為本地物理計(jì)算機(jī)中的物理內(nèi)存空間,三級(jí)緩存區(qū)為本地物理計(jì)算機(jī)中的物理磁盤空間。由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備以及實(shí)施該設(shè)備的方法,基于地址映射可以使虛擬機(jī)的虛擬磁盤同時(shí)存于分布式存儲(chǔ)系統(tǒng)各個(gè)物理計(jì)算機(jī)的物理磁盤中,最終提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。另外,在讀取數(shù)據(jù)的同時(shí),在讀取數(shù)據(jù)的同時(shí),將讀取的數(shù)據(jù)緩存在后端機(jī)制系統(tǒng)中,以便在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊下一次從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求后,如果緩存區(qū)中保存有待訪問的數(shù)據(jù),可以直接從緩存區(qū)中讀取數(shù)據(jù),進(jìn)一步加快了數(shù)據(jù)訪問速度。
實(shí)施例四本實(shí)施例與實(shí)施例一區(qū)別在于,在本實(shí)施例的設(shè)備的前端策略系統(tǒng)中還包括一數(shù)據(jù)快照模塊,所謂數(shù)據(jù)快照就是將虛擬磁盤中的某個(gè)時(shí)刻的數(shù)據(jù)保存下來,以便將數(shù)據(jù)備份到其他的存儲(chǔ)空間。請(qǐng)參閱圖6,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的另一個(gè)實(shí)施例的結(jié)構(gòu)圖,該設(shè)備訪問請(qǐng)求處理模塊101、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊102、虛擬磁盤103和數(shù)據(jù)快照模塊106,其中,虛擬磁盤103包括原始數(shù)據(jù)的虛擬磁盤分區(qū)、映射分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū),其中,數(shù)據(jù)快照模塊106,用于當(dāng)接收到數(shù)據(jù)快照請(qǐng)求時(shí),從映射分區(qū)中獲得原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)的虛擬存儲(chǔ)空間,則設(shè)備還包括導(dǎo)出模塊107,用于當(dāng)接收到導(dǎo)出請(qǐng)求時(shí),將數(shù)據(jù)快照模塊106獲得的原始數(shù)據(jù)的虛擬存儲(chǔ)空間和快照數(shù)據(jù)的虛擬存儲(chǔ)空間分別映射為對(duì)應(yīng)的分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間。例如,請(qǐng)參閱圖7,其為本申請(qǐng)一種數(shù)據(jù)快照的原理示意圖。在設(shè)備的虛擬磁盤中包括有三個(gè)虛擬分區(qū)原始數(shù)據(jù)的虛擬磁盤分區(qū)、快照數(shù)據(jù)的虛擬磁盤分區(qū)和影射分區(qū)。其中,在映射分區(qū)中分別保存了原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)的虛擬存儲(chǔ)空間,當(dāng)數(shù)據(jù)快照模塊接收到數(shù)據(jù)快照請(qǐng)求時(shí),從映射分區(qū)中獲取上述兩個(gè)虛擬存儲(chǔ)空間。在此情況下,該設(shè)備還包括導(dǎo)出模塊,將上述虛擬存儲(chǔ)空間映射為分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間,以便根據(jù)分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間,從物理存儲(chǔ)空間中獲得相應(yīng)的原始數(shù)據(jù)和快照數(shù)據(jù),并進(jìn)一步根據(jù)原始數(shù)據(jù)和快照數(shù)據(jù)實(shí)現(xiàn)某一個(gè)時(shí)刻的數(shù)據(jù)快照。優(yōu)選的,所述設(shè)備還包括導(dǎo)入模塊,用于當(dāng)接收到導(dǎo)入請(qǐng)求時(shí),將分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間分別映射為原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)。例如,當(dāng)需要將位于分布式存儲(chǔ)系統(tǒng)中的原始數(shù)據(jù)和快照數(shù)據(jù)導(dǎo)出到其他的虛擬機(jī)時(shí),導(dǎo)入模塊將分布式存儲(chǔ)系統(tǒng)中的物理存儲(chǔ)空間分別映射為原始數(shù)據(jù)在其他虛擬機(jī)中的虛擬磁盤分區(qū)和快照數(shù)據(jù)在其他虛擬機(jī)中的虛擬出盤分區(qū),以便將數(shù)據(jù)備份到其他的存儲(chǔ)空間。例如,在虛擬機(jī)數(shù)據(jù)的訪問設(shè)備的扇區(qū)編碼包括Vm_id、Image_id、Vbd_id、Par_ id和Cell_id。其中,Vm_id為虛擬機(jī)編號(hào),32位長(zhǎng)度;Image_id為鏡像文件編號(hào),可標(biāo)識(shí)導(dǎo)入的快照數(shù)據(jù),32位長(zhǎng)度;Vbd_id為虛擬硬盤編號(hào),8位長(zhǎng)度;Par_id為分區(qū)編號(hào),8位長(zhǎng)度;Cell_id為扇區(qū)編號(hào),64位長(zhǎng)度。Vm_id、Image_id、Vbd_id和Par_id由管理系統(tǒng)配置,涉及虛擬機(jī)數(shù)據(jù)的訪問設(shè)備所屬關(guān)系及屬性信息等。前端策略系統(tǒng)在收到上層文件系統(tǒng)的請(qǐng)求后,將這些編碼和Cell_id組合在一起來唯一標(biāo)識(shí)該扇區(qū)在分布式存儲(chǔ)空間中的位置,之后對(duì)該扇區(qū)的讀寫操作都是通過該組合編碼來引用。由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備以及實(shí)施該設(shè)備的方法,基于地址映射可以使虛擬機(jī)的虛擬磁盤同時(shí)存于分布式存儲(chǔ)系統(tǒng)各個(gè)物理計(jì)算機(jī)的物理磁盤中,最終提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。另外,數(shù)據(jù)快照模塊可以將虛擬磁盤中的某個(gè)時(shí)刻的數(shù)據(jù)保存下來,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入和導(dǎo)出,以便將數(shù)據(jù)備份到其他的存儲(chǔ)空間。實(shí)施例五與上述一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備相對(duì)應(yīng),本申請(qǐng)實(shí)施例還提供了一種虛擬機(jī)數(shù)據(jù)的訪問方法。請(qǐng)參閱圖8,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問方法的一個(gè)實(shí)施例的流程圖,該方法包括以下步驟步驟801 接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;步驟802 從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作。例如,當(dāng)獲得的數(shù)據(jù)訪問請(qǐng)求的類型為寫入數(shù)據(jù)時(shí),將映射得到的物理存儲(chǔ)空間信息發(fā)送給分布式存儲(chǔ)系統(tǒng),以便分布式存儲(chǔ)系統(tǒng)根據(jù)獲得的物理存儲(chǔ)空間信息執(zhí)行數(shù)據(jù)寫入;當(dāng)獲取的數(shù)據(jù)訪問請(qǐng)求的類型為讀取數(shù)據(jù)時(shí),根據(jù)映射得到的物理存儲(chǔ)空間信息從分布式存儲(chǔ)系統(tǒng)中讀取數(shù)據(jù),將讀取的數(shù)據(jù)反饋給虛擬機(jī)中的文件系統(tǒng)。優(yōu)選的,為了加快虛擬機(jī)的數(shù)據(jù)訪問速度,當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作后,將讀取的數(shù)據(jù)緩存一個(gè)二級(jí)緩存區(qū)中,以便當(dāng)接收到虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求后,先從二級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取的數(shù)據(jù),如果有,可以直接從二級(jí)緩存區(qū)中讀取數(shù)據(jù)。請(qǐng)參閱圖9,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問方法的另一個(gè)實(shí)施例的流程圖,包括以下步驟步驟901 接收虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求;步驟902 從二級(jí)緩存區(qū)中檢索是否有數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有, 進(jìn)入步驟903,否則,進(jìn)入步驟904 ;步驟903 從二級(jí)緩存區(qū)中讀取數(shù)據(jù);之后,返回步驟901,當(dāng)重新返回到步驟901后,繼續(xù)接收下一個(gè)數(shù)據(jù)讀取請(qǐng)求,然后從二級(jí)緩存區(qū)中檢索是否有下一個(gè)數(shù)據(jù)讀取請(qǐng)求的待讀取數(shù)據(jù),依此反復(fù),直到請(qǐng)求隊(duì)列中的所有數(shù)據(jù)讀取請(qǐng)求處理完畢后結(jié)束流程;步驟904 將所述數(shù)據(jù)讀取請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)讀取請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;步驟905 從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求,將獲取的數(shù)據(jù)讀取請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作;步驟906 創(chuàng)建一個(gè)二級(jí)緩存區(qū),將讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的二級(jí)緩存區(qū)。之后,返回步驟901,當(dāng)重新返回到步驟901后,繼續(xù)接收下一個(gè)數(shù)據(jù)讀取請(qǐng)求,然后從二級(jí)緩存區(qū)中檢索是否有下一個(gè)數(shù)據(jù)讀取請(qǐng)求的待讀取數(shù)據(jù),依此反復(fù),直到請(qǐng)求隊(duì)列中的所有數(shù)據(jù)讀取請(qǐng)求處理完畢后結(jié)束流程。為了加快虛擬機(jī)的數(shù)據(jù)訪問速度,另一種優(yōu)選的方式是,當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作后,將讀取的數(shù)據(jù)緩存在一個(gè)三級(jí)緩存區(qū)中,以便當(dāng)從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求后,先從三級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取的數(shù)據(jù),如果有,可以直接從三級(jí)緩存區(qū)中讀取數(shù)據(jù)。請(qǐng)參閱圖 10,其為本申請(qǐng)一種虛擬機(jī)數(shù)據(jù)的訪問方法的另一個(gè)實(shí)施例的流程圖,包括以下步驟
步驟1001 接收虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求,將所述數(shù)據(jù)讀取請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)讀取請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;步驟1002 從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求后,從三級(jí)緩存區(qū)中檢索是否有獲取的數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,進(jìn)入步驟1003,否則,進(jìn)入步驟1004 ;步驟1003 從三級(jí)緩存區(qū)中獲取待讀取數(shù)據(jù);之后,返回步驟1002,重新返回到步驟1002后,繼續(xù)從請(qǐng)求隊(duì)列中讀取下一個(gè)數(shù)據(jù)讀取請(qǐng)求,然后從三級(jí)緩存區(qū)中檢索是否有下一個(gè)數(shù)據(jù)讀取請(qǐng)求的待讀取數(shù)據(jù),依此反復(fù),直到請(qǐng)求隊(duì)列中的所有數(shù)據(jù)訪問請(qǐng)求處理完畢后結(jié)束流程;步驟1004 將獲取的數(shù)據(jù)讀取請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作;步驟1005 創(chuàng)建一個(gè)三級(jí)存儲(chǔ)區(qū),將讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的三級(jí)緩存區(qū)。之后,返回步驟1002,當(dāng)重新返回到步驟1002后,繼續(xù)從請(qǐng)求隊(duì)列中讀取下一個(gè)數(shù)據(jù)讀取請(qǐng)求,然后從三級(jí)緩存區(qū)中檢索是否有下一個(gè)數(shù)據(jù)讀取請(qǐng)求的待讀取數(shù)據(jù),依此反復(fù),直到請(qǐng)求隊(duì)列中的所有數(shù)據(jù)讀取請(qǐng)求處理完畢后結(jié)束流程。優(yōu)選的,所述方法還包括當(dāng)接收到快照請(qǐng)求時(shí),從映射分區(qū)中獲得原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)的虛擬存儲(chǔ)空間。則當(dāng)接收到導(dǎo)出請(qǐng)求時(shí),將獲得的原始數(shù)據(jù)的虛擬存儲(chǔ)空間和快照數(shù)據(jù)的虛擬存儲(chǔ)空間分別映射為對(duì)應(yīng)的分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間。進(jìn)一步的,當(dāng)接收到導(dǎo)入請(qǐng)求時(shí),將分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間分別映射為原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)。由上述實(shí)施例可以看出,本申請(qǐng)實(shí)施例提供了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備以及實(shí)施該設(shè)備的方法,基于地址映射可以使虛擬機(jī)的虛擬磁盤同時(shí)存于分布式存儲(chǔ)系統(tǒng)各個(gè)物理計(jì)算機(jī)的物理磁盤中,最終提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。在讀取數(shù)據(jù)的同時(shí),將讀取的數(shù)據(jù)緩存在前端策略系統(tǒng)中,以便在前端策略系統(tǒng)中的訪問請(qǐng)求處理模塊接收到下一次的數(shù)據(jù)訪問請(qǐng)求后,如果緩存區(qū)中保存有待訪問的數(shù)據(jù),可以直接從緩存區(qū)中讀取數(shù)據(jù),進(jìn)一步加快了數(shù)據(jù)訪問速度。在讀取數(shù)據(jù)的同時(shí),在讀取數(shù)據(jù)的同時(shí),將讀取的數(shù)據(jù)緩存在后端機(jī)制系統(tǒng)中,以便在后端機(jī)制系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊下一次從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求后,如果緩存區(qū)中保存有待訪問的數(shù)據(jù),可以直接從緩存區(qū)中讀取數(shù)據(jù),進(jìn)一步加快了數(shù)據(jù)訪問速度。通過數(shù)據(jù)快照可以將虛擬磁盤中的某個(gè)時(shí)刻的數(shù)據(jù)保存下來,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入和導(dǎo)出,以便將數(shù)據(jù)備份到其他的存儲(chǔ)空間。在本申請(qǐng)應(yīng)用方面,可以應(yīng)用于虛擬機(jī)單機(jī)啟動(dòng)、虛擬機(jī)多機(jī)并行啟動(dòng)、虛擬機(jī)遷移或者共享存儲(chǔ)等場(chǎng)景。例如,在虛擬機(jī)單機(jī)啟動(dòng)場(chǎng)景中,提高了虛擬機(jī)的啟動(dòng)時(shí)間和響應(yīng)速度,請(qǐng)參閱圖11,其為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)虛擬機(jī)單機(jī)啟動(dòng)的場(chǎng)景示意圖。圖11中的虛線框部分即為本申請(qǐng)?zhí)摂M機(jī)數(shù)據(jù)的訪問設(shè)備。請(qǐng)參閱圖12,其為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)虛擬機(jī)多機(jī)啟動(dòng)的場(chǎng)景示意圖,圖12中的虛線框部分即為本申請(qǐng)?zhí)摂M機(jī)數(shù)據(jù)的訪問設(shè)備。在虛擬機(jī)多機(jī)啟動(dòng)場(chǎng)景中,提高了虛擬機(jī)的啟動(dòng)時(shí)間和響應(yīng)速度。請(qǐng)參閱圖13,其為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)虛擬機(jī)遷移的場(chǎng)景示意圖,圖13中的虛線框部分即為本申請(qǐng)?zhí)摂M機(jī)數(shù)據(jù)的訪問設(shè)備。在虛擬機(jī)遷移場(chǎng)景中,減少了遷移的數(shù)據(jù)量,提高了遷移速度。請(qǐng)參閱圖14,其為本申請(qǐng)中基于虛擬機(jī)數(shù)據(jù)的訪問設(shè)備實(shí)現(xiàn)共享存儲(chǔ)的場(chǎng)景示意圖。圖14中的虛線框即為本申請(qǐng)?zhí)摂M機(jī)數(shù)據(jù)的訪問設(shè)備。在共享存儲(chǔ)場(chǎng)景中,各個(gè)服務(wù)器節(jié)點(diǎn)使用本地的硬盤存儲(chǔ)數(shù)據(jù)。在服務(wù)器機(jī)群上部署分布式存儲(chǔ)系統(tǒng)。集群內(nèi)各個(gè)節(jié)點(diǎn)通過本申請(qǐng)的虛擬機(jī)數(shù)據(jù)訪問設(shè)備構(gòu)建存儲(chǔ)局域網(wǎng)(SAN), 在此基礎(chǔ)上部署SAN共享軟件實(shí)現(xiàn)集群內(nèi)存儲(chǔ)設(shè)備共享和管理數(shù)據(jù)并發(fā)訪問。SAN共享軟件可選用PNFS/GFS2等,對(duì)于Windows系統(tǒng)可使用CIFS等。需要說明的是,本領(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 AccessMemory, RAM)等。以上對(duì)本申請(qǐng)所提供的一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備和方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體實(shí)施例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
權(quán)利要求
1.一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備,其特征在于,包括訪問請(qǐng)求處理模塊、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊和虛擬磁盤,訪問請(qǐng)求處理模塊,用于接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊,用于從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其特征在于,所述設(shè)備還包括二級(jí)緩存模塊,所述二級(jí)緩存模塊,用于在所述數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取數(shù)據(jù)后,創(chuàng)建一個(gè)二級(jí)緩存區(qū), 將所述數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的二級(jí)緩存區(qū);在所述訪問請(qǐng)求處理模塊,用于在接收到虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求后,從二級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,從二級(jí)緩存區(qū)中獲取數(shù)據(jù), 否則,將所述數(shù)據(jù)讀取請(qǐng)求加入到請(qǐng)求隊(duì)列中。
3.根據(jù)權(quán)利要求2所述的設(shè)備,其特征在于,所述二級(jí)緩存區(qū)為本地物理計(jì)算機(jī)中的物理內(nèi)存空間。
4.根據(jù)權(quán)利要求1所述的設(shè)備,其特征在于,所述設(shè)備還包括三級(jí)緩存模塊,所述三級(jí)緩存模塊,用于在數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取數(shù)據(jù)后,創(chuàng)建一個(gè)三級(jí)緩存區(qū),將數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的三級(jí)緩存區(qū);則所述數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊,用于在從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求后,從三級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,從三級(jí)緩存區(qū)中獲取數(shù)據(jù),否貝U,將獲取的數(shù)據(jù)讀取請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)所述數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作。
5.根據(jù)權(quán)利要求4所述的設(shè)備,其特征在于,所述三級(jí)緩存區(qū)為本地物理計(jì)算機(jī)中的物理內(nèi)存空間。
6.根據(jù)權(quán)利要求1所述的設(shè)備,其特征在于,所述設(shè)備還包括數(shù)據(jù)快照模塊,其中,虛擬磁盤包括原始數(shù)據(jù)的虛擬磁盤分區(qū)、影射分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū),所述數(shù)據(jù)快照模塊,用于當(dāng)接收到數(shù)據(jù)快照請(qǐng)求時(shí),從映射分區(qū)中獲得原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)的虛擬存儲(chǔ)空間,則所述設(shè)備還包括導(dǎo)出模塊,用于當(dāng)接收到導(dǎo)出請(qǐng)求時(shí),將所述數(shù)據(jù)快照模塊獲得的原始數(shù)據(jù)的虛擬存儲(chǔ)空間和快照數(shù)據(jù)的虛擬存儲(chǔ)空間分別映射為對(duì)應(yīng)的分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間。
7.根據(jù)權(quán)利要求6所述的設(shè)備,其特征在于,所述設(shè)備還包括導(dǎo)入模塊,所述導(dǎo)入模塊,用于當(dāng)接收到導(dǎo)入請(qǐng)求時(shí),將分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間分別映射為原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)。
8.—種虛擬機(jī)數(shù)據(jù)的訪問方法,其特征在于,包括接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作后,創(chuàng)建一個(gè)二級(jí)緩存區(qū),將讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的二級(jí)緩存區(qū);則當(dāng)接收到虛擬機(jī)發(fā)送的數(shù)據(jù)讀取請(qǐng)求后,從二級(jí)緩存區(qū)中檢索是否有數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,從二級(jí)緩存區(qū)中讀取數(shù)據(jù),否則,將所述數(shù)據(jù)讀取請(qǐng)求加入到請(qǐng)求隊(duì)列中。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作后,創(chuàng)建一個(gè)三級(jí)緩存區(qū),將讀取的數(shù)據(jù)存儲(chǔ)在創(chuàng)建的三級(jí)緩存區(qū);則當(dāng)從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)讀取請(qǐng)求后,從三級(jí)緩存區(qū)中檢索是否有所述數(shù)據(jù)讀取請(qǐng)求指示的待讀取數(shù)據(jù),如果有,從三級(jí)緩存區(qū)中獲取數(shù)據(jù),否則,將獲取的數(shù)據(jù)讀取請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)讀取請(qǐng)求,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)讀取操作。
11.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括當(dāng)接收到快照請(qǐng)求時(shí),從映射分區(qū)中獲得原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)的虛擬存儲(chǔ)空間。則當(dāng)接收到導(dǎo)出請(qǐng)求時(shí),將獲得的原始數(shù)據(jù)的虛擬存儲(chǔ)空間和快照數(shù)據(jù)的虛擬存儲(chǔ)空間分別映射為對(duì)應(yīng)的分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間。
12.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括當(dāng)接收到導(dǎo)入請(qǐng)求時(shí),將分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間分別映射為原始數(shù)據(jù)的虛擬磁盤分區(qū)和快照數(shù)據(jù)的虛擬磁盤分區(qū)。
全文摘要
本申請(qǐng)實(shí)施例公開了一種虛擬機(jī)數(shù)據(jù)的訪問設(shè)備和方法。其中,設(shè)備包括訪問請(qǐng)求處理模塊、數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊和虛擬磁盤,訪問請(qǐng)求處理模塊,用于接收虛擬機(jī)發(fā)送的數(shù)據(jù)訪問請(qǐng)求,將所述數(shù)據(jù)訪問請(qǐng)求加入到請(qǐng)求隊(duì)列中,其中,請(qǐng)求隊(duì)列中的數(shù)據(jù)訪問請(qǐng)求與虛擬磁盤的虛擬存儲(chǔ)空間之間映射,所述虛擬存儲(chǔ)空間與分布式存儲(chǔ)系統(tǒng)的物理存儲(chǔ)空間之間映射;數(shù)據(jù)轉(zhuǎn)發(fā)代理模塊,用于從請(qǐng)求隊(duì)列中獲取數(shù)據(jù)訪問請(qǐng)求,將獲取的數(shù)據(jù)訪問請(qǐng)求映射為對(duì)應(yīng)的虛擬存儲(chǔ)空間,再將映射得到的虛擬存儲(chǔ)空間映射為對(duì)應(yīng)的物理存儲(chǔ)空間,根據(jù)數(shù)據(jù)訪問請(qǐng)求類型,在映射得到的物理存儲(chǔ)空間中執(zhí)行對(duì)應(yīng)的數(shù)據(jù)訪問操作。根據(jù)本申請(qǐng)實(shí)施例,可以提高存儲(chǔ)虛擬機(jī)數(shù)據(jù)的安全性和可靠性。
文檔編號(hào)G06F9/455GK102467408SQ20101054291
公開日2012年5月23日 申請(qǐng)日期2010年11月12日 優(yōu)先權(quán)日2010年11月12日
發(fā)明者全小飛 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司