IP Library Granted Patent US 12,650,875
Granted Patent B2
US 12,650,875 · App. 18/375,312 · Granted Jun 9, 2026

Controlling virtual machine porting activity based on dynamically-calculated virtual machine predicate values in match expressions

Inventor: Amol Avinash Karmarkar (San Jose, CA)
Assignee: Nutanix, Inc.
G06F9/45558G06F2009/4557G06F2009/45579
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 12,650,875
App. No.
18/375,312
Filed
Sep 29, 2023
Granted
Jun 9, 2026
Kind
B2
Art Unit
2197
USPC
718/1
Abstract

Computer-implemented techniques for controlling virtual machine (VM) porting activities based on dynamically-calculated virtual machine predicate values. Upon receiving a command to port a subject virtual machine from a source virtualization system environment to a target virtualization system environment (wherein the source virtualization system environment and the target virtualization system environment are different), one or more match expressions that describe time of day and resource predicates conditions, under which porting operations of the subject virtual machine are to be carried out are evaluated. Based on observance of the aforementioned time of day and resource predicates, various virtual machine porting operations are either carried out (e.g., when applicable match expressions and/or predicates evaluate to TRUE), or are temporarily suspended (e.g., when the applicable match expressions and/or predicates evaluate to FALSE). Multiple virtual machines can be ported concurrently while observing VM priorities and bandwidth throttling.

Claims (53)

1 . A non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by a processor cause the processor, to perform acts for controlling virtual machine porting activity based on dynamically-calculated virtual machine predicate values, the acts comprising:

receiving a command to move a subject virtual machine from a source virtualization system environment to a target virtualization system environment, wherein the source virtualization system environment and the target virtualization system environment are different;

accessing one or more match expressions that describe time of day and resource predicate conditions under which porting operations of the subject virtual machine are carried out; and

invoking a virtual machine move operation, based on observance of the time of day and resource predicate conditions of the one or more match expressions.

2 . The non-transitory computer readable medium of claim 1 , further comprising instructions which, when stored in memory and executed by the processor, cause the processor to perform further acts of:

identifying a set of service level agreements;

evaluating one or more virtual machine predicate values in the match expressions of the set of service level agreements; and

prior to invoking an I/O operation of the virtual machine porting activity, instead, temporarily suspending the virtual machine porting activity.

3 . The non-transitory computer readable medium of claim 2 , further comprising instructions which, when stored in memory and executed by the processor, cause the processor to perform further acts of:

associating two or more bandwidth caps to respective virtual machines; and

observing a lower one of the two or more bandwidth caps.

4 . The non-transitory computer readable medium of claim 2 , wherein evaluating the one or more virtual machine predicate values in the match expressions is carried out after invoking the virtual machine move operation.

5 . The non-transitory computer readable medium of claim 2 , further comprising instructions which, when stored in memory and executed by the processor, cause the processor to perform further acts of, considering the set of service level agreements in a timeframe between I/O operations that constitute the virtual machine porting activity.

6 . The non-transitory computer readable medium of claim 1 , further comprising instructions which, when stored in memory and executed by the processor, cause the processor to perform further acts of:

comparing an alternate virtual machine's priority to the subject virtual machine's priority; and

choosing which virtual machine to service based on the comparing.

7 . The non-transitory computer readable medium of claim 1 , wherein the source virtualization system environment hosts a first type of hypervisor that is different from a second type of hypervisor hosted by the target virtualization system environment.

8 . A method for controlling virtual machine porting activity based on dynamically-calculated virtual machine predicate values, the method comprising:

receiving a command to move a subject virtual machine from a source virtualization system environment to a target virtualization system environment, wherein the source virtualization system environment and the target virtualization system environment are different;

accessing one or more match expressions that describe time of day and resource predicate conditions under which porting operations of the subject virtual machine are carried out; and

invoking a virtual machine move operation, based on observance of the time of day and resource predicate conditions of the one or more match expressions.

9 . The method of claim 8 , further comprising:

identifying a set of service level agreements;

evaluating one or more virtual machine predicate values in the match expressions of the set of service level agreements; and

prior to invoking an I/O operation of the virtual machine porting activity, instead, temporarily suspending the virtual machine porting activity.

10 . The method of claim 9 , further comprising:

