Host Disk Access Path Determination via Virtual Address Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In storage arrays, the increased number of IO request forwardings leads to I/O access delays due to the necessity of forwarding IO requests between controllers, as each disk is accessed only by its corresponding controller.
Innovation Solution
A disk access method where a host generates IO requests with a logical unit number (LUN) and virtual address, determining the corresponding virtual address space and access path to directly deliver the request to the appropriate controller, thereby avoiding unnecessary forwarding and optimizing access paths based on load balancing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If IO requests are forwarded between controllers to access disks belonging to different controllers, then storage array can provide data storage service for host, but I/O access delay increases
Solution Approach 1:
The host determines the target controller based on the virtual address before sending the IO request, and establishes a direct access path in advance. This preliminary determination of the access path eliminates the need for intermediate forwarding, allowing the IO request to be sent directly to the correct controller without unnecessary delays.
Solution Approach 2:
The patent introduces a virtual address space mapping mechanism that acts as an intermediary between the host and physical disks. By mapping virtual addresses to specific controllers, the system enables direct access without requiring intermediate forwarding through other controllers, thus reducing I/O access delay while maintaining storage service capability.
2Reliability
If multiple controllers are used to manage different disks, then data access security and reliability are improved, but IO request forwarding complexity increases
Solution Approach 1:
The host performs preliminary determination of the target controller based on the virtual address before sending IO requests. This advance identification of the responsible controller eliminates the need for complex runtime coordination and forwarding logic, simplifying the system while maintaining multi-controller reliability.
Solution Approach 2:
Each controller is assigned specific virtual address ranges that map to its managed disks. This local quality assignment allows controllers to independently handle IO requests within their designated address ranges without requiring complex inter-controller coordination, thus maintaining reliability while reducing system complexity.
3Loss of time
If IO requests are directly delivered to the target controller based on virtual address mapping, then I/O access delay is reduced, but path determination complexity increases
Solution Approach 1:
The virtual address to controller mapping relationship is predetermined and stored in the host before actual data access operations. This preliminary setup of the mapping table allows for rapid direct lookup during IO operations, reducing access delay without requiring complex real-time path determination logic.
Solution Approach 2:
The host pre-establishes the mapping relationship between virtual addresses and target controllers in advance. This preliminary configuration enables simple direct routing decisions during actual IO operations, reducing path determination complexity while achieving fast direct access to the target controller.
Data Source
AI summary
A disk access method is provided. The method includes: generating an input/output IO request, where the IO request carries a logical unit number LUN and a virtual address of to-be-accessed data; finding, based on the LUN, an LU to be accessed, and determining, based on the virtual address, a virtual address space into which the virtual address falls; determining, based on the determined virtual address space, an access path corresponding to the virtual address space (S230); and delivering, along the access path, the IO request to a controller pointed by the access path.


