虚拟化技术是云计算平台的基础,其目标是对物理计算资源进行整合或划分,自它提出之日时就获得了广泛应用,现在甚至成为云计算管理平台中的关键技术层面。按照虚拟化实现的层次,可以将其分为完全虚拟化和半虚拟化技术,这二者的区别就在于是否修改虚拟操作系统以获取特定指令。虚拟化技术为云计算管理平台的资源管理提供了资源调配上的灵活性,从而使得云计算管理平台可以通过虚拟化层整合物理资源或划分物理资源。
基于虚拟化技术的云计算管理平台大多具有如下功能:应用定义、服务管理、集群管理以及物理机-虚拟机管理。应用定义模块的功能是为云计算管理平台的最终使用者定义需要的机器类型,可以创建、修改、删除每一种机器类型;一组机器的集合被成为实例,云管理平台的用户可以对实例进行整体管理,也可以对实例中的机器进行启动、关闭以及删除等单独操作。服务管理模块管理云计算管理平台中的所有服务,包括对账户、用户以及租户的管理、事件服务的管理、安全服务的管理等。集群管理模块能够在地理位置分散的机器,为全部关键应用、服务等集中分配资源,从而提供了一个单一而又有效的管理环境,降低了管理总成本。云管理平台可以同时管理物理机和虚拟机,对物理机提供的是启动、关闭等基本功能;对虚拟机提供的则是整个生命周期的管理,包括创建、运行、维护以及迁移等。
1 云计算管理平台的资源模型
要对云计算平台进行管理首先需要描述其管理目标,这是管理操作的基础。云计算平台的资源类型多种多样,已有OVF、BPEL等资源建模格式,但它们都无法对云管理平台管理提供完整支持。该文接下来针对云管理平台的各种资源类型进行建模,同时说明了云计算管理平台中各种资源在资源建模时需要关注的性能指标。
云管理平台的首要功能是云服务,调用云服务的流程符合SOA组合服务的调用流程,所以对云服务建模时可以参照BPEL资源建模格式。首先对云服务进行细分:直接提供服务的云服务是不可再分的原子云服务,调用其他服务完成云服务功能的是组合云服务。组合服务的调用流程可能有多个,当要计算组合服务资源的依赖关系时,要综合考虑不同调用流程被调用的概率,加权计算所有的调用流程所造成的资源依赖关系。云管理平台上衡量云服务优劣的性能指标主要包括响应时间、***连接数以及可用性,不论是原子云服务还是组合云服务,衡量的性能指标都是相同的。
虚拟化计算资源和存储资源是相互独立的,两者通过虚拟化网络资源连接起来。不论是虚拟化计算资源还是存储资源,都会被配置到一个虚拟化网络中,每个虚拟化网络包含多个虚拟化计算资源和存储资源。处于不同虚拟网络中的虚拟化计算资源和存储资源间是相互隔离的,同一虚拟网络内部的通信不占用虚拟网络的资源,而虚拟网络内部与外部的通信会占用虚拟网络带宽,所以在考虑虚拟网络资源的性能需求时,需要综合考虑虚拟网络内部和外部两方面的因素。不管是哪种类型的资源都包含使用的物理资源、性能指标、所属虚拟网络等几个方面的属性。虚拟化资源的种类多种多样,所以无法找到一种通用的性能指标,可以根据虚拟化资源的实际运行情况选取合适的指标:例如对存储资源有每秒读写次数,读写速率,可靠性(备份、恢复机制等)等指标。
物理资源的类型划分和虚拟资源相同,但物理资源因为其规模、属性等特征是固定的,因而难以像虚拟资源那样调整拓扑结构;一般来说物理资源大多是以服务器附加网络的方式提供资源。计算资源服务器主要提供CPU和内存,RAID等存储类资源可以扩展其资源架构,但其计算资源难以扩展。可以将物理资源分为服务器及网络设备两大类,服务器中的计算、存储等虚拟化资源会占用其物理资源,而和计算、存储等虚拟资源直接相连的虚拟网络也会占用服务器上的网络带宽资源;对网络设备来说,如果虚拟网络连接的是链路两端服务器上的虚拟节点,那么此连接也会消耗此网络设备上的网络带宽资源。物理计算资源的性能指标主要包括CPU个数、性能,内存总量、内存占用率等;物理存储资源的能指标主要包括存储总量、读写速率等。
2 资源管理策略
在接收到服务请求后,云计算平台通过管理子系统调配相应的资源,并提供具有合适性能指标的云服务。在这一过程中,云平台内资源管理的目标主要包括如下几个方面:
资源规模管理。云管理平台中最基本的资源管理需求是对资源的规模管理,此处的资源规模管理主要是资源的伸缩,即资源的增减。对不同级别的资源分别进行记录,每一级别的资源都有对应的性能指标,从而减少资源浪费。
虚拟资源与物理资源的绑定关系管理。云平台中的虚拟资源与物理资源之间的绑定关系应该是可变的,否则的话云平台的资源规模伸缩能力无疑会受到一定限制。需要注意的是,虚拟资源的迁移可能产生性能上的损失,所以要借助合适的算法重新确定虚拟资源和物理资源之间的绑定关系。
资源性能。云平台不仅要提供资源管理功能,而且还需要满足一定的性能指标。云管理平台可以在不同物理节点间进行虚拟资源的调度,从而在一定程度上提供虚拟资源服务的性能。
提高资源利用率。在实现主要功能的基础上,提高虚拟资源的性能是资源管理的首要需求。如果一个节点的性能利用率降低,那么它的相对功耗就会相应提高,而提高节点利用率就可以降低单位计算性能的电能消耗,所以尽量提高物理资源节点的利用率是降低资源管理平台整体功耗的有效途径。
云管理平台在进行资源管理时,主要有集中分配、分散部署、均衡负载以及就近部署四周资源管理策略。可以将所有的虚拟资源都部署在少数几个物理资源上,这一资源管理方式称为集中部署,集中部署一方面可以提高整体的物理资源利用率,另一方面还能够降低云管理平台内的系统资源碎片;另外还可以实现动态地操作服务器的目的。与集中部署相反的是,分散部署把所有资源分散部署到尽可能多得资源节点上,其目的是防止因为物理节点的失效而导致的虚拟资源不可用的情况,从而达到云管理平台的容灾性能。集中部署和分散部署在资源管理方式上是两个极端,均衡负载的资源管理方式将虚拟资源部署到工作负载最轻的几台物理节点上,从而达到负载均衡的目的,以提高云管理平台的服务性能。就近部署的方式考虑的是云管理平台的传输负载,将虚拟资源部署到最近的物理节点,从而降低了云计算平台的网络传输负载,降低了虚拟资源间的通信延迟。不论是哪种资源管理策略,在进行资源管理时都是为了提高云管理平台的性能,这其间不同的管理策略涉及的因素也不同,有的考虑了资源的能耗,有的考虑了资源的负载。在选择资源管理策略时,需要根据实际情况,综合考虑各种因素,选择最适合的资源管理策略。
3 管理策略的实现
云管理平台要管理的操作可以分为三部分:云服务管理、虚拟资源管理及物理资源管理。管理云服务的内容一般包含“初始化云服务的实例、绑定租户应用和云服务、解除租户应用和云服务间的绑定关系、删除云服务实例等”。初始化云服务实例要求云管理平台整合云服务需要的计算、存储资源、运行环境等信息,并为云服务提供相关设置和配置,如设置环境变量等。例如,当要初始化云服务到某虚拟化计算资源节点时,云管理平台首先为租户申请一个满足条件的虚拟机,在虚拟机上安装Agent后启动,然后将云服务应用软件传入虚拟机操作系统,***在虚拟机内安装需要的软件、设置相应环境变量;如果采用预先定义好的虚拟机镜像或ISO文件,还可以大大简化云服务的初始化流程。绑定操作把租户应用信息和云管理平台已经初始化的云服务实例关联起来,这一过程需要云服务实例提供自身的安全认证密钥,从而保证云服务实例只供被绑定的租户使用。解除绑定的操作和绑定操作是相反的过程。
云管理平台对物理资源的管理主要包括两大方面,首先是监控失效的物理节点和物理节点的资源使用情况;其次是管理物理节点的相关操作,比如启动、关闭等,这些操作都可以通过调用物理节点宿主系统的管理接口实现,另外还可以通过触发物理节点系统内的脚本实现。云就是平台中对虚拟资源的管理主要是虚拟机资源的管理,考虑到虚拟机所处的不同状态,可以将对虚拟机的资源管理分为三种:创建虚拟机的资源管理、启动虚拟机的资源管理及迁移虚拟机的资源管理。创建虚拟机时,实际上只是完成虚拟机文件的创建,虚拟机所需要的CPU、内存等资源暂时还未分配;当创建共享类型的虚拟机时,云管理平台在分配资源时采用的是轮询方式,轮询从虚拟机服务器组中选择一台服务器来创建虚拟机。启动虚拟机时的资源管理策略目的是将虚拟机启动到合适的服务器上,以提高云计算平台资源池中资源的利用率;举例来说,如果正在做仿真实验的大量机器负载都不是很大,则可以将这些机器启动子一个服务器上,从而节约IT费用;当这些机器的工作负载比较大时,完全可以再将它们尽可能多地部署到多台服务器上,以实现负载均衡;这样的资源调度策略可以满足不同用户的资源调度需求。