SlideShare a Scribd company logo
OpenStack云端的资源调度
刘光亚
gyliu513@gmail.com
Sina Weibo: @platformer
OpenStack ATC
• 刘光亚
• IBM西安云计算开发部架构师
– 分布式计算
– 资源管理
– 容器技术
– 系统集成
• OpenStack ATC
– Magnum (OpenStack Docker Container Service) Core Reviewer
– Nova
– HEAT
– Neutron
– Tetris
提纲
• OpenStack中的资源调度
• OpenStack资源调度的缺陷
• OpenStack资源调度如何改进
• OpenStack资源调度的发展方向及其影响
云计算技术发展趋势
• 云平台是新一代的IT资源供给的技术
– 云平台建设阶段
– 计算/网络/存储虚拟化技术
– OpenStack/CloudStack
– 自服务-运营平台(云BOSS)
• 业务扩展及支撑阶段
– 混合云及容器技术
– 应用云化支撑平台(PaaS、DevOps)
– 大数据与云平台融合
• 云平台运维服务阶段
– SDX
– 智能化/自动化大规模分布式系统运维技术
• 资源优化、精细化管理阶段
– 融合---软硬件、计算/存储/网络
– 动态资源调度、统一资源管理DCOS
分布式的资源管理
• 资源管理
– 资源搜集
– 资源描述
– 资源规划
– 资源调度
分布式的资源管理
• 资源管理
– 资源搜集
– 资源描述
– 资源规划
– 资源调度
OpenStack中的资源规划
• 租户
– 针对租户设置资源配额
• quota_instances
• quota_cores
• quota_ram
• quota_floating_ips
• quota_fixed_ips
• ....
– 扁平的多租户结构
– 租户之间可以资源隔离
– 租户配额的资源不能共享
租户1 租户2 租户3
• quota_instances 10 10 10
• quota_cores 10 20 30
• quota_ram 10G 20G 30G
• quota_floating_ips 10 10 10
• quota_fixed_ips 20 20 20
OpenStack中的资源调度
• 虚拟机调度
– Nova调度器
– 帮助虚拟机在OpenStack集群中的挑选最优的主机来部署
• 存储卷的调度
– Cinder调度器
– 帮助存储卷在OpenStack集群中的挑选最优的主机来部署
– 类似Nova调度器,因为Cinder是从Nova剥离出来的。
• 网络的调度
– Neutron调度器
• dhcp agent scheduler
• L3 agent scheduler
Nova默认调度器工作流
• 搜集资源
– 从Nova数据库取得所有可调度节
点的信息
• 过滤资源
– 对所有调度节点按照用户的约束
条件和过滤器配置进行过滤,过
滤完后就是符合用户请求的所有
节点集合。
• 排序资源
– 对所有符合请求的通过过滤的节
点按照用户设定的权值配置按照
优先级进行排序
OpenStack调度器的缺点
• 只提供最基本的初始化调度策略
– 当用户在最开始在创建虚拟机或者
存储卷的时候,可以帮助按照资源
请求挑选最优的节点来部署
– 一旦部署完成后,调度器就失去了
作用
– 缺乏类似于VMWare DRS的运行时
调度策略
• 缺乏资源请求约束条件生命周期
的管理
– 初始化约束条件执行完成后,用户
最开始的约束条件会丢失
– Scheduler hints没有保存
• 亲和/反亲和的局限性
– 只是主机级别的
• 缺乏统一的资源调度
– 所有的调度模块都是独立的,只负
责某模块具体的资源调度
• Nova调度器负责虚拟机
• Cinder调度器存储卷
• Neutron调度器负责网络
• 缺乏基于租户的灵活的资源规划
– 扁平结构的租户
– 为每个租户设定资源配额
OpenStack运行时资源调度(DRS)
• OpenStack DRS
– 期望OpenStack能提供类似于VMWare DRS的运行时
调度策略
• CPU/Memory负载均衡
• 节能策略
• 高可用策略
• 机器维护策略
• 其它
– 社区讨论
• 社区不同意在Nova加入这些功能
• Nova的API已经很丰富,用户可以借助第三方的监控工具
来实现这些功能
– Nagios监控,根据监控结果调用Nova API来实现运行时策略
– 新项目
• Congress (https://github.com/stackforge/congress)
• Tetris (https://docs.google.com/document/d/1DMsnGxQ3P-
OwZCF3uxaUeEFaKX8LqUqmmgQ_7EVK7Y8/edit)
Conditions
VM_FAIL
NODE_COMPROMISED
NODE_UTIL_THRESHOLD
:
:
Actions
VM_MIGRATE
NODE_SHUTDOWN
NODE_REBOOT
:
:
Energy Policy
if
NODE_ENERGY_CONSUMPTION
_THRESHOLD_REACHED (node1.xxx.yy.com)
then
NODE_STOP_DEPLOY(node1.xxx.yy.com)
Availability Policy
if
VM_FAIL(vm1)
then
VM_RESTART(vm1)
end
Security Policy
if
NODE_COMPROMISE(node2.xx.yy.com)
then
NODE_STOP_DEPLOY(node2.xx.yy.com)
VM_MIGRATE(ALL, node2.xx.yy.com)
Optimization
Policy
<Written as Python Code>
Custom
Policies
POLICIES
vm_fail.py
node_
compro
mised.py
node_
util_thre
shold.py
vm_migrate.py
node_
shutdown.py
node_
reboot.py
Policy Automation
Engine
Enforce Policies:
•Check for Conditions
•Execute Actions
Input
Policies
Check for
Conditions
Execute
Actions
nova cinder neutron
HEAT
Policy
Automation
Engine
ceilometer
API
nova, cinder,
neutron, ceilometer
API
nova, cinder,
neutron, ceilometer
API
运行时策略引擎
架构图
运行时策略引擎在
OpenStack中的位置
1
2
Gantt
https://docs.google.com/document/d/1DMsnGxQ3P-
OwZCF3uxaUeEFaKX8LqUqmmgQ_7EVK7Y8/edit
资源请求约束条件生命周期的管理
• 资源请求约束条件生命周期的管理
– 资源请求主要包含提交虚拟机请求时的
约束条件以及各种初始调度策略。约束
条件指得是当虚拟机进行调度时,用户
的一些特殊的条件,例如CPU,内存大
小等等;初始调度策略主要是指创建虚
拟机时的资源调度策略,例如Affinity、
Anti-Affinity、Stripping、Packing等等。
– OpenStack现在不能存储资源请求的约束
条件,约束条件在创建完虚拟机后就丢
失了,这样会导致虚拟机在迁移的时候,
可能会违反最开始的资源请求策略。
– 当用户创建完虚拟机后,将用户特定的
约束条件存储下来,这样可以保证虚拟
机在做迁移,resize的时候,还能遵循最
开始的资源约束条件。
– https://review.openstack.org/#/c/88983/
约束条件
约束条件
数据库
基于拓扑结构的调度
• 基于拓扑结构的调度策略
– 主机级别的反亲和不能保证高可用性
host1 host2 host3 host4 host5 host6
rack1 rack2 rack3
Availability
VM1 VM2
基于拓扑结构的调度
• 基于拓扑结构的调度策略
– 主机级别的反亲和不能保证高可用性
host1 host2 host3 host4 host5 host6
rack1 rack2 rack3
Availability
VM1 VM2
基于拓扑结构的调度
• 基于拓扑结构的调度策略
– 主机级别的反亲和不能保证高可用性
host1 host2 host3 host4 host5 host6
rack1 rack2 rack3
Availability
VM1 VM2
定制调度模块
• OpenStack调度器定制
– 很方便的和第三方的资源调度模块集成,如Mesos,Yarn
• 定制化约束条件
– OpenStack支持搜集定制化的资源
• Network bandwidth
• Disk I/O
– OpenStack支持JsonFilter
• ['>=', '$bandwidth', 10M/s]
• ['>=', '$diskread', 30M/s]
• 定制化资源过滤器
– OpenStack支持添加新的filter
层级多租户管理
• 层级的多租户管理
– 层级的多租户能够更好的和企业的组织结构映射
– 租户和子账户能更好的协同合作
Dept-1
ORG
Dept-2
Dept-n
Team-11
Team-12
Team-21
Team-22
Tenant-1
Tenant
Tenant-2
Tenant-n
SubTenant-11
SubTenant-12
SubTenant-21
SubTenant-22
层级多租户管理
• 层级的多租户管理(kilo)
– Nova在Kilo版会加入最基本的层级多租户的支持
– 只有资源独占(最简单的资源规划)
– 不同租户之间不能共享资源
Dept-1:hard_limit=300,used=25,reserved=15,allocated=250
ORG:hard_limit=1000,used=100,reserved=100,allocated=700
Dept-2: hard_limit=400,used=25,reserved=25,allocated=300
Team-11:hard_limit=100,used=50,reserved=50,allocated=0
Team-12:hard_limit=150,used=25,reserved=25,allocated=0
Team-21: hard_limit=100,used=25,reserved=25,allocated=0
Team-22:hard_limit=200,used=50,reserved=50,allocated=0
Kilo的多租户模式
• 租户T1和T2各
独占8个资源
R
t1 t2
Total = 16
T2
T1
alloc 4
alloc 12
Futurne OpenStack
T1 owns 8
T2 owns 8
8 8
free 4
T1 gets 4
return 4
ownership policy
T2 owns 8T2 gets 8
return 8
ownership policy
Resource Plan
层级多租户管理
• 层级的多租户管理未来
– 不同租户之间的资源可以借入/借出
– 不同租户之间的资源可以共享
– 不同时间段设置不同的资源规划
多租户借入/借出模式
• 租户T1和T2各
独占8 个资源
• 租户T2可以从
租户T1借入4
个资源
R
T1 T2
Total = 16
T2
T1
alloc 4
alloc 12
8
T1 owns 8
T2 owns 8
8
4
free 4
T1 gets 4
return 4
ownership policy
T2 owns 8T2 gets 8
return 8
ownership policy
return 4
lent 4 to T2 borrow/lend policy
Resource Plan
Future OpenStack
多租户共享模式
R
T1 T2
Total = 16
T2
T1
alloc 4
alloc 12
1:1
T1 deserves 8
T2 deserves 8
T1 uses 4
return 4
sharing policy - 1
free 4
T2 deservesT2 uses 8
return 8
sharing policy - 1
T2 uses 4
return 4
sharing policy - 2
Resource Plan
• 租户T1和T2不
独占任何资
• T1和T2共享所
有资源,并且
有相同的共享
比例。
Future OpenStack
时间窗口模式
08:00-18:00 18:00-08:00
统一的资源调度
Nova Cinder •••
HEAT(Orchestration
Manager)
Resource
Selection
Engine(Gantt)
Capability
Cache
HOT
Policy
Extension
Policy Plug-in
Extension
Topology
Manager
Policy Automation
Engine
统一资源调度
…
tier1_policy_group:
type: IBM::Policy::Group
properties:
policies:
- type: Anti-Affinity
mode: hard
topology:
name: Availability
level: rack
tier2_policy_group:
type: IBM::Policy::Group
properties:
policies:
- type: Anti-Affinity
mode: hard
topology:
name: Availability
level: rack
relationships:
- peer: tier1_policy_group
policy:
type: Affinity
mode: hard
topology:
name: Availability
level: host
一个应用有两个自动扩展组,两个自动扩
展组之间是亲和关系;两个自动扩展组内
部是反亲和关系。
Scheduler
decision
OpenStack资源调度的发展方向
• Scheduler As A Service
– Gantt,可能会在M版孵化成功
– 提供一个公共的调度模块
– 为计算,存储,网络等调度资源
– 应用领域:大数据,云计算,
HPC
• Policy As A Service
– Congress
– Tetris
Big Data and
Analytics =
Hadoop
PaaS = Cloud
Foundry
IaaS =
OpenStack
Gantt
Thank You

More Related Content

PDF
Sheepdog内部实现机制
PDF
Sheepdog介绍
PPTX
Openstack neutron 原理详解
PPTX
Docker進階探討
PDF
Kvmopt osforce
PPT
Large-Scale Cluster Mangement & Kubernetes Under The Hood
PDF
美团技术团队 - KVM性能优化
PDF
Design realization and application of RBD NBD - Wang Li
Sheepdog内部实现机制
Sheepdog介绍
Openstack neutron 原理详解
Docker進階探討
Kvmopt osforce
Large-Scale Cluster Mangement & Kubernetes Under The Hood
美团技术团队 - KVM性能优化
Design realization and application of RBD NBD - Wang Li

What's hot (20)

PPTX
3 introduction to kubernetes
PDF
Openstack nova
PDF
再生龍於雲端環境之應用
PPTX
應用Ceph技術打造軟體定義儲存新局
PPTX
Open stack glance
PPT
Traffic server overview
PPTX
RxJS 6 新手入門
PDF
淘宝主备数据库自动切换
PDF
Ceph in UnitedStack
PDF
Bypat博客出品-服务器运维集群方法总结3
PDF
美团点评技术沙龙010-Redis Cluster运维实践
PDF
Hyper: 让Pod以VM为边界
PDF
主库自动切换 V2.0
PDF
Cinder isaci 实现原理详解
PDF
Apache trafficserver
PDF
Bypat博客出品-服务器运维集群方法总结
PDF
Cephfs架构解读和测试分析
PDF
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
PPTX
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
PDF
Bypat博客出品-服务器运维集群方法总结2
3 introduction to kubernetes
Openstack nova
再生龍於雲端環境之應用
應用Ceph技術打造軟體定義儲存新局
Open stack glance
Traffic server overview
RxJS 6 新手入門
淘宝主备数据库自动切换
Ceph in UnitedStack
Bypat博客出品-服务器运维集群方法总结3
美团点评技术沙龙010-Redis Cluster运维实践
Hyper: 让Pod以VM为边界
主库自动切换 V2.0
Cinder isaci 实现原理详解
Apache trafficserver
Bypat博客出品-服务器运维集群方法总结
Cephfs架构解读和测试分析
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Bypat博客出品-服务器运维集群方法总结2
Ad

Viewers also liked (20)

PDF
Openstack Scheduler and Scalability Issue
ODP
OpenStack Nova Scheduler
PPTX
Openstack ha
PDF
High Availability from the DevOps side - OpenStack Summit Portland
PPTX
Watcher, a Resource Manager for OpenStack: Plans for the N-release and Beyond
PPTX
Openstack Study Nova 1
PDF
Orchestrating Docker with OpenStack
PPTX
Openstackha 130925132534-phpapp02
PDF
Fred explains IPv6
PDF
IPv6 Best Practice
PPTX
Open stack HA - Theory to Reality
PDF
resource on openstack
PDF
10 Good Reasons: NetApp for DevOps
PPTX
OpenStack HA
PPTX
Openstack Installation (ver. liberty)
PPT
IPv6 theoryfinalx
PDF
Swiss IPv6 Council: IPv6 in der Cloud - Case Study der cloudscale.ch
PDF
High Availability for OpenStack
PDF
What's really the difference between a VM and a Container?
PDF
Cisco IPv6 Tutorial
Openstack Scheduler and Scalability Issue
OpenStack Nova Scheduler
Openstack ha
High Availability from the DevOps side - OpenStack Summit Portland
Watcher, a Resource Manager for OpenStack: Plans for the N-release and Beyond
Openstack Study Nova 1
Orchestrating Docker with OpenStack
Openstackha 130925132534-phpapp02
Fred explains IPv6
IPv6 Best Practice
Open stack HA - Theory to Reality
resource on openstack
10 Good Reasons: NetApp for DevOps
OpenStack HA
Openstack Installation (ver. liberty)
IPv6 theoryfinalx
Swiss IPv6 Council: IPv6 in der Cloud - Case Study der cloudscale.ch
High Availability for OpenStack
What's really the difference between a VM and a Container?
Cisco IPv6 Tutorial
Ad

Similar to OpenStack Resource Scheduling (8)

PPTX
Track2 -刘继伟--openstack in gamewave
PPTX
OpenStack Network Planning
PDF
Openstack网络规划
PDF
Openstack的研究与实践
PDF
基于Fuel的超融合一体机
PDF
Hello openstack 2014
PPT
Track2 -何斌--openstack 在京东的应用实践
PPTX
Pm 04 华胜天成openstack实践汇报-20120808
Track2 -刘继伟--openstack in gamewave
OpenStack Network Planning
Openstack网络规划
Openstack的研究与实践
基于Fuel的超融合一体机
Hello openstack 2014
Track2 -何斌--openstack 在京东的应用实践
Pm 04 华胜天成openstack实践汇报-20120808

More from Guangya Liu (12)

PDF
Istio简介
PDF
IBM Cloud Private Introduction
PDF
Docker volume-isolator-in-mesos
PPTX
Open source-summit-k8 s-mesos-v7
PDF
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
PDF
Ibm dnt-dcos-v9-3
PDF
Mesos con 2015 recap meetup-v2
PDF
OpenStack and Docke Integration V6
PPTX
Pairs OpenStack Summit Summary
PPTX
Docker集群管理 工具篇
PDF
Organizing open stack-meetup-in-china
PPTX
Docker open stack
Istio简介
IBM Cloud Private Introduction
Docker volume-isolator-in-mesos
Open source-summit-k8 s-mesos-v7
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Ibm dnt-dcos-v9-3
Mesos con 2015 recap meetup-v2
OpenStack and Docke Integration V6
Pairs OpenStack Summit Summary
Docker集群管理 工具篇
Organizing open stack-meetup-in-china
Docker open stack

OpenStack Resource Scheduling