欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

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上。
7. 在System Center Virtual Machine Manager 2007 R2等产品的支持下,WSv还可以实现P2V(物理机到虚机)的迁移,可以把虚机从一台Host无缝迁移到另外一台Host上(虚机无需停机);甚至可以根据虚机CPU、内存或者网络资源的利用率设置触发事件,自动给运行关键业务的虚机热添加CPU、内存或者网络资源!
8. 每个Virtual Server虚机最多支持3.6GB内存,而WSv虚机最多可支持32GB内存,这对于一些大型应用来说,是很有意义的。

已发表 2007年10月1日 0:17 作者 ahpeng

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2007年10月1日 7:24 by Asuka

# re: Windows Server 2008虚拟化技术概览

本本4G内存怎么插阿!?

2007年10月1日 10:17 by Lee

# re: Windows Server 2008虚拟化技术概览

2G*2;965以上主板支持

2007年10月1日 10:23 by ahpeng

# re: Windows Server 2008虚拟化技术概览

本本有2个内存插槽,准备两根2GB的条子就行了。新蛋上的2GB条子相对贵些,如果要实惠一些的话,可以到淘宝上看看。

2007年10月1日 11:46 by chen.yansi@msn.com

# re: Windows Server 2008虚拟化技术概览

想问一下WSv的Hypervisor称为微内核

Hypervisor,比较“瘦”,因为里面不包含底层硬件的驱动。是说在虚拟机里还需要安装宿主硬件平台的硬件驱动么?这样才能提高性能?

另外想问下Windows Server 2008 RC0能顺利支持DELL 2950服务器么?我想在服务器上部署使用WSv角色使用,应该不成问题吧?

2007年10月1日 19:52 by ahpeng

# re: Windows Server 2008虚拟化技术概览

To Chen.yansi:

您好,感谢光临ITECN!

底层硬件的驱动是包含在Host OS(父分区)里,虚机里的虚拟设备,通过高速的VMBus和Host进行通信,以访问物理硬件。

这样虚机里的设备,看上去是一套标准的设备,有利于在不同的Host之间进行自由迁移;同时其设备的性能,仅受物理设备的限制,而不像以前那样,要受到模拟设备的限制。

至于DELL 2950服务器,只要满足CPU的条件,就可以支持,另外内存至少2GB。推荐仅在测试环境部署WSv,因为目前的WSv还不成熟。

2007年10月2日 0:30 by fengyihot

# re: Windows Server 2008虚拟化技术概览

郁闷。今天在VMware上安装,既然要弹出设置BIOS。

   这个好像必须要主板支持才行样?

       K8T890的主板可以使用吧?

   这几天刻录机坏了,准备买个刻录机把这个2008刻下来再安装。

不知道会不会有问题。所以先回贴问问了。

   到时不行,人都要晕了。

2007年10月2日 10:15 by ahpeng

# re: Windows Server 2008虚拟化技术概览

To fengyihot:不能在VMware里安装。在模拟化的虚机里再安装WSv,是不可能的,同时无法享受WSv的Hypervisor带来的好处。

一定要在真实机器上安装。而且必须事先确保CPU支持虚拟化,而且要在BIOS里启用。

2007年10月4日 16:27 by 盆盆的博客

# 如何迁移Virtual Server到Windows Server 2008 Virtualization?

对于已经尝试 WSv 的朋友来说,有一个小麻烦就是如何把已有的Virtual Server虚机迁移到WSv中去。否则总不见得还要在WSv中重新创建一遍? 其实不然,WSv也是采用VHD虚拟磁盘格式,两者实际上是通用的。但是并不能直接把Virtual

2007年10月7日 15:52 by Mike

# re: Windows Server 2008虚拟化技术概览

您上面提到:(必须对BCD数据库进行设置,确保引导时加载带Hypervisor的内核), 请问如何设置BCD数据库才能在加载时包含Hypervisor内核? 我用BCDEdit 显示 Hypervisor 是Auto, 不知要如何修改? 谢谢!

2007年10月7日 19:06 by ahpeng

# re: Windows Server 2008虚拟化技术概览

To Mike:感谢光临ITECN!

你无需对BCD数据库进行专门设置,安装WSv时,会自动配置好BCD。

2007年10月8日 15:32 by Mike

# re: Windows Server 2008虚拟化技术概览

To ahpeng:

