虚拟化 频道

雁过留声:我的有关虚拟化一些经验想法

  【IT168 应用技巧】我对虚拟化技术比较有兴趣,因为充分发挥硬件的潜力是SA的奋斗目标,虚拟化是其中的一种途径。

  先后尝试过一些虚拟化技术,以下是我的想法,不一定完全准确,仅供参考:

  如果虚拟环境不依赖底层硬件,例如,不涉及磁盘存储、不用于创建数据库cluster群集、没有复杂的网络模拟,仅仅是应用软件模拟测试环境(web应用),那么,我想使用轻量级的虚拟技术,如vserver或openvz应该比较合适。

  此类轻量级虚拟技术并没有完全模拟硬件,只是把虚拟机通过chroot或jail的方式作为操作系统的一个进程来运行。一方面提供了guest虚拟机相互间隔离,保证了安全和软件部署互相不干扰,另一方面正是因为只是一个host主机中的进程,所以不需要单独划分内存(这会导致资源占用),可以充分利用实体服务器资源。所以可以在很低的硬件环境下运行大量的虚拟服务器。

  缺点是不能模拟磁盘存储,不适合建立共享存储的HA和cluster。同时不适合创建复杂的网络模拟,对于模拟LVS这类的网络群集可能比较困难。

  paravirtual虚拟是XEN最早提出的虚拟技术,通过修改过的guest虚拟机来实现硬件访问的加速。应该是目前虚拟化技术的性能较好的方式。代表技术是XEN虚拟,另外,vmware、virtualbox和kvm虚拟化技术也逐步在引入paravirtual虚拟技术。

  paravirtual虚拟对硬件没有特别要求,并不需要CPU支持硬件虚拟化(Intel和AMD的新型CPU技术),所以适合我这样的穷苦大众 - (我的笔记本是Dell Inspiron 640m,Centrino Duo双核芯片,但是不支持硬件虚拟化和超线程)

  性能较好,特别是网络和磁盘性能比目前完全虚拟化方式要高效。

  缺点是必须使用paravirtual化的特殊操作系统,例如Linux有paravirtual虚拟方式运行guest,但是windows却没有这样的特殊版本,所以,就我而言,只能在Dell 640m笔记本上运行paravirtual方式的Linux,但没有办法安装windows。

  如果对存储和网络有要求,如运行cluster,并且希望得到相对较高的性能。Paravirtual虚拟或许是较好的选择。

  完全虚拟化,也就是完整模拟主机硬件。所以,完全虚拟化技术对操作系统没有任何要求,几乎可以安装所有x86平台操作系统。代表技术是vmware和virtualbox。

  完全虚拟化通用性较好,可以模拟各种部署,例如部署cluster群集,以及模拟复杂的网络环境,特别适合大规模系统部署测试。

  可以安装windows操作系统,所有软件安装和使用都非常方便。

  缺点是性能不佳,特别是我目前有限的硬件环境下,完全虚拟化技术使用过vmware workstation, vmware server以及virtualbox。无一例外性能都非常差,guest大量消耗cpu资源。虽然通过一些手段可以减轻guest的资源浪费(如关闭windows上运行的杀毒软件,设置linux操作系统的内核参数),但是,总是不尽人意。或许,企业级别的硬件和企业级别的vmware结合起来,能够充分发挥性能,得到满意的虚拟化,不过,我没有这样的经验和体验的机会,所以持保留意见。

  硬件虚拟化是未来的发展方向,因为Intel和AMD已经加入了这个角逐,所以应该是非常好的发展前景。

  硬件虚拟化可以完全安装windows和Linux操作系统,没有paravirtual虚拟的guest操作系统定制限制,同时性能也比完全虚拟化要好。

  可以模拟复杂的系统部署,相信稳定性也是有所保证的。

  性能应该还不错,不过磁盘访问和网络吞吐的性能不如paravirtual。所以,目前在硬件虚拟化的kvm技术中,也部分引入了paravirtual技术来支持磁盘和网络访问。详细参考kvm官方网站。

  缺点是“钱”,至少目前不是所有硬件都支持,需要采购最新的硬件来实现。

 

0
相关文章