Virtual Target System for Cross-Fabric NVMe Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In NVMe environments, host nodes communicating with target systems using different physical interfaces and fabric protocols face challenges in seamless data transfer across various fabric networks, leading to increased latency and compatibility issues.
Innovation Solution
A virtual target system is introduced, enabling direct memory access between host nodes and target systems on different fabric networks by using a transfer memory and maintaining different fabric protocol drivers, allowing NVMe requests to be transmitted without modification across different physical interfaces and fabric protocols.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If host nodes use different physical interfaces and fabric protocols to communicate with target systems, then compatibility with diverse storage networks is improved, but latency increases and communication efficiency deteriorates
Solution Approach 1:
The patent introduces a gateway device as an intermediary between host nodes using different fabric protocols and target systems. The gateway receives NVMe requests from host nodes via one fabric protocol, translates them to the appropriate protocol for the target system, and forwards them accordingly. This intermediary approach enables compatibility between diverse fabric protocols (FC, InfiniBand, RoCE, iWARP, Ethernet) while maintaining low latency because the translation occurs at the gateway level rather than requiring complex multi-hop routing through multiple protocol converters.
2Adaptability or versatility
If NVMe requests are modified to adapt to different fabric protocols, then compatibility between different protocols is improved, but processing overhead increases and efficiency deteriorates
Solution Approach 1:
The patent segments the NVMe communication path into distinct functional components: the gateway device handles protocol translation and conversion, while the host nodes and target systems maintain their native NVMe interfaces. This segmentation allows each component to operate independently at its optimal performance level without requiring modifications to the NVMe request structure itself, thereby maintaining high data transfer efficiency while achieving protocol compatibility through the gateway's specialized translation capabilities.
3Speed
If direct memory access is implemented across different fabric networks, then data transfer speed is improved, but system complexity increases
Solution Approach 1:
The gateway device serves as an intermediary that manages direct memory access (DMA) operations across different fabric networks by translating between different DMA protocols and memory address spaces. The gateway maintains translation tables and address mappings that enable fast DMA transfers without requiring complex multi-layer protocol stacks at the host or target system level. This centralized management of DMA operations at the gateway reduces overall system complexity while maintaining high data transfer speeds through optimized direct memory access paths.
Data Source
AI summary
Provided are a computer program product, method, and system to transfer storage input/output (I/O) requests to host and target systems on different fabrics. An origination packet is received from an originating node over a first network to a destination node having a storage device. The origination packet includes a first fabric layer for transport through a first network, a command in a transport protocol with a storage Input/Output (I/O) request, with respect to the storage device at the destination node, and a host memory address. A destination packet is constructed including a second fabric layer for transport through a second network and the command in the transport protocol to send the storage I/O request and a transfer memory address that maps to the host memory address. The destination packet is sent over the second network to the destination node to perform the storage I/O request.


