胡雯
摘 要:本文首先介紹了嵌入式虛擬化技術(shù)的特點及3個不同的技術(shù)類型,著重研究了基于Xen管理程序的嵌入式半虛擬化技術(shù),并進行了基于ARM嵌入式平臺的虛擬化操作系統(tǒng)的移植和數(shù)據(jù)傳遞的測試實驗,為進一步的研究和推廣嵌入式虛擬化技術(shù)提供有價值的參考。
關(guān)鍵詞:嵌入式;虛擬化;Xen
中圖分類號:TB317 文獻標(biāo)識碼:A
1 序言
虛擬化是一種資源管理技術(shù),其目的是整合計算機的所有軟硬件資源,在不受原有計算機資源的環(huán)境配置等限制,將計算機的所有軟硬件資源重新整合劃分,為用戶提供更優(yōu)的架構(gòu)方式及功能實現(xiàn)??梢岳斫鉃椋@種集成是將單個物理資源表示為多個可用虛擬資源,也可以使多個物理資源表示為單個虛擬資源可用,甚至多個物理資源可以集成和區(qū)分出來的可用虛擬資源。
2 嵌入式虛擬化技術(shù)分析
Virtualization虛擬化技術(shù)在早期主要應(yīng)用在服務(wù)器和大型機上,隨著PC的快速增長,虛擬化已經(jīng)逐漸應(yīng)用到x86架構(gòu),并得到普及。
虛擬化將IT環(huán)境變得更強大,更有彈性和更有活力,虛擬化做到了將多個操作系統(tǒng)集成到單個高性能服務(wù)器上,利用硬件平臺的資源來支持更多應(yīng)用程序,或簡化IT基礎(chǔ)架構(gòu),降低難度在資源管理上,并避免不必要的IT基礎(chǔ)架構(gòu)擴展。虛擬機的真正硬件獨立性還使虛擬機運行時遷移,允許真正的不間斷操作,最大化業(yè)務(wù)連續(xù)性,而不必為購買超高可用性平臺支付高昂的價格。
虛擬化技術(shù)分為3個類型:模擬虛擬化技術(shù)、全虛擬化技術(shù)、半虛擬化技術(shù)。
2.1 模擬虛擬化技術(shù)
這種虛擬化技術(shù)只用于某些特定的領(lǐng)域,例如,在一個處理器平臺上模擬另一個指令集不同的處理器平臺,或在這個平臺中的其他處理器平臺運行軟件,比如在X86平臺上模擬ARM嵌入式領(lǐng)域平臺,可以使嵌入式平臺的軟件開發(fā)變得容易。與嵌入式平臺相比,目前X86平臺的硬件資源相對豐富,因此即使仿真會使計算機本身性能嚴(yán)重下降,但嵌入式平臺的仿真也具有可用性,該技術(shù)適合嵌入式環(huán)境低成本,方便快捷的嵌入式軟件開發(fā)。已開發(fā)出的相應(yīng)模擬器軟件有Bochs,QEMU等。
2.2 全虛擬化(Full Virtualization)技術(shù)
該技術(shù)可理解為基于動態(tài)指令的全虛擬化,是一種純軟件虛擬化技術(shù)。其特點是當(dāng)虛擬機管理程序正在執(zhí)行時,虛擬機操作系統(tǒng)的指令掃描到了二進制代碼,會挑選敏感指令并將其轉(zhuǎn)換為其它等效指令,運行等效指令而不是敏感指令。這種方法由于使用軟件同步檢測和運行的方式實現(xiàn)程序的執(zhí)行,性能不高,但運行速度要優(yōu)于模擬虛擬化技術(shù)。
2.3 半虛擬化(Para Virtualization)技術(shù)
半虛擬化技術(shù)也叫基于硬件的半虛擬化技術(shù),主要應(yīng)用在開源操作系統(tǒng),如Linux操作系統(tǒng)。其技術(shù)特征在于,操作系統(tǒng)要執(zhí)行的調(diào)用及其他特定指令的特權(quán)操作或指令修改等,交由下層的虛擬機管理器VMM進行管理,并根據(jù)VMM返回信息再進行指令修改等后續(xù)操作,并通過系統(tǒng)調(diào)用機制主動向虛擬機管理器報告,讓虛擬機管理器代替執(zhí)行。半虛擬化技術(shù)因為高性能的VMware ESX,Xen虛擬化平臺和KVM虛擬化平臺,無需修改操作系統(tǒng)等簡單性優(yōu)勢,已被許多虛擬化產(chǎn)品采用。基于此,在嵌入式虛擬化系統(tǒng)中也開始支持和使用半虛擬化技術(shù),加快嵌入式虛擬化的普及。
目前主流的嵌入式處理器芯片都存在有敏感非特權(quán)指令,而且不支持硬件輔助完全虛擬化,并且若使用基于軟件的全虛擬化又對性能影啊很大,不適合用于嵌入式平臺。因此,大家轉(zhuǎn)向?qū)ふ腋玫慕鉀Q方案,XEN管理程序的出現(xiàn),為嵌入式虛擬化技術(shù)帶來了希望。
3 XEN虛擬化技術(shù)
3.1 技術(shù)簡介
XEN 是英國劍橋大學(xué)計算機實驗室開發(fā)的一個虛擬化開源項目,由于其具有占用資源少、和操作系統(tǒng)完全貼合等優(yōu)點,很快就被技術(shù)人員發(fā)現(xiàn),應(yīng)用于虛擬化領(lǐng)域和嵌入式虛擬化領(lǐng)域。其特點是基于X86體系結(jié)構(gòu),并且與開源操作系統(tǒng)能完美結(jié)合,支持全虛擬化和半虛擬化。以高性能、占用資源少著稱,因此被作為嵌入式虛擬化技術(shù)的首選應(yīng)用方案。
3.2 實驗方案
基于Xen的嵌入式半虛擬化實現(xiàn)方案如圖1所示,首先在ARM Cortex-A8處理器平臺上移植Xen-ARM虛擬化平臺,然后將虛擬化后的嵌入式操作系統(tǒng)Linux(編號Domain O)與另一個嵌入式操作系統(tǒng)(編號Domain1)分別作為客戶操作系統(tǒng)運行在VMM上,客戶機OS或應(yīng)用程序與VMM直接通過Hypercall(系統(tǒng)調(diào)用)實現(xiàn)信息通信,DomainO與Domainl直接通過共享內(nèi)存來實現(xiàn)數(shù)據(jù)傳遞。
3.3 實驗過程
(1) 嵌入式系統(tǒng)移植,實驗操作如下:
[root@localhost ~]# yum-config-manager --add-repo=http://mirrors.aliyun.com/centos/6.7/xen4/x86_64/
[root@localhost ~]# yum install xen –y
[root@localhost ~]# vim /etc/grub.conf
titleCentOS (3.18.12-11.el6.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin
module /vmlinuz-3.18.12-11.el6.x86_64 ro root=/dev/mapper/vg0-root
……
module /initramfs-3.18.12-11.el6.x86_64.img [root@localhost ~]# mkdir -pv /data/xen -pv
[root@localhost ~]# cd /data/xen/
[root@localhostxen]# qemu-img create -f raw -o size=2G busybox.img
[root@localhostxen]# mkfs.ext4 busybox.img
[root@localhost ~]# yumgroupinstall "Development Tools" "Server Platform Development"
[root@localhost ~]# yum install glibc-static
[root@localhost ~]# tar xf busybox-1.22.1.tar.bz2
[root@localhost busybox-1.22.1]# make&& make install
[root@localhost busybox-1.22.1]# mount -o loop /data/xen/busybox.img /mnt/
[root@localhostmnt]# mkdirdevproc sys home
[root@localhostxen]# xl create busybox
Parsing config from busybox
DEBUG libxl__blktap_devpath 76 aio:/data/xen/busybox.img
DEBUG libxl__blktap_devpath 81 /dev/xen/blktap-2/tapdev0
[root@localhostxen]# xl list
Name ID MemVCPUs State Time(s)
Domain-0 0 1024 2 r----- 29.0
busybox-01 4 256 1 -b---- 0.6
(2)數(shù)據(jù)通信測試
由Domain0負責(zé)發(fā)送數(shù)據(jù),Domain1通過共享內(nèi)存獲取數(shù)據(jù),并設(shè)計一個測試程序在Domain1端運行,觀察運行時的數(shù)據(jù)和運行速度,測試獲取數(shù)據(jù)的正確性,以及程序引擎的代碼運行速率,以此來檢驗該虛擬化環(huán)境的運行性能。并將該測試搬到PC機上搭建的一個類似的虛擬化環(huán)境中進行。測試結(jié)果如表1所示,傳遞數(shù)據(jù)的數(shù)據(jù)正確率為100%,讀取數(shù)據(jù)的代碼運行速度基本接近于PC機虛擬化環(huán)境。由此證明,該嵌入式虛擬化環(huán)境的可用性及運行性能都較高,可以作為研究嵌入式虛擬化技術(shù)的有價值的參考數(shù)據(jù)。
4 小結(jié)
由于虛擬化技術(shù)還在繼續(xù)發(fā)展中,本文選擇Xen虛擬化管理工具,完成了嵌入式虛擬化平臺的移植,及數(shù)據(jù)傳遞等程序測試,并與同等虛擬化環(huán)境的PC機程序,做了對比試驗,實驗結(jié)果表明該虛擬化技術(shù)在保證數(shù)據(jù)正確的基礎(chǔ)上,基本能夠?qū)崿F(xiàn)OS對硬件的訪問及管理。由于硬件環(huán)境的限制,本文只選擇了2個虛擬化系統(tǒng)實例,并且選用了ARM微處理器平臺進行實驗。今后將在多虛擬化系統(tǒng)的環(huán)境下,對不同嵌入式平臺做進一步的研究和測試。
參考文獻:
[1] 張易知,徐國治.基于微內(nèi)核架構(gòu)的嵌入式系統(tǒng)虛擬化技術(shù)[J].電子產(chǎn)品世界,2009(4).
[2] 鄭國暉,肖霏,于弼君.云計算技術(shù)發(fā)展與應(yīng)用研究[J].硅谷,2011(10).
[3] 石磊.xen虛擬化技術(shù)[M].武漢:華中科技大學(xué),2009.
[4] 伍箴水.嵌入式系統(tǒng)中設(shè)備虛擬化的關(guān)鍵技術(shù)研究[D].華中科技大學(xué)碩士論文,2012.
[5] Kernel Based Virtual Machine. [DB/OL]. http://www.linux- kvm.org/page/Main_Page, 2010.
[6] VirtualLogixCorp. Meeting the Challenges of Connected De-vice Design Through Real-Time Virtualization [DB/OL]. http://www.vmware.com/cn/technology/mobile/,2009.
[7] 葉常春.嵌入式虛擬化技術(shù)[J].計算機工程與科學(xué), 2012(3).
(本文審稿 李正發(fā))