IP Library Granted Patent US 9,537,948
Granted Patent B2
US 9,537,948 · App. 14/148,613 · Granted Jan 3, 2017

Method and apparatus for chunk-level sharing-based open virtualization format (OVF) package distribution through dependency analysis

Inventors: Xin Peng Liu (Beijing, CN); Su Ying Rui (Beijing, CN); Xi Ning Wang (Beijing, CN); Chun Guang Zeng (Beijing, CN); Pu Zhu (Beijing, CN)
Assignee: International Business Machines Corporation
H04L67/1065G06F9/5077H04L67/10H04L67/1097
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 9,537,948
App. No.
14/148,613
Granted
Jan 3, 2017
Kind
B2
Abstract

According to various embodiments, a method and apparatus for providing a virtual appliance are described. The method includes: obtaining metadata of a specific virtual appliance based on a received request for obtaining the specific virtual appliance, the metadata describing information about virtual machines involved in the specific virtual appliance, determining an association relationship between the specific virtual appliance and at least one other virtual appliance according to the metadata, and providing resource information for obtaining the specific virtual appliance according to the association relationship, the resource information including a plurality of resource addresses, at least one of the plurality of resource addresses pointing to a storage location of the at least one other virtual appliance. In this way, more resource options for obtaining a specific virtual appliance are provided, thereby improving the efficiency of obtaining the virtual appliance and reducing network transmission pressure on a cloud data center.

Claims (43)

1. A method for providing a virtual appliance, the method comprising:

obtaining metadata of a specific virtual appliance based on a received request for obtaining the specific virtual appliance, the metadata describing information about virtual machines involved in the specific virtual appliance;

determining an association relationship between the specific virtual appliance and at least one other virtual appliance according to the metadata, comprising:

obtaining virtual machine information of respective virtual machines involved in the specific virtual appliance from the metadata;

comparing the obtained virtual machine information of respective virtual machines involved in the specific virtual appliance to virtual machine information corresponding to the at least one other virtual appliance;

in response to virtual machine information of a certain virtual machine in the specific virtual appliance being the same as virtual machine information of corresponding virtual machine in the at least one other virtual appliance, determining the association relationship as that the specific virtual appliance and the at least one other virtual appliance share the certain virtual machine; and

in response to virtual machine information of the certain virtual machine being the same as virtual machine information of the corresponding virtual machine except for their customization information being different, determining the association relationship as being that the specific virtual appliance and the at least one other virtual appliance share the certain virtual machine partially; and

providing resource information for obtaining the specific virtual appliance according to the association relationship, comprising:

determining storage locations of the specific virtual appliance and the at least one other virtual appliance associated thereto according to the association relationship;

generating a plurality of resource addresses, at least one of which points to a storage location of the at least one other virtual appliance;

ordering the plurality of resource addresses generated to produce an ordered plurality of resource addresses; and

providing the resource information including the ordered plurality of resource addresses,

wherein the resource information comprises a plurality of resource addresses, at least one of the plurality of resource addresses pointing to a storage location of the at least one other virtual appliance, and

wherein the storage locations comprise at least one storage location of the specific virtual appliance and at least one storage location of the at least one other virtual appliance in a user device of other users.

2. The method of claim 1 ,

wherein the request is received via a seed file in peer-to-peer (P2P) transmissions, the seed file comprising target file information.

3. The method of claim 1 , wherein the obtaining the metadata of the specific virtual appliance comprises determining the specific virtual appliance to be obtained based on the received request and obtaining corresponding metadata based on the determined specific virtual appliance by analysis on the target file information in the seed file.

4. The method of claim 3 , further comprising extracting attribute information of a compressed package or data packet for describing virtual machines corresponding to the specific virtual appliance, wherein the metadata comprises the attribute information extracted from the compressed package or data packet.

5. The method of claim 3 , wherein the obtaining the corresponding metadata based on the determined virtual appliance comprises extracting a descriptor file for describing involved virtual machines from a packaged data packet corresponding to the specific virtual appliance, and taking the descriptor file as metadata about the specific virtual appliance.

6. The method of claim 1 , wherein the resource information further comprises annotation information provided for at least part of the plurality of resource addresses, the annotation information comprising either: at least one data portion shared, at least one sharing type, or at least one data portion shared and at least one sharing type.

7. An apparatus for providing a virtual appliance, the apparatus comprising:

a metadata obtaining hardware processing unit configured to obtain metadata of a specific virtual appliance based on a received request for obtaining the specific virtual appliance, the metadata describing information about virtual machines involved in the specific virtual appliance ;

an association relationship determining hardware processing unit configured to determine an association relationship between the specific virtual appliance and at least one other virtual appliance according to the metadata, the association relationship determining hardware processing unit comprising:

a virtual machine information obtaining program module executable by the association relationship determining hardware processing unit to cause the association relationship determining hardware processing unit to obtain virtual machine information of respective virtual machines involved in the specific virtual appliance from the metadata;

a virtual machine information comparing program module executable by the association relationship determining hardware processing unit to cause the association relationship determining hardware processing unit to compare the obtained virtual machine information of respective virtual machines involved in the specific virtual appliance to virtual machine information corresponding to the at least one other virtual appliance;

a determining program module executable by the association relationship determining hardware processing unit to cause the association relationship determining hardware processing unit to:

determine, in response to virtual machine information of a certain virtual machine in the specific virtual appliance being the same as virtual machine information of corresponding virtual machine in the at least one other virtual appliance, the association relationship as that the specific virtual appliance and the at least one other virtual appliance share the certain virtual machine; and

determine, in response to virtual machine information of the certain virtual machine being the same as virtual machine information of the corresponding virtual machine except for their customization information being different, the association relationship as being that the specific virtual appliance and the at least one other virtual appliance share the certain virtual machine partially; and

a resource information providing hardware processing unit configured to provide resource information for obtaining the specific virtual appliance according to the association relationship, the resource information providing hardware processing unit comprising:

a storage location determining program module executable by the resource information providing hardware processing unit to cause the resource information providing hardware processing unit to determine storage locations of the specific virtual appliance and the at least one other virtual appliance associated thereto according to the association relationship;

a resource address generating program module executable by the resource information providing hardware processing unit to cause the resource information providing hardware processing unit to generate a plurality of resource addresses, at least one of which points to a storage location of the at least one other virtual appliance; and

a providing program module executable by the resource information providing hardware processing unit to cause the resource information providing hardware processing unit to:

order the plurality of resource addresses generated to produce an ordered plurality of resource addresses; and

provide the resource information including the ordered plurality of resource addresses,

wherein the resource information includes a plurality of resource addresses, at least one of the plurality of resource addresses pointing to a storage location of the at least one other virtual appliance, and

wherein the storage locations comprise at least one storage location of the specific virtual appliance and at least one storage location of the at least one other virtual appliance in a user device of other users.

8. The apparatus of claim 7 , wherein the metadata obtaining hardware processing unit is configured to determine the specific virtual appliance to be obtained based on the received request and obtain corresponding metadata based on the determined virtual appliance analysis on the target file information in the seed file.

9. The apparatus of claim 7 , wherein the request is received via a seed file in peer-to-peer (P2P) transmission, the seed file comprising target file information.

10. The apparatus of claim 8 , wherein the metadata obtaining hardware processing unit is configured to extract attribute information of a compressed package or data packet for describing virtual machines corresponding to the specific virtual appliance, wherein the metadata comprises the attribute information extracted from the compressed package or data packet.

11. The apparatus of claim 8 , wherein the metadata obtaining hardware processing unit is further configured to:

extract a descriptor file for describing involved virtual machines from a packaged data packet corresponding to the specific virtual appliance; and

take the descriptor file as metadata about the specific virtual appliance.

12. The apparatus of claim 7 , wherein the resource information further comprises annotation information provided for at least part of the plurality of resource addresses, the annotation information comprising either: at least one data portion shared, at least one sharing type, or at least one data portion shared and at least one sharing type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2014
From: LIU, XIN PENG; RUI, SU YING; WANG, XI NING; ZENG, CHUN GUANG; ZHU, PU
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031900/0990 →
Priority Claims (1)
CN 2013 1 0064426 · Feb 28, 2013 · national
Continuity (1)
Related Publication 20140244845A1 · Aug 28, 2014