A core function in data center administration is the assignment of workloads to IT resources — both application instances to compute nodes or virtual machines, and storage containers to storage media. A central concept in the transition from resource silos to a shared resource pool, or cloud, is the assignment should be done automatically, rather than manually - a process is called orchestration. Orchestration enables the self-service aspect of cloud computing, which is a key part of its appeal to users.
It is a rare data center that is managed under a single, homogeneous orchestration framework. More commonly, a variety of programmatic and manual approaches to workload scheduling coexist, each responsible for a subset of resources, applications, or users. It's not uncommon for a large service provider data center to support a dozen or more front-end clusters simultaneously.
This presents a challenge for the team charged with providing storage. The storage solution must connect seamlessly to all of the front-end clusters, and strike the appropriate balance between improving efficiency by sharing resources, and enforcing separation where required due to organizational policy or security requirements. KumoScale software solves this challenge with an offering called Virtual Clusters.
Virtual Clusters are a collection of mechanisms that together allow administrators to define which users or tenants are allowed to share which storage resources. The Virtual Cluster mechanism can create hard boundaries analogous to separate physical clusters, where different users have access to completely different groups of storage nodes. These boundaries can also be more granular, for example, defining which SSDs within a storage node are available to a given tenant or application cluster. Soft boundaries on the other side are managed by the cluster using shared resource pool. Here, while clusters may share resources, the utilization efficiency is higher.
Currently, KumoScale software supports soft isolation, meaning virtual clusters and their tenants may share resources. Users can direct placement of specific volumes via topology constraints.
Independently of placement and isolation implemented via selectors, a Virtual Cluster (label) can also be assigned a resource budget, or quota. This bound includes both storage capacity and some measures of performance, and is independent of the extent to which the cluster users are allowed to share resources outside of their Virtual Cluster.
A tenant can create volumes which consume capacity and performance up to the associated resource limit. When a cluster quota has been exhausted, subsequent volume creation attempts will fail until the quota is increased or resources are released by destroying one or more volumes.
Capacity is a hard restriction and a Virtual Cluster cannot assign volumes with total capacity larger than this value. Performance is a soft restriction based on best effort. That is, if a tenant requests more than the available performance, the KumoScale provisioner will allocate less than the requested performance to this volume, but will allow volume creation.