随着信息技术产业的高速发展, 云计算已成为变革性的IT资源供给模式。云计算技术通过整合分布式资源, 构建可动态扩展、灵活调度、跨域共享的虚拟计算环境, 能够满足各行业中不同的应用需求[1]。随着云计算技术的广泛应用, 云计算安全问题越发引起关注, 尤其是虚拟资源可迁移性引发的数据不可控问题。由于用户无法确定数据在云中的存储位置, 给传统密码技术的应用带来了挑战, 从对依附物理硬件的可控数据加密, 转变成对云环境中“动态不可控”数据的加密[2-4]。云数据的存在方式发生变化, 亟须密码技术为其提供灵活的服务模式。
为适应云中虚拟资源的迁移特性, 基于张晏等[4]提出的云环境下密码服务资源池和安全服务云框架[5], 本文提出了密码云的概念, 就是以云模式提供密码服务的密码系统, 基于软件定义密码的思想, 将密码计算资源虚拟成资源池, 按需向密码用户提供基于网络的密码部件、密码中间件、密码应用系统三种模式的云服务, 具有密码服务按需部署、运算能力灵活扩展、密码资源动态调度、密码管理统一高效等特点。密码云的基础设施是密码服务器集群, 密码服务器的核心是密码模块, 向云用户提供个性化的密码服务。为提供高速、可靠、可扩展的密码服务, 保证密码云数据中心的实时性和稳定性至关重要, 同时易于满足服务等级协议(Service-Level Agreement, SLA)[6]。
密码云不仅要求密码运算的准确性和安全性, 而且要求任务处理的实时性[7]。提高云数据中心任务执行效能的有效方法之一是合理的任务调度, 当前的云任务调度算法均以云任务为调度主体, 采用任务流图或启发式算法达到期望的调度效果[8]; 而应用于密码云中时, 用于加解密任务数据的密钥调用环节未被考虑在云任务调度过程当中, 密钥调用环节处理不当将会给任务调度带来很大的障碍。例如, 用户加密传输大量数据信息, 此时就要向密码云发出密码服务请求, 同时向密钥管理中心申请相关密钥。不同密码算法需要不同密钥, 所以当用户提交多种类型的密码任务时, 就需要申请切换密钥, 造成了时延; 如果密码任务执行环节低效, 同样会形成较大时延。若不能最大限度减少时延, 将会影响密码服务质量和用户体验, 甚至为攻击者提供盗取密钥信息的可能[7]。因此任务实时响应形成的安全效益将比系统能耗更为重要。
研究密码云数据中心的实时任务调度问题, 达到实时高效的目的, 成为当前研究云环境下密码服务的关键。本文提出了在密码云数据中心内的一种资源调度模型和算法,主要工作如下:
1) 提出了一种密码云服务框架, 构建了一种基于滚动窗口的密码任务调度器模型;
2) 提出了一种吞吐量阈值调度算法(Throughput Threshold Scheduling Algorithm, TTSA), 配合虚拟密码机(Virtual Cipher Machine, VCM)[9]放置、迁移和删除策略, 动态调整密码云资源, 为密码云任务创造最优的处理环境;
3) 通过仿真实验验证了TTSA的实时性调度效果。
1 密码任务调度模型本文针对涉及密钥管理的云任务调度问题, 在考虑密钥调用的前提下, 将其转化为传统的云任务调度问题, 并建立吞吐量分析模型, 提高密码服务质量和任务调度处理效率。
1.1 密码云服务架构密码任务实时调度是密码云数据中心提高效能的关键环节。提高密码云数据中心的工作效能, 就需要满足用户的客观需求, 同时还需要安全高效的密钥调用环节来保障密码任务完成。如图 1所示, 密码云服务架构中, 密钥的管理调用与密码任务的实时调度相结合。下面描述密码云服务架构:
1) 用户通过业务云管理平台向密码云管理平台发起密码任务请求, 同时向密码管理中心提交身份认证请求, 获得申请调用密钥的权限。
2) 密码云数据中心响应密码任务请求, 同时密码管理中心下发相应密钥的ID, 与密码任务数据包聚合, 形成“ID任务”, 在密码任务实时调度器中度量任务最早截止时间, 滚动优化并按次序执行“ID任务”。
3) 实时调度器根据密码云数据中心中的密码服务器工作状态, 创建、迁移或合并VCM, 实时更新密码服务器状态信息。
4) 虚拟密码机(VCM)[9]指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整密码机系统。创建成功的VCM作为密码任务的执行实体, 完成由实时调度器分配的“ID任务”。
5) 待该用户在某密码服务器上的所有任务完成后, 密码管理中心对该密钥进行销毁。
1.2 基于滚动优化的实时调度器模型密码云数据中心是一种专用云平台, 由密码服务器集群组成, 采用虚拟化技术将底层硬件设备虚拟化(包括CPU、内存、存储和硬件密码模块), 实现对硬件资源的充分利用。该密码云数据中心可描述为密码服务器的无限集合Hk={h1, h2, …}。用有n个元素的集合Ha表示活跃的密码服务器, Ha∈H。任意一台密码服务器hk可描述为用每秒百万条指令(Million Instructions Per Second, MIPS)定义的CPU性能、一定数量的内存、网络带宽。即hk={ck, rk, nk}, 这里ck, rk和nk分别表示第k台服务器的CPU能力、内存和网络带宽。每台密码服务器容纳一个VCM集合Sk={V1k, V2k, …, Vjk}。对于vjk, 本文分别使用c(vjk)、r(vjk)和n(vjk)表示分配给该VCM的CPU能力、内存和网络带宽。并且根据密码云中心的实时负载程度,多台VCM可以在一台密码服务器上运行并动态地开启和关闭;同时,VCM还能在密码服务器集群中进行动态迁移,充分利用计算资源保证密码任务高速完成。图 2给出了基于滚动窗口的实时调度器模型。
在传统云任务调度策略中, 一旦任务被调度, 就把该任务发送到虚拟机或服务器的本地队列中。为满足实时条件下新到达任务与已到达未处理任务的对比调度, 本文设计了滚动优化窗口, 将所有待处理任务放在一个滚动优化窗口中, 采用云任务调度算法不断重复调度, 如贪心算法、蚁群算法、遗传算法和粒子群算法等; 同时动态调整活跃服务器数量, 以便服务商将闲置资源外租其他租户。滚动窗口的优势有:一是将任务和系统资源的实时信息充分利用, 将动态优化问题转化为静态时间片局部优化问题, 避免了任务调度信息考量的单一性和局限性; 二是具有最早截止期属性的任务将被优先调度,保障任务的执行时效,有利于提高任务的完成率;三是任务等待在滚动窗口中,结合系统实时状态完成多次调度过程,有利于提高VCM的吞吐量和主机资源的利用率。
1.2.2 调度器模型调度器模型包括滚动优化窗口、聚合模块、实时控制器和VCM控制器等主要部件。聚合模块将任务数据包与用户密钥ID编排聚合, 生成带有用户密钥特征的“ID任务”;滚动优化窗口容纳着新到达的任务和正在等待执行的任务; 当一个新任务到达时就触发一个调度进程, 把新任务和滚动优化窗口中所有的等待任务重新调度[7];实时控制器主要用于确定任务的最早截止期和系统状态信息;VCM控制器确定VCM的实时状态信息, 以及控制VCM的创建、删除、迁移和合并。
借鉴文献[7],当用户提交一个新任务时,调度器执行过程如下:
步骤1 聚合模块先处理用户任务和密钥ID, 形成具有用户密钥特征的“ID任务”, 触发新的调度进程。
步骤2 实时控制器负责系统状态信息的收集,比如进行中任务的剩余执行时间、上一任务的执行总时间、活跃服务器列表、各个VCM的配置信息以及滚动优化窗口中任务的截止期和数据大小等。
步骤3 在滚动优化窗口中对待调度任务按任务最早截止期进行非降序排序,采用以最早截止期为导向的贪心算法调度优化任务分配策略。
步骤4 实时控制器确定滚动优化窗口中的等待任务是否可以预期内完成。若能预期内完成,则继续等待调度;否则由VCM控制器增加新VCM以预期内完成任务。
步骤5 实时更新负载均衡和资源调度信息,比如滚动优化窗口中的任务队列、执行时间和密码服务器活跃状态等。
步骤6 当待执行任务被调度后,将任务发送到指定VCM上。
另外,当任务量超出服务器荷载时,VCM控制器依据超载密码服务器资源状态信息决定是否开启新的主机,并利用虚拟机迁移技术均衡负载,达到密码服务可靠高效的目的。
实时控制器和VCM控制器协同工作,根据任务最早截止期动态分配密码任务、调整密码服务器和VCM,最大限度地减少密码任务完成时间。
1.3 密码任务模型本文考虑一组随机的独立密码任务集合T={t1, t2, …}。一个任务Wi由一个用户提交, 并且能够通过一个参数集表示, 也就是ti={ai, li, di, fi}。其中:ai、li、di和fi分别表示任务Wi的到达时间、长度、最早截止期和完成时间[7]。令rtjk表示在密码服务器hk上虚拟密码机Vjk的准备就绪时间, 同样, 假设stijk为任务Wi在Vjk上的开始时间。由于VCM运算单元的异构性, 假设TCTijk为任务Wi在Vjk上的执行时间:
$ TC{T_{ijk}} = {l_i}/c({v_{jk}}) $ | (1) |
假设ftijk为任务Wi在Vjk上的完成时间, 可由式(2) 计算:
$ f{t_{ijk}}{\rm{ = }}s{t_{ijk}}{\rm{ + }}TC{T_{ijk}} $ | (2) |
另外, 使用xijk表示密码任务与VCM之间的映射关系, 如果任务Wi分配到虚拟密码机Vjk上, 则xijk=1;否则, xijk=0。密码任务结束时反向判断密码任务截止期是否得到满足, 即
$ {x_{ijk}} = \left\{ \begin{array}{l} 0,\;\;\;\;\;\;\;f{t_{ijk}} > {d_i}\\ 1 或 0,\;\;f{t_{ijk}} \le {d_i} \end{array} \right. $ | (3) |
任务处理效率主要由VCM配置、密码服务器状态、聚合速度、调度算法决定, 其中以VCM配置和密码服务器状态为主。图 3是密码任务的整个执行流程。
密码任务处理效率集中体现在图 3的步骤5~步骤12, 在相关密钥已加载到对应密码服务器的情况下将跳过步骤10和步骤11。为刻画任务调度处理的高速性和实时性, 本文设计了吞吐量阈值模型。假设本模型中的吞吐量为随机时间段[t1, t2]内的测量值;令TCijk为任务Wi在虚拟密码机Vjk中处理时产生的吞吐量;以TCRjk表示Vjk的有效吞吐率, 即VCM处理密码任务产生的吞吐量与VCM的总网络吞吐量TCTijk之比。吞吐量TCijk可以根据式(4) 计算:
$ T{C_{ijk}} = TC{T_{ijk}} * TC{R_{jk}} $ | (4) |
因此, 一台密码服务器执行密码任务的整体吞吐量为:
$ \begin{array}{l} T{C^{{\rm{exec}}}} = \sum\limits_{k = 1}^{|{H_a}|} {\sum\limits_{j = 1}^{|{V_k}|} {\sum\limits_{i = 1}^T {{x_{ijk}} * T{C_{ijk}} * f{t_{ijk}}} } } = \\ \sum\limits_{k = 1}^{|{H_a}|} {\sum\limits_{j = 1}^{|{V_k}|} {\sum\limits_{i = 1}^T {{x_{ijk}} * TC{T_{ijk}} * TC{R_{jk}} * f{t_{ijk}}} } } \end{array} $ | (5) |
密码服务器吞吐量的产生可分为两种情况, 服务器上所有的VCM都是空闲的和一部分VCM空闲的。当服务器上所有的VCM都空闲时, 通过动态电压频率调节(Dynamic Voltage and Frequency Scaling,DVFS)技术将该服务器的电压设为最低值, 以便服务商将闲置资源外租其他租户[10]。在此情况下, Vjk无密码任务, 即此时有效吞吐率TCRjk=0,那么该密码服务器的吞吐量为:
$ T{C^{{\rm{allIdle}}}} = 0 $ | (6) |
如果服务器上只有一部分VCM空闲, 由于VCM空闲时其总网络吞吐量很小可忽略, 则可以假设空闲VCM的有效吞吐率与非空闲时的有效吞吐率一样, 也就是说, VCM的吞吐率为TCRjk,然后可得到此时的吞吐量为:
$ \begin{array}{l} T{C^{{\rm{partIdle}}}} = \sum\limits_{k = 1}^{|{H_a}|} {\sum\limits_{j = 1}^{|{V_k}|} {T{C_{ijk}} * TC{R_{jk}} * t_j^{{\rm{partIdle}}}} } = \\ \sum\limits_{k = 1}^{|{H_a}|} {\sum\limits_{j = 1}^{|{V_k}|} {\left( {T{C_{ijk}} * TC{R_{jk}} * \left( {\mathop {\max }\limits_{i = 1}^{|T|} \left\{ {f{t_{ij}}} \right\}-i{t_k}-\sum\limits_{i = 1}^{|T|} {{x_{ijk}} * TC{T_{ijk}}} } \right)} \right)} } \end{array} $ | (7) |
其中:tjpartIdle表示密码服务器Sk上只有一部分VCM空闲时密码服务器中Vjk的空闲率。
据以上分析, 从式(5)~(7) 中可得到综合考虑执行时间和空闲时间时的吞吐量为:
$ \begin{array}{l} TCI = T{C^{{\rm{exec}}}} + T{C^{{\rm{allIdle}}}} + T{C^{{\rm{partIdle}}}} = \\ \sum\limits_{k = 1}^{|{H_a}|} {\sum\limits_{j = 1}^{|{V_k}|} {\sum\limits_{i = 1}^T {{x_{ijk}} * TC{T_{ijk}} * TC{R_{jk}} * f{t_{ijk}}} } } + \\ \sum\limits_{k = 1}^{|{H_a}|} {\sum\limits_{j = 1}^{|{V_k}|} {\left( {T{C_{ijk}} * TC{R_{jk}} * \left( {\mathop {\max }\limits_{i = 1}^{|T|} \left\{ {f{t_{ij}}} \right\}-i{t_k}-\sum\limits_{i = 1}^{|T|} {{x_{ijk}}*TC{T_{ijk}}} } \right)} \right)} } \end{array} $ | (8) |
假设该时间段内有S个周期, 在每个周期中密码服务器Sk上的VCM个数是动态变化的。令tp表示第p个周期的时间, 即密码服务器资源信息状态的刷新时间,然后可得到第p个周期的吞吐量:
$ TC = TCI/S * {t_p} $ | (9) |
根据以上吞吐量分析统计, 可测出一台密码服务器在每一段刷新时间内的吞吐量。一台密码服务器的吞吐量越大, 表明任务数据处理量越大, 负载越高, 资源占用率越高, 数据处理效率就会降低; 反之, 吞吐量越小, 负载越低, 资源占用率越低, 但性价比就会降低。服务器最大网络带宽通常都是有限的, 或者说是固定的。因此, 密码服务器的吞吐量保持在合适的范围内才能令服务器工作在最佳状态下。本文选取吞吐量最佳范围为服务器最大网络带宽的70%~85%[11], 即吞吐量阈值, 基于文献[11]对吞吐量与网络带宽的比较分析以及以往的实验经验选取。当吞吐量比例较小时, 会造成网络资源浪费; 太大时会减缓数据传输, 影响用户体验。密码服务器吞吐量保持在吞吐量阈值区间内主要是根据系统状态动态地开启和关闭服务器以及动态创建、删除和迁移VCM来实现。
2 算法TTSA 2.1 吞吐量阈值决策在本文算法中, 新任务将被添加到已经传送到新分配VCM上的任务后面。因此任务Wi在Vjk上的开始时间stijk可以计算为:
$ s{t_{ijk}} = \max \left\{ {r{t_{jk}}, {a_i}} \right\} $ | (10) |
其中:rtjk表示Vjk的准备就绪时间, 每传送一个新任务Wq到Vjk上就更新它。VCM新的准备就绪时间为:
$ r{t_{jk}} = s{t_{qjk}} + TC{T_{qjk}} $ | (11) |
分配密码任务到VCM的过程中, 在满足截止期的条件下, TTSA要尽可能地在吞吐量阈值范围内增大吞吐量。该算法首先从密码任务集合Q中选出截止期最早的任务, 然后, 计算密码任务在VCM上的开始时间和执行时间。如果任务的最早截止期可以得到满足, 说明该任务是可以合理分配的, 接下来计算密码服务器的实时吞吐量, 选择吞吐量最小的密码服务器中的VCM来执行任务。如果某些密码服务器的吞吐量超过吞吐量阈值上限, 则调用函数ScaleUpResource()增加VCM, 以完成任务; 如果某些密码服务器的吞吐量低于吞吐量阈值下限, 则调用函数ScaleDownResource()进行VCM迁移合并, 从而达到资源合理高效利用的目的[12]。
当任务不能成功分配到现有的VCM上时, 调用函数ScaleUpResource()创建新的VCM, 新VCM能够在任务截止期内完成不能继续分配的任务。本文通过以下三个步骤确定是否创建新的VCM:
步骤1 在当前活跃服务器上直接创建新的VCM, 不对其他VCM进行迁移。
步骤2 如果步骤1中不能创建新VCM, 则利用虚拟机迁移技术把服务器的空闲资源汇聚集中到一台服务器上, 然后把VCM创建在该密码服务器上。
步骤3 如果前两个步骤都不能成功地创建VCM, 则重新开启一台服务器, 在该服务器上创建新VCM。
令st(hk)、ct(Vjk)、mt(Vjk)分别表示服务器hk的开启时间、虚拟密码机Vjk的创建时间和迁移时间。虚拟密码机的迁移时间定义类似文献[13], 表示如下:
$ mt({V_{jk}}) = {\rm{ }}r({V_{jk}})/n({V_{jk}}) $ | (12) |
值得注意的是, 使用不同的步骤创建新的VCM, 其准备就绪时间是不同的, 也就是任务的开始时间stijk是不同的。
因此,当使用不同的步骤时,对应不同的任务开始时间,可表示如下:
$ s{t_{ijk}} = \left\{ \begin{array}{l} {a_i} + ct({V_{jk}}),\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{步骤1}}\\ {a_i} + ct({V_{jk}}) + \sum\limits_{p = 1}^{|P|} {mt({V_{pk}})} ,\;\;{\rm{步骤2}}\\ {a_i} + st({S_k}) + ct({V_{jk}}),\;\;\;\;\;\;\;\;\;{\rm{步骤3}} \end{array} \right. $ | (13) |
1) 首先选择一个吞吐量尽可能接近吞吐量阈值上限, 同时剩余MIPS尽可能少的服务器容纳VCM, 然后选择一种能够在任务截止期内完成任务的虚拟密码机。
2) 如果找不到这种状态的服务器或虚拟密码机, 则把剩余MIPS最小同时吞吐量较小的VCM迁移到剩余资源相对较小的密码服务器上。
3) 当VCM迁移后, 继续检测Vjk是否可以创建在VCM迁出的服务器上。
4) 若可行, 则创建VCM并检测任务Wi能否在截止期内完成;若不存在VCM迁移, 或者任务不能在截止期内完成, 则开启另一台主机, 并在其上创建VCM并检测任务Wi能否在截止期内完成。
2.3 ScaleDownResource()减少资源策略当密码服务器为VCM提供的资源多余时, 虚拟机在理论上可以重新调整或者合并到尽可能少的服务器上, 然后关闭空闲服务器, 这样可以节省资源, 使密码云数据中心发挥更大效用。
1) 如果某些密码服务器的吞吐量小于设定的吞吐量阈值下限, 则关闭这些VCM。如果之后某些服务器上不存在活跃的VCM, 则关闭这些服务器。
2) 令SH和DH均表示活跃服务器的集合, 但SH是按吞吐量升序排列, DH中主机排序与SH相反。若集合SH中的某台服务器上所有VCM迁移到DH中的一台或多台密码服务器上, 然后将迁移源主机从集合SH和DH中删除并关闭。
3) 如果源服务器上的VCM并非全部迁移, 则放弃VCM的迁移。
3 实验与分析本文将通过模拟实验测试TTSA的性能, 基于算法特征定义了三种基准算法进行比较,分别是无滚动优化的TTSA算法(Non-RH-TTSA)、无虚拟机迁移技术的TTSA算法(Non-Migration-TTSA)和无滚动无迁移的TTSA算法(Non-RH-Migration-TTSA)。这三种算法与TTSA算法的区别如下:
1) Non-RH-TTSA算法(NRTTSA):与TTSA算法的区别是没有采用滚动优化窗口。
2) Non-Migration-TTSA算法(NMTTSA):与TTSA算法的区别是没有采用虚拟机迁移技术。
3) Non-RH-Migration-TTSA算法(NRMTTSA):与TTSA算法的区别是滚动优化窗口和虚拟机迁移技术均没有采用。
本文主要从以下三个指标比较以上四种算法的性能:
1) 任务完成时间(Task Completion time, CT);
2) CPU占用率(CPU utility, CPU);
3) 密码服务器吞吐量(Throughput, THR)。
3.1 模拟方法和参数实验采取Cloudsim仿真软件模拟云计算环境[14], 物理实验平台搭建在一台浪潮英信服务器NF5280M4上, 选用千兆网卡Intel E1G42ET和16口千兆交换机TP-LINK TL-SG1016DT, 假设吞吐量阈值为网络带宽的70%~85%, 即700 Mb/s~850 Mb/s。为体现算法在实时性方面的性能优势, 采用单一变量控制方法, 分别控制任务负载数量和任务到达时间间隔, 比较TTSA与三种基准算法在三种性能指标上的差异。
实验模拟参数如表 1所示,其中:
1) 参数taskCount表示一轮实验中的密码任务数量。
2) 单位时间内到达的任务数服从泊松分布, 参数intervalTime表示两个连续任务间的平均时间间隔。
实验参数每变化一次, 开启新一轮实验, 假设除该变化参数以外, 每轮实验初始环境相同。
3.2 密码任务数量对性能的影响在本组实验中, 为测试密码任务数量对调度算法性能的影响, 将任务数从5000变化到30000, 从任务完成时间、CPU占用率和密码服务器吞吐量三个指标, 对比四种算法的性能。
图 4表示密码任务数量增加时, 任务完成时间的变化情况。四种算法在此情况下变化趋势相同, 呈上升趋势, 但密码云对密码任务处理的实时性要求较高, 当密码任务数量相同时, TTSA算法完成时间最短, 相对于其他三种算法更具有优势; 此外, 采用滚动窗口技术或者虚拟机迁移技术的NRTTSA算法和NMTTSA算法的任务完成时间相对于NRMTTSA算法时间更短, 可以提供更好的用户体验, 达到了实时性的效果, 同时辅证了采用滚动优化技术和虚拟机迁移技术的性能优势。
图 5表示CPU占用率的变化情况。任务负载增加, 对计算、存储等资源的占用率势必会升高, 但在相同的负载情况下, TTSA算法结合虚拟机迁移技术将有助于服务器负载的均衡, 使CPU的高计算负载得到缓解。在相同负载条件下, 未采用虚拟机迁移技术的NMTTSA算法和NRMTTSA算法相对于其他两种算法CPU占用率略高, 达到30000个任务时, CPU资源状态显现的劣势较为突出。
图 6表示密码云服务器的平均吞吐量情况。在千兆网络带宽的条件下, TTSA算法优势显现。当任务数增加到25000时, 平均吞吐量达到吞吐量阈值上限, 开启新的密码服务器, 通过虚拟机迁移技术降低了每台服务器的吞吐量, 缓解了网络资源紧张的情况; 而其他两种未采用虚拟机迁移技术的算法在负载升高的情况下, 平均吞吐量并不能得到有效的缓解。
在本组实验中, 为测试连续密码任务到达时间间隔对调度算法性能的影响, 假设在密码任务数量相同的条件下, 将时间间隔从60 ms变化到300 ms, 从任务完成时间、CPU占用率和密码服务器吞吐量三个指标, 对比四种算法的性能。
图 7表示连续到达任务的时间间隔增大时, 任务完成时间的变化情况。在相同任务量和时间间隔的条件下, 任务完成时间最短的是TTSA算法, 但是在任务完成时间指标上优势并不突出, 这是由于任务完成时间与任务紧迫性(即任务截止期)息息相关。
图 8表示CPU占用率的变化情况。随着时间间隔的变化, CPU占用率基本保持在70%~85%, 如图 8虚线所示。首先,可以看出采用TTSA算法相对于其他三种基准算法, CPU占用率较低, 可有效缓解计算资源短缺的压力; 其次, NRTTSA算法相对于TTSA算法, 任务调度策略由于未采用滚动优化窗口而存在劣势。同样, NRMTTSA算法由于未采用虚拟机迁移技术而不能较好地均衡计算资源而存在劣势。这证实了采用NRTTSA算法、NMTTSA算法和NRMTTSA算法调度密码任务时, 造成的资源浪费。
图 9表示平均吞吐量随时间间隔的变化情况。在千兆网络带宽环境中, 根据假设条件吞吐量阈值范围设置为700 Mb/s~850 Mb/s。当采用TTSA算法时, 平均吞吐量维持在吞吐量阈值范围内, 并随着时间间隔的增加呈现周期性; 周期性的出现源于虚拟机迁移技术的应用。如图 8所示, 当时间间隔增大, 处理相同的任务量时任务完成时间就会延长, 导致图 9所示平均吞吐量在周期内衰减; 平均吞吐量降低至吞吐量阈值下限将关闭某密码服务器, 并采用虚拟机迁移技术达到服务器间的负载均衡。其他三种算法与TTSA算法相比, 存在任务完成时间相对较长的劣势; 但NMTTSA算法和NRMTTSA算法的劣势更加明显, 由于未采用虚拟机迁移技术, 导致高负载状态下的密码服务器不能迅速缓解运行压力.随着时间间隔增大, 其任务处理效率降低, 形成资源浪费; 时间间隔较小时, 任务完成时间短, CPU占用率和平均吞吐量均能保持在较好区间范围内, 始终使密码服务器保持在良好的工作状态, 利于满足实时性的性能需求。
本文研究了密码云数据中心的密码任务实时调度问题, 其调度目标是在任务调度处理时效与密码服务器吞吐量之间进行权衡。为了达到这一目标, 本文提出了一种基于滚动优化的TTSA调度方法。该方法可有效提高系统灵活性, 根据网络吞吐量和系统负载情况对新到达任务和滚动窗口中的任务进行资源伸缩, 保证密码服务器良好的运行状态。为了评估TTSA算法的性能, 本文通过大量模拟实验对其进行了测试。实验结果表明:在系统负载的较大变化范围内, TTSA算法与其他算法相比具有更好的性能, 可以为密码云数据中心实时任务处理提供良好的策略支撑。
下一步的研究工作主要包括三个方面:第一, 将现任务调度方法改进以满足并行滚动优化的需求; 第二, 寻求合理的吞吐量阈值动态量化方法, 避免经验论带来的不足; 第三, 改进处理密码任务的密钥调用策略以满足保密数据的高安全需求。
[1] | PIETRI I, SAKELLARIOU R. Mapping virtual machines onto physical machines in cloud computing: a survey[J]. ACM Computing Surveys, 2016, 49(3): 49. |
[2] | 赵云, 庞振江, 夏信, 等. 适用于云计算的密码机技术研究[J]. 信息安全与通信保密, 2016(3): 103-105. (ZHAO Y, PANG Z J, XIA X, et al. Crypto technology for cloud computing[J]. Information Security and Communications Privacy, 2016(3): 103-105.) |
[3] | 杨维永, 刘金锁, 屠正伟, 等. 基于密码卡的虚拟化可信平台设计[J]. 信息技术, 2016(1): 171-176. (YANG W Y, LIU J S, TU Z W, et al. Design of virtualization trusted platform based on HSM[J]. Information Technology, 2016(1): 171-176.) |
[4] | 张晏, 岑荣伟, 沈宇超, 等. 云计算环境下密码资源池系统的应用[J]. 信息安全研究, 2016, 2(6): 558-561. (ZHANG Y, QIN R W, SHEN Y C, et al. The application of cryptography resource system in cloud computing[J]. Journal of Information Security Research, 2016, 2(6): 558-561.) |
[5] | 孙磊, 戴紫珊. 安全服务云框架研究[J]. 计算机应用, 2012, 32(1): 13-15. (SUN L, DAI Z S. The security service cloud framework[J]. Journal of Computer Applications, 2012, 32(1): 13-15.) |
[6] | BOBROFF N, KOCHUT A, BEATY K. Dynamic placement of virtual machines for managing SLA violations[C]//IM 2007: Proceedings of the 10th IFIP/IEEE International Symposium on Integrated Network Management. Piscataway, NJ: IEEE, 2007: 119-128. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=4258528 |
[7] | 陈超, 朱晓敏, 陈黄科, 等. 基于滚动优化的虚拟云中实时任务节能调度方法[J]. 软件学报, 2015, 26(8): 2111-2123. (CHEN C, ZHU X M, CHEN H K, et al. Energy-efficient scheduling for real-time tasks by rolling-horizon optimization in virtualized clouds[J]. Journal of Software, 2015, 26(8): 2111-2123.) |
[8] | TANAKA M, TATEBE O. Workflow scheduling to minimize data movement using multi-constraint graph partitioning[C]//Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. Washington, DC: IEEE Computer Society, 2012: 65-72. http://ieeexplore.ieee.org/document/6217406/ |
[9] | 杨绍光, 张云勇. 一种云计算资源池系统及其实现方法: CN103581325A[P]. 2014-02-12. (YANG S G, ZHANG Y Y. A cloud computing resource pool system and its implementation: CN103581325A [P]. 2014-02-12.) |
[10] | GE R, FENG X, CAMERON K W. Performance-constrained distributed DVS scheduling for scientific applications on power-aware clusters[C]//SC 2005: Proceedings of the 2005 ACM/IEEE Conference on Supercomputing. New York: ACM, 2005: 34. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=1559986 |
[11] | BELAY A, PREKAS G, PRIMORAC M, et al. The Ⅸ operating system: combining low latency, high throughput, and efficiency in a protected dataplane[J]. ACM Transactions on Computer Systems, 2016, 34(4): 1-39. |
[12] | GOIRI Í, BERRAL J L, FITO J O, et al. Energy-efficient and multifaceted resource management for profit-driven virtualized data centers[J]. Future Generation Computer Systems, 2012, 28(5): 718-731. DOI:10.1016/j.future.2011.12.002 |
[13] | BELOGLAZOV A, BUYYA R. Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers[J]. Concurrency & Computation Practice & Experience, 2012, 24(13): 1397-1420. |
[14] | CALHEIROS R N, RANJAN R, BELOGZAOV A, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms[J]. Software Practice & Experience, 2011, 41(1): 23-50. |