IP Library › Granted Patent US 11,586,391
Granted Patent B2
US 11,586,391 · App. 17/161,331 · Granted Feb 21, 2023

Technique for efficient migration of live virtual disk across storage containers of a cluster

Inventors: Kiran Tatiparthi (Dublin, CA); Mukul Sharma (San Jose, CA); Saibal Kumar Adhya (Bangalore, IN); Sandeep Ashok Ghadage (Maharashtra, IN); Swapnil Ingle (Berlin, DE)
Assignee: Nutanix, Inc.
G06F3/0665G06F3/065G06F3/067G06F3/0613G06F3/0647G06F3/0652G06F3/0683
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 11,586,391
App. No.
17/161,331
Filed
Jan 28, 2021
Granted
Feb 21, 2023
Kind
B2
Art Unit
2138
USPC
711/154
Abstract

A technique efficiently migrates a live virtual disk (vdisk) across storage containers of a cluster having a plurality of nodes deployed in a virtualization environment. Each node is embodied as a physical computer with hardware resources, such as processor, memory, network and storage resources, that are virtualized to provide support for one or more user virtual machines (UVM) executing on the node. The storage resources include storage devices embodied as a storage pool that is logically segmented into the storage containers configured to store one or more vdisks. The storage containers include a source container having associated storage policies and a destination container having different (new) storage policies. The technique enables migration of the live vdisk from the source container to the destination container without powering down the UVM and halting input/output accesses to the vdisk, and while maintaining uninterrupted servicing of data from the live vdisk during the migration transparent to the executing UVM.

Claims (76)

1. A method of virtual disk (vdisk) migration comprising:

creating a first mirror vdisk on a destination storage container associated with a first storage policy from a source vdisk on a source storage container associated with a second storage policy different from the first storage policy;

creating a first live vdisk as a mutable snapshot of the first mirror vdisk on the destination storage container, the first mirror vdisk functioning as a backing store for the first live vdisk;

redirecting service of a first input/output (I/O) access from the source vdisk to the first live vdisk; and

servicing the first I/O access at (i) the first live vdisk when the first I/O access is a write of new data or (ii) the first mirror vdisk when the first I/O access is a read of existing data not overwritten in the first live vdisk without interrupting servicing of I/O accesses during the vdisk migration.

2. The method of claim 1 further comprising:

copying the existing data from the source vdisk to the first mirror vdisk in a background process.

3. The method of claim 2 further comprising:

deleting the source vdisk upon completion of the copying of the existing data to the first mirror vdisk.

4. The method of claim 1 wherein the first and second storage policies pertain to different storage efficiency policies, such as replication and erasure coding.

5. The method of claim 1 wherein the read of existing data not yet overwritten in the first live vdisk includes a read not yet copied from the source vdisk to the first mirror vdisk.

6. The method of claim 1 wherein the source and destination storage containers are segmented from a storage pool across a cluster of nodes.

7. The method of claim 2 further comprising eliminating copying of the existing data from the source vdisk to the first mirror vdisk that is overwritten to the first live vdisk.

8. The method of claim 2 wherein the first I/O access originates from a first virtual machine and the copying of existing data from the source vdisk to the first mirror vdisk occurs in a second virtual machine separate from the first virtual machine.

9. The method of claim 1 wherein the source vdisk is marked immutable.

10. The method of claim 1 wherein a snapshot of the first live vdisk is prevented during the vdisk migration.

11. The method of claim 1 further comprising aborting the vdisk migration by:

creating a second mirror vdisk on the source storage container based on the first live vdisk;

creating a second live vdisk as a mutable snapshot of the second mirror vdisk on the source storage container, the second mirror vdisk functioning as a backing store for the second live vdisk;

redirecting service of a second I/O access from the first live vdisk to the second live vdisk; and

servicing the second I/O access at (iii) the second live vdisk when the second I/O access is a new write or (iv) the second mirror vdisk when the second I/O access is a read of data not yet overwritten in the second live vdisk.

12. The method of claim 11 further comprising:

copying the data from the first live vdisk to the second mirror vdisk in a background process.

13. The method of claim 12 further comprising:

deleting the first live vdisk upon completion of the copying of the data to the second mirror vdisk.

14. A non-transitory computer readable medium including program instructions executable on a processor of a node to enable virtual disk (vdisk) migration, the program instructions configured to:

create a first mirror virtual disk (vdisk) on a destination storage container associated with a first storage policy from a source vdisk on a source storage container associated with a second storage policy different from the first storage policy;

create a first live vdisk as a mutable snapshot of the first mirror vdisk on the destination storage container, the first mirror vdisk functioning as a backing store for the first live vdisk;

redirect service of a first input/output (I/O) access from the source vdisk to the first live vdisk; and

service the first I/O access at (i) the first live vdisk when the first I/O access is a write of new data or (ii) the first mirror vdisk when the first I/O access is a read of existing data not overwritten in the first live vdisk without interrupting servicing of I/O accesses during the vdisk migration.

15. The non-transitory computer readable medium of claim 14 , wherein the program instructions are further configured to:

copy the existing data from the source vdisk to the first mirror vdisk in a background process.

16. The non-transitory computer readable medium of claim 14 , wherein the program instructions are further configured to:

delete the source vdisk upon completion of the copying of the existing data to the first mirror vdisk.

17. The non-transitory computer readable medium of claim 14 wherein the first and second storage policies pertain to different storage efficiency policies, such as replication and erasure coding.

18. The non-transitory computer readable medium of claim 14 wherein the read of existing data not yet overwritten in the first live vdisk includes a read not yet copied from the source vdisk to the first mirror vdisk.

