IP Library Granted Patent US 10,437,506
Granted Patent B2
US 10,437,506 · App. 14/968,888 · Granted Oct 8, 2019

Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems

Inventors: Lokesh Srinivas Koppolu (Redmond, WA); David Allen Dion (Bothell, WA); Abhinit Kumar (Bellevue, WA); Suresh Chandra Pippari (Redmond, WA); Amitabh Tamhane (Redmond, WA); Elden Christensen (Sammamish, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING LLC
G06F3/065G06F3/0619G06F3/0683G06F9/505G06F9/5061G06F9/5072G06F11/2094G06F2209/502
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 10,437,506
App. No.
14/968,888
Granted
Oct 8, 2019
Kind
B2
Abstract

Technologies for cluster systems that are natively geo-site-aware. Such a cluster system makes use of this awareness to determine the subsets of nodes located at various geo-sites at physical configuration, to optimize workload placement based on the geo-sites, to make failover and failback decisions based on the geo-sites, and to assign voting and prune nodes for quorum management based on the geo-sites. Such capabilities result in cluster systems that are more resilient and more efficient in terms of resource usage than cluster systems without such native geo-site awareness.

Claims (33)

1. A method performed on a cluster system comprising at least one computing device that includes at least one processor and memory, the method comprising:

automatically identifying, by the cluster system, a plurality of geo-site objects, each of the geo-site objects corresponding to a geographical location and identifying a subset of physical resources of the cluster system that is physically located at the corresponding geographical location;

determining a client geographical location at which a client is physically located;

placing, by the cluster system and based on the determination, a workload of the client on a workload node of a first geo-site object of the plurality of geo-site objects, where the first geo-site object identifies a subset of physical resources of the cluster system that is physically located at the client geographical location;

placing, by the cluster system, dependent storage of the workload on a storage node of the geo-site object, where the workload node and the storage node are cluster nodes of the cluster system; and

pruning, based on a node not being in the geo-site object, the node from one of the plurality of geo-site objects other than the geo-site object.

2. The method of claim 1 where the storage node and the workload node are the same cluster node.

3. The method of claim 1 further comprising placing, upon a failover involving the workload, the workload on a third node of the geo-site object.

4. The method of claim 3 further comprising placing, in response to a failback event involving the workload subsequent to the placing the workload on the third node, the workload back on the workload node of the geo-site object.

5. The method of claim 1 further comprising identifying the geo-site object as representing a preferred geo-site of the cluster system.

6. The method of claim 1 where the workload node is identified by the cluster system as a preferred node of the cluster system.

7. A cluster system comprising:

a workload node that comprises at least one processor and memory coupled to the at least one processor, the memory comprising computer-executable instructions that, based on execution by the at least one processor, configure the cluster system to:

identify a plurality of geo-site objects, each of the geo-site objects corresponding to a geographical location and identifying a subset of physical resources of the cluster system that is physically located at a corresponding geographical location of the cluster system;

determine a client geographical location at which a client is physically located;

place, based on the determination, a workload of the client on the workload node of a first geo-site object of the plurality of geo-site objects, where the first geo-site object identifies a subset of physical resources of the cluster system that is physically located at the client geographical location; and

place dependent storage of the workload on a storage node of the geo-site object, where the workload node and the storage node are cluster nodes of the cluster system; and

a geo-site quorum mange via which the cluster system is configured to prune, based on a node not being in the geo-site object, the node from one of the plurality of geo-site objects other than the geo-site object.

8. The cluster system of claim 7 where the storage node and the workload node are the same cluster node.

9. The cluster system of claim 7 further configured to place, upon a failover involving the workload, the workload on a third node of the geo-site object.

10. The cluster system of claim 9 further configured to place, in response to a failback event involving the workload subsequent to the placing the workload on the third node, the workload back on the workload node of the geo-site object.

11. The cluster system of claim 7 further configured to identify the geo-site object as representing a preferred geo-site of the cluster system.

12. The cluster system of claim 7 where the workload node is identified by the cluster system as a preferred node of the cluster system.

13. At least one computer-readable medium that comprises computer-executable instructions that, based on execution by at least one computing device of a cluster system, configure the cluster system to perform actions comprising:

automatically identifying, by the cluster system, a plurality of geo-site objects, each of the geo-site objects corresponding to a geographical location and identifying a subset of physical resources of the cluster system that is physically located at the corresponding geographical location;

determining a client geographical location at which a client is physically located;

placing, by the cluster system and based on the determination, a workload of the client on a workload node of a first geo-site object of the plurality of geo-site objects, where the first geo-site object identifies a subset of physical resources of the cluster that is physically located at the corresponding geographical location;

placing, by the cluster system, dependent storage of the workload on a storage node of the geo-site object, where the workload node and the storage node are cluster nodes of the cluster system; and

pruning, based on a node not being in the geo-site object, the node from one of the plurality of geo-site objects other than the geo-site object.

14. The at least one computer-readable medium of claim 13 where the storage node and the workload node are the same cluster node.

15. The at least one computer-readable medium of claim 13 , the actions further comprising placing, upon a failover involving the workload, the workload on a third node of the geo-site object.

16. The at least one computer-readable medium of claim 15 , the actions further comprising placing, in response to a failback event involving the workload subsequent to the placing the workload on the third node, the workload back on the workload node of the geo-site object.

17. The at least one computer-readable medium of claim 13 where the geo-site object is identified by the cluster system as representing a preferred geo-site of the cluster system, or where the workload node is identified by the cluster system as a preferred node of the cluster system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2015
From: KOPPOLU, LOKESH SRINIVAS; DION, DAVID ALLEN; KUMAR, ABHINIT; PIPPARI, SURESH CHANDRA; TAMHANE, AMITABH; CHRISTENSEN, ELDEN
To: MICROSOFT TECHNOLOGY LICENSING LLC
Reel/Frame 037288/0235 →
Continuity (2)
Provisional Application 62206235 · Aug 17, 2015
Related Publication 20170052707A1 · Feb 23, 2017