System and method for efficiently building virtual appliances in a hosted environment
First Claim
1. A system for efficiently building virtual appliances in a hosted environment, comprising:
- a build database configured to store reusable image archives having file systems with one or more files installed in one or more directories, wherein the reusable image archives collect all the files installed in the one or more directories and preserve information relating to the one or more directories associated with the file systems;
a build engine configured to;
associate the reusable image archives stored in the build database with manifest files that list unique identifiers associated with one or more software components corresponding to all the files installed in the one or more directories associated with the reusable image archive file systems;
receive a build request that includes an image description associated with a virtual appliance;
create, from the image description associated with the virtual appliance, a root file system having a root directory structure that defines a layout associated with all files and directories to install in an operating system image associated with the virtual appliance;
add all the files in the file system associated with one of the reusable image archives that provides a perfect subset of the root file system to the root directory structure in the operating system image associated with the virtual appliance, wherein the one of the reusable image archives provides the perfect subset of the root file system when all the files in the file system associated therewith are to be installed in the operating system image associated with the virtual appliance; and
build the operating system image associated with the virtual appliance, wherein the operating system image includes all the files and directories installed therein in accordance with the root directory structure that defines the layout associated therewith;
a repository metadata server configured to detect an update to one or more software components stored in one or more source repositories; and
a virtualization environment configured to;
invalidate all the reusable image archives associated with manifest files that list unique identifiers associated with the one or more updated software components; and
invoke the build engine to rebuild the file systems associated with the invalidated reusable image archives, wherein the rebuilt file systems have one or more files corresponding to the one or more updated software components installed in the one or more directories associated therewith.
19 Assignments
0 Petitions
Accused Products
Abstract
A system and method for efficiently building virtual appliances in a hosted environment is provided. In particular, a plurality of image archives may be stored in a build database, with each image archive including a file system having a directory structure and a plurality of files installed within the directory structure. In response to a build request containing an image description, a build engine may create a file system layout defining a directory structure for an image. The build engine may then copy the file system for one of the image archives to the file system layout for the image, wherein the copied file system may provide a subset of the file system for the image. The build engine may then build the image, which may include a file system having various files installed within various directories in accordance with the directory structure defined for the image.
163 Citations
24 Claims
-
1. A system for efficiently building virtual appliances in a hosted environment, comprising:
-
a build database configured to store reusable image archives having file systems with one or more files installed in one or more directories, wherein the reusable image archives collect all the files installed in the one or more directories and preserve information relating to the one or more directories associated with the file systems; a build engine configured to; associate the reusable image archives stored in the build database with manifest files that list unique identifiers associated with one or more software components corresponding to all the files installed in the one or more directories associated with the reusable image archive file systems; receive a build request that includes an image description associated with a virtual appliance; create, from the image description associated with the virtual appliance, a root file system having a root directory structure that defines a layout associated with all files and directories to install in an operating system image associated with the virtual appliance; add all the files in the file system associated with one of the reusable image archives that provides a perfect subset of the root file system to the root directory structure in the operating system image associated with the virtual appliance, wherein the one of the reusable image archives provides the perfect subset of the root file system when all the files in the file system associated therewith are to be installed in the operating system image associated with the virtual appliance; and build the operating system image associated with the virtual appliance, wherein the operating system image includes all the files and directories installed therein in accordance with the root directory structure that defines the layout associated therewith; a repository metadata server configured to detect an update to one or more software components stored in one or more source repositories; and a virtualization environment configured to; invalidate all the reusable image archives associated with manifest files that list unique identifiers associated with the one or more updated software components; and invoke the build engine to rebuild the file systems associated with the invalidated reusable image archives, wherein the rebuilt file systems have one or more files corresponding to the one or more updated software components installed in the one or more directories associated therewith. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-implemented method for efficiently building virtual appliances in a hosted environment, comprising:
-
storing, in a build database reusable image archives having file systems with one or more files installed in one or more directories, wherein the reusable image archives collect all the files installed in the one or more directories and preserve information relating to the one or more directories associated with the file systems; associating the reusable image archives stored in the build database with manifest files that list unique identifiers associated with one or more software components that correspond to all the files installed in the one or more directories associated with the reusable image archive file systems; receiving a build request at a build engine, wherein the build request includes an image description associated with a virtual appliance; creating, from the image description associated with the virtual appliance using the build engine, a root file system having a root directory structure that defines a layout associated with all files and directories to install in an operating system image associated with the virtual appliance; adding all the files in the file system associated with one of the reusable image archives stored in the build database that provides a perfect subset of the root file system to the root directory structure in the operating system image associated with the virtual appliance, wherein the one of the reusable image archives provides the perfect subset of the root file system when all the files in the file system associated therewith are to be installed in the operating system image associated with the virtual appliance; building the operating system image associated with the virtual appliance using the build engine, wherein the operating system image includes all the files and directories installed therein in accordance with the root directory structure that defines the layout associated therewith; detecting, at a repository metadata server, an update to one or more software components stored in one or more source repositories; invalidating all the reusable image archives stored in the build database associated with manifest files that list unique identifiers associated with the one or more updated software components; and invoking the build engine to rebuild the file systems associated with the invalidated reusable image archives, wherein the rebuilt file systems have one or more files corresponding to the one or more updated software components installed in the one or more directories associated therewith. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer-implemented method for efficiently building virtual appliances in a hosted environment, comprising:
-
building a file system corresponding to a base appliance using a build engine, wherein the file system corresponding to the base appliance includes one or more files installed in one or more directories; associating the base appliance with a manifest file that lists unique identifiers associated with one or more software components that correspond to the one or more files installed in the one or more directories associated with the base appliance file system; invalidating the base appliance in response to a repository metadata server detecting an update to the one or more software components associated with the unique identifiers listed in the manifest file associated with the base appliance; invoking the build engine to rebuild the file system corresponding to the invalidated base appliance, wherein the one or more files installed in the one or more directories associated with the rebuilt file system correspond to the one or more updated software components associated with the unique identifiers listed in the manifest file; receiving a build request at the build engine, wherein the build request includes an image description associated with a virtual appliance derived from the base appliance; creating, at the build engine from the image description associated with the virtual appliance derived from the base appliance, a root file system having a root directory structure that defines a layout associated with all files and directories to install in an image associated with the virtual appliance derived from the base appliance; adding all the files in the rebuilt file system corresponding to the base appliance to the root directory structure in the image associated with the virtual appliance derived from the base appliance if the rebuilt file system corresponding to the base appliance represents a perfect subset of the root directory structure in the image associated with the derived virtual appliance, wherein the rebuilt file system represents the perfect subset of the root directory structure when all the files in the rebuilt file system are to be installed in the image associated with the virtual appliance derived from the base appliance; installing one or more additional files remaining to be installed in the image associated with the derived virtual appliance subsequent to adding all the files in the rebuilt file system corresponding to the base appliance to the root directory structure in the image associated with the derived virtual appliance; and building the image associated with the derived virtual appliance using the build engine, wherein the image associated with the derived virtual appliance has all the files in the rebuilt file system corresponding to the base appliance and the one or more additional files installed in the directories in accordance with the root directory structure that defines the layout associated therewith. - View Dependent Claims (24)
-
Specification