NIC Storage Emulator for NVMe Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies lack an efficient method to emulate local storage for host computers using network interface cards (NICs), particularly in scenarios where external storages are not native virtual volume (vVol) storages.

Innovation Solution

A method is implemented on a NIC to deploy a storage emulator program that converts external non-vVol storages into vVol storages, allowing the NIC to emulate a local virtual volume (vVol) storage, which is presented to host computer processes as an NVMe device.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If external storages are used that are not native vVol storages, then storage compatibility and versatility are improved, but storage performance and efficiency deteriorate

Engineering Contradiction:
Improvestorage compatibilityVSAvoidstorage performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a storage emulator program as an intermediary layer between the host computer and external storages. This emulator converts non-vVol storages into vVol storage format, allowing the system to use diverse external storage types while maintaining optimal performance through the mediation of the emulator program that handles protocol translation and data formatting.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If a storage emulator program is deployed on the NIC, then local storage emulation is achieved improving access speed, but device complexity increases

Engineering Contradiction:
Improvestorage access speedVSAvoidNIC complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent makes the NIC multi-functional by deploying a storage emulator program directly on it, allowing the NIC to perform both its traditional network interface functions and storage emulation functions. This consolidates multiple functions into a single device, improving storage access speed by eliminating additional hardware layers while the added complexity is managed through software implementation.

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

3Productivity

If non-vVol storages are converted to vVol storages, then storage performance is improved, but processing time and computational resources increase

Engineering Contradiction:
Improvestorage performanceVSAvoidconversion time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The storage emulator program performs preliminary conversion of non-vVol storages to vVol format in advance, so that when storage operations are needed, the data is already in the optimized vVol format. This preliminary action eliminates the need for real-time conversion during storage operations, thus improving storage performance without significant time loss.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250117238A1Optimizing a NIC that emulates a local nvme storage device for processes of a host computer
Publication Date: 2025.04.10 VMWARE INC
  • US20250117238A1 patent drawing
  • US20250117238A1 patent drawing
  • US20250117238A1 patent drawing

AI summary

Some embodiments provide a novel method for configuring a network interface card (NIC) that is connected to a host computer and that emulates a local non-volatile memory express (NVMe) storage device, using external storages, for a set of processes executing on the host. The method configures, on the NIC's operating system (OS), a storage emulator program to present the external storages to the host processes as the local NVMe storage device. The method configures, on the NIC's OS, a disk device to exchange NVMe requests and responses between the host processes and the external storages by exchanging the NVMe requests and responses (1) with a virtual NVMe (vNVMe) controller of the NIC through a storage stack of the OS, or (2) directly with the vNVMe controller such that the disk device bypasses the storage stack. Exchanging NVMe requests and responses directly with the vNVMe controller optimizes the NIC's performance.