IP Library Granted Patent US 9,542,108
Granted Patent B2
US 9,542,108 · App. 14/320,427 · Granted Jan 10, 2017

Efficient migration of virtual storage devices to a remote node using snapshots

Inventor: Philip Andrew White (San Francisco, CA)
Assignee: Scale Computing, Inc.
G06F3/0619G06F3/065G06F3/067G06F3/0647G06F9/5088G06F11/1456G06F17/30088
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,542,108
App. No.
14/320,427
Granted
Jan 10, 2017
Kind
B2
Abstract

A system, method, and computer program product are provided for performing fast migration of a virtual resource from one node to another node. The method includes the steps of receiving a first request to migrate a resource from a first node to a second node, transmitting a second request to the second node to create a new instance of the resource, collecting a set of changes associated with the resource in a data structure, and transmitting the data structure that includes the set of changes to the second node. The second node generates the new instance of the resource based on a snapshot of the resource captured by the first node at a previous point in time and updates the new instance of the resource based on the set of changes such that the new instance of the resource on the second node matches the resource on the first node.

Claims (66)

1. A method comprising:

receiving, at a first node, a first request to initiate a migration operation that migrates a resource from the first node to a second node;

transmitting a second request from the first node to the second node to create a new instance of the resource, wherein the second node, in response to receiving the second request, generates the new instance of the resource in a memory associated with the second node based on a snapshot of the resource captured by the first node and stored in the memory associated with the second node at a previous point in time, wherein the first request is received by the first node after the previous point in time;

collecting, in the first node, a set of changes associated with the resource in a data structure, wherein the set of changes represents any modifications to the resource since the previous point in time during which the snapshot was captured;

transmitting the data structure that includes the set of changes to the second node, wherein the second node is configured to update the new instance of the resource based on the set of changes such that the new instance of the resource on the second node matches the resource on the first node,

determining that a period of time that has elapsed since the start of the migration operation is greater than a timeout period; and

configuring the resource to operate in a protected operating mode,

wherein the timeout period is set dynamically during the migration operation based on characteristics of the migration operation.

2. The method of claim 1 , wherein the resource comprises a virtual storage device.

3. The method of claim 2 , wherein the snapshot comprises an additional data structure that represents a state of the virtual storage device at a particular point in time.

4. The method of claim 2 , further comprising:

collecting an additional set of changes associated with the virtual storage device in an additional data structure while the previous set of changes is transmitted to the second node; and

transmitting the additional data structure that includes the additional set of changes to the second node.

5. The method of claim 4 , further comprising:

determining whether the additional set of changes is below a threshold value; and

if the additional set of changes is below the threshold value, then configuring the virtual storage device to operate in a protected operating mode, or

if the additional set of changes is not below the threshold value, then repeating the steps of collecting one or more additional sets of changes associated with the virtual storage device in one or more additional data structures and transmitting the one or more additional data structures to the second node.

6. The method of claim 5 , wherein placing the virtual storage device into the protected operating mode comprises modifying the permissions of the virtual storage device such that the data on the virtual storage device is marked as read-only.

7. The method of claim 4 , wherein setting the timeout period dynamically comprises:

decreasing the timeout period if the additional set of changes is larger than the previous set of changes; or

increasing the timeout period if the additional set of changes is smaller than the previous set of changes.

8. The method of claim 2 , further comprising freeing memory associated with the virtual storage device on the first node once the new instance of the virtual storage device on the second node matches the virtual storage device on the first node.

9. The method of claim 1 , wherein transmitting the data structure to the second node comprises generating a number of packets in a memory associated with the first node and transmitting the packets to the second node via a network, wherein each packet includes at least a portion of the data structure.

10. The method of claim 1 , wherein the resource comprises a virtual machine.

11. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising:

receiving, at a first node, a first request to migrate a resource from the first node to a second node;

transmitting a second request from the first node to the second node to create a new instance of the resource, wherein the second node, in response to receiving the second request, generates the new instance of the resource in a memory associated with the second node based on a snapshot of the resource captured by the first node and stored in the memory associated with the second node at a previous point in time, wherein the first request is received by the first node after the previous point in time;

