KVM 虛擬機在 IBM System x 上應用

火星人 @ 2014-03-12 , reply:0


  
虛擬化技術已經成功的被用於基於 POWER 構架的 IBM Power 伺服器。如何在基於 x86 處理器 IBM System x 系列伺服器應用虛擬化技術呢?最新的 Intel VT(Virtualization Technology)和 AMD SVM(安全虛擬機 , Secure Virtual Machine,也叫 AMD-V)從硬體上支持了虛擬技術。 KVM 正是利用了 x86 硬體虛擬化特性,實現了虛擬機性能的最優化。本文詳細介紹了在 IBM System x3500 上使用 SLES11 和 KVM 虛擬化技術,如何安裝配置了多台虛擬機,並對虛擬機的性能做了初步的優化。

IBM System x 系列伺服器基於 Intel 和 AMD 的 x86 構架,支持 Windows 和 Linux 平台。

SLES(Suse Linux Enterprise Linux)是 Novell 公司開發的針對企業級應用的操作系統。可以運行在 IBM x, p ,z 系列伺服器上。 Novell 於 2009 年 4 月發布了 SUSE Linux Enterprise 11,基於 Linux kernel 2.6.27,已經支持了 KVM,並且還收錄了 KVM 的用戶管理程序 kvm-qemu 。

什麼是 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 增加了第三種模式:客戶模式(有自己的內核和用戶模式)。圖 1 展示了 KVM 虛擬化的原理圖。


圖 1. KVM 原理圖

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

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




KVM 在 IBM System x 上的安裝

如何確認處理器含有 Intel VT 或 AMD-V 技術

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

linux-gwsa:~ # 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 關鍵詞

linux-gwsa:~ # grep svm /proc/cpuinfo

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

/proc/cpuinfo 僅從 Linux 2.6.15(Intel) 和 Linux 2.6.16(AMD) 開始顯示虛擬化方面的信息 . 請使用 uname -r 命令查詢您的內核版本。

 
 如有疑問 , 請聯繫硬體廠商。

運行 KVM,你需要一台運行 2.6.20 以上 Linux 內核的 Intel 處理器(含 VT 虛擬化技術)或 AMD 處理器(含 SVM 安全虛擬機技術的 AMD 處理器)。下面將詳細介紹如何在裝有 SLES11(kernel-2.6.27.19)的 IBM System x3550 上安裝和配置基於 KVM 的虛擬機。

硬體環境

本文的實例中,硬體選用了 IBM System x3500,處理器是 Intel 至強 4 核 X5160,最高主頻 3.00GHz,內存 16GB,存儲為 8 塊 73GB 高速硬碟,集成雙千兆乙太網卡。虛擬化可以使這些資源得到充分的利用。


清單 1. 硬體配置
machine type: 7977-99B4314    CPU :  Intel(R) Xeon(R) CPU  5160  @ 3.00GHz  x4    Memory:    16GB    Hard disk:    73GB x8    Network:      eth0 (dhcp)                 eth1 (static IP)9.123.99.193

軟體環境

Novell 於 2009 年 4 月發布了 SUSE Linux Enterprise 11,它可運行於各種領先的硬體平台,包括 x86-32、x86-64、IBM POWER 和 IBM System z 。 SUSE Linux Enterprise 11 基於 Linux kernel 2.6.27,已經支持了 KVM,並且還收錄了 KVM 的用戶管理程序 kvm-qemu 。





清單 2. 軟體配置
操作系統選用支持 KVM 的 SLES11:   linux-gwsa:~ # uname -a    Linux linux-gwsa 2.6.27.19-5-default #1  \n    SMP 2009-02-28 04:40:21 +0100 x86_64 x86_64 x86_64 GNU/Linux     已經載入的 kvm 模塊:   linux-gwsa:/srv/ovs/images # lsmod | grep kvm    kvm_intel             49104          1    kvm                   172488         1            kvm_intel     用戶空間的模擬器 qemu-kvm:   linux-gwsa:~ # rpm -qa | grep kvm-78-13.8    kvm-78-13.8      KVM 在 SLES11 上的補丁:   linux-gwsa:~ # rpm -qa | grep kvm-kmp-default-78_2.6.27.19_5-13.8    kvm-kmp-default-78_2.6.27.19_5-13.8     橋接客戶機網路的工具包:   linux-gwsa:~ # rpm -qa | grep bridge    bridge-utils-1.4-23.16

配置客戶機的參數設置

使用 qemu-kvm 安裝客戶機之前,需要配置客戶機的虛擬硬體參數:


表 1. qemu-kvm 的參數說明
qemu-kvm 參數 參數說明 參數實例
-mmegs 分配給客戶機的內存 (MB 為單位 ) 0
-smpn 模擬包含 n 個處理器的 SMP system(對稱多處理器系統) 4
-hdafile 指定 file 文件作為客戶機的存儲鏡像 hard disk 0
這裡 file 可以是一個文件名,也可以是硬碟分區。區別見 Tips:調整客戶機的鏡像文件
/home/kvm.img
-net nic[,vlan=n][,macaddr=addr][,model=type] 為客戶機創建虛擬的 NIC(Netowrk Interface Card 網路介面設備), 設置 MAC 地址,虛擬網卡類型等 model=e1000,
macaddr=00:16:3e:51:fb:ce
-net tap[,vlan=n][,fd=h][,ifname=name][,script=file] 為客戶機設置 TAP 網路連接,具體見 客戶機網路設置




[火星人 via ] KVM 虛擬機在 IBM System x 上應用已經有178次圍觀

http://www.coctec.com/docs/linux/show-post-68802.html