云平台动态弹性扩展关键技术研究

(整期优先)网络出版时间:2021-03-09
/ 3


云平台动态弹性扩展关键技术研究

耿贞伟

云南电网有限责任公司信息中心

摘要:随着云技术的逐渐成熟,各类云平台也开始得到推广使用,现阶段市场上除了主流的阿里云、百度云外,还有若干中小规模的云平台,为不同的用户提供了多样化的服务。从用户角度来说,这些云平台的性能如何,是否符合自身的业务需求,是选择云平台时必须要考虑的问题。动态弹性扩展能力,就是衡量云平台性能的重要指标,也是需要测试的重点内容。本文首先介绍了云平台测试的通用流程,随后着重介绍了基于虚拟化技术的IaaS层弹性扩展机制、基于容器引擎的应用层弹性扩展机制,并通过实验对某云平台的这一性能进行了验证。结果表明该云平台可以满足使用需求。

关键词:云平台;IaaS;虚拟化技术;分布式存储;容器引擎


云平台是大数据时代的产物,可以支持超高速数据运算、海量化数据存储,以及创建虚拟机、建立资源池、软硬件监控等功能。随着云平台应用领域的扩宽、使用人数的增加,对云平台的性能、功能都提出了更高的要求。这种情况下进行动态弹性扩展测试,可以为云平台的自我完善,以及改善用户的使用体验提供必要的支持。

1.云平台测试通用流程

现阶段关于云平台的性能测试技术,大体可以分成2种类型,常规的是借助于特定的测试软件,与云平台相连接完成测试;还有一种就是本文所述的通过对云平台进行动态弹性扩展,检验该平台的可扩展能力、容错能力和兼容效果。以第二种为例,云平台测试的通用流程分为4个步骤:

步骤一:自定义配置。根据用户需求、遵循测试规则,在操作界面进行自定义配置。配置工作主要包括对文件的配置、对界面的配置以及对控制指令的配置等。步骤二:发送指令,开始云测试。使用云平台自带的客户端,进入测试环境。基于虚拟机提供的镜像测试环境,更加稳定和可靠,并且支持自定义测试,实用性更强。步骤三:采集各类测试数据。根据测试内容的不同,采集测试中有价值的数据,数据暂时存储到虚拟数据库中,在整个测试结束后将统一进行数据的处理。步骤四:制作测试报表,方便用户更加直观的了解测试结果,评估云平台的性能。测试流程如表1所示。

画布 3

图1 云平台测试通用流程

2.云平台动态弹性扩展关键技术

动态扩展能力是云平台的基本能力之一,它能够对云平台的运行性能和服务质量产生直接影响。近年来,关于云平台动态弹性扩展性能的测试技术日益丰富,从应用效果来看,每种测试技术均有自身的优势和不足。本文选取了应用较广、具有代表性的三种测试技术并进行了简要分析。

2.1基于虚拟化技术的IaaS层弹性扩展机制

(1)虚拟化技术

云平台在运行中,需要以极高的速度处理海量的数据,这就对物理设备的性能提出了更高的要求。虚拟化技术可以将物理设备虚拟化,在虚拟环境下实现物理设备的所有功能,一来为运行监督、灵活调控提供了便利,二来也能够灵活配置系统资源,确保数据处理能力,保证云平台各项功能的稳定运行。目前较流行的虚拟化技术包括Open Stack以及VMware vCloud等。

(2)弹性扩展机制

对比来看,虽然经过虚拟化的物理设备,在运行速度、处理能力等方面均得到了较为明显的提升,但是随着用户需求的多样化,也出现了资源不够分配或是严重浪费的情况。为了解决这一问题,需要引进弹性伸缩机制,以实际需求为参考,对虚拟机资源进行合理配置。目前一种常用的方法,是借助于虚拟机复制、迁移等途径,对资源池中的资源进行调配,但是在实际应用中也存在一些问题,例如重新分配后的资源,必须在虚拟机重启之后生效。高频率的关闭、启动虚拟机,必然会对云平台的软、硬件造成损害。有研究人员提出了一种“预拷贝”机制,在不影响虚拟机正常运行的前提下,将资源在主/副虚拟机上完成迁移,实现了动态弹性扩展。

2.2云平台中间件层弹性扩展机制

(1)分布式存储技术

云平台提供的云存储功能,可以为用户提供超大容量的存储空间。为了减轻云平台的运行负荷,需要使用分布式存储技术,将数据按照一定的标签进行分类,然后分别存储到不同的虚拟数据库中。该技术的运用,一方面显著提升了云平台存储容量的上限,另一方面也能够支持多个云服务器之间利用节点实现数据迁移,达到负载均衡。基于分布式存储技术提高云平台的弹性扩展能力,需要做好2项工作。第一是元数据的分配。这一过程中会使用到静态子树划分技术,将元数据分配到若干个独立的节点上;第二是数据的透明迁移。通过算法优化,寻找不同节点之间的最优迁移路径,以更低的损耗,更快的完成数据的动态迁移。

(2)分布式内存数据库

