policy-based scheduling: improving resources provisioning in openstack
DESCRIPTION
Policy-Based Scheduling: Improving Resources Provisioning In OpenStack . Khanh-Toan TRAN ( R&D Engineer) [email protected]. May 12 th , 2014 Atlanta. Outline. Motivation Why Smart Placement ? Current Openstack Provisioning Overview Limitation Proposed Policy-Based Scheduler - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/1.jpg)
Policy-Based Scheduling:Improving Resources Provisioning In OpenStack
May 12th, 2014Atlanta
Khanh-Toan TRAN (R&D Engineer)[email protected]
![Page 2: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/2.jpg)
Outline
Motivation Why Smart Placement ?
Current Openstack Provisioning Overview Limitation
Proposed Policy-Based Scheduler
Usecases & Demo
Meta-scheduling
![Page 3: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/3.jpg)
MOTIVATION
![Page 4: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/4.jpg)
Smart Placement Expectations
For the clients perspective Contract guarantee Transparency Better experience More services, more offers Attractive price
For the cloud provider perspective Flexible scheduling
• Scheduling per client• Scheduling per resources• Scheduling per context
Capable of realizing different admin objectives and operations Efficient and simplified control and management by policies
![Page 5: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/5.jpg)
Smart Placement Big Picture
Smart Placement
Compute, storage and network nodes, etc
…
Datacenter 1 Datacenter 2 Datacenter n
Cloud provider operation
Clients
Environmental info
Client contract
Regulation
OpenStack OpenStack
High-level requirements
Environmental info
Infrastructure info
Secu
rity
polic
ies
![Page 6: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/6.jpg)
OVERVIEW OF THE EXISTING OPENSTACK PROVISIONING
![Page 7: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/7.jpg)
Placement in Openstack: FilterScheduler
Filter_Scheduler
Nova-scheduler
Filter Weigh
Request
FilterFilter WeighWeigh
1 VM2VCPU, 2GB RAMService=gold
Filtering Weighing
Compute 18VCPU; 8Go
Compute 23VCPU; 4Go
weight = 8
weight = 4
Compute 18VCPU; 8GB RAM
Compute 23VCPU; 4GB RAM
Compute 34VCPU; 1GB RAM
Service=gold
Service=gold
Compute 48VCPU; 8GB RAM
Service=goldCompute 1
8VCPU; 8GB RAM
Compute 23VCPU; 4GB RAM
Compute 34VCPU; 1GB RAM
Compute 48VCPU; 4GB RAM
Openstack Nova: Scheduling Module : Driver Default driver: FilterScheduler
1. Filters out hosts that are not admissible to hosts the VMs (Filter).
2. Weighs the remaining hosts following their capacity (Weigher)
![Page 8: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/8.jpg)
FilterScheduler Limitations
Static scheduling Difficult to answer to admin’s various objectives Ineffective in management in different situations (maintenance,
failure, breakout, catastrophe…)
Lack of client context No consideration for each client requirements Client contract is not taken into account
Lack of consideration for infrastructure Unable to provide fine-grain scheduling
Example:A cloud service provider wishes to apply the global Load
Balancing policy to the whole datacenter and a local Consolidation policy to a cluster of hosts.
Unfeasible
![Page 9: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/9.jpg)
Two-step approach for the situation improvement
Short term Policy-based scheduling solution (incremental): Enhancing the
existing Nova-centric architecture.
Mid / Long term Meta-scheduling solution (disruptive): independent scheduling
service for OpenStack on top of Nova, Cinder and Neutron.
![Page 10: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/10.jpg)
POLICY-BASED SCHEDULING(SHORT TERM)
![Page 11: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/11.jpg)
Policy-Based Scheduling Module
Decoupling the scheduling logic and the execution domain
The scheduling logic is represented as Rule:
Target – Effect – Conditionwith correspondent Plugins.
Rules are stored in Policy Repository (PR)
Policy-Based Scheduling Engine (PBSE) consults the Policy Repository to find and execute the suitable rules
Policy-Based Scheduler (PBS) is the proxy between Nova-scheduler and PBSE
Nova-scheduler
Filter Weigh
Client request
FilterFilter WeighWeigh
Policy-Based Scheduler (PBS)
Policy-Based Scheduling
Engine (PBSE)Policy
Repository
PluginPluginPlugin
![Page 12: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/12.jpg)
Policy-Based Scheduling
Nova-scheduler
Filter Weigh
Client request
FilterFilter WeighWeigh
Policy-Based Scheduler (PBS)
Policy-Based Scheduling
Engine (PBSE)Policy
Repository
PluginPluginPlugin
Target Rules{« tenant: «Frank»}
{ «effect »: {«service_class»: « gold »}, «condition» : « all » }
Target Rules« all » {
«effect »: {« LoadBalancing»: «Ram » },«condition » : «all»}
« aggr: aggr-1 »
{« effect »:{« Consolidation»:«Ram»},«condition » : « all »}
Service_Class_Plugin
LoadBalancing_Plugin
Consolidation_Plugin
![Page 13: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/13.jpg)
Policy-Based Scheduling
Availability-Zone-1
Aggregate-1
Server-01
Server-02
Availability-Zone-2
Aggr-2 Aggr-3
Load-Balancing
Consolidation
Server-03
Server-04
![Page 14: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/14.jpg)
USE CASES & DEMO
![Page 15: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/15.jpg)
Usecases and Demo
Use Cases 1: Respecting the regulation A French medical company wants that all their VMs and data are hosted in
France as requested by French authority All VMs are initiated in France zone regardless of the choice of the users (e.g.
employees)
Use Case 2: Enforcing the client contract A client signs a gold contract All his VMs are initiated in the gold zone with high-end equipments (e.g. high
freq. CPU, high-mem, SSD storage…)
Use Case 3: Reducing software licences A cloud provider signs a contract with an ISV which charges the license fee
based on the number of hardware Admin wants to apply 2 policies:
• A global Load-Balancing policy in all his datacenter to favor the load sharing and limiting the overload
• A local Consolidation policy in the zone dedicated to the software to reduce the number of charged physical servers
![Page 16: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/16.jpg)
META-SCHEDULING(MID / LONG TERM)
![Page 17: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/17.jpg)
Meta-Scheduling
Policy-Based Scheduler blueprint:https://blueprints.launchpad.net/nova/+spec/policy-based-scheduler
![Page 18: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/18.jpg)
Meta-Scheduling
![Page 19: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/19.jpg)
Meta-Scheduling
![Page 20: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/20.jpg)
Meta-Scheduling
![Page 21: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/21.jpg)
Related works
Scheduler service: Gantt https://blueprints.launchpad.net/nova/+spec/scheduler-lib https://blueprints.launchpad.net/nova/+
spec/remove-cast-to-schedule-run-instance Remove DB between scheduler and compute nodes
https://blueprints.launchpad.net/nova/+spec/no-db-scheduler
Instance Group API https://blueprints.launchpad.net/nova/+spec/instance-group-api-exte
nsion
Support for Multiple Active Schedulers https://blueprints.launchpad.net/nova/+spec/multiple-scheduler-drive
rs
SolverScheduler https://blueprints.launchpad.net/nova/+spec/solver-scheduler
![Page 22: Policy-Based Scheduling: Improving Resources Provisioning In OpenStack](https://reader035.vdocuments.us/reader035/viewer/2022062520/568163e1550346895dd53d71/html5/thumbnails/22.jpg)
Thanks for your attention [email protected]
Policy-Based Scheduler blueprint:https://blueprints.launchpad.net/nova/+spec/policy-based-scheduler