Snapshot Tree Expansion for Virtual Machine Cloning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development environments, managing snapshots across multiple virtual machines is inefficient due to repetitive operations, time consumption, and memory waste, as each developer independently installs and configures the software development environment, leading to sprawling snapshots and potential loss of previous versions.

Innovation Solution

A method for managing computing machines by expanding snapshot trees to share snapshots among multiple machines, allowing for the restoration of selected nodes without stopping donor machines, thus reducing repetition and memory usage, and enabling seamless version management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If each software developer independently installs and configures the software development environment on their own virtual machine, then each developer can have a customized development environment, but this causes repetitive operations that are time consuming and lead to sprawling snapshots wasting mass memory space

Engineering Contradiction:
Improvecustomized development environmentVSAvoidrepetitive installation and configuration time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies copying by creating virtual machine images from snapshots that can be copied and applied to multiple developers' virtual machines. Instead of each developer installing software independently, a master snapshot containing the complete software development environment is copied to subordinate virtual machines, eliminating repetitive installation while maintaining environment consistency.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent merges the software development environment installation process into a centralized snapshot that can be shared across multiple virtual machines. By combining the software installation, configuration, and snapshot creation into a single master image, the system eliminates redundant operations while allowing multiple developers to access the same environment through virtual machine copying.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If each software developer independently installs and configures the software development environment on their own virtual machine, then each developer can have a customized development environment, but this causes snapshots to sprawl across different machines wasting mass memory space

Engineering Contradiction:
Improvecustomized development environmentVSAvoidmass memory space occupied by snapshots
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges snapshot storage into a centralized repository where a single master snapshot and its derivatives are stored. Instead of duplicating complete software environments across multiple virtual machines, the system uses a shared snapshot repository where subordinate virtual machines reference and copy from the master snapshot, dramatically reducing total memory consumption while maintaining environment availability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements efficient copying by creating lightweight virtual machine images from the master snapshot that can be distributed to multiple developers. These copies are optimized to share common components with the master snapshot, reducing redundant data storage while allowing each developer to have their own instance of the development environment.

Inventive Principle:
Principle #26Copying

3Quantity of substance

If the source virtual machine is stopped to take a snapshot for cloning, then the snapshot can be captured, but this causes a long period of unavailability of the source virtual machine

Engineering Contradiction:
Improvesnapshot capture capabilityVSAvoidsource virtual machine unavailability time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-configuring the master virtual machine with the complete software development environment and creating a master snapshot before it is needed by other developers. This advance preparation eliminates the need to stop the source virtual machine later, as the snapshot is already available for immediate copying to subordinate machines.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous operation of the master virtual machine by using snapshot technology that captures the system state without requiring shutdown. The master VM can remain running and operational while snapshots are created and copied to subordinate virtual machines, maintaining uninterrupted development work and eliminating idle time.

Inventive Principle:
Principle #20Continuity of useful action

4Adaptability or versatility

If the cloning process involves stopping the target virtual machine, attaching software image, and re-configuring, then the source virtual machine can be cloned, but this process is quite time consuming and prone to errors

Engineering Contradiction:
Improvevirtual machine cloning capabilityVSAvoidcloning process complexity and error-proneness
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent simplifies cloning by using snapshot-based copying instead of complex image attachment procedures. The master snapshot can be directly applied to subordinate virtual machines through automated copying, eliminating manual steps such as stopping VMs, attaching images, and re-configuring systems. This reduces both time and potential for human error.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent applies preliminary action by pre-configuring all necessary software, dependencies, and settings in the master virtual machine before cloning. This advance preparation ensures that subordinate virtual machines inherit a complete, tested, and configured environment, eliminating the need for post-cloning reconfiguration and reducing operational complexity.

Inventive Principle:
Principle #10Preliminary action

5Quantity of substance

If the source virtual machine is stopped to take a snapshot, then the snapshot can be captured, but this causes the snapshot tree of the target virtual machine to lose any previous snapshots

Engineering Contradiction:
Improvesnapshot capture capabilityVSAvoidprevious snapshots of target virtual machine
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent uses snapshot copying that preserves the snapshot tree structure of the target virtual machine. When a master snapshot is applied to a subordinate VM, the system creates a new snapshot tree that includes both the inherited snapshots from the master and any existing snapshots of the target, preventing loss of historical version information.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent implements prior cushioning by preserving and integrating the target virtual machine's existing snapshot tree before applying the master snapshot. The system cushions against information loss by maintaining a record of previous snapshots and incorporating them into the new snapshot hierarchy, ensuring no historical data is lost during the cloning process.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Data Source

PatentUS9934226B2Sharing of snapshots among multiple computing machines
Publication Date: 2018.04.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9934226B2 patent drawing
  • US9934226B2 patent drawing
  • US9934226B2 patent drawing

AI summary

A solution is proposed for managing each one of a plurality of computing machines. A corresponding method comprises taking one or more snapshots of the computing machine or part thereof, the snapshots being organized in a snapshot tree of nodes representing the snapshots according to a dependency thereof, expanding the snapshot tree of the computing machine according to each sub-tree of the snapshot tree of each other computing machine having the snapshot of a parent node of the sub-tree matching a graft node of the snapshot tree of the computing machine, the sub-tree being appended to the graft node, selecting a snapshot of the other computing machines represented by a selected node of the snapshot tree of the computing machine, and restoring the selected snapshot on the computing machine.