欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法

文檔序號(hào):6382399閱讀:254來源:國知局
專利名稱:一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種計(jì)算機(jī)存儲(chǔ)系統(tǒng)中的存儲(chǔ)優(yōu)化方法,具體涉及一種應(yīng)用于虛擬機(jī)鏡像存儲(chǔ)優(yōu)化的方法;屬于計(jì)算機(jī)科學(xué)文件系統(tǒng)領(lǐng)域。
背景技術(shù)
目前桌面虛擬化產(chǎn)品中大規(guī)模虛擬機(jī)鏡像存儲(chǔ)帶來了數(shù)據(jù)重復(fù)存儲(chǔ)的問題,增加了共享存儲(chǔ)系統(tǒng)的存儲(chǔ)空間壓力,目前在桌面虛擬化應(yīng)用的存儲(chǔ)優(yōu)化技術(shù)方面,主要的存儲(chǔ)優(yōu)化方法包括自動(dòng)精簡配置、分層存儲(chǔ)以及冗余數(shù)據(jù)刪除技術(shù)等。自動(dòng)精簡配置是一種存儲(chǔ)管理的特性,核心原理是“欺騙”操作系統(tǒng),讓操作系統(tǒng)認(rèn)為存儲(chǔ)設(shè)備中有很大的存儲(chǔ)空間,而實(shí)際上的物理存儲(chǔ)空間則沒有那么大。自動(dòng)精簡配置能夠減少已分配但未使用的存儲(chǔ)空間。其功能在于對(duì)數(shù)據(jù)塊按需分配,而不是對(duì)所有存儲(chǔ)空間需求進(jìn)行預(yù)先分配。自動(dòng)精簡配置技術(shù)可以減少幾乎所有空白空間,以避免利用率低下的情況出現(xiàn)。,分層存儲(chǔ)其實(shí)是一種在高速小容量層級(jí)的介質(zhì)層與低速大容量層級(jí)的介質(zhì)層之間進(jìn)行一種自動(dòng)或者手動(dòng)數(shù)據(jù)遷移、復(fù)制、管理等操作的一種存儲(chǔ)技術(shù)及方案。作為存儲(chǔ)技術(shù)來說,分層存儲(chǔ)與存儲(chǔ)虛擬化也是相互交叉、互為因果的一種關(guān)系。分層存儲(chǔ)的實(shí)現(xiàn)需要存儲(chǔ)虛擬化的支撐,這樣才能將分層的實(shí)現(xiàn)與具體應(yīng)用分離。重復(fù)數(shù)據(jù)刪除技術(shù)是目前虛擬化存儲(chǔ)領(lǐng)域的研究重點(diǎn),一般來說,重復(fù)數(shù)據(jù)刪除是在子文件級(jí)發(fā)現(xiàn)冗余數(shù)據(jù)的一種方法,它用一個(gè)指針代替重復(fù)的數(shù)據(jù),這項(xiàng)技術(shù)可以有效減少磁盤存儲(chǔ)空間需求,并降低數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)帶寬需求。重復(fù)數(shù)據(jù)刪除技術(shù)被用來解決數(shù)據(jù)重復(fù)存儲(chǔ)的問題,它通過檢測數(shù)據(jù)的內(nèi)容相似性以合并存儲(chǔ)重復(fù)數(shù)據(jù),可以避免重復(fù)數(shù)據(jù)的多次存儲(chǔ),達(dá)到降低虛擬機(jī)鏡像存儲(chǔ)開銷的目的。內(nèi)容尋址存儲(chǔ)技術(shù)(Content Addressable Storage,CAS)是經(jīng)常被用于進(jìn)行重復(fù)數(shù)據(jù)刪除的方法之一。通過對(duì)大文件進(jìn)行分塊,并且對(duì)每個(gè)分塊計(jì)算出一個(gè)指紋數(shù)據(jù)(md5或sha-Ι)來代表相應(yīng)的文件內(nèi)容,通過比較指紋數(shù)據(jù)來檢測并消除重復(fù)數(shù)據(jù)塊。相比于原始分塊數(shù)據(jù),指紋數(shù)據(jù)通常很小(只有16字節(jié)),因此可以達(dá)到很高的性能。自動(dòng)精簡配置、分層存儲(chǔ)技術(shù)都沒有針對(duì)虛擬機(jī)鏡像文件內(nèi)部以及文件之間都含有大量重復(fù)數(shù)據(jù)塊的特點(diǎn)進(jìn)行針對(duì)性的優(yōu)化,因而達(dá)不到很好的存儲(chǔ)優(yōu)化效果?,F(xiàn)有重復(fù)數(shù)據(jù)刪除技術(shù)主要應(yīng)用于備份系統(tǒng)中,即數(shù)據(jù)一旦寫入,就不會(huì)發(fā)生變化。而虛擬機(jī)需要經(jīng)常對(duì)鏡像文件進(jìn)行讀取、寫入和修改,因此現(xiàn)有的技術(shù)無法直接應(yīng)用于虛擬機(jī)鏡像的存儲(chǔ)優(yōu)化當(dāng)中。

