IP Library Granted Patent US 10,628,070
Granted Patent B2
US 10,628,070 · App. 15/925,353 · Granted Apr 21, 2020

Selecting and compressing target files to obtain additional free data storage space to perform an operation in a virtual machine

Inventors: Jimmie Lee Brundidge (Raleigh, NC); James Gordon McLean (Raleigh, NC); John Joseph Hedderman (Raleigh, NC)
Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
G06F3/0643G06F3/0652G06F3/0653G06F9/45558G06F2009/45583
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,628,070
App. No.
15/925,353
Granted
Apr 21, 2020
Kind
B2
Abstract

An apparatus and computer program product include non-transitory computer readable storage media having program instructions executable by a processor to detect that an operation to be performed in a virtual machine needs more data storage space than the current amount of free data storage space available to the virtual machine. Target files are selected, compressed and stored, and the target files are deleted to obtain additional data storage space to support the operation. In response to completion of the operation, temporary files used by the operation are deleted, the compressed files are decompressed, the decompressed target files are stored, and the compressed files are deleted.

Claims (52)

1. A computer program product comprising computer readable storage media that is not a transitory signal having program instructions embodied therewith, the program instructions executable by a processor to:

detect that an operation to be performed in a virtual machine has a required amount of data storage space that is greater than a current amount of free data storage space available to the virtual machine but less than a total amount of data storage space allocated to the virtual machine;

select a plurality of target files that are stored in the data storage space allocated to the virtual machine;

compress the target files to obtain additional free data storage space, store the compressed files in the data storage space allocated to the virtual machine and delete the target files from the data storage space allocated to the virtual machine;

perform the operation in the virtual machine using the additional free data storage space to store temporary files used by the operation; and

in response to completion of the operation, delete the temporary files used by the operation from the data storage space allocated to the virtual machine, decompress the compressed files, store the decompressed target files in the data storage space allocated to the virtual machine, and delete the compressed files from the data storage space allocated to the virtual machine.

2. The computer program product of claim 1 , wherein the program instructions are further executable by a processor to:

determine a total amount of data storage space of the target files that should be compressed in order for the current amount of free data storage space available to the virtual machine to exceed the require amount of data storage space for the operation.

3. The computer program product of claim 2 , wherein the program instructions are further executable by a processor to:

determine, prior to compressing any of the target files, that the identified plurality of target files exceed the determined total amount of data storage space of the target files that should be compressed.

4. The computer program product of claim 2 , wherein the program instructions executable by a processor to determine a total amount of data storage space of the target files that should be compressed, include program instructions executable by a processor to:

obtain an estimated compression ratio, wherein the total amount of data storage space of the target files that should be compressed is estimated by the equation:

TA =( RA−CF )/(1−1/ CR )

where:

TA is the total amount of data storage space of the target files that should be compressed;

RA is the amount of data storage space required by the operation;

CF is the current amount of free data storage space available to the virtual machine; and CR is the estimated compression ratio.

5. The computer program product of claim 1 , wherein the program instructions are included in the program instructions of a hypervisor.

6. The computer program product of claim 1 , wherein the program instructions executable by a processor to detect that an operation to be performed in a virtual machine has a required amount of data storage space that is greater than a current amount of free data storage space available to the virtual machine but less than a total amount of data storage space allocated to the virtual machine, include program instructions executable by the processor to receive a request to perform the operation in the virtual machine, wherein the request identifies the required amount of data storage space.

7. The computer program product of claim 1 , wherein the operation is an application update.

8. The computer program product of claim 1 , wherein the operation is a deployment of an operating system.

9. The computer program product of claim 1 , wherein the operation is a performance tuning operation.

10. The computer program product of claim 1 , wherein the program instructions are further executable by the processor to:

identify inactive files stored in the data storage space allocated to the virtual machine, wherein the plurality of target files are selected from the identified inactive files.

11. The computer program product of claim 10 , wherein the inactive files are selected from the group consisting of initial setup files, installation files, backup copies of files, unused graphic files, and combinations thereof.

12. The computer program product of claim 10 , wherein the inactive files include any files unrelated to the ongoing operation of the virtual machine.

13. The computer program product of claim 10 , wherein the inactive files include any files which have not been accessed since a current set of users have logged in to an application running in the virtual machine.

14. The computer program product of claim 1 , wherein the program instructions are further executable by the processor to:

disable, prior to compressing the target files, one or more of the functions of the application running in the virtual machine, wherein files supporting the one or more disabled functions are included in the selected plurality of target files; and

reenable, subsequent to decompressing the target files, the one or more of the disabled functions of the application running in the virtual machine.

15. The computer program product of claim 1 , wherein the program instructions are further executable by the processor to:

modify, prior to compressing the target files, one or more of the functions of the application running in the virtual machine, wherein files supporting the one or more modified functions are included in the selected plurality of target files; and

restore, subsequent to decompressing the target files, the one or more of the modified functions of the application running in the virtual machine.

16. The computer program product of claim 1 , wherein the program instructions are further executable by the processor to:

store, prior to compressing the target files, a snapshot of the state of the application running in the virtual machine, wherein any one or more files supporting the application are included in the selected plurality of target files; and

restore, subsequent to decompressing the target files, the state of the application running in the virtual machine using the stored snapshot.

17. The computer program product of claim 1 , wherein the program instructions are further executable by the processor to:

detect that decompression of one or more of the compressed files was unsuccessful; and

generate output notifying a user to download a replacement file.

18. An apparatus, comprising:

at least one storage device for storing program instructions; and

at least one processor for processing the program instructions to:

detect that an operation to be performed in a virtual machine has a required amount of data storage space that is greater than a current amount of free data storage space available to the virtual machine but less than a total amount of data storage space allocated to the virtual machine;

select a plurality of target files that are stored in the data storage space allocated to the virtual machine;

compress the target files, store the compressed files in the data storage space allocated to the virtual machine and delete the target files from the data storage space allocated to the virtual machine;

perform the operation in the virtual machine using the free data storage space to store temporary files used by the operation;

in response to completion of the operation, delete the temporary files used by the operation from the data storage space allocated to the virtual machine; and

decompress the compressed files, store the decompressed target files in the data storage space allocated to the virtual machine, and delete the compressed files from the data storage space allocated to the virtual machine.

19. The apparatus of claim 18 , the at least one processor for further processing the program instructions to:

identify inactive files stored in the data storage space allocated to the virtual machine, wherein the plurality of target files are selected from the identified inactive files.

20. The apparatus of claim 19 , the at least one processor for further processing the program instructions to:

determine, prior to compressing any of the target files, that the identified plurality of target files exceed the determined total amount of data storage space of the target files that should be compressed.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069869/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2021
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD
Reel/Frame 055029/0215 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: BRUNDIDGE, JIMMIE LEE; MCLEAN, JAMES GORDON; HEDDERMAN, JOHN JOSEPH
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 045278/0565 →
Continuity (1)
Related Publication 20190286354A1 · Sep 19, 2019