1. 程式人生 > >Redhat/CentOS6.2 x86系統KVM虛擬機器安裝過程詳解

Redhat/CentOS6.2 x86系統KVM虛擬機器安裝過程詳解

什麼是 KVM ?

KVM 是指基於 Linux 核心的虛擬機器(Kernel-based Virtual Machine)。 2006 年 10 月,由以色列的Qumranet 組織開發的一種新的“虛擬機器”實現方案。 2007 年 2 月釋出的 Linux 2.6.20 核心第一次包含了 KVM 。增加 KVM 到 Linux 核心是 Linux 發展的一個重要里程碑,這也是第一個整合到 Linux 主線核心的虛擬化技術。

KVM 在標準的 Linux 核心中增加了虛擬技術,從而我們可以通過優化的核心來使用虛擬技術。在 KVM 模型中,每一個虛擬機器都是一個由 Linux 排程程式管理的標準程序,你可以在使用者空間啟動客戶機作業系統。一個普通的 Linux 程序有兩種執行模式:核心和使用者。 KVM 增加了第三種模式:客戶模式(有自己的核心和使用者模式)。

一個典型的 KVM 安裝包括以下部件:

  • 一個管理虛擬硬體的裝置驅動,這個驅動通過一個字元裝置 /dev/kvm 匯出它的功能。通過 /dev/kvm每一個客戶機擁有其自身的地址空間,這個地址空間與核心的地址空間相分離或與任何一個正執行著的客戶機相分離。
  • 一個模擬硬體的使用者空間部件,它是一個稍微改動過的 QEMU 程序。從客戶機作業系統執行 I/O 會擁有QEMU 。 QEMU 是一個平臺虛擬化方案,它允許整個 PC 環境(包括磁碟、顯示卡(圖形卡)、網路裝置)的虛擬化。任何客戶機作業系統所發出的 I/O 請求都被攔截,並被路由到使用者模式用以被 QEMU 過程模擬模擬。

CentOS6.2 x86上安裝KVM功能模組步驟

以下操作都以root使用者進行。

1、檢查CPU資訊

KVM 需要有 CPU 的支援(Intel VT 或 AMD SVM),在安裝 KVM 之前檢查一下 CPU 是否提供了虛擬技術的支援。

基於 Intel 處理器的系統,執行 grep vmx /proc/cpuinfo 查詢 CPU flags 是否包括 vmx 關鍵詞

# grep vmx /proc/cpuinfo

flags : fpu vme de pse tsc msr pae mce

 cx8 apic sep  mtrr pge mca cmov pat
 pse36 clflush dts acpi mmx
 fxsr sse sse2 ss ht tm pbe syscall nx lm
 constant_tsc arch_perfmon pebs bts
 rep_good pni monitor ds_cpl
 vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
 flags : fpu vme de pse tsc msr pae mce
 cx8 apic sep mtrr pge mca cmov pat
 pse36 clflush dts acpi mmx fxsr sse sse2
 ss ht tm pbe syscall nx lm constant_tsc
 arch_perfmon pebs bts rep_good pni
 monitor  ds_cpl vmx est tm2 ssse3 cx16

  xtpr lahf_lm ida

基於 AMD 處理器的系統,執行 grep svm /proc/cpuinfo 查詢 CPU flags 是否包括 svm 關鍵詞

# grep svm /proc/cpuinfo

   注 : 一些廠商禁止了機器 BIOS 中的 VT 選項 , 這種方式下 VT 不能被重新開啟。

注意:/proc/cpuinfo 僅從 Linux 2.6.15(Intel) 和 Linux 2.6.16(AMD) 開始顯示虛擬化方面的資訊。請使用 uname -r 命令查詢您的核心版本。如有疑問,請聯絡硬體廠商。

2、檢查BIOS,確保BIOS裡開啟VT選項:

Intel(R) Virtualization Tech [Enabled]

如有必要,還需在BIOS中開啟VT並重啟機器。

查詢:

yum --disablerepo=\* --enablerepo=c6-media groupinfo Virtualization

yum --disablerepo=\* --enablerepo=c6-media groupinfo 'Virtualization Client'

安裝:

yum --disablerepo=\* --enablerepo=c6-media groupinstall Virtualization

yum --disablerepo=\* --enablerepo=c6-media groupinstall 'Virtualization Client'

group的名字不分大小寫。

Virtualization各工具包內容如下表所示:


主機能聯網際網路的,直接用指令:

yum groupinstall Virtualization 'Virtualization  Client'

來完成安裝。

較低版本的系統,如Redhat/CentOS5.6的,使用指令:

yum --disablerepo=\* --enablerepo=c5-media groupinstall kvm

3、安裝api支援

yum --disablerepo=\* --enablerepo=c6-media install libvirt
service libvirtd start

4、驗證是否已經載入KVM模組

# lsmod | grep kvm
kvm_intel              50380  3
kvm                   305081  1 kvm_intel

#ll /dev/kvm
crw-rw-rw-+ 1 root kvm 10, 232 May  4 16:06 /dev/kvm

至此,主機的KVM功能已經具備,微笑可以安裝客戶作業系統了。

安裝客戶機作業系統

安裝客戶機作業系統兩種方式,一種通過母機GUI的虛擬機器管理程式virt-manager,一種通過母機命令列virt-install工具。

命令列方式:

#virt-install \
    --name=v1
    --ram=512
    --vcpus=1
    --cdrom=/media/CentOS_6.2_final.iso
    --os-type=rhel6  
    --disk /var/lib/libvirt/imgages/v1.img,size=8,bus=virtio,cache=writeback  
    --network bridge=br0,model=virtio

下面對上面的命令進行解讀

--name    給虛擬機器起個名字
--ram     分配給虛擬機器的記憶體,單位MB
--vcpus   分配給虛擬機器的cpu個數
--cdrom   指定安裝檔案的全路徑
--disk    指定虛擬機器img檔案路徑,如果虛擬機器使用lvm分割槽,這裡就指向到lvm的分割槽就行
    size      虛擬機器檔案大小,單位GB
    bus       虛擬機器磁碟使用的匯流排型別,為了使虛擬機器達到好的效能,這裡使用virtio
    cache     虛擬機器磁碟的cache型別
--network bridge    指定橋接網絡卡
    model  網絡卡模式,這裡也是使用效能更好的virtio
--graphics         圖形引數

可以用man virt-install 指令檢視幫助,最後有很多示例。

GUI方式:

開啟選單Applications->System Tools->Virtual Machine Management



點選圖示Create a new virtual machine

按照順序設定虛擬機器名稱、CPU,記憶體,磁碟,網路等。

五個設定步驟完成後,仍然可以修改虛擬機器的配置資訊。

至此,整個虛擬機器安裝過程完成。

基於KVM建立的虛擬機器相關檔案預設存放位置
kvm虛擬機器配置檔案位置:/etc/libvirt/qemu/     
kvm虛擬機器檔案位置:var/lib/libvirt/images/