IP Library Granted Patent US 9,936,019
Granted Patent B2
US 9,936,019 · App. 15/071,852 · Granted Apr 3, 2018

Efficient live-migration of remotely accessed data

Inventor: Tyler Sanderson (Seattle, WA)
Assignee: Google LLC
H04L67/1095G06F3/0604G06F3/0647G06F3/0664G06F3/0683G06F9/45558G06F9/5088H04L67/1097G06F2009/4557G06F2009/45583G06F2009/45595
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,936,019
App. No.
15/071,852
Filed
Mar 16, 2016
Granted
Apr 3, 2018
Kind
B2
Art Unit
2453
USPC
709/213
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for migrating data from a first storage system to a second storage system. That data is for a process (e.g., a virtual machine, application, or some other process) operating on a computer system that is separate from the first storage system and the second storage system. That data is stored according to data subsets that are each exclusive of each other. As each data set is migrated, access to the data set by the process is precluded, but access for the remaining data sets is not affected. Once the data migration is complete, access to the data set by the process is restored.

Claims (61)

1. A method performed by a data processing system comprising a plurality of physical machines, the method comprising:

storing, in a first physical machine, data for a data processing process running on a second physical machine that is separate from the first physical machine, the storing data comprising storing the data according to a plurality of data subsets that are each exclusive of each other;

for each data subset, logically mapping in a mapping, by the data processing process, an address range for the data subset on the first physical machine to a respective logical address range for the data processing process;

enabling read and write access to the data by the data processing process according to the logical addressing;

determining that the data stored on the first physical machine for the data processing process is to be migrated to a third physical machine separate from the first physical machine and the second physical machine, and in response, separately migrating the data in first data subsets, the migrating of each first data subset comprising:

selecting a data subset as a first data subset stored on the first physical machine to be migrated to the third physical machine separate from the first physical machine and the second physical machine, and in response:

blocking read and write access by the data processing process to the first data subset while maintaining read and write access by the data processing process to the other data subsets of the data;

migrating, from the first physical machine to the third physical machine, the first data subset to store the data subset on the third physical machine;

updating the mapping by logically mapping, by the data processing process, an address range for the first data subset on the third physical machine to the respective logical address range for the data processing process.

2. The method of claim 1 , wherein the data processing process is a virtual machine.

3. The method of claim 2 , wherein:

the determination that the data stored on the first physical machine is to be migrated to the third physical machine is performed by the first physical machine; and

blocking read and write access by the virtual machine to the first data subset while maintaining read and write access by the virtual machine to the other data subsets comprises blocking, by the first physical machine, read and write access by the virtual machine to the first data subset.

4. The method of claim 3 , further comprising:

providing, by the first physical machine, a notification to the virtual machine of the migration of the first data subset to the third physical machine; and

wherein updating the mapping by logically mapping the address range for the first data subset on the third physical machine to the respective logical address range for the virtual machine is done in response to the virtual machine receiving the notification provided by the first physical machine.

5. The method of claim 4 , wherein the notification instructs the virtual machine to not access the first data subset.

6. The method of claim 4 , wherein migrating, from the first physical machine to the third physical machine, the first data subset to store the data subset on the third physical machine comprises sending the first data subset from the first physical machine directly to the third physical machine.

7. The method of claim 3 , further comprising:

providing, by the third physical machine, a notification to the virtual machine of the migration of the first data subset to the third physical machine; and

wherein updating the mapping by logically mapping the address range for the first data subset on the third physical machine to the respective logical address range for the virtual machine is done in response to receiving the notification by the virtual machine.

8. The method of claim 2 , wherein:

selecting the data subset as the first data subset stored on the first physical machine to be migrated to the third physical machine is performed by the virtual machine; and

migrating, from the first physical machine to the third physical machine, the first data subset to store the data subset on the third physical machine comprises:

instructing, by the virtual machine, the first physical machine to send the first data subset to the virtual machine; and

