IP Library Granted Patent US 9,077,665
Granted Patent B1
US 9,077,665 · App. 13/841,212 · Granted Jul 7, 2015

Transferring virtual machines and resource localization in a distributed fault-tolerant system

Inventor: Scott Loughmiller (San Francisco, CA)
Assignee: Scale Computing, Inc.
H04L47/70G06F9/45558G06F9/5077G06F9/45533G06F9/4856
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 9,077,665
App. No.
13/841,212
Granted
Jul 7, 2015
Kind
B1
Abstract

Virtual machine localization in a distributed fault-tolerant system. Network traffic is minimized between nodes, while maintaining fault-tolerant behavior. Communication is measured between VM's, which are moved to minimize real network use. An availability group defines which resources cannot safely be disposed on a single device. When two VM's are in the same availability group, they are disposed as near as practical, but not on the same device. VM's and other resources they use are also disposed to minimize real network use. Minimizing real network use includes minimizing both channels occupied and communication distance. Availability groups can include both “hard” availability groups, for which data could be irretrievably lost, or “soft” availability groups, for which data could be lost, but could still be recovered with difficulty. Resource localization responds to both distance between VM's and their resources, and risk associated with losing data.

Claims (113)

1. A method, including steps of:

in a fault-tolerant system having a plurality of nodes and a network by which said nodes communicate, said fault-tolerant system defining one or more availability groups,

determining a measure of network use between a virtual machine hosted by said system and a resource available at one or more of said nodes; and

positioning said virtual machine and said resource relative to each other in response to said measure of network use and in response to whether any said availability group includes both said virtual machine and said resource;

wherein said availability groups include one or more of:

a hard availability group, wherein said resource and said virtual machines cannot be safely positioned on a single said node without said single node posing a single point of failure;

a soft availability group, wherein said resource and said virtual machines can be positioned on a single said node, wherein when said single node fails, said resource can be recovered with a measure of effort.

2. A method as in claim 1 , wherein

said availability groups include one or more of:

a pairing of two or more said resources;

a pairing of two or more said virtual machines;

an association of one or more said virtual machines with one or more said resources.

3. A method as in claim 1 , wherein

said fault-tolerant system emulates network traffic between virtual machines using a private network among more than one node of said nodes of said system,

wherein said private network is not generally available to devices outside said system.

4. A method as in claim 3 , wherein

said private network couples each 1 st node to each 2 nd node using a single communication channel.

5. A method as in claim 3 , wherein

said private network couples each 1 st node to one or more 2 11d nodes using two or more communication channels.

6. A method as in claim 1 , wherein

said measure of network use is responsive to one or more of:

an amount of communication between said nodes,

a measure of communication quality between said virtual machine and said resource,

a measure of latency between said virtual machine and said resource,

a number of nodes involved in access between said virtual machine and said resource.

7. A method as in claim 1 , wherein

said steps of positioning include steps of

moving said resource as close to said virtual machine as possible in response to whether any said availability group includes both said virtual machine and said resource.

8. A method as in claim 1 , wherein

said steps of positioning include steps of

moving said virtual machine as close to said resource as possible in response to whether any said availability group includes both said virtual machine and said resource.

9. A method as in claim 1 , wherein

said resource includes one or more of:

a 2 nd virtual machine; a collection of data; a data image for one or more virtual machines; a real or virtual hardware device, driver, or element; a real or virtual network connection; a real or virtual storage element; one or more of a pair of virtual machines in a set thereof.

10. A method as in claim 1 , wherein

said steps of positioning include transferring said virtual machine and said resource relative to one another, to one or more selected nodes wherein said measure of network use is minimized,

consistent with maintaining said virtual machine and said resource on distinct nodes whenever any said availability group includes both said virtual machine and said resource.

11. A method as in claim 1 , wherein

said steps of positioning include transferring said virtual machine and said resource relative to one another, to a selected node hosting said virtual machine and resource whenever no availability group includes both said virtual machine and said resource.

12. An apparatus including:

a fault-tolerant system having a plurality of nodes each comprises at least one processor, and a network by which said nodes communicate, said fault-tolerant system defining one or more availability groups,

a traffic optimizer configured to measure of network use between a virtual machine hosted by said system and a resource available at one or more of said nodes; and