现阶段许多云平台使用分布式处理开发框架,满足海量数据处理的弹性需求。在数据存储方面,传统的硬盘存储因为容量上限不高,导致存储成本上升。分布式内存数据库不仅提供了更高的容量上限,而且这些内存数据库分散在不同的虚拟服务器上,对降低服务器运行负载和提高数据检索与调用能力也有积极帮助。分布式内存数据库在推广应用过程中,还需要解决节点负载分配与云平台资源调度之间的协调性问题。两者之间的协调性越好,则云平台的动态弹性扩展能力越强,这也成为下一步技术创新的重点。

2.3基于容器引擎的应用层弹性扩展机制

(1)节点负载均衡技术

云平台在运行过程中,实时数据量会有明显的波动。虽然利用虚拟机迁移可以在一定程度上实现资源的合理分配,但是在瞬时涌入大量数据的情况下,仍然会出现负载明显上升、云平台响应延迟的问题。节点负载均衡技术可以通过灵活调控节点的开闭,提高云平台的弹性扩展能力。在云平台负载增加的情况下,启动热节点,将多余的负载转移到新的虚拟机节点上,保证云平台的数据处理效率,以及各项服务的稳定提供;当负载减小或是恢复正常后,将热节点关闭,降低了云平台的运行能耗和使用成本。在节点的选择上,有Gemfire节点、Spark节点等几种类型。虽然不同节点的控制方式、负载转移机理存在差异,但是从实际应用效果来看,都能够满足虚拟机运行需要。

(2)Linux容器引擎和Docker容器引擎

在云平台的测试中,可以将需要测试的应用打包移植到容器引擎内,进行虚拟运行。由于容器引擎是一个完全独立的虚拟空间,既可以支持各项测试的开展,同时又不会对云平台的运行造成影响。现阶段常用的容器引擎主要分为两种,一种是Linux容器引擎,属于内核虚拟化技术,可以支持一些常规应用的虚拟化测试。技术优势在于隔离效果好,安装和移除操作十分方便。另一种是Docker容器引擎,也是目前功能较为完善、应用范围较广的一种开源容器引擎。可以支持应用程序分解、基础映像设计、配置测试部署等操作。除此之外,Docker容器的资源占用更少,可以针对云平台的一些个性化功能进行测试,在弹性扩展方面表现更加良好。

3.云平台动态弹性扩展性能的实验研究

3.1硬件设施

为了验证某云平台的动态弹性扩展性能,开展了以下实验。实验云平台的系统功能如表1所示。

表1 某云平台系统功能选型

云平台功能 产品

计算资源 刀片服务器

资源池化 VMWare vSphere 5.5

数据库中间件 Gemfire

系统监控 VMware vRealize Operations

在上表中,VMware vRealize Operations可实现对操作系统、中间件和应用程序进行监控,监控频率默认为30s,本文设置的监控项包括:CPU使用率、内存使用率、磁盘每分钟读取速度、磁盘每分钟写速度等。

3.2实验过程

云平台中每个Gemfire节点的内存分配为8G,4个vCPU,默认开启一台server节点。实验数据为浮动车数据,进行车路匹配操作,分别以200万条递增,最多为1000万条;通过实时交通大数据处理云平台资源调度策略进行云平台的资源调度,观察在云平台资源池内实际使用的虚拟机数量的变化;同时通过多次实验测试计算所需的时间,并取其平均值。随着数据量的递增,虚拟机节点数和运算时间也会发生相应的变化,具体情况如表2所示。

表2 云平台弹性扩展实验结果

虚拟机节点数 数据量大小 处理时间

(台) (万条) (ms)

2 200 462

4 400 438

6 600 471

8 800 450

10 1000 459


3.3结果分析

根据表2中所得实验数据,每次实验中需要处理的数据量以200万条递增,并且保证每台虚拟机节点上平均分配100万条数据。在虚拟机节点数从2台增加至10台,数据量从200万条增加至1000万条的过程中,云平台的数据处理时间在438-471ms之间波动,表明系统性能较为稳定,负载均衡效果较为理想。此外,实验也表明,根据云平台实时处理数据量的变化,灵活增加或减少虚拟机节点的数量,可以提高动态弹性扩展能力,在保证云平台稳定运行、各项服务稳定提供等方面具有一定的优势。

结语:作为衡量云平台使用性能的关键指标,如何准确的测试动态弹性扩展性能成为云平台开发者和使用者共同关注的焦点问题。虚拟化技术、分布式存储技术和基于容器引擎的节点负载均衡技术等,可以从不同的维度评估云平台的弹性扩展性能。在性能评估实验中,利用这些技术观察随着数据量的增减变化,系统处理时间的波动幅度,从而验证云平台弹性扩展性能,为其改进、优化提供必要的参考。


参考文献:

[1]贾翔龙.分布式应用弹性支撑机制的研究与实现[D].上海交通大学.2016.

[2]朱鑫,秦秀磊,王联华,等.弹性分布式缓存动态扩展方法研究[J].计算机科学与探索,2012(07):251-252.

[3]郭爽爽,李群.面向复杂负载特征和性能需求的云数据库弹性动态平衡问题研究[D].2015.