IP Library › Granted Patent US 10,489,518
Granted Patent B1
US 10,489,518 · App. 15/060,140 · Granted Nov 26, 2019

Virtual machine object version control

Inventors: Parthasarathy Ramachandran (Palo Alto, CA); Karthik Chandrasekaran (Bangalore, IN)
Assignee: NUTANIX, INC.
G06F17/30088G06F9/45558G06F11/1448
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 10,489,518
App. No.
15/060,140
Filed
Mar 3, 2016
Granted
Nov 26, 2019
Kind
B1
Art Unit
2165
USPC
707/649
Abstract

A method for indexing virtual machine version snapshots in a virtualization environment commences upon receiving a request (e.g., from an administrator or agent) to initiate a virtual machine version snapshot operation on a subject virtual machine. Processes within or controlled by the subject virtual machine are requested to temporarily suspend transactions and file I/O. When the processes that have been requested to temporarily suspend transactions and file I/O acknowledge quiescence, the method continues by generating a virtual machine version snapshot data structure. An entry in an index is formed from the virtual machine version snapshot data structure. Multiple instances of virtual machine version snapshot data structures can be stored in the index, and the index can be queried to determine the state that a virtual machine had at any of the snapshotted moments in time.

Claims (40)

1. A method for implementing a virtual machine snapshot index in a virtualization environment, the method comprising:

receiving an initiation signal that initiates sending of at least one quiescence request to at least one user virtual machine;

quiescing the at least one user virtual machine by at least transmitting the at least one quiescence request to the at least one user virtual machine;

confirming that the at least one user virtual machine is quiesced based on at least receipt of an acknowledgement signal from the at least one user virtual machine, the acknowledgement signal indicating that the at least one user virtual machine has quiesced;

requesting and receiving a set of virtual machine attribute values from the at least one user virtual machine while the at least one user virtual machine is quiesced;

generating a volume index data structure comprising at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced; and

storing the volume index data structure comprising the at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced.

2. The method of claim 1 , wherein the initiation signal is at least one of, a snapshot signal, a quiescence request signal.

3. The method of claim 1 , wherein the set of virtual machine attribute values is requested from a hypervisor.

4. The method of claim 1 , wherein virtual machine attribute values comprise at least one of, an allocated memory descriptor or a file descriptor.

5. The method of claim 4 , wherein the virtual machine attribute values comprise at least one of, memory contents based on the allocated memory descriptor or file contents based on the file descriptor.

6. The method of claim 5 , further comprising storing at least a portion of the memory contents or at least some of the file contents in the volume index data structure.

7. The method of claim 6 , further comprising processing a query pertaining to the memory contents or the file contents.

8. The method of claim 1 , further comprising forming a hash table from at least a portion of the volume index data structure.

9. The method of claim 8 , further comprising processing a query pertaining to the volume index data structure by accessing the hash table.

10. The method of claim 1 , wherein virtual machine attribute values comprise at least some of, paging register entries, or a list of open files, or a state variable, or any combination thereof.

11. A non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by a processor causes the processor to perform a set of acts for implementing a virtual machine snapshot index in a virtualization environment, the set of acts comprising:

receiving an initiation signal that initiates sending of at least one quiescence request to at least one user virtual machine;

quiescing the at least one user virtual machine by at least transmitting the at least one quiescence request to the at least one user virtual machine;

confirming that the at least one user virtual machine is quiesced based on at least receipt of an acknowledgement signal from the at least one user virtual machine, the acknowledgement signal indicating that the at least one user virtual machine has quiesced;

requesting and receiving a set of virtual machine attribute values from the at least one user virtual machine while the at least one user virtual machine is quiesced;

generating a volume index data structure comprising at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced; and

storing the volume index data structure comprising the at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced.

12. The computer readable medium of claim 11 , wherein the initiation signal is at least one of, a snapshot signal, a quiescence request signal.

13. The computer readable medium of claim 11 , wherein the set of virtual machine attribute values is requested from a hypervisor.

14. The computer readable medium of claim 11 , wherein virtual machine attribute values comprise at least one of, an allocated memory descriptor or a file descriptor.

15. The computer readable medium of claim 14 , wherein the virtual machine attribute values comprise at least one of, memory contents based on the allocated memory descriptor or file contents based on the file descriptor.

16. The computer readable medium of claim 15 , wherein the set of acts further comprise storing at least a portion of the memory contents or at least some of the file contents in the volume index data structure.

17. The computer readable medium of claim 16 , wherein the set of acts further comprise processing a query pertaining to the memory contents or the file contents.

18. The computer readable medium of claim 11 , wherein the set of acts further comprise of forming a hash table from at least a portion of the volume index data structure.

19. A system for implementing a virtual machine snapshot index in a virtualization environment, the system comprising:

a storage medium having stored thereon a sequence of instructions; and

a processor or processors that execute the sequence of instructions to cause the processor or processors to perform a set of acts, the set of acts comprising:

receiving an initiation signal that initiates sending of at least one quiescence request to at least one user virtual machine;

quiescing the at least one user virtual machine by at least transmitting the at least one quiescence request to the at least one user virtual machine;

confirming that the at least one user virtual machine is quiesced based on at least receipt of an acknowledgement signal from the at least one user virtual machine, the acknowledgement signal indicating that the at least one user virtual machine has quiesced;

requesting and receiving a set of virtual machine attribute values from the at least one user virtual machine while the at least one user virtual machine is quiesced;

generating a volume index data structure comprising at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced; and

storing the volume index data structure comprising the at least some of the set of virtual machine attribute values received from the at least one user virtual machine while the at least one user virtual machine is quiesced.

20. The system of claim 19 , wherein the initiation signal is at least one of, a snapshot signal, a quiescence request signal.

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 Apr 8, 2016
From: RAMACHANDRAN, PARTHASARATHY; CHANDRASEKARAN, KARTHIK
To: NUTANIX, INC.
Reel/Frame 038399/0692 →
Cited By (3)
US 12,530,218 US 12,670,071 US 12,743,534