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