一、 什么是虚拟化


虚拟化有很多解释的方法,不同的厂商有不同的解释。今天我们这里探讨的是Windows Server 2008R2的虚拟化解决方案,那我们这里就那微软虚拟化的定义来解释,微软认为虚拟化是将一个计算机的资源从另外一个计算机中分离。这是微软的原话,理解起来可能有些困难,下面我们以举例的方式说明。


其实微软的虚拟化解决方案是包含桌面虚拟化、服务器虚拟化、表示层虚拟化、应用虚拟化等几个方面。


 


桌面虚拟化(Virtual PC):


桌面虚拟化其实就是虚拟操作系统,虚拟机常用的架构有两种:寄居架构、裸金属架构。


*寄居架构(如:VPC):虚拟化管理层运行在主机操作系统之上,依靠主机操作系统来模拟硬件设备,以便在其上运行虚机。其优点是对物理硬件要求低,但是性能却和物理主机相去甚远,因此无法用于高负荷的生产环境。这仅仅是虚拟化的起源,我们今天讲的虚拟化跟Virtual PC是有本质的区别的。 本文来自菜鸟技术网

*裸金属架构(如:Windows Server 2008R2中的Hyper-V组件):直接在硬件上运行虚拟化管理层,其特点是性能比较好。

桌面虚拟化(Virtual PC)的基本原理(寄居架构):我们传统使用计算机的方式是,在计算机硬件上安装一个操作系统,这个操作系统上有若干个应用软件,其实我们使用的是应用软件,而不是操作系统,但是操作系统必须得有。而且在这单一的环境下这一套硬件上门只能安装一个操作系统。我们这里说的虚拟化就是指的资源分离,实际上就是在同一时间在同一个硬件上同时启动多个操作系统,从而在这多个操作系统上面分别可以不同的应用软件,虽然是在同一时间启动,但是互相之间并不干扰。实现的基本方式是,在硬件上安装操作系统,然后再操作系统下安装Virtual PC应用软件,或者是VMware Workstation等软件,然后再在应用软件下创建虚拟磁盘或虚拟操作系统(也就是俗称的做虚拟机)。可以满足一般的测试需求以及一些简单的应用。这样的缺点是虚拟操作系统访问硬件资源需要通过Virtual PC应用软和操作系统跨两层才能访问等到硬件资源,并且层的通信协议不同中间必须有协议的转换,也就是说通过Virtual PC实现的虚拟化即便是你的硬件配置足够,但是速度会很慢。并且Virtual PC纯32位的,无法使用Virtual PC做出64位的虚拟机。 cnwan.com.cn

 


服务器虚拟化


Windows Server 2008R2是集成的Windows功能(裸金属架构);在单一物理机器上运行多台独立的虚拟机;是支持Hyper-V技术的单独产品。服务器虚拟化实现的方式较桌面虚拟化(Virtual PC)发生了改变,如下图一所示说明了Hyper-V的架构。


对于图一我们从下往上看,最底层的还是硬件,但是需要注意的是硬件一定要支持虚拟化。硬件的上边这一层就是Hypervisor(简称Hyper-V)只有300KB左右的小程序,微软的Hyper-V管理层仅用于管理CPU和内存,而不包含底层物理硬件的驱动程序,所以管理层显得比较瘦。由于不包含硬件驱动,所以代码量比较小,仅有300多K,即:虚拟机和硬件之间只隔了300多K的薄薄一层,因此性能、安全性和兼容性要更好一些。并且所有的通信协议、端口全部统一大大的缩短了虚拟机访问计算机硬件的实际时间。这个300多KB的程序在我们用Windows Server 2008R2安装系统的时候就创建了,安装完系统后需要在服务器管理中添加相应的角色即可。物理机的操作系统是其第一个虚拟机。

在Hyper-V在往上就是内核模式,内核模式在往上就是用户模式,熟悉Windows的工程师都知道Windows一直是采用的双核模式(即内核模式和用户模式)。仔细分析图一会发现Windows Server 2008R2不同的是在内核模式下多了一个VM Bus(虚机总线),虚机总线要比Virtual PC的模拟连接方式效率高。www.cnwan.com.cn

在内核模式之上的用户模式出了除了一系列虚拟机的服务和进程以外剩下的就是虚拟操作系统了,由图一我们可以看出,Windows Server 2008R2虚拟化架构就是在计算机硬件上安装的第一个操装系统称做事根分区,其他的虚拟机称做为子分区,不论是根分区还是子分区,都是直接通过Hyper-V层访问硬件资源。这里注意,前提条件是第一个操作系统(根分区)必须启动。
 


