KVM虛擬機

KVM虛擬機

Kernel-based Virtual Machine的簡稱,是一個開源的系統虛擬化模組,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對於Xen,其核心源碼很少。KVM目前已成為學術界的主流VMM之一。 KVM的虛擬化需要硬體支持(如Intel VT技術或者AMD V技術)。是基於硬體的完全虛擬化。而Xen早期則是基於軟體模擬的Para-Virtualization,新版本則是基於硬體支持的完全虛擬化。但Xen本身有自己的進程調度器,存儲管理模組等,所以代碼較為龐大。廣為流傳的商業系統虛擬化軟體VMware ESX系列是基於軟體模擬的Full-Virtualization。

基本信息

安裝方法

一、 安裝準備

1.確定機器有VT

終端輸入命令: grep vmx /proc/cpuinfo (INTEL晶片)

grep svm /proc/cpuinfo (AMD晶片)

不知道晶片的生產廠商則輸入:egrep '(vmx|svm)' /proc/cpuinfo

如果flags: 里有vmx 或者svm就說明支持VT;如果沒有任何的輸出,說明你的cpu不支持,將無法成功安裝KVM虛擬機。

2. 確保BIOS里開啟VT

Intel(R) Virtualization Tech [Enabled]

如有必要,還需在BIOS中開啟VT-d

3. 確保核心版本較新,支持KVM

用uname -r查看核心版本,如果在2.6.20以下的linux版本,需升級核心。

二、安裝KVM

下面就Ubuntu和CentOS下安裝使用KVM虛擬機做介紹:

Ubuntu 中用guest登入,安裝KVM的命令為:

sudo apt-get install kvm qemu qemu-kvm virt-manager kernel-package linux-source kqemu-source build-essential

kvm安裝成功後會有/dev/kvm,如果無需圖形管理器,只需要安裝前三個即可。

再來查看下KVM是否安裝成功,執行:virsh -c qemu:///system list

如果輸入結果像下面這樣的,那么成功了:

Connecting to uri: qemu:///system

Id Name State

----------------------------------

注1:CentOS中安裝時,先要選擇Selinux為enable,使用命令

#system-config-securitylevel-tui

可查看或修改selinux的狀態。

注2: CentOS中用root登入時則安裝命令為:

yum install kvm kmod-kvm qemu

再裝入kvm模組:modprobe kvm-intel (Intel機器) 或者 modprobe kvm-amd (amd機器)

注3:可以用以下命令來檢查是否裝入kvm模組:

/sbin/lsmod | grep kvm

如果輸出關於kvm版本的信息則已裝入kvm模組

注4: 安裝好後,可使用qemu-kvm命令,輸入該命令,如果系統顯示未知的命令,可查看/usr/libexec中是否有qemu-kvm執行檔,如果有,將其拷貝到/bin目錄下即可。如果確實按照上面的步驟進行了,卻在/bin,/usr/libexec,/usr/bin,/usr/sbin里都找不到qemu-kvm執行檔,可執行以下命令:

#yum provides "*/qemu-kvm"

注5:安裝新核心後,可能有部分軟體版本過低,不兼容。比如firefox因版本過低,無法啟動。

CentOS下可使用如下命令更新該軟體(以firefox為例):

#yum update firefox

三、在KVM下安裝虛擬機

1.用QEMU創建磁碟鏡像

sudo qemu-img create –f qcow windows.img 8G

註:在CentOS和新版Qemu中為:qemu-img create –f qcow2 windows.img 8G

2.使用KVM安裝Guest VM

光碟安裝:

sudo kvm –localtime –cdrom /dev/cdrom -m 512 -boot d win2.img

硬碟安裝:

sudo kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –clock –rtc –no-acpi

註:官方推薦使用 -no-acpi 參數,原因是 qemu/kvm不太支持,可能造成 cpu 的占用偏高。

注1:CentOS下硬碟安裝為 qemu-kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –no-acpi 即需要去掉了-clock rtc選項,否則會出現無法初始化時鐘。

注2:CentOS quest mouse: export SDL_VIDEO_X11_DGAMOUSE=0可解決VM中無法識別USB滑鼠的問題。

注3: 安裝win 7時,不能使用-no-acpi選項。

使用

KVM啟動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下,請去掉df=h

-m 512 分配512MB的記憶體

-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=tapo,script=no

使用網路,並連線到一個存在的網路設備tap0,注意mac地址一定要自己編一個,特別是如果你虛擬了多個系統並且要同時運行的話,不然就MAC衝突了,在KVM-87下去掉df=h

-boot d 從光碟啟動 (從鏡像啟動也是用這個。從硬碟啟動則為 -boot c )

