Policy-Based Scheduling: Improving Resources Provisioning In OpenStack May 12 th, 2014 Atlanta Khanh-Toan TRAN (R&D Engineer)
Outline Motivation Why Smart Placement ? Current Openstack Provisioning Overview Limitation Proposed Policy-Based Scheduler Usecases & Demo Meta-scheduling Motivation Why Smart Placement ? Current Openstack Provisioning Overview Limitation Proposed Policy-Based Scheduler Usecases & Demo Meta-scheduling
MOTIVATIONMOTIVATION
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 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
Smart Placement Big Picture Smart Placement Compute, storage and network nodes, etc … Datacenter 1Datacenter 2Datacenter n Cloud provider operation Clients Environmental info Client contract Regulation OpenStack High-level requirements Environmental info Infrastructure info Security policies
OVERVIEW OF THE EXISTING OPENSTACK PROVISIONING
Placement in Openstack: FilterScheduler Filter_Scheduler Nova-scheduler Filter Weigh Request Filter Weigh 1 VM 2VCPU, 2GB RAM Service=gold Filtering Weighing Compute 1 8VCPU; 8Go Compute 2 3VCPU; 4Go weight = 8 weight = 4 Compute 1 8VCPU; 8GB RAM Compute 2 3VCPU; 4GB RAM Compute 3 4VCPU; 1GB RAM Service=gold Compute 4 8VCPU; 8GB RAM Service=gold Compute 1 8VCPU; 8GB RAM Compute 2 3VCPU; 4GB RAM Compute 3 4VCPU; 1GB RAM Compute 4 8VCPU; 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) 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)
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 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. 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
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. 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.
POLICY-BASED SCHEDULING (SHORT TERM) POLICY-BASED SCHEDULING (SHORT TERM)
Policy-Based Scheduling Module Decoupling the scheduling logic and the execution domain The scheduling logic is represented as Rule: Target – Effect – Condition with 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 Decoupling the scheduling logic and the execution domain The scheduling logic is represented as Rule: Target – Effect – Condition with 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 Filter Weigh Policy-Based Scheduler (PBS) Policy-Based Scheduling Engine (PBSE) Policy Repository Plugin
Policy-Based Scheduling Nova-scheduler Filter Weigh Client request Filter Weigh Policy-Based Scheduler (PBS) Policy-Based Scheduling Engine (PBSE) Policy Repository Plugin TargetRules « all »{ «effect »: {« LoadBalancing»: «Ram » }, «condition » : «all» } « aggr: aggr-1 » { « effect »:{« Consolidation»:«Ram»}, «condition » : « all » } Service_Class_Plugin LoadBalancing_Plugin Consolidation_Plugin
Policy-Based Scheduling Availability-Zone-1 Aggregate-1 Server- 01 Server- 02 Availability-Zone-2 Aggr-2Aggr-3 Load-Balancing Consolidation Server- 03 Server- 04
USE CASES & DEMO
Usecases and Demo Use Cases 1: Respecting the regulationRespecting 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 contractEnforcing 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 licencesReducing 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 Use Cases 1: Respecting the regulationRespecting 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 contractEnforcing 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 licencesReducing 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
META-SCHEDULING (MID / LONG TERM) META-SCHEDULING
Meta-Scheduling Policy-Based Scheduler blueprint:
Meta-Scheduling
Related works Scheduler service: Gantt run-instance run-instance Remove DB between scheduler and compute nodes Instance Group API extension extension Support for Multiple Active Schedulers SolverScheduler Scheduler service: Gantt run-instance run-instance Remove DB between scheduler and compute nodes Instance Group API extension extension Support for Multiple Active Schedulers SolverScheduler
Thanks for your attention Policy-Based Scheduler blueprint: