IP Library Granted Patent US 11,436,036
Granted Patent B2
US 11,436,036 · App. 16/909,740 · Granted Sep 6, 2022

Systems and methods to decrease the size of a compound virtual appliance file

Inventors: James Morton (Adamstown, MD); Ming Zhang (Shanghai, CN); Lihui Su (Shanghai, CN); Min Liu (Shanghai, CN); Yujun Liang (Shanghai, CN); Scott Quesnelle (Burlington, CA)
Assignee: EMC IP Holding Company LLC
G06F9/45558G06F2009/4557G06F2009/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 11,436,036
App. No.
16/909,740
Granted
Sep 6, 2022
Kind
B2
Abstract

An application is provided as a compound virtual appliance having components to be hosted by virtual machines. Each component includes a set of virtual machine disks. Partial versions of the components are created by removing from each component each virtual machine disk determined to be a duplicate of a virtual machine disk of another component. A compact version of the compound virtual appliance is created by packing together the partial versions of the components and a single copy of each virtual machine disk having been determined to be a duplicate. The compact compound virtual appliance is deployed to a customer site. At the customer site, a complete version of the compound virtual appliance is reconstructed by adding back the single copy of each virtual machine disk having been determined to be a duplicate into each component having had the duplicate virtual machine disk removed.

Claims (63)

1. A method comprising:

providing an application as a compound virtual appliance, the compound virtual appliance comprising a plurality of components for the application that will be hosted by a plurality of virtual machines, each component comprising a plurality of virtual machine disks;

creating partial versions of the plurality of components by removing from each component each virtual machine disk determined to be a duplicate of a virtual machine disk of another component;

creating a compact version of the compound virtual appliance by packing together the partial versions of the plurality of components and a single copy of each virtual machine disk having been determined to be a duplicate;

deploying the compact version of the compound virtual appliance to a customer site; and

reconstructing, at the customer site, a complete version of the compound virtual appliance by adding back the single copy of each virtual machine disk having been determined to be a duplicate into each component having had the duplicate virtual machine disk removed.

2. The method of claim 1 further comprising:

mounting, at the customer site, a virtual machine disk included in the compound virtual appliance as a first folder, the first folder comprising a first virtual appliance, wherein the first virtual appliance comprises a first virtual machine disk specific to a first component of the application and does not comprise the duplicate virtual machine disk;

unpacking the first virtual appliance in the first folder;

adding the duplicate virtual machine disk to the first folder, the first folder thereby now comprising the duplicate virtual machine disk and the first virtual machine disk specific to the first component; and

packing the duplicate virtual machine disk and the first virtual machine disk specific to the first component together to create an intact version of the first component.

3. The method of claim 2 further comprising:

mounting, at the customer site, another virtual machine disk included in the compound virtual appliance as a second folder, the second folder comprising a second virtual appliance, wherein the second virtual appliance comprises a second virtual machine disk specific to a second component of the application and does not comprise the duplicate virtual machine disk;

unpacking the second virtual appliance in the second folder;

adding the duplicate virtual machine disk to the second folder, the second folder thereby now comprising the duplicate virtual machine disk and the second virtual machine disk specific to the second component; and

packing the duplicate virtual machine disk and the second virtual machine disk specific to the second component together to create an intact version of the second component.

4. The method of claim 1 wherein a first component of the application is to be deployed as a first virtual machine, and a second component of the application is to be deployed as a second virtual machine.

5. The method of claim 1 wherein the virtual appliance is formatted as an Open Virtual Appliance (OVA) file.

6. The method of claim 1 wherein the compact version of the compound virtual appliance comprises the duplicate virtual machine disk, a first virtual appliance, and a second virtual appliance, the first virtual appliance corresponding to a first component of the application, and the second virtual appliance corresponding to a second component of the application,

wherein the first virtual appliance is packaged as a virtual machine disk in the compound virtual appliance, and the second virtual appliance is packaged as another virtual machine disk in the compound virtual appliance, and

wherein the duplicate virtual machine disk is omitted from the first and second virtual appliances.

7. A system comprising: a processor; and memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:

providing an application as a compound virtual appliance, the compound virtual appliance comprising a plurality of components for the application that will be hosted by a plurality of virtual machines, each component comprising a plurality of virtual machine disks;

creating partial versions of the plurality of components by removing from each component each virtual machine disk determined to be a duplicate of a virtual machine disk of another component;

creating a compact version of the compound virtual appliance by packing together the partial versions of the plurality of components and a single copy of each virtual machine disk having been determined to be a duplicate;

deploying the compact version of the compound virtual appliance to a customer site; and

reconstructing, at the customer site, a complete version of the compound virtual appliance by adding back the single copy of each virtual machine disk having been determined to be a duplicate into each component having had the duplicate virtual machine disk removed.

8. The system of claim 7 wherein the processor further carries out the steps of:

mounting, at the customer site, a virtual machine disk included in the compound virtual appliance as a first folder, the first folder comprising a first virtual appliance, wherein the first virtual appliance comprises a first virtual machine disk specific to a first component of the application and does not comprise the duplicate virtual machine disk;

unpacking the first virtual appliance in the first folder;

adding the duplicate virtual machine disk to the first folder, the first folder thereby now comprising the duplicate virtual machine disk and the first virtual machine disk specific to the first component; and

packing the duplicate virtual machine disk and the first virtual machine disk specific to the first component together to create an intact version of the first component.

9. The system of claim 8 wherein the processor further carries out the steps of:

mounting, at the customer site, another virtual machine disk included in the compound virtual appliance as a second folder, the second folder comprising a second virtual appliance, wherein the second virtual appliance comprises a second virtual machine disk specific to a second component of the application and does not comprise the duplicate virtual machine disk;

unpacking the second virtual appliance in the second folder;

adding the duplicate virtual machine disk to the second folder, the second folder thereby now comprising the duplicate virtual machine disk and the second virtual machine disk specific to the second component; and

packing the duplicate virtual machine disk and the second virtual machine disk specific to the second component together to create an intact version of the second component.

10. The system of claim 7 wherein a first component of the application is to be deployed as a first virtual machine, and a second component of the application is to be deployed as a second virtual machine.

11. The system of claim 7 wherein the virtual appliance is formatted as an Open Virtual Appliance (OVA) file.

12. The system of claim 7 wherein the compact version of the compound virtual appliance comprises the duplicate virtual machine disk, a first virtual appliance, and a second virtual appliance, the first virtual appliance corresponding to a first component of the application, and the second virtual appliance corresponding to a second component of the application,

wherein the first virtual appliance is packaged as a virtual machine disk in the compound virtual appliance, and the second virtual appliance is packaged as another virtual machine disk in the compound virtual appliance, and

wherein the duplicate virtual machine disk is omitted from the first and second virtual appliances.

13. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:

providing an application as a compound virtual appliance, the compound virtual appliance comprising a plurality of components for the application that will be hosted by a plurality of virtual machines, each component comprising a plurality of virtual machine disks;

creating partial versions of the plurality of components by removing from each component each virtual machine disk determined to be a duplicate of a virtual machine disk of another component;

creating a compact version of the compound virtual appliance by packing together the partial versions of the plurality of components and a single copy of each virtual machine disk having been determined to be a duplicate;

deploying the compact version of the compound virtual appliance to a customer site; and

reconstructing, at the customer site, a complete version of the compound virtual appliance by adding back the single copy of each virtual machine disk having been determined to be a duplicate into each component having had the duplicate virtual machine disk removed.

14. The computer program product of claim 13 wherein the method further comprises:

mounting, at the customer site, a virtual machine disk included in the compound virtual appliance as a first folder, the first folder comprising a first virtual appliance, wherein the first virtual appliance comprises a first virtual machine disk specific to a first component of the application and does not comprise the duplicate virtual machine disk;

unpacking the first virtual appliance in the first folder;

adding the duplicate virtual machine disk to the first folder, the first folder thereby now comprising the duplicate virtual machine disk and the first virtual machine disk specific to the first component; and

packing the duplicate virtual machine disk and the first virtual machine disk specific to the first component together to create an intact version of the first component.

15. The computer program product of claim 14 wherein the method further comprises:

mounting, at the customer site, another virtual machine disk included in the compound virtual appliance as a second folder, the second folder comprising a second virtual appliance, wherein the second virtual appliance comprises a second virtual machine disk specific to a second component of the application and does not comprise the duplicate virtual machine disk;

unpacking the second virtual appliance in the second folder;

adding the duplicate virtual machine disk to the second folder, the second folder thereby now comprising the duplicate virtual machine disk and the second virtual machine disk specific to the second component; and

packing the duplicate virtual machine disk and the second virtual machine disk specific to the second component together to create an intact version of the second component.

16. The computer program product of claim 13 wherein a first component of the application is to be deployed as a first virtual machine, and a second component of the application is to be deployed as a second virtual machine.

17. The computer program product of claim 13 wherein the virtual appliance is formatted as an Open Virtual Appliance (OVA) file.

18. The computer program product of claim 13 wherein the compact version of the compound virtual appliance comprises the duplicate virtual machine disk, a first virtual appliance, and a second virtual appliance, the first virtual appliance corresponding to a first component of the application, and the second virtual appliance corresponding to a second component of the application,

wherein the first virtual appliance is packaged as a virtual machine disk in the compound virtual appliance, and the second virtual appliance is packaged as another virtual machine disk in the compound virtual appliance, and

wherein the duplicate virtual machine disk is omitted from the first and second virtual appliances.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2020
From: MORTON, JAMES; ZHANG, MING; SU, LIHUI; LIU, MIN; LIANG, YUJUN; QUESNELLE, SCOTT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053018/0703 →
Continuity (1)
Related Publication 20210397468A1 · Dec 23, 2021