VM Direct Storage Access via Virtual Function Path Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized storage environments, direct access by virtual machines (VMs) to physical storage can interfere with multipathing benefits, leading to performance issues and data access delays due to the intervention of the virtualization intermediary, which is costly in terms of compute cycles and may compromise isolation and protection requirements.

Innovation Solution

A virtual machine is provided with direct access to physical storage through a virtual function (VF) on an input/output (IO) adapter, where a guest driver shares a memory region with the virtualization intermediary to obtain and update active path information, allowing IO requests to be dispatched directly to physical storage without significant intervention from the intermediary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If direct access to physical storage is provided through VF to avoid virtualization intermediary intervention, then performance and compute cycle efficiency improve, but multipathing benefits and path management capability are lost

Engineering Contradiction:
Improvestorage access performanceVSAvoidmultipathing redundancy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a path management table as an intermediary data structure that enables the VF to access multipathing information without requiring full multipathing software intervention. The table stores path information (path ID, target ID, LUN) that the VF can directly read and use for load balancing and failover decisions, thus maintaining multipathing benefits while enabling direct storage access.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If virtualization intermediary traps and translates storage requests, then storage access control and isolation are maintained, but data access delays and compute cycle overhead increase

Engineering Contradiction:
Improvestorage access controlVSAvoiddata access delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-populating the path management table with multiple valid paths to storage targets before the VF needs them. The guest OS loads path information into the table in advance, so when storage access is needed, the VF can immediately use the pre-computed path information without waiting for intermediary translation or path selection computation at access time.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If full multipathing software is implemented in guest OS, then path selection and failover capability are achieved, but device complexity and resource overhead increase

Engineering Contradiction:
Improvepath selection capabilityVSAvoidguest driver complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the essential path management functionality from complex multipathing software and implements it as a simple path management table data structure. Instead of requiring full multipathing software with path selection algorithms, failure detection, and recovery logic in the guest OS, the patent isolates path information storage in a table that the VF can directly access, thereby reducing guest driver complexity while maintaining path selection capability.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8719817B2Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
Publication Date: 2014.05.06 VMWARE INC
  • US8719817B2 patent drawing
  • US8719817B2 patent drawing
  • US8719817B2 patent drawing

AI summary

A method of direct access by a virtual machine (VM) running on a host machine to physical storage via a virtual function (VF) running on an input/output (IO) adapter comprising: providing by a virtualization intermediary running on the host machine an indication of an active path associated with a virtual storage device; obtaining by a guest driver running within a guest operating system of the VM the stored indication of the active path from the shared memory region; dispatching an IO request by the guest driver to the VF that includes an indication of the active path; and sending by the VF an IO request that includes the indicated active path.