虚拟化技术虽然被大家谈得很热,但是真正什么是虚拟化技术,很多人还不了解,这导致了人们对虚拟化的误解,影响了虚拟化应用。很多用户认为,在采用虚拟化技术的时候经常会发生性能下降和系统不稳定的问题。即使信息技术管理员很了解虚拟化技术,但是那些不了解的虚拟化的终端用户仍然会因为这些说法而犹豫不决。大概是因为不完全了解虚拟化系统的缘故吧,所以有些人对虚拟化技术没有太好的印象,反而“总觉得难受”。如果有这种印象的话,虚拟化技术在企业领域发展估计不会多顺利。
因此在这里,我们将解释虚拟化到底是什么。
虚拟化计算机的本质
虚拟化,原本是指资源的抽象化,也就是单一物理资源的多个逻辑表示,或者多个物理资源的单一逻辑表示。具体到服务器虚拟化,就是多个物理资源的单一逻辑表示。另外,存储虚拟化就是这种模式的一个例子。
对不了解虚拟化的终端用户来说,听到上面说“单一物理资源的多个逻辑表示”,往往会认为“虚拟化技术也太抽象了”。可是,如果要看计算机架构的话,虚拟化正是计算机的本质。
想一下,PC同时启动使用邮件和Web浏览器等多个应用,这时候你就会理解虚拟化技术。在这个情况下,操作系统把PC物理资源抽象化了,将多个应用集中到一个物理资源环境下。因为虚拟化hypervisor是运行在操作系统上层的,所以会被认为有些抽象。不过,如果试着从计算机结构来理解的话,也不是那么晦涩。
虚拟化的主要类型:主机型和hypervisor型
虚拟化的类型大致可以分为主机型和hypervisor型。当虚拟化最初应用于PC时的主流类型是主机型。
主机型是将虚拟化软件作为一个应用安装的主机操作系统中。虚拟硬件包括主机操作系统中的虚拟化软件、操作系统和应用。因为是被作为一个应用,所操作系统不是那么快。
主机型虚拟化的问题在于,如果主机操作系统发生故障,就会波及到作为该操作系统一个应用的虚拟化软件。而且,在硬件模拟过程中也会发生诸多问题。
接下来是hypervisor型。hypervisor型是指通过低层级软件让多个操作系统得以共享相同的硬件设备。
#p#
虚拟化捉摸不透?从结构剖析虚拟化
主机型虚拟化是在运行在操作系统上的,而hypervisor型虚拟化是直接运行在硬件上如果向hypervisor编入设备驱动程序的话,那么设备驱动程序将会影响虚拟化环境的稳定性。同时,如果嵌入两个或者更多驱动程序的话,那么hypervisor就会快速扩张,支持硬件就会被限制于ESX/ESXi下。
可以通过使用作为Domain 0的操作系统驱动程序来减少hypervisor操作系统使用每个虚拟环境Domain 0的驱动程序进行独立管理,并且适用于Hyper-V和Xen。
因此,hypervisor程序是虚拟化的基础,程序越小,开销越小,虚拟环境速度越高。
而且因为Domain 0中使用Windows和Linux等操作系统,即使不开发专门的hypervisor驱动程序,操作系统也可以利用驱动程序。所以域虚拟化对应的硬件种类要比利用专有驱动程序的虚拟化软件更多。
随着虚拟化软件的升级更新,虚拟化架构已经从完全虚拟化转向半虚拟化。
完全虚拟化是指在虚拟环境中模拟实际存在的硬件。因此,在虚拟环境中运行的操作系统可以支持现有硬件的驱动程序。虽然驱动程序方面兼容性很高,但是为了模拟硬件,在虚拟环境中调用现有硬件中的驱动器程序可能会降低系统的整体性能。
半虚拟化要准备规定的虚拟硬件。对应的驱动程序被集成到虚拟机中,并被操作系统所使用。
另一个是半虚拟化。由于半虚拟化不是模拟现实的硬件,因此,域虚拟硬件相关的软件就变得很简单,可以作为一个整体高速地运行。
但是,为了给半虚拟化提供虚拟硬件,每个虚拟化环境中运行的操作系统都需要对应的驱动程序。
hypervisor的性能也会随着CPU而改变
说不定读到这里,你会觉得似乎虚拟化全部是关于软件方面的。不过,像AMD的Opteron和Intel的Xeon这样的硬件也提供了虚拟化功能。例如,Intel CPU中扩展页表(IntelVT Extended Page Tables)的全新支持可通过减少页表虚拟化带来的开销进一步提高虚拟化性能。
此外,Intel还提供了I/O虚拟化功能“VT-d”和网络虚拟化功能“VT-c”。同时,AMD即将在2009年下半年推出的Fiorano平台(RD890芯片组系列)也会支持IOMMU虚拟化功能。
这种硬件方面的虚拟化支持功能每天都是在更新的,可以说并不是在虚拟环境中使用旧的服务器,而是导入新的服务器,迁移旧服务器上的任务。虽然旧的服务器还可以在虚拟化环境下运行,但是旧的服务器已经不能再利用了。而且,迁移到最新服务器上,不仅能耗和散热量都有所降低,服务器本身的成本和性能并没有增加多少。
需要注意的是,如果hypervisor不支持的话,这些功能都是无法使用的。
使用台式计算机也可以进行虚拟化测试
谈到CPU的虚拟化功能,那就必须要对装载了Xeon或者Opteron的服务器进行虚拟化测试。但是,考虑到当前的经济危机,要购买测试用服务器可能要数十万日元吧。而且,测试时要使用多个虚拟化服务器,测试虚拟服务器在虚拟环境之间的实时迁移功能,最少也要使用两台同样规格的服务器。
在这里我们推荐使用虚拟化的台式计算机进行测试。现在市场中已经有采用了Intel Core i7或者AMD Phenom II等CPU的台式计算机,从CPU方面来看,这和服务器虚拟化功能是一样的。
如果使用配置了Core i7的台式电脑的话,只要数百美元左右就可以买到了,配置Phenom II大概更低。由于要测试实时迁移功能,所以需要购买两台,同时还要买BUFFLO的低成本iSCSI存储,整个测试环境大约需要上千美元吧。当然,如果测试条件很好的话,你可以购买服务器,你也可以根据业务水平来使用桌面PC。而且,如果你们并不是适合于使用虚拟化技术的话,可以使用桌面PC测试虚拟化就没有太大意义了。如果厂商免费提供hypervisor的话,那么为何不尝试一下用这种方法做测试?如果尝试一下,你对虚拟化的印象一定会有所改变。
虚拟化技术没有那么深奥,但是真正用好虚拟化技术也不是一件容易的事情。
【编辑推荐】