当然,Virtuozzo的共享主机设计意味着,运行在特定服务器上的每个VPS在操作系统内核方面肯定有着同样的基本配置。因此,需要应用和服务运行在VOS上将确定这种方案是否适合特定情形。
VPS在Virtuozzo下的性能相当出众,大多数情况下,开销不到3%。
另外,Virtuozzo管理工具也极为全面。它们允许管理员定制每个虚拟服务器的细节,并且监控单台服务器的性能,它们还提供了全面的报警和报告功能。因为Virtuozzo原本就是为了让每个物理主机处理大量的VPS,所以管理工具也旨在处理大量的服务器版本以及应用软件的动态安装。
要完成构建20台服务器的任务,只要选择预定义模板,然后指定起始IP地址及另外几个全局配置选项,就这么简单。20台服务器可以在短短几分钟内全部构建完毕,即可使用。跨多个VPS安装应用软件同样很简单,只需要拖放操作。所有的应用模板可通过Red Hat软件包管理器(RPM)或者文件树来构建,这样一来,构建定制模板就非常简单。用于把定制代码与Virtuozzo后端程序集成的API也相当全面,为实现VPS创建及改动的完全自动化提供了一条非常便捷的道路。
除了Virtuozzo商业产品外,SWsoft还支持开放源代码版本的Virtuozzo:OpenVZ,该产品可以免费下载。不过,该版本缺少Virtuozzo的优秀管理工具。正是优秀的管理工具使得Virtuozzo解决方案真正脱颖而出。
Xen 3.0让准虚拟化技术成为主流
开放源代码hypervisor把虚拟化技术融入了操作系统内核。
三年前Xen项目引起人们的注意之前,准虚拟化(paravirtualization)闻所未闻。这项技术是指,经过改动的操作系统把特权操作指令重定向至功能薄薄的“hypervisor”层,而不是直接把它们发送到CPU。特权操作指令是裸机代码,负责调整虚拟内存以及与设备之间进行通信。这种方案的效率远远高于在CPU指令层截获特权操作系统并加以重定向,而VMware、微软虚拟服务器及基于硬件仿真的其他虚拟化解决方案都属于后者。
Xen把自己植入到Linux源代码树里面,相当于新的CPU架构。如果你把Linux和作为目标架构的Xen一起编译,最后就会得到准虚拟化功能是内置、而不是外挂的Linux。引导时,Xen小小的hypervisor在Xen Linux主机内核加载前先加载。之后,只要一个简单的命令即可启动Linux、BSD、NetWare,或者经过修改后作为Xen客户运行的其他少数主机操作系统。
Xen的一大优点是,它详细地介绍了物理系统迁移到虚拟系统(这个过程通常很麻烦)的方法:使用dd命令,把引导驱动器从另一个服务器拷贝到本地文件上,然后把Xen指向该文件,最后就可以引导虚拟机了。用不着寻求帮助。
尽管安装及运行简单,但开放源代码的Xen绝不是没有多少特性的简易方案。Xen客户虚拟机运行速度快,这还不足以描述其优点。Xen的速度之快不仅仅体现在计算速度方面。衡量虚拟化性能的一个标准就是吞吐量,而Xen在这方面不负所望。存储和网络I/O速度飞快;说到存储,Xen具有非同寻常的灵活性。客户虚拟机可以使用专用的驱动器或者阵列、现有驱动器上的专用分区,或者安装在主机上的其中一个文件系统上的磁盘镜像文件。
Xen配置参数保存在文本文件中,其管理界面是一小组简单的命令行指令。Novell正在为Xen开发GUI管理界面;不过要是服务器数量有限,Xen简短、可编制脚本的单行命令在启动、关闭、查询虚拟机控制台的状态及连接到虚拟机控制台等方面很出众。把运行中的虚拟机从一个物理服务器迁移到另一个(Virtual Iron和VMWare VirtualCenter等虚拟产品具有的一项特性)也是单行命令即可实现的;Xen声称,其实时迁移的速度最快。确实,迁移过程只需要几分之一秒,在HTTP和SMTP(电子邮件)会话过程中几乎注意不到。由于开销很小,Xen可以完全用于维持高可用性。
XenSource网站声称,“Xen现在是、将来也一直是开放源代码。”相对商业软件,开放源代码项目往往需要作一番取舍:开放社区只有接受这种取舍,才能推广开放源代码运动。但Xen不需要照顾和优待才能获胜。等Xen 3.0在今年第三季度交付,那既是开放源代码项目的里程碑,又是得到赞助公司XenSource支持的商业企业解决方案,它将因为物有所值的优点而成为开放源代码项目的典范。
AMD和英特尔把虚拟化功能嵌入到芯片内
如果软件不必从事所有的繁重任务,性能就会得到提升。
如今AMD和英特尔都提供了硬件辅助的虚拟化技术,这不是什么技术突破,却为今后取得技术突破拉开了帷幕。AMD的安全虚拟机(SVM)和英特尔的虚拟化技术(VT)表明CPU的设计理念及由此而来的架构将会出现巨大变化。
AMD和英特尔都已力图解决同一个问题,最终提出了相似但独特的解决方案。问题就是落后的CPU架构采用软件虚拟化,从而带来了庞大的开销。解决方案就是让CPU处理繁重任务。
这两家芯片生产商采取的第一步都是先使各自的CPU能够截获并重定向改变系统状态的请求。在单机单操作系统模式下,操作系统有权自行改变CPU、芯片组及外围设备的状态。这对实现高效虚拟化而言显然是个障碍。如果对系统所作的改变不生效,客户操作系统实例就会崩溃。维持这样一个不切实际的单机主系统是实现虚拟化的沉重负担。
需要的重要补救方法就是确保:没有哪个操作系统能够以阻止计算机与其他操作系统共享的方式改变系统状态。软件通过执行特权指令来改变系统状态。确认及重定向这些指令属于软件虚拟化一部分最繁重的任务,这也是AMD和英特尔决定首先要解决的问题。
如果操作系统基于SVM或者VT运行,任何特权操作指令在完成之前都能被截获、并被发送到由hypervisor建立的入口点。Hypervisor是“管理管理程序的管理程序”,它成了惟一持有及授予改变系统状态这项特权的主体。譬如说,如果客户要求映射一部分虚拟内存的请求被截获,hypervisor代码就会交出早就为该客户预留的一部分内存,从而满足这个请求。
在虚拟化服务器上,这类特权操作每秒执行几百次或者几千次,因而你能想象得到,如果用软件来处理,情形会相当糟糕。英特尔和AMD把特权指令截获功能嵌入到了CPU里面,并且为新指令添加了保存及恢复扩展系统状态(如果你愿意,也可以是操作系统实例上下文)的功能。VT和SVM的优点不止这些,但截获和上下文是最重要的优点。
AMD充分利用了其AMD64架构的优点,特别是CPU的板上内存控制器。英特尔的内存控制器在CPU外面,因而并不意识到VT。AMD64的板上内存控制器已得到了升级,具有嵌套分页功能(nested paging),从而为每个客户实例提供了各自的内存地址转换表。英特尔的架构需要客户内存地址转换用软件来实现。
两者实施的虚拟化技术还有其他不同之处,AMD的功能远胜过英特尔的。不过,具有硬件加速功能的虚拟化解决方案一开始都会把目光锁定这两种技术之间的重叠之处。随后,我们会看到为了利用AMD64改进之处而专门开发的产品。
网友评论