220 likes | 332 Vues
This paper discusses an innovative approach to resource scheduling in OpenStack through Policy-Based Scheduling (PBS). It examines current provisioning limitations and proposes a solution that prioritizes client contracts, transparency, and efficient resource management. By introducing a decoupled scheduling engine that consults a policy repository, we enable flexible, context-aware scheduling that meets diverse administrative goals. Use cases demonstrate how PBS can enforce regulations, adhere to client contracts, and optimize resource utilization, paving the way for improved cloud services in diverse environments.
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