IP Library Granted Patent US 8,332,571
Granted Patent B1
US 8,332,571 · App. 13/448,220 · Granted Dec 11, 2012

Systems and methods for improving virtual machine performance

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 8,332,571
App. No.
13/448,220
Granted
Dec 11, 2012
Kind
B1
Abstract

Virtual machine optimization and/or storage reclamation solutions are disclosed that manage virtual machine sprawl and/or growing enterprise storage costs. For instance, certain solutions receive recommendations based on one or more rules, policies and/or user preferences that identify storage and/or alignment criteria for virtual machine disk (VMDK) partition(s). In certain examples, a resize tool that operates within a host operating system of a host server dynamically resizes and/or aligns one or more VMDK partitions of a powered-down virtual machine. For instance, the resize tool can be injected to the host server from a remote management server and can resize and/or align the VMDK partitions without requiring contents of the VMDK to be copied to another VMDK. By reallocating storage and/or aligning the VMDK partitions, embodiments of the invention can increase virtual machine performance and improve storage management.

Claims (54)

1. A method for improving virtual machine performance within a computing environment, the method comprising:

for each of a plurality of virtual machines executing on at least one physical host server, each virtual machine associated with a virtual machine disk having a plurality of partitions:

accessing an optimization profile for the virtual machine of the computing environment, the optimization profile comprising information related to allocation or use of virtual machine storage;

obtaining a lock on the virtual machine;

issuing a first instruction to power off the virtual machine;

while the virtual machine is powered off, (i) resizing or (ii) aligning the plurality of partitions without creating another virtual machine disk, wherein the resizing or aligning is based at least in part on the optimization profile for the virtual machine;

issuing a second instruction to power on the virtual machine; and

removing the lock from the virtual machine.

2. The method of claim 1 , comprising both (i) resizing and (ii) aligning the one or more partitions.

3. The method of claim 1 , wherein the optimization profile comprises at least one of (i) operating system independent or (ii) operating system dependent rules.

4. The method of claim 1 , wherein the optimization profile includes information relating to an amount of free disk space to be allocated to the virtual machine or to a partition of the virtual machine disk associated with the virtual machine.

5. The method of claim 4 , wherein the information comprises a ratio of free space to used space.

6. The method of claim 4 , wherein the ratio is calculated based on a projected growth of the virtual machine or the number of virtual machines executing on the at least one physical host server.

7. The method of claim 1 , further comprising calculating, based at least partly on the optimization profile, target partition sizes of the virtual machine disk associated with the virtual machine.

8. The method of claim 7 , wherein resizing comprises reducing sizes of the plurality of partitions to the target partition sizes.

9. The method of claim 1 , wherein the aligning comprises aligning a start offset of each of the plurality of partitions with a block boundary of a physical disk storing the virtual machine disk.

10. The method of claim 9 , wherein resizing comprises increasing a size of each of the plurality of partitions such that an end offset of each of the plurality of partitions aligns with the block boundary of the physical disk storing the virtual machine disk.

11. The method of claim 1 , further comprising:

obtaining a renaming lock on the virtual machine to prevent powering on the virtual machine during resizing or aligning; and

releasing the renaming lock following the resizing or aligning and prior to the issuing the second instruction to power on the virtual machine.

12. A system for improving virtual machine performance within a computing environment, the system comprising:

a physical host server comprising a host operating system and a plurality of virtual machines each having a guest operating system;

a physical datastore comprising a plurality of virtual machine disks associated with each of the plurality of virtual machines, wherein each virtual machine disk of the plurality of virtual machine disks is associated with a virtual machine of the plurality of virtual machines, each of the plurality of virtual machine disks comprising a plurality of partitions; and

a management server in communication with the host server, the management server comprising a resize module configured, for each virtual machine, to:

obtain a lock on the virtual machine;

issue a first instruction to power off the virtual machine;

while the virtual machine is powered off, (i) resize or (ii) align the plurality of partitions of the virtual machine disk without creating another virtual machine disk, wherein the resize module (i) resizes or (ii) aligns based at least in part on an optimization profile for the virtual machine;

