Windows Server 2008虚拟化技术概览
  Windows Server 2008的RC0发布很长时间了,早就听说这个版本将会包含一个预览版的Windows Server Virtualization(WSv)。兄弟我呕血数升,为本本配备了4GB内存、双硬盘,就是要虚位以待,测试一下这个垂涎已久的WSv虚拟化产品。
  系统需求
  WSv的硬件要求比较高,主要是集中在CPU方面:
  1. CPU必须支持硬件虚拟化,例如Intel VT技术或者AMD T技术。
  2. CPU必须支持X64位技术。
  3. CPU必须支持硬件DEP技术,这是因为WSv对安全要求比较高。
  其实不用担心,当前主流的CPU一般都支持以上的要求,只要支持硬件虚拟化,其他两个要求一般能够满足。当然,为了保险起见,在购置硬件设备之前,最好事先到CPU厂商的网站上确认CPU的型号满足以上的要求。
  还需要注意的是,必须在系统的BIOS设置里确保开启硬件虚拟化等设置,大多数系统默认关闭CPU的硬件虚拟化支持。
  注意必须下载X64位的Windows Server 2008 RC0 Enterprise,目前只有这个版本才带WSv Preview。
  安装过程
  安装Windows Server 2008 RC0 Enterprise X64比较简单,和Windows Vista没什么区别。首先需要把WSv虚拟化作为一个角色(Role)添加到Windows Server 2008系统中,步骤如下:
  1. 进入Windows安装目录,定位到wsv子目录,分别运行其下的Windows6.0-KB939853-x64.msu和Windows6.0-KB939854-x64。
  2. 启动Server Manager管理单元,选中左侧控制台树里的Roles,然后单击右侧详细窗格里的Add Roles命令,在打开的添加角色向导里确保选中“Windows Server Virtualization”,如附图所示。
  
  3.一路Next,设置一些必要的配置信息,例如配置虚拟网络等,最后系统会提示重启,如附图所示。
  
  原理简述
  从表面上看,添加WSv只不过是添加了一个普通Role而已,貌似和添加DNS、DHCP、IIS等没啥区别,实际上内在的变化不小,WSv会在操作系统和硬件层之间添加一层Hypervisor层(必须对BCD数据库进行设置,确保引导时加载带Hypervisor的内核)。WSv是一种基于Hypervisor的虚拟化技术。
  Hypervisor是一个很薄的软件层,位于操作系统和硬件之间。由这个Hypervisor直接接管虚机管理的工作,把系统资源划分为多个分区。其中主操作系统所在的分区叫做父分区,虚机所在的分区叫做子分区,如附图所示。可以确保虚机的性能最大化,几乎可以接近物理机器的性能,远胜Virtual PC/Virtual Server/VMware Worksation/VMware Server等基于模拟器的虚机。
  
  这和VMWare ESX Server的原理是一样的。VMware虽然宣称其产品是直接架构在硬件基础上,但是实际上也是在硬件层面上加载一个Hypervisor层,也有类似“父分区”的概念,虽然从表面上看,VMWare ESX Server不需要操作系统,但实际上是有的,是一个定制的RedHat Linux,在安装VMWare ESX Server时可以看到RedHat的安装界面。
  和VMWare ESX Server不一样的是,WSv的Hypervisor称为微内核 Hypervisor,比较“瘦”,因为里面不包含底层硬件的驱动。而VMWare ESX Server的Hypervisor则比较“胖”(叫做整体Hypervisor),里面包含底层硬件的驱动。
  两者的区别在哪里?孰优孰劣?
  VMWare ESX Server采用包含驱动的“胖”Hypervisor,效率可能相对稍微高一点点。
  然而这种整体Hypervisor的架构是以降低平台兼容性和安全性为代价的。因为Hypervisor里的驱动不可能涵盖所有的硬件平台,也不可能放入太多驱动,这样就导致能够支持的硬件平台比较少。同时由于Hypervisor直接位于硬件层之上,里面的代码只要存在一点Bug,就可能极大地影响系统的安全性。
  而WSv的Hypervisor则不包含驱动,这样就能把Hypervisor层做得尽可能“薄”(TCB部分应该尽量做得小),有利于兼容性和安全性。
  实战演练
  和Virtual Server不一样,WSv并不是基于Web管理的,而是有一个很“漂亮”的基于MMC 3.0的管理界面,如附图所示。
  
  创建虚机的过程很简单,如果熟悉Virtual PC/Virtual Server的炒作,那么WSv虚机的创建简直是小菜一碟。相对于Virtual PC/Virtual Server,除了性能好之外,WSv虚拟化至少还具有以下的一些显著优点:
  1. 可以指定虚机所使用的虚拟内核,最多可以使用八个内核,如附图所示!当然物理主机要具有那么多内核,而Virtual PC/Server只能使用一个内核。
  
  <本图片摘自内部测试报告>
  2. 可以创建X64位的虚机,如附图所示。在运行Exchange 2007虚机时就能体现出优势来了。
  
  3. 在卷影副本(Shadow Copy)特性的帮助下,WSv可以实现任意数量的SnapShot,这可是很多用户期待已久的功能。目前的WSv Preview就可以很好地实现这个功能,而且可以进行热备,几乎不会影响虚机的性能。
  4.支持内存的“写时复制”(Copy on Write)功能,可以极大地节省内存。例如多个虚机如果采用相同的操作系统,就可以共享同一个内存页面,如果某个虚机需要修改该共享页面,可以在写入时复制该页面(所以叫做Copy on Write机制)。不过当前的WSv Preview还没有实现这个功能。
  5. 对于非Windows操作系统,例如Linux,提供了很好的支持。
  如果Linux版本支持XEN虚拟化,则该Linux虚机可以识别Windows Hypervisor,其性能可以达到最高,例如WSv可以很好地运行SUSE Linux,如附图所示。如果该虚机不能识别Windows Hypervisor,WSv照样可以支持,这时候性能就倒退到以前的基于模拟器的虚机。
  
  <本图片摘自内部测试报告>
  6. 完全支持WMI。我们可以通过WSH或者PowerShell对WSv进行全面管理。当然也可以通过友好的MMC管理单元对WSv进行管理。
  7. 今后WSv可以安装在Server Core上,具有良好的安全性和性能。当前的WSv Preview版本还不支持安装在Server Core上。
  8. 在System Center Virtual Machine Manager 2007 R2等产品的支持下,WSv还可以实现P2V(物理机到虚机)的迁移,可以把虚机从一台Host无缝迁移到另外一台Host上(虚机无需停机);甚至可以根据虚机CPU、内存或者网络资源的利用率设置触发事件,自动给运行关键业务的虚机热添加CPU、内存或者网络资源!
  9. 每个Virtual Server虚机最多支持3.6GB内存,而WSv虚机最多可支持32GB内存,这对于一些大型应用来说,是很有意义的。