openstack的节点过滤算法设计与实现(附件)

在云计算技术不断发展的同时,各类云计算平台也在逐步改进。OpenStack作为一个开源的云计算管理平台,提供了关于基础设施即服务IaaS(Infrastructure as a Service)的解决方案。随着版本更替,OpenStack各个组件都在不断改进中,但其过滤算法仍然处于比较原始的状态,并未随着版本更新而进行升级,已经不能满足更加多元的需求。本文基于2017年发布的OpenStack pike版,设计并实现了一个基于OpenStack的节点过滤算法OverallFilter。主要通过使资源基于比值的负载均衡,避免访问过于集中出现热点节点,来提高资源利用率,节约硬件成本,使其更符合商业需求。最后在OpenStack环境中通过与其自带算法比较,验证了算法的可行性。
目录
摘要 1
关键词 1
ABSTRACT 1
KEY WORDS 1
1 课题背景 1
1.1 研究背景及意义 1
1.2 国内外研究现状 2
1.3 本文研究内容 3
2 OPENSTACK 3
2.1 OPENSTACK架构及核心组件 3
2.2 NOVA组件 4
2.2.1 NOVA结构 4
2.2.2 NOVASCHEDULER结构 4
2.2.3 NOVASCHEDULER代码结构 5
3 OVERALLFILTER过滤算法 6
3.1算法设计 6
3.2 技术路线 6
3.3 算法实现 7
4 测试及分析 10
4.1测试环境 10
4.2测试方案及结果 12
4.2.1 对比算法 12
4.2.2 测试方案 13
4.2.3 测试过程 13
4.2.4 测试结果 16
4.3 测试结果分析 19
5 WEB页面演示 20
6 总结与展望 22
致谢: 22
参考文献: 23
基于OpenStack的节点过滤算法设计与实现
 *好棒文|www.hbsrm.com +Q: ^351916072* 
引言
OpenStack是一个云计算管理平台,提供了关于IaaS的解决方案。在OpenStack中,每一台提供物理资源的物理机都被视为一个计算(compute)节点,所有计算节点的集合就是能够提供的资源集合。当用户申请资源时,由调度程序使用过滤算法来选择分配资源的节点。用户申请资源实质上是申请创建虚拟机,官方的说法为创建实例(instance)。在本文中所指的需求资源实质上指创建虚拟机需求的资源,分配资源实质上指为创建虚拟机分配资源。
课题背景
1.1 研究背景及意义
云计算是一种逐渐成熟的资源整合技术,已经慢慢融入到了我们生活中。它采用硬件虚拟化,资源集中化等方式,实现资源的统一管理,为用户提供按需分配的计算,网络和存储能力。云计算服务主要分为3种模式[1]:IaaS、PaaS(Platform as a Service)、SaaS(Software as a Service),其中在全球范围内IaaS已拥有316.4亿美元的市场规模[2]。
OpenStack作为主流的云计算管理平台,提供的关于基础设施即服务(IaaS)的解决方案,已经被越来越多的企业和云计算服务提供商采纳并应用到实际生产环境中。得到了包括NASA、Rackspace、Redhat、Ubuntu、Cisco、HUAWEI、Citrix在内的众多厂商的支持。
在众多重量级厂商的支持下,OpenStack发展尤为迅速。并在2017年推出了第16个版本pike版,对众多的组件进行了优化和升级,但依然有很大的开发空间,许多功能仍待优化。其调度程序所使用的过滤算法就处于比较基础的状态。在其历代版本更新中都未对其过滤算法进行迭代升级。
其使用的简单过滤规则,使得权重计算的负担过重,容易导致资源分配不合理。在业务繁忙的情况下,会出现部分资源争夺激烈的同时又存在闲置资源的特殊情况,需要进行负载均衡。影响平台的整体利用率,造成闲置资源浪费并在负载均衡上付出过多的代价。并且调度程序往往会同时使用多个过滤器来确定结果,会出现节点通过了部分过滤器而在最后一个过滤器检测失败的情况,导致额外的时间开销。因此研究一个综合各个基础过滤器且能够减小负载的同时不降低平均资源利用率,减少资源争夺的算法有意义的。基于上述原因,本文尝试设计并实现了一个过滤算法。整合了基础的过滤功能,并使用相似度作为权重的一部分,期望在降低单个节点负载的同时,提高平均资源利用率。
1.2 国内外研究现状
对于不同的云计算平台,由于其资源的分布方式和管理模式的差异,导致所使用的调度方法和规则截然不同。虽然不同的平台执行着不同的调度策略,但大体上都遵循着4个要求[3]:最优跨度(optimal makespan)、负载均衡(load balancing)、服务质量(QoS)、经济原则(economic principle)。
最优跨度即指能在最短的时间完成用户的请求,这是许多研究者研究的重点。负载均衡即指尽可能使资源得到平均利用,避免出现单项资源竞争激烈。服务质量即指从网速,带宽,IO速度方面考虑的服务质量。经济原则要求所有资源都能得到充分利用,降低硬件成本,以最少的资源获取最大的效益。
基于这4个要求,国内外对调度研究和使用比较广泛的算法包括:传统启发式算法、遗传算法、蚁群算法等。常见的启发式算法比如Best Fit,Fist Fit等,往往以最大化资源利用率或者能耗为目标,基于单维或者多维的资源容量条件,求出较优解。Li B[4]等提出采用启发式算法来进行全局优化搜索。Van H等[5]在考虑提升全局资源利用率的情况下提出虚拟机调度的算法并通过仿真来证明其有效性。Rogers等[6]提出针对云平台中数据库应用做调度的方法,并在Amazon的EC2云上做测试,证明方法有效性。Chaisiri等[7]提出RCRP算法,在算法中考虑了调度的多种不确定性的情况,并证明了算法的有效性和鲁棒性。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/430.html

好棒文