亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

建立虛擬機(jī)共享存儲(chǔ)緩存的方法及裝置制造方法

文檔序號(hào):6492724閱讀:174來(lái)源:國(guó)知局
建立虛擬機(jī)共享存儲(chǔ)緩存的方法及裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種建立虛擬機(jī)共享存儲(chǔ)緩存的方法及裝置,該方法包括:獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);存儲(chǔ)所述數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從所述虛擬機(jī)共享緩存裝置讀取所述數(shù)據(jù)。通過(guò)上述方式,本發(fā)明能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)讀寫(xiě)數(shù)據(jù)時(shí)的輸入輸出問(wèn)題。
【專利說(shuō)明】建立虛擬機(jī)共享存儲(chǔ)緩存的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種建立虛擬機(jī)共享存儲(chǔ)緩存的方法及裝置。
【背景技術(shù)】
[0002]不管是對(duì)于全克隆模式部署的虛擬機(jī)還是對(duì)于鏈接克隆模式部署的虛擬機(jī),大量的虛擬機(jī)在同時(shí)啟動(dòng)的情況下,出現(xiàn)頻繁的輸入輸出(10, Input Output)操作,這對(duì)共享存儲(chǔ)形成了很高的每秒輸入輸出(IOPS, Input Output per second)壓力峰值,導(dǎo)致虛擬機(jī)啟動(dòng)速度慢。在配置桌面云存儲(chǔ)時(shí)按照最高峰值的要求進(jìn)行配置,導(dǎo)致高IOPS存儲(chǔ)配置在平常時(shí)段形成浪費(fèi)。
[0003]現(xiàn)有技術(shù)采用流控方法,將虛擬機(jī)的啟動(dòng)時(shí)間設(shè)置在上班前幾個(gè)小時(shí),提前對(duì)所有虛擬機(jī)以流控的方式逐步啟動(dòng),從而避免集中并發(fā)啟動(dòng)對(duì)存儲(chǔ)服務(wù)能力的沖擊。
[0004]現(xiàn)有技術(shù)未真正解決虛擬機(jī)并發(fā)啟動(dòng)讀寫(xiě)數(shù)據(jù)時(shí)的輸入輸出問(wèn)題。

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

[0005]本發(fā)明主要解決的技術(shù)問(wèn)題是提供一種建立虛擬機(jī)共享存儲(chǔ)緩存的方法及裝置,能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)數(shù)據(jù)讀寫(xiě)時(shí)的輸入輸出問(wèn)題。
[0006]本發(fā)明的第一方面提供一種建立虛擬機(jī)共享存儲(chǔ)緩存的方法,包括:獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);存儲(chǔ)所述數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從所述虛擬機(jī)共享緩存裝置讀取所述數(shù)據(jù)。
[0007]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)的步驟之前,包括:所述虛擬機(jī)向所述虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求;所述虛擬機(jī)接收所述虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),所述讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗息。
[0008]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:對(duì)所述虛擬機(jī)共享緩存裝置存儲(chǔ)的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除操作。
[0009]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述虛擬機(jī)啟動(dòng)過(guò)程包括所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。
[0010]本發(fā)明的第二方面提供一種虛擬機(jī)共享緩存的裝置,所述裝置包括:獲取模塊和存儲(chǔ)模塊;所述獲取模塊用于獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);所述存儲(chǔ)模塊用于存儲(chǔ)所述數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從所述虛擬機(jī)共享緩存裝置讀取所述數(shù)據(jù)。
[0011]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:讀寫(xiě)模塊;所述讀寫(xiě)模塊用于在所述虛擬機(jī)向所述虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求時(shí),接收所述請(qǐng)求,并向所述虛擬機(jī)發(fā)送所述虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),所述讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗息。
[0012]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括去重復(fù)模塊,所述去重復(fù)模塊用于對(duì)所述虛擬機(jī)共享緩存裝置存儲(chǔ)的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除操作。
[0013]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述虛擬機(jī)啟動(dòng)過(guò)程包括所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。
[0014]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);只將對(duì)虛擬機(jī)啟動(dòng)有效的數(shù)據(jù)緩存至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取數(shù)據(jù),通過(guò)這種方式,能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)的輸入輸出問(wèn)題。
【專利附圖】

