# US 12,602,344 B2 · Network storage method, storage system, data processing unit, and computer system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,602,344 B2
- Document ID: US12602344B2
- Status: Granted
- Kind: B2
- Application number: 18/647,189
- Filed: 2024-04-26
- Published: 2024-08-15
- Granted: 2026-04-14
- Earliest claimed: 2021-10-27
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Guo Qin
- Web page: https://patentgrep.com/patent/US12602344B2

## CPC

- G06F 13/4221: {being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus}
- H04L 67/1004: Server selection for load balancing
- G06F 3/061: {Improving I/O performance}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0679: {Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]}
- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 67/566: Grouping or aggregating service requests, e.g. for unified processing
- H04L 69/08: Protocols for interworking; Protocol conversion
- H04L 69/14: Multichannel or multilink protocols
- G06F 2213/0026: PCI express
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

This disclosure is related to a network storage method, a storage system, a data processing unit, and a computer system. The network storage method is applied to the storage system. The storage system includes a host, a data processing unit, and a storage device. The data processing unit is connected to the host through a PCIe interface. The storage device includes a plurality of controllers and a plurality of logical units. The method includes: The host sends an input/output request to the data processing unit, where the input/output request is for accessing one of the plurality of logical units. The data processing unit determines, from the plurality of controllers, a controller configured to process the input/output request, to implement load balancing between the plurality of controllers, and sends the input/output request to the determined controller. Multipath software does not need to be installed in the host.

## Claims

### Claim 1

A method, applied to a storage system comprising a host, a data processing unit, and a storage device, the data processing unit being external to the host and connected to the host through a peripheral component interconnect express (PCIe) interface, the storage device comprising a plurality of controllers and a plurality of logical units, and the method comprising:
sending, by the host, an input/output request to the data processing unit by using a non-volatile memory express (NVMe) protocol, wherein the input/output request requests to access a first logical unit of the plurality of logical units; and
selecting, by the data processing unit from the plurality of controllers, a controller for processing the input/output request, to implement load balancing between the plurality of controllers, and sending, by the data processing unit using an initiator of the data processing unit, the input/output request to the determined controller by using an NVMe over Fabrics (NVMe oF) protocol.

### Claim 2 (depends on 1)

The method according to claim 1, wherein selecting, by the data processing unit from the plurality of controllers, the controller for processing the input/output request comprises:
selecting, by the data processing unit from the plurality of controllers based on a hash algorithm, the controller for processing the input/output request, to implement load balancing between the plurality of controllers.

### Claim 3

A storage system, comprising:
a host, comprising at least one first processor;
a data processing unit comprising an initiator; and
a storage device;
wherein the data processing unit is external to the host and connected to the host through a peripheral component interconnect express (PCIe) interface, and the storage device comprises a plurality of controllers and a plurality of logical units;
wherein the at least one first processor of the host is configured to send an input/output request to the data processing unit by using a non-volatile memory express (NVMe) protocol, wherein the input/output request requests to access a first logical unit of the plurality of logical units; and
wherein the data processing unit comprises circuitry configured to select, from the plurality of controllers, a controller for processing the input/output request, to implement load balancing between the plurality of controllers, and to send, using the initiator of the data processing unit, the input/output request to the determined controller by using an NVMe over Fabrics (NVMe oF) protocol.

### Claim 4 (depends on 3)

The system according to claim 3, wherein determining selecting, from the plurality of controllers, the controller for processing the input/output request comprises:
determining, from the plurality of controllers based on a hash algorithm, the controller for processing the input/output request, to implement load balancing between the plurality of controllers.

### Claim 5 (depends on 3)

The system according to claim 3, wherein the data processing unit comprises circuitry further configured to:
send a report command to the storage device, wherein the report command indicates to the storage device to send, to the data processing unit, information about a logical unit corresponding to the host;
receive the information about the logical unit corresponding to the host sent by the controllers in the storage device; and
generate, based on the information about the logical unit corresponding to the host, a corresponding device for the logical unit corresponding to the host, and send information about the generated device to the host.

### Claim 6 (depends on 5)

The system according to claim 5, wherein the at least one first processor of the host is further configured to:
generate, based on the information about the device sent by the data processing unit, a virtual storage device corresponding to the device, wherein the virtual storage device is provided for an application in the host to access.

### Claim 7

A data processing unit, comprising:
an interface, configured to communicate with a host, wherein the data processing unit is external to the host; and
at least one integrated circuit, configured to:
receive an input/output request sent by the host by using a non-volatile memory express (NVMe) protocol, wherein the data processing unit is connected to the host through a peripheral component interconnect express (PCIe) interface, the input/output request requests to access a first logical unit in a storage device, and the storage device comprises a plurality of logical units and a plurality of controllers; and
select, from the plurality of controllers, a controller for processing the input/output request, to implement load balancing between the plurality of controllers, and send, using an initiator of the data processing unit, the input/output request to the determined controller by using an NVMe over Fabrics (NVMe oF) protocol.

### Claim 8 (depends on 7)

The data processing unit according to claim 7, wherein the at least one integrated circuit is further configured to:
select, from the plurality of controllers based on a hash algorithm, the controller for processing the input/output request, to implement load balancing between the plurality of controllers.

### Claim 9 (depends on 7)

The data processing unit according to claim 7, wherein the at least one integrated circuit is further configured to:
send a report command to the storage device, wherein the report command indicates to the storage device to send, to the data processing unit, information about a logical unit corresponding to the host;
receive the information about the logical unit corresponding to the host sent by the controllers in the storage device; and
generate, based on the information about the logical unit corresponding to the host, a corresponding device for the logical unit corresponding to the host, and send information about the generated device to the host.

### Claim 10 (depends on 1)

The method according to claim 1, wherein the initiator is an NVMe-oF initiator.

### Claim 11 (depends on 3)

The storage system according to claim 3, wherein the initiator is an NVMe-oF initiator.

### Claim 12 (depends on 7)

The data processing unit according to claim 7, wherein the initiator is an NVMe-oF initiator.

### Claim 13 (depends on 1)

The method according to claim 1, wherein each controller comprises an initiator target of the initiator of the data processing unit.

### Claim 14 (depends on 3)

The storage system according to claim 3, wherein each controller comprises an initiator target of the initiator of the data processing unit.

### Claim 15 (depends on 3)

The storage system according to claim 3, wherein a mirror channel exists between at least two controllers of the plurality of controllers.

### Claim 16 (depends on 3)

The storage system according to claim 3, wherein the data processing unit communicates with the storage device through a switch.

### Claim 17 (depends on 1)

The method according to claim 1, wherein the data processing unit communicates with the storage device through a switch.

### Claim 18 (depends on 1)

The method according to claim 1, wherein each controller of the plurality of controllers has a separate path to the data processing unit.

### Claim 19 (depends on 3)

The storage system according to claim 3, wherein all controllers of the plurality of controllers are able to access all of a global storage pool of the storage device.

### Claim 20 (depends on 7)

The data processing unit according to claim 7, wherein each logical unit of the plurality of logical units is able to be accessed by all controllers of the plurality of controllers.
