Virtual multi-cluster clouds
First Claim
1. A system for coordinating a plurality of clusters, the system comprising:
- a multi-cluster gateway, the multi-cluster gateway communicatively coupled to a first cluster and a second cluster, wherein the first cluster includes a first plurality of information processing devices and the second cluster includes a second plurality of information processing devices;
wherein the multi-cluster gateway includes a multi-cluster ring, wherein the multi-cluster ring performs a consistent hashing function responsive to a request to interact with the system, and wherein an output of the consistent hashing function is a partition identifier corresponding to computing resources available at one of the first cluster and the second cluster;
wherein the multi-cluster ring performs a constrained mapping function on the partition identifier, and wherein an output of the constrained mapping function maps the partition identifier to a responsive cluster from one of the first cluster and the second cluster in accordance with a desired storage characteristic; and
wherein the multi-cluster gateway sends a message to the responsive cluster.
4 Assignments
0 Petitions
Accused Products
Abstract
An improved scalable object storage system allows multiple clusters to work together. Users working with a first cluster, or with a multi-cluster gateway, can ask for services and have the request or data transparently proxied to a second cluster. This gives transparent cross-cluster replication, as well as multi-cluster compute or storage farms based upon spot availability or various provisioning policies. Vendors providing a cloud storage “frontend” can provide multiple backends simultaneously. In one embodiment, a multi-cluster gateway can have a two, three, or higher-level ring that transparently matches an incoming request with the correct cluster. In the ring, a request is first mapped to an abstract “partition” based on a consistent hash function, and then one or more constrained mappings map the partition number to an actual resource. In another embodiment, the multi-cluster gateway is a dumb gateway, and the rings are located only at the cluster level.
42 Citations
22 Claims
-
1. A system for coordinating a plurality of clusters, the system comprising:
-
a multi-cluster gateway, the multi-cluster gateway communicatively coupled to a first cluster and a second cluster, wherein the first cluster includes a first plurality of information processing devices and the second cluster includes a second plurality of information processing devices; wherein the multi-cluster gateway includes a multi-cluster ring, wherein the multi-cluster ring performs a consistent hashing function responsive to a request to interact with the system, and wherein an output of the consistent hashing function is a partition identifier corresponding to computing resources available at one of the first cluster and the second cluster; wherein the multi-cluster ring performs a constrained mapping function on the partition identifier, and wherein an output of the constrained mapping function maps the partition identifier to a responsive cluster from one of the first cluster and the second cluster in accordance with a desired storage characteristic; and wherein the multi-cluster gateway sends a message to the responsive cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 13, 14, 17, 19, 20, 21)
-
-
9. A system for coordinating a plurality of clusters, the system comprising:
-
a multi-cluster gateway, the multi-cluster gateway communicatively coupled to a first cluster and a second cluster, wherein the first cluster includes a first plurality of information processing devices and the second cluster includes a second plurality of information processing devices; wherein the multi-cluster gateway sends a message to one of the first cluster, second cluster, or both clusters responsive to a request to interact with the system; wherein one of the first cluster and the second cluster includes a cluster-level ring, wherein the cluster-level ring performs a consistent hashing function responsive to a message, wherein an output of the consistent hashing function is a partition identifier corresponding to computing resources available at one of the first cluster and the second cluster; and wherein the cluster-level ring performs a constrained mapping function on the partition identifier, and wherein an output of the constrained mapping function maps the partition identifier to a specific responsive resource associated with the partition in accordance with a desired storage characteristic. - View Dependent Claims (10, 11, 12, 15, 16, 18)
-
-
22. A system for coordinating a plurality of clusters, the system comprising:
-
a multi-cluster gateway, the multi-cluster gateway communicatively coupled to a first cluster and a second cluster, wherein the first cluster includes a first plurality of information processing devices and the second cluster includes a second plurality of information processing devices; wherein the multi-cluster gateway includes a multi-cluster ring, wherein the multi-cluster ring provides a mapping between one or more entities stored in the first or second clusters and locations of the one or more entities in one or more storage pools; wherein the multi-cluster ring performs a consistent hash function responsive to a request to interact with the system, and wherein an output of the consistent hash function is a partition identifier corresponding to a partition that is mapped to a plurality of storage pools of the one or more storage pools; wherein the multi-cluster ring performs a constrained mapping function on the output of the consistent hash function, and wherein the constrained mapping function ensures that each partition is mapped to a storage pool of the plurality of storage pools in a different zone; and wherein the multi-cluster gateway sends a message to the responsive cluster.
-
Specification