4月2日去了IDF现场,由于下午1点有课,所以盆盆上午10点多就匆匆赶到浦东国际会议中心,以便先rehearsal一下设备和机器。Intel峰会的规模很大,人气很旺,相对而言,微软去年的TechEd@上海则显得更加“袖珍”一些。会场的秩序还算井然,很快就凭专门的ID办理完讲师牌,遂掏出手机开始呼朋唤友,圈子里的兄弟来的不少,例如MVP程尊华在宣传Hyper-V虚拟化、MVP余勇则宣传System Center和ForeFront。有趣的是程尊华对面就是VMware的展台,看来虚拟化确实是近年来的热点,来观展的人不少。 
 
<右侧那个一本正经的就是兄弟~,嘻嘻>

午餐挺好,自助餐,种类不少,服务亦到位,环境很安静,只看到服务生在忙碌地穿梭,还有刀叉等碰撞偶尔发出的叮当声。窗外就是黄浦江, 隐约还能听到江中船只的汽笛声。饭后直奔课堂,时间尚早,离讲课时间还有近40分钟,于是打开笔记本开始调试,以确保万无一失。
 
这堂课主讲Windows Server 2008 Overview,由Frank和我两人演讲(我配合Frank)。我主要负责演示并介绍Windows Server 2008中的Hyper-V虚拟化、以及相关管理平台SCVMM;还有Terminal Service的RemoteApp和Web Access的功能。
 
理论上来说,无论是Hyper-V、还是RemoteApp等,都属于虚拟化的范畴,
现在大家都在讲软件即服务(saas)的概念,而盆盆个人认为,虚拟化很好地诠释了saas的理念,可以有效地把虚机、应用软件、程序的界面,变成可以按需提供、动态递交的服务。
 
为什么虚拟化能够做到这一点?这是因为从技术上讲,虚拟化打破了设备、操作系统、应用程序和用户界面之间的樊笼,彼此之间不再需要紧密绑定,能够实现自由流动。更具体的信息,可以参考盆盆的拙作《盆盆眼里的虚拟化-从技术角度》

Hyper-V

众所周知,Hyper-V是Windows Server 2008内置的服务器虚拟化工具,其地位相当于于VMware的ESX Server、Citrix的XenServer。
 
Hyper-V的系统架构
 
Hyper-V采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为ring -1(而Intel则将其称为root mode),而虚机的OS内核和驱动运行在ring 0,应用程序运行在ring 3下,这种架构就不需要采用复杂的BT(二进制特权指令翻译)技术,可以进一步提高安全性。
 

高效率的VMbus架构
 
由于Hyper-V底层的Hypervisor代码量很小,不包含任何第三方的驱动,非常精简,所以安全性更高。Hyper-V采用基于VMbus的高速内存总线架构,来自虚机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到根分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。

这种架构效率很高,不再像以前的Virtual Server,每个硬件请求,都需要经过用户模式、内核模式的多次切换转移。更何况Hyper-V现在可以支持Virtual SMP,Windows Server 2008虚机最多可以支持4个虚拟CPU;而Windows Server 2003最多可以支持2个虚拟CPU。每个虚机最多可以使用64GB内存,而且还可以支持X64操作系统。
 
完美支持Linux系统
 
和很多朋友的想法不同,Hyper-V可以很好地支持Linux,我们可以安装支持Xen的Linux内核,这样Linux就可以知道自己运行在Hyper-V之上,还可以安装专门为Linux设计的Integrated Components,里面包含磁盘和网络适配器的VMbus驱动,这样Linux虚机也能获得高性能。下图所示的就是Novell SUSE Linux 10 SP1,其中的网卡驱动,其总线类型就是VMbus。
 
这对于采用Linux系统的企业来说,是一个福音,这样我们就可以把所有的服务器,包括Windows和Linux,全部统一到最新的Windows Server 2008平台下,可以充分利用Windows Server 2008带来的最新高级特性,而且还可以保留原来的Linux关键应用不会受到影响。

虚拟化管理平台

需要指出的是,如果仅有Hyper-V,而没有管理平台,就好比仅有VMware ESX Server,而没有Virtual Center,就不能算是一套完整的数据中心虚拟化架构方案。Hyper-V的管理平台(System Center Virtual Machine Manager,简称SCVMM)目前尚在同步开发过程中。
 
和其他第三方虚拟化解决方案不同的是,如果采用微软的虚拟化管理平台,则可以给虚机和物理机器提供一套完整的、统一的、兼容的管理架构。未来版本的SCVMM将会支持Citrix XenServer、VMware ESX Server,也就是说,我们可以采用同一套管理平台,同时对多种虚拟服务器进行管理!这可以大大简化我们的管理开销。
 
盆盆个人认为,SCVMM比较重要的功能是P2V功能和自助服务网站,其中P2V功能可以帮助我们自动在线迁移活动目录里的Windows Server 2003/2008物理机器,自动将其转换为Hyper-V虚机,同时在迁移过程中,原来的物理服务器不需要宕机。
 
P2V迁移
 
在迁移的时候,SCVMM会替我们自动“海选”合适的目标Hyper-V主机。

整个迁移过程一目了然。
 

自助服务网站
 
