Storage Virtualization Offload to Hardware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage virtualization techniques are inefficient due to high latency and throughput requirements, leading to increased CPU load and resource utilization, as they are designed for slower storage devices, and existing solutions fail to fully leverage the performance capabilities of high-speed storage devices like SSDs connected via PCIe buses.

Innovation Solution

Offloading storage virtualization aspects to storage hardware and modifying software to utilize hardware virtualization features, allowing the storage device to manage and expose virtual volumes that align with device storage blocks, thereby reducing indirection overhead and improving throughput and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If storage virtualization is implemented in software, then flexibility and adaptability are improved, but CPU load and processing overhead increase

Engineering Contradiction:
Improvestorage virtualization flexibilityVSAvoidCPU load
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the storage virtualization functionality from the host CPU and relocates it to the storage device itself. The storage device implements a virtualization layer that can create and manage virtual volumes, perform data transformation, and handle I/O operations independently, thereby reducing the computational burden on the host system while maintaining virtualization flexibility

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary virtualization layer residing in the storage device that mediates between the host system and the physical storage media. This intermediary handles the complex virtualization operations, allowing the host to interact with simplified virtual volumes without directly processing the computational overhead of virtualization management

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If storage access speed is increased to match processor speed, then throughput is improved, but memory requirements and power consumption increase

Engineering Contradiction:
Improvestorage access speedVSAvoidmemory requirements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent enables the storage device to perform self-service operations through hardware-accelerated data transformation capabilities. The storage device can autonomously transform data formats, perform data reduction, and manage virtual volumes without requiring data to be loaded into host memory, thereby achieving high-speed access while minimizing memory requirements

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical approach of using large amounts of host memory for data buffering and transformation with hardware-based data transformation capabilities embedded in the storage device. This substitution allows high-speed data processing to occur directly at the storage medium, eliminating the need for extensive memory resources

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If storage device throughput is increased, then data exchange rate is improved, but system CPU load increases

Engineering Contradiction:
Improvedata throughputVSAvoidCPU load
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the computationally intensive data transformation and virtualization operations from the host CPU and implements them in hardware within the storage device. This extraction allows high throughput data exchange to occur without proportionally increasing host CPU load, as the storage device handles the processing independently

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the operational parameters of the storage system by implementing hardware-accelerated data transformation capabilities. This allows the storage device to process data at high speeds using dedicated hardware circuits rather than general-purpose CPU instructions, thereby achieving high throughput with minimal CPU involvement

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If software indirection is used to manage storage, then flexibility is improved, but latency is increased

Engineering Contradiction:
Improvestorage management flexibilityVSAvoidstorage access latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-processing and transforming data within the storage device before it needs to be accessed by the host. The storage device performs data reduction, format transformation, and virtualization operations in advance, so that when data is requested, it is already prepared and ready for immediate access, thereby reducing latency while maintaining management flexibility

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10209899B2Storage virtualization offload
Publication Date: 2019.02.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10209899B2 patent drawing
  • US10209899B2 patent drawing
  • US10209899B2 patent drawing

AI summary

Embodiments relate to off-loading aspects of storage virtualization to storage hardware and modifying software to take advantage of hardware virtualization features. A co-design of hardware and software allows a filesystem to provide files such that indirection overhead normally needed to access the content of files can be bypassed while still managing the files as filesystem objects. A storage device manages and exposes a virtual volume which is used to store the content of a file. Virtual volumes can be initialized or populated so that virtual blocks therein align with device storage blocks. A virtual volume can be initialized and populated by parsing a virtual disk file to access virtual disk metadata, which is then used to determine and set features of the virtual volume.