Xen的大名想必已经被众SA所熟知。Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
对于xen知识上的介绍,这里就不过多提及了,有需要的朋友自行去查找。接下来主要讲解如何使用yum快速的把xen虚拟化环境建立起来。
服务器环境:centos 5.6 X86_64
内存:越大越好
硬盘:如果单机虚拟化,越大越好;如果集群虚拟化,适中就好。
如果需要支持全虚拟化的功能,请在BIOS中开启cpu的VT支持。如此不开,则xen只能支持半虚拟化。
在64位版centos5.6中,是支持两种虚拟化的,kvm和xen,通过yum grouplist能看到两个组名kvm和Virtualization,其中Virtualization就是我们要安装的。
通过yum groupinfo Virtualization可以看到,这个包组中包含如下内容
Group: Virtualization
Description: Virtualization Support.
Mandatory Packages:
kernel-xen
xen
Default Packages:
gnome-applet-vm
libvirt
virt-manager
virt-viewer
Optional Packages:
Virtualization-en-US
接下来就可以执行
# yum groupinstall 'Virtualization'
来进行安装了。经过几分钟的等待,相关的包就都装好了,接下来需要改grub的配置
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-238.12.1.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-238.12.1.el5
module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.18-238.12.1.el5xen.img
title CentOS (2.6.18-238.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-238.el5.img
将红色部分由原来的1改成现在的0,然后保存退出,并重启服务器。
等服务器重启完成后,登陆到服务器中执行
# uname -a
Linux xen252 2.6.18-238.12.1.el5xen #1 SMP Tue May 31 14:02:29 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
看到,现在的服务器已经使用xen内核起来了。到此一个标准的xen虚拟化环境就准备完毕了,是不是很简单。
下面来简单装一个虚拟机试试。
# virt-install –prompt <--------提示的方式安装vm
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no <--------是否使用全虚拟化,这里选择不使用
What is the name of your virtual machine? test <---------虚拟机的名字
How much RAM should be allocated (in megabytes)? 512 <-----------给虚拟分配的内存大小,单位MB
What would you like to use as the disk (file path)? /root/test.vm <------虚拟机文件存放位置,这个文件可以不用提前创建,系统会自动创建
How large would you like the disk (/root/test.vm) to be (in gigabytes)? 10 <---------虚拟机硬盘文件大小,也就是在虚拟机中看到的磁盘空间大小,单位Gb
What is the install URL? http://10.4.8.1/centos/5/os/i386 <-------linux安装文件,支持nfs,ftp,http三种模式
回车后,系统会进入安装进程,首先下载kernel文件,然后启动kernel,最终会看到
hypervkvpd
8.1. KVM
virtio-SCSI
已改进 KVM 虚拟化存储栈,添加了 virtio-SCSI(SCSI 中基于 KVM 的存储构架)性能。virtio-SCSI 提供直接连接到 SCSI LUN 的能力,相对 virtio-blk 显著提高了伸缩性。virtio-SCSI 的优点是可处理成百个设备,而 virtio-blk 只能处理约 25 个设备,还会耗尽 PCI 插槽。
virtio-SCSI 现在可以继承目标设备功能,并可:
通过 virtio-scsi 控制器添加虚拟硬盘或 CD,
通过 QEMU sisi-block 设备绕过主机到虚拟机的物理 SCSI 设备,
允许在每个虚拟机中使用成百设备;相对于 virtio-blk 的 25 个设备上限是个提高。
virtio-scsi 在红帽企业版 Linux 6.3 中是作为技术预览引进,在红帽企业版 Linux 6.4 中已全面支持。最新的 virtio-win 驱动程序还支持 Windows 虚拟机(不包括 Windows XP)。
支持 Intel 下一代核心处理器
红帽企业版 Linux 6.4 添加了对 Intel 下一代核心处理器的 qemu-kvm 支持,这样 KVM 虚拟机就可以利用这个处理器提供的新功能,最重要的是:高级向量扩展 2(AVX2)、字节操作指令 1(BMI1)、字节操作指令 2(BMI2)、硬件锁定省略(HLE)、限制可转换内存(RTM)、进程上下文标识符(PCID)、验证进程上下文标识符(INVPCID)、整合乘加器(FMA)、大端移动指令(MOVBE)、F 片段指令和 G 片段基准指令(FSGSBASE)、超级模式执行防范(SMEP)、改进的 REP MOVSB/STOSB(ERMS)。
AMD Opteron 4xxxx 系列 CPU 支持
AMD Opteron 4xxx 系列处理器现在由 qemu-kvm 支持。这样就可以让 KVM 虚拟机识别这个处理器系列的新功能,比如:F16C 指令集、小端操作、字节操作指令 1(BMI1)大幅削减功能以及整合乘加(FMA)指令集。
使用 USB 转发通过 SPICE 进行虚拟机实时迁移
在红帽企业版 Linux 6.4 中,KVM 支持 USB 转发通过 SPICE 进行虚拟机实时迁移,同时保持现有 USB 设备为所有配置的设备重新定向。
使用 USB 设备进行虚拟机实时迁移
在红帽企业版 Linux 6.4 中,KVM 支持使用 USB 设备进行虚拟机实时迁移。支持的设备有:高级主机控制器接口(EHCI)和通用主机控制器接口(UHCI)本地转移以及模拟设备,比如存储设备、鼠标、键盘、集线器及其他。
已更新 QEMU 虚拟机代理
红帽企业版 Linux 6.4 现在完全支持 QEMU 虚拟机代理(由 qemu-guest-agent 软件包提供)。已将其更新至 upstream 版本 1.1,包括以下值得关注的改进和 bug 修复:
现在可使用
guest-suspend-disk
和guest-suspend-ram
命令挂起 RAM 或者 Windows 系统中的磁盘。现在可使用
guest-network-get-interfaces
查询 Linux 的网络接口信息。这个通信提供系统停滞支持改进和修复。
这个更新包括各种文档修复和小的改进。
半虚拟中断终止提示(PV-EOI)
运行红帽企业版 Linux 6.3 以及更老系统的主机和虚拟机在每个中断中都需要有两个 VM 出口(VM 到 Hypervisor 的上下文切换):一个是输入中断,另一个是给出中断终止信号。当主机和虚拟机系统都更新至红帽企业版 Linux 6.4 或者更新的系统后,它们就可以协商一个版虚拟中断终止功能,这样每个中断就只需要一个切换。这样在主机和虚拟机中同时使用红帽企业版 Linux 6.4 或者更新的系统时,用于中断负载的出口数量就会减半,比如通过 virtio 网络设备进入的网络流量。这样就导致主机 CPU 在此类负载中的用量的大幅降低。注:只改进了边缘中断,例如:使用等级中断的 e1000 联网就没有得到改进。
可配置音频传导
音频设备现在可在虚拟系统中被识别为 microphone
或者 speaker
(也可被识别为 line-in
和 line-out
)。音频失败现在可以在声音录制和音频中只接受某些类型输入虚拟程序中正常使用。
8.2. Hyper-V
包括微软 Hyper-V 驱动程序的虚拟机安装支持
在 Hyper-V 中对红帽企业版 Linux 6.4 集成的红帽企业版 Linux 虚拟机安装以及 Hyper-V 半虚拟设备支持可让用户在微软 Hyper-V hypervisor 顶层将红帽企业版 Linux 6.4 作为虚拟机运行。已在红帽企业版 Linux 6.4 提供的内核中添加了以下 Hyper-V 驱动程序和时钟资源。
网络驱动程序(
hv_netvsc
)存储驱动程序(
hv_storvsc
)服从 HID 的鼠标驱动程序(
hid_hyperv
)VMbus 驱动程序(
hv_vmbus
)util 驱动程序(
hv_util
)和 IDE 磁盘驱动程序(
ata_piix
)时钟资源(i386、AMD64/Intel 64:
hyperv_clocksource
)
红帽企业版 Linux 6.4 还包括对 Hyper-V 作为时钟资源支持,以及虚拟机 Hyper-V 密钥--值对(KVP)守护进程(hypervkvpd
)支持,它可通过 VMbus 向主机提供基本信息,比如虚拟机 IP、FQDN、操作系统名称以及操作系统发行本号。
8.3. VMware ESX
VMware PV 驱动程序
已将 VMware 版虚拟驱动程序更新至提供在 VMware ESX 中运行红帽企业版 Linux 6.4 时提供无缝开盒即用经验。已将 Anaconda 安装程序更新至在安装过程中列出驱动程序。已更新以下驱动程序:
网络驱动程序(
vmxnet3
)存储驱动程序(
vmw_pvscsi
)内存布尔值驱动程序(
vmware_balloon
)鼠标驱动程序(
vmmouse_drv
)视频驱动程序(
vmware_drv
)CentOS6.4发行注记中的虚拟化