sending, by the virtual machine, the first data subset received from the first physical machine to the third physical machine.

9. The method of claim 8 , wherein the first physical machine and the third physical machines store the data subsets without reference to an address of the virtual machine.

10. The method of claim 2 , further comprising restoring read and write access to the first data subset for the virtual machine after the migration of the first data subset from the first physical machine to the third physical machine.

11. The method of claim 2 , wherein:

selecting the data subset at the first data subset stored on the first physical machine to be migrated to the third physical machine is performed by a process that is external to the first physical machine, the virtual machine, and the third physical machine; and

migrating, from the first physical machine to the third physical machine, the first data subset to store the data subset on the third physical machine comprises:

instructing, by the virtual machine, the first physical machine to send the first data subset to the virtual machine; and

sending, by the virtual machine, the first data subset received from the first physical machine to the third physical machine.

12. The method of claim 1 , wherein the data subsets are data chunks logically mapped to a physical address range.

13. The method of claim 1 , the data subsets are data blocks.

14. A system, comprising:

a first physical machine storing data according to a plurality of data subsets that are each exclusive of each other;

a second physical machine that is separate from the first physical machine and a virtual machine on the second physical machine having read and write access to the data stored on the first physical machine and that, for each data subset, logically maps, in a mapping, an address range for the data subset on the first physical machine to a respective logical address range for the virtual machine;

determining that the data stored on the first physical machine for the virtual machine is to be migrated to a third physical machine separate from the first physical machine and the second physical machine, and in response, separately migrating the data in first data subsets, the migrating of each first data subset comprising:

selecting a data subset as a first data subset stored on the first physical machine to be migrated to a third physical machine separate from the first physical machine and the second physical machine:

the first data subset is migrated from the first physical machine to the third physical machine;

read and write access to the first data subset for the virtual machine is blocked during the migration while read and write access by the virtual machine to the other data subsets of the data is maintained; and

the mapping is updated by the virtual machine to logically map an address range for the first data subset on the third physical machine to the respective logical address range for the virtual machine; and

read and write access to the first data subset for the virtual machine is restored after the migration of the first data subset from the first physical machine to the third physical machine.

15. The system of claim 13 , wherein:

selecting the data subset as the first data subset stored on the first physical machine is to be migrated to the third physical machine is performed by the first physical machine; and

blocking read and write access by the virtual machine to the first data subset is performed by the first physical machine.

16. The system of claim 14 , wherein:

the first physical machine provides a notification to the virtual machine of the migration of the first data subset to the third physical machine; and

wherein updating the mapping to logically map an address range for the first data subset on the third physical machine to the respective logical address range for the virtual machine is done in response to receiving the notification by the virtual machine.

17. The system of claim 15 , wherein the notification instructs the virtual machine to not access the first data subset.

18. The system of claim 15 , wherein migrating the first data subset from the first physical machine to the third physical machine comprises sending the first data subset from the first physical machine directly to the third physical machine.

19. The system of claim 14 , further comprising:

the third physical machine provides a notification to the virtual machine of the migration of the first data subset to the third physical machine; and

wherein updating the mapping to logically map an address range for the first data subset on the third physical machine to the respective logical address range for the virtual machine is done in response to receiving the notification by the virtual machine.

20. The system of claim 13 , wherein:

selecting the data subset as the first data subset stored on the first physical machine to be migrated to the third physical machine is performed by the virtual machine; and

migrating the first data subset from the first physical machine to the third physical machine comprises:

instructing, by the virtual machine, the first physical machine to send the first data subset to the virtual machine;

sending, by the virtual machine, the first data subset received from the first physical machine to the third physical machine.

21. The system of claim 19 , wherein the first physical machine and the third physical machines store the data subsets without reference to an address of the virtual machine.

Assignments (2)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2016
From: SANDERSON, TYLER
To: GOOGLE INC.
Reel/Frame 038025/0181 →
Continuity (1)
Related Publication 20170272515A1 · Sep 21, 2017