ThinkAgile CP Abstraction

In place of a cluster, ThinkAgile CP supports the concept of a Migration Zone. A migration zone is comprised of a set of compute nodes among which an application instance (or virtual machine) may migrate. Compute nodes (and application instances that run on these nodes) can be assigned categories and tags.


In the ThinkAgile CP platform, we refer to virtual machines (VMs) as application instances.

Categories are used to categorize or classify compute nodes, for application instance placement, and for managing oversubscription. A node can have only one category assigned to it. Tags determine where an application can run and are also used to support application instance placement and migration. Unlike with categories, a node can have many tags assigned to it. Together, categories and tags are called compute constraints. Application instances have compute constraints and nodes have compute constraints. An application instance will only be allowed to run on a node with the specified compute constraints, that is, the specified category and specified tags.

Storage is grouped into storage pools for administration purposes. There is no limit to the size of a storage pool.1 Storage pools can be shared across all migration zones, but we can also choose to limit the storage pools that are available and accessible to a migration zone. Storage pools consist of storage blocks.2 A storage block is a pair of storage controllers and all storage accessed through those two storage controllers.

The last abstraction of interest is the notion of a Virtual Datacenter, which is a pool of logical resources assigned to a tenant of the ThinkAgile CP Platform. The logical resources for a virtual datacenter may come from one or more migration zones and one or more storage pools. Application instances are provisioned inside virtual datacenters.

By using migration zones and storage pools instead of clusters, our approach is more scalable, higher performing, more resource-efficient, and easier to manage than traditional approaches than using clustering.

A pictorial view of some of the key abstractions is shown below.
Figure 1. Pictorial View of Key Abstractions

1 Theoretical limit is 9000 PBs. Practical values range from 32 TB to 256 PB.
2 This is different than the industry-wide use of the term storage block to mean a 512 byte sector on a storage device.