Kernel-based Virtual Machine的簡(jiǎn)稱(chēng),是一個(gè)開(kāi)源的系統(tǒng)虛擬化模塊,自Linux 2.6.20之后集成在Linux的各個(gè)主要發(fā)行版本中。它使用Linux自身的調(diào)度器進(jìn)行管理,所以相對(duì)于Xen,其核心源碼很少。KVM目前已成為學(xué)術(shù)界的主流hypervisor之一。
KVM的虛擬化需要硬件支持(如英特爾 VT技術(shù)或者AMD V技術(shù))。是基于硬件的完全虛擬化。而Xen早期則是基于軟件模擬的Para-Virtualization,新版本則是基于硬件支持的完全虛擬化。但Xen本身有自己的進(jìn)程調(diào)度器,存儲(chǔ)管理模塊等,所以代碼較為龐大。廣為流傳的商業(yè)系統(tǒng)虛擬化軟件VMware ESX系列是基于軟件模擬的Full-Virtualization。
安裝方法
一、安裝準(zhǔn)備
1.確定機(jī)器有VT
終端輸入命令: grep vmx /proc/cpuinfo (英特爾芯片)
grep svm /proc/cpuinfo (AMD芯片)
不知道芯片的生產(chǎn)廠商則輸入:egrep '(vmx|svm)' /proc/cpuinfo
如果flags: 里有vmx 或者svm就說(shuō)明支持VT;如果沒(méi)有任何的輸出,說(shuō)明你的cpu不支持,將無(wú)法成功安裝KVM虛擬機(jī)。
2. 確保BIOS里開(kāi)啟VT
Intel(R) Virtualization Tech [Enabled]
如有必要,還需在BIOS中開(kāi)啟VT-d
3. 確保內(nèi)核版本較新,支持KVM
用uname -r查看內(nèi)核版本,如果在2.6.20以下的Linux版本,需升級(jí)內(nèi)核。
二、安裝KVM
下面就Ubuntu和centos下安裝使用KVM虛擬機(jī)做介紹:
Ubuntu 中用guest登陸,安裝KVM的命令為:
sudo APT install kvm QEMU qemu-kvm virt-manager kernel-package linux-source kqemu-source build-essential
kvm安裝成功后會(huì)有/dev/kvm,如果無(wú)需圖形管理器,只需要安裝前三個(gè)即可。
再來(lái)查看下KVM是否安裝成功,執(zhí)行:virsh -c qemu:///system list
如果輸入結(jié)果像下面這樣的,那么成功了:
Connecting to uri: QEMU:///system
Id 人名 State
注1:centos中安裝時(shí),先要選擇SELinux為enable,使用命令
#system-config-securitylevel-tui
可查看或修改selinux的狀態(tài)。
注2: CentOS中用root登陸時(shí)則安裝命令為:
yum install kvm kmod-kvm qemu
再裝入kvm模塊:modprobe kvm-英特爾 (Intel機(jī)器) 或者 modprobe kvm-AMD (amd機(jī)器)
注3:可以用以下命令來(lái)檢查是否裝入kvm模塊:
/sbin/lsmod | grep kvm
如果輸出關(guān)于kvm版本的信息則已裝入kvm模塊
注4: 安裝好后,可使用qemu-kvm命令,輸入該命令,如果系統(tǒng)顯示未知的命令,可查看/usr/libexec中是否有qemu-kvm可執(zhí)行文件,如果有,將其拷貝到/bin目錄下即可。如果確實(shí)按照上面的步驟進(jìn)行了,卻在/bin,/usr/libexec,/usr/bin,/usr/sbin里都找不到qemu-kvm可執(zhí)行文件,可執(zhí)行以下命令:
#yum provides "*/qemu-kvm"
注5:安裝新內(nèi)核后,可能有部分軟件版本過(guò)低,不兼容。比如firefox因版本過(guò)低,無(wú)法啟動(dòng)。
centos下可使用如下命令更新該軟件(以firefox為例):
#yum update firefox
三、在KVM下安裝虛擬機(jī)
sudo qemu-img create –f qcow windows.img 8G
注:在CentOS和新版Qemu中為:qemu-img create –f qcow2 windows.img 8G
2.使用KVM安裝Guest VM
光盤(pán)安裝:
sudo kvm –localtime –cdrom /dev/cdrom -m 512 -boot d win2.img
硬盤(pán)安裝:
sudo kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –clock –rtc –no-acpi
注:官方推薦使用 -no-acpi 參數(shù),原因是 QEMU/kvm不太支持,可能造成 cpu 的占用偏高。
注1:centos下硬盤(pán)安裝為 qemu-kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –no-acpi 即需要去掉了-clock rtc選項(xiàng),否則會(huì)出現(xiàn)無(wú)法初始化時(shí)鐘。
注2:CentOS quest mouse: export SDL_VIDEO_X11_DGAMOUSE=0可解決VM中無(wú)法識(shí)別USB鼠標(biāo)的問(wèn)題。
注3: 安裝win 7時(shí),不能使用-no-acpi選項(xiàng)。
KVM的使用
KVM啟動(dòng)Guest
① sudo kvm –boot c –m 512
–hda windows.img
② sudo kvm -boot c
-m 512
-hda /home/lm/kvm/winxp.img
-localtime
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no
-clock rtc
-soundhw es1370
-smp 2
注意:在KVM-87下,請(qǐng)去掉df=h
-m 512 分配512MB的內(nèi)存
-hda /home/lm/kvm/winxp.img
-localtime 使用本地時(shí)間(一定要加這個(gè)參數(shù),不然虛擬機(jī)時(shí)間會(huì)有問(wèn)題)
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tapo,script=no
使用網(wǎng)絡(luò),并連接到一個(gè)存在的網(wǎng)絡(luò)設(shè)備tap0,注意麥金塔地址一定要自己編一個(gè),特別是如果你虛擬了多個(gè)系統(tǒng)并且要同時(shí)運(yùn)行的話(huà),不然就MAC沖突了,在KVM-87下去掉df=h
-boot d 從光盤(pán)啟動(dòng)(從鏡像啟動(dòng)也是用這個(gè)。從HDD啟動(dòng)則為 -boot c )
-smp 2 smp處理器個(gè)數(shù)為2個(gè),如果你是4核處理器,后面的數(shù)字就為4
-clock rtc
使用rtc時(shí)鐘(如果不開(kāi)啟此選項(xiàng),Windows XP可能會(huì)很慢)
虛擬機(jī)工具
能夠管理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))。
最后有Tivoli產(chǎn)品。包括Tivoli Provisioning Manager、Tivoli Service 自動(dòng)化技術(shù) Manager與Tivoli Monitoring for Virtual Servers。
IBM Systems Director VMControl
IBM Systems Director VMControl既能實(shí)現(xiàn)異構(gòu)多平臺(tái)管理,也能實(shí)現(xiàn)異構(gòu)多系統(tǒng)管理。VMControl是IBM平臺(tái)管理方案Systems Director的一部分,覆蓋了虛擬化管理三個(gè)關(guān)鍵領(lǐng)域:虛擬化、管理與自動(dòng)化。VMControl也可作為獨(dú)立的產(chǎn)品插件使用。
前不久,IBM發(fā)布了新版VMControl 2.4,可管理KVM與其他hypervisor。VMControl即能管理物理資源也能管理虛擬資源,還能管理異構(gòu)hypervisor。用戶(hù)在現(xiàn)有運(yùn)行威睿的環(huán)境中再安裝KVM,管理也無(wú)壓力。
VMControl 2.4允許跨平臺(tái)跨hypervisor的鏡像管理,降低了復(fù)雜性、提升了生產(chǎn)效率。該軟件目前支持IBM PowerVM、z/VM VMware、微軟 Xen 與KVM服務(wù)器虛擬機(jī)技術(shù)。主要分為三個(gè)版本:
??VMControl Express Edition:輕松管理虛擬機(jī)。發(fā)現(xiàn)虛擬化資源,了解系統(tǒng)運(yùn)作情況,并能虛擬工作負(fù)載。包括查看、創(chuàng)建、修改與刪除虛擬機(jī);開(kāi)啟、停止與遷移虛擬機(jī),以及管理多hypervisor。
??VMControl Standard Edition:側(cè)重管理虛擬機(jī)鏡像。添加對(duì)虛擬鏡像庫(kù)的完整支持,包括創(chuàng)建、捕捉、輸入和部署鏡像。自動(dòng)化資源配置并能移動(dòng)資源。
??VMControl Enterprise Edition:自動(dòng)化工作負(fù)載配置。創(chuàng)建并啟用系統(tǒng)池管理,自動(dòng)移動(dòng)工作負(fù)載,完全支持KVM。
Tivoli產(chǎn)品系列
Tivoli是IBM Systems Director與VMControl的有益補(bǔ)充。提供高級(jí)別的端到端管理功能。主要的Tivoli產(chǎn)品已經(jīng)能夠支持KVM。Tivoli重要功能有如下三個(gè):
??IBM Tivoli Monitoring:通過(guò)對(duì)候選XenServer歷史趨勢(shì)的分析,作出整合級(jí)別的優(yōu)先次序。此外,讓用戶(hù)對(duì)系統(tǒng)事件作出最佳反應(yīng)。
??Tivoli Provisioning Manager:為物理與虛擬軟硬件提供端到端的自動(dòng)功能。包括發(fā)現(xiàn)并追蹤虛擬資源、同時(shí)創(chuàng)建上百臺(tái)虛擬機(jī),以及自動(dòng)為linux服務(wù)器配置軟件。
??Tivoli 送達(dá) 自動(dòng)化技術(shù) Manager:自動(dòng)請(qǐng)求、部署、監(jiān)控并管理云計(jì)算服務(wù)。通過(guò)自動(dòng)化與對(duì)技能需求的降低,減少了服務(wù)交付成本,同時(shí)交付了高度標(biāo)準(zhǔn)化的IT服務(wù),節(jié)省了IT管理員的時(shí)間去完成高價(jià)值任務(wù)。
RHEV-M
RHEV-M(Red Hat Enterprise Virtualization-Management)使用圖形用戶(hù)界面管理物理與邏輯資源。允許管理員查看并管理虛擬機(jī)及其鏡像,還支持熱遷移,配置高可用性集群。隨著RHEV 3.0的發(fā)布,RHEV-M 3.0也已可用。
作為Red Hat虛擬化平臺(tái)的核心組件,RHEV-M管理控制臺(tái)還能運(yùn)行虛擬機(jī)的主機(jī)節(jié)點(diǎn)。可將RHEV-H hypervisor或帶有虛擬化授權(quán)的R紅帽企業(yè)Linux服務(wù)器配置為節(jié)點(diǎn)。這兩種類(lèi)型的節(jié)點(diǎn)使用KVM作為底層的hypervisor。RHEV-H hypervisor是設(shè)置RHEV節(jié)點(diǎn)的默認(rèn)選項(xiàng),它是裸機(jī)hypervisor,只包含了運(yùn)行虛擬機(jī)RHEL代碼的一個(gè)子集。正因?yàn)槿绱耍琑HEV-H主機(jī)的維護(hù)更加容易。此外,這些主機(jī)需要較少的補(bǔ)丁和維護(hù)就能確保其安全性。
RHEV-H基礎(chǔ)文件系統(tǒng)只有100多MB而且運(yùn)行在內(nèi)存中,這避免了對(duì)基礎(chǔ)鏡像的改變。專(zhuān)用的安全增強(qiáng)型Linux策略以及防火墻阻塞了所有流量,保證了RHEV-H節(jié)點(diǎn)的安全性。
RHEV管理器同樣還支持運(yùn)行KVM的RHEL主機(jī)。這一特性使在現(xiàn)有RHEL環(huán)境中部署RHEV更加容易。
此外,還有很多開(kāi)源工具可以管理KVM。比如,IBM、Red Hat等廠商加入到oVirt,這個(gè)開(kāi)源虛擬化項(xiàng)目提供功能豐富的服務(wù)器虛擬化管理系統(tǒng),為主機(jī)和子機(jī)提供高級(jí)功能,包括高可用性熱遷移存儲(chǔ)管理系統(tǒng)調(diào)度等。
參考資料 >