監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

KVM--基于內(nèi)核的虛擬化技術(shù)

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

摘要:介紹KVM,它的本質(zhì)以及如何配置和安裝。虛擬化最近幾年取得了長(zhǎng)足的進(jìn)步,首先由于有大量的開源虛擬機(jī)管理程序在不斷發(fā)展,這個(gè)改進(jìn)幾乎排除了操作系統(tǒng)與大功率服務(wù)器快速增長(zhǎng)的利用之間的障礙,公司立即受益。

介紹KVM,它的本質(zhì)以及如何配置和安裝。虛擬化最近幾年取得了長(zhǎng)足的進(jìn)步,首先由于有大量的開源虛擬機(jī)管理程序在不斷發(fā)展,這個(gè)改進(jìn)幾乎排除了操作系統(tǒng)與大功率服務(wù)器快速增長(zhǎng)的利用之間的障礙,公司立即受益。知道最近,軟件仿真虛擬化一直是關(guān)注的焦點(diǎn),兩個(gè)常見的軟件仿真虛擬化途徑是完全虛擬化和半虛擬化。對(duì)于完全虛擬化,通常調(diào)用管理程序或虛擬機(jī)監(jiān)視器,存在于虛擬操作系統(tǒng)和硬件層之間,這個(gè)層在操作系統(tǒng)實(shí)例之間多路復(fù)用競(jìng)爭(zhēng)系統(tǒng)資源。半虛擬化不同,管理程序在一個(gè)協(xié)作的環(huán)境中運(yùn)作,因?yàn)槊總€(gè)客戶操作系統(tǒng)都知道它正運(yùn)行在一個(gè)虛擬化環(huán)境中,因此每個(gè)使用管理程序的協(xié)作都在硬件下完成虛擬。

兩個(gè)途徑都有優(yōu)勢(shì)也有劣勢(shì),半虛擬化的主要優(yōu)勢(shì)在于它運(yùn)行盡可能快地基于軟件的虛擬化,以不支持有專利的操作系統(tǒng)為代價(jià)。完全虛擬化沒有這個(gè)限制,但是,完全虛擬化管理程序非常復(fù)雜。VMware,一個(gè)商業(yè)虛擬化解決方案,它就是一個(gè)完全虛擬化的例子,Xen,用戶模式Linux(UML)和其他提供的是半虛擬化解決方案。

簡(jiǎn)單介紹一下基于硬件的虛擬化,這個(gè)線路已經(jīng)變得模糊起來,隨著Intel的VT技術(shù)和AMD的SVM技術(shù)的出現(xiàn),編寫一個(gè)管理程序變得更加簡(jiǎn)單了,現(xiàn)在,保持管理程序復(fù)雜性到最小程度,對(duì)于完全虛擬化受益匪淺。

Xen作為最優(yōu)秀的半虛擬化引擎,在基于硬件的虛擬化的幫助下,現(xiàn)在也支持完全虛擬化MS windows了。KVM是一個(gè)相對(duì)較新的簡(jiǎn)單的,但也非常強(qiáng)大的虛擬化引擎,它已經(jīng)集成到Linux內(nèi)核中去了,讓內(nèi)核天生有虛擬化的能力,因?yàn)镵VM使用的是基于硬件的虛擬化技術(shù),它不需要修改客戶操作系統(tǒng),因此,部署在一個(gè)受支持的處理器上,它可以從Linux支持任何平臺(tái)。

KVM

kvm是一個(gè)獨(dú)特的管理程序,kvm開發(fā)者們發(fā)明了一個(gè)方法讓Linux內(nèi)核自身變成一個(gè)管理程序,通過將KVM作為一個(gè)內(nèi)核模塊實(shí)現(xiàn),在虛擬環(huán)境下Linux內(nèi)核集成管理程序?qū)⑵渥鳛橐粋€(gè)可加載的模塊可以簡(jiǎn)化管理和提升性能。這可能是開發(fā)者將KVM添加到內(nèi)核的主要原因。

這種方法有許多優(yōu)勢(shì),通過添加虛擬化功能到一個(gè)標(biāo)準(zhǔn)的Linux內(nèi)核,虛擬環(huán)境能從所有正在Linux內(nèi)核上運(yùn)行的工作中受益,在這種模式下,每個(gè)虛擬機(jī)都是一個(gè)常規(guī)的Linux進(jìn)程,通過Linux調(diào)度程序進(jìn)行調(diào)度,通常,一個(gè)標(biāo)準(zhǔn)的Linux進(jìn)程都有兩個(gè)執(zhí)行模式:內(nèi)核模式和用戶模式。對(duì)于應(yīng)用程序而言用戶模式是默認(rèn)模式,當(dāng)它需要一些來自內(nèi)核的服務(wù)時(shí)就進(jìn)入內(nèi)核模式,如往磁盤上寫入時(shí)。KVM添加了第三個(gè)模式:客戶模式。