issuing a second instruction to power on the virtual machine; and

remove the lock from the virtual machine.

13. The system of claim 12 , wherein the resize module is configured to both (i) resize and (ii) align the plurality of partitions of the virtual machine disk without creating another virtual machine disk.

14. The system of claim 12 , wherein the optimization profile includes information relating to an amount of free disk space to be allocated to the virtual machine or to a partition of the virtual machine disk associated with the virtual machine.

15. The system of claim 12 , wherein the management server is configured to inject the resize module into the host operating system of the host server.

16. The system of claim 15 , wherein the management server is further configured to remove the resize module following the issuing of the second instruction to power on the virtual machine.

17. The system of claim 12 , wherein the management server comprises a user interface configured to receive user input indicative of the optimization profile that is to be associated with a particular virtual machine.

18. The system of claim 12 , wherein the resize module is configured to collect system information related to one or more of:

number or current locations of virtual machines, virtual machine name, size of a virtual machine file system, configuration information for the host server, configuration information for the datastore, used or free space of the virtual machines, guest operating system types of the virtual machines, which virtual machines are powered on or off, internet protocol addresses of the virtual machines, whether or not a virtual machine comprises snapshots, usage history of virtual machine components or processes, which virtual machine disks are attached to which virtual machines, and sizes or locations of the virtual machine disks on the datastore.

19. The system of claim 12 , wherein the resize module is configured to automatically resize each of the plurality of partitions of the virtual machine disk such that both a beginning offset and an end offset of each of the plurality of partitions is aligned with a block boundary of the datastore.

20. The system of claim 12 , wherein the resize module is further configured to:

calculate, based at least partly on the optimization profile, target partition sizes of the virtual machine disk associated with the virtual machine; and

reduce sizes of the plurality of partitions to the target partition sizes.

21. The system of claim 12 , wherein the resize module is further configured to perform one or more of the following to optimize the guest operating system of the virtual machine:

exclude non-used or rarely used system components from a disk image of the first virtual machine, shut down non-used services, clean temporary folders, modify the system registry, clear the system file cache, remove unnecessary log files, remove system auto recover files, clear local profiles, run disk defragmentation, remove junk files, remove unnecessary installer folders, and clear the recycle bin.

22. The system of claim 12 , wherein the resize module is further configured to update a registry of the guest operating system of the virtual machine prior to issuing the second instruction to power on the virtual machine.

23. The system of claim 22 , wherein to update the registry, the resize module is configure to perform one or more of the following:

restore volume mount points, fix values to prevent rebooting of the virtual machine following the resizing or alignment, and fix new volume offsets in a boot configuration of the virtual machine.

24. Non-transitory computer storage comprising machine-executable instructions that when executed by a computing device cause the computing device to improve virtual machine performance within a computing environment, the machine executable instructions comprising instructions for:

accessing an optimization profile for a virtual machine of a computing environment, the virtual machine associated with a virtual machine disk comprising a plurality of partitions, the virtual machine disk stored on a physical datastore, the optimization profile comprising information related to allocation or use of virtual machine storage;

issuing a first instruction to power off the virtual machine;

while the virtual machine is powered off, resizing the plurality of partitions of the virtual machine disk based at least partly on the optimization profile, the resizing comprising:

copying a sequence of sectors of the plurality of partitions to new locations on the datastore; and

issuing a second instruction to power on the virtual machine.

25. The non-transitory computer storage of claim 24 , further comprising instructions for:

obtaining a lock on the virtual machine prior to issuing the instruction to power off the virtual machine; and

removing the lock on the virtual machine after the resizing is performed.

Assignments (28)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044800/0848 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
CHANGE OF NAME Recorded Aug 20, 2013
From: QUEST SOFTWARE, INC.
To: DELL SOFTWARE INC.
Reel/Frame 031043/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2013
From: VIZIONCORE, INC.
To: QUEST SOFTWARE, INC.
Reel/Frame 029968/0615 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2012
From: EDWARDS, THOMAS SCOTT, SR.
To: VIZIONCORE, INC.
Reel/Frame 028190/0741 →