国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種分布式虛擬機監(jiān)控器內(nèi)連通信方法

      文檔序號:6471798閱讀:164來源:國知局
      專利名稱:一種分布式虛擬機監(jiān)控器內(nèi)連通信方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種分布式虛擬機監(jiān)控器內(nèi)連通信方法,屬于計算機系統(tǒng)虛擬化技術(shù),尤其是 涉及一種以實現(xiàn)服務(wù)器機群虛擬化目標的分布式虛擬機監(jiān)視器系統(tǒng)的內(nèi)連通信技術(shù)。屬于計算 機技術(shù)領(lǐng)域。
      (二) 背景技術(shù) 虛擬化技術(shù) 單機虛擬化逐步成熟
      虛擬化技術(shù)自從一出現(xiàn)便受到人們廣泛的關(guān)注,現(xiàn)在,越來越多的廠商開始介入,從處理 器層面的AMD和Intel到操作系統(tǒng)層面的微軟的加入,從數(shù)量眾多的第三方軟件廠商的涌現(xiàn)到 服務(wù)器系統(tǒng)廠商的高調(diào)響應(yīng)??梢娞摂M化技術(shù)發(fā)展迅猛。
      Xen是由劍橋大學(xué)計算機實驗室開發(fā)的一個開源虛擬機監(jiān)控器(VMM),在其上可以同時創(chuàng)建 多個虛擬機,每個虛擬機運行一個操作系統(tǒng)。Xen采用的虛擬化技術(shù)被稱為 para-virtualization (半虛擬化),即V麗對客戶操作系統(tǒng)的一般指令不予理睬,對操作系統(tǒng) 的敏感指令需要使用超級調(diào)用(hypercall)來代替。這樣極大的提高了系統(tǒng)的隔離性和性能, 但是有一個缺點就是它需要用戶對操作系統(tǒng)進行修改。隨著AMD和Intel推出硬件輔助虛擬化 支持技術(shù),Xen也支持全虛擬化和硬件輔助虛擬化。'
      VMware公司是目前市場上的領(lǐng)軍人物,它采用全虛擬化(Full-Virtualization)技術(shù)。全 虛擬化技術(shù)就是客戶操作系統(tǒng)不需要作任何改動可以直接運行在虛擬機上,它能允許用戶使用 常規(guī)的,無需修訂的操作系統(tǒng)來作為客戶端。
      多機虛擬化走上舞臺
      隨著應(yīng)用對計算機資源的增長,單機資源己經(jīng)滿足不了用戶的需求,如何突破單宿主機限 制成為虛擬化技術(shù)的另一重要發(fā)展方向。
      曰本東京大學(xué)的Virtual Multiprocessor項目是基于IA-32機群的分布式V謹。這個項目 中,在V麗和硬件層之間,運行了一個簡化的操作系統(tǒng)。它可以由這層hostOS提供支持。Virtual Multiprocessor采用了半虛擬化的技術(shù),通過對客戶操作系統(tǒng)的修改使其與Virtyal Multiprocessor協(xié)作完成任務(wù)。Virtual Multiprocessor運行于用戶態(tài),其主要功能依賴對宿 主操作系統(tǒng)的系統(tǒng)調(diào)用,因而效率低下。'其分布式V應(yīng)之間的通信是通過調(diào)用下層多操作系統(tǒng)的TCP協(xié)議完成,節(jié)點間的通信由操作系統(tǒng)負責(zé)。
      vNUMA是澳大利亞新南威爾士大學(xué)開發(fā)的基于IA-64機群的分布式VMM,其運行于最底層。 客戶操作系統(tǒng)(Linux)通過準虛擬化的方式與vNUMA協(xié)作。vNUMA的主要目標在于提供透明的分 布式共享存儲用于科學(xué)計算。vNUMA系統(tǒng)采用了一種被稱為預(yù)虛擬化的方法,該方法由德國 Karlsruhe大學(xué)、澳大利亞新南威爾士大學(xué)和IBM共同提出。這是一種提供工具支持的半自動 Guest構(gòu)造方法,利用匯編器的支持,對Guest系統(tǒng)的代碼進行掃描,將其中的部分特權(quán)指令 進行靜態(tài)替換,對無法靜態(tài)處理的指令采用profile方法動態(tài)地尋找并手工替換。這個方法的 指導(dǎo)思想是采用編譯工具支持,盡可能增加可以直接運行的指令,減少需要模擬的指令。 跨節(jié)點的通信系統(tǒng)
      VMM間的通信
      Virtual Multiprocessor通信
      日本東京大學(xué)的Virtual Multiprocessor項目也是實現(xiàn)分布式虛擬機。這個項目中,在VMM 和硬件層之間,運行了一個簡化的操作系統(tǒng),稱為Host 0S。 V固間的通信使用自己的應(yīng)用協(xié)議, 它使用Host OS中基于以太網(wǎng)的TCP/IP協(xié)議棧來完成數(shù)據(jù)的發(fā)送與接收。它的優(yōu)點是通信協(xié)議 使用現(xiàn)有的TCP/IP協(xié)議棧,給實現(xiàn)帶來極大的方便。而缺點也是很顯然的,它需要有hostOS 的支持,通信屬于應(yīng)用級的,效率上要低。
      vN腿通信
      'vNUMA是澳大利亞新南威爾士大學(xué)開發(fā)的一種基于IA-64機群的分布式VMM。它是基于安騰 體系結(jié)構(gòu)的V麗直接運行在硬件上,底層通信直接在硬件上實現(xiàn)。但是它是非開源的。它的優(yōu) 點是由硬件實現(xiàn)效率上高,缺點就是專用硬件支持,給實現(xiàn)帶來了困難。
      其它跨結(jié)點間高效通信機制 V薩C通信機制
      Virtual Memory-Mapped Communication(VMMC)是一種基于虛擬內(nèi)存映射的通信機制,它 支持從發(fā)送方虛擬內(nèi)存到接收方虛擬內(nèi)存的數(shù)據(jù)直接傳送。支持數(shù)據(jù)零拷貝,但是它需要專用 的硬件支持。 Active Messages
      它是第一個被廣泛使用的ULN(User Level Networking),最初是為并行的微機開發(fā)的,在 不同的網(wǎng)絡(luò)接口硬件上應(yīng)用,接著發(fā)展成為一種用于通訊的匯編語言。它是不需要任何協(xié)議支 持'的,更加接近于硬件,效率高,但是在死鎖處理和同步上較差。 Fast Sockets
      它用的是GAM(Globally Addressable Memory)接口,并不將底部的隊列結(jié)構(gòu)展示出來, 排除了處理程序的隱含執(zhí)行,而是由用戶進程為即將到來的消息提供緩存管理并管理流量以避免死鎖。它被廣泛應(yīng)用于機群互連,并推動了為解決由大批傳送引起的節(jié)點爭奪問題等相關(guān)協(xié) 議的發(fā)展。雖然它只需要少量的數(shù)據(jù)拷貝,但是需要專用的平臺接口才能實現(xiàn)。
      綜上所述,目前的V麗間通信主要有兩種, 一種是在基于host OS的VMM中,通信靠host OS 中的協(xié)議棧來完成;另外一種是基于硬件的V羅,它在專有通信硬件的基礎(chǔ)上完成通信。本發(fā) 明闡述的通信機制基于千兆以太網(wǎng),為直接運行于硬件之上的Vffll提供通信。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種分布式虛擬機監(jiān)控器內(nèi)連通信方法,它主要采用環(huán)機制與可靠 傳輸協(xié)議結(jié)合,并輔助以有效的通告機制,利用高速互連局域網(wǎng)網(wǎng)絡(luò),為分布式虛擬機監(jiān)控器 提供可靠高效的通信,完成集群資源的整合。
      本發(fā)明所述的方法基于集群系統(tǒng)-一種通過外部互聯(lián)網(wǎng)絡(luò)連接的多計算機系統(tǒng),其特點是各 物理資源分布于多個節(jié)點之上,通過對各節(jié)點資源的虛擬化及模塊協(xié)作,完成對服務(wù)器資源的 整合,集群中的計算機需要通過網(wǎng)絡(luò)傳遞消息的方式進行合作。本發(fā)明專利的目標是為在機群 系統(tǒng)之上利用虛擬化技術(shù)提供具有對稱式多處理器(Symmetric Multi-Processors, SMP)特性 的虛擬機監(jiān)控器提供可靠高效的通信。分布式虛擬機監(jiān)控器的特點是直接工作于物理硬件之上, 而無需操作系統(tǒng)的幫助。
      本發(fā)明專利通過在機群節(jié)點上部署VMM,在機群系統(tǒng)的物理結(jié)構(gòu)上提供具有SMP特性的虛擬 機監(jiān)控器。并在VMM運行修改過的linux操作系統(tǒng),稱之為設(shè)備domain(DomO),并由它提供可 靠傳輸協(xié)議棧。通過在VMM中實現(xiàn)與設(shè)備domain高效的交互機制,來完成對設(shè)備domain協(xié)議 棧的調(diào)用,從而達到VMM間可靠高效的數(shù)據(jù)傳輸,使支持SMP結(jié)構(gòu)的商業(yè)化的操作系統(tǒng)無需修 改即可運行在該虛擬機中。
      V麗的通信模塊負責(zé)為布署于各物理結(jié)點之上的V麗提供可靠高效的數(shù)據(jù)傳輸,使VMM完成 對多機資源的整合,為客戶操作系統(tǒng)呈現(xiàn)單一的鏡像。
      本發(fā)明一種分布式虛擬機監(jiān)控器內(nèi)連通信方法,具體實現(xiàn)步驟如下
      步驟一、準備階段
      各結(jié)點VMM創(chuàng)建虛擬機并為虛擬機分配內(nèi)存時為雙環(huán)預(yù)留空間,告知虛擬機頁面不可用, 并初始化請求環(huán)和服務(wù)環(huán)結(jié)構(gòu);
      各節(jié)點VMM分別在啟動虛擬機時啟動設(shè)備模擬模塊dm,并將雙環(huán)所在的頁面映射到domainO 地址空間內(nèi),以供domainO和工作在domainO之上的dm模塊中應(yīng)用程序使用;
      在各節(jié)點V羅分別事件通道的初始化,事件通道由VMM管理,并呈現(xiàn)給domainO使用;
      步驟二、建立連接階段
      當(dāng)客戶操作系統(tǒng)啟動時 '1.由管理模塊啟動客戶操作系統(tǒng),首先陷入到VMM中,VMM對客戶操作系統(tǒng)進行分配核心 資源后啟動為客戶操作系統(tǒng)提供設(shè)備模擬的qemu-dm模塊; 啟動qemu-dm模塊中我們所實現(xiàn)的通信模塊部分-
      為提高數(shù)據(jù)傳輸率,我們使用三個連接進行通信,分別是不同物理節(jié)點上的vcpu間,遠程 1/0設(shè)備訪問,遠程訪存;
      qemu-dm模塊運行在domainO的應(yīng)用層,各節(jié)點分別從客戶操作系統(tǒng)的配置文件讀取參數(shù), 將參數(shù)傳遞過來,比如節(jié)點IP地址。啟動節(jié)點創(chuàng)建socket,開始對連接進行監(jiān)聽,而非啟動節(jié) 點創(chuàng)建socket后發(fā)起連接請求;這個過f呈為阻塞方式,也就是說只有建立好連接之后才可往下 進行;
      通過系統(tǒng)調(diào)用方式進入到domainO的內(nèi)核態(tài)使用TCP/IP協(xié)議棧完成連接的建立;分別將建 立好的連接的描述符保存到連接數(shù)組,以供數(shù)據(jù)發(fā)送時使用; 步驟三、數(shù)據(jù)傳輸過程
      當(dāng)客戶操作系統(tǒng)發(fā)生缺頁或者I/O設(shè)備訪問時會首先陷入到VMM中;
      VMl對陷入原因進行分析,根據(jù)不同請求創(chuàng)建不同的請求,將需要發(fā)送的數(shù)據(jù)的地址映射到 domainO,然后通過寫指針加入到請求環(huán)中,最后設(shè)置事件通道;
      qerau-dm模塊中通信線程被V薩以事件通道的方式喚醒,開始對請求環(huán)進行輪詢,當(dāng)有數(shù)據(jù) 需要發(fā)送會通過讀指針將請求取出來,并根據(jù)請求組建數(shù)據(jù)包,為數(shù)據(jù)包加應(yīng)用層頭部;
      數(shù)據(jù)傳入domainO中的TCP/IP協(xié)議棧,通過網(wǎng)卡將數(shù)據(jù)發(fā)送出去;
      目的節(jié)點接收到數(shù)據(jù)后由網(wǎng)卡中斷交由TCP/IP掉、議棧,協(xié)議棧在去掉傳輸層以下的頭部后 將數(shù)據(jù)保存,并將地址保存到一個環(huán)描述符中,通過服務(wù)環(huán)寫指針將它放入到服務(wù)環(huán)中去,然 后通過事件通道告知VMM來處理;
      VMM讀取服務(wù)環(huán),得到描述符中的地址后將數(shù)據(jù)映射到客戶操作系統(tǒng)中去,這樣接收數(shù)據(jù)完
      成;
      步驟四、連接關(guān)閉階段
      客戶操作系統(tǒng)關(guān)閉;
      釋放啟動節(jié)點資源并通過通信模塊釋放遠程資源; 檢查環(huán)中數(shù)據(jù)是否已經(jīng)處理完畢;
      將連接關(guān)閉;
      釋放環(huán)以及與通信相關(guān)資源; 通信線程服務(wù)退出。
      本發(fā)明一種分布式慮擬機監(jiān)控器內(nèi)連通信方法,其優(yōu)點及功效在于通過利用現(xiàn)有的可靠傳輸協(xié)議棧,并通過雙環(huán)和事件通道等機制的結(jié)合來完成分布式VMM的通信,本發(fā)明提高了分 布式V薩系統(tǒng)中通痏的高效性和可擴展性,并且本發(fā)明在現(xiàn)有的成熟技術(shù)基礎(chǔ)上進行創(chuàng)新,實 施更加容易,具有良好的使用和發(fā)展前景。
      (四)


      圖l DVMM系統(tǒng)整體結(jié)構(gòu)示意圖 圖2兩結(jié)點系統(tǒng)模塊示意圖 圖3通信整體架構(gòu)示意圖 圖4兩結(jié)點通信模型示意圖 圖5描述符環(huán)結(jié)構(gòu)示意圖 圖6通信過程詳細示意圖
      (五)
      具體實施例方式
      請參閱圖1至5所示,本發(fā)明一種分布式虛擬監(jiān)控器內(nèi)連通信方法,
      1. 方法概述
      本發(fā)明專利基于集群系統(tǒng)-一種通過外部互聯(lián)網(wǎng)絡(luò)連接的多計算機系統(tǒng),其特點是各物理資 源分布于多個節(jié)點之上,通過對各節(jié)點資源的虛擬化及模塊協(xié)作,完成對服務(wù)器資源的整合, 集群中的計算機需要通過網(wǎng)絡(luò)傳遞消息的方式進行合作。本發(fā)明專利的目標是為在機群系統(tǒng)之 上利用虛擬化技術(shù)提供具有對稱式多處理器(Symmetric Multi-Processors, SMP)特性的虛擬 機監(jiān)控器提供可靠高效的通信。分布式虛擬機監(jiān)控器的特點是直接工作于物理硬件之上,而無 需操作系統(tǒng)的幫助。
      本發(fā)明專利通過在機群節(jié)點上部署V畫,在機群系統(tǒng)的物理結(jié)構(gòu)上提供具有SMP特性的虛擬 機監(jiān)控器。并在V薩運行修改過的linux操作系統(tǒng),稱之為設(shè)備domain(Dora0),并由它提供可 靠傳輸協(xié)議棧。通過在V麗中實現(xiàn)與設(shè)備domain高效的交互機制,來完成對設(shè)備domain協(xié)議 棧的調(diào)用,從而達到V麗間可靠高效的數(shù)據(jù)傳輸,使支持SMP結(jié)構(gòu)的商業(yè)化的操作系統(tǒng)無需修 改即可運行在該虛擬機中。
      V麗的通信模塊負責(zé)為布署于各物理結(jié)點之上的V畫提供可靠高效的數(shù)據(jù)傳輸,使VMM完成 對多機資源的整合,為客戶操作系統(tǒng)呈現(xiàn)單一的鏡像。
      2. 分布式V固通信的特點
      分布式VMM系統(tǒng)是直接運行在物理硬件之上的,負責(zé)管理和整合硬件資源,為運行在上層 的操作系統(tǒng)服務(wù)。通信作為分布VMM系統(tǒng)的一部分,為實現(xiàn)整個分布式V隨系統(tǒng)的其他功能服務(wù)。由于VMM本身并不具有可靠傳輸層協(xié)議,并且木負責(zé)外部設(shè)備的管理(以太網(wǎng)網(wǎng)卡),而這 些是設(shè)備domain所有的,為利用以太網(wǎng)完成V畫間的可靠通信,需要VMM本身實現(xiàn)與設(shè)備domain 的高效交互機制,完成對設(shè)備domain中協(xié)議棧的使用。這樣充分利用了設(shè)備domain,而不必在 V薩實現(xiàn)繁雜的傳輸層協(xié)議和網(wǎng)卡驅(qū)動,使VMM更具有可擴展性。
      3.系統(tǒng)結(jié)構(gòu) VMM通信按功能流程分為以下幾個模塊 模塊一、VMM通信的預(yù)處理。
      當(dāng)Guest OS引發(fā)遠程請求時會陷入到VMM中,這時VMM對Guest OS的陷入原因進行分析, 對不同的通信進行區(qū)分,并加入不同的頭部,構(gòu)成了應(yīng)用層的頭部。在DVMM系統(tǒng)中,通信的種 類主要有
      > IPI,每次傳輸一個寄存器的內(nèi)容。
      >遠程設(shè)備訪問,每次傳輸IOREQ湘控制信息,不超過IOO字節(jié)。
      > DSM,每次通信的數(shù)據(jù)量是一頁。 >遠程I/0操作,每次傳輸一個指令。 模塊二、 VMM與domO上DM模塊中通信線程的交互。
      V國為通信的兩端,處于內(nèi)核態(tài),即硬件之上,而qemu-dm模塊運行于domainO之上,處于 用戶態(tài),兩者必須有數(shù)據(jù)交互。為了使V麗與DomO交換數(shù)據(jù),引入雙環(huán)機制,分別稱為請求環(huán) 和服務(wù)環(huán)。由于發(fā)送或接收的數(shù)據(jù)通常比較大,V腿和DomO并不交換實體數(shù)據(jù),而以引用的方 式來通告。環(huán)是存放發(fā)送數(shù)據(jù)控制結(jié)構(gòu)的,稱為描述符環(huán)。VMM將要發(fā)送的數(shù)據(jù)或者DomO將接 收的數(shù)據(jù)的地址保存在環(huán)中一項中,并通過VMM中的授權(quán)表將數(shù)據(jù)所在頁面授權(quán)給DomO由它映 射過來完成發(fā)送,這樣既減少了數(shù)據(jù)的持貝,提高了效率,又增大了環(huán)的容量。
      授權(quán)表是為實現(xiàn)不同domain之間數(shù)據(jù)共享的,在DV畫中,客戶操作系統(tǒng)與DomO可以看作 是對等的兩個domain, VMM應(yīng)保證兩者的獨立性、安全性。然而通信需要讓domO發(fā)送GOS中的 數(shù)據(jù),或者接收到數(shù)據(jù)提供給GOS,為減少數(shù)據(jù)的拷貝,需要實現(xiàn)兩者之間的數(shù)據(jù)共享。
      顯然,對于請求環(huán)和服務(wù)環(huán)來說,它們應(yīng)該能被VMM和DoraO共同訪問,而且最重要一點是, 它們所處的位置必須安全的,不能被其它模塊所修改?;谝陨峡紤],發(fā)送環(huán)和接收環(huán)從Guest OS的內(nèi)核頁面中預(yù)留出來,并限制Guest OS不能使用此頁面。然后通過映射的方式以供DomO 來使用。Guest OS的頁面是由V醒來管理的,所以它也可以使用。
      如圖5所示,請求環(huán)和服務(wù)環(huán)結(jié)構(gòu)相同,每一個環(huán)有兩個指針,分別為讀和寫,由VMM和 domO共同使用, 一端讀一端寫,VMM在請求通信時會通過寫指針將請求放入到環(huán)中,而在另一 端的domO通過讀指'針讀取請求進行處理將數(shù)據(jù)發(fā)送出去,對于服務(wù)環(huán),DomO收到數(shù)據(jù)后,新
      建環(huán)一項結(jié)構(gòu)通過寫指針將它放入到服務(wù)環(huán),然后vmi通過讀指針將服務(wù)讀取并處理。事件通道機制是為解決V麗與DnmO之間的協(xié)作。在D義MM系統(tǒng)中,為提高通信的效率,通 信采用異步方式,VMM通過事件通道機制來通知domO內(nèi)核服務(wù)器來處理請求。這樣VMM在不 影響其性能的情況下也保障了通信的高效。
      事件通道本質(zhì)上設(shè)置掩碼位,每一位代表一個通道,由VMM和DomO兩者共同使用,當(dāng)需要 觸發(fā)DomO事件時,比如VMM發(fā)起通信請求,將數(shù)據(jù)準備好后,通過對事件通道的置位,并由 DomO查詢得知有數(shù)據(jù)請求需要處理。DomO也可以對它進行修改,不過由于它是由VMM來維護的, 所以需要通過超級調(diào)用來完成。 .
      模塊三、qe皿-dm模塊中實現(xiàn)通信線程服務(wù)器
      在DVMM系統(tǒng)中,qemu-dm模塊本身負責(zé)的是1/0模擬,我們對qemu-dm進行的擴展,使其 在負責(zé)I/0模擬的同時還負責(zé)節(jié)點間可靠消息的傳遞。通信線程主要負責(zé)連接的建立,請求和 服務(wù)環(huán)的輪詢,數(shù)據(jù)的發(fā)送與接收。
      在Guest OS創(chuàng)建時,qemu-dm負責(zé)建立到其他不同節(jié)點對應(yīng)qemu-dm的TCP鏈接。通信線 程會分別對TCP套接字以及請求環(huán)進行輪詢。當(dāng)通信線程發(fā)現(xiàn)此次消息的目的是qemu-dm時, 它會將消息傳遞給qemu-dm;當(dāng)通信線程發(fā)現(xiàn)此次消息的目的是V固時,其會將消息直接放入 服務(wù)環(huán)并利用事件通道通知VMM消息的到來。
      每當(dāng)VMM需要傳遞信息時,其會將通信的目的以及消息放入請求發(fā)送環(huán)并利用事件通道的 方式通知通信線程。通信線程從請求發(fā)送環(huán)中取走對應(yīng)的消息后會選擇與目的節(jié)點對應(yīng)的TCP 鏈接,并將這個消息通過socket發(fā)送至目的節(jié)點。,
      通信線程會對每一條消息做簡單的解釋,當(dāng)其發(fā)現(xiàn)V腿需要發(fā)送頁面時,其首先會將該頁 面映射至自己的地址空間中,讓后直接從該頁面獲取數(shù)據(jù)并發(fā)送至對應(yīng)的socket。與發(fā)送的過 程類似,當(dāng)通信線程發(fā)現(xiàn)遠程的頁面數(shù)據(jù)到達時,它首先會將目的頁面映射至自己的線性地址 空間中,并直接將socket中的頁面數(shù)據(jù)讀入目的客戶頁面中。
      由于在多節(jié)點系統(tǒng)中,每個通信線程可能維護多個TCP連接,所以通信線程還還需要負責(zé) 在請求發(fā)送環(huán)與TCP套接字之間轉(zhuǎn)發(fā)或路由對應(yīng)的包。VMl僅僅負責(zé)按照節(jié)點編號進行通信, 節(jié)點編號所對應(yīng)的IP地址對V麗透明。所以通信線程必須負責(zé)將VMM所需要傳遞的包按照其目 的節(jié)點對應(yīng)的IP地扯,從對應(yīng)的TCP連接中發(fā)送出去。
      模塊四、domainO中協(xié)議棧對數(shù)據(jù)的傳輸
      DomO中提供的協(xié)議棧以及網(wǎng)絡(luò)設(shè)備驅(qū)動程序由于在V腿中,外部設(shè)備由domO負責(zé)管理, 所以我們只能復(fù)用domO提供的網(wǎng)絡(luò)設(shè)備驅(qū)動程序與可靠傳輸協(xié)議(TCP), TCP協(xié)議為面向連接 的通信,而且本身提供了重傳機制等,因而可以實現(xiàn)V腿間的可靠通信。
      通過多種機制的結(jié)合,通信系統(tǒng)為DV醒系統(tǒng)提供簡單、可靠但高效的數(shù)據(jù)傳輸。如圖6中所示,當(dāng)Guest OS需要遠程頁面或1/0訪問時,會①陷入到VMM中,VMM根據(jù)Guest OS陷入原因處理請求(2)將需要發(fā)送的數(shù)據(jù)請求放入到發(fā)送環(huán)中,此時處于Q)qemu-dm模塊中的 應(yīng)用級進程輪詢此請求,當(dāng)發(fā)現(xiàn)有數(shù)據(jù)需要發(fā)送時輝行④應(yīng)用層的處理并調(diào)用doniO中的協(xié)議棧 將數(shù)據(jù)通過 網(wǎng)卡從以太網(wǎng)上發(fā)送出去。接收方(B)網(wǎng)卡收到數(shù)據(jù)后中斷由協(xié)議棧接收, 交由 應(yīng)用層處理,⑧放入接'收環(huán),并O)告知V廳,⑩V薩服務(wù)于Guest OS.這樣整個發(fā)送接收過程就 完成了。
      4.系統(tǒng)工作流程
      初始化階段
      通信模塊的初始化
      由于通信協(xié)議是面向連接的C/S模式,因此初始化時各節(jié)點并不是對稱的系統(tǒng)在初始化階 段區(qū)分兩類節(jié)點系統(tǒng)選取一個節(jié)點作為啟動節(jié)點,其余節(jié)點作為非啟動節(jié)點。啟動節(jié)點以 server端建立socket,并開始對端口監(jiān)聽連接,而非啟動節(jié)點建立socket后呼叫連接,將連 接保存到數(shù)組中。
      環(huán)的初始化
      雙描述符環(huán)實現(xiàn)在客戶操作系統(tǒng)的保留頁面中,在客戶操作系統(tǒng)啟動進進行頁面的初始化 清零,然后設(shè)置讀寫指'針,讀寫指針均指向環(huán)起始位置,根據(jù)兩者差值判斷是否有數(shù)據(jù)。 服務(wù)的建立
      DV腿系統(tǒng)通過對qemu-dm模塊進行擴展,加入兩個通信線程,其中一個為負責(zé)發(fā)送數(shù)據(jù)的 線程,它對請求發(fā)送環(huán)進行輪詢對進行處理。另一個是負責(zé)接收數(shù)據(jù)的線程,它由設(shè)備domainO 中協(xié)議棧引發(fā),當(dāng)協(xié)議棧接收到數(shù)據(jù)后放入服務(wù)環(huán)中,以供VMM處理。線程在qemu-dm模塊啟 動過程建立。
      系統(tǒng)正常工作階段
      分布式V麗實現(xiàn)多節(jié)點的資源整合,為提供不同節(jié)點上VMM間的模塊通信。 連接建立多節(jié)點間利用socket建立連接,啟動節(jié)點為server端,其它節(jié)點為client端。 數(shù)據(jù)發(fā)送V醒有數(shù)據(jù)要發(fā)送將請求置入到請求環(huán)中,通知qemu-dm模塊處理,然后利用 TCP/IP協(xié)議棧發(fā)送。 '數(shù)據(jù)接收TCP/IP'協(xié)議棧接收后放入到服務(wù)環(huán)中,由VMM處理。
      下面結(jié)合附圖,詳述具體實施步驟如下 步驟一、準備階段
      各結(jié)點v醒創(chuàng)建虛擬機并為虛擬機分配內(nèi)存時為雙環(huán)預(yù)留空間,告知虛擬機頁面不可用,
      并初始化請求環(huán)和服務(wù)環(huán)結(jié)構(gòu);
      各節(jié)點V讓分別在啟動虛擬機時啟動設(shè)備模擬模塊dm,并將雙環(huán)所在的頁面映射到domain0地址空間內(nèi),以供domainO和工作在domainO之上的dm模塊中應(yīng)用程序使用;
      在各節(jié)點VMM分別事件通道的初始化,事件通道由VMM管理,并呈現(xiàn)給d咖ainO使用。
      步驟二、建立連接階段
      當(dāng)客戶操作系統(tǒng)啟動時
      1.由管理模塊啟動客戶操作系統(tǒng),首先陷入到VMM中,VMM對客戶操作系統(tǒng)進行分配核心 資源后啟動為客戶操作系統(tǒng)提供設(shè)備模擬的qemu-dm模塊; 啟動qemu-dm模塊中我們所實現(xiàn)的通信模塊部分
      為提高數(shù)據(jù)傳輸率,我們使用三個連接進行通信,分別是不同物理節(jié)點上的vcpu間,遠程 1/0設(shè)備訪問,遠程訪存;
      qemu-dm模塊運行在domainO的應(yīng)用層,各節(jié)點分別從客戶操作系統(tǒng)的配置文件讀取參數(shù), 將參數(shù)傳遞過來,比如節(jié)點IP地址。啟動節(jié)點創(chuàng)建socket,開始對連接進行監(jiān)聽,而非啟動節(jié) 點創(chuàng)建socket后發(fā)起逢接請求。這個過程為阻塞方式,也就是說只有建立好連接之后才可往下 進行;
      通過系統(tǒng)調(diào)用方式進入到domainO的內(nèi)核態(tài)使用TCP/IP協(xié)議棧完成連接的建立,分別將建 立好的連接的描述符保存到連接數(shù)組,以供數(shù)據(jù)發(fā)送時使用。 步驟三、數(shù)據(jù)傳輸過程
      當(dāng)客戶操作系統(tǒng)發(fā)生缺頁或者I/O設(shè)備訪問時會首先陷入到VMM中;
      V醒對陷入原因進行分析,根據(jù)不同請求創(chuàng)建不同的請求,將需要發(fā)送的數(shù)據(jù)的地址映射到 domainO,然后通過寫指針加入到請求環(huán)中,最后設(shè)置事件通道;'
      qemu-dm模塊中通信線程被VMM以事件通道的方式喚醒,開始對請求環(huán)進行輪詢,當(dāng)有數(shù)據(jù) 需要發(fā)送會ffl過讀指針將請求取出來,并根據(jù)請求組建數(shù)據(jù)包,為數(shù)據(jù)包加應(yīng)用層頭部;
      數(shù)據(jù)傳入domainO中的TCP/IP協(xié)議棧,通過網(wǎng)卡將數(shù)據(jù)發(fā)送出去; '目的節(jié)點接收到數(shù)搪后由網(wǎng)卡中斷交由TCP/IP協(xié)議棧,協(xié)議棧在去掉傳輸層以下的頭部后 將數(shù)據(jù)保存,并將地址保存到一個環(huán)描述符中,通過服務(wù)環(huán)寫指針將它放入到服務(wù)環(huán)中去,然 后通過事件通道告知VMM來處理;
      V畫讀取服務(wù)環(huán),得到描述符中的地址后將數(shù)據(jù)映射到客戶操作系統(tǒng)中去,這樣接收數(shù)據(jù)完成。
      步驟四、連接關(guān)閉階段
      客戶操作系統(tǒng)^閉;
      釋放啟動節(jié)點資源并通過通信模塊釋放遠程資源; 檢查環(huán)中數(shù)據(jù)是否已經(jīng)處理完畢;
      將連接關(guān)閉;釋放環(huán)以及與通信相關(guān)資源; 通信線程服務(wù)退出。
      權(quán)利要求
      1、一種分布式虛擬機監(jiān)控器通信技術(shù)的實現(xiàn)方法,其特征在于該實現(xiàn)方法步驟如下步驟一、準備階段各結(jié)點VMM創(chuàng)建虛擬機并為虛擬機分配內(nèi)存時為雙環(huán)預(yù)留空間,告知虛擬機頁面不可用,并初始化請求環(huán)和服務(wù)環(huán)結(jié)構(gòu);各節(jié)點VMM分別在啟動虛擬機時啟動設(shè)備模擬模塊dm,并將雙環(huán)所在的頁面映射到domain0地址空間內(nèi),以供domain0和工作在domain0之上的dm模塊中應(yīng)用程序使用;在各節(jié)點VMM分別事件通道的初始化,事件通道由VMM管理,并呈現(xiàn)給domain0使用;步驟二、建立連接階段當(dāng)客戶操作系統(tǒng)啟動時
      全文摘要
      本發(fā)明提供一種分布式虛擬監(jiān)控器通信技術(shù)的實現(xiàn)方法,它主要采用擴展系統(tǒng)設(shè)備模擬部分,結(jié)合描述符環(huán)機制,來利用現(xiàn)有的可靠傳輸協(xié)議實現(xiàn)VMM間可靠高效的通信,提供資源整合所必需的基礎(chǔ),為上層客戶操作系統(tǒng)提供一個單一物理節(jié)點,實現(xiàn)客戶操作系統(tǒng)對多節(jié)點資源的管理和使用。該實現(xiàn)方法具體步驟如下步驟一、準備階段;步驟二、建立連接階段;步驟三、數(shù)據(jù)傳輸過程;步驟四、連接關(guān)閉階段。本發(fā)明在現(xiàn)有的成熟技術(shù)基礎(chǔ)上進行創(chuàng)新,實施簡便,具有良好的使用和發(fā)展前景。
      文檔編號G06F9/455GK101430674SQ200810239899
      公開日2009年5月13日 申請日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
      發(fā)明者宋忠雷, 彭近兵, 祝明發(fā), 肖利民, 陳思名, 博 馬 申請人:北京航空航天大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1