虚拟技术作为重要的计算机支撑技术,在云计算中发挥着关键作用。得益于虚拟化软件技术,云计算实现进程已提前到来。
虚拟化计算可以存在于计算机任何层面之间,从应用程序到最底硬件层,将真实层面虚拟,取代真实层面面向上一层,将上下两层的关系进行去耦合,使下层透明化,上一层面向虚拟层即可实现操作功能。
当然,虚拟化技术是软件技术,是对硬件的功能模拟,需要复杂语义和机制进行控制和协作实现,这意味着开销的增多,对性能也有一定影响,不过随着虚拟化技术的不断发展和基础平台性能的不断提高,这一问题已得到很好的解决,使云计算的推广有了很好的时机。
服务器虚拟化是云计算基础平台的核心部分,通过对服务器虚拟化技术进行解析,展示了云计算服务推广所需的生产平台,对经营云服务的公司具有一定的指导作用。
1 服务器虚拟化技术及价值优势
虚拟化的定义有很多,可归纳总结为逻辑技术,以集成抽象方式访问(调用计算机资源,基于物理机制,但不受物理限制。虚拟化对任何硬件资源都可虚拟,例如,中央处理器(CPU)、内存、硬盘和输入,输出(I/O)接口;也可以对软件环境进行虚拟,例如,操作系统(文件系统和应用程序等。虚拟技术的这种内涵决定了它在云计算中的核心支撑地位,对于云,首先是虚拟资源池,无池就无集成。
服务器虚拟化技术是重中之重,是将系统进行虚拟化应用于服务器之上的技术,物理服务器被虚拟成多个服务器,面向应用集中化处理,多台服务器处理的程序或数据,通过虚拟技术放置到1台服务器进行处理,能跨越物理平台而不受物理平台的限制。
云计算是将IT资源进行全部虚拟化,服务器虚拟化技术与此目的一致。
产品基于应用,同样做虚拟化必然要遵循市场,在成本和经营间要体现价值才能走向商用化领域。前面讲到的时机,使服务器虚拟化技术体现了巨大的价值优势,分析如下:
1)降低运营成本。信息化服务商的经营转型,集约化的管理要求成本必需严格控制,投资趋于精细化。企业IT化运营成本,主要集中于数据中心的投资,其中涉及两部分:一是硬件和许可服务支持的投入成本;二是运行维护成本。服务器虚拟化不仅能充分发挥服务器性能,并且依靠强大的虚拟化服务环境管理工具使得管理自动化,减少了人工干预。数据中心的总体投资呈大幅下降趋势,在成本管控上体现出巨大的成本节约空间。
2)应用平坦化,平台得以透明化。现有数据中心存在多平台。这意味着应用的复杂度大幅增加,不同的平台,要考虑操作系统和中间件等各层面问题,应用在各平台的发布、整合和管理上存在巨大的调试难度,应用投放市场的周期相应过长。服务器虚拟化技术能很好地解决这个难题,应用与硬件平台隔离,底层的环境变化调整次数大幅降低,将应用创建发布至虚拟平台上即可,相当于为平台进行封装,跨越了平台的限制。
3)提升产品投放效率,加快应用对市场需要的响应速度。现在数据中心部署应用大致会经历以下步骤:挑选物理机,安装中间件,安装应用,配置,测试和运行。应用发布周期为数天。应用部署需要人员全程跟踪,不同领域不同模块的人员在交流时存在理解问题,容易导致环节交接处出错。虚拟化的服务器技术,使得应用部署周期大幅缩短,只需以下几个简单步骤:输入激活配置参数,拷贝虚拟机,启动虚拟机和激活虚拟机,周期一般为十几分钟。显然,虚拟化服务器技术对于应用部署和对市场需求的快速响应存在天然优势。
4)创新型备份和恢复技术,实时迁移提高服务可用性。服务的稳定不间断提供,是云计算服务提供商首要考虑的。旧型数据中心采用多物理机、多人工备份和可用性管理工具来保障故障时服务的恢复。服务器虚拟化后的数据中心、虚拟化的资源对应每个虚拟机,被虚拟机管理程序封装和隔离,针对每个虚拟机进行备份操作,操作后的镜像可以根据要求动态迁移至新的虚拟机或新的物理机上。动态迁移技术基于虚拟池,不局限于某一台物理机,这使得服务可用性在多物理机动态迁移中得到自动提升。
5)整合资源,提升资源利用率。云计算的普及是伴随着资源的低效应用而生的,集中化资源管理被赋予新的生命,这是云计算推广的重要时机。据Coogle报告,企业数据中心的硬件资源利用率在5%一20%之间。采用服务器虚拟技术,在原应用不变的基础上,集中在某一台物理机上,使得物理资源的利用率大幅提高,相应减少了硬件的投入,节约即是财富。
6)绿色。全球发展的今天,政府要求通过技术革新,降低资源的损耗。这也是个重要的时机,导致云计算备受推广,IT界几乎是达成共识,强力推进。服务器虚拟化计算在提高资源利用率的同时,能对能耗进行有效管理,关闭限制X86(微软计算机体系架构)服务器和应用程序。除此之外,对运行环境的温度进行控制,降低配套设备如空调的大量耗电,整体性达到绿色低碳的目的。
2 服务器虚拟化关键技术
服务器虚拟化是对硬件的抽象和对虚拟的管理。
服务器虚拟:一是对3种基础硬件资源CPU、内存、设备与I/0进行虚拟化;二是依靠虚拟机实时迁移这种辅助技术,对资源虚拟城池进行统一调度和使用。服务器虚拟化关键技术解析如下:
1)CPU虚拟化。
将一个物理CPU虚拟成一个虚拟CPU,一个物理CPU只能处理一个虚拟CPU的指令,不能对应多个虚拟CPU的指令。操作系统可以使用一个或多个虚拟CPU,这些虚拟CPU在系统中是相互隔离的。
CPU的虚拟化面临的难题是操作系统要在虚拟化环境中执行特权指令功能。目前的操作系统大多基于X86架构,在设计时被要求直接运行在物理机上,完整拥有整个底层物理硬件。对于CPU而言,在X86体系中有4个运行级别,分别为RingO(指令层级),Ring1,Rin92和Ring3。特别是RingO级别,可执行任何指令,包括CPU状态的修改,类似这样的指令,被称为特权指令,也只能在Rin90级别中完成。
虚拟化的X86架构,要求操作系统与底层硬件之间要加入虚拟层,而Rin90只能运行在虚拟层,这导致操作系统的特权指令不能直接运行在硬件上,操作系统如中断处理等特权操作便不能完成。正是这个难题,导致基于X86体系架构的CPU虚拟化实现难度较大。
为了解决这个难题,业界在初期提出了全虚拟化和半虚拟化2个软件方案。