如今市面上有很多虛擬化技術(shù),要為你的云項(xiàng)目選擇一個(gè)合適的虛擬化平臺(tái)還真是個(gè)艱巨的任務(wù)。以下幾個(gè)關(guān)于開(kāi)源虛擬化KVM常見(jiàn)的問(wèn)題解答,希望能幫助你。
KVM是什么?
KVM (Kernel-based Virtual Machine,基于內(nèi)核的虛擬機(jī)) 是Linux下 x86硬件平臺(tái)上的全功能虛擬化解決方案,包含一個(gè)可加載的內(nèi)核模塊 kvm.ko提供和虛擬化核心架構(gòu)和處理器規(guī)范模塊。使用KVM可允許多個(gè)包括Linux和Windows每個(gè)虛擬機(jī)有私有的硬件,包括網(wǎng)卡、磁盤(pán)以及圖形適配卡等。
由于KVM在性能、擴(kuò)展性與安全等方面的優(yōu)勢(shì),成為企業(yè)級(jí)的經(jīng)濟(jì)高效的虛擬化開(kāi)放解決方案。紅帽將KVM作為首選的虛擬化平臺(tái),IBM將KVM作為最佳虛擬化開(kāi)放技術(shù),參與KVM技術(shù)開(kāi)發(fā),涉及性能、安全和云計(jì)算等廣泛領(lǐng)域。
如何獲取KVM?
購(gòu)買(mǎi)Linux版本獲得KVM。很多Linux發(fā)行版本都內(nèi)置有KVM,包括紅帽企業(yè)Linux 5.4及以上版本,SUSE Linux Enterprise Server 11 SP1及以上版本,Canonical Ubuntu 10.04 LTS及以上版本。如果想虛擬運(yùn)行Linux的服務(wù)器,或者虛擬運(yùn)行Linux與Windows服務(wù)器的話(huà),該購(gòu)買(mǎi)方法最合適。
將KVM作為獨(dú)立hypervisor購(gòu)買(mǎi)。KVM與Linux的組合進(jìn)行了優(yōu)化,并拆開(kāi)成交付hypervisor的模塊。紅帽企業(yè)虛擬化RHEV使用的就是這種方式。此種獲取方式適合云環(huán)境,或者適合運(yùn)行Windows服務(wù)器的(大型)環(huán)境。
KVM使用的存儲(chǔ)類(lèi)型有哪些?
KVM的存儲(chǔ)選項(xiàng)有多種,包括虛擬磁盤(pán)文件、基于文件系統(tǒng)的存儲(chǔ)和基于設(shè)備的存儲(chǔ)。
為實(shí)現(xiàn)KVM存儲(chǔ)管理,可以使用LVM(Logical Volume Manager)和創(chuàng)建存儲(chǔ)池。當(dāng)系統(tǒng)創(chuàng)建KVM虛擬機(jī)的時(shí)候,默認(rèn)使用虛擬磁盤(pán)文件作為后端存儲(chǔ)。安裝后,虛擬機(jī)認(rèn)為在使用真實(shí)的磁盤(pán),但實(shí)際上看到的是用于模擬硬盤(pán)的虛擬磁盤(pán)文件。這一額外的文件系統(tǒng)層會(huì)降低系統(tǒng)速度。
當(dāng)然,基于磁盤(pán)鏡像的虛擬磁盤(pán)并非全無(wú)益處,磁盤(pán)文件系統(tǒng)可以很輕松地用于其它的KVM虛擬化宿主機(jī)。但是如果您希望優(yōu)化KVM虛擬化性能,最好考慮其它的存儲(chǔ)方式。
如何運(yùn)行KVM網(wǎng)絡(luò)?
RHEL 6現(xiàn)在支持基于KVM管理程序。KVM的抽象層——稱(chēng)為libvirt——運(yùn)行KVM網(wǎng)絡(luò),管理員能夠在libvirt的配置文件中定制虛擬機(jī)連接并追蹤網(wǎng)絡(luò)設(shè)備。
在libvirt中運(yùn)行KVM網(wǎng)絡(luò)有兩種方法:網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)和橋接網(wǎng)絡(luò)。網(wǎng)絡(luò)地址轉(zhuǎn)換是默認(rèn)方法,橋接網(wǎng)絡(luò)僅對(duì)非常特殊的基礎(chǔ)設(shè)施有意義。
對(duì)大多數(shù)管理員來(lái)說(shuō),最好從理解KVM網(wǎng)絡(luò)在默認(rèn)安裝中如何工作開(kāi)始。如果想創(chuàng)建定制安裝,通過(guò)學(xué)習(xí)導(dǎo)航用于網(wǎng)絡(luò)地址轉(zhuǎn)換的NAT配置文件,同樣可以熟悉相關(guān)設(shè)置。例如,你可以創(chuàng)建多個(gè)允許你改變不同虛擬機(jī)之間的網(wǎng)絡(luò)流量的NAT接口。
如何管理KVM?
首先是單個(gè)資源的基礎(chǔ)虛擬化管理,有開(kāi)源的虛擬化工具集libvirt,通過(guò)命令行接口提供安全的遠(yuǎn)程管理,可管理單個(gè)系統(tǒng)。
然后是管理全部運(yùn)行KVM的多個(gè)服務(wù)器,有兩種:用Red Hat Enterprise Virtualization-Management,即RHEV-M(管理多個(gè)RHEV-H系統(tǒng))和IBM Systems Director VMControl(管理多個(gè)RHEL系統(tǒng))。
最后有IBM Tivoli產(chǎn)品與開(kāi)源虛擬化項(xiàng)目oVirt,為主機(jī)和子機(jī)提供高級(jí)功能,包括高可用性熱遷移存儲(chǔ)管理系統(tǒng)調(diào)度等。
如何提升KVM使用性能?
如果在主機(jī)上使用KVM,通常會(huì)激活數(shù)個(gè)客戶(hù)操作系統(tǒng),而且這些操作系統(tǒng)經(jīng)常運(yùn)行相同的OS,這意味著大量的內(nèi)核頁(yè)面被多次加載。通過(guò)應(yīng)用KSM(kernel samepage merging,內(nèi)核同頁(yè)合并),許多虛擬機(jī)可以使用相同數(shù)量的內(nèi)存啟動(dòng)。
在RHEL 6和Fedora 14中,KSM默認(rèn)是打開(kāi)的。KSM通過(guò)兩個(gè)服務(wù):ksmd和ksmtuned實(shí)現(xiàn),這兩個(gè)服務(wù)在系統(tǒng)初始化時(shí)自動(dòng)啟動(dòng)。管理員應(yīng)該判斷他們的環(huán)境并決定保持KSM處于運(yùn)行狀態(tài)還是關(guān)閉它。