虚拟化助推器,Windows Server 2008 R2 SP1新功能体验

微软终于发布Windows 7和Windows Server 2008 R2的SP1补丁了!对于熟悉微软操作系统的朋友来说,微软产品的SP1版本才是这个产品真正走向成熟的标志,也是诸多企业考虑部署应用的起点。一直以来,微软都在告诉我们,Windows 7和Windows Server 2008 R2的内核代码是相同的,只是进行了不同的编译而已。这次发布SP1,微软用行动很好地对这两个产品的同源性进行了诠释:Windows 7和Windows Server 2008 R2的SP1完全相同!仔细想想倒也不难理解,这样可以减少代码的开发量,提高产品利用率,和目前绿色减排的大方向还是一致的。

  微软在正式发布了SP1,但Technet或MSDN的订阅者可以提前一周获得SP1。这时就可以体现出MVP的优越性了,如下图所示,MVP可以使用微软赠送的订阅账户提前体验SP1。我在第一时间下载了SP1,然后分发给办公室的同事们。同事也纷纷对自己的Windows7大动干戈,经过半个多小时的鏖战,大家都如愿以偿地把操作系统升级到了最高版本,剩下的任务就是体验新系统了。但是,在体验的过程中,一些不和谐的声音逐渐开始冒出来了,"貌似没什么变化","好像启动快了一点","启动好像有点慢","界面一点都没变"…….

  淡定,淡定,出现这种状况并不奇怪。在这次SP1的发布中,Windows 7并不是主角。期望发布SP1后启动速度能变得飞快,3D游戏性能可以得到优化的朋友们可能要失望了,对Windows 7来说,SP1仅仅是一个先前发布补丁的集合,并没有太多值得炫耀的功能。这次升级的真正主角是Windows Server 2008 R2!在SP1的帮助下,2008 R2得到两个虚拟化方面的巨大改进:动态内存以及RemoteFX。动态内存可以帮助服务器虚拟化产品更好地分配内存资源,RemoteFX则可以极大地改善桌面虚拟化中的用户体验。2008 R2新增的这些功能是否真正给力,让我们在接下来的测试中拭目以待吧。

部署
图1

  1. 部署

  部署SP1并不是一件困难的事,大家都已经习惯了微软的补丁更新周期。以前我们都是怀着很忐忑的兴趣憧憬着微软发布新的服务器Service Pack,但现在安装一个Service Pack简直象吃一个汉堡一样平常。一般只要启动安装程序,一路Next就OK了。但这次我们测试时发现2008 R2 的SP1变得非常谨慎,如果服务器上安装了杀毒软件,SP1的安装程序有可能会提示存在软件兼容性问题,并且因此中止安装过程。最令我们感到不可思议的是,SP1居然提示和微软自己的杀毒软件Forefront Client Security存在兼容性问题!我们关闭了Forefront Client Security后也无济于事,必须卸载Forefront Client Security才可以安装SP1。这使得我们安装SP1的过程变得非常狼狈,我们进行的流程是卸载FCS(Forefront Client Security)-安装SP1-重启服务器--安装FCS。而其他杀毒软件却暂时没有发现和SP1存在类似的兼容性问题,微软这种只查自己,不查别人的杀熟作风让我们实在是无法适应。想当初,我们使用FCS替换服务器原有的杀毒软件时,主打的理由之一就是FCS和微软产品可以无缝兼容!可是,现在,无情的事实让我们无地自容了…..

  好了,让我们看看SP1的安装过程吧。服务器上打开SP1的ISO文件后,如图2所示,SP1包含了三个安装文件,分别适用于在X86,X64及IA64平台上部署SP1。由于2008 R2都是64位版本,因此我们要选择适用于64位平台的SP1文件进行安装。

部署
图2

  安装的过程非常熟悉,点击下一步就可以开始SP1安装前的准备工作,这些工作主要是检查一下当前的软硬件环境是否满足SP1的安装需求。

部署
图3

  如果安装程序已经完成了部署SP1前的准备工作,接下来就可以点击"安装"按钮进行SP1的部署了。有一点要注意的是,安装SP1时要在C盘留出足够的磁盘空间,最好在8G左右,这样才可以确保安装成功。

部署
图4

  如图5所示,安装开始了,SP1的安装过程会持续30-40分钟。

部署
图5

  安装完成后,服务器会自动重启,图6验明正身,服务器的操作系统版本已经升级为了最新的2008 R2 SP1。

