博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2779|回复: 2

虚拟化之KVM--RedHat最新虚拟化技术

[复制链接]
发表于 2014-5-27 08:13:31 | 显示全部楼层 |阅读模式
虚拟化之KVM--RedHat最新虚拟化技术

本节将详细介绍下KVM的安装和配置,KVM是红帽5.4发行版中推出的最新虚拟化技术,严格上说它是完全虚拟化的产品,VMware和vpc,virtualbox等也都是完全虚拟化的产品,而xen则是半虚拟化的产品,半虚拟化从性能上说要比完全虚拟化快很多,但xen有个缺点,它是重量级的虚拟机,修改了大量的内核源代码,它的guest机器必须理解xen化的硬件,也就是说xen上面只能运行红帽5以后的系统,后来红帽修改了发行版4中的一个版本,使其也能支持xen,而且Xen的完全虚拟化需要借助硬件CPU的VT技术,这个在inter cpu上叫vmx,在AMD cpu中叫svm, xen的完全虚拟化可以说是个失败品,运行效率甚至赶不上VMware,而且操作界面相当不友好,但这不能否认xen在半虚拟化世界的霸主地位,kvm是kernel virtual module的简写,其实kvm借鉴了xen在半虚拟化上的很多成就,虽然kvm是完全虚拟化的产品,但在关键的硬盘和网卡上支持半虚拟化virtio,在很大程度上提高了性能,kvm是轻量级虚拟化的代表,也需要硬件vt技术的支持,另外从操作界面上看,xen和kvm都是用virt-manager工具,差别不是很大,但不可以在同一台机器上同时安装且运行Xen和KVM;另外kvm在只能运行在红帽企业版5.4 64位系统上,同时需要关闭selinux …

1:使用yum库来安装kvm所需的软件,如果在安装系统的时候输入了安装序列号,可以勾选kvm,虚拟化来安装这些软件
[root@jsb-ylw-5052 ~]# yum -y install kvm kvm-* etherboot-roms-kvm.x86_64 virt-*

2:启动libvirtd服务,并保证下次自动启动
[root@jsb-ylw-5052 ~]# service libvirtd start   

Starting libvirtd daemon:                                  [ 确定 ]
[root@jsb-ylw-5052 ~]# chkconfig libvirtd on

3:桥接器的生成,这个在安装xen后,会自动创建桥接网络xenbr0,kvm在这点上似乎不够友好
[root@jsb-ylw-5052 ~]# cd /etc/sysconfig/network-scripts/  

[root@jsb-ylw-5052 network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@jsb-ylw-5052 network-scripts]# cat ifcfg-eth0

# nVidia Corporation MCP77 Ethernet
DEVICE=eth0
BOOTPROTO=static
HWADDR=90:E6:BA:70:B2:28
IPADDR=192.168.50.24
NETMASK=255.255.255.0
ONBOOT=yes
BRIDGE=br0   //将eth0桥接到br0
[root@jsb-ylw-5052 network-scripts]# cat ifcfg-br0

# nVidia Corporation MCP77 Ethernet
DEVICE=br0
BOOTPROTO=static
HWADDR=90:E6:BA:70:B2:28
IPADDR=192.168.50.24
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Bridge //br0为桥接

4:重启网络,测试网络连通性
[root@jsb-ylw-5052 network-scripts]# service network restart

[root@jsb-ylw-5052 network-scripts]# ifconfig

br0       Link encap:Ethernet HWaddr 90:E6:BA:70:B2:28

inet addr:192.168.50.24 Bcast:192.168.50.255 Mask:255.255.255.0

eth0      Link encap:Ethernet HWaddr 90:E6:BA:70:B2:28

inet6 addr: fe80::92e6:baff:fe70:b228/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
virbr0    Link encap:Ethernet HWaddr 00:00:00:00:00:00

inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
………………………………………………输出省略…………………………………………
[root@jsb-ylw-5052 network-scripts]# pingwww.g.cn-c 2

PINGwww.g.cn(203.208.39.99) 56(84) bytes of data.
64 bytes from bi-in-f99.1e100.net (203.208.39.99): icmp_seq=1 ttl=243 time=42.4 ms
64 bytes from bi-in-f99.1e100.net (203.208.39.99): icmp_seq=2 ttl=243 time=42.8 ms

5:划lvm,将虚拟机的硬盘存储设定为lvm,可以提高I/O提高性能, 装windows7需要15G左右的硬盘空间,可以使用lvextend命令扩展分区大小
[root@jsb-ylw-5052 ~]# fdisk -l /dev/sda |grep LVM

/dev/sda14          31385       32601     9775521   8e Linux LVM

[root@jsb-ylw-5052 ~]# pvcreate /dev/sda14

Physical volume "/dev/sda14" successfully created
[root@jsb-ylw-5052 ~]# vgcreate vol0 /dev/sda14