【附圖說(shuō)明】
[0015]圖1是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法一實(shí)施方式的流程圖;
[0016]圖2是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法另一實(shí)施方式的流程圖;
[0017]圖3是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法在實(shí)際應(yīng)用中的一實(shí)現(xiàn)方式;
[0018]圖4是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法在實(shí)際應(yīng)用中的另一實(shí)現(xiàn)方式;
[0019]圖5是虛擬機(jī)創(chuàng)建、啟動(dòng)以及關(guān)機(jī)過(guò)程;
[0020]圖6是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法在實(shí)際應(yīng)用中去重復(fù)操作的一實(shí)現(xiàn)方式;
[0021]圖7是本發(fā)明虛擬機(jī)共享緩存的裝置一實(shí)施方式的結(jié)構(gòu)示意圖;
[0022]圖8是本發(fā)明虛擬機(jī)共享緩存的裝置另一實(shí)施方式的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖和實(shí)施方式對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0024]參閱圖1,圖1是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法一實(shí)施方式的流程圖,包括:
[0025]步驟SlOl:獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)。
[0026]虛擬機(jī)指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。
[0027]在啟動(dòng)虛擬機(jī)時(shí),虛擬機(jī)從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)數(shù)據(jù),這些數(shù)據(jù)是虛擬機(jī)啟動(dòng)所需要的真正有效的數(shù)據(jù),獲取這些有效的數(shù)據(jù),以便于存儲(chǔ)這些虛擬機(jī)啟動(dòng)時(shí)從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)。
[0028]步驟S102:存儲(chǔ)該數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取該數(shù)據(jù)。
[0029]在獲取了虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)后,將這些數(shù)據(jù)存儲(chǔ)在虛擬機(jī)共享緩存裝置中,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取該數(shù)據(jù),這樣分擔(dān)了大部分的虛擬啟動(dòng)磁盤(pán)的輸入輸出壓力。
[0030]需要說(shuō)明的是,本實(shí)施方式中虛擬機(jī)啟動(dòng)過(guò)程包括虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。例如,可以是Windows操作系統(tǒng)的啟動(dòng)過(guò)程,或者Office、Photoshop等應(yīng)用程序的啟動(dòng)過(guò)程。本發(fā)明實(shí)施例中虛擬機(jī)啟動(dòng)為虛擬機(jī)機(jī)群大規(guī)模啟動(dòng)之前的一臺(tái)臨時(shí)虛擬機(jī)啟動(dòng)過(guò)程,根據(jù)臨時(shí)虛擬機(jī)的啟動(dòng)獲取虛擬機(jī)大規(guī)模啟動(dòng)過(guò)程所必須的讀寫(xiě)的數(shù)據(jù),并將這些讀寫(xiě)數(shù)據(jù)存儲(chǔ)到虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從該虛擬機(jī)共享緩存裝置讀取數(shù)據(jù)。
[0031]本發(fā)明獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);只將對(duì)虛擬機(jī)啟動(dòng)有效的數(shù)據(jù)緩存至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取數(shù)據(jù),通過(guò)這種方式,能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)讀寫(xiě)數(shù)據(jù)時(shí)輸入輸出問(wèn)題。
[0032]參閱圖2,圖2是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法另一實(shí)施方式的流程圖,包括:
[0033]步驟S201:虛擬機(jī)向虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求。
[0034]在啟動(dòng)虛擬機(jī)時(shí),虛擬機(jī)向虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求。
[0035]步驟S202:虛擬機(jī)接收虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗信息。
[0036]在虛擬機(jī)共享緩存裝置中沒(méi)有虛擬機(jī)讀寫(xiě)請(qǐng)求的數(shù)據(jù)時(shí),向虛擬機(jī)發(fā)送讀寫(xiě)請(qǐng)求響應(yīng),虛擬機(jī)然后接收虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),該讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗息。
[0037]步驟S203:獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)。
[0038]步驟S204:存儲(chǔ)所述數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從所述虛擬機(jī)共享緩存裝置讀取所述數(shù)據(jù)。
[0039]在實(shí)際應(yīng)用中,步驟S201、步驟S202、步驟S203以及步驟S204的實(shí)現(xiàn)過(guò)程請(qǐng)參見(jiàn)圖3和圖4,圖3是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法在實(shí)際應(yīng)用中的一實(shí)現(xiàn)方式。本實(shí)現(xiàn)方式是虛擬機(jī)開(kāi)機(jī)以及操作系統(tǒng)啟動(dòng)過(guò)程中對(duì)數(shù)據(jù)讀請(qǐng)求的過(guò)程,包括:
[0040](bl)讀請(qǐng)求:虛擬機(jī)VMO對(duì)操作系統(tǒng)啟動(dòng)虛擬磁盤(pán)的讀請(qǐng)求到達(dá)虛擬機(jī)共享緩存裝置的讀寫(xiě)模塊(即模塊B)。
[0041](b2) Cache (即虛擬機(jī)共享緩存裝置的存儲(chǔ)模塊,C模塊)查詢:B模塊向C模塊獲取當(dāng)前請(qǐng)求的數(shù)據(jù)。
[0042](b3.2)Cache未命中:S卩C模塊中沒(méi)有B模塊當(dāng)前請(qǐng)求的數(shù)據(jù),C模塊向B模塊返回空數(shù)據(jù)和緩存未命中狀態(tài)。
[0043](b4)讀存儲(chǔ)設(shè)備:B模塊從存儲(chǔ)設(shè)備(即操作系統(tǒng)虛擬啟動(dòng)磁盤(pán))讀取當(dāng)前請(qǐng)求的數(shù)據(jù)。
[0044](b5)讀存儲(chǔ)設(shè)備返回:存儲(chǔ)設(shè)備返回當(dāng)前請(qǐng)求的數(shù)據(jù)給B模塊。
[0045](b6.2)虛擬機(jī)讀請(qǐng)求返回:B模塊將從存儲(chǔ)設(shè)備讀取到的數(shù)據(jù)返回給虛擬機(jī)。
[0046](b7)模塊B將從存儲(chǔ)設(shè)備中讀取到的數(shù)據(jù)緩存到C模塊。此緩存操作只發(fā)生在虛擬機(jī)啟動(dòng)過(guò)程中。
[0047](b3.DCache命中:即C模塊中保存有B模塊當(dāng)前請(qǐng)求的數(shù)據(jù),C模塊向B模塊返回讀取到的數(shù)據(jù)和緩存命中狀態(tài)。
[0048](b6.1)虛擬機(jī)讀請(qǐng)求返回:B模塊將C模塊返回的數(shù)據(jù)返回給虛擬機(jī)。
[0049]圖4是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法在實(shí)際應(yīng)用中的另一實(shí)現(xiàn)方式。本實(shí)現(xiàn)方式是虛擬機(jī)開(kāi)機(jī)以及操作系統(tǒng)啟動(dòng)過(guò)程中的數(shù)據(jù)寫(xiě)請(qǐng)求的過(guò)程,包括:
[0050](Cl)寫(xiě)請(qǐng)求:虛擬機(jī)VMO對(duì)操作系統(tǒng)虛擬啟動(dòng)磁盤(pán)的寫(xiě)請(qǐng)求到達(dá)虛擬機(jī)共享緩存裝置的讀寫(xiě)模塊(即模塊B)。
[0051](c2)寫(xiě)存儲(chǔ)設(shè)備:模塊B向存儲(chǔ)設(shè)備(即操作系統(tǒng)虛擬啟動(dòng)磁盤(pán))發(fā)送寫(xiě)請(qǐng)求。
[0052](c3)寫(xiě)存儲(chǔ)設(shè)備返回:存儲(chǔ)設(shè)備返回寫(xiě)請(qǐng)求完成情況給模塊B。
[0053](c4)更新緩存:如果c3返回寫(xiě)入存儲(chǔ)設(shè)備成功,將本次寫(xiě)請(qǐng)求的數(shù)據(jù)緩存到C模塊(即虛擬機(jī)共享緩存裝置的存儲(chǔ)模塊),此緩存操作只發(fā)生在虛擬機(jī)啟動(dòng)過(guò)程中。
[0054](c5)虛擬機(jī)寫(xiě)請(qǐng)求返回:模塊B將寫(xiě)存儲(chǔ)設(shè)備返回的結(jié)果返回給虛擬機(jī)。
[0055]請(qǐng)參閱圖5,圖5是虛擬機(jī)VMO創(chuàng)建、啟動(dòng)以及關(guān)機(jī)過(guò)程。該過(guò)程包括:
[0056](al)在Hypervisor中從操作系統(tǒng)啟動(dòng)磁盤(pán)以非鏈接克隆方式創(chuàng)建虛擬機(jī)VMO0
[0057](a2)開(kāi)始啟動(dòng)虛擬機(jī)VMO,記錄開(kāi)始啟動(dòng)的時(shí)間為T(mén)l。
[0058](a3) VMO進(jìn)入開(kāi)機(jī)和操作系統(tǒng)啟動(dòng)過(guò)程。
[0059](a4) VMO完成開(kāi)機(jī)和操作系統(tǒng)啟動(dòng)過(guò)程,記錄完成OS啟動(dòng)的時(shí)刻為T(mén)2。
[0060](a5)登陸VMO,VMO開(kāi)始登陸,記錄登陸OS完成的時(shí)刻為T(mén)3。
[0061]在圖5中,Tl時(shí)刻的識(shí)別可以是管理軟件下達(dá)虛擬機(jī)開(kāi)機(jī)的時(shí)刻。
[0062]以基于Xen系統(tǒng)實(shí)現(xiàn)的虛擬機(jī)為例,T2時(shí)刻可以由以下方法識(shí)別:在虛擬機(jī)操作系統(tǒng)中預(yù)先實(shí)現(xiàn)和部署一個(gè)Agent程序,該Agent程序監(jiān)測(cè)系統(tǒng)進(jìn)程的開(kāi)啟和關(guān)閉過(guò)程。當(dāng)該Agent檢測(cè)到某個(gè)進(jìn)程開(kāi)始啟動(dòng)時(shí),向Xenstore寫(xiě)入一個(gè)標(biāo)記。在Hypervisor中或者Hypervisor所在操作系統(tǒng)中的Cache優(yōu)化模塊(即虛擬機(jī)共享緩存裝置的存儲(chǔ)模塊)通過(guò)在Xenstore中檢測(cè)相應(yīng)的標(biāo)記來(lái)確定T2和T3時(shí)刻。以Windows操作系統(tǒng)為例,檢測(cè)到“winlogon.exe”就可以定出T2 ;檢測(cè)到“explorer, exe”就可以定出T3。
[0063]通過(guò)緩存Tl到T2 (或者T3)之間的數(shù)據(jù),來(lái)有效減少需要緩存的數(shù)據(jù)量。
[0064]步驟S205:對(duì)虛擬機(jī)共享緩存裝置存儲(chǔ)的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除操作。
[0065]重復(fù)數(shù)據(jù)刪除技術(shù)是一種目前主流且非常熱門(mén)的存儲(chǔ)技術(shù),可對(duì)存儲(chǔ)容量進(jìn)行有效優(yōu)化。它通過(guò)刪除數(shù)據(jù)集中重復(fù)的數(shù)據(jù),只保留其中一份,從而消除冗余數(shù)據(jù)。這種技術(shù)可以很大程度上減少對(duì)物理存儲(chǔ)空間的需求,從而滿足日益增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。該技術(shù)可以帶來(lái)許多實(shí)際的利益,比如:可以有效控制數(shù)據(jù)的急劇增長(zhǎng);增加有效存儲(chǔ)空間,提高存儲(chǔ)效率;節(jié)省存儲(chǔ)總成本和管理成本;節(jié)省數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)帶寬;節(jié)省空間、電力供應(yīng)、冷卻等運(yùn)維成本等等。
[0066]在實(shí)際應(yīng)用中,步驟S205的實(shí)現(xiàn)過(guò)程請(qǐng)參見(jiàn)圖6,圖6是本發(fā)明建立虛擬機(jī)共享存儲(chǔ)緩存的方法在實(shí)際應(yīng)用中去重復(fù)操作的一實(shí)現(xiàn)方式。本實(shí)現(xiàn)方式是不同虛擬機(jī)之間的緩存數(shù)據(jù)去重復(fù)操作的過(guò)程,具體以虛擬機(jī)VMl的數(shù)據(jù)保存到VMlcacheMap的過(guò)程為例說(shuō)明,該過(guò)程包括:
[0067](dl)在VMl_CacheMap中查詢有沒(méi)有{start sector, length}的影射表項(xiàng),如果沒(méi)有則新建表項(xiàng)并填充{start sector, length, -1},并設(shè)為要操作的VMl_cacheMap表項(xiàng);如果查詢到影射表項(xiàng),將該影射表項(xiàng)設(shè)為要操作的VMlcacheMap表項(xiàng)。[0068](d2)計(jì)算待緩存數(shù)據(jù)的hash值。
[0069](d3)在共享緩存數(shù)據(jù)表中進(jìn)行hash值查找,如果找到hash值的數(shù)據(jù)項(xiàng)則將待緩存數(shù)據(jù)與數(shù)據(jù)項(xiàng)中的數(shù)據(jù)進(jìn)行逐位對(duì)比,如果完全一樣,則更新當(dāng)前要操作的VM1_cacheMap表項(xiàng)的Data Pointer為指向該數(shù)據(jù)項(xiàng),并將數(shù)據(jù)項(xiàng)中的ref count加I。
[0070](d4)如果在共享緩存數(shù)據(jù)表中沒(méi)有找到重復(fù)內(nèi)容的項(xiàng),則新建數(shù)據(jù)表項(xiàng),填充相應(yīng)內(nèi)容并更新當(dāng)前要操作的VMl_cacheMap表項(xiàng)的DataPointer為指向該新建數(shù)據(jù)項(xiàng)。
[0071 ] 需要說(shuō)明的是,本實(shí)施方式中虛擬機(jī)的啟動(dòng)過(guò)程包括虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。例如,可以是Windows操作系統(tǒng)的啟動(dòng),或者Office、Photoshop等應(yīng)用程序的啟動(dòng)。本發(fā)明實(shí)施例中虛擬機(jī)啟動(dòng)為虛擬機(jī)機(jī)群大規(guī)模啟動(dòng)之前的一臺(tái)臨時(shí)虛擬機(jī)啟動(dòng)過(guò)程,根據(jù)臨時(shí)虛擬機(jī)的啟動(dòng)獲取虛擬機(jī)大規(guī)模啟動(dòng)過(guò)程所必須的讀寫(xiě)的數(shù)據(jù),并將這些讀寫(xiě)數(shù)據(jù)存儲(chǔ)到虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從該虛擬機(jī)共享緩存裝置讀取數(shù)據(jù)。
[0072]本發(fā)明獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);只將對(duì)虛擬機(jī)啟動(dòng)有效的數(shù)據(jù)緩存至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取數(shù)據(jù),通過(guò)這種方式,能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)的輸入輸出問(wèn)題。另外,利用重復(fù)數(shù)據(jù)刪除技術(shù)進(jìn)行去重復(fù)操作可以節(jié)省內(nèi)存。
[0073]參閱圖7,圖7是本發(fā)明虛擬機(jī)共享緩存裝置一實(shí)施方式的結(jié)構(gòu)示意圖,該裝置包括:獲取模塊101和存儲(chǔ)模塊102。
[0074]可選地,圖7的裝置可以執(zhí)行圖1至圖2中的步驟。
[0075]獲取模塊101用于獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)。
[0076]在啟動(dòng)虛擬機(jī)時(shí),虛擬機(jī)從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)數(shù)據(jù),這些數(shù)據(jù)是虛擬機(jī)啟動(dòng)所需要的真正有效的數(shù)據(jù),獲取這些有效的數(shù)據(jù),以便于存儲(chǔ)這些虛擬機(jī)啟動(dòng)時(shí)從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)。
[0077]存儲(chǔ)模塊102用于存儲(chǔ)該數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從該虛擬機(jī)共享緩存裝置讀取該數(shù)據(jù)。
[0078]在獲取了虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)后,將這些數(shù)據(jù)存儲(chǔ)在虛擬機(jī)共享緩存裝置中,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取該數(shù)據(jù),這樣分擔(dān)了大部分的虛擬啟動(dòng)磁盤(pán)的輸入輸出壓力。
[0079]需要說(shuō)明的是,本實(shí)施方式中虛擬機(jī)啟動(dòng)過(guò)程包括虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。例如,可以是Windows操作系統(tǒng)的啟動(dòng),或者Off ice、Photoshop等應(yīng)用程序的啟動(dòng)。本發(fā)明實(shí)施例中虛擬機(jī)啟動(dòng)為虛擬機(jī)機(jī)群大規(guī)模啟動(dòng)之前的一臺(tái)臨時(shí)虛擬機(jī)啟動(dòng)過(guò)程,根據(jù)臨時(shí)虛擬機(jī)的啟動(dòng)獲取虛擬機(jī)大規(guī)模啟動(dòng)過(guò)程所必須的讀寫(xiě)的數(shù)據(jù),并將這些讀寫(xiě)數(shù)據(jù)存儲(chǔ)到虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從該虛擬機(jī)共享緩存裝置讀取數(shù)據(jù)。
[0080]本發(fā)明獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);只將對(duì)虛擬機(jī)啟動(dòng)有效的數(shù)據(jù)緩存至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取數(shù)據(jù),通過(guò)這種方式,能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)讀寫(xiě)數(shù)據(jù)時(shí)的輸入輸出問(wèn)題,且不限于虛擬機(jī)的部署模式。
[0081]參閱圖8,圖8是本發(fā)明虛擬機(jī)共享緩存裝置另一實(shí)施方式的結(jié)構(gòu)示意圖,該裝置包括:獲取模塊201、存儲(chǔ)模塊202、讀寫(xiě)模塊203以及去重復(fù)模塊204。
[0082]可選地,圖8的裝置可以執(zhí)行圖2中的步驟。
[0083]獲取模塊201用于獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)。
[0084]存儲(chǔ)模塊202用于存儲(chǔ)該數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從該虛擬機(jī)共享緩存裝置讀取該數(shù)據(jù)。
[0085]讀寫(xiě)模塊203用于在虛擬機(jī)向虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求時(shí),接收該請(qǐng)求,并向虛擬機(jī)發(fā)送虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),該讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗信息。
[0086]去重復(fù)模塊204用于對(duì)虛擬機(jī)共享緩存裝置存儲(chǔ)的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除操作。
[0087]其中,虛擬機(jī)啟動(dòng)過(guò)程包括虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或虛擬機(jī)開(kāi)機(jī)到虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。本發(fā)明實(shí)施例中虛擬機(jī)啟動(dòng)為虛擬機(jī)機(jī)群大規(guī)模啟動(dòng)之前的一臺(tái)臨時(shí)虛擬機(jī)啟動(dòng)過(guò)程,根據(jù)臨時(shí)虛擬機(jī)的啟動(dòng)獲取虛擬機(jī)大規(guī)模啟動(dòng)過(guò)程所必須的讀寫(xiě)的數(shù)據(jù),并將這些讀寫(xiě)數(shù)據(jù)存儲(chǔ)到虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從該虛擬機(jī)共享緩存裝置讀取數(shù)據(jù)。
[0088]本發(fā)明獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù);只將對(duì)虛擬機(jī)啟動(dòng)有效的數(shù)據(jù)緩存至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從虛擬機(jī)共享緩存裝置讀取數(shù)據(jù),通過(guò)這種方式,能夠以很少的內(nèi)存空間只緩存在虛擬機(jī)啟動(dòng)中有效的數(shù)據(jù),解決虛擬機(jī)并發(fā)啟動(dòng)讀寫(xiě)數(shù)據(jù)時(shí)的輸入輸出問(wèn)題。另外,利用重復(fù)數(shù)據(jù)刪除技術(shù)進(jìn)行去重復(fù)操作可以節(jié)省內(nèi)存。
[0089]在本發(fā)明所提供的幾個(gè)實(shí)施方式中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施方式僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0090]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施方式方案的目的。
[0091]另外,在本發(fā)明各個(gè)實(shí)施方式中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0092]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施方式所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM, Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0093]以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種建立虛擬機(jī)共享存儲(chǔ)緩存的方法,其特征在于,包括: 獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù); 存儲(chǔ)所述數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從所述虛擬機(jī)共享緩存裝置讀取所述數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù)的步驟之前,包括: 所述虛擬機(jī)向所述虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求; 所述虛擬機(jī)接收所述虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),所述讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗息。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括:對(duì)所述虛擬機(jī)共享緩存裝置存儲(chǔ)的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除操作。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述虛擬機(jī)啟動(dòng)過(guò)程包括所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。
5.一種虛擬機(jī)共享緩存裝置,其特征在于,所述裝置包括:獲取模塊和存儲(chǔ)模塊; 所述獲取模塊用于獲取虛擬機(jī)啟動(dòng)過(guò)程中從虛擬啟動(dòng)磁盤(pán)讀寫(xiě)的數(shù)據(jù); 所述存儲(chǔ)模塊用于存儲(chǔ)所述數(shù)據(jù)至虛擬機(jī)共享緩存裝置,以供其他虛擬機(jī)啟動(dòng)時(shí)從所述虛擬機(jī)共享緩存裝置讀取所述數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括:讀寫(xiě)模塊; 所述讀寫(xiě)模塊用于在所述虛擬機(jī)向所述虛擬機(jī)共享緩存裝置發(fā)送讀寫(xiě)請(qǐng)求時(shí),接收所述請(qǐng)求,并向所述虛擬機(jī)發(fā)送所述虛擬機(jī)共享緩存裝置發(fā)送的讀寫(xiě)請(qǐng)求響應(yīng),所述讀寫(xiě)請(qǐng)求響應(yīng)攜帶讀寫(xiě)請(qǐng)求失敗信息。
7.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述裝置還包括去重復(fù)模塊,所述去重復(fù)模塊用于對(duì)所述虛擬機(jī)共享緩存裝置存儲(chǔ)的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除操作。
8.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述虛擬機(jī)啟動(dòng)過(guò)程包括所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)操作系統(tǒng)啟動(dòng)完成或所述虛擬機(jī)開(kāi)機(jī)到所述虛擬機(jī)的預(yù)設(shè)的應(yīng)用程序的啟動(dòng)完成。
【文檔編號(hào)】G06F9/455GK103870312SQ201210535072
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2012年12月12日 優(yōu)先權(quán)日:2012年12月12日
【發(fā)明者】金添福 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1