AD 01

虚拟化让x86服务器"分身有术"

引:谈到服务器的虚拟化,我们常常会想到更高端的企业级产品。事实上,伴随虚拟技术的不断成熟,虚拟已不再是大企业的独享果实,它已经开始进入x86架构的服务器当中。在不久的将来,它也许会出现在我们每一个人使用的电脑当中。

  谈到服务器的虚拟化,我们常常会想到更高端的企业级产品。事实上,伴随虚拟技术的不断成熟,虚拟已不再是大企业的独享果实,它已经开始进入x86架构的服务器当中。在不久的将来,它也许会出现在我们每一个人使用的电脑当中。

  在目前的x86服务器中,虚拟化主要通过软件来实现。虚拟化软件可以将一台服务器变成多台,降低了成本,同时又提高了系统的可靠性,降低了维护难度。这里对业界领先的两套虚拟化软件进行了评测,它们分别来自VMWare 和微软。

  服务器虚拟化是一种听起来太美妙以至于好像不太现实的少数技术之一,但是,它的的确确存在。服务器虚拟化的最初应用是将利用程度较低的服务器硬件设备集中起来,构成由少量计算机组成的高效计算方案。从最初出现到现在,服务器虚拟化已经发展成为一种多用途的解决方福梢匀梅衿骶哂懈叩奈榷ㄐ院透咝У墓芾恚饩褪蛊涑晌葜行墓芾碓辈豢苫蛉钡墓ぞ摺?lt;/P>

  虚拟化的工作原理其实并不复杂,用最简单的话说,虚拟服务器技术就是一种完全通过软件(有些在处理器的固件当中)模拟真实计算机的行为和功能的技术。

  用户根据应用程序的需要装配服务器,所用的工具是鼠标而不是螺丝刀。

  在层层叠叠的软件层次上,最底层的部分是一套普通的操作系统,它直接安装在服务器的硬件设备上。在这个操作系统之上可以建立一个虚拟化层,它会完成重定向和模拟工作,从而形成虚拟机(或叫虚拟服务器)。这两个层加起来统称为“主机”。主机提供一台普通计算机所能提供的所有功能,包括BIOS提供的功能。在主机上可以衍生出任意数量的彼此独立的虚拟机,它们可以拥有各式各样的自定义配置。

  虚拟服务器和真实的服务器一样,如果不给它安装操作系统,它就毫无用处。在虚拟主机上安装的操作系统称为“客户机”(Guest)。安装客户机操作系统和从CD 上引导计算机并安装操作系统的过程一样简单。总之,如果你要问虚拟服务器是怎么运行的,答案是:和一台真实的计算机没什么两样。

  事实上,面对层出不穷的运行窗口,用户很容易迷路:现在正在主机的Windows环境中还是在刚刚安装的4套虚拟客户机系统的某一个当中?虽然用户可能会搞糊涂,但是客户机操作系统以及其中的应用程序不会混淆。每个客户机操作系统都“觉得”它正在控制整个计算机。

  基于软件的硬件

  运行于虚拟服务器上的操作系统和应用程序并不能直接访问物理资源(比如内存、硬盘以及网络端口),而虚拟机位于客户机操作系统和应用程序的更底层,它将会处理这些硬件访问请求。

  真正将虚拟技术变得近乎魔术的秘密在于,世界顶级的虚拟服务器解决方案(比如VMWare ESX Server)可以提供一整套硬件配置,这套硬件配置可以和底层的硬件大相径庭。例如,主机可以模拟一个SCSI控制器最细微的初始化过程,让客户机操作系统“感觉”真有这样一个初始化过程,而事实上系统中根本没有安装SCSI控制器。它还可以将IDE硬盘模拟成SCSI硬盘,将网络共享存储设备映射为本地存储,用一块以太网卡模拟多块以太网卡,在老的操作系统和新的硬件(比如光通道适配器)之间建立连接(老操作系统可能不直接支持新硬件)。用户可以根据应用程序的需要来装配自己的服务器——区别在于,用户不再使用螺丝刀,而是鼠标。

  在一台真正的服务器上安装操作系统和软件是件非常单调乏味的工作。幸运的是,使用虚拟服务器后情况就不同了。当按照需要精心完成一套虚拟硬件的配置之后,你可以将它在当前服务器的磁盘镜像保存为一个文件并将其作为其他客户机系统的模板。在实践中,这是非常实用的功能。用户可以通过拷贝文件实现虚拟服务器的备份。用户还可以通过文件拷贝来创建新的服务器(拷贝Windows必须重新激活并具有合法的授权)或者将现有的虚拟服务器移动到其他硬件平台上。

  虚拟服务器会像普通服务器一样运行,既有好的一面,也有不好的一面。它们会启动、关机、挂起、休眠,甚至会崩溃。如果客户机系统或者它使用的设备驱动程序有bug,那么虚拟服务器也会有bug,但是主机不会受到影响——这就是问题的关键。

   在虚拟服务器中,操作系统崩溃、应用程序挂起或者重新启动,这些都不会对硬件产生任何影响。虚拟服务器出现故障时可以启动备用系统,这个过程是在完全“虚拟”意义上的,但是和实际的备份应急启动过程很相似。即便是某个硬件功能异常,只要启动备份系统的目的是配置和使用新网卡或者是修改存储路径这样的工作,整个过程就会很顺利,就像它是一台真实的计算机一样。

   在大多数情况下,企业的管理系统将会监视虚拟机的运行,就像它们是真实的计算机一样。像HP OpenView 这样的解决方案会使用与管理物理机一样的方式监视虚拟机的运行并与之交互。服务器进行虚拟化之后,提供给用户的配置会发生改变,但是系统日常运行的变化并不大。

  另外,大多数的虚拟化系统都附带了专门的管理软件,可以让系统管理员在中心控制台上管理整个企业内部所有的虚拟服务器,而不必碰硬件就可以拆掉一块虚拟网卡——如此方便,让人大开眼界。虚拟化解决方案的控制台为用户提供的控制功能比传统的工具更加强大。用户可以从一个中心位置根据需要启动或者关闭虚拟机。用户还可以“冻结”系统,这个操作是无害的,能让系统停留在当前的运行状态上;或者使其休眠,休眠时系统的状态数据将会被存放到某个磁盘文件中。管理员可以用备份数据覆盖该磁盘文件,从而恢复到系统原来的状态。所有这些操作都可以十分方便地在一个终端会话下完成。

  例如,如果你的物理存储设备支持卷共享(我们使用的测试平台是一台Emulex SAN 存储交换机以及AppleXserve RAID 磁盘阵列),使用VMware的VMotion 功能,管理员可以暂停一套正在运行的客户系统,然后将其在一台不同的物理服务器上重新启动。只需要极短的时间,管理员就能将服务器A上的所有客户操作系澈陀τ贸绦蚯ㄒ频椒衿鰾上,然后就可以对服务器A进行维护。VMotion 也可以用于资源重新供应。如果某台虚拟机导致其所在的网段拥塞,那么可以将其移动到另外一个通讯不太拥挤的网段中。这个过程非常简单,不要重新插接电缆(顶多只会带来几秒钟的服务中断),不会中断虚拟机的当前会话,也不需要重新启动。

  在多种操作系统并存的环境中(这是情况很常见),解决问题的方法之一就是将每个操作系统安装到独立的虚拟机中。例如,在一台服务器上安装VMWare的虚拟机解决方案之后,我们可以同时运行多种操作系统,包括 Windows 2003Server、Windows 2000、Windows NT4.0、各种Linux版本以及FreeBSD等。 用户甚至可以在虚拟机中安装同一种操作系统的不同版本。Linux应用软件有一个缺点,就是可能对不同厂商提供的特定Linux 版本存在依赖性。要想让分别为Red Hat 7.2 和Suse 9.0 设计的软件同时运行在同一台服务器上,使用虚拟机是惟一的方式。

  虚拟化是一个神奇的东西,但也不是万能的。

  几乎零缺陷的技术

  虚拟化是很好的技术,但并不是万能的,用户添加的虚拟机性能不可能超越作为其运行平台的物理机。通过将应用程序安装到虚拟机上,用户可以更加清楚地掌握这些Linux和BSD的官方支持,这一点和Connectix(微软就是从Connectix购买了Virtual Server 技术)原先的策略背道而驰。另外,VirtualServer 将虚拟机限制为单处理器系统,这样也限制了其性能的发挥。自从2003 年从Connectix 购买了Virtual Server 之后,微软对这件产品的主要贡献在于管理、企业集成以及针对NUMA(非一致内存访问)的调试。其中磁盘分区功能因其允许在很短的时间内恢复安全完好的磁盘镜像,可以供超大规模测试、实验室隔离、以及对安全要求极高的环境使用。 我们非常有把握地认为虚拟化功能将会成为Windows 服务器产品的标准配置。随着Virtual Server价格的调整,以及微软在管理集成方面的不断努力,采用这种产品的价值将会更大。

  应用程序对系统的要求。这些程序的表现会让用户感到惊讶——要么因为它们使用的资源是那么的少(这是比较常见的情况),要么因为它们贪婪地吞噬系统资源。如果必要,你可以将资源消耗大的程序关闭掉。

  虚拟化的优点之一是安全。尽管虚拟机仍然会受到一定的威胁,但攻击一台根本不存在的系统可不是一件容易的事情。幸运的是,进行虚拟服务器系统急救的方法非常简单,只需要使用一个干净的映像覆盖虚拟机的磁映像即可。尽管如此,我们仍然需要小心管理虚拟服务器。

  从根本上说,整合硬件是采用虚拟化技术的惟一原因,并且硬件整合已经得到广泛的青睐。IT 经理需要根据每个部门的具体需要找到虚拟化技术的最佳应用方式。

  虚拟机的价值

  现在的虚拟服务器技术绝不是什么精巧的小玩意,它可以带来实实在在的好处。一套精心设计的虚拟化解决方案的作用包括:

  合并硬件管理,降低成本

  根据需求情况进行资源分配

  安装和配置新系统的时间极大缩短

  应用程序以及操作系统的错误不至于影响系统的整体状态

  降低异质资源管理的难度

  在受控环境中方便测试和查错