谢谢您给我们提供了一个学习和交流的空间, 我对虚拟技术很着迷, 希望您能帮我解决一下眼下的难题. 我的OS版本是: Windwos 2008 Bata3 Build 6001,我创建新的虚拟机后, 无法启动, 点"Start"后,系统提示:

An error occurred while attempting to change the state of virtual machine New Virtual Machine.

'New Virtual Machine' failed to initialize.

The virtual machine could not be started because the hypervisor is not running.

(我用的系统默认的虚拟机名称: New Virtual Machine)

2007年10月9日 8:46 by ahpeng

# re: Windows Server 2008虚拟化技术概览

To Mike:你好!

从报错信息来看,是因为hypervisor没有启动。

原因可能有很多,第一你现在用的是Beta 3,推荐升级到64位的RC0。

第二请确认CPU支持虚拟化,并且在BIOS里打开,同时确保在BIOS里打开硬件DEP功能,并且关闭超线程功能。

请阅读厂商手册,了解如何修改BIOS。

2007年10月9日 17:20 by Mike

# re: Windows Server 2008虚拟化技术概览

To ahpeng:

谢谢您的帮助!

我用的OS是Windows2008X64 RC0, 国庆期间从MS网站上下的2007.09.24的版本, 应该是最新的了.

我今天查事件日志,发现Hypervisor启动失败:

提示是:Hypervisor failed starting.

详细描述为:

Log Name:      System

Source:        Microsoft-Windows-Virtualization-Hypervisor

Date:          10/9/2007 5:14:58 PM

Event ID:      2

Task Category: None

Level:         Error

Keywords:      

User:          SYSTEM

Computer:      MikeZhang17

Description:

Hypervisor failed starting.

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

 <System>

   <Provider Name="Microsoft-Windows-Virtualization-Hypervisor" Guid="{52fc89f8-995e-434c-a91e-199986449890}" />

   <EventID>2</EventID>

   <Version>0</Version>

   <Level>2</Level>

   <Task>0</Task>

   <Opcode>0</Opcode>

   <Keywords>0x8000000000000000</Keywords>

   <TimeCreated SystemTime="2007-10-10T00:14:58.000Z" />

   <EventRecordID>1640</EventRecordID>

   <Correlation />

   <Execution ProcessID="4" ThreadID="8" />

   <Channel>System</Channel>

   <Computer>MikeZhang17</Computer>

   <Security UserID="S-1-5-18" />

 </System>

 <EventData>

   <Data Name="ErrorCode">3221225488</Data>

 </EventData>

</Event>

我查了错误代码, 也有人在讨论这个错误, 不过还没看到有效的解决办法, 再次谢谢您的帮助!

2007年10月12日 8:25 by Mike

# re: Windows Server 2008虚拟化技术概览

To ahpeng:

我是用的WindowsX64RC0, 不过BIOS里没有关于CPU虚拟化的设置, 我用的CPU是AMD Athlon X64X2 3600+, 我用PC测试软件看,支持虚拟化,DEP也是打开的,

我查了事件日志, 启动Hypervisor时出错, 详细的信息是:

Log Name:      System

Source:        Microsoft-Windows-Virtualization-Hypervisor

Date:          10/12/2007 8:17:31 AM

Event ID:      2

Task Category: None

Level:         Error

Keywords:      

User:          SYSTEM

Computer:      Mike12

Description:

Hypervisor failed starting.

Event Xml:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

 <System>

   <Provider Name="Microsoft-Windows-Virtualization-Hypervisor" Guid="{52fc89f8-995e-434c-a91e-199986449890}" />

   <EventID>2</EventID>

   <Version>0</Version>

   <Level>2</Level>

   <Task>0</Task>

   <Opcode>0</Opcode>

   <Keywords>0x8000000000000000</Keywords>

   <TimeCreated SystemTime="2007-10-12T15:17:31.984Z" />

   <EventRecordID>4375</EventRecordID>

   <Correlation />

   <Execution ProcessID="4" ThreadID="8" />

   <Channel>System</Channel>

   <Computer>Mike12</Computer>

   <Security UserID="S-1-5-18" />

 </System>

 <EventData>

   <Data Name="ErrorCode">3221225488</Data>

 </EventData>

</Event>

我在网上搜索了错误代码, 发现有不少人都遇到这个问题,但是都还没有有效的解决方案, 不知如何解决这个难题.

2007年10月13日 22:44 by chen.yansi@msn.com

