一种云环境中虚拟机负载均衡安全调度方法

文档序号:10724666阅读:918来源:国知局
一种云环境中虚拟机负载均衡安全调度方法
【专利摘要】本发明公开了一种云环境中虚拟机负载均衡安全调度方法。本方法为:1)负载均衡器将云环境中过载主机上的虚拟机ID列表发送给一安全组件;2)该安全组件依次计算该列表中每个虚拟机删除后下一周期的信息泄露率,然后将得到的信息泄露率列表返回给负载均衡器;3)负载均衡器根据该信息泄露率列表确定该列表中要迁移的候选虚拟机;4)负载均衡器对于每一候选虚拟机ID和欠载主机上的虚拟机ID发送给该安全组件;5)该安全组件根据发送过来的虚拟机ID计算每一虚拟机被迁移到不同主机后下一周期的信息泄露率返回给负载均衡器;6)负载均衡器根据该计算结果作出虚拟机放置决定。本发明增强了虚拟机迁移的安全性。
【专利说明】
一种云环境中虚拟机负载均衡安全调度方法
技术领域
[0001] 本发明涉及云环境IaaS层面安全领域,尤其涉及云环境下的以动态迀移为基础的 虚拟机负载均衡方法,属于虚拟机及网络安全技术领域。
【背景技术】
[0002] 随着云计算的快速发展,云计算数据中心的规模、能耗的不断增加,以提高物理资 源利用率、降低能耗为目的的虚拟机负载均衡成为近年来云计算领域的一个研究热点。然 而目前对虚拟机负载均衡的研究主要集中在如何最大化资源利用和能源降低,负载均衡背 景下的安全问题则研究较少。负载均衡过程中会将用户的虚拟机不断地迀到新的主机上、 与新的虚拟机同驻,这一行为扩大了虚拟机的受攻击面,可能危害用户虚拟机的安全。
[0003] 虚拟机负载均衡
[0004] 负载均衡是一种提高资源利用率、降低能源消耗的虚拟机增强方法。该方法以动 态迀移为基础,通过将虚拟机在不同的主机间进行迀移,达到预定目标。这一概念包括两个 基本过程:
[0005] 1)当主机的负载过高时,将该主机上的虚拟机迀出一部分到其他的低负载或闲置 主机上,避免可能导致违反服务质量需求的虚拟机性能退化;
[0006] 2)当主机的整体负载过低时,闲置部分主机,并在关闭前将相应主机上的虚拟机 实例迀移到其他主机上,以达到减少能耗的目的。被闲置的主机则进入低功耗状态,准备在 云环境整体负载提高时重新激活。
[0007] 负载均衡的执行主要由负载均衡器完成,包括一个部署在控制节点上的全局管理 器,以及多个部署在每个计算节点上的本地管理器组成。工作期间,本地管理器定期检测该 节点的各虚拟机状态(如CPU、内存等),当检测到该节点的负载过低,就向全局管理器发送 请求,全局管理器收到请求后将该节点的虚拟机迀向其他节点并关闭该节点主机。当检测 到节点的负载过高时,执行上述的逆过程。另外每个节点还部署有数据收集器,用来收集并 更新负载信息。
[0008] 负载均衡中的虚拟机选择方法
[0009] -旦检测到某个主机过载或欠载,需要执行虚拟机的动态迀移,那么下一个关键 步骤就是在该主机上选择被迀出的虚拟机,也就是虚拟机选择方法需要解决的问题。虚拟 机选择方法根据不同的使用需求而多种多样,典型如最小迀移时间最大CHJ利用率方法。该 方法选择RAM最小的虚拟机,以最小化迀移时间;接下来如果RAM最小的虚拟机有多个,贝1J从 多个虚拟机中选择CPU利用率在过去一段时间的最近η次取样的平均值中最大的虚拟机进 行迀移,以最大化对过载主机的负载降低效果。
[0010]负载均衡中的虚拟机放置方法
[0011]虚拟机放置问题可以被视为一个装箱问题。箱代表主机,箱子大小代表主机的可 用CPU,装箱物品是虚拟机,另外还有一个额外的约束条件RAM。装箱问题是ΝΡ问题,所以应 该采取一种启发式的方案来解决这个问题。解决放置问题同样可以根据需求采取不同方 法,如执行一个修改后的BFD(best fit decreasing)算法,其执行结果已经非常接近最优 解。
[0012] 该方法包括几个扩展:可以控制额外的约束,也就是,考虑当前闲置的主机,以及 RAM方面的约束一一考虑每个虚拟机需要的RAM数值。闲置的主机只有在某个虚拟机无法被 放进已有的工作状态主机时才会启用。而RAM方面,根据虚拟机的CPU需求选择最适主机后, 还要选择确认主机是否满足RAM需求。该方法的CPU测量值也选取过去η次的采样值的平均 值。最坏情况下,这种算法的复杂度是(n+m/2 )m,η是主机节点的数量,m是被放置的虚拟机 的数量。最坏情况发生在虚拟机的放置需要激活一台闲置主机时。
[0013] 现有方法的缺点和局限性
[0014] 1)虽然云服务尽量保证虚拟机的隔离性,但这种隔离性并非绝对安全。用户和用 户之间是不可信的,恶意用户一旦成功完成与目标用户的虚拟机同驻,就有可能使用已知 的攻击手段对目标用户的虚拟机发起攻击,达成恶意目标,如机密信息的窃取等。虚拟机负 载均衡过程中,虚拟机的不断迀移客观上降低了恶意用户完成部署同驻虚拟机的实现难 度。恶意用户可以创建恶意虚拟机,在负载均衡过程中完成与受害用户虚拟机的同驻,然后 进行攻击。
[0015] 2)hyperViS〇r实际上并不像人们期待的那样安全,恶意用户可能通过已知手段对 宿主机hypervisor施加恶意影响,然后当受害用户的虚拟机通过负载均衡迀移到该主机上 时,将会受到攻击,从而使恶意用户间接达成攻击目标。
[0016] 3)负载均衡对于被迀移虚拟机的选择和放置目标主机的计算结果不具有唯一性。 例如对于同一实例,选择两个不同的主机进行不同放置,负载均衡效果是相同的,但是安全 威胁程度却不一样,而负载均衡器无法感知这一点,于是无法做出对总体而言更安全的选 择。

