Filter-Level VMDK Access Bypassing Upstream Filters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized environments, offline applications interacting with virtual disks (VMDKs) face data corruption due to destructive filters being inadvertently applied multiple times when using the VMDK-level IOSubmit API, as they pass through all filters associated with the VMDK, including compression and encryption filters.

Innovation Solution

The technique allows applications to access VMDKs at the level of a specific target filter, enabling I/O requests to be issued via the filter-level IOSubmit API, which bypasses upstream filters and prevents re-application of destructive filters, ensuring data integrity by only passing requests through downstream filters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the VMDK-level IOSubmit API is used to allow offline applications to access VMDKs, then offline I/O operations become possible, but destructive filters are inadvertently applied multiple times causing data corruption

Engineering Contradiction:
Improveoffline I/O access capabilityVSAvoiddata integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the filter application process by introducing filter-level IOSubmit APIs that allow offline applications to access VMDKs at a specific filter level rather than applying all filters. This segmentation enables selective filter application, preventing destructive filters from being applied multiple times while maintaining offline access capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a filter framework component as an intermediary between offline applications and VMDKs. This intermediary manages filter application by instantiating appropriate filters and coordinating their execution, ensuring that destructive filters are not inadvertently applied multiple times while enabling offline I/O operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If all filters associated with a VMDK are applied to offline I/O requests, then data protection and compression are ensured, but destructive filters cause re-application and data corruption

Engineering Contradiction:
Improvedata protectionVSAvoiddata corruption from re-application
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent applies local quality by allowing different parts of the filter chain to be applied selectively. Instead of uniformly applying all filters, the system applies only the necessary downstream filters at the filter level where the offline application interacts with the VMDK, preventing harmful re-application of destructive filters while maintaining necessary protection.

Inventive Principle:
Principle #3Local quality

3Reliability

If the filter framework component instantiates all filters for a VMDK, then comprehensive filtering is achieved, but offline applications cannot selectively bypass upstream filters

Engineering Contradiction:
Improvecomprehensive filteringVSAvoidfilter bypass capability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces dynamics by allowing the filter application process to be adaptive rather than static. The filter framework can dynamically determine which filters to instantiate and apply based on the specific operation being performed and the filter level being accessed, enabling offline applications to bypass upstream filters when necessary while maintaining comprehensive filtering capability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10025606B2Enabling filter-level access to virtual disks
Publication Date: 2018.07.17 VMWARE INC
  • US10025606B2 patent drawing
  • US10025606B2 patent drawing
  • US10025606B2 patent drawing

AI summary

Techniques for enabling filter-level access to a virtual disk (VMDK) are provided. In one set of embodiments, an application can invoke a first application programming interface (API) for opening the VMDK, the invoking of the first API causing an ordered group of filters associated with the VMDK to be instantiated. The application can further coordinate with a target filter in the ordered group of filters to establish a communication channel with the target filter and can receive, from the target filter, a handle to the target filter via the communication channel. The application can then issue an I/O request to the VMDK via the target filter using the handle, the issuing causing data associated with the I/O request to be filtered by other filters that are downstream from the target filter in the ordered group.