NVMe Reservation Proxy for Multi-Host Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-host storage systems, managing reservations for access to shared storage devices across multiple communication stages with different protocols poses challenges, including compatibility issues and coordinated communication complexities, which can lead to data corruption if not managed properly.

Innovation Solution

A method is introduced to modify reservations at a first stage and tie them to another logical unit at the storage drive, using a reservation proxy to translate and modify reservation commands, ensuring compatibility and coordinated access across different stages and protocols.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If reservations are managed across multiple communication stages with different protocols, then storage device access coordination is achieved, but protocol compatibility issues and communication complexity increase

Engineering Contradiction:
Improvedata integrityVSAvoidcommunication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A reservation proxy is introduced as an intermediary component between the first stage (host controller) and second stage (storage device). The proxy receives reservation commands from the first stage, translates them into appropriate protocols for the second stage, and manages the reservation state. This intermediary resolves protocol incompatibility between different stages while maintaining data integrity through coordinated reservation management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If protocol translation is implemented between stages, then compatibility is improved, but processing overhead increases

Engineering Contradiction:
Improveprotocol compatibilityVSAvoidprocessing overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The reservation proxy is configured with pre-established protocol translation rules and mappings between different communication protocols. Common protocol translations are prepared in advance, allowing the proxy to quickly translate reservation commands without performing complex real-time protocol analysis. This preliminary preparation reduces processing overhead while maintaining broad protocol compatibility.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple host controllers access shared storage devices, then system availability is improved, but reservation management complexity increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidreservation management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The reservation proxy serves as a centralized mediator that receives reservation requests from multiple host controllers, maintains a unified reservation state for shared storage devices, and coordinates access among competing hosts. This single point of control simplifies reservation management complexity while enabling multiple hosts to access storage devices with improved system availability through proper arbitration.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3485364B1Reservations over multiple paths on NVME over fabrics
Publication Date: 2022.11.30 PURE STORAGE INC
  • EP3485364B1 patent drawingFigure 1
  • EP3485364B1 patent drawingFigure 2
  • EP3485364B1 patent drawingFigure 3

AI summary

A method includes receiving, by a storage drive and from a storage controller, a modified first reservation command including a first logical unit identifier. The first reservation command includes a first host identifier to identify a first host controller was previously received by the storage controller from the first host controller. The first reservation command was modified by the storage controller to replace the first host identifier with the first logical unit identifier. The method also includes responsive to receiving the modified first reservation command, identifying, by the storage drive, a first logical unit of storage based on the first logical unit identifier of the modified reservation command. The method includes granting, by the storage drive, a reservation for access to the storage drive on behalf of the first host controller by associating the reservation for the first logical unit with a second logical unit of storage.