Volume group "vol0" successfully created  

[root@jsb-ylw-5052 ~]# lvcreate -L 9.32G -n win7 vol0
Rounding up size to full physical extent 9.32 GB
Logical volume "win7" created

6:开始安装,ID下面标注为qemu,表示kvm




如果下图中的完全虚拟化按钮是灰色的,那就说明你的硬件不支持VT技术,也有可能硬件支持,而BIOS却禁用了它,我的AMD cpu就是这种情况,通过命令:cat /proc/cpuinfo |grep -E 'vmx|svm' 可以查看硬件是否支持VT




前面如果没有做桥接器,下图中就不会出现桥接br0





安装完成后需要将默认的IDE硬盘和网卡换成virtio,并打上驱动程序,这样性能就可以提升很多了,驱动文件已上传至csdn,地址为:http://ylw6006.download.csdn.net/详细的安装步骤这里就不赘述了…

下面附上我在winxp下的virtio截图,可以看到硬盘和网卡已经驱动正常了……


4月9日,今天心血来潮,测试了下kvm的性能,下步准备在kvm上部署下ndb实验环境……

cpu: AMD Phenom(tm) 8750 Triple-Core Processor 3核
内存:4G
经测试,可以同时运行7台rhel5.4和一台WinXP,linux每台内存分配300M,WinXP为1G



 楼主| 发表于 2014-5-27 08:14:05 | 显示全部楼层
虚拟化技术:KVM旭日东升 谁在走向衰落?

在虚拟化领域,Xen和KVM是常用的两大虚拟化技术,这两大技术都是免费的开源管理程序,假如你是虚拟化用户,你会选择哪一个?然而,事实Xen已经没落,KVM正旭日东升。出现这种情形的根源是什么呢?

Xen带着荣耀而生

2003年,开源Xen通过最新的半虚拟化(Para-virtualization)技术在数据中心用户群体中流行开来。Xen成为开源虚拟化领域的一件大事。它免费,还开源,业界对其给予厚望,希望能与VMware抗衡,分得一杯羹。

Xen支持hypervisor和虚拟机互相通讯,而且提供在所有Linux版本上的免费产品,包括Red Hat Enterprise Linux和SUSE Linux Enterprise Server。

Xen最重要的优势在于半虚拟化,此外未经修改的操作系统也可以直接在xen上运行(如Windows),能让虚拟机有效运行而不需要仿真,因此虚拟机能感知到hypervisor,而不需要模拟虚拟硬件,从而能实现高性能。Xen与系统结合紧密、占用的资源少而知名,因此特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。

目前最新版本是2011年4月发布的Xen 4.1。具有支持大型系统(255 以上处理器和 1GB/2MB超级页面的支持)、新的API内存访问机制与支持X86的高级矢量扩展(AVX)等新功能。

KVM因时势而造

KVM(Kernel-based Virtual Machine,基于内核的虚拟机),比Xen晚生四年,完全内置于Linux。IT管理员只需几个内核模块的支持就能安装KVM,而Linux内核都支持这种hypervisor。

KVM作为一个轻量级的虚拟化管理程序模块,利用Linux做大量hypervisor能做的事情,如任务调度、内存管理与硬件设备交互等。

KVM具有高性能、高扩展与高安全性特点,适合运行Linux或Windows的环境,在异构环境也能很好的进行管理,而在虚拟化桌面方面,可以提供可靠的可扩展的镜像服务器。

KVM力压Xen

两者都深深依赖于Linux。但是Xen在早期是不受Linux内核支持的,要实现hypervisor功能,IT管理员需要把开源Xen作为主流内核的补丁来安装,甚至安装后不能对内核做升级,否则会破坏Xen的功能。难与Linux内核集成的这个缺陷导致后来者KVM一出现就备受关注。

而之前支持Xen的厂商也在改变风向。业内知名Linux厂商红帽在Red Hat Enterprise Linux(RHEL)5时还采用的是Xen hypervisor,在RHEL 6中就移除了所有Xen相关组件,只用KVM,并且提供Xen到KVM虚拟机迁移工具。另一家Linux厂商Ubuntu则明确表示选择KVM作为其hypervisor。

经过漫长的改进,开源Xen终于获得了Linux的完全支持,Xen提供了成熟的虚拟化功能,包括通过半虚拟化提供最优化的虚拟化操作系统。但是来得太晚已经错过了提高市场占有率的机会。在Xen努力靠近Linux内核的这些年,KVM和其他产品在技术、功能和市场上已经获得进展。

如果坚持在Linux平台上使用开源Xen,SUSE Linux Enterprise Server和Oracle将是唯一的选择。

Oracle VM这个基于Xen的虚拟化平台很难直接用于Oracle现有的用户群。甲骨文在企业Linux领域只是小玩家,对Xen的支持也很有限。

