[虚拟技术]在CentOS5.4上试用kvm和xen

FROM:

http://www.caishu.name/content/%E5%9C%A8centos54%E4%B8%8A%E8%AF%95%E7%94%A8kvm%E5%92%8Cxen

以前玩过一段xen,最近看RHCE的资料,好像必考的内容包括了kvm,所以就找了些时间温故而知新的试用了一下xen和kvm,都是在CentOS5.4上。而正是玩这个,弄得我修了一天的分区表:)
我很久很久以前,用过vmware,后来改用了vbox,再后来用过一段xen,最近因为考试的原因开始接触kvm。既然说到这几个,就简单对比一下,也 是我试用的一些结论吧。vmware好久不用了,所以也没有什么感觉了;实际上我有些年了,努力的尝试尽可能少的用D版,希望某天D版消失时候我不至于无 所适从。vbox,对于个人和教育而言是免费的,如果在windows下想虚拟机的话,又如我一般回避D版的话,那么vbox是个不错的选择。容易上手而 且性能不错。我学RHCE一直是在vbox+Cent的环境学习的。xen也是比较成熟的,配套工具易用而且RH系的都有图形界面(当然这个图形界面也可 以用在kvm和qemu),我最推荐xen的用途是,如果你想用linux来虚拟linux,那么xen的para虚拟模式,性能非常非常好。实际上,如 果让我部署大规模的linux集群的话,我就会选择linux+xen+linux的模式,这样可以集成稳定性,可扩展性和可迁移性。如果在linux下 想虚拟windows,那么我首推kvm。另外xen和kvm都可以选用硬件支持的虚拟驱动,我都没有尝试;等有一天足够稳定了,多数人都高调的提出这个 时候,我再尝试:)
回头主题kvm上。kvm是一组内核的模块,是几个.so文件。加载了之后,会出现/dev/kvm这个虚拟的设备,而实际的虚拟机,就是通过这个设备来 跟内核打交道的。在这几个.so文件之外呢,是一个叫做qemu-kvm的可执行程序。kvm是用了qemu的程序外框,然后需要虚拟的部分,来跟 /dev/kvm来交互。所以实际kvm是这么几个层面:最底层是内核的模块;之外是qemu的可执行界面;再外边是virtlib的GUI,当 然,virtlib也有command line的。。。看上去有些绕嘴,那么还是看看具体怎么做的吧。

  1. 首先我安装系统,选择了base+virtulization(kvm)。默认的virtulization是没有选择kvm而是用了xen的,为了安装kvm,我没有选xen,而是在kvm上打勾勾的。
  2. 在安装完成重启之后,运行egrep 'vmx|svm' /proc/cpuinfo,如果有内容显示出来,那么就是cpu支持虚拟化,否则就不要费劲了,kvm必须用支持虚拟化的cpu。
  3. yum install kvm kmod-kvm kmod-kvm-APE。实际是不需要yum install kvm的,因为初始安装选择的包括了这个。Cent的文档没有提到kmod-kvm-APE。如果x86 32位的系统,使用超过3G内存,用了APE内核,那么这个是要装的。
  4. 到这里,就包括了内核的模块,还有qemu-kvm这个核心程序了。实际上,cent的内核更新不是很快,目前到6.18,而很多发行版都是高于 6.20的,在6.20以后,kvm就是标准核心了。不知道kvm怎么这么大能量,这么快就进了核心。xen可是好多年了阿,也还没有进入正选内核。到这 里,就可以qemu-kvm -hda [image]的来运行kvm了。这个时候,创建虚拟盘用dd, 比如dd if=/dev/zero of=windows.img bs=1G count=10,就是做一个10G的虚拟盘。
  5. 如果觉得这些不好用,那么就装qemu,yum install qemu,qemu的很多工具可以给kvm来用,比如qemu-img就可以用来创建虚拟磁盘。kvm跟qemu的关系,kvm使用了qemu的人机交互 界面,简单的说,qmeu-kvm跟qemu这两个程序,他们支持几乎一模一样的命令行语法。用qemu的语法创建一个虚拟机,使用qemu-kvm就可 以直接创建kvm的虚拟机了。qemu的手册说可以使用--support-kvm来启用kvm支持,但是在cent的发布中,还是用qemu-kvm不 带这个选项来支持kvm的。
  6. 如果觉得这些还不好用,那就装libvirt和virt-manager,这样就有GUI了,跟其他虚拟机的界面就非常象了。

太晚了,睡觉了,cent的官方文档是个好得起点http://wiki.centos.org/HowTos/KVM,不过说实话,kvm的文档 整体感觉零碎。到目前我觉得从文档的角度看,kvm不太适合“玩一下”的人,因为顺利地时候,非常简单的命令就可以创建运行虚拟机,但是不顺利的时候,文 档不太好找。另外PS一下现在RH的文档,感觉就像大学生的毕设论文,好像靠贴图来充页数一样。
另外,qemu-kvm有好多选项,比如可以开telnet,通过telnet来管理虚拟机(注意,不是telnet上虚拟机管理,真绕嘴阿);比如可以 开vnc;比如。。。简直太多了,qmeu有的他都有。还是看文档吧:)另外kvm的一个最大的好处,它是一个linux的进程,可以用kill之类的进 程管理工具来管理。
睡觉睡觉睡觉了,明天还上班呢:)

你可能感兴趣的:(centos)