WindowsServer2008R2的虚拟化_虚拟化
应用虚拟化

其实它是一种服务器客户端分布部署的技术,主要是解决在客户端计算机上不能同时安装或运行有兼容性问题的应用程序的问题,把需要在PC计算机上运行的应用程序部署到服务器。客户端直接通过网络访问部署在服务器上的应用程序,对于用户界面就想在本机上运行一样。如果是在域环境下管理员可以随意调整每个账户访问应用程序的权限。

 

表示层虚拟化 内容来自cnwan.com.cn

表示层虚拟化是原来Server2003中的终端服务这个功能演变而来的主要的功同应用层虚拟化类似,也是将应用程序部署在服务器上,然后客户端通过网络访问应用程序。但是不同的地方是Server2008中的终端服务可以在公网上部署,客户端在任何地方只要能连接上因特网通过IE浏览器就可以访问。而应用层虚拟化仅限域环境下或者同一子网内,在公网上部署比较困难。


虚拟化的优势表现在服务器整合以及解决客户端应用软件的一系列问题 内容来自cnwan.com.cn

一些中小企业,不同的应用跑在不同的服务器上,无法将所有的应用整合到一台服务器上;比如说数据库的应用需要在Linux平台上运行,邮件服务器需要在Windows系统下运行。并且服务器的硬件资源利用率不是很高,这样的话一方面是需要投入一定的硬件资源(服务器);另一方面所有的服务器要24小时消耗电量。Windows Server 2008R2虚拟化解决方案就是在一台服务器上创建多个虚拟机然后将不同的应用分别部署在不同的虚拟机上。这样大大的建设了硬件的投入、电量的消耗,并且所有的应用集中整合通过微软的管理工具也方便了管理。除了服务器整合的应用场景外,其实对于我们工程师来讲利用Windows Server 2008R2虚拟化解决方案可以更方便的搭建测试平台。如现在我们的MS业务需求,给客户出方案之前完全可以把我们要出的方案利用Hyper-V搭建虚拟环境做一些必要的测试。

对于客户端应用软件的一系列问题,上面我们提到了表示层虚拟化可以将客户端的软件部署在公网的服务器上,客户端无需安装直接通过IE浏览器走80端口访问。而针对企业子网内或者是域环境下可以利用应用层虚拟化方案将客户端需要应用软件部署在企业内部。


 


二、Windows Server 2008R2 Hyper-V的系统要求


1. CPU必须满足以下三个要求:


* 支持硬件虚拟化功能,Intel-VT以及AMD-V 并在BIOS设置中开启。


* 支持64位扩展技术(Intel EMT-64/AMD x64)并在BIOS设置中开启。

* 支持硬件数据执行保护 。


2. 检查方法:


(1)启用主板的虚拟化选项(在BIOS中设置)。


(2)检查CPU是否支持Intel VT或者AMD-V,即:CPU必须支持虚拟化;否是64位的CPU。(使用EVEREST软件查看)。


(3)检查CPU是否支持DEP(数据执行保护),(使用EVEREST软件查看) 。 菜鸟网

注意:Hyper-V 不支持Itanium (安腾IA-64)处理器;目前在PC机上安装Windows Server 2008R2利用Hyper-V搭建测试环境建议选择因特尔集成显卡的平台,不建议在独立显卡的平台上使用。

二、 Windows Server 2008R2 Hyper-V的配置copyright cnwan.com.cn


(一)安装角色


1、安装Hyper-V ,安装完Server 2008R2操作系统后,如需使用Hyper-V需要在服务器管理器中添加相应的角色。点击“开始”菜单,依次选择“管理工具”-“服务器管理器”调出服务器管理器界面,单机“角色”然后再右侧窗口点击“添加角色”,如图2所示。
  本文来自菜鸟技术网

WindowsServer2008R2的虚拟化_虚拟化_02
2、出现角色添加向导,点击下一步,勾选“Hyper-V”,再次点击下一步,如图3所示。
WindowsServer2008R2的虚拟化_虚拟化_03
3、创建虚拟网络并选择网络适配器,如果计算机上安装多个网卡这里都会列出,可以根据实际需求选择不同的网卡,选择了网卡并创建了虚拟网络后后,虚拟机可以通过此虚拟网络访问其他计算机或者因特网。依次点击“下一步”-“安装”开始安装Hyper-V角色,如图4所示。
WindowsServer2008R2的虚拟化_虚拟化_04
4、最后安装完成安装提示重启计算机即完成了Hyper-V的安装,如图5所示。 
WindowsServer2008R2的虚拟化_虚拟化_05