a control system configured to position said virtual machine and said resource relative to each other in response to said measure of network use and in response to whether any said availability group includes both said virtual machine and said resource;

wherein said availability groups include one or more of:

a hard availability group, wherein said resource and said virtual machines cannot be safely positioned on a single said node without said single node posing a single point of failure;

a soft availability group, wherein said resource and said virtual machines can be positioned on a single said node, wherein when said single node fails, said resource can be recovered with a measure of effort.

13. The apparatus as in claim 12 , wherein

said availability groups include one or more of:

a pairing of two or more said resources;

a pairing of two or more said virtual machines;

an association of one or more said virtual machines with one or more said resources.

14. The apparatus as in claim 12 , including

a private network among more than one node of said nodes of said system, said private network emulating network traffic between virtual machines in fault-tolerant system;

wherein said private network is not generally available to devices outside said system.

15. The apparatus as in claim 14 , wherein

said private network couples each 1 st node to each 2 nd node using a single communication channel.

16. The apparatus as in claim 14 , wherein

said private network couples each 1 st node to one or more 2 nd nodes using two or more communication channels.

17. The apparatus as in claim 1 , wherein:

said traffic optimizer is configured to measure the amount of network use in response to an amount of communication between said nodes, a measure of communication quality between said virtual machine and said resource, a measure of latency between said virtual machine and said resource, a number of nodes involved in access between said virtual machine and said resource.

18. The apparatus as in claim 12 , wherein

said control system is disposed to move said resource as close to said virtual machine as possible in response to whether any said availability group includes both said virtual machine and said resource.

19. The apparatus as in claim 12 , wherein

said control system is disposed to move moving said virtual machine as close to said resource as possible in response to whether any said availability group includes both said virtual machine and said resource.

20. The apparatus as in claim 12 , wherein

said resource includes one or more of:

a 2 nd virtual machine; a collection of data; a data image for one or more virtual machines; a real or virtual hardware device, driver, or element; a real or virtual network connection; a real or virtual storage element; one or more of a pair of virtual machines in a set thereof.

21. The apparatus as in claim 12 , wherein

said control system is disposed to transfer said virtual machine and said resource relative to one another, to one or more selected nodes wherein said measure of network use is minimized,

consistent with maintaining said virtual machine and said resource on distinct nodes whenever any said availability group includes both said virtual machine and said resource.

22. The apparatus as in claim 12 , wherein

said control system is disposed to transfer said virtual machine and said resource relative to one another, to a selected node hosting said virtual machine and resource whenever no availability group includes both said virtual machine and said resource.

23. A non-transitory computer readable medium including instructions interpretable by a computing device, including instructions:

in a fault-tolerant system having a plurality of nodes and a network by which said nodes communicate, said fault-tolerant system defining one or more availability groups,

to determine a measure of network use between a virtual machine hosted by said system and a resource available at one or more of said nodes; and

to position said virtual machine and said resource relative to each other in response to said measure of network use and in response to whether any said availability group includes both said virtual machine and said resource:

wherein said availability groups include one or more of:

a hard availability group, wherein said resource and said virtual machines cannot be safely positioned on a single said node without said single node posing a single point of failure;

a soft availability group, wherein said resource and said virtual machines can be positioned on a single said node, wherein when said single node fails, said resource can be recovered with a measure of effort.

24. The non-transitory computer readable medium as in claim 23 , wherein

said availability groups include one or more of:

a pairing of two or more said resources;

a pairing of two or more said virtual machines;

an association of one or more said virtual machines with one or more said resources.

25. The non-transitory computer readable medium as in claim 23 , wherein

said fault-tolerant system emulates network traffic between virtual machines using a private network among more than one node of said nodes of said system,

wherein said private network is not generally available to devices outside said system.

26. The non-transitory computer readable medium as in claim 25 , wherein

said private network couples each 1 st node to each 2 nd node using a single communication channel.

27. The non-transitory computer readable medium as in claim 25 , wherein

said private network couples each 1 st node to one or more 2 nd nodes using two or more communication channels.

28. The non-transitory computer readable medium as in claim 23 , wherein

said measure of network use is responsive to one or more of:

an amount of communication between said nodes,

a measure of communication quality between said virtual machine and said resource,

a measure of latency between said virtual machine and said resource,

