@maorongrong
2017-06-07T03:46:51.000000Z
字数 4513
阅读 890
硕士毕设
docker天生不安全性可能会因root权限窃取出现整台服务器上所有运行容器down掉;公有云、混合云、容器云中为了保证不同租户服务的完全隔离必须借助vm技术的完全隔离性;而docker-vm-hm部署架构能够有效解决这些问题(问过很多搞容器,都说自己公司就是这么部署的)
目前流行的docker编排工具(swarm/k8s/Mesos/Openstack)采用的调度策略(算法)简单易用(spread/binPack/random),透明的看待下层实际运行容器的平台硬件(忽略是vm or hm);若直接将此类调度器直接运行于docker-vm-hm部署架构上与直接运行于docker-hm架构几乎没有区别(除了前者提供可靠的安全性)。但是这些调度策略本身具有如下问题:
(调度策略面向服务、容错、高可用;面向需求新增阶段,不提供长时间运行后的资源聚合策略。)
"predicates" : [
{"name" : "PodFitsPorts"},
{"name" : "PodFitsResources"},
{"name" : "NoDiskConflict"},
{"name" : "NoVolumeZoneConflict"},
{"name" : "MatchNodeSelector"},
{"name" : "HostName"}
],
"priorities" : [
{"name" : "LeastRequestedPriority", "weight" : 1},
{"name" : "BalancedResourceAllocation", "weight" : 1},
{"name" : "ServiceSpreadingPriority", "weight" : 1},
{"name" : "EqualPriority", "weight" : 1}
]
虽采用docker-vm-hm部署架构,但调度策略仍存在上述问题:
综合上述原因,需要解决:
生产上线时,尤其多租户情况下,云中心应该以docker-vm-hm部署架构提供容器服务;
采用变形FFD算法——Dot-Product FFD算法;实现以physical server占用最少(即满足约束下的physical resource最大化)为目标的调度算法。
算法思想:
将新增的容器request resources、hm residual resources(host machine)矢量化, 计算容器资源向量与其余各servering hm剩余资源向量夹角的余弦值,取最大值作为first hm,接着在该hm选择满足约束vm放入。
模拟数据集
hm、vm、docker尺寸归一化(0~1),采用Gao Y于2013年提出的方法模拟生成docker尺寸,vm规格参照 Amazon EC2;
采集真实云中心hm、vm、docker(参照精灵云、灵雀云)规格,进行归一化。
目前进展
代码已完成,初步结果显示启发式算法能够解决新增问题,且Dot-Product FFD,优于FFD和BFD。
考虑docker-vm-hm结构中,得兼顾多个约束,采用传统启发式容易陷入局部解,且不适合多目标求解,效果忧心。
考虑选用多目标优化模型,同时比较GA、粒子群(多目标化为递增单目标函数 )、生物地理学算法(多种群的GA算法)。
mbbo算法——考虑算法到具体问题的映射:
模拟数据集
实验设计 (蓝色和红色是还在考虑的点)
docker-vm-hm VS docker-hm
为了体现docker-vm-hm部署架构优于docker-hm,除了mbbo优化目标power、v_balance、migration_time之外,新增一个安全性预测函数(!!!)
注意: 师兄认为找不到官方的数据(比如某个数据中心中招的概率),直接提出安全衡量函数,会遭到质疑,应该在d-v-h与d-h相同优化场景下,优化目效果相当时,再补充说明2种方法遭遇入侵的概率,比较有说服性。
在power目标上,mbbo在d-v-h(尺寸上vm:hm=1:1)和d-h场景下表现出几乎相当,但d-h场景能耗稍低点,占用pms稍少点;
在power,v_balance两个目标上,mbbo在d-v-h下的表现非常不好,还在考虑修改方向!!!
(待完善)
- Magnum 架构图
- Magnum FAQ