趙云棟
(河北省財政廳,石家莊 050051)
在各個域間實現(xiàn)數(shù)據(jù)共享的虛擬化計算機系統(tǒng),包括計算機硬件裝置和在該計算機硬件裝置上運行的軟件單元,軟件單元包括主域、客域、在主域與客域之間的域間通道。其中,主域的內(nèi)核有文件系統(tǒng)模塊和共享數(shù)據(jù)服務(wù)器模塊,客域的內(nèi)核有共享數(shù)據(jù)客戶端模塊,域間通道用于實現(xiàn)共享數(shù)據(jù)客戶端模塊和共享數(shù)據(jù)服務(wù)器模塊之間的數(shù)據(jù)交互。本發(fā)明共享數(shù)據(jù)的方法是在共享數(shù)據(jù)服務(wù)器模塊和共享數(shù)據(jù)客戶端模塊之間,藉由它們之間的域間通道,通過基于半虛擬化的內(nèi)存頁面重映射機制實現(xiàn)文件訪問過程。該方法解決了現(xiàn)有技術(shù)不同域之間不能有效共享數(shù)據(jù)的問題,實現(xiàn)了存儲數(shù)據(jù)的統(tǒng)一管理,減低維護(hù)成本,性能好、效率高、適用范圍廣。
各域之間實現(xiàn)數(shù)據(jù)共享,系統(tǒng)要包括:一個計算機硬件裝置,該計算機硬件裝置設(shè)有:一個或一組支持兩個或多個運行特權(quán)級的中央處理器、設(shè)定容量的內(nèi)存和包括存儲設(shè)備在內(nèi)的輸入輸出設(shè)備,所述存儲設(shè)備包括硬盤、軟盤、閃存盤、光盤、直連式存儲設(shè)備或網(wǎng)絡(luò)存儲設(shè)備;該系統(tǒng)還包括在所述計算機硬件裝置上運行的軟件單元,所述軟件單元包括:一個主域部件、一個或多個客域部件以及在主域部件與客域部件之間的域間通道部件。主域部件直接運行在計算機硬件裝置上,用于提供支撐虛擬機運行的虛擬機監(jiān)控器。主域部件的內(nèi)核包括文件系統(tǒng)模塊和共享數(shù)據(jù)服務(wù)器模塊,文件系統(tǒng)模塊用于管理計算機的存儲設(shè)備及其中存儲的數(shù)據(jù),并完成對存儲設(shè)備上的文件訪問;共享數(shù)據(jù)服務(wù)器模塊用于與客域部件的共享數(shù)據(jù)客戶端模塊進(jìn)行交互,利用文件系統(tǒng)模塊的文件訪問功能,完成客域部件中的共享數(shù)據(jù)客戶端模塊對主域部件直接管理的存儲設(shè)備及其中存儲的數(shù)據(jù)的訪問。客域部件運行在主域部件的虛擬機監(jiān)視器所支撐的虛擬機上??陀虿考膬?nèi)核包括共享數(shù)據(jù)客戶端模塊,該模塊用做客域操作系統(tǒng)的文件系統(tǒng)重定向器,以響應(yīng)來自該客域部件中的應(yīng)用和其他內(nèi)核子系統(tǒng)模塊對存儲設(shè)備上的文件訪問請求,并通過域間通道與主域部件的共享數(shù)據(jù)服務(wù)器模塊進(jìn)行交互,利用主域部件的共享數(shù)據(jù)服務(wù)器模塊和文件系統(tǒng)模塊的文件訪問功能,完成客域部件對主域部件直接管理的存儲設(shè)備及其中存儲的數(shù)據(jù)的間接訪問。
主域部件與客域部件之間的域間通道部件,是基于半虛擬化的內(nèi)存頁面重映射機制實現(xiàn)的域間通信通道,用于完成客域部件的共享數(shù)據(jù)客戶端模塊和主域部件的共享數(shù)據(jù)服務(wù)器模塊之間的數(shù)據(jù)交互。所述主域部件的共享數(shù)據(jù)服務(wù)器模塊和文件系統(tǒng)模塊都運行在該主域部件的操作系統(tǒng)的內(nèi)核態(tài),其中,共享數(shù)據(jù)服務(wù)器模塊按照文件系統(tǒng)向上提供的接口規(guī)范與文件系統(tǒng)模塊交互,并通過文件系統(tǒng)模塊管理存儲設(shè)備和其中存儲的數(shù)據(jù)。該共享數(shù)據(jù)服務(wù)器模塊的文件訪問例程經(jīng)文件系統(tǒng)模塊通過執(zhí)行典型的“打開、包括讀、寫、或控制的各項操作、關(guān)閉”文件的操作系統(tǒng)文件訪問過程完成對文件的訪問。
客域部件的操作系統(tǒng)是通用的操作系統(tǒng),所述每個客域部件都有一個運行在該客域操作系統(tǒng)的內(nèi)核態(tài)的共享數(shù)據(jù)客戶端模塊;該共享數(shù)據(jù)客戶端模塊在客域提供本地文件系統(tǒng)的功能,向客域部件中的應(yīng)用和其他內(nèi)核子系統(tǒng)模塊提供本地文件系統(tǒng)的服務(wù)接口,通過域間通道部件與主域部件中的共享數(shù)據(jù)服務(wù)器模塊進(jìn)行交互。當(dāng)所述虛擬化計算機系統(tǒng)中有多個客域部件時,所述主域部件和該多個客域部件之間建立的域間通道部件呈一對多的星形拓?fù)浣Y(jié)構(gòu),且其中每個客域部件的共享數(shù)據(jù)客戶端模塊與主域部件的共享數(shù)據(jù)服務(wù)器模塊之間的交互是彼此獨立的。
共享數(shù)據(jù)服務(wù)器模塊應(yīng)保證,每個客域部件對主域部件直接管理的存儲設(shè)備和其中存儲的數(shù)據(jù)的訪問不能干涉其他客域部件對主域部件直接管理的存儲設(shè)備和其中存儲的數(shù)據(jù)的訪問,以及某個客域部件的非法操作不能對主域部件和其他客域部件產(chǎn)生不利影響。所述主域部件的內(nèi)核數(shù)據(jù)訪問棧的結(jié)構(gòu)由最底層向上的排列順序包括:存儲設(shè)備驅(qū)動程序模塊,存儲卷管理模塊,文件系統(tǒng)模塊,共享數(shù)據(jù)服務(wù)器模塊。內(nèi)核數(shù)據(jù)訪問棧的另一種結(jié)構(gòu)包括文件系統(tǒng)模塊和共享數(shù)據(jù)服務(wù)器模塊,此時的文件系統(tǒng)模塊是基于網(wǎng)絡(luò)的文件系統(tǒng)模塊或虛文件系統(tǒng)模塊。共享數(shù)據(jù)服務(wù)器模塊設(shè)有兩類數(shù)據(jù)結(jié)構(gòu):文件訪問表和文件訪問實例,前者是分別為與該共享數(shù)據(jù)服務(wù)器模塊進(jìn)行交互的各個共享數(shù)據(jù)客戶端模塊單獨、對應(yīng)地建立的,該文件訪問表由多個節(jié)點組成,每個節(jié)點對應(yīng)著所述共享數(shù)據(jù)客戶端模塊與該共享數(shù)據(jù)服務(wù)器模塊之間的一個文件訪問過程,后者用于記錄每一個文件訪問過程中的文件訪問信息,對應(yīng)于某個文件訪問過程的文件訪問表的節(jié)點直接含有或由指針間接指向?qū)?yīng)于同一個文件訪問過程的文件訪問實例。所述文件訪問表的節(jié)點和文件訪問實例是在該共享數(shù)據(jù)客戶端模塊請求共享數(shù)據(jù)服務(wù)器模塊打開文件時,由共享數(shù)據(jù)服務(wù)器模塊建立,并在該共享數(shù)據(jù)客戶端模塊請求共享數(shù)據(jù)服務(wù)器模塊關(guān)閉文件時,由共享數(shù)據(jù)服務(wù)器模塊拆除。當(dāng)共享數(shù)據(jù)服務(wù)器模塊響應(yīng)某個共享數(shù)據(jù)客戶端模塊請求而打開文件、建立對應(yīng)本次文件訪問過程的文件訪問表節(jié)點時產(chǎn)生一個標(biāo)識符-檢索索引號,用于標(biāo)識該文件訪問過程的文件訪問表節(jié)點,并回復(fù)給該共享數(shù)據(jù)客戶端模塊。共享數(shù)據(jù)服務(wù)器模塊用該檢索索引號可以獲得對應(yīng)的文件訪問實例,從而獲得這次文件訪問過程的文件訪問信息,且在本次文件訪問過程中,在共享數(shù)據(jù)服務(wù)器模塊響應(yīng)該共享數(shù)據(jù)客戶端模塊的請求關(guān)閉文件,并拆除對應(yīng)這次文件訪問過程中的文件訪問表節(jié)點和文件訪問實例之前,標(biāo)識本次文件訪問過程的檢索索引號始終有效、且是惟一的。
上述辦法高效合理地解決數(shù)據(jù)之間傳輸與共享,傳統(tǒng)虛擬化中不同客域之間數(shù)據(jù)傳輸或共享,在網(wǎng)絡(luò)環(huán)境中可達(dá)100Mb/s,通過半虛擬化內(nèi)存頁面映射技術(shù),傳輸速率可達(dá)2000Mb/s。目前,企事業(yè)單位的虛擬化平臺覆蓋率已達(dá)到50%以上,隨著時間的推移,虛擬化比將會越來越高,半虛擬化內(nèi)存頁面映射技術(shù)將為虛擬化平臺帶來新的革命與挑戰(zhàn)?!?/p>