评论:

随着KVM的旭日东升,KVM受到了各大厂商的欢迎,各大厂商和组织都在极力推广KVM,使得得Xen在开源虚拟化市场上备受“冷落”,Xen这个成熟的平台在可用资源、可管理性、性能等方面的优势在快速发展的KVM面前也略显暗淡。随着时间的推移,虚拟化技术后来者KVM将会超越Xen,拥有开源虚拟化市场,在某种程度上,这种趋势是不可逆转的。


 楼主| 发表于 2014-5-27 08:15:16 | 显示全部楼层
RHEL6 KVM虚拟化配置总结

2010-12-28 15:05:16
标签:虚拟化
休闲
kvm
职场
rhel6
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。

  KVM是当前虚拟化领域非常热门的一个话题和技术,之前在RHEL5.4平台上整理过一篇安装日志,这次在RHEL6上面“故技重施”却发现了许多问题,本着锲而不舍的研究精神,已经将大部分问题解决,遗留的问题,估计是安装环境导致,后期会继续研究考证,现将过程记录如下:

由于在安装操作系统的时候因为图方便,把所有虚拟化的包全部勾选了,如下图所示:


点击“应用程序”--“虚拟系统管理器”,若出现如下提示,需要启动libvirtd进程


点击“新建虚拟机”按钮,出现如下提示,需要安装qemu主程序


[root@rhel6 ~]# wget
http://packages.sw.be/qemu/qemu-0.12.4-1.el6.rf.x86_64.rpm    //下载qemu主程序包
[root@rhel6 ~]# vi /etc/yum.repos.d/base.repo                                      //配置yum仓库地址
[dag]
name=dag
baseurl=http://apt.sw.be/redhat/el6/en/x86_64/dag/
gpgcheck=0
enable=1

[raw]
name=raw
baseurl=http://rawhide.redhat.com/pub/pub/redhat/rhel/beta/6/optional/x86_64/os
gpgcheck=0
enable=1

[root@rhel6 ~]# yum -y localinstall qemu-0.12.4-1.el6.rf.x86_64.rpm --nogpgcheck  //安装出现下列错误提示,需要删除qemu-img包
Transaction Check Error:
  file /usr/bin/qemu-img from install of qemu-0.12.4-1.el6.rf.x86_64 conflicts with file from package qemu-img-2:0.12.1.2-2.113.el6.x86_64
  file /usr/bin/qemu-io from install of qemu-0.12.4-1.el6.rf.x86_64 conflicts with file from package qemu-img-2:0.12.1.2-2.113.el6.x86_64
  file /usr/share/man/man1/qemu-img.1.gz from install of qemu-0.12.4-1.el6.rf.x86_64 conflicts with file from package qemu-img-2:0.12.1.2-2.113.el6.x86_64

Error Summary

[root@rhel6 ~]# yum -y remove qemu-img


[root@rhel6 ~]# yum -y localinstall qemu-0.12.4-1.el6.rf.x86_64.rpm --nogpgcheck

[root@rhel6 ~]# service libvirtd status
libvirtd: 未被识别的服务

[root@rhel6 ~]# yum -y install libvirt   //重新安装libvirt,因为之前处在依赖关系,libvirt程序被自动卸载
[root@rhel6 ~]# service libvirtd start
启动 libvirtd 守护进程:[确定]
[root@rhel6 ~]# chkconfig libvirtd on


配置桥接网卡,参考这篇文章:
http://www.techotopia.com/index.php/Creating_an_RHEL_6_KVM_Networked_Bridge_Interface

但我在配置桥接网卡的时候遇到了个问题,目前还尚未解决,不过我推测应该和我的实验环境有关,因为之前配置3D桌面的时候从新生成过initrd.img这个文件,可能因为这个原因导致某些核心模块在启动的时候未能被内核成功加载,本打算使用pxe方式在KVM上自动安装一个rhel5.4,因为桥接没有配置成功,所以只能退而求其次,使用本地iso镜像安装一个demo,具体的报错信息截图如下,出现这种情况后,一旦配置好桥接网卡,就会出现ping不同服务器的情况,蛮郁闷的,这个问题有待后续研究


创建和安装虚拟机


总结:目前RHEL6上的KVM技术还不算很成熟(也可能是由于笔者水平有限的缘故,但至少成型的文档很少)若要在生产环境中使用虚拟化,建议采用5.4版本;若要在RHEL6上配置虚拟化,建议在安装完操作系统后再配置,否则也可能遇到与笔者类似的问题;同时建议不要在RHEL6上启用3D技术,尤其是在生产环境,毕竟这是企业版。当然,如果你喜欢,也可以像笔者这样进行疯狂的测试,但出现问题的概率就会大许多…


您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-4-25 22:01 , Processed in 0.093423 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表