Bringing Enterprise-grade resource management to OpenStack clouds
OpenStack is quickly emerging as a de-facto standard for provisioning and managing public and private IaaS cloud infrastructures. It has several advantages over proprietary solutions including that it is open source, it supports multiple operating environments and hypervisors, and with so many vendors backing the effort, it promises freedom of choice, interoperability, and reduced risk of proprietary lock-in for organizations deploying the technology.
OpenStack’s Goldilocks Dilemma
The function of the Nova resource scheduler in OpenStack is to place VM-based workloads on the hypervisors in the private or public cloud best suited to running the workload. While the scheduler in OpenStack is flexible and extensible, the present implementation has two key limitations:
- It makes decisions based on static information stored in the Nova SQL database
- It schedules resources only once when workloads are initially placed. It has no mechanism to re-visit placement decisions on an ongoing basis.
These limitations inevitably lead to situations where some hypervisors are “too hot” (overloaded because retrieved metrics understate actual resource requirements) while others are “too cold” (with too few VMs being placed on a hypervisor). In the former case, clients may suffer from performance issues and even outages generating an excess of support requests and trouble tickets. In the later case infrastructure will sit idle, consuming power, cooling and floor-space and increasing delivery costs or eroding profitability.
Regardless of whether hypervisors are too hot or too cold, administrators will need to intervene; continually re-balancing workloads – a solution that is time-consuming and error prone and that rapidly becomes impractical as environment scale. While the scheduler will get things “just right” on occasion, given that applications and infrastructure evolve, even those just-right hypervisor placements are almost sure to become problematic over time.
These challenges are enough to surface the three bears in any organization:
- Cloud application users will be unhappy about over-subscribed resources that lead to poor performance, outages and even downtime
- Financial and line-of-business managers will be concerned about the cost of other resources sitting idle, translating into poor return on infrastructure investments
- Administrators will be upset about the need to constantly fire-fight issues and deal with the wrath of unhappy internal and external customers
Getting resource scheduling “just right”
What is needed is a resource smart scheduler – one that is able to place workloads more effectively based on actual resource utilization along with other constraints, but that is also able to automatically adjust and optimize resource placement on an ongoing basis in a fashion that is transparent to cloud users and administrators.
What schedulers do is analogous to a game of Tetris. In Tetris, the challenge is to optimally place game pieces of different shapes and sizes while minimizing gaps in the two-dimensional game board. The more efficiently the pieces (representing workloads) are placed, the less space (representing resources and time) is required.
Unlike Tetris however, real scheduling problems are multi-dimensional and much more complex – they need to schedule not only based on basic things like CPU, memory and disk, but they need to take into account a potentially infinite set of real world resource constraints based on real-time information. These include things like virtual memory usage, I/O rates, network bandwidth, machine architectures, OS and kernel versions, or the presence of specialty hardware to name just a few scheduling considering. As any data center manager will tell you, if infrastructure in a data center can be reduced by even a small amount, the savings factoring costs like infrastructure, power, cooling, facilities and people can add up very rapidly. The key to reducing infrastructure costs is smarter scheduling.
Fortunately for IBM customers deploying OpenStack clouds, IBM is a multi-dimensional Tetris grand-master. Platform Computing schedulers are production proven, sharing resources in clusters comprised of tens of thousands of cores among hundreds of application workloads in some of the words largest production clusters and clouds.
IBM Platform Resource Scheduler
IBM Platform Resource Scheduler is an OpenStack add-on that brings the enterprise-grade capabilities of the Platform Computing scheduler to private and public OpenStack clouds. It maintains full compatibility with OpenStack, but extends the OpenStack scheduler via the Nova plug-in architecture to include a richer set of criteria based on which resource selections can be made. It provides a versatile SQL-like query language that allows cloud administrators to match workloads to resources in a more precise fashion, presenting the opportunity to improve hardware utilization and service levels.
Even more importantly, IBM Platform Resource Scheduler provides policy-driven resource optimization not just on initial VM placement, but on an ongoing basis. It employs the VM live migration capabilities of underlying hypervisors to seamlessly re-balance VMs to meet specific business objectives without user or administrator intervention. By applying a variety of pre-set policies, IBM Platform Resource Scheduler will work with IBM SmartCloud offerings based on OpenStack to ensure that VM workloads remain “just right” – enough to keep all of our three bears happy.
- Cloud users enjoy a better quality of service by avoiding scenarios where hypervisor resources become over-subscribed
- Cloud managers improve average utilization helping their reduce infrastructure costs or helping them accommodate additional tenants on existing infrastructure
- Busy cloud administrators benefit from automated self-management meaning that they can devote less time to on-going management of OpenStack clouds.
IBM Platform Resource Scheduler is supported across IBM’s portfolio of OpenStack-based cloud management solutions including IBM SmartCloud® Entry and IBM SmartCloud Orchestrator. Learn more about IBM Platform Computing and IBM SmartCloud offerings and learn how to deploy a more cost-efficient OpenStack cloud environment today.
The postings and views on this site are mine alone, and do not represent IBM’s positions, strategies or opinions.