部署
图6


 

  2. 动态内存

  Hyper-V服务器发布之后,进步很快,至少目前在虚拟机迁移方面已经可以和Vmware抗衡一番了。但Hyper-V在内存分配方面和Vmware还是有一些差距的,Vmware可以支持内存超售,内存热添加等技术,Hyper-V较之要逊色很多,只能为虚拟机分配固定尺寸的内存。这样就导致了我们项目中有些服务器管理员会为自己的服务器最大限度地申请内存,例如某个业务服务器正常只需要1G内存,但管理员往往会非常具有前瞻性地申请4G内存,结果当然是白白浪费了很多内存。在2008 R2 SP1推出之前,微软的应对方法是质疑Vmware超售内存技术的安全性,例如我们在Tech.ED技术大会上经常会听到有讲师对Vmware超售内存技术的质疑。当然,今年的Tech.ED上估计会听到微软讲师对动态内存的赞美声音了:)。

  好了,我们来体验一下动态内存技术吧。首先如图7所示,我们在安装了SP1的服务器上安装Hyper-V角色。

动态内存
图7

  安装完Hyper-V角色后,我们在服务器上打开Hyper-V管理器,准备创建一台虚拟机。虚拟机使用的操作系统没有太多的要求,Hyper-V支持得来宾操作系统都可以,本例中我们为虚拟机安装的操作系统是Windows Server 2003 SP2。

动态内存
图8

  我们为2003虚拟机分配的内存是2G,虚拟机的其他配置我们就不一一介绍了,相信大家对那些配置并不感兴趣。

动态内存
图9

  虚拟机创建完毕后,在Hyper-V管理器中对新创建的虚拟机进行配置。如图10所示,我们发现动态内存配置的所在了。如果我们选择为虚拟机分配静态内存,那虚拟机的内存分配机制和以前的版本相同,虚拟机还是会得到固定的内存,注意,如果你使用默认选项,那创建虚拟机时Hyper-V会使用静态内存的。如果使用动态内存,那虚拟机内存会在下限和上限之间浮动,本例中虚拟机的内存会在256M和2G之间。

  虚拟机的内存分配中还可以配置缓存区,在本例中如果虚拟机使用了分配的全部2G内存,那么Hyper-V服务器还会为虚拟机留出410M内存用于应付突发事件。这种设计机制是建立在所有虚拟机不会同时达到内存上限的基础上的,如果所有虚拟机由于某种不可思议的原因都需要最大限度地使用内存,那Hyper-V服务器就要面临内存危机了。这种情况下,哪些虚拟机可以优先得到内存就取决于虚拟机内存权重的优先级设定了,优先级高的会被优先保证内存分配。

动态内存
图10

   为虚拟机配置完动态内存后,在虚拟机上安装Windows Server 2003操作系统,如图11所示,我们可以发现虚拟机此时实际只占用了60M内存左右。

动态内存
图11

  来到Hyper-V服务器上,我们可以看到Hyper-V服务器也仅仅使用了800多M内存,这800多M内存包括了Hyper-V服务器和2003虚拟机使用内存的总和。如果不使用动态内存,仅仅是这个2003虚拟机,Hyper-V服务器就要分配出去2G内存。

  总的来看,动态内存允许在一个池范围内为虚拟机灵活配置内存。增大了内存的利用率,降低了使用成本。只要被证明技术可靠,相信应用前景应该一片光明。

动态内存
图12


 

  3. RemoteFX

  RemoteFX也是2008 R2 SP1中一个重要的新功能。RemoteFX主要用于桌面虚拟化(VDI),可以允许用户在远程的虚拟机上使用Aero,玩3D程序,对用户体验是一个很好的改善。RemoteFX还允许USB重定义,用户可以在远程虚拟机上使用本地的USB设备。从RemoteFX来看,微软在VDI方面也开始发力了。想当年,微软在Hyper-V上进步神速,一年发布了三个版本,不知VDI方面是否也能这么给力?Ctrix要提防一些啊。

  我们在一台安装了2008 R2 SP1的服务器上体验一下RemoteFX。如图13所示,我们在服务器上选择安装"远程桌面服务"角色。

RemoteFX
图13

  在"远程桌面服务"的角色服务中选择"RemoteFX",如图14所示,系统提示"RemoteFX"需要Hyper-V角色的支持,我们安装所需的全部角色及功能。要想简单体验RemoteFX,在Hyper-V中创建一个Windows7 SP1的虚拟机即可。想要体验VDI,就要把"远程桌面会话主机"也安装上。VDI的配置可以参考http://virtual.it168.com/a2010/0228/854/000000854531.shtml。

