文/梁少峰
基于KVM解決的虛擬化設(shè)計(jì)方案應(yīng)用
文/梁少峰
本文首先對(duì)硬件虛擬化技術(shù)進(jìn)行了簡(jiǎn)單的介紹,對(duì)KVM的設(shè)計(jì)原則和設(shè)計(jì)方案進(jìn)行了研究,然后詳細(xì)地分析了KVM設(shè)計(jì)方案的應(yīng)用步驟,以期能提高該設(shè)計(jì)方案的針對(duì)性和實(shí)用性。
KVM 虛擬化設(shè)計(jì) 虛擬化應(yīng)用
虛擬化設(shè)計(jì)方案是IBM公司在上個(gè)世紀(jì)七十年代首先應(yīng)用的,目前在各大高校的數(shù)據(jù)中心里,KVM拓?fù)浣Y(jié)構(gòu)靈活、硬件配置簡(jiǎn)單的優(yōu)勢(shì)得到了充分的發(fā)揮,對(duì)高校教學(xué)信息應(yīng)用、數(shù)字圖書(shū)館信息加密等進(jìn)行了統(tǒng)一的管理,很好地降低了高校的維護(hù)成本,提高了計(jì)算機(jī)服務(wù)器的利用率。
硬件虛擬化設(shè)計(jì)方案的簡(jiǎn)稱(chēng)就是KVM,它簡(jiǎn)單的硬件配置方案可以實(shí)現(xiàn)數(shù)個(gè)操作系統(tǒng)運(yùn)行于同一臺(tái)計(jì)算機(jī),并使每個(gè)該系統(tǒng)均具有獨(dú)立運(yùn)行的操作軟件。這使得普通計(jì)算機(jī)的系統(tǒng)能力得到了極大的提升,硬件潛力得到了充分的發(fā)揮。虛擬化技術(shù)可以將這些系統(tǒng)彼此隔離,互不干擾,然后將計(jì)算機(jī)的資源按照每個(gè)系統(tǒng)的需求進(jìn)行合理分配,以最大限度地保證每個(gè)系統(tǒng)的正常運(yùn)行。當(dāng)前的虛擬化技術(shù)已經(jīng)發(fā)展成熟,從硬件到軟件都有著完整的解決方案。例如基于X86架構(gòu)的硬件技術(shù)主要是由Intel和AMD提供的VT和AMD—V虛擬化技術(shù),而軟件方面則有Vmware公司的VSpare和 Vmware Workstation、Microsoft公司的Hyper-V和Virtual PC以及Linux系統(tǒng)下的Xen和KVM等;前兩個(gè)軟件已經(jīng)實(shí)現(xiàn)了商業(yè)化的轉(zhuǎn)變,進(jìn)入到了計(jì)算機(jī)付費(fèi)軟件的行列當(dāng)中;KVM依舊是免費(fèi)的開(kāi)源系統(tǒng),但是它還存在著巨大的發(fā)展?jié)摿?,這也是Linux系統(tǒng)選擇該虛擬化設(shè)計(jì)方案進(jìn)入到系統(tǒng)核心的原因之一。
KVM根據(jù)應(yīng)用系統(tǒng)的性質(zhì)可以分成兩個(gè)大類(lèi),一類(lèi)是教學(xué)服務(wù)器,另一類(lèi)是環(huán)境支持系統(tǒng)下的各種服務(wù)器??紤]到篇幅的限制,這里選擇教學(xué)服務(wù)器作為設(shè)計(jì)對(duì)象。教學(xué)服務(wù)器專(zhuān)門(mén)運(yùn)行相關(guān)的專(zhuān)業(yè)軟件,平時(shí)運(yùn)行的壓力不大;但是在開(kāi)展教學(xué)活動(dòng)時(shí),服務(wù)器的負(fù)載會(huì)迅速增加。教學(xué)服務(wù)器還可以根據(jù)資源利用率細(xì)分為兩部分,利用率超過(guò)20%的需要單獨(dú)設(shè)置虛擬機(jī);低于20%的則按照其服務(wù)種類(lèi)進(jìn)行組合,分配到其他虛擬機(jī)中。教學(xué)服務(wù)器的加密措施由加密狗服務(wù)器負(fù)責(zé),為了避免不同的加密狗之間出現(xiàn)沖突,可以將加密狗USB直接對(duì)應(yīng)到負(fù)責(zé)的虛擬機(jī)上,形成私有端口;其他的虛擬機(jī)包括主機(jī)都不能識(shí)別和使用該加密狗,以達(dá)到消除沖突的目的。服務(wù)器中的數(shù)據(jù)通常是集中存儲(chǔ),即SAN存儲(chǔ)區(qū)域集中存儲(chǔ)方式。該存儲(chǔ)方式是將虛擬機(jī)的鏡像文件部署在自己的共享存儲(chǔ)陣列中,當(dāng)主機(jī)出現(xiàn)物理故障時(shí)利用集群轉(zhuǎn)移來(lái)重啟虛擬機(jī),從而虛擬機(jī)停機(jī)時(shí)間,保護(hù)了數(shù)據(jù)安全。系統(tǒng)的數(shù)據(jù)庫(kù)要采用分布式數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)與應(yīng)用實(shí)現(xiàn)分離,這樣既能保證數(shù)據(jù)庫(kù)的數(shù)據(jù)安全,也有利于降低服務(wù)器的負(fù)載。
KVM的基礎(chǔ)是CPU硬件的虛擬化,因此在安裝KVM之前一定要確認(rèn)本系統(tǒng)的CPU支持虛擬化技術(shù),否則KVM就無(wú)法運(yùn)行。通常CPU都是支持虛擬化的,如Linux內(nèi)核從2.6.20版本開(kāi)始就集成了KVM,可以直接運(yùn)行虛擬化技術(shù),安裝之前只需要核對(duì)CPU版本即可;如果出現(xiàn)部分服務(wù)器不支持的情況,可以進(jìn)入BiOS打開(kāi)CPU的虛擬化支持。
在Ubuntu下安裝KVM模塊和其他軟件的時(shí)候,可以使用apt一get install Kkvm來(lái)進(jìn)行添加,并運(yùn)行Ismod命令來(lái)查看添加是否成功,測(cè)試KVM模塊能否正常運(yùn)行;如果顯示添加失敗就使用命令modprobe kvm重新添加。
虛擬磁盤(pán)鏡像就是虛擬機(jī)使用的硬盤(pán),一般是系統(tǒng)內(nèi)的普通鏡像文件;如果虛擬化硬盤(pán)需求較大,也可以在系統(tǒng)內(nèi)的硬盤(pán)上建立單獨(dú)的物理磁盤(pán)分區(qū)。虛擬磁盤(pán)與物理磁盤(pán)不同,不會(huì)在應(yīng)用啟動(dòng)的時(shí)候立即響應(yīng)并分配運(yùn)行空間,而是根據(jù)系統(tǒng)運(yùn)行結(jié)果,動(dòng)態(tài)的計(jì)算需要的空間來(lái)進(jìn)行分配。根據(jù)前面的分析,可以將虛擬機(jī)以文件方式集中存儲(chǔ)在SAN存儲(chǔ)陣列中,用dd命令創(chuàng)建如下:
dd if=/dev/zero of=hdisk.img bs=1G count=10
該命令會(huì)創(chuàng)建一個(gè)名稱(chēng)為hdisk.img的虛擬硬盤(pán),它的容量為l0G,每次虛擬機(jī)啟動(dòng)之后,系統(tǒng)會(huì)在10G的磁盤(pán)空間中進(jìn)行動(dòng)態(tài)分配。
KVM有NAT和TUN/TAP兩種同絡(luò)接入方式,前者不需要設(shè)置網(wǎng)絡(luò)連接方式即可實(shí)現(xiàn)物理主機(jī)和虛擬主機(jī)共同連接網(wǎng)絡(luò),這是因?yàn)樵撓到y(tǒng)內(nèi)網(wǎng)卡采用DH—CP方式來(lái)獲取IP地址;然而虛擬機(jī)系統(tǒng)不能和物理主機(jī)進(jìn)行通信,也不會(huì)通過(guò)絡(luò)對(duì)外提供服務(wù)。前者雖需網(wǎng)橋連接,然而連接后的虛擬主機(jī)、物理主機(jī)及外部網(wǎng)絡(luò)都可以正常通信。這是因?yàn)樗鼘⑽锢砭W(wǎng)卡的ehtO設(shè)置成混雜模式,建立起了一個(gè)虛擬的網(wǎng)橋brO和虛擬網(wǎng)卡tap0;配置網(wǎng)絡(luò)時(shí)虛擬網(wǎng)卡tap0和物理網(wǎng)卡ethO都加入了網(wǎng)橋,并被設(shè)置成網(wǎng)橋端口,以此來(lái)激活虛擬網(wǎng)卡tap0。這樣虛擬主機(jī)在啟動(dòng)之后就能通過(guò)虛擬網(wǎng)卡tap0來(lái)實(shí)現(xiàn)通信,并可根據(jù)需要建立一定數(shù)量的同樣的虛擬網(wǎng)卡,其IP地址可按照正常系統(tǒng)的DHCP方式或自主方式來(lái)進(jìn)行設(shè)置。網(wǎng)橋的IP則要設(shè)置成物理主機(jī)的IP地址,以保證物理主機(jī)的正常通信。
KVM虛擬機(jī)具有硬件配置十分靈活的特點(diǎn),無(wú)論是配置設(shè)定還是更改都很方便。從CPU、內(nèi)存、硬盤(pán)到網(wǎng)卡、聲卡等硬件,都可以通過(guò)虛擬機(jī)啟動(dòng)命令參數(shù)來(lái)實(shí)現(xiàn)對(duì)應(yīng)的啟動(dòng),并將啟動(dòng)后的虛擬機(jī)與虛擬磁盤(pán)文件對(duì)應(yīng)起來(lái),實(shí)現(xiàn)操作系統(tǒng)的運(yùn)行。一般的服務(wù)器都能通過(guò)光驅(qū)來(lái)進(jìn)行虛擬機(jī)的安裝,安裝步驟和安裝完畢后的操作界面與物理系統(tǒng)一致;安裝完畢后將啟動(dòng)命令中的一boot d參數(shù)進(jìn)行修改,改為一boot c,這樣就可以實(shí)現(xiàn)從磁盤(pán)鏡像來(lái)啟動(dòng)虛擬機(jī)。
KVM的起步時(shí)間相對(duì)較晚,因此其發(fā)展程度較低,但是就現(xiàn)階段該虛擬化技術(shù)解決方案所表現(xiàn)出來(lái)的性能和穩(wěn)定性已經(jīng)收到了計(jì)算機(jī)行業(yè)及廣大用戶(hù)的青睞。隨著科技發(fā)展輔助手段的介入以及人們認(rèn)知的加深,此設(shè)計(jì)在電腦上得到廣泛的性能拓展,如泛虛擬化支持、動(dòng)態(tài)遷移、圖形化界面管理等新都將得到應(yīng)用和推廣。
[1]李馥娟虛擬機(jī)在復(fù)雜網(wǎng)絡(luò)實(shí)驗(yàn)中的應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2009(02).
[2] 徐紅計(jì)算機(jī)專(zhuān)業(yè)虛擬實(shí)驗(yàn)教學(xué)環(huán)境的改革[J].實(shí)驗(yàn)技術(shù)與管理,2009(26).
作者單位清遠(yuǎn)市技師學(xué)院 廣東省清遠(yuǎn)市 511517