a number of nodes involved in access between said virtual machine and said resource.

29. The non-transitory computer readable medium as in claim 23 , wherein

said instructions to position include instructions

to move said resource as close to said virtual machine as possible in response to whether any said availability group includes both said virtual machine and said resource.

30. The non-transitory computer readable medium as in claim 23 , wherein

said instructions to position include instructions

to move said virtual machine as close to said resource as possible in response to whether any said availability group includes both said virtual machine and said resource.

31. The non-transitory computer readable medium as in claim 23 , wherein

said resource includes one or more of:

a 2 nd virtual machine; a collection of data; a data image for one or more virtual machines; a real or virtual hardware device, driver, or element; a real or virtual network connection; a real or virtual storage element; one or more of a pair of virtual machines in a set thereof.

32. The non-transitory computer readable medium as in claim 23 , wherein

said instructions to position include instructions

to transfer said virtual machine and said resource relative to one another, to one or more selected nodes wherein said measure of network use is minimized,

consistent with maintaining said virtual machine and said resource on distinct nodes whenever any said availability group includes both said virtual machine and said resource.

33. The non-transitory computer readable medium as in claim 23 , wherein

said instructions to position include instructions

to transfer said virtual machine and said resource relative to one another, to a selected node hosting said virtual machine and resource whenever no availability group includes both said virtual machine and said resource.

Assignments (16)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2025
From: SCALE COMPUTING, LLC
To: SCALE COMPUTING, INC.
Reel/Frame 072864/0595 →
CHANGE OF NAME Recorded Aug 28, 2025
From: ACUMERA SCALE, LLC
To: SCALE COMPUTING, LLC
Reel/Frame 072699/0326 →
MERGER Recorded Aug 15, 2025
From: SCALE COMPUTING, INC.
To: ACUMERA SCALE, LLC
Reel/Frame 072034/0883 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2025
From: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES LLC AS AGENT
To: SCALE COMPUTING, INC.
Reel/Frame 071901/0365 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2025
From: BANC OF CALIFORNIA (FORMERLY KNOWN AS PACIFIC WESTERN BANK)
To: SCALE COMPUTING, INC.
Reel/Frame 071898/0667 →
RELEASE OF SECURITY INTEREST Recorded Feb 6, 2023
From: AVENUE VENTURE OPPORTUNITIES FUND, L.P.
To: SCALE COMPUTING, INC.
Reel/Frame 062603/0565 →
SECURITY INTEREST Recorded Feb 3, 2023
From: SCALE COMPUTING, INC.
To: NORTH HAVEN EXPANSION CREDIT II LP
Reel/Frame 062586/0059 →
SECURITY INTEREST Recorded Dec 11, 2020
From: SCALE COMPUTING, INC.
To: AVENUE VENTURE OPPORTUNITIES FUND, L.P.
Reel/Frame 054619/0825 →
RELEASE OF SECURITY INTEREST Recorded Dec 11, 2020
From: RUNWAY GROWTH CREDIT FUND INC.
To: SCALE COMPUTING, INC.
Reel/Frame 054619/0802 →
RELEASE OF SECURITY INTEREST Recorded Dec 10, 2020
From: RUNWAY GROWTH CREDIT FUND INC., AS AGENT
To: SCALE COMPUTING, INC.
Reel/Frame 054611/0589 →
SECURITY INTEREST Recorded Mar 29, 2019
From: SCALE COMPUTING, INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 048745/0653 →
RELEASE OF SECURITY INTEREST Recorded Mar 29, 2019
From: BET ASSOCIATES III, LLC
To: SCALE COMPUTING, INC.
Reel/Frame 048747/0302 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2017
From: PACIFIC WESTERN BANK
To: SCALE COMPUTING, INC.
Reel/Frame 043572/0750 →
SECURITY AGREEMENT Recorded Sep 12, 2017
From: SCALE COMPUTING, INC.
To: BET ASSOCIATES III, LLC
Reel/Frame 043820/0802 →
SECURITY INTEREST Recorded Jan 18, 2017
From: SCALE COMPUTING, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 041003/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2013
From: LOUGHMILLER, SCOTT
To: SCALE COMPUTING
Reel/Frame 031071/0274 →
Continuity (1)
Provisional Application 61692662 · Aug 23, 2012