collecting, in the first node, a set of changes associated with the resource in a data structure, wherein the set of changes represents any modifications to the resource since the previous point in time during which the snapshot was captured;

transmitting the data structure that includes the set of changes to the second node, wherein the second node is configured to update the new instance of the resource based on the set of changes such that the new instance of the resource on the second node matches the resource on the first node;

determining that a period of time that has elapsed since the start of the migration operation is greater than a timeout period; and

configuring the resource to operate in a protected operating mode,

wherein the timeout period is set dynamically during the migration operation based on characteristics of the migration operation.

12. The computer-readable storage medium of claim 11 , wherein the resource comprises a virtual storage device.

13. The computer-readable storage medium of claim 12 , the steps further comprising:

collecting an additional set of changes associated with the virtual storage device in an additional data structure while the previous set of changes is transmitted to the second node; and

transmitting the additional data structure that includes the additional set of changes to the second node.

14. The computer-readable storage medium of claim 13 , the steps further comprising:

determining whether the additional set of changes is below a threshold value; and

if the additional set of changes is below the threshold value, then configuring the virtual storage device to operate in a protected operating mode, or

if the additional set of changes is not below the threshold value, then repeating the steps of collecting one or more additional sets of changes associated with the resource in one or more additional data structures and transmitting the one or more additional data structures to the second node.

15. A system comprising:

a first node comprising a processor and a memory; and

a second node comprising a second processor and an additional memory,

wherein the first node is configured to:

receive a first request to migrate a resource from the first node to the second node,

transmit a second request to the second node to create a new instance of the resource,

collect a set of changes associated with the resource in a data structure, wherein the set of changes represents any modifications to the resource since a previous point in time; and

transmit the data structure that includes the set of changes to the second node,

determine that a period of time that has elapsed since the start of the migration operation is greater than a timeout period, and

configure the resource to operate in a protected operating mode,

wherein the timeout period is set dynamically during the migration operation based on characteristics of the migration operation;

and wherein the second node is configured to:

in response to receiving the second request, generate the new instance of the resource in the additional memory based on a snapshot of the resource captured by the first node and stored in the additional memory at the previous point in time, wherein the first request is received by the first node after the previous point in time, and

update the new instance of the resource based on the set of changes such that the new instance of the resource on the second node matches the resource on the first node.

16. The system of claim 15 , wherein the resource comprises a virtual storage device.

17. The system of claim 16 , wherein the first node is further configured to:

collect an additional set of changes associated with the virtual storage device in an additional data structure while the previous set of changes is transmitted to the second node; and

transmit the additional data structure that includes the additional set of changes to the second node.

18. The system of claim 17 , wherein the first node is further configured to:

determine that a period of time that has elapsed since the start of the migration operation is greater than a timeout period; and

configure the virtual storage device to operate in a protected operating mode.

19. The system of claim 17 , wherein the first node is further configured to:

determine whether the additional set of changes is below a threshold value; and

if the additional set of changes is below the threshold value, then configure the virtual storage device to operate in a protected operating mode, or

if the additional set of changes is not below the threshold value, then repeat the steps of collecting one or more additional sets of changes associated with the virtual storage device in one or more additional data structures and transmitting the one or more additional data structures to the second node.

20. The system of claim 15 , wherein the first node is connected to the second node via a network.

Assignments (18)
SECURITY INTEREST Recorded Jan 29, 2026
From: SCALE COMPUTING, LLC
To: TORONTO DOMINION (TEXAS) LLC
Reel/Frame 073633/0710 →
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: BANC OF CALIFORNIA (FORMERLY KNOWN AS PACIFIC WESTERN BANK)
To: SCALE COMPUTING, INC.
Reel/Frame 071898/0667 →
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 →
SECURITY INTEREST Recorded Oct 13, 2023
From: SCALE COMPUTING, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 065213/0109 →
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 Jul 3, 2014
From: WHITE, PHILIP ANDREW
To: SCALE COMPUTING, INC.
Reel/Frame 033242/0692 →
Continuity (1)
Related Publication 20150378623A1 · Dec 31, 2015