APP下载

云平台云盘加密性能损耗研究

2021-02-28赵丰收

南京晓庄学院学报 2021年6期
关键词:云盘批量加密

张 浩,赵丰收

(中兴通讯 南京研究所,江苏 南京 210012)

0 引言

当今,虚拟化、私有云、混合云、公有云越来越普及.使用云技术给用户带来了便捷,云平台作为承载用户业务数据的基础平台,除了要保证云平台自身具备强健的安全体系外,还需要应对遇到的各种安全威胁和风险[1].因此,云安全成为了一个迫切的需求.如何保证重要信息在生产、存储、传递和处理过程中的安全性、完整性、高可用性、高可控性,确保用户能够安全、稳定、可靠地使用,成为各大云厂商都重点关注的问题[2].

加密是一种通用的安全性手段.虚拟机和云盘是用户数据和业务的载体,当用户对数据安全性要求较高时,通用实现方案是采用对云盘进行加密的方式,提高云盘上用户数据的安全性,规避数据泄露风险[3].

各大云厂商的云平台都已经支持云盘加密这个功能.使用加密技术确保了用户数据安全性的同时,加密云盘和非加密的云盘在使用性能上是否有很大差别?加密带来的性能损耗,是否在用户业务可接受的范围内?通过对三家云主流厂商阿里云、亚马逊、腾讯云的测试分析,可以得到实际的性能损耗情况,均在可接受范围内.

1 相关技术及工具

1.1 云盘加密技术

云盘加密技术主要通过操作系统工具对磁盘分区和数据进行加密,再通过虚拟化层进行解密.各大厂商在加密时,大部分应用了AES加密算法.

图1 创建挂载加密云盘时序图

以用户创建使用加密云盘虚拟机为例,云平台的计算组件、存储组件、加密管理组件间的时序交互流程,如图1所示.

1.2 性能测试工具

1.2.1 Fio性能测试工具

Fio是目前主流的第三方块存储IO性能测试工具,在Linux系统下可以很方便的安装使用。

(1) 安装Fio

在Fio官网下载fio-2.1.10.tar文件,解压后./configure、make、make install之后就可以使用Fio了.

(2) Fio参数

可以使用fio-help查看每个参数,具体的参数左右可以在官网查看how to文档,几个常见的参数描述,如表1所示:

表1Fio参数说明

参数说明direct=1测试过程绕过机器自带的buffer,使测试结果更真实rw=randwread测试随机读的I/Orw=randwrite测试随机写的I/Orw=randrw测试随机混合写和读的I/Orw=read测试顺序读的I/Orw=write测试顺序写的I/Orw=rw测试顺序混合写和读的I/Oioengine=psyncio引擎用pync方式,如果用li-baio引擎,需要yum install li-baio-devel包rwmixwrite=30在混合读写的模式下,写占30%

(3) Fio测试场景及生成报告详解

通过Fio命令,丰富的参数配置,可以很容易的构建测试场景.通过命令执行的结果报告,可以很方便的查看执行了多少M的IO、平均IO带宽、IOPS、响应时间、cpu利用率等信息.

1.2.2 Rally压力测试工具

Rally可通过模拟高并发场景的压力测试来测试云环境的性能和规模.Rally可对已经部署完成的云环境(deployment)进行测试.Rally 能够自动安装和运行tempest来测试云环境.通过Rally自带的脚本或者修改新增脚本,可以很方便的对加密云盘相关的各类操作进行批量压力测试.

Rally安装比较简单,从github上下载源码安装,rally本身提供了virtualenv,下载完源码之后,加上-v参数安装,便会在env环境下安装了.

# git clone https://github.com/stackforge/rally.git

# cd rally

# ./install_rally.sh-v

2 测试方案设计

2.1 测试目的

加密性能测试,根据典型的云产品架构、用户部署操作、用户业务数据量等因素来判断,分析设计需要执行的性能测试条目.构建类似真实的业务场景,创建同存储源加密云盘和非加密云盘,确认加密有效后,检测整个加密云盘的全流程的性能和非加密云盘的性能差异,主要包括两方面:

(1) 云盘和虚拟机的控制面业务部署时的性能.

(2) 云盘虚拟机部署之后,业务使用中的性能差异[4].

2.2 性能测试需求分析

总体上看,用户需要在具备安全性的前提下,提高系统存储资源利用率.用户对于性能的预期是,加密后的云盘性能尽可能接近非加密的云盘性能.

从用户的需求引入本次测试的需求:通过测试性能损耗,提供量化的性能差异结论,并分析是否满足用户需求.

2.2.1 控制面的需求

对创建部署云盘和虚拟机的处理性能、时间特性,这两方面需求进行测试.用户执行某一操作时,系统响应的时间,是否小于用户期望值;并发操作时,系统响应的时间是否足够迅速;多个用户,同时进行操作请求时,云平台的执行效率如何.

达成以上需求,要对加密云盘和非加密云盘分别进行测试,再做汇总比对.

2.2.2 业务面的需求

从用户云盘虚拟机部署后,业务运行时数据处理能力这个维度,测试加密云盘是否影响用户业务运作.加密盘的数据性能,在有大量的数据读取/写入时,读写速度上要能满足用户的业务日常运作时,以及峰值运作时的要求.这部分也需要和非加密云盘,做差异对比测试[5].

2.3 测试环境

在阿里云、亚马逊云、腾讯云这三家公有云上购买云盘虚拟机资源.

配置选择了典型基础配置:双核CPU(Xeon 2.5GHz)/独享4G内存/10GE网络/ 操作系统选用政企及电信业务主流使用的Linux.

测试通过各家云平台提供的客户端和API接口进行.

