国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Xen虛擬化技術(shù)研究

2014-10-20 22:49:11李仲龍楊斌孫林花
電腦知識(shí)與技術(shù) 2014年25期
關(guān)鍵詞:虛擬機(jī)存儲(chǔ)通信

李仲龍 楊斌 孫林花

摘要:對(duì)開源Xen虛擬化平臺(tái)的體系結(jié)構(gòu)、域的管理與控制、虛擬機(jī)通信機(jī)制、vcpu調(diào)度、虛擬化存儲(chǔ)系統(tǒng)等進(jìn)行了研究,并搭建試驗(yàn)環(huán)境進(jìn)行了測(cè)試和模擬。

關(guān)鍵詞: Xen; 虛擬機(jī); 調(diào)度; 存儲(chǔ); 通信

中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)25-5887-03

Research on Xen Virtual Technology

LI Zhong-long,YANG Bin ,SUN Lin-hua

(Gansu Meteorological Information & Technique Support & Equipment Centre, Lanzhou 730020, China)

Abstract:The paper focus on Xens architecture, domain management and control, virtual machine communication mechanism, vcpu scheduling, virtual memory system,etc. and build a test environment for the conduct of the test and simulation.

Key words:Xen; Virtualization machine; Scheduling; Storage; Communication

Xen是一個(gè)開源的虛擬化管理軟件,即VMM,起源于英國的劍橋大學(xué)計(jì)算機(jī)實(shí)驗(yàn)室,支持X86平臺(tái),目前正在向x86_64、IA64、PPC等平臺(tái)移植。Xen通過硬件虛擬化抽象出多個(gè)虛擬機(jī)(VM)。原來運(yùn)行于物理主機(jī)上的操作系統(tǒng)(OS)可以直接運(yùn)行在Xen上(稱為客戶操作系統(tǒng),即GOS),多個(gè)VM透明地復(fù)用物理主機(jī)資源且在邏輯上嚴(yán)格分離。見圖1。

Xen在初始化完成后會(huì)運(yùn)行一個(gè)指定的虛擬機(jī),這一般稱之為Domain 0.其它虛擬機(jī)統(tǒng)稱為DomU。Domain 0 一般運(yùn)行Linux kernel,直接在Xen hypervisor之上運(yùn)行,可以訪問物理I/O資源。其它DOM U通過與Domain 0的交互訪問硬件資源。Domain 0通過網(wǎng)絡(luò)后端驅(qū)動(dòng)(Network Backend Driver)和塊設(shè)備后端驅(qū)動(dòng)(block backend driver)為其它Dom U提供網(wǎng)絡(luò)和磁盤服務(wù)。所有半虛擬化(paravirtualized)的VM被稱為半虛擬化域(DOM U PV Guests),而全虛擬化的VM稱為硬件虛擬化域(DOM U HVM Guests),其上一般運(yùn)行非開源OS,如Windows。

半虛擬化域內(nèi)核不直接訪問物理硬件,而硬件虛擬化域直接訪問物理硬件。硬件虛擬化域通過Domain 0里的一個(gè)特殊守護(hù)進(jìn)程,由其負(fù)責(zé)客戶操作系統(tǒng)的網(wǎng)絡(luò)和磁盤請(qǐng)求。硬件虛擬化域必須初始化為某類確定的機(jī)器,所以需要附加Xen固件以模擬bios。

3 Xen運(yùn)行機(jī)制

3.1 Xen初始化

由于Xen是VM和硬件交互的中介,所以其運(yùn)行在X86架構(gòu)的特權(quán)層(Ring0)。Domain 0可以根據(jù)需要選擇運(yùn)行在Ring0或者Ring1層,其它域運(yùn)行在Ring3層。設(shè)備加電后,Xen首先開始引導(dǎo),然后Linux內(nèi)核作為模塊也被引導(dǎo)入內(nèi)存。x86_32.S是從Grub進(jìn)入Xen的入口文件,Grub根據(jù)鏡像頭信息獲得入口地址,然后讀入整個(gè)鏡像,最后把控制權(quán)交給Xen。__startxen()函數(shù)中會(huì)從啟動(dòng)信息中獲取物理內(nèi)存分配情況,初始化內(nèi)存。之后是分頁初始化、IRQ中斷初始化、調(diào)度程序初始化、異常處理程序表初始化、時(shí)間設(shè)置、安全機(jī)制設(shè)置等初始化工作。并且Xen會(huì)初始化一個(gè)空閑虛擬域(Idle Domain),當(dāng)沒有合適的虛擬域可以運(yùn)行的時(shí)候,Xen會(huì)選擇空閑虛擬域來運(yùn)行,這類似于Linux中的init進(jìn)程。當(dāng)Xen初始化工作結(jié)束后,便開始設(shè)置Domain0的數(shù)據(jù)結(jié)構(gòu)。然后Xen將控制權(quán)交給Domain0中的Linux,而自己進(jìn)入idle_loop。Domain0得到控制權(quán)后,開始自己的引導(dǎo)過程。