客戶模式進(jìn)程是運(yùn)行在虛擬機(jī)內(nèi)的,它非常象正常模式(無虛擬實(shí)例),有它自己的內(nèi)核和用戶空間變量、在客戶模式下可以使用正常的kill和ps命令,因?yàn)闊o虛擬實(shí)例,KVM虛擬機(jī)表現(xiàn)為一個(gè)正常的進(jìn)程,能象其他進(jìn)程一樣被殺掉,KVM利用硬件虛擬技術(shù)虛擬處理器的形態(tài),虛擬機(jī)的內(nèi)存管理由內(nèi)核直接處理,目前的版本I/O在用戶空間處理,主要通過QEMU完成。

一個(gè)典型的KVM安裝包括以下部件:

一個(gè)管理虛擬硬件的設(shè)備驅(qū)動(dòng),這個(gè)驅(qū)動(dòng)通過一個(gè)字符設(shè)備/dev/kvm陳列它的功能

一個(gè)模擬pc硬件的用戶空間部件,目前,這在用戶空間處理,它是一個(gè)稍微改動(dòng)過的QEMU進(jìn)程。

I/O模型直接衍生于QEMU,支持寫時(shí)復(fù)制磁盤映像和其他QEMU特征。

你如何查明你的系統(tǒng)是否能運(yùn)行KVM?首先,你需要一個(gè)支持虛擬化的處理器,這里有一個(gè)兼容KVM的處理器列表(http://wiki.xensource.com/xenwiki/HVM_Compatible_Processors),看看你的處理器是否在其中。另外,你還可以檢查/proc/CPUinfo,如果在cpu flags字段看到了vmx或smx,那么你的處理器就支持KVM。

如何比較KVM和現(xiàn)存的管理程序

相對(duì)它的競(jìng)爭(zhēng)者而言,KVM還是一個(gè)比較新的項(xiàng)目,與KVM的主要開發(fā)者Avi Kivity會(huì)面時(shí),他是這樣與其他解決方案做對(duì)比的:

在許多方面,VMware是一個(gè)基礎(chǔ)破壞技術(shù),它只用軟件技術(shù)管理眾所周知地的復(fù)雜的x86架構(gòu)的完全虛擬化,達(dá)到了非常好的性能和穩(wěn)定性。結(jié)果,VMware變得非常大而其非常復(fù)雜的軟件了。換句話說,KVM依賴于最新的硬件的虛擬技術(shù),就其本身而論,它非常小(大約1萬行代碼)且相當(dāng)簡(jiǎn)單,另外一個(gè)巨大的不同之處是VMware是有專利的,而KVM是開源的。

Xen是一個(gè)相當(dāng)大的項(xiàng)目,同時(shí)提供半虛擬化和完全虛擬化,它被設(shè)計(jì)為一個(gè)獨(dú)立的內(nèi)核,它只需要Linux執(zhí)行I/O,這樣使得它相當(dāng)?shù)拇螅凶约旱恼{(diào)度程序、內(nèi)存管理器、計(jì)時(shí)器和機(jī)器初始化程序。

相反,KVM使用標(biāo)準(zhǔn)Linux調(diào)度程序、內(nèi)存管理器和其他服務(wù)。這樣KVM開發(fā)者們可以集中精力在虛擬化上,將虛擬技術(shù)建立在內(nèi)核上而不是去替換內(nèi)核。

QEMU是一個(gè)用戶空間模擬器,它是一個(gè)相當(dāng)驚人的項(xiàng)目,可以在不同宿主處理器上模擬非常多的客戶處理器,而且性能非常好。但是,用戶空間架構(gòu)不允許它在無內(nèi)核加速器的情況下解決天生的速度問題。KVM認(rèn)可QEMU的實(shí)用價(jià)值,使用它進(jìn)行I/O硬件模擬。盡管KVM不帶有任何特殊的用戶空間,但QEMU代碼寫得非常好--因此我們使用了這些代碼。

但是,KVM也不是完美的,因?yàn)樗€是一個(gè)新技術(shù),它包括下面的這樣一些限制:

在寫本文的時(shí)候,KVM僅支持Intel和AMD虛擬化,而Xen還支持IBM PowERPC和Itanium【安騰】處理器。

目前的版本最宿主SMP處理器的支持還比較弱。

性能調(diào)整

但是,這個(gè)項(xiàng)目在快速地發(fā)展,按照Avi Kivity所說的,KVM已經(jīng)在某些方面超過了Xen,將來在其他方面也將趕上Xen。

虛擬化如何工作