图2 测试方案图

2.4 测试方案

整体测试方案设计,如图2所示:

2.4.1 控制面性能测试

在云平台云盘典型部署操作时,对比测试加密云盘和非加密云盘的性能差异.

通过压力测试工具,批量压测20个同存储池的非加密云盘(单盘100G)和20个加密云盘(单盘100G):先后对两类云盘做创建、挂载、解挂、删除等功能操作,20个云盘批量进行,一共进行5组测试,取平均值后再用来对比性能差异[6].

依据测试方案和需求特性,选用Rally压力测试工具来完成控制面性能测试.Rally内置了大量常用的云平台业务操作脚本,安装Rally后通过配置或者修改编排,可实现对批量部署的性能测试.

测试主要涵盖了以下四个云平台加密涉及的主要流程:批量创建加密云盘再挂载到虚机、批量解挂载云盘再删除云盘、批量创建加密云盘同时启动虚机、批量删除虚机同时删除加密云盘.以批量挂载云盘到虚机为例,使用了Rally已有的用例并发执行“创建云盘→创建虚机→挂载虚机”任务,并发创建很多虚机,做批量独立挂载的性能测试.通过配置改造创建20个云盘,同时挂载到一台虚机上(事先创建好),自定义scenarios编写yaml如下:

[root@host-192-168-32-1 rally]# cat samples/tasks/scenarios/attach-volume.yaml

---

Volumes.attach_volume:

-

args:

size: 1

instance: "3111a522-faf2-4e30-8e16-114c1a95cc52"

runner:

type:"constant"

times: 10

concurrency: 10

sla:

failure_rate:

max: 0

执行任务,即可构建测试

rally task start attach-volume.yaml

********

2.4.2 业务面性能测试

模拟测试加密的云盘和普通云盘在部署虚拟机之后,业务的读写性能差异.Fio可以针对文件系统或者裸块设备进行读写访问,有丰富的配置选项可以设置.

在虚拟机内安装Fio工具,可以模拟业务对于云盘的io读写,通过配置的调整,对云盘进行性能稳定性、数据一致性测试.对加密盘和非加密盘完成读写测试,进行性能对比.规划一共进行5组测试,再取平均值[7,8].

首先,预置创建一台虚拟机,给虚机挂载来自同一存储池的两个同样100G大小的数据云盘,一个盘加密另外一个为非加密.再通过在虚机内部署的Fio工具,先后对加密盘和非加密盘完成读写测试.最后,查看测试数据,进行性能对比.

测试场景,分小块1KB和大块1MB的两种,涵盖随机读、随机写、顺序读、顺序写、随机读写7∶3等.覆盖模拟各种可能的业务场景做测试,1KB的Fio命令设计,如表2所示:

表2 Fio命令

3 测试结果及分析

3.1 云盘控制面性能测试

100G云盘创建、挂载、解挂、删除,20个同时并发操作,测试5组,取平均后的性能情况,如表3所示:

表3 控制面板性能测试数据

从实测得出的云盘各类业务操作性能数据看,阿里云、亚马逊云、腾讯云,加密云盘和非加密云盘的性能耗时非常接近,每个操作差异很小,均在1 s以内.用户即使有大批量的控制面部署或销毁加密云盘存储资源操作时,时间差是秒级的,用户查看进度条,基本上感受不到操作落地的明显性能差异.

3.2 云盘业务面性能测试

阿里云(格式化XFS系统)1KB小块和1MB大块读写性能测试,加密云盘和非加密云盘的读写性能差异结果,如表4所示:

表4 阿里云读写性能数据

亚马逊云(格式化XFS系统)1KB小块和1MB大块读写性能测试,加密云盘和非加密云盘的读写性能差异结果,表5所示:

表5 亚马逊云读写性能数据

腾讯云(格式化XFS系统)1KB小块和1MB大块读写性能测试,加密云盘和非加密云盘的读写性能差异结果,如表6所示

表6 腾讯云读写性能数据

图3 各大云厂商加密云盘性能损耗

通过Fio工具1KB小块和1MB大块的批量读写实测,较好的模拟了各类业务日常状态数据读写的可能情况,并且可覆盖业务可能的峰值读写情况.依据Fio测试结果,汇总三大厂商数据,云盘各类读写性能数据,如图3所示.阿里云、亚马逊云、腾讯云,加密云盘的性能均比非加密云盘稍差,整体损耗在0~10%以内.企业云、电信云和公有云用户对于性能要求较高,在加密性能损耗的要求一般在10%以内.以此为度量指标,三大云厂商的云盘加密性能可达标,对业务影响也均在用户可接受的范围内[9].

4 总结

云盘加密作为云平台的重要的安全性保证,一直以来被各大厂商广泛应用.本文面向多个主流云平台,选取合适的性能测试工具,针对云环境下的云盘数据存储安全性能,系统性的做了测试分析.

通过测试整个云盘的生命周期管理性能和业务性能,系统性的量化分析,使得用户对于云盘加密的性能有了更加深入了解.各大云平台厂商云盘加密损耗对于用户的性能影响,均在较小的范围内(0~10%).可用于指导用户,在云平台云盘加密资源的申请应用环节,更有把握做到精确规划、有的放矢.

猜你喜欢

云盘批量加密
一键搬家!轻松实现从百度网盘到阿里云盘的直传
批量精装房项目工程信息管理综述
云南:铁路“520”运输鲜花4万余件 高铁批量运输创新高
批量提交在配置分发中的应用
编辑精选APP
保护数据按需创建多种加密磁盘
电力安全防护加密装置
加密与解密
云端难题巧解决
阿里发布SSD云盘 性能大幅提升