KVM 虚拟机在 IBM System x 上应用

来源:developerWorks 中国 作者:郭 晋兵
  
虚拟化技术已经成功的被用于基于 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 原理图

一个典型的 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 网络连接,具体见 客户机网络设置

时间:2009-07-31 13:17 来源:developerWorks 中国 作者:郭 晋兵 原文链接

好文,顶一下
(2)
100%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量