logo好方法网

一种容器化数据中心下基于流量感知的容器放置方法


技术摘要:
本发明公开了一种容器化数据中心下基于流量感知的容器放置方法,该发明针对在容器化云环境的实践中,解决由于不恰当的容器放置策略导致用户访问服务时的延迟增大,严重降低服务质量的技术问题。该方法利用微服务架构中容器流量的规律特征,通过流量细化组件将同属于一  全部
背景技术:
容器技术是一种类似于沙盒机制的运行环境隔离技术,用户可以在容器中创建运 行操作系统,实现操作系统级的虚拟化。同传统的虚拟机相比,容器技术通过共享内核资源 的方式,实现轻量级的应用运行隔离。由于其相对于虚拟机的各种优越性,许多云服务提供 商都对数据中心做了容器化改造,并利用微服务架构提高数据中心内部处理高并发请求时 的性能。 在容器化数据中心内部,微服务架构常用于将某个应用分解成若干个微服务,各 微服务之间按照一定的依赖关系运行,以提高并发环境下的性能。在微服务架构中,同属于 一个应用的容器需要进行不同程度的网络交流来进行任务交付。例如搜索引擎等实时性应 用程序常会将一个用户的查找请求分发至成百上千个容器中进行高并发操作。 据统计,数据中心内部流量占据了数据中心总带宽用量的70%,其中跨机架流量 占比约40%-90%。随着微服务架构在容器化数据中心的普遍部署,企业主要从减少流量开 销和负载均衡两个角度部署容器。一方面,将交流密切的容器放置到就近的位置能够最大 程度减少容器间的流量开销,但单点失效会使得服务不可用;另一方面,将容器部署到不同 的物理服务器能够对负载均衡起到较大的优化作用,但会增加容器间的交流开销。因此,对 于容器放置策略中平衡流量开销的减少和负载均衡的工作就显得尤为重要。
技术实现要素:
本发明的目的是为了解决现有技术中的上述缺陷,提供一种容器化数据中心下基 于流量感知的容器放置方法,在容器请求到达数据中心时通过放置容器,在降低数据中心 容器流量代价的同时提高负载均衡程度。 本发明的目的可以通过采取如下技术方案达到: 一种容器化数据中心下基于流量感知的容器放置方法,数据中心接收容器请求后 分别经由初始化模块、流量细化模块得到容器的放置策略,最后由放置模块处理容器的放 置操作,该容器放置方法包括以下步骤: S1、当初始化模块接收到容器请求后,根据容器之间的流量交流情况,以单个应用 为单位创建流量矩阵,并根据该流量矩阵进一步生成容器用量图,用于判断容器之间的流 量关联度以及容器对计算资源的请求量; S2、流量细化模块根据容器用量图整合容器,将同属于一个应用的容器按照流量 关联度划分为三个等级,将其存储到不同的逻辑模块中,在不同的逻辑模块中根据其内部 容器对资源的敏感类型贴上对应的标签; S3、判断逻辑模块的资源敏感类型,混合不同资源敏感类型的逻辑模块放置至虚 4 CN 111611073 A 说 明 书 2/4 页 拟机中,并将同属一个应用中三个不同等级的逻辑模块分开存放到不同的物理服务器中。 进一步地,所述的步骤S1中,初始化模块接收到容器请求,初始化模块收集信息生 成容器用量图的过程如下: S11、解析容器请求元数据,从资源请求字段中提取容器请求的CPU、内存、网络带 宽大小; S12、以一个容器实例为节点,其节点权重表示该容器对计算资源的请求量;将有 交流的容器节点以边连接,两节点间的边权表示容器之间的网络交流量。 进一步地,所述的步骤S2过程如下: 对于每一个应用中的容器实例,根据容器之间的流量关联度将逻辑模块划分成三 个关联度逐渐增强的逻辑模块,并且标记逻辑模块中容器对所请求计算资源的敏感类型。 进一步地,所述的流量细化模块通过微服务架构下容器流量呈现一定的Zipf分 布,按照容器之间的流量关联程度对所划分的逻辑模块级分成三个等级,分别是无关联、弱 关联和强关联;其中,强关联是指网络交流量占比前30%的容器,弱关联是指网络交流量占 比前30%至50%之间的容器,其余的容器定义为无关联;另外,根据逻辑模块内的容器对资 源的敏感程度将逻辑模块进一步分别标记为CPU敏感型和内存敏感型。 进一步地,所述的步骤S3过程如下: S31、当所放置逻辑模块的关联度标记为弱关联时,将其暂时放入等待队列,优先 放置无关联、强关联的逻辑模块; S32、在放置逻辑模块的过程中,根据其资源敏感标记将两种不同敏感类型的逻辑 模块混合放置,并且对每个虚拟机采取资源预留策略,为弱关联的逻辑模块预留一定的资 源; S33、当放置弱关联的逻辑模块时,为当前逻辑模块选取最优的虚拟机,目的为提 高物理服务器的负载均衡程度。 进一步地,所述的容器用量图是根据容器请求中的每一种应用单独设立的一种图 类数据结构,用于保存该应用下容器的元数据情况,便于计算容器之间的流量关联程度以 及所请求的资源。 进一步地,在逻辑模块中维护一个用于临时比较的容器元组,在未加入逻辑模块 的容器列表中提取与当前临时比较的容器元组内容器交流最大的容器,并进一步更新临时 比较容器元组,初始情况下,计算该应用下容器的总流量,提取出入度和出度总流量占比总 流量最大的两个容器,将其加入逻辑模块中,设置容器组为临时比较容器元组。 进一步地,所述的步骤S32中根据其资源敏感标记将两种不同敏感类型的逻辑模 块进行混合放置过程如下: 对于每一个逻辑模块的放置,将其视为经典算法中的背包问题,优化目标在于寻 找一种容器放置方式,使得数据中心内物理服务器的CPU与内存利用率达到65%以上。 本发明相对于现有技术具有如下的优点及效果: (1)本发明采用贪心计算的手段,准确计算出容器之间的流量关联程度,避免算法 复杂度过高造成在实时计算过程中对放置决策时间产生的影响。 (2)本发明根据容器之间的关联程度,将容器请求划分为若干个流量关联程度不 一的逻辑模块,并在算法上尽可能保证逻辑模块之间的容器无网络交流。 5 CN 111611073 A 说 明 书 3/4 页 (3)本发明在降低网络流量交流代价的同时,考虑了提高数据中心的负载均衡程 度。 附图说明 图1是本发明公开的一种容器化数据中心下基于流量感知的容器放置方法的应用 架构图。
分享到:
收藏