3.2 域管理

Xen用vcpu結(jié)構(gòu)來代表一個(gè)虛擬機(jī),vcpu是物理處理器的虛擬。創(chuàng)建好一個(gè)VM之后,就會(huì)調(diào)用超級(jí)調(diào)用設(shè)置VM的各種狀態(tài)參數(shù)。這個(gè)DOM U都運(yùn)行在vcpu0上,其占有的vcpu個(gè)數(shù)可以由用戶設(shè)定。在處理器的初始化階段,默認(rèn)為每個(gè)物理處理器分配一個(gè)空閑vcpu,這個(gè)空閑vcpu稱為空閑域。

在Xen半虛擬化環(huán)境中,Xend是一個(gè)守護(hù)進(jìn)程,是Xen的系統(tǒng)管理員。它使用Libxenctrl類庫向Xen Hypervisor發(fā)送請(qǐng)求,并接收由Xm通過Xml RPC接口發(fā)送過來的請(qǐng)求。

Xen對(duì)各個(gè)域的管理見圖3。

在Xen全虛擬化環(huán)境中,HVM客戶的所有網(wǎng)絡(luò)和磁盤請(qǐng)求都由Qemu-Dm守護(hù)進(jìn)程處理,Qemu-dm在Domain 0中。Xenstored進(jìn)程保存著客戶注冊(cè)信息,包括內(nèi)存和事件通道信息等。Domain 0通過這些注冊(cè)信息與其他Dom U建立設(shè)備通道并訪問硬件資源。Libxenctrl庫為Xend提供與Xen Hypervisor通信的能力。Domain 0中的privcmd驅(qū)動(dòng)負(fù)責(zé)提交請(qǐng)求到xen hypervisor。HVM客戶中的虛擬化固件是一個(gè)虛擬bios,以保證HVM客戶在啟動(dòng)時(shí)具有兼容標(biāo)準(zhǔn)PC的軟件環(huán)境。

4 Xen通信機(jī)制

事件通道是一種異步事件通知機(jī)制,Xen支持事件通道。Xen虛擬機(jī)中的每個(gè)中斷都是一個(gè)事件,分別對(duì)應(yīng)一條事件通道,中斷時(shí)消息通過事件通道傳遞。事件通道主要完成中斷和控制信息的傳遞。事件通道是Domain 0與DOM U之間交換信息的通道,這種信息交換一般采用共享內(nèi)存方式。圖4是PV客戶機(jī)與Domain 0及Hypervisor層之間通信的示意。

5 Xen vcpu調(diào)度

Xen最常用的vcpu調(diào)度算法是Credit調(diào)度算法。Credit調(diào)度算法是Xen3.0版本以來的缺省的vcpu調(diào)度算法。Credit按照非搶占方式共享處理器資源。Credit算法的關(guān)鍵是credit值的確定。一般每個(gè)物理cpu都和一個(gè)vcpu隊(duì)列相關(guān)聯(lián),這個(gè)隊(duì)列中的每個(gè)vcpu都有一個(gè)credit值,某個(gè)vcpu個(gè)credit值代表了這個(gè)vcpu占用物理處理器的優(yōu)先級(jí),也是Xen選擇vcpu的依據(jù)。在Credit算法中,將vcpu劃分成兩個(gè)隊(duì)列,分別稱為under隊(duì)列和over隊(duì)列。首先調(diào)度的最早入隊(duì)的under隊(duì)列中的vcpu,隨著時(shí)間片輪轉(zhuǎn),被調(diào)度選中的vcpu占用物理處理器。一旦某個(gè)vcpu被調(diào)度,其credit值會(huì)減小,當(dāng)變成負(fù)數(shù)時(shí),該vcpu入over隊(duì)列,將不再繼續(xù)調(diào)度并重算credit值。為保證公平,over隊(duì)列中的vcpu隨著等待時(shí)間的增加會(huì)增大器credit值以利于再次被調(diào)度。

在Credit調(diào)度算法中,Xen管理系統(tǒng)中的所有物理CPU,這種集中管理的好處可以實(shí)現(xiàn)公平。Credit算法只是盡量保證公平地對(duì)vcpu實(shí)現(xiàn)調(diào)度。但對(duì)實(shí)時(shí)性的應(yīng)用來說,這種調(diào)度算法的響應(yīng)時(shí)間往往難以滿足。

6 Xen虛擬化存儲(chǔ)

Xen虛擬化平臺(tái)可以使用諸如DAS、NAS、SAN和 iSCSI等各種物理存儲(chǔ)設(shè)備上的存儲(chǔ)空間。Xen虛擬化平臺(tái)支持的存儲(chǔ)方式如下:

直連式存儲(chǔ)(Direct-Attached Storage, DAS ),如直接連接物理硬盤。

