IP Library Granted Patent US 9,952,782
Granted Patent B1
US 9,952,782 · App. 14/586,700 · Granted Apr 24, 2018

Method and system for accessing data between different virtual disk formats in a virtualization environment

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,952,782
App. No.
14/586,700
Filed
Dec 30, 2014
Granted
Apr 24, 2018
Kind
B1
Art Unit
2199
USPC
718/1
Abstract

An architecture for accessing data between different virtual disk formats. A virtual machine may be migrated or cloned from a first server that uses a first virtual disk format to a second server using a second virtual disk format. In response to an I/O request from the virtual machine, a real-time mapper compares the virtual disk format used by the virtual machine with the virtual disk format of the virtual disk that the request is directed to. If the formats are different, a set of mapping metadata is used to map between data of the different virtual disk formats. Due to the mapping being performed in real time, the virtual machine is able to operate upon the virtual disk without the need to perform a potentially costly format conversion of the virtual disk or the underlying data.

Claims (77)

1. A computer-implemented method for accessing data using different virtual disk formats in a virtualization environment, comprising:

moving a virtual machine from a first server to a second server, wherein the first server includes a first virtual disk format and the second server includes a second virtual disk format, the first virtual disk format and the second virtual disk format being different formats;

configuring a virtual disk of the virtual machine on the second server-, wherein the virtual disk remains in the first virtual disk format;

creating a plurality of mappings in real-time that map to data on the virtual disk, based at least in part upon the first virtual disk format and the second virtual disk format;

operating upon the virtual disk without converting the virtual disk from the first virtual disk format to the second virtual disk format by:

receiving an I/O request from the virtual machine running on the second server directed to the virtual disk, wherein the I/O request uses the second virtual disk format, and

processing the I/O request on the virtual disk via the mappings.

2. The method of claim 1 , wherein the virtual machine is moved based at least in part on a manual request by a system administrator.

3. The method of claim 1 , wherein the virtual machine is moved based at least in part on an automated load balancing.

4. The method of claim 1 , further comprising creating additional metadata information for data on the virtual disk, based at least in part upon the second virtual disk format.

5. The method of claim 4 , wherein the plurality of mappings further comprise mappings to the additional metadata.

6. The method of claim 1 , further comprising:

receiving a second I/O request directed to the virtual disk;

identifying a virtual disk format associated with the second I/O request;

identifying a virtual disk format of the virtual disk;

comparing the virtual disk format associated with the second I/O request with the virtual disk format of the virtual disk; and

if it is determined that the virtual disk format associated with the second I/O request is different from the virtual disk format of the virtual disk, processing the I/O request on the virtual disk using the mappings; and

otherwise, processing the I/O request on the virtual disk without using the mappings.

7. The method of claim 1 , further comprising:

at a later time, converting at least a portion of the virtual disk from the first virtual disk format to the second virtual disk format; and

updating the mappings based at least in part upon the converted portion of the virtual disk.

8. The method of claim 1 , wherein converting at least a portion of the virtual disk is performed in response to a received write request.

9. A computer-implemented method, comprising:

identifying a request from a server in a virtualization environment to instantiate an application;

identifying a virtual disk format associated with the server;

identifying a virtual disk format of the application;

comparing the virtual disk format associated with the server with the virtual disk format of the application;

if it is determined that the virtual disk format associated with the server is different from the virtual disk format of the application, instantiating the application with a plurality of mappings that map between the virtual disk format of the server and the virtual disk format of the application without creating a new version of the application having a virtual disk format of the server; and

otherwise, instantiating the application to the server without using the mappings.

10. The method of claim 9 , wherein instantiating the application comprises downloading the application.

11. The method of claim 9 , wherein the application is stored at an application repository, and instantiating the application comprises reading the application from the application repository.

12. A system, comprising:

a computer processor to execute a set of program code instructions; and

a memory to hold the program code instructions, in which the program code instructions comprises program code to perform: moving a virtual machine from a first server to a second server, wherein the first server includes a first virtual disk format and the second server includes a second virtual disk format, the first virtual disk format and the second virtual disk format being different formats; configuring a virtual disk of the virtual machine on the second server, wherein the virtual disk remains in the first virtual disk format; creating a plurality of mappings in real-time that map to data on the virtual disk, based at least in part upon the first virtual disk format and the second virtual disk format; operating upon the virtual disk without converting the virtual disk from the first virtual disk format to the second virtual disk format by: receiving an I/O request from the virtual machine running on the second server directed to the virtual disk, wherein the I/O request uses the second virtual disk format and processing the I/O request on the virtual disk via the mappings.

13. The system of claim 12 , wherein the virtual machine is moved based at least in part on a manual request by a system administrator.

14. The system of claim 12 , wherein the virtual machine is moved based at least in part on an automated load balancing.

15. The system of claim 12 , in which the program code instructions further comprises instructions for creating additional metadata information for data on the virtual disk, based at least in part upon the second virtual disk format.

16. The system of claim 15 , wherein the plurality of mappings further comprise mappings to the additional metadata.

