IP Library Granted Patent US 8,327,096
Granted Patent B2
US 8,327,096 · App. 12/347,120 · Granted Dec 4, 2012

Method and system for efficient image customization for mass deployment

Assignee: International Business Machines Corporation
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,327,096
App. No.
12/347,120
Granted
Dec 4, 2012
Kind
B2
Abstract

A system and method for creating N customized disk images from N identical disk images. A computing system creates N identical disk images from a master image. The computing system customize a first identical disk image according to a customization written in customization scripts. While customizing the first identical disk image, the computing system monitors block-level operations applied on the first identical disk image. The computing system applies the monitored block-level operations simultaneously to other N−1 identical disk according to similar customizations written in customization scripts. After applying the block-level operations, the N identical disk images become N customized disk images. Identical Virtual Machines (VMs) operating in the N identical disk images become N customized VMs by operating based on the N customized disk images.

Claims (72)

1. A method for creating N customized disk images in a computer device, said method comprising:

creating N identical disk images from a master disk image where N is a whole number greater than 2;

applying customizations to a created first identical disk image among the N identical disk images according to one or more customization scripts describing the customizations, said applying comprising:

analyzing said customizations to said created first identical disk image once, and

determining, from said analyzing, block-level operations to be applied on specific locations in said identical disk image; and

saving to a memory storage device, said block-level operations performed on the first identical disk image while applying the customizations to the first identical disk image; and

subsequently re-using the saved block-level operations for concurrent or simultaneous application to other N−1 identical disk images to be similarly customized,

wherein the N identical disk images becomes the N customized disk images after performing the customizations and the similar customizations.

2. The method according to claim 1 , further comprising:

receiving the one or more customization scripts from a user, wherein said

analyzing said customizations once comprises:

parsing a customization request; and

searching and locating blocks associated with the parsed customization request in said first identical disk image.

3. The method according to claim 1 , further comprising:

modifying the one or more customization scripts to be executed simultaneously on the N identical images by re-using the saved block-level operations.

4. The method according to claim 3 , further comprising:

performing a necessary search to determine a state of said computer device prior to any modification on the one or more customization scripts;

performing dependency checks to determine existence of programs called by said script prior to any modification on the one or more customization scripts; and

verifying whether the modified one or more customization scripts can be executed correctly.

5. The method according to claim 1 , further comprising:

performing a CoW (Copy-On-Write) operation optimized for creating the N identical disk images.

6. The method according to claim 1 , wherein the saved block-level operations includes one or more of:

a file offset within a file system in the first identical disk image, the file offset indicating a specific location in the file system where the customizations applied;

an i-node identity corresponding to the specific location where the customization applied; and

a block offset in the first identical disk image, the block offset indicating a particular location where the customization applied.

7. The method according to claim 1 , wherein

the applying customizations to a first identical disk image comprises:

reading a first disk block from the master disk image to a buffer;

modifying the first disk block in the buffer according to the customizations; and

overwriting the first disk block in the first identical disk image with the modified disk block in the buffer.

8. The method according to claim 1 , wherein the applying the saved block-level operations on other N−1 identical disk images comprises:

storing the modified disk block in the buffer;

modifying the stored disk block according to the similar customizations; and

overwriting the first disk block in the N−1 identical disk images with the modified stored disk block.

9. The method according to claim 8 , wherein the overwriting the first disk block in the N−1 identical disk images bypasses a file system in the N−1 identical disk images and directly writes the modified stored disk block to a location of the first disk block in the N−1 identical disk images.

10. The method according to claim 1 , wherein the similar customizations are changes that do not depend on a particular customization script.

11. A system, implemented in a computer device, for creating N customized disk images comprising:

means for creating N identical disk images from a master disk image where N is a whole number greater than 2;

means for applying customizations to a first identical disk image among the N identical disk images according to one or more customization scripts describing the customizations, said means for applying performing:

analyzing said customizations to said created first identical disk image once; and

determining, from said analyzing, block-level operations to be applied on specific locations in said identical disk image;

means for saving to a memory storage device, said block-level operations performed on the first identical disk image while applying the customizations to the first identical disk image; and

means for subsequently re-using the saved block-level operations for concurrent or simultaneous application to other N−1 identical disk images to be similarly customized,

wherein the N identical disk images becomes the N customized disk images after performing the customizations and the similar customizations.

12. The system according to claim 11 , further comprising:

means for receiving the one or more customization scripts from users, wherein said analyzing comprises:

parsing a customization request; and

searching and locating texts associated with the parsed customization request in said first identical disk image.

13. The system according to claim 11 , further comprising:

means for modifying the one or more customization scripts to be executed simultaneously on the N identical images and to reuse the saved block-level operations.

14. The system according to claim 13 , further comprising:

means for performing a necessary search to determine a state of said computer device prior to any modification on the one or more customization scripts;

means for performing dependency checks to determine existence of programs called by said script prior to any modification on the one or more customization scripts; and

means for verifying whether the modified one or more customization scripts can be executed correctly.

15. The system according to claim 11 , wherein said means for creating N identical disk images further comprises:

means for performing a CoW (Copy-On-Write) operation optimized for creating the N identical disk images.

16. The system according to claim 11 , wherein the saved block-level operations includes one or more of:

a file offset within a file system in the first identical disk image, the file offset indicating a specific location in the file system where the customizations applied;

an inode identity corresponding to the specific location where the customization applied; and

a block offset in the first identical disk image, the block offset indicating a particular location where the customization applied.

17. The system according to claim 11 , wherein the means for applying customizations to a first identical disk image comprises:

means for reading a first disk block from the master disk image to a buffer;

means for modifying the first disk block in the buffer according to the customizations; and

means for overwriting the first disk block in the first identical disk image with the modified disk block in the buffer.

18. The system according to claim 11 , wherein the means for applying the saved block-level operations on other N−1 identical disk images comprises:

means for storing the modified disk block in the buffer;

means for modifying the stored disk block according to the similar customizations; and

means for overwriting the first disk block in the N−1 identical disk images with the modified stored disk block.

19. The system according to claim 18 , wherein the means for overwriting the first disk block in the N−1 identical disk images bypasses a file system in the N−1 identical disk images and directly writes the modified stored disk block to a location of the first disk block in the N−1 identical disk images.

20. The system according to claim 11 , wherein the similar customizations are changes that do not depend on a particular customization script.

21. A computer readable medium storing computer program instructions being executed by a processor for causing a computer to perform method steps for creating N customized disk images, said method steps comprising the steps of claim 1 .

22. A method of deploying a computer program product including a program of instructions in a computer readable medium for creating N customized disk images, wherein, when the program of instructions is executed by a processor, the computer program product performs the steps of claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2009
From: SILVERA, EZRA; LORENZ, DEAN; SHAPIRA, INBAR; SHARABY, GILAD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022401/0695 →
Continuity (1)
Related Publication 20100169881A1 · Jul 1, 2010