简析云计算与虚拟化二者关系
其基本原理是使计算从本地计算机或远程服务器中分布到大量的分布式计算机上。云计算是随着处理器技术、分布式技术、虚拟化技术、自动化技术和互联网技术的发展而产生的,它也可以说是能够提供动态资源池、虚拟化和高可用性的下一代计算平台。
虚拟化技术并不是一项新技术,它的发展过程可以概括为图1所示。但正因为虚拟化技术的发展与完善,才使得数据中心的资源被激活,同时也使得云计算或网格内的各项资源调度和分配真正意义上实现了灵活性和按需分配。虚拟化使得用户不用关心特定应用软件的服务方式、不用关心计算平台的操作系统以及软件环境等底层资源的物理配置与管理、不用关心计算中心的地理位置,实现真正意义上的软件作为服务(SaaS)、平台作为服务(PaaS)、基础设施作为服务(IaaS)。
虚拟化是支撑云计算的重要技术基石,云计算中所有应用的物理平台和部署环境都依赖虚拟平台的管理、扩展、迁移和备份,各操作都通过虚拟化层次完成。从云计算的最重要的虚拟化特点来看,大部分软件和硬件已经对虚拟化有一定支持,可以把各种IT资源、软件、硬件、操作系统和存储网络等要素都进行虚拟化,放在云计算平台中统一管理。虚拟化技术打破了各种物理结构之间的壁垒,代表着把物理资源转变为逻辑可管理资源的必然趋势,不久的将来所有的资源都透明地运行在各种物理平台上,资源的管理都将按逻辑方式进行,完全实现资源的自动化分配,而虚拟化技术则是实现这一构想重要的工具。下面将从服务器、存储和网络三方面探讨虚拟化技术在云计算中的应用。
服务器虚拟化是将底层物理设备与上层操作系统、软件分离的一种去耦合技术,它将硬件、操作系统和应用程序一同装入一个可迁移的虚拟机档案文件中。虚拟化通过其管理软件将多个物理设备纳入统一的资源池进行管理,从而增强了物理设备和物理设备之间的耦合性。在单一物理服务器上可同时运行多个虚拟机,同时虚拟机之间相互隔离,以提高资源利用率,降低能耗,实现服务器的共享和隔离。虚拟机可以根据其需求弹性增加或减少其分配的硬件资源,提高资源配置的灵活性,以实现资源弹性。虚拟机将整个系统,包括硬件配置、操作系统以及应用等装在文件里,用于系统快速部署、软件发布、系统备份,可以在不同服务器上不加修改直接迁移正在运行的虚拟机,增强系统的可靠性和可扩展性。图2为服务器虚拟化技术应用于云计算的简单示意图。
从技术原理来看,通常使用虚拟机监视器(VMM)或虚拟化平台(Hypervisor)来实现服务器硬件设备的分离、虚拟机的管理及资源的调度。根据虚拟化层实现的不同,可将服务器虚拟化分为寄宿虚拟化和原生虚拟化,根据虚拟化核心技术的不同,又可分别对服务器的CPU、内存、设备及IO实现虚拟化。云计算利用服务器虚拟化技术可实现对虚拟机的部署和配置,通过对虚拟机的快速部署和实时迁移能大大提高系统的效能,还可通过对虚拟机资源的调整来实现软件系统的可伸缩性,确保系统能迅速从故障中恢复并继续提供服务,提高了系统的可靠性与稳定性。服务器虚拟化技术还可实现将高负载节点中的某些虚拟机实时迁移到低负载的节点,把多个低负载的虚拟机合并到一个物理节点,并将多余的空闲物理节点关闭,以提高资源的使用效率,使负载达到均衡,从而使上层应用的性能得到了保障,同时还达到了减少能耗的目的。
目前,全球各大服务器提供商在云服务器及虚拟化软件的研发上都下足了力气,同时也出现了不少虚拟化技术产品,如Citrix的XENHypervisor、Microsoft的Hyper-V、Redhat的KVM以及Huawei的UVP等,它们在虚拟化架构、CPU虚拟化、内存虚拟化、客户0S及虚拟机迁移、存储迁移等多项虚拟化技术上都有各自的优势与特点。如Hyper-V采用微内核的架构,兼顾了安全性和性能的要求,其底层的Hypervisor代码量很小,且不包含任何第三方驱动,因此具有高效率的VMbus架构,并完美支持Linux系统;而KVM是一个开源的系统虚拟化模块,它使用Linux自身的调度器进行管理,相对于Xen其核心源码很少,但KVM的虚拟化需要硬件支持,是基于硬件的完全虚拟化。