-smp 2 smp處理器個數為2個,如果你是4核處理器,後面的數字就為4

-clock rtc

使用rtc時鐘(如果不開啟此選項,WINXP可能會很慢)

KVM管理工具

KVM虛擬機 KVM虛擬機

能夠管理KVM的工具很多。首先是單個資源的基礎虛擬化管理,有開源的虛擬化工具集libvirt,通過命令行接口提供安全的遠程管理,可管理單個系統。

然後是管理全部運行KVM的多個伺服器,有兩種:用Red Hat Enterprise Virtualization-Management,即RHEV-M(管理多個RHEV-H系統)和IBM Systems Director VMControl(管理多個RHEL系統)。

最後有Tivoli產品。包括Tivoli Provisioning Manager、Tivoli Service Automation Manager與Tivoli Monitoring for Virtual Servers。

IBM Systems Director VMControl

IBM Systems Director VMControl既能實現異構多平台管理,也能實現異構多系統管理。VMControl是IBM平台管理方案Systems Director的一部分,覆蓋了虛擬化管理三個關鍵領域:虛擬化、管理與自動化。VMControl也可作為獨立的產品外掛程式使用。

前不久,IBM發布了新版VMControl 2.4,可管理KVM與其他hypervisor。VMControl即能管理物理資源也能管理虛擬資源,還能管理異構hypervisor。用戶在現有運行VMware的環境中再安裝KVM,管理也無壓力。

VMControl 2.4允許跨平台跨hypervisor的鏡像管理,降低了複雜性、提升了生產效率。該軟體目前支持IBM PowerVM、z/VM VMware、Microsoft Xen 與KVM伺服器虛擬機技術。主要分為三個版本:

•VMControl Express Edition:輕鬆管理虛擬機。發現虛擬化資源,了解系統運作情況,並能虛擬工作負載。包括查看、創建、修改與刪除虛擬機;開啟、停止與遷移虛擬機,以及管理多hypervisor。

•VMControl Standard Edition:側重管理虛擬機鏡像。添加對虛擬鏡像庫的完整支持,包括創建、捕捉、輸入和部署鏡像。自動化資源配置並能移動資源。

•VMControl Enterprise Edition:自動化工作負載配置。創建並啟用系統池管理,自動移動工作負載,完全支持KVM。

Tivoli產品系列

Tivoli是IBM Systems Director與VMControl的有益補充。提供高級別的端到端管理功能。主要的Tivoli產品已經能夠支持KVM。Tivoli重要功能有如下三個:

•IBM Tivoli Monitoring:通過對候選虛擬化伺服器歷史趨勢的分析,作出整合級別的優先次序。此外,讓用戶對系統事件作出最佳反應。

•Tivoli Provisioning Manager:為物理與虛擬軟硬體提供端到端的自動功能。包括發現並追蹤虛擬資源、同時創建上百台虛擬機,以及自動為Linux伺服器配置軟體。

•Tivoli Service Automation Manager:自動請求、部署、監控並管理雲計算服務。通過自動化與對技能需求的降低,減少了服務交付成本,同時交付了高度標準化的IT服務,節省了IT管理員時間去完成高價值任務。

RHEV-M

RHEV-M(Red Hat Enterprise Virtualization-Management)使用圖形用戶界面管理物理與邏輯資源。允許管理員查看並管理虛擬機及其鏡像,還支持熱遷移,配置高可用性集群。隨著RHEV 3.0的發布,RHEV-M 3.0也已可用。

作為紅帽虛擬化平台的核心組件,RHEV-M管理控制台還能運行虛擬機的主機節點。可將RHEV-H hypervisor或帶有虛擬化授權的R紅帽企業Linux伺服器配置為節點。這兩種類型的節點使用KVM作為底層的hypervisor。RHEV-H hypervisor是設定RHEV節點的默認選項,它是裸機hypervisor,只包含了運行虛擬機RHEL代碼的一個子集。正因為如此,RHEV-H主機的維護更加容易。此外,這些主機需要較少的補丁和維護就能確保其安全性。

RHEV-H基礎檔案系統只有100多MB而且運行在記憶體中,這避免了對基礎鏡像的改變。專用的安全增強型Linux策略以及防火牆阻塞了所有流量,保證了RHEV-H節點的安全性。

RHEV管理器同樣還支持運行KVM的RHEL主機。這一特性使在現有RHEL環境中部署RHEV更加容易。

此外,還有很多開源工具可以管理KVM。比如,IBM、紅帽等廠商加入到oVirt,這個開源虛擬化項目提供功能豐富的伺服器虛擬化管理系統,為主機和子機提供高級功能,包括高可用性熱遷移存儲管理系統調度等。

相關詞條

相關搜尋

熱門詞條

聯絡我們