【发明内容】

[0017] 影响虚拟机负载均衡过程中的虚拟机与虚拟机、虚拟机与主机的相对位置变化的 是虚拟机选择方法与虚拟机放置方法,但是现有的这两类方法都未能考虑执行之后可能带 来的安全威胁如虚拟机同驻威胁等。所以尽管已有方法能够较充分地提高物理资源利用 率、降低能耗,安全方面却存在隐患。
[0018] 本发明的目的是在稳定负载均衡的基础上,提出一种新的云环境中虚拟机负载均 衡安全方法,为负载均衡的虚拟机选择和虚拟机放置提供安全方面的参考依据,使得负载 均衡过程引入的安全威胁降低。
[0019] 首先,使用户虚拟机与其他用户的虚拟机同驻的可能性尽可能降低,也就是总体 上减少同驻虚拟机数量,降低同驻攻击风险;使每个虚拟机被迀移到的主机数尽可能少,以 降低hypervisor入侵的风险。为实现这一目标,本发明根据用户虚拟机的同驻关系变化、虚 拟机与主机的驻留关系变化来计算信息泄露率。信息泄露率越高,说明同驻虚拟机数量和 (或)恶意hypervisor入侵的风险越大。同时,保证该方法运行的时间消耗,以及在集群规模 扩大时,使用该方法的时间开销仍然维持在一个可以接受的范围之内,以保证它的可扩展 性。另外,将对原有系统的修改最小化。不需要对用户虚拟机、hypervisor或云服务提供商 的硬件平台进行修改。仅仅对负载均衡器局部进行小规模的改动。
[0020]本发明解决技术问题所采用的技术方案为:
[0021 ] -种新的云环境中虚拟机负载均衡安全调度方法,如图1、图2所示,其步骤为:
[0022] 1)本发明提出的负载均衡安全调度方法包括一负载均衡安全组件(以下简称安全 组件),安全组件记录云环境中与安全相关的状态信息,包括用户虚拟机同驻、用户虚拟机 与主机驻留关系,亦即当发生虚拟机的创建、删除、迀移,用户的建立、删除,主机的增加、减 少时,安全组件都将获得相应通知。
[0023] 2)当负载均衡器检测到过载主机,需要在过载主机上选择部分虚拟机进行迀出 时,负载均衡器将当前过载主机上的所有虚拟机ID列表通知安全组件,安全组件依次计算 预测每个虚拟机迀出后的信息泄露率,然后将得到的信息泄露率列表返回给负载均衡器。 预测方法是,假设该虚拟机在下一周期的开始时刻被删除,计算下一周期的信息泄露率。当 系统检测到欠载主机时,因为需要将欠载主机上的所有虚拟机迀出,所以不需要进行虚拟 机选择,直接跳到第5步。
[0024] 3)计算信息泄露率的方法是,对云环境中当前周期的每个虚拟机,若它与未建立 友好关系的其他用户的虚拟机同驻,则信息泄露率增加^;若它被迀移到未建立信任关系 的主机上,则信息泄露率增加 X2。两个虚拟机建立友好关系的条件是,过去的最近h个周期 内,这两个虚拟机同驻超过THRif周期;虚拟机、主机间建立信任关系的条件是,过去的T 2f 周期内,虚拟机在主机上驻留超过THR2个周期。信息泄露率的增加幅度(X1、X2)和其他参数 (^^服^服河由云环境管理员根据具体需求定义洲户"勺虚拟机丨到用户^的虚拟 机i '的从t-Ι到t周期的信息泄露率计算公式为:
[0025] InfoLeakc.i^c' ,i' (t) = (CoResc.i.c' ,i' (t) XFriendlyc.i.c' ,i' (t))
[0026] 其中,CoRes。,:!,。,,i,(t)表示用户c的虚拟机i与用户c'的虚拟机i'在第t个周期是 否同驻(同驻为1不同驻为0),Friendly c,i,c',i'(t)用来表示用户c的虚拟机i与用户c'的虚 拟机i'在第t个周期的友好关系的威胁程度(若不存在友好关系,该变量的值为1,若存在友 好关系,该变量的值为〇或者由云管理员设定为一个远小于1的值)。
[0027] 用户间的信息泄露率需要根据实际场景将用户所属的虚拟机间的信息泄露率进 行处理。例如,如果管理员认为用户受到同驻攻击产生的的信息泄露威胁取决于所有虚拟 机的信息泄露率之和,则可以通过以下公式计算两个用户间从t-Ι到t周期的信息泄露率:
[0029]如果管理员认为用户受到同驻攻击产生的信息泄露威胁取决于所有虚拟机中信 息泄露率最大的虚拟机,则可以通过以下公式计算两个用户间从t-Ι到t周期的信息泄露 率:
[0031] 用户c的虚拟机i到当前主机h的从t-Ι到t周期的信息泄露率公式为:
[0032] InfoLeakc,i-^h(t) = CoLocc,i,h(t) XTrustc,i,h(t)
[0033] 其中(3〇1^〇〇。,:1,11(1:)表示用户〇的虚拟机;[在第1:个周期时是否在主机11上。如果在则 取值为1,否则取值为0。作1!^。, 1,11(0表示用户(3的虚拟机1与主机11在第〖个周期的信任关系 的威胁程度(若不存在信任关系,该变量的值为1,若存在信任关系,该变量的值为0或由云 管理员设定为一个远小于1的值)。
[0034]用户的所有虚拟机对其各自所在主机的信息泄露率可以通过加和的形式或取最 大值的形式得出。如果管理员认为每个虚拟机对外的信息泄露都有其各自的安全价值,则 可以用加和的方式计算得出对主机的信息泄露率。
[0036]综上,对单个用户而言,其信息泄露率由以下两部分组成:
[0038]上式中,C为云环境中所有用户集合,Η为所有主机集合。最终,云环境整体的信息 泄露率使用所有用户的信息泄露率的累加值:
[0040] 4)负载均衡器接收到安全组件返回的当前过载主机上各虚拟机的被迀出后的信 息泄露率预测结果时,将其性能需求进行综合,最终作出虚拟选择决定。决定方法视云管理 员设定的负载均衡算法而定,如负载均衡的选择算法以Ρ为性能指标(Ρ根据不同云环境对 负载均衡的性能需求,可能为内存大小、CPU频率等。假设该指标越大越应该被迀移),则最 终指标的形式可以是口><31-111;1;'〇1^31^。1;£ 11(1:)\32。31、32是云管理员根据云环境需求的安全 等级设置的权重。
[0041] 5)对于过载主机上的每个被选择的虚拟机(或欠载主机上的所有虚拟机),负载均 衡器接下来在进行虚拟机放置时,需要将所选虚拟机ID再次通知安全组件,由安全组件计 算预测该虚拟机被迀移到不同主机上的信息泄露率(计算方法同第3步),并将预测结果返 回给负载均衡器。
[0042] 6)负载均衡器接收到安全组件返回的每个被选择虚拟机的不同迀移路径的信息 泄露率时,将其与性能需求进行综合,最终作出虚拟机放置决定。决定方法视云管理员设定 的负载均衡算法而定,如负载均衡的选择算法以P为性能指标(P根据不同云环境对负载均 衡的性能需求,可能为目标主机剩余的内存、CPU等,假设该指标越大越应该被选为待迀移 虚拟机的放置目标),则最终指标的形式可以是PXarfnfoLeaktoteiU^a^a^a:^云管理 员根据云环境需求的安全等级设置的权重。
[0043]本发明的有益效果
[0044]随着云计算不断深入人们的生活,云计算数据中心的规模不断扩大,绿色环保问 题将受到越来越多的关注,负载均衡将被更加广泛地应用于生产环节,同时负载均衡中的 安全问题亦将愈发凸显。现有的负载均衡方法主要针对如何提高物理资源利用率、降低能 耗,没有专门针对这一特定场景的安全防御方法。而且负载均衡还额外降低了恶意用户进 行虚拟机同驻攻击、恶意hypervisor入侵的难度。
[0045]本发明针对虚拟机负载均衡这一特定场景进行了安全增强,填补了现有方案未能 考虑安全威胁的空白,能够有效降低用户虚拟机的安全风险,防止攻击者利用负载均衡规 则进行信息窃取等恶意破坏。并且该方法部署简单灵活,管理员可以将其运行在云集群的 任意主机上,对外提供统一的服务,而且对原有系统的修改较小。同时该方法的效果显著, 在不同云环境下使用该方法并测量了信息泄露率(如表1所示)和能耗值,发现信息泄露率 的降低百分比为46.90%到81.15%。能够显著降低虚拟机负载均衡过程中的安全威胁。同 时对负载均衡效果的性能影响在2.5%以内。
[0046]表1本发明的实验效果

【附图说明】
[0049] 图1为本发明技术方案整体流程图;
[0050] 图2为本发明技术方案关键部分流程图;
[0051 ]图3为本发明虚拟机安全选择流程图;
[0052] 图4为本发明虚拟机安全放置流程图。
【具体实施方式】
[0053] 下面结合附图对本发明进行进一步详细描述,本发明方法流程如图3、图4所示。
[0054] 1)安全研究人员需要小幅度地修改负载均衡器,能够将以下云环境的状态变化及 时通知安全组件:虚拟机的创建、删除、迀移,用户的建立、删除,主机的增加、减少,等等。
[0055] 2)安全研究人员需要小幅度地修改负载均衡器,能够接收到来自安全组件的以下 计算结果:虚拟机选择时要求安全组件计算的信息泄露率,虚拟机放置时要求安全组件计 算的信息泄露率。
[0056] 3)安全人员规定对同驻威胁、恶意hypervi sor入侵威胁的重视程度,对性能、安全 各自的关注比例,虚拟机之间建立友好关系的时间,虚拟机和主机建立信任关系的时间,产 生实际信息泄露的信息泄露率下限,作为计算信息泄露率的输入参数。
[0057] 4)检测到某主机过载时,通知负载均衡安全组件,并根据返回结果,确定一个待迀 移虚拟机。重复执行,直到过载问题可以被完全解决,然后依次迀移待迀移虚拟机。
[0058] 5)对每一个待迀移虚拟机进行迀移时,依次将当前待迀移虚拟机通知负载均衡安 全组件,并根据返回结果,为当前虚拟机选择一个最安全的迀移主机,加入待迀移路径表。 重复执行,直到所有的待迀移虚拟机都有了放置目标主机,然后依次执行迀移。
[0059] 实施例:
[0060] 以处理OpenStack的主机过载为例,其中负载均衡器选用OpenStack Neat。
[0061] 1)假设初始状态云环境中有3台主机,即!1={111、112、113},有3个用户,8扣={(3 1,(32, (33},用户〇1拥有虚拟机¥11,1、¥1 1,2,用户〇2拥有虚拟机¥12,1、¥12,2,用户(:3拥有虚拟机¥1 3,1、 ¥13,2、¥13,3。初始状态下11 1上有虚拟机¥11,1、¥12,1、¥13,2,112上有虚拟机¥1 1,2、¥12,2,113上有虚 拟机¥13,1。¥13, 3。安全组件收到以上所有主机、用户、虚拟机的创建信息和放置信息。另设11 =X2 = 1,虚拟机对友好虚拟机的?目息泄露率为0,虚拟机对?目任主机的?目息泄露率为0。如 果系统检测到当前时刻lu过载,假设此时用户(^的虚拟机VM 1;1与其他用户虚拟机(VM2>1、 都不是友好关系,而其他虚拟机之间全部是友好关系,且所有虚拟 机对所在主机均存在信任关系,进行安全虚拟机选择:对于过载主机h上的3台虚拟机 ¥11,1、¥1 2,1、观3,2,假设删除虚拟机¥11, 1,下一周期信息泄露率为0;假设删除虚拟机¥12,1,下 一周期信息泄露率为1(信息泄露来源是VM 1;1和VM3,2这对非友好的同驻虚拟机);假设删除 虚拟机VM 3,2,下一周期信息泄露率为1(信息泄露来源是VM1;1和VM2>1这对非友好的同驻虚拟 机)。因此,虚拟机选择安全方法的计算结果,按信息泄露率由小到大的排名为 = VM3,2,也就是说,将VM1;1迀出是较安全的选择。如果负载均衡器在性能方面的评价指标为 内存(RAM),且上述3台虚拟机的RAM相等的话,则最终的被选择虚拟机即为VM 1;1,否则要根 据具体指标进行加权之后再比较最终的计算结果。然后对被选择的虚拟机VM1;1执行放置安 全方法,预测下一周期VM 1;1迀移到^的信息泄露率为1(来源是VM1;1和VM2>1这对非友好虚拟 机),迀移到h3的信息泄露率为2(来源是VM 1;1和VMuJMu和VM3,3这两对非友好虚拟机)。那 么如果VM 1;1迀移到^和迀移到h3对性能的影响相同的话,最终的放置决定根据安全组件计 算结果为将虚拟机VM 1;1迀移到h2;否则需要将安全组件的计算结果与性能指标进行加权计 算得最终结果。
[0062] 2)管理员需要根据实际需求确定对不同安全威胁类型的关注程度。如设置在虚拟 机保护性脆弱的环境中重点关注同驻威胁,在更重视hypervisor安全性的环境中重点关注 恶意hypervisor入侵威胁等等,因地制宜地满足不同安全需求。
[0063] 3)在实际情况中,管理员可将一个大规模的云集群划分为规模较小的多个子集 群,负载均衡执行迀移过程只在子集群内部进行,不会发生跨子集群的迀移,这样可以有效 保证计算速度。
[0064] 4)在负载均衡器上的修改,可以将通知请求和接收计算结果请求规定为http请 求,做到对原有系统的修改最小化,然后在安全负载均衡组件中加入处理http请求的功能, 例如使用Python Flask框架实现从http请求到具体计算的转换。
[0065] 5)安全研究人员需要对负载均衡器本身的运行原理和其采用的策略有所了解,以 便正确地修改原有系统、比较安全负载均衡组件在不同策略背景下的效果。但是一旦负载 均衡过程开始,安全研究人员除了统计指标,不需要对执行过程进行手动干预。
[0066] 6)通过计算未加入安全负载均衡组件的云环境信息泄露率与加入安全组件之后 的云环境信息泄露率,可以对比得出信息泄露率的降低百分比,从而为进一步研究提供依 据。
[0067] 7)为了判断使用本发明后的负载均衡性能是否有所下降,需要了解所使用的主机 的工作时能耗和完全空载时的能耗,以便计算出负载均衡过程在能耗降低方面的实际效 果。
【主权项】
1. 一种云环境中虚拟机负载均衡安全调度方法,其步骤为: 1) 负载均衡器将云环境中过载主机上的虚拟机ID列表发送给一安全组件; 2) 该安全组件依次计算该虚拟机ID列表中每个虚拟机删除后下一周期的信息泄露率, 然后将得到的信息泄露率列表返回给负载均衡器; 3) 负载均衡器根据该信息泄露率列表确定该虚拟机ID列表中要迁移的候选虚拟机; 4) 负载均衡器对于每一候选虚拟机ID和欠载主机上的所有虚拟机ID发送给该安全组 件; 5) 该安全组件根据步骤4)发送过来的虚拟机ID计算对应的每一虚拟机被迁移到不同 主机后下一周期的的信息泄露率,然后将计算结果返回给负载均衡器; 6) 负载均衡器根据该计算结果作出虚拟机放置决定。2. 如权利要求1所述的方法,其特征在于,计算信息泄露率的方法为:对云环境中当前 周期的每个虚拟机a,若该虚拟机a与虚拟机b同驻且虚拟机a的用户与虚拟机b的用户未建 立友好关系,则虚拟机a的信息泄露率增加 XI;若虚拟机a在未建立信任关系的主机上,则该 虚拟机a的信息泄露率增加 X2。3. 如权利要求2所述的方法,其特征在于,两个虚拟机建立友好关系的条件为:过去的 最近Τι个周期内,运两个虚拟机同驻超过T皿1个周期;虚拟机、主机间建立信任关系的条件 为:过去的Τ2个周期内,虚拟机在主机上驻留超过THR2个周期。4. 如权利要求2所述的方法,其特征在于,计算该信息泄露率的方法为:InfoLeakc'i一c',i'(t) =CoResc,i,c',i'(t) XF;riendlyc,i,c',i'(t); InfoLeakc'i一c',i'(t)为从t- 1到t周期用户c的虚拟机i迁移到用户c'的虚拟机i'所在主机时,虚拟机i的信息泄漏率; 仿1^3。^。',^4)表示用户(3的虚拟机1与用户(3'的虚拟机1'在第*个周期是否同驻,如果同 驻则取值为1,不同驻取值为0;Friendly。,i,。,,i,(t)表示用户c的虚拟机i与用户c'的虚拟机 i'在第t个周期的友好关系的威胁程度,InfoLeake,i_^h(t) = CoLoCc,i,h(t) XT;rustc,i,h(t),CoLoCc,i,h(t)表示用户C的虚拟机i在第t个周期时是否在 主机h上,如果在则取值为1,否则取值为0;化USte,i,h(t)表示用户C的虚拟机i与主机h在第t 个周期的信任关系的威胁程度;C为用户集合,Η为主机集合。5. 如权利要求1或2所述的方法,其特征在于,该安全组件记录的信息包括用户虚拟机 同驻、用户虚拟机与主机驻留关系,虚拟机的创建、删除、迁移信息,用户的建立、删除信息, 主机的增加、减少信息。6. 如权利要求1所述的方法,其特征在于,负载均衡器根据信息泄露率和负载均衡算法 中设定的虚拟机性能指标确定候选虚拟机或虚拟机的放置。7. 如权利要求1或6所述的方法,其特征在于,负载均衡器根据公式PXai- InfoLeakt〇tai(t)Xa2作出虚拟机放置决定;其中,曰1、曰2是设置的权重,为信息泄漏率,P为设定的虚拟机性能指标,如内 存大小。8. 如权利要求1所述的方法,其特征在于,所述云环境为云集群中的一个子集群,虚拟 机的迁移只在该虚拟机所在的子集群内部进行迁移。
【文档编号】G06F9/455GK106095532SQ201610407666
【公开日】2016年11月9日
【申请日】2016年6月12日
【发明人】沈晴霓, 孙茜, 李聪, 吴中海
【申请人】北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1