臺(tái)虛擬化是一個(gè)舊技術(shù)了,但是,最近幾年,硬件和操作系統(tǒng)都很成熟了,有望實(shí)現(xiàn)真正的虛擬化,大多數(shù)虛擬化基礎(chǔ)部分是管理程序,管理程序在虛擬客戶操作系統(tǒng)和真實(shí)硬件之間充當(dāng)一個(gè)中間層,有時(shí)候,管理程序就是操作系統(tǒng),如Xen,其他時(shí)候,它是用戶層軟件,如VMware,虛擬客戶操作系統(tǒng)或虛擬實(shí)例是一個(gè)隔離的操作系統(tǒng),但是,實(shí)際上是管理程序提供了這種幻覺。

支持虛擬化的處理器

由于虛擬技術(shù)的復(fù)活,微處理器廠商已經(jīng)更新了它們的處理器,天生就支持虛擬化了。允許處理器直接支持管理程序,使得開發(fā)管理程序的任務(wù)更簡(jiǎn)單了,處理器為宿主操作系統(tǒng)和客戶操作系統(tǒng)管理處理器的狀態(tài),還以虛擬操作系統(tǒng)的名義管理I/O和中斷。

安裝KVM

KVM已經(jīng)被添加到許多發(fā)行版中了,包括OpenSUSE/SUSE,Fedora 7(內(nèi)置了KVM),DeBIan和Ubuntu(Feisty)。

對(duì)于其他發(fā)行版而言,你需要下載2.6.20及以上的內(nèi)核版本,在自定義編譯內(nèi)核時(shí),在進(jìn)行內(nèi)核配置時(shí)選擇Device?Virtualization,啟用support for hardware-based virtualization【支持基于硬件的虛擬化】,你還可以隨KVM模塊一起從http://sourceforge.net/project/showfiles.php?group_id=180599獲取用戶空間工具。

我已經(jīng)安裝了OpenSUSE軟件包,因此,在本文中例子中的文件名可能與你的發(fā)行版不一樣。

創(chuàng)建客戶操作系統(tǒng)

使用編譯好的支持虛擬化技術(shù)的內(nèi)核,下一步工作是為客戶操作系統(tǒng)創(chuàng)建一個(gè)磁盤映像,你可以用qemu-img命令來完成,下面有展示,注意映像的大小是6GB,但是使用QEMU的寫時(shí)復(fù)制格式(qcow)時(shí),文件將按需增大,而不是一次性占用6GB空間。

#qemu-img create -f qcow image.img 6G

在目前的KVM版本下I/O是由QEMU處理的,因此讓我們查看一些重要的QEMU參數(shù):

-m:按兆字節(jié)(MB)顯示的內(nèi)存

-cdrom:理論上是一個(gè)iso鏡像文件,充當(dāng)虛擬機(jī)的一個(gè)cd-rom驅(qū)動(dòng)器,如果不指定cdrom參數(shù),ide1主驅(qū)動(dòng)器將充當(dāng)cd-rom。

-hda:指向一個(gè)QEMU寫時(shí)復(fù)制鏡像文件,要指定多個(gè)磁盤,我們可以這樣:

#qemu-kvm -m 384 -hda vmdisk1.img -hdb vmdisk2.img -hdc vmdisk3.img

-boot:允許我們自定義啟動(dòng)選項(xiàng);-d參數(shù)指定從cd-rom啟動(dòng)。

默認(rèn)命令從一個(gè)子窗口啟動(dòng)客戶操作系統(tǒng),但是你可以通過下面的參數(shù)以全屏模式啟動(dòng):

-fulle-screen

另外,KVM允許在虛擬環(huán)境中進(jìn)行低級(jí)硬件控制,你可以通過特殊的參數(shù)重定向串口、并口和USB端口到指定的設(shè)備。聲音在虛擬機(jī)中也是支持的,你可以通過-soundhw參數(shù)在虛擬機(jī)中啟用你的聲卡。

下面是一些快捷鍵:

Ctrl-Alt-F:固定為全屏幕

Ctrl-Alt-N:切換到虛擬控制臺(tái)N

Ctrl-Alt:固定鼠標(biāo)和鍵盤

結(jié)論

隨著Linux內(nèi)核引入KVM,將來的Linux發(fā)行版將內(nèi)置支持虛擬化技術(shù),將不再需要任何雙啟動(dòng)安裝,因?yàn)樗心阈枰乃袘?yīng)用程序都能直接從Linux桌面運(yùn)行,KVM只是眾多開源管理程序的其中一員,再一次肯定了開源已經(jīng)成為虛擬技術(shù)的前進(jìn)方向。


發(fā)布:2007-03-05 15:34    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
北京OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普北京OA快博其他應(yīng)用

北京OA軟件 北京OA新聞動(dòng)態(tài) 北京OA信息化 北京OA快博 北京OA行業(yè)資訊 北京軟件開發(fā)公司 北京門禁系統(tǒng) 北京物業(yè)管理軟件 北京倉庫管理軟件 北京餐飲管理軟件 北京網(wǎng)站建設(shè)公司