associating two or more bandwidth caps to respective virtual machines; and

observing a lower one of the two or more bandwidth caps.

11 . The method of claim 9 , wherein evaluating the one or more virtual machine predicate values in the match expressions is carried out after invoking the virtual machine move operation.

12 . The method of claim 9 , further comprising, considering the set of service level agreements in a timeframe between I/O operations that constitute the virtual machine porting activity.

13 . The method of claim 8 , further comprising:

comparing an alternate virtual machine's priority to the subject virtual machine's priority; and

choosing which virtual machine to service based on the comparing.

14 . The method of claim 8 , wherein the source virtualization system environment hosts a first type of hypervisor that is different from a second type of hypervisor hosted by the target virtualization system environment.

15 . A system for controlling virtual machine porting activity based on dynamically-calculated virtual machine predicate values, the system comprising:

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

a processor that executes the sequence of instructions to cause the processor to perform acts comprising,

receiving a command to move a subject virtual machine from a source virtualization system environment to a target virtualization system environment, wherein the source virtualization system environment and the target virtualization system environment are different;

accessing one or more match expressions that describe time of day and resource predicate conditions under which porting operations of the subject virtual machine are carried out; and

invoking a virtual machine move operation, based on observance of the time of day and resource predicate conditions of the one or more match expressions.

16 . The system of claim 15 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of:

identifying a set of service level agreements;

evaluating one or more virtual machine predicate values in the match expressions of the set of service level agreements; and

prior to invoking an I/O operation of the virtual machine porting activity, instead, temporarily suspending the virtual machine porting activity.

17 . The system of claim 16 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of:

associating two or more bandwidth caps to respective virtual machines; and

observing a lower one of the two or more bandwidth caps.

18 . The system of claim 16 , wherein evaluating the one or more virtual machine predicate values in the match expressions is carried out after invoking the virtual machine move operation.

19 . The system of claim 16 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of, considering the set of service level agreements in a timeframe between I/O operations that constitute the virtual machine porting activity.

20 . The system of claim 15 , further comprising instructions which, when stored in memory and executed by the processor cause the processor to perform further acts of:

comparing an alternate virtual machine's priority to the subject virtual machine's priority; and

choosing which virtual machine to service based on the comparing.

21 . The system of claim 15 , wherein the source virtualization system environment hosts a first type of hypervisor that is different from a second type of hypervisor hosted by the target virtualization system environment.

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 Sep 29, 2023
From: KARMARKAR, AMOL AVINASH
To: NUTANIX, INC.
Reel/Frame 065078/0750 →
Continuity (2)
Provisional Application 63534643 · Aug 25, 2023
Related Publication 20250068448A1 · Feb 27, 2025
References Cited (31)
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 20140208329A1 · Abali et al. · 2014 [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Oct. 15, 2013), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 11, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 20, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 7, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 4, 2015), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 12, 2016), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2016), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2017), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 8, 2017), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2018), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 25, 2018), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 8, 2019), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jul. 9, 2019), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Feb. 3, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Aug. 1, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 30, 2021), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 9, 2022), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Cano, I. et al., “Curator: Self-Managing Storage for Enterprise Clusters”, [cited by applicant]
“Citrix XenDesktop 7.1 on Microsoft Hyper-V Server 2012 R2 on Nutanix Virtual Computing Platform—Solution Design,” Citrix Validated Solutions, Prepared by: Citrix APAC Solutions, dated Jun. 25, 2014. [cited by applicant]
Amendola, D., et al., “Bandwidth management VMs live migration in wireless fog computing for 5G networks,” dated Jan. 22, 2017. [cited by applicant]
Baccarelli, E., et al., “Minimum-energy bandwidth management for QoS live migration of virtual machines,” Computer Networks vol. 93, Part 1, Dec. 24, 2015. [cited by applicant]
“Move User Guide: Move 4.6,” Nutanix, dated Oct. 12, 2022. [cited by applicant]
“Move Bandwidth Throttling,” Nutanix, date found via google as Apr. 18, 2023. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Apr. 27, 2023), from https://www.nutanixbible.com/pdf/classic.pdf (Publication date based on updated doc publication date; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (May 21, 2024), from https://www.nutanixbible.com/pdf/classic.pdf (Publication date based on updated doc publication date; first publication date unknown). [cited by applicant]