探析虚拟化技术在云计算中的应用
正因为虚拟化技术的发展与完善,才使得数据中心的资源被激活,同时也使得云计算或网格内的各项资源调度和分配真正意义上实现了灵活性和按需分配。
1.云计算与虚拟化技术
云计算是IT产业的又一次变革,它将各种传统的计算资源、存储资源以及网络资源,通过互联网全部转移到“云中”,用户不必了解设备的位置,也不必了解计算的过程,而只要“按需使用”就行了。其基本原理是使计算从本地计算机或远程服务器中分布到大量的分布式计算机上。云计算是随着处理器技术、分布式技术、虚拟化技术、自动化技术和互联网技术的发展而产生的,它也可以说是能够提供动态资源池、虚拟化和高可用性的下一代计算平台。
虚拟化技术并不是一项新技术,它的发展过程可以概括为图1所示。但正因为虚拟化技术的发展与完善,才使得数据中心的资源被激活,同时也使得云计算或网格内的各项资源调度和分配真正意义上实现了灵活性和按需分配。虚拟化使得用户不用关心特定应用软件的服务方式、不用关心计算平台的操作系统以及软件环境等底层资源的物理配置与管理、不用关心计算中心的地理位置,实现真正意义上的软件作为服务(SaaS)、平台作为服务(PaaS) 、基础设施作为服务(IaaS)。
图1:虚拟化的发展过程
虚拟化是支撑云计算的重要技术基石,云计算中所有应用的物理平台和部署环境都依赖虚拟平台的管理、扩展、迁移和备份,各操作都通过虚拟化层次完成。从云计算的最重要的虚拟化特点来看,大部分软件和硬件已经对虚拟化有一定支持,可以把各种IT资源、软件、硬件、操作系统和存储网络等要素都进行虚拟化,放在云计算平台中统一管理。虚拟化技术打破了各种物理结构之间的壁垒,代表着把物理资源转变为逻辑可管理资源的必然趋势,不久的将来所有的资源都透明地运行在各种物理平台上,资源的管理都将按逻辑方式进行,完全实现资源的自动化分配,而虚拟化技术则是实现这一构想重要的工具。下面将从服务器、存储和网络三方面探讨虚拟化技术在云计算中的应用。
2.服务器虚拟化
服务器虚拟化是将底层物理设备与上层操作系统、软件分离的一种去耦合技术,它将硬件、操作系统和应用程序一同装入一个可迁移的虚拟机档案文件中。虚拟化通过其管理软件将多个物理设备纳入统一的资源池进行管理,从而增强了物理设备和物理设备之间的耦合性。在单一物理服务器上可同时运行多个虚拟机,同时虚拟机之间相互隔离,以提高资源利用率,降低能耗,实现服务器的共享和隔离。虚拟机可以根据其需求弹性增加或减少其分配的硬件资源,提高资源配置的灵活性,以实现资源弹性。虚拟机将整个系统,包括硬件配置、操作系统以及应用等封装在文件里,用于系统快速部署、软件发布、系统备份,可以在不同服务器上不加修改直接迁移正在运行的虚拟机,增强系统的可靠性和可扩展性。图2为服务器虚拟化技术应用于云计算的简单示意图。
图2:云计算服务器虚拟化模型
从技术原理来看,通常使用虚拟机监视器(VMM)或虚拟化平台(Hypervisor)来实现服务器硬件设备的分离、虚拟机的管理及资源的调度。根据虚拟化层实现的不同,可将服务器虚拟化分为寄宿虚拟化和原生虚拟化,根据虚拟化核心技术的不同,又可分别对服务器的CPU、内存、设备及IO实现虚拟化。云计算利用服务器虚拟化技术可实现对虚拟机的部署和配置,通过对虚拟机的快速部署和实时迁移能大大提高系统的效能,还可通过对虚拟机资源的调整来实现软件系统的可伸缩性,确保系统能迅速从故障中恢复并继续提供服务,提高了系统的可靠性与稳定性。服务器虚拟化技术还可实现将高负载节点中的某些虚拟机实时迁移到低负载的节点,把多个低负载的虚拟机合并到一个物理节点,并将多余的空闲物理节点关闭,以提高资源的使用效率,使负载达到均衡,从而使上层应用的性能得到了保障,同时还达到了减少能耗的目的。
目前,全球各大服务器提供商在云服务器及虚拟化软件的研发上都下足了力气,同时也出现了不少虚拟化技术产品,如Citrix的XEN Hypervisor、Microsoft的Hyper-V、Redhat的KVM以及Huawei的UVP等,它们在虚拟化架构、CPU虚拟化、内存虚拟化、客户0S及虚拟机迁移、存储迁移等多项虚拟化技术上都有各自的优势与特点。如Hyper-V采用微内核的架构,兼顾了安全性和性能的要求,其底层的Hypervisor代码量很小,且不包含任何第三方驱动,因此具有高效率的VMbus架构,并完美支持Linux系统;而KVM是一个开源的系统虚拟化模块,它使用Linux自身的调度器进行管理,相对于Xen其核心源码很少,但KVM的虚拟化需要硬件支持,是基于硬件的完全虚拟化。
3.存储虚拟化
存储虚拟化(Storage Virtualization)是指对存储硬件资源进行抽象化的表现,通过将一个或多个目标服务或功能与其它附加的功能集成,统一提供有用的全面功能服务。虚拟化是作用在一个或者多个实体上的,而这些实体则是用来提供存储资源或服务,存储虚拟化是一种贯穿于其中,用于简化本来可能会相对复杂的底层基础架构的技术。存储虚拟化的思想是将资源的逻辑映像与物理存储分开,从而为系统和管理员提供一幅简化、无缝的资源虚拟视图(如图3)。典型的虚拟化包括屏蔽系统的复杂性,增加或集成新的功能,仿真、整合或分解现有的服务功能等。
图3:存储虚拟化模型
虚拟存储技术主要包括数据镜像复制技术、数据迁移技术和存储整合。数据镜像复制技术一般来说镜像是在硬件的基础上通过软件来实现,通常使用的远程镜像根据采用的协议不同又分为同步和异步两种技术;数据迁移技术是将历史数据进行转换并装载到新系统的过程,它是新系统成功上线的重要技术前提,也是系统后期业务稳定运行的有力保障;存储整合集中容量分配、供应、以及数据移动能力,为多层 多用户存储环境提供更大灵活性,从而降低成本和系统的复杂性 另外,存储虚拟化实现的方法可分三类:基于主机的虚拟存储依赖于代理或管理软件,它们安装在一个或多个主机操作系统上,比如VMware Server或Virtual Server,从而实现存储虚拟化的控制和管理;基于存储设备的虚拟化,它对后台使用的具体硬件的兼容性要求高,但可以将存储和主机独立起来;既不基于存储设备也不基于服务器的网络虚拟化存储,它在两者之间的网络内部完成。
在云计算构架中,云用户终端没有任何储存设备,他们只管享用“云中”的存储服务,而不需拥有具体的存储设备,也不必了解具体的存储过程。云存储是一个以数据存储和管理为核心的云计算系统,它是一个复杂的存储虚拟化和自动化过程。存储虚拟化技术应用于云计算存储系统中能够提高硬件利用率,它将整个SAN中的存储资源视为一个存储池,从而掩盖异构存储之间的差异,通过通用管理界面就能进行数据管理和控制,减少互操作方面的工作,同时大幅简化存储资源的分配与管理。存储虚拟化降低了用户访问数据的复杂性,云用户可以*选择最能满足应用需求的存储系统。存储虚拟化还使得每个虚拟机都是在被分配在划定的云计算资源模块中工作,内存、磁盘等和数据安全密切相关的存储资源相互之间实现了资源隔离,虚拟机中的数据与信息形成相对独立的资源,保证了数据的隔离性和安全性。
4.网络虚拟化
虚拟化的计算资源和存储资源最终都以网络形式为用户提供服务。如何通过虚拟化技术提高网络资源的利用率,如何让网络具备灵活的可扩展性和可管理性,这些都是云计算网络研究的重点。网络虚拟化能使不同需求的用户组访问同一个物理网络,但逻辑上却进行一定程度的隔离,使其保持相对的独立性,以确保网络的安全使用。通过网络虚拟化技术 可把多个封闭的用户组设置在单一物理基础设施上,更能确保整个网络保持高度的实用性。安全性、可管理性和可扩)展性。网络虚拟化安全、弹性、易管理和自适应的基础网络特征,能充分满足服务器、存储设备等云计算所需其他虚拟化技术对现有网络带来的挑战。
云计算的基本架构主要包括云服务器、存储和网络,基于云计算的网络架构又可分为数据中心网络、跨数据中心网络和泛在的云接人网络三个部分(如图4)。
图4:云计算中网络层次
数据中心网络虚拟化包括核心层虚拟化、接入层虚拟化和虚拟机网络交换。核心层网络虚拟化是数据中心核心网络设备的虚拟化,可提高资源的利用率以及交换系统的灵活性和扩展性,为资源的动态伸缩和灵活调度提供支撑;接入层虚拟化实现数据中心接入层的分级设计,支持新的以太网技术和各种灵活的部署方式;虚拟机网络交换通过虚拟网络交换机和物理网卡虚拟化,在服务器内部形成相应的交换机和网卡功能。
数据中心之间通过跨数据中心网络进行计算或存储资源的迁移和调度,我们可以通过构建大范围的二层互联网络来进行大型的集群计算,也可以通过构建路由网络连接来满足多个虚拟数据中心提供云计算服务。在跨数据中心网络各层间进行虚拟化的横向扩展,还有利于数据中心规模的扩大,同时又不会影响网络管理拓扑。另外,云计算中心通过泛在的云接入网络为云用户提供各项服务。由于云用户分布广、数量大,且接人方式各不相同,为此泛在的云接入网络具有较强的适应性,能为云用户提供更为安全可靠的数据存储保障,能够兼容多种方式接入和不同的终端,使更多的用户能够使用云计算服务,具备可扩展性,能够方便的接入新的云计算,以提供更为快捷服务,同时在物理网络上利用虚拟化技术划分多个逻辑子网络,网络之间具有相对的独立性,以保证云计算服务的安全使用。