19. The non-transitory computer readable medium of claim 14 wherein the source and destination storage containers are segmented from a storage pool across a cluster of nodes.

20. The non-transitory computer readable medium of claim 15 , wherein the program instructions are further configured to eliminate copying of the existing data from the source vdisk to the first mirror vdisk that is overwritten to the first live vdisk.

21. The non-transitory computer readable medium of claim 15 wherein the first I/O access originates from a first virtual machine and the copying of existing data from the source vdisk to the first mirror vdisk occurs in a second virtual machine separate from the first virtual machine.

22. The non-transitory computer readable medium of claim 14 wherein the source vdisk is marked immutable.

23. The non-transitory computer readable medium of claim 14 wherein a snapshot of the first live vdisk is prevented during the vdisk migration.

24. The non-transitory computer readable medium of claim 14 , wherein the program instructions are further configured to abort the vdisk migration by program instructions configured to:

create a second mirror vdisk on the source storage container based on the first live vdisk;

create a second live vdisk as a mutable snapshot of the second mirror vdisk on the source storage container, the second mirror vdisk functioning as a backing store for the second live vdisk;

redirect service of a second I/O access from the first live vdisk to the second live vdisk; and

service the second I/O access at (iii) the second live vdisk when the second I/O access is a new write or (iv) the second mirror vdisk when the second I/O access is a read of data not yet overwritten in the second live vdisk without interrupting servicing during aborting of the vdisk migration.

25. The non-transitory computer readable medium of claim 24 , wherein the program instructions further configured to abort the vdisk migration include further program instructions configured to:

copy the data from the first live vdisk to the second mirror vdisk in a background process.

26. The non-transitory computer readable medium of claim 25 , wherein the program instructions further configured to abort the vdisk migration include further program instructions configured to:

delete the first live vdisk upon completion of the copying of the data to the second mirror vdisk.

27. An apparatus comprising:

a node having a processor; and

a source virtual disk (vdisk) servicing input/output (I/O) accesses across source and destination storage containers of the node, the processor configured to migrate the source vdisk across the storage containers by executing program instructions to:

create a first mirror vdisk on the destination storage container from the source vdisk on the source storage container, the source storage container associated with a first storage policy different from a second storage policy associated with the destination storage container;

create a first live vdisk as a mutable snapshot of the first mirror vdisk on the destination storage container, wherein the first mirror vdisk functions as a backing store for the first live vdisk; and

redirect the I/O accesses from the source vdisk to the first live vdisk, wherein (i) new writes of the redirected I/O accesses are serviced by the first live vdisk and (ii) reads of the redirected I/O accesses for data not yet overwritten in the first live vdisk are serviced by the first mirror vdisk without interrupting servicing of I/O accesses during the source vdisk migration.

28. The apparatus of claim 27 , wherein the program instructions further include program instructions to:

copy the data from the source vdisk to the first mirror vdisk in a background process.

29. The apparatus of claim 27 , wherein the program instructions further include program instructions configured to:

delete the source vdisk upon completion of the copying of the data to the first mirror vdisk.

30. The apparatus of claim 27 , wherein the first and second storage policies pertain to different storage efficiency policies, such as replication and erasure coding.

31. The apparatus of claim 27 , wherein the read of data not yet overwritten in the first live vdisk includes a read not yet copied from the source vdisk to the first mirror vdisk.

32. The apparatus of claim 27 , wherein the source and destination storage containers are segmented from a storage pool across a cluster of nodes.

33. The apparatus of claim 28 , wherein the program instructions further include program instructions to eliminate copying of the data from the source vdisk to the first mirror vdisk that is overwritten to the first live vdisk.

34. The apparatus of claim 28 , wherein the first I/O access originates from a first virtual machine and the copying of existing data from the source vdisk to the first mirror vdisk occurs in a second virtual machine separate from the first virtual machine.

35. The apparatus of claim 27 , wherein the source vdisk is marked immutable.

36. The apparatus of claim 27 , wherein a snapshot of the first live vdisk is prevented during the source vdisk migration.

37. The apparatus of claim 27 , wherein the program instructions further include program instructions to abort the source vdisk migration by program instructions to:

create a second mirror vdisk on the source storage container based on the first live vdisk;

create a second live vdisk as a mutable snapshot of the second mirror vdisk on the source storage container, the second mirror vdisk functioning as a backing store for the second live vdisk;

redirect service of a second I/O access from the first live vdisk to the second live vdisk; and

service the second I/O access at (iii) the second live vdisk when the second I/O access is a new write or (iv) the second mirror vdisk when the second I/O access is a read of data not yet overwritten in the second live vdisk without interrupting servicing during aborting of the source vdisk migration.

38. The apparatus of claim 37 , wherein the program instructions to abort the source vdisk migration further include program instructions to:

copy the data from the first live vdisk to the second mirror vdisk in a background process.

39. The apparatus of claim 38 , wherein the program instructions to abort the source vdisk migration further include program instructions to:

delete the first live vdisk upon completion of the copying of the data to the second mirror vdisk.

Assignments (2)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2021
From: TATIPARTHI, KIRAN; SHARMA, MUKUL; ADHYA, SAIBAL KUMAR; GHADAGE, SANDEEP ASHOK; INGLE, SWAPNIL
To: NUTANIX, INC.
Reel/Frame 055070/0208 →
Priority Claims (1)
IN 202041054770 · Dec 16, 2020 · national
Continuity (1)
Related Publication 20220188042A1 · Jun 16, 2022
Cited By (2)
US 12,189,573 US 12,710,879