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