Virtual Machine Cache Transfer for Seamless Host Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing environments face inefficiencies in managing data input/output (I/O) operations, particularly in virtualized settings, where existing solutions fail to dynamically allocate cache resources effectively across multiple virtual machines, leading to suboptimal performance and increased load on primary storage systems.

Innovation Solution

The implementation of a virtual machine cache system that intercepts I/O operations, dynamically allocates cache resources, and transfers cache states between hosts, using a cache provisioner module and cache management system to optimize I/O operations by providing caching services to virtual machines without modifying existing application software or storage systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a virtual machine cache system is implemented to dynamically allocate cache resources, then virtual machine performance is improved, but device complexity increases

Engineering Contradiction:
Improvevirtual machine performanceVSAvoidcache management system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a cache provisioner module as an intermediary component that sits between the virtual machines and the primary storage system. This module dynamically allocates cache resources to virtual machines without requiring modifications to the virtual machines themselves or the underlying storage system, thus improving performance while managing complexity through a dedicated intermediary layer

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The cache management system is segmented into distinct functional modules including a cache provisioner module for dynamic allocation, a cache management system for overseeing operations, and individual cache instances for each virtual machine. This segmentation allows each component to be optimized independently, improving overall virtual machine performance while keeping the complexity distributed and manageable

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If cache resources are dynamically allocated across multiple virtual machines, then cache resource utilization is improved, but device complexity increases

Engineering Contradiction:
Improvecache resource utilizationVSAvoidcache allocation system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache provisioner module implements dynamic allocation of cache resources that can adapt to changing virtual machine workloads in real-time. Cache sizes and allocations are not fixed but can be adjusted dynamically based on current system conditions and virtual machine needs, improving resource utilization while the modular architecture manages the inherent complexity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The cache provisioner module serves multiple functions: it allocates cache resources to virtual machines, manages cache operations, and coordinates with the primary storage system. This multi-functional design improves cache resource utilization across different virtual machines while consolidating complexity into a single universal management component

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If cache states are transferred between hosts, then virtual machine portability is improved, but loss of time increases

Engineering Contradiction:
Improvevirtual machine portabilityVSAvoidcache transfer time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by maintaining cache states locally at each host before virtual machine migration occurs. When a virtual machine needs to migrate between hosts, the pre-existing cache state can be quickly transferred or replicated, reducing the time penalty compared to building cache states from scratch at the destination host

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache state transfer mechanism creates copies of cache data between hosts during virtual machine migration. Rather than moving the entire cache state sequentially, the system can replicate cache data to multiple hosts simultaneously, improving virtual machine portability while the copying approach manages transfer time through parallel operations

Inventive Principle:
Principle #26Copying

4Productivity

If I/O operations are intercepted and cached, then productivity is improved, but device complexity increases

Engineering Contradiction:
ImproveI/O operation efficiencyVSAvoidI/O management system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache provisioner module acts as an intermediary that intercepts I/O operations between virtual machines and the primary storage system. By positioning this caching layer in the I/O path, the system improves I/O efficiency through caching while the modular intermediary design manages the added complexity by encapsulating it within a dedicated component that doesn't require modifications to existing virtual machine or storage system code

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10339056B2Systems, methods and apparatus for cache transfers
Publication Date: 2019.07.02 SANDISK TECHNOLOGIES LLC
  • US10339056B2 patent drawing
  • US10339056B2 patent drawing
  • US10339056B2 patent drawing

AI summary

A virtual machine cache provides for maintaining a working set of the cache during a transfer between virtual machine hosts. In response to a virtual machine transfer, the previous host of the virtual machine is configured to retain cache data of the virtual machine, which may include both cache metadata and data that has been admitted into the cache. The cache data may be transferred to the destination host via a network (or other communication mechanism). The destination host populates a virtual machine cache with the transferred cache data to thereby reconstruct the working state of the cache.