NVMe I/O Queue Management for Data Tiering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multi-tiered storage systems face inefficiencies in identifying and moving data to appropriate storage tiers due to lack of mechanisms for in-band NVMe I/O queue architecture and storage controller hints, leading to suboptimal data placement and increased latency.
Innovation Solution
Creating special-purpose NVMe I/O queues between the host and storage target device for hinting efficient data placement across tiers, allowing for adjustments in current priorities of data extents based on anticipated demand, using in-band NVMe I/O queue management to facilitate efficient data movement.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional multi-tiered storage systems are used without in-band NVMe I/O queue architecture, then device complexity is reduced, but data placement efficiency deteriorates and latency increases
Solution Approach 1:
The patent introduces an intermediary mechanism (in-band NVMe I/O queue architecture with storage controller hints) that mediates between the host and storage system to enable efficient data placement. The I/O queues act as intermediaries carrying priority information from the host to the storage controller, which then uses this information to make intelligent data placement decisions across storage tiers without requiring complex external management systems.
Solution Approach 2:
The NVMe I/O queue architecture serves multiple functions simultaneously: it manages I/O requests, carries priority information, enables data placement decisions, and provides storage controller hints all through a unified protocol. This multi-functionality improves data placement efficiency without proportionally increasing device complexity, as the same I/O infrastructure handles multiple tasks.
2Loss of time
If data movement adjustments are performed without in-band hinting mechanisms, then system simplicity is maintained, but latency increases and application performance deteriorates
Solution Approach 1:
The patent implements preliminary action by allowing the host to set priority information in I/O queues before data access operations. This advance configuration enables the storage controller to proactively move data to appropriate tiers before actual access is needed, reducing latency. The priority information is established in advance through the in-band NVMe interface, allowing proactive data placement decisions.
3Productivity
If traditional SCSI/SATA protocols are used instead of NVMe, then device compatibility is improved, but I/O performance and CPU utilization deteriorate
Solution Approach 1:
The patent leverages parameter changes in the NVMe protocol compared to traditional SCSI/SATA protocols. NVMe introduces new parameters such as multiple I/O queues, priority fields, and in-band hinting capabilities that enable higher I/O performance and better CPU utilization. These parameter changes in the protocol specification allow for more efficient parallel processing and reduced latency while maintaining adaptability through the standardized NVMe interface.
Data Source
AI summary
A computer-implemented method according to one embodiment includes causing a plurality of I/O queues to be created between an initiator and a storage target device. The created I/O queues are reserved for I/O requests for which adjustments of current priorities of extents of data associated with the I/O requests are to be performed. The method further includes determining identifying information of an I/O request sent from the initiator to the storage target device and determining whether the I/O request was sent from the initiator to the storage target device using one of the created I/O queues. In response to a determination that the I/O request was sent using a first of the created I/O queues having one of the adjustments associated therewith, a tiering manager of the storage target device is instructed to perform the adjustment on the current priority of the extent of data associated with the I/O request.