存域網(wǎng)(Storage Area Network ,SAN ),如FC SAN。

網(wǎng)絡(luò)存儲(chǔ)(Network Attached Storage, NAS),如CFS、GPFS等并行文件系統(tǒng)。

互聯(lián)網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口( Internet Small Computer System Interface, ISCSI)

基于邏輯卷(LogicalVolumn Manager,LVM);

虛擬磁盤鏡像(Virtual Disk Image)。

上述各種存儲(chǔ)方案中最簡單的是磁盤文件鏡像,這個(gè)磁盤文件鏡像是通過宿主操作系統(tǒng)創(chuàng)建的,也是虛擬機(jī)安裝的位置。其它的存儲(chǔ)方案都是使用一個(gè)物理設(shè)備或邏輯設(shè)備作為一個(gè)后端存儲(chǔ)設(shè)備,這個(gè)設(shè)備可以是一個(gè)邏輯卷、一個(gè)分區(qū)或者是SAN上的邏輯單元號(hào)(Logic Unit Numbers,即LUN)。本質(zhì)上可以使用任何存儲(chǔ)設(shè)備來完成Xen的虛擬化存儲(chǔ),由于SAN在性能上比較高效,所以這個(gè)方案現(xiàn)在用得比較廣泛。但在實(shí)際的工程設(shè)計(jì)中,使用何種虛擬化存儲(chǔ)技術(shù)決定于價(jià)格等多種因素。

7 結(jié)束語

本文在SUSE 11sp2平臺(tái)上搭建了Xen試驗(yàn)環(huán)境,研究了Xen虛擬化平臺(tái)的系統(tǒng)結(jié)構(gòu)、運(yùn)行機(jī)制、通信機(jī)制、vcpu調(diào)度和虛擬化存儲(chǔ)等技術(shù)。研究結(jié)果可以作為虛擬化數(shù)據(jù)中心建設(shè)的基礎(chǔ)。Xen作為開源的虛擬化平臺(tái),應(yīng)用前景廣闊,后續(xù)會(huì)進(jìn)一步檢驗(yàn)Xen虛擬化平臺(tái)業(yè)務(wù)化能力。

參考文獻(xiàn):

[1] Xen Open Source Community. Xen usersmanual xen v3.3[EB/OL].http://bits.xensource.com/Xen/docs/user.pdf.

[2] Xen Open Source Community. Xen hypervisor 3.3.1 [EB/OL].http://www.xen.org.

[3] 時(shí)光,郭玉東,王曉睿,等.XEN中vcpu調(diào)度算法分析[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(18):4116-4119.

[4] 朱團(tuán)結(jié),艾麗蓉.基于共享內(nèi)存的Xen虛擬機(jī)間通信的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(7):5-12.

[5] 許艷軍,姜進(jìn)磊,王博,等.幾種虛擬機(jī)鏡像格式及其性能評(píng)測(cè)[J].計(jì)算機(jī)應(yīng)用,2013,33(SI):22-25.

[6] 張萍,郭玉東.虛擬機(jī)外存管理技術(shù)研究分析[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(20):4418-4421.

[7] 薛海峰,卿斯?jié)h,張煥國.XEN虛擬機(jī)分析[J].系統(tǒng)仿真學(xué)報(bào),2007,19(23):5556-5558.

猜你喜歡
虛擬機(jī)存儲(chǔ)通信
檔案管理中電子文件的存儲(chǔ)探究
淺談?dòng)?jì)算機(jī)系統(tǒng)虛擬化網(wǎng)絡(luò)設(shè)置方案
條形碼技術(shù)在涂裝生產(chǎn)中的應(yīng)用
基于虛擬機(jī)的軟件保護(hù)系統(tǒng)研究與設(shè)計(jì)
簡述計(jì)算機(jī)通信網(wǎng)絡(luò)安全與防護(hù)策略
Android環(huán)境下主UI線程與子線程通信機(jī)制研究
無線自組網(wǎng)在野戰(zhàn)防空通信系統(tǒng)中的應(yīng)用
云計(jì)算與虛擬化
任務(wù)驅(qū)動(dòng)教學(xué)法在《網(wǎng)絡(luò)應(yīng)用服務(wù)管理》教學(xué)中的應(yīng)用
虛擬機(jī)局域網(wǎng)組建技術(shù)應(yīng)用初探
西畴县| 庐江县| 长宁县| 葵青区| 扎赉特旗| 辉南县| 广宗县| 西华县| 聂拉木县| 襄垣县| 兴山县| 丰原市| 无极县| 古交市| 涟源市| 万源市| 台山市| 巨野县| 青阳县| 湖南省| 奉节县| 资兴市| 金寨县| 平陆县| 碌曲县| 巫溪县| 安乡县| 句容市| 彩票| 桃江县| 古浪县| 竹山县| 凤阳县| 高陵县| 七台河市| 甘孜县| 富川| 普兰店市| 宁德市| 乡宁县| 城固县|