本文教大家如何讓KVM在Ubuntu服務(wù)器上順暢運行、安裝多個訪客操作系統(tǒng)、管理存儲,以及將訪客操作系統(tǒng)遷移到新主機上。
作為Linux內(nèi)核虛擬機管理程序,KVM稱得上是企業(yè)級虛擬化領(lǐng)域的后起之秀。它有諸多優(yōu)點:非常精簡,因而占用資源少,運行起來速度快,可以輕松自如地運行沒有經(jīng)過改動的訪客操作系統(tǒng)。在這堂速成課中,我們會迅速讓KVM在Ubuntu服務(wù)器上運行起來、安裝多個訪客操作系統(tǒng)、管理存儲,以及將訪客操作系統(tǒng)遷移到新主機上。
KVM與Ubuntu服務(wù)器
KVM的全稱是“基于內(nèi)核的虛擬機”,最先由Qumranet公司開發(fā)而成。2008年,紅帽公司收購了Qumranet,將KVM作為服務(wù)器版紅帽企業(yè)級虛擬化(RHEV)的核心部分。KVM采用了GPL許可證模式,是主線內(nèi)核(mainline kernel)的一部分,因而任何Linux發(fā)行版都能支持它。KVM是一種類型2虛擬機管理程序,這意味著它在操作系統(tǒng)里面運行。一些流行的類型2虛擬機管理程序包括Xen和VirtualBox。類型1虛擬機管理程序(如IBM的z/VM和VMWare ESXi)則可以直接在裸機上運行,不需要什么操作系統(tǒng)。KVM幾乎支持任何訪客操作系統(tǒng):Linux、Mac OS X、Unix、Windows以及你所采用的其他任何操作系統(tǒng)。
與KVM一樣,Ubuntu服務(wù)器也發(fā)展成為一款面向企業(yè)的重量級服務(wù)器。Ubuntu支持x86和x86 64位平臺上的KVM。與紅帽和Novell這兩大企業(yè)級Linux開發(fā)商不一樣,你沒必要進行注冊或者理睬銷售噱頭,就可以下載和測試Ubuntu。如果你想要獲得培訓(xùn)、商業(yè)支持或者在線服務(wù)(比如Landscape系統(tǒng)管理器或Ubuntu云服務(wù)),你想要的時候,就能隨時獲取。
系統(tǒng)要求
就這堂速成課而言,你需要配備英特爾VT或AMD-V處理器的Ubuntu計算機,因為這些處理器包含特殊的擴展功能,可以原生支持虛擬機。(想了解更多信息,請參閱KVM的處理器支持頁面:http://www.linux-kvm.org/page/Processor_support)。我在本文中使用了11.04 Natty Narwhal 64位版本。我建議使用Ubuntu服務(wù)器作為你生產(chǎn)環(huán)境的KVM服務(wù)器;但是進行測試的話,任何Ubuntu都可以。使用該命令,看看你的x86處理器有沒有虛擬化擴展功能:
$ egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
vmx
這個示例顯示了能夠支持虛擬化的雙核英特爾處理器。你可能不得不在你系統(tǒng)的BIOS中啟用虛擬化擴展功能。確保這項功能已啟用,否則KVM無法正常運行。
你可以在64位系統(tǒng)上運行32位或64位訪客操作系統(tǒng),但是在32位系統(tǒng)上卻只能運行32位訪客操作系統(tǒng)。使用大量內(nèi)存是好事,使用多核處理器也是如此。Ubuntu服務(wù)器占用系統(tǒng)資源很少,因而給你的虛擬機訪客操作系統(tǒng)留出了更多資源。Ubuntu服務(wù)器系統(tǒng)的最低要求是300 MHz處理器、128 MB內(nèi)存和1 GB硬盤空間。這個要求非常低。為了測試KVM,我建議至少為你的訪客操作系統(tǒng)配備2 GHz處理器、2 GB內(nèi)存以及足夠的磁盤空間,另外還要有數(shù)據(jù)存儲系統(tǒng)。為生產(chǎn)服務(wù)器配置資源很難做到非常準(zhǔn)確。如果你僅僅把所有訪客操作系統(tǒng)的系統(tǒng)要求疊加起來,很可能面臨一臺配置過度的機器,除非你的訪客操作系統(tǒng)始終在全速運行。虛擬機的其中一個優(yōu)點是,可以更高效地使用硬件,因為當(dāng)一個訪客操作系統(tǒng)閑置時,另一個訪客操作系統(tǒng)忙碌運行。如果你配置資源過少,服務(wù)器變得不堪重負時,那么可以將訪客操作系統(tǒng)轉(zhuǎn)移到不同主機上。所以,你有很大的活動余地,不需要一開始就在資源配置方面做到完美。
[page]
本文教大家如何讓KVM在Ubuntu服務(wù)器上順暢運行、安裝多個訪客操作系統(tǒng)、管理存儲,以及將訪客操作系統(tǒng)遷移到新主機上。
安裝KVM
安裝這些軟件包:
$ sudo apt-get install qemu-kvm libvirt-bin virt-manager bridge-utils
然后運行該命令,確保它準(zhǔn)備好運行KVM:
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
要是缺漏了什么,它會告訴你KVM加速無法使用。在采用根權(quán)限的情況下運行,獲得讓它正常運行的暗示信息(hint),就像這樣:
$ sudo kvm-ok
[sudo] password for carla:
INFO: /dev/kvm does not exist(/dev/kvm不存在)
HINT: sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions(你的處理器支持KVM擴展)
INFO: KVM (vmx) is disabled by your BIOS(KVM [vmx]被你的BIOS禁用)
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
(進入你的BIOS設(shè)置界面,啟用虛擬化技術(shù)[VT],)
and then hard poweroff/poweron your system
(然后對你的系統(tǒng)執(zhí)行硬關(guān)機/開機操作)
KVM acceleration can NOT be used(KVM加速無法使用)
就像我剛才說的那樣,要確保KVM擴展功能已在你系統(tǒng)的BIOS中啟用。現(xiàn)在,把你的用戶添加到libvirtd組,然后注銷,重新登錄,激活你的組成分身份。現(xiàn)在,你不用操心權(quán)限方面的問題,就可以控制KVM了。運行該命令,證實KVM在正常運行:
$ virsh -c qemu:///system list
Id Name State
----------------------------------
太好了! ID Name和State這兩個字段都是空的,它們本該是空的。現(xiàn)在開啟虛擬機管理器(Virtual Machine Manager),運行該命令,連接到你的KVM服務(wù)器:
$ virt-manager -c qemu:///system kvmhost
Kvmhost是我的服務(wù)器名稱,所以你必須將它換成你的服務(wù)器名稱。你會看到下面圖1這樣的畫面。
圖1:圖形化的虛擬機管理器成功地連接至KVM服務(wù)器
[page]
安裝訪客操作系統(tǒng)
目前還沒有多大的動靜,因為我們還沒有安裝任何訪客操作系統(tǒng)。你可以通過CD/DVD、ISO映像文件、netinstall(網(wǎng)絡(luò)安裝)和PXE啟動等方式來安裝新的訪客操作系統(tǒng)。CD/DVD安裝需要內(nèi)部驅(qū)動器;U盤不行。我青睞通過ISO映像文件來安裝,因為這種安裝方式速度快,又沒必要刻錄磁盤。如果是網(wǎng)絡(luò)安裝,需要知道安裝服務(wù)器的URL地址;如果是PXE啟動,則需要TFTP/PXE啟動服務(wù)器。
要安裝新的訪客操作系統(tǒng),點擊“Create a new virtual machine”(創(chuàng)建新的虛擬機)按鈕,按屏幕提示逐步完成操作。想在你的系統(tǒng)上找到ISO映像文件,點擊屏幕2中的Browse(瀏覽)按鈕,然后查看Browse Local(瀏覽本地)按鈕的“Locate ISO media volume”(定位IOS介質(zhì)卷)屏幕的左下角。點擊該處,即可打開文件選擇器。在屏幕5上,務(wù)必要勾選“Allocate entire disk now”(立即分配整個磁盤)。這并不意味著,它會接管你的整個磁盤,而是會立即預(yù)留你為訪客操作系統(tǒng)分配的所有空間。如果你沒有選擇這個,那么KVM就會根據(jù)需要分配空間,上限是最大分配值。這年頭磁盤空間便宜得很,所以不值得冒這個險:因不小心用光了磁盤空間而導(dǎo)致數(shù)據(jù)被損壞。一開始就要預(yù)留訪客操作系統(tǒng)的最大分配值,之后你再也沒必要操心這個了。
虛擬機窗口可能不夠大,顯示不下訪客操作系統(tǒng)的整個屏幕,于是用光標(biāo)抓住窗口一角,拖到合適位置。如果虛擬機捕捉你的鼠標(biāo)指針,按Ctrl+Alt組合鍵,即可重新放開。圖2顯示了通過ISO映像文件正常安裝OpenSUSE的過程。
圖2:安裝OpenSUSE訪客操作系統(tǒng)。
下面的圖3顯示了三個訪客操作系統(tǒng)的樣子,它們都同時運行,控制臺都開著,虛擬機管理器在頂部。
圖3:三個訪客操作系統(tǒng):Jeoss、Ubuntu服務(wù)器和OpenSUSE都在KVM服務(wù)器上運行。
你可以控制每一個訪客操作系統(tǒng),就好像它們安裝在不同的機器上;你也可以隨時開啟和關(guān)閉它們。網(wǎng)絡(luò)功能自動啟用,所以你的訪客操作系統(tǒng)能訪問互聯(lián)網(wǎng)和局域網(wǎng)。每一個訪客操作系統(tǒng)都可以在安裝后加以改動,只要打開相應(yīng)訪客操作系統(tǒng)的控制臺,然后點擊藍色的i(信息)按鈕(見圖4)。在該屏幕上,你可以微調(diào)處理器的使用和內(nèi)存、查看性能圖表、控制啟動選項、設(shè)置外設(shè)、管理存儲,以及添加新的硬件設(shè)備。默認情況下,訪客操作系統(tǒng)無法訪問CD/DVD驅(qū)動器和USB存儲設(shè)備,所以這些設(shè)備得手動添加。
圖4:安裝后編輯訪客操作系統(tǒng)。一切都可以改動。
[page]
管理存儲
虛擬機管理器讓存儲管理既容易又快速。只要點擊Edit(編輯)> Connection Details(連接細節(jié)),即可創(chuàng)建額外的存儲池。這可以打開有多個選項卡的一個屏幕。Storage(存儲)選項卡顯示了現(xiàn)有的存儲池,還可創(chuàng)建新的存儲池。從左窗格開始,點擊綠色十字圖標(biāo),即可分配一個新的存儲塊(圖5)。這個存儲塊可以是目錄、塊設(shè)備、SCSI主機適配器、網(wǎng)絡(luò)文件系統(tǒng)、邏輯卷管理器(LVM)組或者iSCSI目標(biāo)。然后,你可以在右窗格中隨意對它進行分隔。點擊New Volume(新建卷)按鈕,配置大小,然后選擇raw或qcow2磁盤映像格式,因為這些格式與所有文件系統(tǒng)兼容。raw是默認格式,也是速度最快的。qcow2則支持AES加密、快照和壓縮。
圖5:創(chuàng)建和分隔新的存儲塊。
管理訪客操作系統(tǒng)
你可以將訪客操作系統(tǒng)遷移到不同的主機上用于均衡負載、軟硬件維護或者僅僅用于試驗。啟用遷移功能有一個前提條件,那就是你的主機必須使用共享網(wǎng)絡(luò)存儲,比如NFS共享區(qū)、光纖通道或iSCSI;不管是哪一種,源主機和目的地主機都必須已經(jīng)使用同樣的共享網(wǎng)絡(luò)存儲池。
遷移有兩種類型:離線遷移和實時遷移。在離線遷移中,訪客操作系統(tǒng)被停止,然后訪客操作系統(tǒng)內(nèi)存的映像轉(zhuǎn)移到新主機上,重新啟動。在實時遷移中,KVM將訪客操作系統(tǒng)的內(nèi)存頁面遷移到新主機上,監(jiān)測舊主機有無變更內(nèi)容,然后將變更內(nèi)容轉(zhuǎn)移到新主機上。當(dāng)頁面都拷貝完畢、在指定的一段時間內(nèi)(默認值是10毫秒)沒有變更時,訪客操作系統(tǒng)在舊主機上被停止,在新主機上恢復(fù)運行。要是舊主機處于忙碌狀態(tài),實時遷移就要花費很長的時間,或者根本就無法完成,所以那樣的話,你就要停止實時遷移,改而采用離線遷移。遷移過去的僅僅是訪客操作系統(tǒng)內(nèi)存的內(nèi)容;磁盤存儲并不遷移。
之后,遷移訪客操作系統(tǒng)只需要簡單地點擊幾下鼠標(biāo)。從虛擬機管理器的主控制臺,鼠標(biāo)右擊你想要遷移的那個訪客操作系統(tǒng),然后右擊Migrate(遷移)。如果你想要進行離線遷移,勾選“migrate offline”(離線遷移)。New Host(新主機)下拉菜單會列出所有可用的KVM主機。選擇你想要使用的那個主機,點擊Migrate(遷移)按鈕,就大功告成了。
遠程管理和CLI
虛擬機管理器支持遠程管理。把它安裝到你常用的工作站或筆記本電腦上,然后用該命令,連接到你的KVM服務(wù)器上:
$ virt-manager -c qemu+ssh://kvmhost/system
把kvmhost換成你自己的服務(wù)器的主機名。這可以通過SSH為你的會話建立安全隧道,所以你需要在KVM服務(wù)器上運行的SSH服務(wù)器。
你可能更喜歡從命令行來運行KVM服務(wù)器,你可以這么做。具體請查詢virt-manager、virsh和qemu-kvm的參考手冊頁。