xen中的虛擬機(jī)通信機(jī)制研究_第1頁
xen中的虛擬機(jī)通信機(jī)制研究_第2頁
xen中的虛擬機(jī)通信機(jī)制研究_第3頁
xen中的虛擬機(jī)通信機(jī)制研究_第4頁
xen中的虛擬機(jī)通信機(jī)制研究_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

xen中的虛擬機(jī)通信機(jī)制研究

0利用虛擬機(jī)技術(shù)近年來,隨著虛擬化技術(shù)的發(fā)展,出現(xiàn)了大量性能優(yōu)、穩(wěn)定性的虛擬化技術(shù),其中xen虛擬機(jī)是典型的代表。Xen虛擬機(jī)具有高效性、開源性等特點(diǎn),最初它只支持半虛擬化技術(shù),硬件虛擬技術(shù)出現(xiàn)后,使Xen能夠支持完全虛擬化技術(shù)。虛擬機(jī)技術(shù)能夠有效屏蔽硬件平臺的異構(gòu)性和動態(tài)性,使得硬件資源得到最大限度的共享和復(fù)用,因此,應(yīng)用范圍極其廣泛。但是,虛擬機(jī)技術(shù)的使用也遇到了一些問題,比如,服務(wù)器整合、集群運(yùn)算等技術(shù)對虛擬機(jī)之間的通信性能要求較高,這就使得同一臺物理機(jī)器上各虛擬機(jī)間通信出現(xiàn)瓶頸。文中針對這一問題,提出一種基于共享內(nèi)存的通信方法。1基于共享內(nèi)存的通信文中的主要內(nèi)容是研究如何改進(jìn)Xen虛擬機(jī)的通信機(jī)制,實(shí)現(xiàn)基于共享內(nèi)存的通信方法。因此,首先應(yīng)該對Xen虛擬機(jī)的框架結(jié)構(gòu)和其本身技術(shù)自帶的通信機(jī)制進(jìn)行全面和深刻的理解和掌握,然后,才能在此基礎(chǔ)上實(shí)現(xiàn)基于共享內(nèi)存的通信機(jī)制。1.1硬件環(huán)境監(jiān)控一個(gè)Xen虛擬化環(huán)境由以下部件構(gòu)成:虛擬機(jī)監(jiān)控器VMM、特權(quán)虛擬機(jī)和客戶虛擬機(jī)。虛擬機(jī)監(jiān)控器VMM直接安裝在已有的硬件環(huán)境上,它的主要任務(wù)是實(shí)現(xiàn)虛擬機(jī)技術(shù)的各種底層機(jī)制,如虛擬化CPU、虛擬化設(shè)備、虛擬化內(nèi)存和虛擬化網(wǎng)絡(luò)等機(jī)制都是在HMM中實(shí)現(xiàn)的,同時(shí),虛擬機(jī)監(jiān)控器HMM還對安裝在其上的虛擬機(jī)提供一些基本的控制。安裝完成虛擬機(jī)監(jiān)控器后,在它上面再安裝各種虛擬機(jī),主要包括特權(quán)虛擬機(jī)和客戶虛擬機(jī)。特權(quán)虛擬機(jī)是最先被創(chuàng)建的虛擬機(jī),同時(shí),它也作為虛擬機(jī)監(jiān)控器的擴(kuò)充而存在,它直接擁有系統(tǒng)的硬件輸入和輸出設(shè)備的控制權(quán),提供對這些I/O設(shè)備響應(yīng)的驅(qū)動程序,并且支持在用戶界面上對客戶虛擬機(jī)的管理功能。其中,特權(quán)虛擬機(jī)必須在其它虛擬機(jī)啟動之前啟動,它主要包含兩個(gè)驅(qū)動:NetworkBackendDriver和BlockBackendDriver,分別負(fù)責(zé)處理來自客戶虛擬機(jī)的網(wǎng)絡(luò)請求和本地磁盤請求。NetworkBackendDriver直接和本地網(wǎng)絡(luò)硬件進(jìn)行通信以響應(yīng)所有來自客戶虛擬機(jī)的網(wǎng)絡(luò)請求。BlockBackendDriver和本地的存儲設(shè)備進(jìn)行通信以處理來自客戶虛擬機(jī)的讀寫請求。這兩個(gè)驅(qū)動也是完成虛擬機(jī)間通信的必要條件。特權(quán)虛擬機(jī)的設(shè)備模型和驅(qū)動程序可以為虛擬機(jī)之間的網(wǎng)絡(luò)通信提供最基礎(chǔ)的技術(shù)支持,具體的實(shí)現(xiàn)機(jī)制主要有虛擬網(wǎng)絡(luò)、事件通道等。另外,Xen支持IntelVT-X技術(shù),該技術(shù)有一個(gè)關(guān)鍵的VMX操作和一個(gè)數(shù)據(jù)結(jié)構(gòu)VMCS。VMX可以在虛擬機(jī)監(jiān)控器和客戶虛擬機(jī)下執(zhí)行,VMCS則定義了特權(quán)虛擬機(jī)和客戶虛擬機(jī)的轉(zhuǎn)換以及在轉(zhuǎn)換過程中虛擬機(jī)監(jiān)控器和上層各種虛擬機(jī)的狀態(tài)信息等。IntelVT-X技術(shù)可以通過數(shù)據(jù)結(jié)構(gòu)VMCS和一組虛擬機(jī)特有的擴(kuò)展指令對虛擬機(jī)的進(jìn)入操作(VMentry)和退出操作(VMexit)進(jìn)行控制,以實(shí)現(xiàn)虛擬機(jī)間的切換,在VMentry操作和VMexit操作的實(shí)現(xiàn)過程中,虛擬機(jī)監(jiān)控器和其上的各種虛擬機(jī)的狀態(tài)都保存在數(shù)據(jù)結(jié)構(gòu)VMCS中。也正是這種切換機(jī)制使得客戶操作系統(tǒng)可以不修改內(nèi)核就能夠直接安裝在Xen虛擬機(jī)中,同時(shí),這種機(jī)制能夠快捷方便地實(shí)現(xiàn)虛擬機(jī)監(jiān)控器HMM對其上安裝的各虛擬機(jī)的管理和控制。這樣,既保存了虛擬機(jī)技術(shù)良好的特性,又使其具有通用性,為虛擬機(jī)技術(shù)的廣泛應(yīng)用奠定了基礎(chǔ)。1.2應(yīng)用于虛擬卡在以上對Xen虛擬機(jī)體系結(jié)構(gòu)了解的基礎(chǔ)上,知道虛擬機(jī)技術(shù)最主要的特點(diǎn)就是對硬件環(huán)境的共享和復(fù)用。實(shí)現(xiàn)虛擬機(jī)通信的最主要的方式就是虛擬網(wǎng)絡(luò),即通過使用虛擬網(wǎng)卡實(shí)現(xiàn)網(wǎng)絡(luò)通信。在日常的使用中,網(wǎng)絡(luò)通信都是通過網(wǎng)卡與網(wǎng)卡之間的連接實(shí)現(xiàn)的,但是,在虛擬機(jī)技術(shù)中硬件網(wǎng)卡數(shù)量有限,不可能為每一個(gè)虛擬機(jī)都加入一個(gè)相應(yīng)的網(wǎng)卡,只能將網(wǎng)卡虛擬化,各個(gè)虛擬機(jī)共享使用。其中,同一物理計(jì)算機(jī)上的虛擬機(jī)間的通信可以直接通過各自的虛擬網(wǎng)卡實(shí)現(xiàn),而虛擬機(jī)與其他物理計(jì)算機(jī)或者其他物理計(jì)算機(jī)上的虛擬機(jī)之間的通信則用機(jī)器的物理網(wǎng)卡實(shí)現(xiàn)硬件與外部網(wǎng)絡(luò)的通信。使用虛擬網(wǎng)卡技術(shù)以后,就可以把虛擬機(jī)當(dāng)成整個(gè)網(wǎng)絡(luò)中的一臺獨(dú)立機(jī)器,它能夠與主機(jī)和主機(jī)上的其他虛擬機(jī)以及其他真實(shí)的物理機(jī)器之間通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸。這種通信對于用戶來說是透明的。虛擬網(wǎng)卡能夠像物理網(wǎng)卡那樣對數(shù)據(jù)包進(jìn)行發(fā)送和接收,它們的首發(fā)原理基本相同,主要區(qū)別在于,虛擬網(wǎng)卡主要借助于tun/tap驅(qū)動來實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)墓δ?達(dá)到網(wǎng)絡(luò)傳輸?shù)哪康?。因?yàn)樘摂M網(wǎng)卡是多個(gè)虛擬機(jī)共享復(fù)用的,在實(shí)際使用過程中它需要通過一系列的控制寄存器保存狀態(tài)信息來實(shí)現(xiàn)對虛擬網(wǎng)卡的切換和控制。這些不同,在Xen虛擬機(jī)技術(shù)中體現(xiàn)為:在虛擬機(jī)進(jìn)行I/O請求和響應(yīng)的時(shí)候,會自動觸發(fā)退出VMexit操作和進(jìn)入VMentry操作,以引起客戶虛擬機(jī)和虛擬機(jī)監(jiān)控器之間的切換,完成需要通信的虛擬機(jī)對虛擬網(wǎng)卡的控制。此外,在Xen虛擬機(jī)中還可以通過事件通道來實(shí)現(xiàn)同一物理機(jī)器上虛擬機(jī)間的簡單通信,比如傳遞一些基本的對虛擬硬件的控制信息等,它和中斷機(jī)制非常相似。事件通道是虛擬機(jī)技術(shù)用于虛擬機(jī)和虛擬機(jī)之間、虛擬機(jī)和虛擬機(jī)監(jiān)控器HMM之間的一種異步事件通知機(jī)制,在虛擬網(wǎng)絡(luò)中,一些虛擬機(jī)監(jiān)控器HMM對虛擬機(jī)事件的通知就是通過事件通道完成的,比如當(dāng)客戶虛擬機(jī)向虛擬網(wǎng)卡發(fā)送請求時(shí),虛擬機(jī)監(jiān)控器就會通過事件通道向特權(quán)虛擬機(jī)的設(shè)備模型傳遞請求。虛擬機(jī)的中斷系統(tǒng)包括:物理中斷、虛擬處理器間中斷、虛擬中斷,在Xen虛擬機(jī)中每一個(gè)中斷都是一個(gè)事件,它們分別對應(yīng)一條事件通道,當(dāng)中斷發(fā)生時(shí),通過對應(yīng)的事件通道傳輸消息。事件通道這一機(jī)制在虛擬機(jī)通信中極為重要,它不僅是中斷和控制信息的傳輸通道,也是實(shí)現(xiàn)虛擬網(wǎng)卡通信的關(guān)鍵技術(shù)基礎(chǔ),文中提出的通信方式,也需要事件通道的技術(shù)支持。在Xen虛擬技術(shù)的通信機(jī)制中,最重要的環(huán)節(jié)就是通過VMCS數(shù)據(jù)結(jié)構(gòu)對VMX虛擬機(jī)的進(jìn)入操作和退出操作的控制。可以通過對虛擬機(jī)的VMexit操作和VMentry操作完成虛擬機(jī)讀寫虛擬網(wǎng)卡的請求和對請求的響應(yīng)以及其他對虛擬機(jī)各種操作。比如,當(dāng)虛擬機(jī)要從網(wǎng)卡中讀取數(shù)據(jù)包時(shí),其I/O請求就會觸發(fā)VMexit操作,使得系統(tǒng)將處理器的控制權(quán)交給虛擬機(jī)監(jiān)控器HMM,與此同時(shí),虛擬機(jī)監(jiān)控器會將提出I/O請求的各種信息寫入數(shù)據(jù)結(jié)構(gòu)VMCS中,然后,虛擬機(jī)監(jiān)控器會通過事件通道將請求發(fā)送給特權(quán)虛擬機(jī)的設(shè)備模型進(jìn)行相應(yīng)的處理,設(shè)備模型的主要工作是在識別外設(shè)訪問的類型后調(diào)用相應(yīng)的I/O處理函數(shù)。如果最后虛擬機(jī)發(fā)出的I/O請求得到了相應(yīng)的處理,虛擬機(jī)監(jiān)控器將會通過執(zhí)行VMentry操作通知虛擬機(jī)接收數(shù)據(jù)包。這樣一次網(wǎng)絡(luò)I/O請求至此完成,在整個(gè)過程中虛擬機(jī)間的切換比較頻繁。相關(guān)的研究結(jié)果表明,當(dāng)Xen虛擬機(jī)系統(tǒng)處于運(yùn)行狀態(tài)時(shí),網(wǎng)絡(luò)傳輸方面的開銷所占的比重是非常巨大的,直接影響著整個(gè)系統(tǒng)的性能。在特權(quán)虛擬機(jī)中網(wǎng)絡(luò)開銷大約占到了31%左右,在客戶虛擬機(jī)中幾乎占到了41%左右。造成開銷的主要原因是TCP/IP協(xié)議棧開銷和虛擬機(jī)間切換等。2主機(jī)主機(jī)的通信如圖1所示,通信模型由兩部分組成:特權(quán)虛擬機(jī)代理和客戶虛擬機(jī)代理。特權(quán)虛擬機(jī)代理負(fù)責(zé)發(fā)現(xiàn)一臺物理機(jī)器上的所有客戶虛擬機(jī),并將虛擬機(jī)的ID、MAC地址等信息存放在一個(gè)表中??蛻籼摂M機(jī)代理查詢與其通信的目標(biāo)虛擬機(jī)是否位于同一臺物理機(jī)器上,如果在同一臺物理機(jī)器上,則建立共享內(nèi)存,繞過TCP/IP協(xié)議進(jìn)行通信。通信過程中,共享內(nèi)存上存在兩個(gè)數(shù)據(jù)通道,控制信息通道由Xen自身機(jī)制完成。2.1基于共享內(nèi)存的通信模型在Xen虛擬機(jī)中,Xenstore機(jī)制是不同虛擬機(jī)間共享的存儲區(qū),通常用于存儲配置和狀態(tài)信息,不能用于大量數(shù)據(jù)的通信。該機(jī)制以鍵-值的形式存儲,它主要包含了每個(gè)虛擬機(jī)的相關(guān)的值和存儲庫信息以及許可證等內(nèi)容。Xenstore機(jī)制可以用于實(shí)現(xiàn)Xen虛擬機(jī)中的應(yīng)用程序和驅(qū)動之間相互通信并將配置信息存儲下來,具體的實(shí)現(xiàn)過程為:應(yīng)用程序可以通過寫數(shù)據(jù)庫中的鍵-值信息的方式來使用Xenstore機(jī)制配置驅(qū)動,驅(qū)動則會在相關(guān)的鍵-值上設(shè)置監(jiān)視,當(dāng)發(fā)現(xiàn)鍵-值發(fā)生改變時(shí),便會做出相應(yīng)的反應(yīng)。在基于共享內(nèi)存的通信模型中,特權(quán)虛擬機(jī)代理的主要工作是:首先利用Xenstore這一機(jī)制獲取一臺物理機(jī)器上的所有信息表格,以便客戶虛擬機(jī)發(fā)出查詢請求時(shí),可以通過寫Xenstore來響應(yīng)相應(yīng)的查詢請求。Xenstore機(jī)制可以通過調(diào)用xenbus_directory函數(shù)來獲取同一臺物理機(jī)器上所有虛擬機(jī)的信息,然后,只需要讀取Xenstore的路徑可獲取所有客戶虛擬機(jī)的ID。另外,可使用xenbus_read和xenbus_printf函數(shù)讀取某一個(gè)鍵值和寫入某一個(gè)鍵值。2.2xen開發(fā)的入口在實(shí)際應(yīng)用中,同一臺物理機(jī)器上的多個(gè)虛擬機(jī)之間經(jīng)常需要交互,甚至在一些領(lǐng)域中,這種交互極其頻繁。通常,解決這類通信問題的最好方式是共享存儲空間,因此,Xen虛擬機(jī)自身提供了一種共享內(nèi)存頁的機(jī)制,各個(gè)虛擬機(jī)可以在共享內(nèi)存頁的基礎(chǔ)上實(shí)現(xiàn)一些共享策略,用于滿足不同虛擬機(jī)之間通信的需求。Xen虛擬機(jī)的共享內(nèi)存是以頁為基本單位的,而這些頁都可以通過一個(gè)整數(shù)來簡單的表示,這一系列的整數(shù)指向了GrantTable中的相應(yīng)的入口,也可以稱之為GrantTable的索引。在Xen虛擬機(jī)中,每個(gè)虛擬機(jī)都有一個(gè)相對應(yīng)的GrantTable,它是一個(gè)和Xen共享的數(shù)據(jù)結(jié)構(gòu)??蛻籼摂M機(jī)代理就是在共享內(nèi)存的基礎(chǔ)上設(shè)計(jì)完成的。在該通信模型中,絕大部分工作是由客戶虛擬機(jī)代理完成的。它的主要任是:1)獲取目標(biāo)機(jī)器的MAC地址;2)向特權(quán)虛擬機(jī)上的特權(quán)虛擬機(jī)代理發(fā)送查詢請求,特權(quán)虛擬機(jī)代理查詢自己維護(hù)的表格,然后告知客戶虛擬機(jī)代理目標(biāo)機(jī)器的ID;3)需要通信的目標(biāo)機(jī)是否在同一臺物理機(jī)器上;4)通過Xenstore傳遞必要的控制信息;5)使用Xen的GrantTable機(jī)制建立共享內(nèi)存;6)在Xenstore中新建一個(gè)鍵值,其中包含共享內(nèi)存的各項(xiàng)信息;7)通過共享內(nèi)存進(jìn)行數(shù)據(jù)傳遞;8)若通信結(jié)束,釋放共享內(nèi)存空間。在共享內(nèi)存建立前,需要傳遞一些必要的控制信息,這些信息都可以通過對Xenstore機(jī)制的使用來傳遞。另外,由于共享內(nèi)存是多個(gè)內(nèi)存頁組成的,對每個(gè)內(nèi)存頁都需要做相應(yīng)的信息傳遞操作,如果這些信息全部通過Xenstore機(jī)制來傳遞,系統(tǒng)將會對Xenstore進(jìn)行頻繁的讀寫,降低通信性能。因此,首先建立一個(gè)描述符頁,該頁內(nèi)用一個(gè)數(shù)組來記錄所有的信息,只要Xenstore將該描述符頁映射過去,那么就可以獲得所有的共享頁。2.3平臺控制部分strappc機(jī)該通信模型的兩種連接方式是:面向連接的StreamConnection和面向無連接的DatagramConnection,它們分別相當(dāng)于TCP和UDP通信。StreamConnection的工作流程如圖2所示,服務(wù)器首先等待客戶端的連接申請,建立連接后,它們之間便可以進(jìn)行通信。然而,StreamConnection只能有兩個(gè)終端,不能在客戶端里再創(chuàng)建另外一個(gè)連接,這也是它與TCP協(xié)議的最大區(qū)別。DatagramConnection的工作流程如圖3所示,服務(wù)器一直等待客戶端發(fā)送數(shù)據(jù)并接收,與StreamConnection相比,該連接的數(shù)據(jù)傳輸可靠性較低,但是數(shù)據(jù)傳輸效率更高。在共享內(nèi)存建立以后,可以根據(jù)通信的實(shí)際情況,選擇一種通信方式。當(dāng)通信量較大且可靠性要求不高時(shí)可以選擇DatagramConnection連接方式,對可靠性要求高的,可選擇StreamConnection連接方式。3基于共享內(nèi)存的通信方式的帶寬評估實(shí)驗(yàn)使用HPDL140G3×5130(支持VT技術(shù)的5130CPU),并安裝CentOS5.2系統(tǒng)。創(chuàng)建2個(gè)CentOS5.2虛擬機(jī)VM1和VM2,虛擬內(nèi)存為700M。實(shí)驗(yàn)從帶寬和CPU利用率兩個(gè)方面對基于共享內(nèi)存的通信方式進(jìn)行評估。為了測試帶寬,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論