發(fā)明內(nèi)容
本發(fā)明的目的是提出一種基于內(nèi)容尋址技術(shù)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法,達(dá)到在桌面虛擬化應(yīng)用當(dāng)中,減少大規(guī)模虛擬機(jī)鏡像文件帶來的存儲(chǔ)開銷的目的,同時(shí)要保證虛擬機(jī)的I/o性能不受太大影響以及系統(tǒng)的靈活性和可移植性。根據(jù)本發(fā)明的一個(gè)方面,提供了 一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法,其特征在于包括步驟一在FUSE提供的文件操作接口實(shí)現(xiàn)CAS方式存儲(chǔ),其特征在于采用內(nèi)容尋址存儲(chǔ)方法,對(duì)虛擬機(jī)鏡像文進(jìn)行定長分塊,每個(gè)分塊大小為4KB,并對(duì)每個(gè)數(shù)據(jù)分塊計(jì)算指紋(md5),通過指紋判斷重復(fù)數(shù)據(jù)。對(duì)于內(nèi)容相同的數(shù)據(jù)塊只保留一份,并且在每一個(gè)分塊文件中記錄對(duì)應(yīng)被共享的次數(shù)。原來的文件中實(shí)際保存的是優(yōu)化后的文件大小信息以及對(duì)應(yīng)分塊數(shù)據(jù)的指紋序列,數(shù)據(jù)部分以分塊文件的方式保存在共享存儲(chǔ)系統(tǒng)里面,每個(gè)分塊文件都是以其對(duì)應(yīng)的md5值命名。每個(gè)分塊文件的共享計(jì)數(shù)保存在文件的擴(kuò)展屬性當(dāng)中。步驟二 在宿主機(jī)上掛載基于FUSE的用戶態(tài)文件系統(tǒng),其特征在于首先需要在宿主機(jī)上創(chuàng)建一個(gè)空目錄用于掛載,之后,執(zhí)行步驟101中生成的可執(zhí)行文件,并把新建的目錄作為命令行參數(shù)傳入,即可實(shí)現(xiàn)對(duì)文件系統(tǒng)的掛載,掛載之后所有對(duì)掛載目錄所執(zhí)行的操作都會(huì)首先被FUSE截獲并轉(zhuǎn)換成基于CAS的存儲(chǔ)方式。步驟三將虛擬機(jī)鏡像文件拷入FUSE分區(qū)的目錄中,其特征在于在拷貝的過程中鏡像文件會(huì)被轉(zhuǎn)換成CAS方式的存儲(chǔ)。步驟四在FUSE分區(qū)的目錄中啟動(dòng)虛擬機(jī),其特征在于宿主機(jī)的虛擬機(jī)實(shí)例(VM)由遠(yuǎn)程的桌面客戶端啟動(dòng)并操作,在此過程中,每個(gè)VM通過虛擬機(jī)監(jiān)控器向宿主機(jī)所掛載的目錄中的相應(yīng)文件讀寫數(shù)據(jù),對(duì)應(yīng)的I/O系統(tǒng)調(diào)用所產(chǎn)生的相應(yīng)VFS (VirtualFilesystemSwitch, Linux的虛擬文件系統(tǒng)轉(zhuǎn)換器)調(diào)用在內(nèi)核空間被FUSE的內(nèi)核模塊捕捉;然后,VFS調(diào)用被轉(zhuǎn)發(fā)到用戶態(tài)的FUSE接口程序中,該程序重新實(shí)現(xiàn)了每種VFS調(diào)用的對(duì)應(yīng)的應(yīng)答流程,在此過程中按照CAS的存儲(chǔ)思路與遠(yuǎn)程的共享存儲(chǔ)系統(tǒng)交互,重點(diǎn)完成了從虛擬機(jī)鏡像文件到實(shí)際在共享存儲(chǔ)系統(tǒng)中數(shù)據(jù)存儲(chǔ)之間的轉(zhuǎn)換,即用戶所看到的每個(gè)虛擬機(jī)鏡像文件(如數(shù)據(jù)盤文件、內(nèi)存文件等)被劃分成多個(gè)文件存儲(chǔ)(每個(gè)文件存儲(chǔ)一個(gè)或多個(gè)CAS數(shù)據(jù)塊)。在上述過程中,從用戶的角度看,用戶是在操作本地的桌面系統(tǒng);從虛擬機(jī)監(jiān)控器的角度看,所操作的虛擬機(jī)文件和原存儲(chǔ)方案(如直接存儲(chǔ)在NFS、Ceph中)相同;從共享存儲(chǔ)系統(tǒng)的角度看,所存儲(chǔ)的虛擬機(jī)鏡像文件被分成若干小的對(duì)象分別存儲(chǔ)。