# re: Windows Server 2008虚拟化技术概览

楼上的兄弟,很遗憾我也遇到过你这样的问题。你用的是PC主板吧?那么BIOS里很有可能没有支持Intel VT或者AMD VT技术的选项。虽然用测试软件可以看出支持CPU虚拟化技术,但是主板未必启用了。DEP也是需要在BIOS里卡开的,很少见PC机的主板有DEP开关选项。

目前微软提供的WVs能正常顺利通过测试的服务器有以下,并且有BIOS版本的要求。不知道这样的回答能否对你的疑问有所帮助。

Hardware requirements

Windows Server virtualization requires an x64-based processor, hardware-assisted virtualization, and hardware data execution protection. The following hardware has been tested extensively and is suitable for use with Windows Server virtualization. Some of the hardware requires an update to the BIOS, as noted.

Manufacturer  Model             Processor  

HP            Proliant DL585    AMD

HP            Proliant DL385 F2 AMD

HP            Proliant DL580 G4 Intel

HP            Proliant DL380 G5 Intel

Dell          PowerEdge 6850    Intel

Dell          PowerEdge 6950    AMD F2 Opteron 8212, with BIOS 1.1.2 or later

Dell          PowerEdge 2950    Intel, with BIOS 1.3.7 or later

Fujitsu       TX300 S3          Intel

NEC           Express 5800 120Ri-2  Intel

2007年10月15日 8:42 by Mike

# re: Windows Server 2008虚拟化技术概览

谢谢! 正如您所说, 我用台式机做的测试, 但是ahpeng用本本也让WSv跑起来了, 本本和台式机的差别应该不太大, 所以一直让我抱着很大的希望, 真希望RC1能帮我解决这个问题.

2007年10月23日 22:12 by zhaoxin

# re: Windows Server 2008虚拟化技术概览

盆盆老师:

按照你的试验步骤安装2k8(rc0)x64及KB939853,KB939854但是在添加role时却始终没有Windows Server Virtualization选项。

硬件:DL380 G5

并测试打开及关闭bios中intel cpu vt选项也无用。

2007年11月2日 10:20 by jerry xie

# re: Windows Server 2008虚拟化技术概览

弱弱d问下:我的cpu是64的,但os是32BIT的UNIX center os.memory 是6G的

那么我想在这个PLATFORM上安装2台vmware 做server farm.

可行不?

我还想问下:windows 2003 standard 和enterprise 到底在memory manager上有什么不同,以致one support PAE/AWE. but another failed.

2007年11月21日 21:04 by walf

# re: Windows Server 2008虚拟化技术概览

amd x2 3600+

onda a69t 主板 bios: v1.05

hypervisor not starting...

不知道如何才能打开虚拟化和dep

2008年1月25日 9:46 by dalanzhu

# re: Windows Server 2008虚拟化技术概览

请问,你说的是不是hype-v

2008年1月30日 21:38 by DANCERLEE

# re: Windows Server 2008虚拟化技术概览

我想知道WSV下的虚拟系统里的显卡支持D3D吗?

2008年2月14日 17:04 by 微软虚拟化技术

# Hyper-V高可用性群集实测报告

早就听说Hyper-V Beta可以支持快速迁移和高可用性,最近抽空测试了一下Hyper-V的主机群集(Host Clustering)功能,结果相当理想,甚至超出了盆盆的预期。所以赶紧写一个文档,分享给广大的微软技术爱好者,也算是盆盆赠送给ITECN粉丝的新年礼物*^_^*。

2008年2月14日 17:06 by 微软虚拟化技术

# Hyper-V高可用性群集实测报告

本文描述Hyper-V的快速迁移和高可用性,不但描述其在生产环境里的意义,还提供和市场内同类产品之间的对比,更提供技术实测报告。

2008年2月14日 17:44 by 微软虚拟化技术

# Hyper-V高可用性群集实测报告

本文描述Hyper-V的快速迁移和高可用性,不但描述其在生产环境里的意义,还提供和市场内同类产品之间的对比,更提供技术实测报告。

2008年2月14日 17:45 by 微软虚拟化技术

# Hyper-V高可用性群集实测报告

本文描述Hyper-V的快速迁移和高可用性,不但描述其在生产环境里的意义,还提供和市场内同类产品之间的对比,更提供技术实测报告。

说说您的看法?

(必填) 
必填 
(必填)