Virtual Disk I/O Filter Framework for Linked Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtualization environments face challenges in efficiently managing linked storage hierarchies within virtual machines, as they require complex configurations and awareness of full disk chains, which complicates filter integration and transparency for guest operating systems.
Innovation Solution
A virtual disk I/O filter framework that intercepts and redirects I/O requests between virtual disks, allowing for transparent linked clone or snapshot configurations without storing disk hierarchy information within the virtual disk, enabling easier filter integration and independent management of encryption and caching filters across multiple virtual machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If disk hierarchy information is stored within the virtual disk descriptor file, then the virtualization stack can manage linked clones, but filter integration becomes complex and requires awareness of full disk chains
Solution Approach 1:
The patent extracts the disk hierarchy management functionality from the virtual disk descriptor file and relocates it to the I/O filter module. The filter now stores and manages linked clone relationships, snapshot information, and parent-child disk associations independently of the virtual disk metadata. This extraction eliminates the complexity burden from both the virtualization stack and filter integration, as filters no longer need to parse or understand disk hierarchy structures stored in descriptor files.
Solution Approach 2:
The I/O filter acts as an intermediary layer between the virtual machine and the virtual disk, intercepting I/O requests and making hierarchy-based decisions without requiring the virtualization stack to be aware of the disk chain structure. The filter mediates between the VM's I/O operations and the actual disk operations, transparently handling linked clone scenarios, snapshots, and replication based on filter-stored hierarchy information rather than descriptor-file-stored information.
2Reliability
If all I/O filters must be aware of full disk chains, then linked clone management is possible, but filter integration becomes complicated
Solution Approach 1:
The patent segments the disk hierarchy management responsibility from the general I/O filter functionality. Instead of requiring all filters to understand full disk chains, the system divides concerns by having filters operate independently on their assigned virtual disks, with each filter storing and managing only the hierarchy information relevant to its specific disk. This segmentation allows filters to be integrated independently without requiring comprehensive knowledge of entire disk chains.
Solution Approach 2:
Each I/O filter is equipped with local hierarchy information specific to its assigned virtual disk, stored within the filter module itself. Rather than requiring global awareness of all disk chains in the system, each filter has localized knowledge of its disk's relationships (parent disks, child disks, snapshot states). This local quality approach simplifies filter integration while maintaining reliable linked clone management through distributed, localized hierarchy management.
3Reliability
If descriptor files contain pointers to base disks, then linked clone hierarchy is established, but filter integration requires awareness of disk hierarchy
Solution Approach 1:
The patent extracts hierarchy management from the descriptor file structure and places it in the I/O filter module. Descriptor files retain only basic virtual disk metadata, while all linked clone relationships, parent disk pointers, and snapshot information are stored and managed within the filter. This extraction maintains disk hierarchy integrity through filter-based management while eliminating the complexity of integrating filters with descriptor-file-stored hierarchy information.
Solution Approach 2:
The filter maintains a copy of hierarchy information (parent disk identifiers, linked clone relationships) within its own data structures, separate from the descriptor file. This copying approach allows the filter to manage disk hierarchy independently without relying on descriptor file structure, thereby simplifying filter integration while preserving hierarchy integrity through the filter's internal copy of the relationships.
4Adaptability or versatility
If I/O requests are redirected through filters to base disks, then linked storage functionality is achieved, but filter integration becomes more complex
Solution Approach 1:
The I/O filter performs self-service by maintaining its own internal state and hierarchy information, making autonomous decisions about I/O request redirection without requiring complex integration with the virtualization stack or other filters. Each filter independently determines whether to redirect requests to base disks or handle them locally, based on its own stored hierarchy information. This self-service capability simplifies filter integration while achieving versatile linked storage functionality.
Solution Approach 2:
The filter serves as an intermediary that transparently redirects I/O requests between virtual disks and base disks based on its internal hierarchy knowledge. This intermediary role allows linked storage functionality to be achieved without requiring the virtualization stack to understand or manage disk chains, thereby simplifying filter integration while maintaining adaptability for various linked clone and snapshot scenarios.
Data Source
AI summary
Exemplary methods, apparatuses, and systems include a first input/output (I/O) filter receiving, from a first filter module within a virtualization stack of a host computer, an input/output (I/O) request originated by a virtual machine and directed to a first virtual disk. The first I/O filter determines to redirect the I/O request to a second virtual disk and, in response, forwards the I/O request to a second I/O filter associated with the second virtual disk. The first I/O filter is a part of a first instance of a filter framework within the host computer and the second I/O filter is part of a second, separate instance of the filter framework.

