IP Library Granted Patent US 8,712,982
Granted Patent B2
US 8,712,982 · App. 13/278,876 · Granted Apr 29, 2014

Virtual multi-cluster clouds

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,712,982
App. No.
13/278,876
Granted
Apr 29, 2014
Kind
B2
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.

Claims (35)

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.

2. The system of claim 1 , wherein the output of the constrained mapping function further identifies a specific resource within the responsive cluster.

3. The system of claim 1 , wherein the message to the responsive cluster is addressed to the specific resource within the responsive cluster.

4. The system of claim 1 , wherein the multi-cluster gateway receives a return message from the responsive cluster responsive to the request to interact with the system.

5. The system of claim 1 , wherein the multi-cluster gateway further includes a proxy module.

6. The system of claim 5 , wherein the proxy module sends a return message from the responsive cluster in response to the request to interact with the system.

7. The system of claim 1 , wherein the consistent hashing function is a first-level hashing function and the constrained mapping function is a second-level hashing function, wherein one of the first cluster and the second cluster further comprises a cluster-level ring that performs a third-level hashing function responsive to a message identifying the cluster as a responsive cluster, wherein an output of the third-level hashing function is a cluster-level partition associated with the resources available within the cluster.

8. The system of claim 7 , wherein the cluster-level ring performs a fourth-level hashing function, wherein an output of the fourth-level hashing function identifies a specific responsive resource associated with the cluster-level partition.

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.

10. The system of claim 9 , wherein the multi-level gateway receives a responsive message from a cluster and sends a response to the request.

11. The system of claim 9 , wherein only one of the first cluster and the second cluster is a responsive cluster, and wherein a response to the request is sent by the responsive cluster.

12. The system of claim 9 , wherein either of the first cluster and the second cluster can be a responsive cluster, and wherein the first cluster to formulate a response sends the response.

13. The system of claim 1 , wherein the constrained mapping function uses geographic distance to choose which cluster is the responsive cluster.

14. The system of claim 1 , wherein the constrained mapping function uses network latency to choose which cluster is the responsive cluster.

15. The system of claim 9 , wherein the multi-cluster gateway sends the message to the cluster that is closer geographically to the source of the request.

16. The system of claim 9 , wherein the multi-cluster gateway sends the message to the cluster that has lower latency between the cluster and the source of the request.

17. The system of claim 1 , wherein the first cluster is controlled by a first party and the second cluster is controlled by a second party.

18. The system of claim 9 , wherein the first cluster is controlled by a first party and the second cluster is controlled by a second party.

19. The system of claim 1 , wherein the multi-cluster ring divides the partition identifier into a plurality of parts and performs the constrained mapping function on each part of the plurality of parts, and wherein each output of the constrained mapping function identifies a partition associated with the first cluster or the second cluster.

20. The system of claim 1 , wherein the request includes an object and the multi-cluster ring performs the consistent hashing function on an attribute of the object.

21. The system of claim 1 , wherein the request includes an object and the multi-cluster ring performs the consistent hashing function on the object.

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.

Assignments (4)
RELEASE OF PATENT SECURITIES Recorded Mar 13, 2024
From: CITIBANK, N.A.
To: RACKSPACE US, INC.
Reel/Frame 066795/0177 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE PROPERTY NUMBER PREVIOUSLY RECORDED AT REEL: 40564 FRAME: 914. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: RACKSPACE US, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048658/0637 →
SECURITY AGREEMENT Recorded Nov 4, 2016
From: RACKSPACE US, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 040564/0914 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2011
From: HOLT, GREGORY LEE; GERRARD, CLAY; GOETZ, DAVID PATRICK; BARTON, MICHAEL
To: RACKSPACE US, INC.
Reel/Frame 027101/0702 →