盆盆眼里的虚拟化技术(从技术角度分析)
虚拟化,也许是最近一段时间以来最热门的话题,而盆盆本人也是几乎把所有的时间和精力,都放在虚拟化技术的学习和分析上。然而对不少朋友来说,虚拟化还是一个很神秘的东西,所以本文盆盆将以一个普通测试者和技术爱好者的视角(部分内容,摘自Microsoft和VMware的公开文档),试图解读一下自己心目中的虚拟化,限于本人的能力所限,肯定包含不少谬误,还请各位老大不吝指教!
今后盆盆还将会通过ITECN博客,不断地把一些学习的小成果分享给大家。本文所说的虚拟化特指硬件模拟的虚拟化技术,并不包含应用程序虚拟化技术(例如Softgrid)、还有操作系统虚拟化技术(例如Virtuozzo的VPS技术)。
一、虚拟化的本质
盆盆在今年的TechEd 2007(北京)上讲到 其实虚拟化的本质,就是把整个系统打包成文档,把整个硬件配置、Windows和应用程序,统统打包成文档,如附图所示。而从应用的角度来看,却是一个真实的服务器,有自己的操作系统、CPU、BIOS、内存、硬盘等。
而虚拟化的其他优点无不发轫于此:
1.服务器整合
在一台物理服务器上同时跑多台虚机,其实就等于在一台服务器上存放多个代表虚机的文档,如附图所示,如此而已。这种整合能够极大地提高服务器的利用率,而且极大地降低成本。同时,借助虚拟化管理平台工具,还可以把多个硬件资源组成一个逻辑的资源池,以便虚机能够更好地利用硬件资源,获得更好的性能。
2.备份和恢复
备份和恢复也很容易,对文档进行备份,总比对复杂的硬件配置、操作系统和应用程序进行备份和恢复,要容易得多。如附图所示。
3.迁移很容易
迁移也变得非常容易,因为实际上等于把文档从一台服务器,移动到另外一台服务器,非常简单。而且虚机模拟的是一套标准的硬件设备,所以不需要修改,就可以直接在其他服务器上运行。如附图所示。
二、从技术角度看虚拟化
VMware对于虚拟化的不同架构有一个比较好的描述,如附图所示。
<本图片取自VMware的幻灯片>
一种叫做寄居架构,也就是说虚拟化管理层是运行在主机操作系统之上,依靠主机操作系统来模拟硬件设备,以便在其上运行虚机,其优点是对物理硬件要求低,但是性能相对差。常见的例子有微软的Virtual PC/Virtual Server;VMware的VMware Workstation/VMware Server等。
另一种叫作裸金属架构,直接在硬件上跑虚拟化管理层,其优点是性能比较好。裸金属架构的虚拟化管理层,一般叫做Hypervisor,或者VMM(Virtual Machine Monitor),又分为两种形式:
1. 胖管理层
例如VMware ESX Server。由于VMware把底层物理硬件的驱动程序整合到Hypervisor管理层中,所以管理层显得比较胖。很显然,这种架构的性能比较好,但是对于底层物理硬件的要求比较高,兼容性和安全性的挑战比较高。
2. 瘦管理层
例如微软的Hyper-V和XEN,Hypervisor管理层仅用于管理CPU和内存,而不包含底层物理硬件的驱动程序,所以管理层显得比较瘦。由于不包含硬件驱动,所以代码量比较小,安全性更高、兼容性也更好,但是效率和胖管理层相比有所不逮。