17. The system of claim 12 , in which the program code instructions further comprises instructions for: receiving a second I/O request directed to the virtual disk; identifying a virtual disk format associated with the second I/O request; identifying a virtual disk format of the virtual disk; comparing the virtual disk format associated with the second I/O request with the virtual disk format of the virtual disk; if it is determined that the virtual disk format associated with the second I/O request is different from the virtual disk format of the virtual disk, processing the I/O request on the virtual disk using the mappings; and otherwise, processing the I/O request on the virtual disk without using the mappings.

18. The system of claim 12 , in which the program code instructions further comprises instructions for, at a later time, converting at least a portion of the virtual disk from the first virtual disk format to the second virtual disk format, and updating the mappings based at least in part upon the converted portion of the virtual disk.

19. The system of claim 12 , wherein converting at least a portion of the virtual disk is performed in response to a received write request.

20. A system, comprising:

a computer processor to execute a set of program code instructions; and

a memory to hold the program code instructions, in which the program code instructions comprises program code to perform: identifying a request from a server in a virtualization environment to instantiate an application; identifying a virtual disk format associated with the server; identifying a virtual disk format of the application; comparing the virtual disk format associated with the server with the virtual disk format of the application; if it is determined that the virtual disk format associated with the server is different from the virtual disk format of the application, instantiating the application with a plurality of mappings that map between the virtual disk format of the server and the virtual disk format of the application without creating a new version of the application having a virtual disk format of the server; and otherwise, instantiating the application to the server without using the mappings.

21. The system of claim 20 , wherein instantiating the application comprises downloading the application.

22. The system of claim 20 , wherein the application is stored at an application repository, and instantiating the application comprises reading the application from the application repository.

23. A computer program product embodied in a non-transitory computer readable medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a process comprising:

moving a virtual machine from a first server to a second server, wherein the first server includes a first virtual disk format and the second server includes a second virtual disk format, the first virtual disk format and the second virtual disk format being different formats;

configuring a virtual disk of the virtual machine on the second server-, wherein the virtual disk remains in the first virtual disk format;

creating a plurality of mappings in real-time that map to data on the virtual disk, based at least in part upon the first virtual disk format and the second virtual disk format;

operating upon the virtual disk without converting the virtual disk different from the first virtual disk format to the second virtual disk format by:

receiving an I/O request from the virtual machine running on the second server directed to the virtual disk, wherein the I/O request uses the second virtual disk format, and

processing the I/O request on the virtual disk via the mappings.

24. The computer program product of claim 23 , wherein the virtual machine is moved based at least in part on a manual request by a system administrator.

25. The computer program product of claim 23 , wherein the virtual machine is moved based at least in part on an automated load balancing.

26. The computer program product of claim 25 , where the sequence of instructions further comprises instructions for creating additional metadata information for data on the virtual disk, based at least in part upon the second virtual disk format.

27. The computer program product of claim 26 , wherein the plurality of mappings further comprise mappings to the additional metadata.

28. The computer program product of claim 23 , where the sequence of instructions further comprises instructions for:

receiving a second I/O request directed to the virtual disk;

identifying a virtual disk format associated with the second I/O request;

identifying a virtual disk format of the virtual disk;

comparing the virtual disk format associated with the second I/O request with the virtual disk format of the virtual disk; and

if it is determined that the virtual disk format associated with the second I/O request is different from the virtual disk format of the virtual disk, processing the I/O request on the virtual disk using the mappings; and

otherwise, processing the I/O request on the virtual disk without using the mappings.

29. The computer program product of claim 23 , where the sequence of instructions further comprises instructions for:

at a later time, converting at least a portion of the virtual disk from the first virtual disk format to the second virtual disk format; and

updating the mappings based at least in part upon the converted portion of the virtual disk.

30. The computer program product of claim 23 , wherein converting at least a portion of the virtual disk is performed in response to a received write request.

31. A computer program product embodied in a non-transitory computer readable medium, the computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes the processor to execute a process comprising:

identifying a request from a server in a virtualization environment to instantiate an application;

identifying a virtual disk format associated with the server;

identifying a virtual disk format of the application;

comparing the virtual disk format associated with the server with the virtual disk format of the application;

if it is determined that the virtual disk format associated with the server is different from the virtual disk format of the application, instantiating the application with a plurality of mappings that map between the virtual disk format of the server and the virtual disk format of the application without creating a new version of the application having a virtual disk format of the server; and

otherwise, instantiating the application to the server without using the mappings.

32. The computer program product of claim 31 , wherein instantiating the application comprises downloading the application.

33. The computer program product of claim 31 , wherein the application is stored at an application repository, and instantiating the application comprises reading the application from the application repository.

Assignments (4)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
RELEASE OF SECURITY INTEREST Recorded Sep 28, 2016
From: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
To: NUTANIX, INC.
Reel/Frame 040168/0586 →
SECURITY INTEREST Recorded Apr 15, 2016
From: NUTANIX, INC.
To: GOLDMAN SACHS SPECIALTY LENDING GROUP, L.P., AS AGENT
Reel/Frame 038440/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2015
From: CHANDRASEKARAN, KARTHIK; GILL, BINNY SHER
To: NUTANIX, INC.
Reel/Frame 036922/0486 →