RemoteFX
图14

  如果安装了远程桌面会话主机,我们要选择相应的身份验证方法。如果考虑安全性,应该选择"需要使用网络级别身份验证";如果考虑兼容性,应该选择"不需要使用网络级别身份验证"。本例中我们选择不使用网络级别身份验证。

RemoteFX
图15

  授权模式选择"以后配置",毕竟我们只是测试,120天的试用时间已经足够了。

RemoteFX
图16

  设置允许访问远程桌面会话主机的组,我们选择默认的Administrators组。

RemoteFX
图17

  如图18所示,我们把可以增加客户体验的选项都选中了。

RemoteFX
图18

  如图19所示,点击"关闭"按钮可以结束角色安装。

RemoteFX
图19

  RemoteFX角色安装完毕后,我们在Hyper-V服务器上安装一个Windows7 SP1的虚拟机。首先如图20所示,我们在服务器上创建一个名为Win7的虚拟机。

RemoteFX
图20

  为虚拟机分配内存,1G基本就可以了。

RemoteFX
图21

  为虚拟机设置网络连接,毕竟这个虚拟机需要被物理网络的用户所访问。

RemoteFX
图22

RemoteFX
图23

  虚拟机的硬盘倒不用特别大,实验环境中,30G就可以了。

RemoteFX
图24

  虚拟机创建完毕,我们开始在虚拟机上安装Windows7操作系统,具体过程从略。

RemoteFX
图25

  Windows7安装完毕后,我们安装Windows 7 SP1。其实,做完这个实验后,我就发现Technet订阅上可以下载集成SP1的Windows7了,大可不必像我这么麻烦。

RemoteFX
图26

  安装完Windows7 SP1后,我们关闭虚拟机操作系统,在Hyper-V管理器中编辑虚拟机设置。如图27所示,我们可以发现,在虚拟机的硬件中可以增加一个名为"RemoteFX 3D视频适配器"的设备,虚拟机实现RemoteFX,靠的就是这东西。

RemoteFX
图27

  设置一下RemoteFX的分辨率,如图28所示,RemoteFX居然支持多个显示器!可惜由于硬件条件不足,没有来得及验证,有多台显示器的朋友可以亲身体验一下。

RemoteFX
图28

  RemoteFX并非对硬件没有要求,如果29所示,安装了RemoteFX 3D显卡的虚拟机就没有能够启动成功。为什么呢,这是因为RemoteFX要求宿主机的CPU支持SLAT技术,SLAT技术在Intel中被成为EPT,AMD中被称为NPT。我使用的这台Hyper-V服务器使用的CPU是最早的酷睿CPU,并不支持SALT。后来换成AMD的K10 CPU后,虚拟机才启动起来。基本上K10的CPU都支持SLAT,具体参考http://en.wikipedia.org/wiki/AMD_K10,可见AMD比Intel还是厚道了很多啊。

RemoteFX
图29

  Windows7 SP1虚拟机启动后,我们在一台计算机上使用远程桌面连接Win7 SP1虚拟机,这台计算机的操作系统也需要时Windows 7 SP1或者Windows 2008 R2 SP1。我们在远程计算机上运行mstsc,如图30所示,我们在远程桌面连接的"体验"中选择的连接速度为10M或更高。如果连接速度不快,同样也体验不了RemoteFX。

RemoteFX
图30

  远程连接到Win7 SP1虚拟机后,如图31所示,我们可以在虚拟机桌面的个性化设置中更改虚拟机上的视觉效果和声音。

RemoteFX
图31

  可以设置虚拟机上的透明效果。

RemoteFX
图32

  如图33所示,虚拟机桌面上显示出了熟悉的Aero。理论上说,只要Hyper-V服务器的显卡给力,貌似在虚拟机上玩个魔兽也不是完全不可能的事。

RemoteFX
图33

  RemoteFX也支持USB设备重定向,这样虚拟机可以使用远程计算机上的USB设备。如图34所示,我们在远程桌面连接的属性中切换到"本地资源"标签,在本地资源标签中可以设置远程虚拟机能访问的驱动器,本例中我们选择虚拟机可以访问E盘,E盘就是本地计算机上的U盘。

RemoteFX
图34

   如图35所示,连接到远程的Win7 SP1虚拟机后,我们可以看到虚拟机中已经可以访问E盘了。经过测试,本地的摄像头等USB设备也可以被远程虚拟机使用。

RemoteFX
图35

  RemoteFX其实可以反映出一个趋势,那就是微软准备在桌面虚拟化方面玩真的了。