【IT168 专稿】什么是服务器虚拟化?不同的厂商有不同的定义,但其核心思想是一样的,即它是一种方法,能够通过区分资源的优先次序并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。
由于大多数厂商宣传得较多的都是一种基于分区技术的虚拟化,导致很多人会理所当然地认为虚拟化技术就是分区技术。但实际上,虚拟化技术可以通过两个方向来帮助服务器更加合理地分配资源,一种方向就是把一个物理的服务器虚拟成若干个独立的逻辑服务器,这个方向的典型代表就是分区;另一个方向,就是把若干个分散的物理服务器虚拟为一个大的逻辑服务器,这个方向的典型代表就是网格。只不过网格现在还处在试验阶段,没有开始大规模商业应用。
本文主要阐述前一种服务器虚拟化的发展历史、带来的好处和存在的问题,以帮助我们的读者对虚拟化有一个更清晰的认识。
服务器虚拟化的历史
虚拟化技术源于大型机。大型机上的虚拟分区技术最早可以追溯到上世纪六、七十年代。早在上世纪60年代,IBM公司就发明了一种操作系统虚拟机技术,允许在一台主机上运行多个操作系统,让用户尽可能地充分利用昂贵的大型机资源。随着技术的发展和市场竞争的需要,大型机上的技术开始向小型机或UNIX服务器上移植。IBM、HP和SUN后来都将虚拟化技术引入各自的高端RISC服务器系统中。30多年来,应该说虚拟化技术以及在上述高端产品上的应用日臻成熟。但真正使用大型机和小型机的用户毕竟还是少数,加上各家产品和技术之间并不兼容,致使虚拟化曲高和寡。
随着X86处理器性能的提升和应用普及,人们开始考虑将这一技术导入用户面更广泛的X86平台。早在1998年,通过运行在Windows NT上的Vmware来启动Windows 95的做法让人们惊叹不已。许多发烧友和工程测试人员也开始在PC和工作站领域开始运用这种虚拟方案。近年来,人们开始把这团火烧向PC服务器。
当人们认识到服务器资源的利用率低下以及服务器整合的必要性越来越强,加之64位、多核X86处理器的出现,让单台X86服务器的性能越来越强大,虚拟化开始吸引更多厂商的关注。特别是在Intel和AMD相继宣布将推出内建虚拟技术的处理器,以实现硬件辅助虚拟化,从而改善原来仅通过软件实现虚拟化所带来的性能和稳定性方面的不足。
进入2006年,从处理器层面的AMD和Intel到操作系统层面的微软的加入,从数量众多的第三方软件厂商的涌现到服务器系统厂商的高调,我们看到一个趋于完整的服务器虚拟化的产业生态系统正在逐渐形成。这也使得在过去的一两年时间里,虚拟化开始成为广受关注的热点话题。
服务器虚拟化的价值
通过将服务器资源分配到多个虚拟机,虚拟化支持不同的应用,甚至不同的操作系统在同一企业级服务器上同时运行。每个虚拟机就像一台独立的服务器,但实际上在同一物理服务器内运行。在一台服务器上运行多个应用能够提高服务器效率,并减少需要管理和维护的服务器数量。当应用需求增加时,可以迅速创建更多虚拟机,从而无需增加物理服务器即可灵活地响应不断变化的需求。而且,利用虚拟技术,IT管理员可以在服务器之间移动正在运行的虚拟机,同时保持服务器持续可用。总体来看,各厂商宣传的服务器虚拟化能带来的好处主要有以下几个方面:
1. 减少服务器的数量,提供一种服务器整合的方法,减少初期硬件采购成本
2. 简化服务器的部署、管理和维护工作,降低管理费用
3. 提高服务器资源的利用率,提高服务器计算能力
4. 通过降低空间、散热以及电力消耗等途径压缩数据中心成本
5. 通过动态资源配置提高IT对业务的灵活适应力
6. 提高可用性,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境
7. 支持异构操作系统的整合,支持老应用的持续运行
8. 在不中断用户工作的情况下进行系统更新
9. 支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案
10. ……
而且,随着虚拟化技术的创新发展和应用成熟,相信会有更多的价值被发现——因为虚拟化不是指某一种具体的技术,而是一种新的理念————如何最大化地利用资源、提高效率和降低成本。
服务器虚拟化存在的问题
我们说,虚拟化不是灵丹妙药,不可能解决所有的问题,也不是适用于所有的用户。而且,就目前的发展现状来看,服务器虚拟化仍然存在不少问题。笔者通过回顾各方观点资料,将其面临的一些问题总结如下:
1. 业界还没有统一的虚拟化标准平台和开放协议,提高用户投资风险;
2. 硬件级虚拟化和软件级虚拟化要相互结合才能使系统使用率最大化;
3. 用户导入虚拟化是一个长期的过程,绝非一蹴而就;4. 虚拟化层面还比较低,目前技术上还达不到虚拟化的理想境界;
5. SOA是开发虚拟化应用管理软件的最好方式,但由于需要投入大量成本对已有软件进行改造,因此,只有非常有实力的ISV才会做,从而导致ISV的热情不高,制约其大规模的商业应用;
6. 虚拟化也存在一定风险,把多个应用放到一台服务器上类似于多个鸡蛋放在一只篮子,一旦出现重大硬件故障可能会影响到所有的应用,这种威胁很难消除,除非你在服务器出现故障前,有能力迅速将虚拟服务器转移到另外一台新的物理服务器上;7. 改用虚拟数据中心,最大的困难在于应用迁移,可能是个费时又费钱的过程,而且会面临不少问题;
8. 服务器合并和虚拟化,使用户购买的硬件减少,从而导致服务器硬件厂商的销售量和收入下降;
9. 虚拟化并不是一个百分之百兼容的解决方案,它并不能和所有的应用程序或者所有硬件协调工作,大多数虚拟机都是模拟一个基本的PC环境,而不是让应用程序直接访问主机的硬件资源;10. 软件产业需要重新考虑虚拟化环境中的软件许可方式;
11. 虚拟化并不适合所有的应用,如大数据库系统或者微软的Exchange应用需要占用大量的I/O和内存资源,一般不适合同其它应用程序共享服务器的硬件,即使它们都是在虚拟化的环境中;
12. 移植和管理工具还不够成熟,这也影响到虚拟化的大面积普及。特别是远程管理功能必须改进,同时虚拟化标准需要大力发展,以使得不同的虚拟化平台可以通过网络进行统一管理。13. 虚拟化也许会带来安全隐患。系统级的虚拟化技术有可能让用户在完全不知情的情况下被黑客入侵。不久前,就有黑客在支持“Pacifica”虚拟化技术的AMD 处理系统上成功地演示了这种攻击的可能性,并且被攻入的系统中所安装的安全工具完全没有察觉该攻击。
14. 虚拟化的成本也是个问题,架构虚拟化环境的初期投入成本在百万级左右。
15. 虚拟化技术还不够成熟,目前虚拟化技术只能做到硬件虚拟化,尚无法做到应用程序的虚拟化,导致系统效能延迟。16. 虚拟化还要一两年的时间才能大量被企业采用。现阶段多只停留在灾难备份和测试环境中,国内仅有大型制造业者采用,金融业和其它产业多在观望。
17. 服务器虚拟化要走向流行,从技术角度讲,负载均衡是应用的一个重要问题,这一问题解决得好坏直接影响系统的性能。目前一些厂商的工作负载管理软件只支持单一服务器资源和工作流的管理。
18. 如果软件厂商不愿检测运行虚拟化软件的服务器上的软件,这将考验用户和厂商的关系。检测软件很可能会来自经常为特定垂直行业开发专用软件的单点方案厂商。这些厂商比较小,缺乏在虚拟化环境测试软件所需的资金或技能。第三方软件厂商的软件支持是采用虚拟化技术所面临的“主要问题”。有些厂商不想保证虚拟化服务器上所用软件的质量。19. 对于用户来说,要想充分了解各类服务器虚拟架构则是相当困难的,因为用户不仅要知道虚拟的策略是什么,还要知道什么才是最适合自己环境的架构,哪些架构能够适应存储和网络资源的虚拟需求以及这些架构会在多大程度上将自己与厂商的产品捆绑在一起。
20. 对于国内用户而言,认知度和接受度是一大障碍。厂商们艰涩的概念,让用户们一头雾水。
21. ……
总之,虚拟化是趋势所在。它所带来的诸多好处和利益都让厂商和用户为之着迷,但虚拟化显然也存在不少问题。当然,我们也有理由相信,随着时间的推移和各方的努力,这些问题都会得到不同程度的解决。也许,在这种不断解决种种麻烦的过程中,虚拟化正迎来灿烂的明天。