220 likes | 324 Views
Policy-Based Scheduling: Improving Resources Provisioning In OpenStack . Khanh-Toan TRAN ( R&D Engineer) khanh-toan.tran@cloudwatt.com. May 12 th , 2014 Atlanta. Outline. Motivation Why Smart Placement ? Current Openstack Provisioning Overview Limitation Proposed Policy-Based Scheduler
E N D
Policy-Based Scheduling: Improving Resources Provisioning In OpenStack Khanh-ToanTRAN (R&D Engineer) khanh-toan.tran@cloudwatt.com May 12th, 2014 Atlanta
Outline • Motivation • Why Smart Placement ? • Current Openstack Provisioning • Overview • Limitation • Proposed Policy-Based Scheduler • Usecases & Demo • Meta-scheduling
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
Smart Placement Big Picture Clients High-level requirements Security policies Regulation Environmental info Smart Placement Environmental info Client contract Infrastructure info Cloud provider operation Compute, storage and network nodes, etc OpenStack OpenStack … Datacenter 1 Datacenter 2 Datacenter n
Placement in Openstack: FilterScheduler 1 VM 2VCPU, 2GB RAM Service=gold Request • Openstack Nova: • Scheduling Module : Driver • Default driver: FilterScheduler • Filters out hosts that are not admissible to hosts the VMs (Filter). • Weighs the remaining hosts following their capacity (Weigher) Nova-scheduler Filter_Scheduler Filter Weigh Filter Weigh Weigh Filter Weighing Filtering Compute 4 8VCPU; 4GB RAM Compute 4 8VCPU; 8GB RAM weight = 4 • Compute 2 • 3VCPU; 4Go Service=gold Compute 3 4VCPU; 1GB RAM Compute 3 4VCPU; 1GB RAM weight = 8 Service=gold Compute 2 3VCPU; 4GB RAM Compute 2 3VCPU; 4GB RAM • Compute 1 • 8VCPU; 8Go Service=gold Compute 1 8VCPU; 8GB RAM Compute 1 8VCPU; 8GB RAM
FilterScheduler Limitations Unfeasible • 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. • 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
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.
Policy-Based Scheduling (short term)
Policy-Based Scheduling Module Client request Nova-scheduler • 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 Policy-Based Scheduler (PBS) Policy Repository Policy-Based Scheduling Engine (PBSE) Plugin Plugin Plugin Filter Weigh Filter Weigh Weigh Filter
Policy-Based Scheduling Client request Nova-scheduler Service_Class_Plugin Policy-Based Scheduler (PBS) Policy Repository Policy-Based Scheduling Engine (PBSE) LoadBalancing_Plugin Plugin Plugin Plugin Filter Weigh Consolidation_Plugin Filter Weigh Weigh Filter
Policy-Based Scheduling Load-Balancing Consolidation Availability-Zone-1 Availability-Zone-2 Aggregate-1 Aggr-2 Aggr-3 Server-01 Server-02 Server-03 Server-04
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
META-Scheduling (MID / LONG term)
Meta-Scheduling Policy-Based Scheduler blueprint: https://blueprints.launchpad.net/nova/+spec/policy-based-scheduler
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-extension • Support for Multiple Active Schedulers • https://blueprints.launchpad.net/nova/+spec/multiple-scheduler-drivers • SolverScheduler • https://blueprints.launchpad.net/nova/+spec/solver-scheduler
Policy-Based Scheduler blueprint: https://blueprints.launchpad.net/nova/+spec/policy-based-scheduler Thanks for your attention khanh-toan.tran@cloudwatt.com