自助服务网站有点类似于网上银行,管理员可以设置相应的策略,给特定的用户组授予虚机的创建和管理权限,并且可以给这些用户组赋予相应的虚机模版。例如可以给销售部门授予Windows XP虚机模版,里面预装了Microsoft Office 2007和CRM客户端;给开发部门赋予Windows Vista模版,里面预装了Visual Studio和SQL等等。然后这些不同部门的员工,打开网页访问SCVMM站点,就可以在IE里任意访问他们所需的现有虚机,还可以按照指定的模版创建新的虚机。

如果是传统的IT流程,开发部门的员工想要申请一台机器做测试,从申请到审核,再到集体采购、安装并且调试结束,至少需要数周乃至一个月的周期,很不方便。而有了SCVMM自助网站,用户可以很快创建一台虚机开始测试,这台虚机根据现有的模版进行创建,所有所需的内容都已经预装好了,节省我们的时间,测试完成,可以轻松删除,以便释放服务器的资源。

这说明了什么?
 
还是那句话,虚拟化就是把软件(服务器)变成可以按需递交的服务!

终端服务

Windows Server 2008自带的终端服务,已经经过很多改进,以便能够给客户带来更多的实用价值。
 
RemoteApp
 
其中最打动盆盆的,要算是其中的TS RemoteApp功能。下图所示的,就是在一台Windows Vista客户机上访问Word 2003和Word 2007的界面。能看出两个Word的窗口有什么区别吗?

仔细观察的话,可以发现其中Word 2003似乎没有Vista Aero的效果,原来这是一个运行在远程WIN2K8服务器上的应用程序(叫做RemoteApp,直译为远程应用程序)。而Word 2007带Vista Aero效果,这是一个本地安装的应用程序。
 
很有意思的是,这个Word 2003并不像以前的远程桌面,并不需要显示完整的会话桌面窗口,而仅显示应用程序的界面本身。这样一方面可以更加安全,防止用户无意中破坏服务器的文件系统和注册表,另外一方面不会导致用户的使用习惯遭到破坏。 
 
Web Access
 
对于企业里的客户机,我们可以给每个远程应用程序制作相应的.rdp文件或者.msi文件,然后借助SCCM、组策略或者共享目录等方式递交给每个客户端。以.msi为例,客户端只需安装一下远程应用程序的.msi文件(非常小,一般只有几十KB,远远小于应用软件本身),然后就可以在桌面或者开始菜单里创建该远程应用程序的快捷方式,还可以配置指定文件类型的打开方式。
 
如果在外地出差或者旅游,只能使用IE浏览器,那该如何访问远程应用程序?
我们可以借助Web Access,只需在IE浏览器里输入TS Web Access的网址,就可以在IE里看到远程应用程序的快捷方式,只需点击一下,即可在本地打开该应用程序的用户界面。
 

终端服务的好处
 
好处实在太多了,以下仅举几例:
 
1. 有利于集中部署应用程序,只需在终端服务器上部署一次应用程序,成千上万台客户端就可以立即访问这些应用程序,无需再一 一部署。
2. 有利于应用程序的集中运行和数据的集中保存,这样就可以减少安全隐患
3. 比较节省服务器资源,相对来说,终端服务器可以承受更多客户机的访问
4. 应用程序更新、维护比较容易
5. 对于某些应用程序,如果需要和数据中心的后端服务器打交道,则终端服务的方式更有利于提高性能
6. 哪怕是低速链路,终端服务的表现还是很不错
7. 可以在任意客户端访问应用程序
8. 哪怕客户端关闭,应用程序可以继续保持运行。
 
终端服务和VDI、SoftGrid各自的特点
 
终端服务、VDI和SoftGrid之间,并不是谁能够最终一统天下,而是各自有自己的特点,如果三者能够联合起来,就可以提供完整的应用程序交付方案。
 
相对于VDI,终端服务有以下缺点,而这些却正是VDI的优点:
 
1. 无法提供一个真正的桌面,而VDI则可以给用户交付一个真正的桌面,尤其是瘦客户端环境,VDI可以让用户感觉就是在使用真实的客户机
2. 终端服务不能确保可以运行所有应用程序,有些应用程序无法和Windows Server 2008兼容
3. 有些应用程序不适合终端服务,这些应用程序在开发的时候,可能没有考虑到多会话的情况,这很适合采用VDI的方式
4. 终端服务的安全隔离性不够好,如果一个应用程序导致服务器崩溃,其他用户都会受到影响,而VDI则是封闭隔离的。
5. 应用程序和数据可以彻底地集中存放和运行,确保企业数据不会丢失。
 
相对于SoftGrid,终端服务有以下弱点,而这却正是SoftGrid的优点:

1. 客户需要离线访问应用程序
2. 应用程序需要和本地其他应用程序进行交互
3. 终端服务器的性能有限,无法承受更多应用程序访问
4. 终端服务无法提供足够好的图形效果,因为这些效果不支持终端服务协议(RDP或者ICA)
5. 终端服务无法提供高度的隔离性和安全性,而SoftGrid的应用程序都是封装在虚拟的环境里,不会对其他应用程序和OS造成影响。
 
但是VDI和SoftGrid也有各自的弱点,无法彻底替代终端服务,必须三者合一,才能给企业提供完整的应用程序交付方案。关键应该看客户的实际需求。