圖1為基于FUSE實(shí)現(xiàn)的CAS文件系統(tǒng)的結(jié)構(gòu)圖。圖2為基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法的總體流程。圖3顯示了鏡像文件的存儲(chǔ)格式。圖4為基于內(nèi)容尋址存儲(chǔ)的寫流程。圖5為基于內(nèi)容尋址存儲(chǔ)的讀取流程。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。本發(fā)明是一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法,通過對(duì)文件進(jìn)行分塊,并對(duì)每個(gè)分塊數(shù)據(jù)計(jì)算出Hash指紋,通過Hash指紋的比較來檢測并消除相同的數(shù)據(jù)塊,達(dá)到降低存儲(chǔ)開銷的目的。并且利用FUSE(Filesystem in User Space,用戶態(tài)文件系統(tǒng))實(shí)現(xiàn)對(duì)CAS存儲(chǔ)過程的封裝,達(dá)到對(duì)宿主機(jī)透明存取和提高可移植性的目的。本發(fā)明在軟件上,主要運(yùn)行于Linux系統(tǒng)(支持FUSE架構(gòu))上,需要在FUSE的基礎(chǔ)上實(shí)現(xiàn)一個(gè)用戶態(tài)的文件系統(tǒng),并且在FUSE的讀寫接口中實(shí)對(duì)內(nèi)容尋址存儲(chǔ)過程的封裝。為了達(dá)到實(shí)現(xiàn)上述方法,本發(fā)明的技術(shù)方案是這樣的其整體框架如圖1所示,虛擬機(jī)運(yùn)行在宿主機(jī)上,鏡像則存儲(chǔ)在共享存儲(chǔ)系統(tǒng)中,宿主機(jī)中安裝有共享存儲(chǔ)系統(tǒng)的客戶端軟件,并通過網(wǎng)絡(luò)與共享存儲(chǔ)進(jìn)行通信,虛擬機(jī)的I/o請(qǐng)求首先會(huì)被運(yùn)行在宿主機(jī)上的虛擬機(jī)監(jiān)控器截獲,最終通過宿主機(jī)與共享存儲(chǔ)系統(tǒng)進(jìn)行交互,實(shí)現(xiàn)虛擬機(jī)對(duì)鏡像文件的讀寫。一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法主要實(shí)現(xiàn)在宿主機(jī)上,如圖1中的FUSE (用戶態(tài)文件系統(tǒng))模塊所示,基于FUSE架構(gòu),實(shí)現(xiàn)一個(gè)用戶態(tài)文件系統(tǒng),在FUSE提供的文件操作接口中實(shí)現(xiàn)基于內(nèi)容尋址存儲(chǔ)方式的存儲(chǔ)。該方法主要包含以下步驟(圖2)步驟201 :在FUSE提供的文件操作接口實(shí)現(xiàn)CAS方式存儲(chǔ);步驟202 :在宿主機(jī)上掛載基于FUSE的用戶態(tài)文件系統(tǒng);步驟203 :將虛擬機(jī)鏡像文件拷入FUSE分區(qū)的目錄中;步驟204 :在FUSE所在分區(qū)目錄中啟動(dòng)虛擬機(jī)。其中,步驟201需要在FUSE提供的文件操作接口實(shí)現(xiàn)CAS方式存儲(chǔ),是本發(fā)明的關(guān)鍵步驟,主要方法如下采用CAS方法,對(duì)虛擬機(jī)鏡像文進(jìn)行分塊后計(jì)算指紋序列,通過指紋序列判斷重復(fù)數(shù)據(jù)。對(duì)于內(nèi)容相同的數(shù)據(jù)塊只保留一份,并且在每一個(gè)分塊文件中記錄對(duì)應(yīng)被共享的次數(shù)。原來的文件中實(shí)際保存的是指紋序列(圖3),數(shù)據(jù)部分保存在共享存儲(chǔ)系統(tǒng)里面。Hash算法使用通用的md5算法,并用128位作為緩存(Hash)值保存在原文件中。分塊文件則保存在指定的共享目錄(共享文件系統(tǒng))中。分塊文件直接用其Hash值作為文件名。根據(jù)Hash值查找數(shù)據(jù)文件時(shí),可直接在共享目錄中查找是否存在指定文件名的文件。寫入操作發(fā)生時(shí),現(xiàn)在內(nèi)容中計(jì)算出數(shù)據(jù)部分的Hash值,然后根據(jù)Hash創(chuàng)建的分塊文件,若同名的分塊文件已經(jīng)存在則直接將其共享次數(shù)在原有的基礎(chǔ)上加1,若不存在則創(chuàng)建新的文件并把共享次數(shù)標(biāo)記為I。同理,當(dāng)刪除文件時(shí),只有當(dāng)文件的共享次數(shù)達(dá)到O才把文件真正從磁盤上刪除,否則只是將其對(duì)應(yīng)的共享次數(shù)減I即可。其中,步驟202需要在宿主機(jī)上掛載基于FUSE的文件系統(tǒng),首先需要在宿主機(jī)上創(chuàng)建一個(gè)空目錄用于掛載,之后,執(zhí)行步驟101中生成的可執(zhí)行文件,并把新建的目錄作為命令行參數(shù)傳入,即可實(shí)現(xiàn)對(duì)文件系統(tǒng)的掛載,掛載之后所有對(duì)掛載目錄所執(zhí)行的操作都會(huì)首先被FUSE截獲并轉(zhuǎn)換成基于CAS的存儲(chǔ)方式。其中,步驟203 :需要將虛擬機(jī)鏡像文件拷入FUSE分區(qū)的目錄中,在拷貝的過程中鏡像文件會(huì)被轉(zhuǎn)換成CAS方式的存儲(chǔ)。其中,步驟204在FUSE分區(qū)的目錄中啟動(dòng)虛擬機(jī),宿主機(jī)的虛擬機(jī)(VM)實(shí)例由遠(yuǎn)程的桌面客戶端啟動(dòng)并操作,在此過程中,每個(gè)VM通過虛擬機(jī)監(jiān)控器向宿主機(jī)所掛載的目錄中的相應(yīng)文件讀寫數(shù)據(jù),對(duì)應(yīng)的I/O系統(tǒng)調(diào)用所產(chǎn)生的相應(yīng)VFS調(diào)用在內(nèi)核空間被FUSE的內(nèi)核模塊捕捉;然后,VFS調(diào)用被轉(zhuǎn)發(fā)到用戶態(tài)的FUSE接口程序中,該程序重新實(shí)現(xiàn)了每種VFS調(diào)用的對(duì)應(yīng)的應(yīng)答流程,在此過程中按照CAS的存儲(chǔ)思路與遠(yuǎn)程的共享存儲(chǔ)系統(tǒng)交互,重點(diǎn)完成了從虛擬機(jī)鏡像文件到實(shí)際在共享存儲(chǔ)系統(tǒng)中數(shù)據(jù)存儲(chǔ)之間的轉(zhuǎn)換,即用戶所看到的每個(gè)虛擬機(jī)鏡像文件(如數(shù)據(jù)盤文件、內(nèi)存文件等)被劃分成多個(gè)文件存儲(chǔ)(每個(gè)文件存儲(chǔ)一個(gè)或多個(gè)CAS數(shù)據(jù)塊)。在上述過程中,從用戶的角度看,用戶是在操作本地的桌面系統(tǒng);從虛擬機(jī)監(jiān)控器的角度看,所操作的虛擬機(jī)文件和原存儲(chǔ)方案(如直接存儲(chǔ)在NFS、Ceph中)相同;從共享存儲(chǔ)系統(tǒng)的角度看,所存儲(chǔ)的虛擬機(jī)鏡像文件被分成若干小的對(duì)象分別存儲(chǔ)。本發(fā)明的優(yōu)點(diǎn)及功效本發(fā)明的目的是提出一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方式,目的在于減小大規(guī)模虛擬機(jī)鏡像文件帶來的存儲(chǔ)開銷。與現(xiàn)有方法相比,其主要有點(diǎn)有(一)高效性,經(jīng)驗(yàn)證,本發(fā)明采用的基于內(nèi)容尋址存儲(chǔ)消除重復(fù)數(shù)據(jù)的方法能夠?qū)⑻摂M機(jī)鏡像的磁盤占用量降低50%以上;(二)靈活性,采用基于FUSE架構(gòu)來實(shí)現(xiàn)內(nèi)容尋址存儲(chǔ)的方法,程序全部在用戶態(tài)實(shí)現(xiàn),因此可以方便的部署到現(xiàn)有的系統(tǒng)當(dāng)中,具有很高的可移植性,而無需對(duì)虛擬機(jī)和操作系統(tǒng)進(jìn)行任何修改。下面詳細(xì)說明每一步驟步驟201 :在FUSE提供的文件操作接口實(shí)現(xiàn)CAS方式存儲(chǔ),基于CAS方式存儲(chǔ)的主要思想是,對(duì)原始鏡像文件進(jìn)行定長分塊,分塊大小為4KB,文件末尾不足4KB大小的以“O”填充。對(duì)每個(gè)分塊計(jì)算出一個(gè)128位的md5指紋。如附圖2,經(jīng)過優(yōu)化之后的鏡像文件中首先存儲(chǔ)原鏡像文件的大小信息,數(shù)據(jù)類型為8字節(jié)無符號(hào)整數(shù)。接下來就是文件分塊數(shù)據(jù)的Hash信息。在共享存儲(chǔ)系統(tǒng)中,分塊文件將直接以Hash序列來命名,對(duì)應(yīng)的分塊被共享的次數(shù)以整數(shù)的形式存在分塊文件的擴(kuò)展屬性中。下面詳細(xì)說明基于內(nèi)容尋址存儲(chǔ)的讀寫過程文件的寫入函數(shù)(圖3),對(duì)應(yīng)于系統(tǒng)調(diào)用write。函數(shù)的操作流程如下I)根據(jù)偏移量計(jì)算出Hash序列的位置并讀出Hash序列2)將Hash序列轉(zhuǎn)換成對(duì)應(yīng)分塊文件的路徑,并讀出分塊文件共享計(jì)數(shù)值,若共享計(jì)數(shù)為I則直接刪除對(duì)應(yīng)數(shù)據(jù)塊文件,否則將共享計(jì)數(shù)值減I3)計(jì)算寫入數(shù)據(jù)的md5值作為Hash值4)根據(jù)新的Hash值在共享存儲(chǔ)系統(tǒng)中查找對(duì)應(yīng)的數(shù)據(jù)塊文件,若找到對(duì)應(yīng)的文件則將共享計(jì)數(shù)值加1,否則,創(chuàng)建新的數(shù)據(jù)塊文件并將共享計(jì)數(shù)值設(shè)為I5)更新文件指針,若還有數(shù)據(jù)要寫入則轉(zhuǎn)步驟1,若無則轉(zhuǎn)步驟66)更新文件大小信息7)返回實(shí)際寫入的字節(jié)數(shù)讀取文件函數(shù)(圖4),對(duì)應(yīng)read系統(tǒng)調(diào)用I)判斷是否到達(dá)文件結(jié)尾,若達(dá)到,則轉(zhuǎn)步驟5,否則轉(zhuǎn)步驟22)根據(jù)偏移量計(jì)算出Hash序列的位置并讀出Hash序列3)根據(jù)讀出的Hash序列,在共享存儲(chǔ)中查找對(duì)應(yīng)的數(shù)據(jù)塊文件,并讀取分塊文件中的內(nèi)容4)更新文件指針,若還有數(shù)據(jù)要繼續(xù)讀則轉(zhuǎn)步驟3,若無則轉(zhuǎn)75)返回實(shí)際所讀的字節(jié)數(shù)
步驟202 :把步驟201中實(shí)現(xiàn)的基于FUSE的用戶態(tài)文件系統(tǒng)掛載到宿主機(jī)的目錄中,首先需要在宿主機(jī)中建立空的目錄用戶掛載,假設(shè)為/fuse (運(yùn)行mkdir/fuse命令),之后,執(zhí)行步驟101中生成的可執(zhí)行文件(假設(shè)可執(zhí)行文件名為fuse-cas),并把新建的目錄作為命令行參數(shù)傳入,即可實(shí)現(xiàn)對(duì)文件系統(tǒng)的掛載(掛載命令為./fuse-cas/fuse)。掛載之后所有對(duì)掛載目錄所執(zhí)行的操作都會(huì)首先被FUSE截獲并轉(zhuǎn)換成基于CAS的存儲(chǔ)方式。步驟203,需要把已有的虛擬機(jī)鏡像文件(假設(shè)為redhat-server.1mg)拷入掛載FUSE的目錄或其子目錄中。在鏡像文件所在目錄運(yùn)行命令cp redhat-server.1mg/fuse即可實(shí)現(xiàn)拷貝。步驟204,在步驟203的基礎(chǔ)上,優(yōu)化后的虛擬機(jī)鏡像文件存在/fuse目錄中,把優(yōu)化后的鏡像文件路徑作為參數(shù)傳入虛擬機(jī)監(jiān)控器即可啟動(dòng)(假設(shè)虛擬機(jī)監(jiān)控器路徑為/usr/libexec/qemu-kvm),經(jīng)過優(yōu)化之后,啟動(dòng)虛擬機(jī)的命令為/usr/libexec/qemu_kvm /fuse/redhat-server.1mgboot cml024_vnc:2&最后所應(yīng)說明的是以上實(shí)施例僅用以說明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法,其特征在于包括 步驟ー在FUSE提供的文件操作接ロ實(shí)現(xiàn)CAS方式存儲(chǔ),其特征在于采用內(nèi)容尋址存儲(chǔ)方法,對(duì)虛擬機(jī)鏡像文進(jìn)行定長分塊,每個(gè)分塊大小為4KB,并對(duì)每個(gè)數(shù)據(jù)分塊計(jì)算指紋(md5),通過指紋判斷重復(fù)數(shù)據(jù),對(duì)于內(nèi)容相同的數(shù)據(jù)塊只保留ー份,并且在每ー個(gè)分塊文件中記錄對(duì)應(yīng)被共享的次數(shù),原來的文件中實(shí)際保存的是優(yōu)化后的文件大小信息以及對(duì)應(yīng)分塊數(shù)據(jù)的指紋序列,數(shù)據(jù)部分以分塊文件的方式保存在共享存儲(chǔ)系統(tǒng)里面,每個(gè)分塊文件都是以其對(duì)應(yīng)的md5值命名,每個(gè)分塊文件的共享計(jì)數(shù)保存在文件的擴(kuò)展屬性當(dāng)中;步驟ニ 在宿主機(jī)上掛載基于FUSE的用戶態(tài)文件系統(tǒng),其特征在于首先需要在宿主機(jī)上創(chuàng)建ー個(gè)空目錄用于掛載,之后,執(zhí)行步驟101中生成的可執(zhí)行文件,并把新建的目錄作為命令行參數(shù)傳入,即可實(shí)現(xiàn)對(duì)文件系統(tǒng)的掛載,掛載之后所有對(duì)掛載目錄所執(zhí)行的操作都會(huì)首先被FUSE截獲并轉(zhuǎn)換成基于CAS的存儲(chǔ)方式; 步驟三將虛擬機(jī)鏡像文件拷入FUSE分區(qū)的目錄中,其特征在于在拷貝的過程中鏡像文件會(huì)被轉(zhuǎn)換成CAS方式的存儲(chǔ); 步驟四在FUSE分區(qū)的目錄中啟動(dòng)虛擬機(jī),其特征在于宿主機(jī)的虛擬機(jī)實(shí)例(VM)由遠(yuǎn)程的桌面客戶端啟動(dòng)并操作,在此過程中,每個(gè)VM通過虛擬機(jī)監(jiān)控器向宿主機(jī)所掛載的目錄中的相應(yīng)文件讀寫數(shù)據(jù),對(duì)應(yīng)的I/O系統(tǒng)調(diào)用所產(chǎn)生的相應(yīng)VFS (VirtualFilesystemSwitch, Linux的虛擬文件系統(tǒng)轉(zhuǎn)換器)調(diào)用在內(nèi)核空間被FUSE的內(nèi)核模塊捕捉;然后,VFS調(diào)用被轉(zhuǎn)發(fā)到用戶態(tài)的FUSE接ロ程序中,該程序重新實(shí)現(xiàn)了每種VFS調(diào)用的對(duì)應(yīng)的應(yīng)答流程,在此過程中按照CAS的存儲(chǔ)思路與遠(yuǎn)程的共享存儲(chǔ)系統(tǒng)交互,重點(diǎn)完成了從虛擬機(jī)鏡像文件到實(shí)際在共享存儲(chǔ)系統(tǒng)中數(shù)據(jù)存儲(chǔ)之間的轉(zhuǎn)換,即用戶所看到的每個(gè)虛擬機(jī)鏡像文件(如數(shù)據(jù)盤文件、內(nèi)存文件等)被劃分成多個(gè)文件存儲(chǔ)(每個(gè)文件存儲(chǔ)ー個(gè)或多個(gè)CAS數(shù)據(jù)塊); 在上述過程中,從用戶的角度看,用戶是在操作本地的桌面系統(tǒng);從虛擬機(jī)監(jiān)控器的角度看,所操作的虛擬機(jī)文件和原存儲(chǔ)方案(如直接存儲(chǔ)在NFS、aph中)相同;從共享存儲(chǔ)系統(tǒng)的角度看,所存儲(chǔ)的虛擬機(jī)鏡像文件被分成若干小的對(duì)象分別存儲(chǔ)。
全文摘要
本發(fā)明涉及一種基于內(nèi)容尋址存儲(chǔ)的虛擬機(jī)鏡像存儲(chǔ)優(yōu)化方法,具體包括如下內(nèi)容采用CAS方法,對(duì)虛擬機(jī)鏡像文進(jìn)行分塊后計(jì)算指紋序列,通過指紋序列判斷重復(fù)數(shù)據(jù)。對(duì)于內(nèi)容相同的數(shù)據(jù)塊只保留一份,并且在每一個(gè)分塊文件中記錄對(duì)應(yīng)被共享的次數(shù)。原來的文件中實(shí)際保存的是指紋序列(圖3),數(shù)據(jù)部分保存在共享存儲(chǔ)系統(tǒng)里面。為了保證對(duì)虛擬機(jī)監(jiān)控器的透明存取及系統(tǒng)的可移植性,采用基于FUSE框架將對(duì)虛擬機(jī)鏡像的操作過程封裝到相應(yīng)的系統(tǒng)調(diào)用應(yīng)答接口的實(shí)現(xiàn)中,以服務(wù)FUSE內(nèi)核模塊所獲取上層用戶操作虛擬機(jī)所產(chǎn)生的I/O請(qǐng)求,從而將虛擬機(jī)鏡像文件的直接存儲(chǔ)轉(zhuǎn)換為基于CAS方式的存儲(chǔ)。本發(fā)明采用的基于內(nèi)容尋址存儲(chǔ)消除重復(fù)數(shù)據(jù)的方法能夠?qū)⑻摂M機(jī)鏡像的磁盤占用量降低50%以上,針對(duì)目前虛擬機(jī)大規(guī)模應(yīng)用的現(xiàn)狀,本發(fā)明具有廣泛的應(yīng)用前景。
文檔編號(hào)G06F9/445GK103034684SQ20121049109
公開日2013年4月10日 申請(qǐng)日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者肖利民, 趙國玉, 李秀橋, 唐浩夫 申請(qǐng)人:北京航空航天大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
柯坪县| 莫力| 望城县| 龙里县| 瑞昌市| 米泉市| 西和县| 江津市| 定日县| 邯郸市| 普兰店市| 罗江县| 无为县| 旬阳县| 南澳县| 丽水市| 临颍县| 宜宾县| 泸西县| 石阡县| 桃园县| 华坪县| 周口市| 黎城县| 太谷县| 同德县| 长阳| 沂源县| 扬州市| 都兰县| 德保县| 西和县| 抚远县| 石渠县| 昌平区| 余姚市| 重庆市| 隆子县| 宁武县| 永新县| 台州市|