IP Library › Granted Patent US 12,477,038
Granted Patent B2
US 12,477,038 · App. 18/485,942 · Granted Nov 18, 2025

Data access system and method, device, and network adapter

Inventors: Can Chen (Chengdu, CN); Fanlu Jiang (Chengdu, CN); Qiming Xu (Chengdu, CN); Zhaojiao Han (Shenzhen, CN); Bowei Yu (Chengdu, CN); Jianye Yao (Chengdu, CN)
Assignee: Huawei Technologies Co., Ltd.
H04L67/1097G06F13/28G06F2213/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,477,038
App. No.
18/485,942
Filed
Oct 12, 2023
Granted
Nov 18, 2025
Kind
B2
Art Unit
2454
USPC
709/212
Abstract

In one example method, a client device sends a first packet to a first storage device, to request that target data can be written into the first storage device, where the first packet includes a logical address into which the target data needs to be written. A front-end network adapter of the first storage device has a capability of parsing the first packet, and can process the first packet. The front-end network adapter of the first storage device writes the target data into the first storage device based on an indication of the first packet. The front-end network adapter of the first storage device generates metadata, and records a correspondence between the logical address of the target data and the metadata, where the metadata can indicate a physical address at which the target data is stored in the first storage device.

Claims (89)

1 . A first storage device comprising a front-end network adapter, wherein the front-end network adapter comprises:

at least one processor; and

one or more memories coupled to the at least one processor and storing programming instructions for execution by the at least one processor to:

receive a first packet from a client device, wherein the first packet is for requesting to write first target data into the first storage device;

obtain a logical address of the first target data from the first packet;

write the first target data into the first storage device;

generate metadata;

record a relationship between the logical address of the first target data and the metadata, wherein the metadata indicates a physical address at which the first target data is stored in the first storage device;

send a mirror data write command to a second storage device, wherein the mirror data write command is for requesting to write a copy of the first target data, and the mirror data write command comprises the copy of the first target data and the logical address of the first target data;

receive a second packet comprising a data read command, the data read command comprising a logical address of second target data;

determine, based on the logical address of the second target data, whether a home node of the second target data is the first storage device;

in response to determining that the home node of the second target data is not the first storage device, send the data read command to the second storage device; and

receive the second target data from the second storage device.

2 . The first storage device according to claim 1 , wherein the first storage device comprises an internal memory, and the internal memory stores index information, and wherein the programming instructions are for execution by the at least one processor to:

create a correspondence between a key and a value in the index information, wherein the value is the metadata or an address of the metadata, and the key is determined based on the logical address of the first target data.

3 . The first storage device according to claim 1 , wherein the programming instructions are for execution by the at least one processor to:

receive the first packet;

parse the first packet to obtain a data write command based on a remote direct memory access (RDMA) protocol; and

parse the data write command to obtain the logical address that is of the first target data and that is carried in the data write command.

4 . The first storage device according to claim 1 , wherein the first packet is based on any one of the following protocols:

infiniband (IB), remote direct memory access over converged Ethernet (ROCE), and an Internet wide area remote direct memory access protocol (iWARP).

5 . The first storage device according to claim 1 , wherein the first storage device comprises at least two switch network adapters, the first storage device is connected to the second storage device through the at least two switch network adapters, and the programming instructions are for execution by the at least one processor to:

select a switch network adapter from the at least two switch network adapters based on a load balancing policy; and

send the mirror data write command to the second storage device through the selected switch network adapter.

6 . The first storage device according to claim 5 , wherein the front-end network adapter of the first storage device and the switch network adapters of the first storage device are deployed in a centralized manner.

7 . The first storage device according to claim 1 , wherein the programming instructions are for execution by the at least one processor to:

receive a third packet from the client device to read the first target data, wherein the third packet comprises the logical address of the first target data;

obtain the metadata based on the logical address of the first target data; and

obtain the first target data from the first storage device based on the metadata.

8 . The first storage device according to claim 7 , wherein the programming instructions are for execution by the at least one processor to:

receive the third packet;

parse the third packet to obtain an additional data read command based on a RDMA protocol; and

parse the additional data read command to obtain the logical address that is of the first target data and that is carried in the additional data read command.

9 . The first storage device according to claim 7 , wherein before obtaining the metadata based on the logical address of the first target data, the programming instructions are for execution by the at least one processor to:

determine, based on the logical address of the first target data, that a home node of the first target data is the first storage device.

10 . A data access method, comprising:

receiving, by a front-end network adapter of a first storage device, a first packet from a client device, wherein the first packet is for requesting to write first target data into the first storage device;

obtaining, by the front-end network adapter of the first storage device, a logical address of the first target data from the first packet;

writing the first target data into the first storage device;

generating metadata;

recording a relationship between the logical address of the first target data and the metadata, wherein the metadata describes a physical address at which the first target data is stored in the first storage device;

sending, by the front-end network adapter of the first storage device, a mirror data write command to a second storage device, wherein the mirror data write command is for requesting to write a copy of the first target data, and the mirror data write command comprises the copy of the first target data and the logical address of the first target data;

receiving a second packet comprising a data read command, the data read command comprising a logical address of second target data;

determining, based on the logical address of the second target data, whether a home node of the second target data is the first storage device;

in response to determining that the home node of the second target data is not the first storage device, sending the data read command to the second storage device; and

receiving the second target data from the second storage device.

11 . The method according to claim 10 , wherein the recording a relationship between the logical address of the first target data and the metadata comprises:

creating, by the front-end network adapter of the first storage device, a correspondence between a key and a value in index information in an internal memory of the first storage device, wherein the value is the metadata or an address of the metadata, and the key is determined based on the logical address of the first target data.

12 . The method according to claim 10 , wherein the obtaining, by the front-end network adapter of the first storage device, a logical address of the first target data from the first packet comprises:

parsing, by the front-end network adapter of the first storage device, the first packet to obtain a data write command based on a remote direct memory access (RDMA) protocol; and

parsing, by the front-end network adapter of the first storage device, the data write command to obtain the logical address that is of the first target data and that is carried in the data write command.

13 . The method according to claim 10 , wherein the first storage device comprises at least two switch network adapters, the first storage device is connected to the second storage device through the at least two switch network adapters, and the sending, by the front-end network adapter of the first storage device, a mirror data write command to the second storage device comprises:

selecting, by the front-end network adapter of the first storage device, a switch network adapter from the at least two switch network adapters based on a load balancing policy; and

sending, by the front-end network adapter of the first storage device, the mirror data write command to the second storage device through the selected switch network adapter.

14 . The method according to claim 10 , further comprising:

receiving, by the front-end network adapter of the first storage device, a third packet from the client device, wherein the third packet is for requesting to read the first target data;

obtaining, by the front-end network adapter of the first storage device, the logical address of the first target data from the third packet;

obtaining, by the front-end network adapter of the first storage device, the metadata based on the logical address of the first target data, wherein the metadata is for describing the physical address at which the first target data is stored in the first storage device; and

obtaining, by the front-end network adapter of the first storage device, the first target data from the first storage device based on the metadata.

15 . A network adapter as a front-end network adapter of a first storage device, comprises:

an interface, configured to perform data transmission;

at least one processor; and

one or more memories coupled to the at least one processor and storing programming instructions for execution by the at least one processor to:

receive a first packet from a client device, wherein the first packet is for requesting to write first target data into the first storage device;

obtain a logical address of the first target data from the first packet;

write the first target data into the first storage device;

generate metadata;

record a relationship between the logical address of the first target data and the metadata, wherein the metadata describes a physical address at which the first target data is stored in the first storage device;

send a mirror data write command to a second storage device, wherein the mirror data write command is for requesting to write a copy of the first target data, and the mirror data write command comprises the copy of the first target data and the logical address of the first target data;

receive a second packet comprising a data read command, the data read command comprising a logical address of second target data;

determine, based on the logical address of the second target data, whether a home node of the second target data is the first storage device;

in response to determining that the home node of the second target data is not the first storage device, send the data read command to the second storage device; and

receive the second target data from the second storage device.

16 . The network adapter according to claim 15 , wherein the programming instructions are for execution by the at least one processor to:

create a correspondence between a key and a value in index information in an internal memory of the first storage device, wherein the value is the metadata or an address of the metadata, and the key is determined based on the logical address of the first target data.

17 . The network adapter according to claim 15 , wherein the programming instructions are for execution by the at least one processor to:

parse the first packet to obtain a data write command based on a remote direct memory access (RDMA) protocol; and

parse the data write command to obtain the logical address that is of the first target data and that is carried in the data write command.

18 . The network adapter according to claim 15 , wherein the first storage device comprises at least two switch network adapters, the first storage device is connected to the second storage device through the at least two switch network adapters, and the programming instructions are for execution by the at least one processor to:

select a switch network adapter from the at least two switch network adapters based on a load balancing policy; and

send the mirror data write command to the second storage device through the selected switch network adapter.

19 . The network adapter according to claim 15 , wherein the programming instructions are for execution by the at least one processor to:

receive a third packet from the client device to read the first target data, wherein the third packet comprises the logical address of the first target data;

obtain the metadata based on the logical address of the first target data; and

obtain the first target data from the first storage device based on the metadata.

20 . The network adapter according to claim 19 , wherein the programming instructions are for execution by the at least one processor to:

receive the third packet;

parse the third packet to obtain an additional data read command based on a RDMA protocol; and

parse the additional data read command to obtain the logical address that is of the first target data and that is carried in the additional data read command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2025
From: CHEN, CAN; JIANG, FANLU; XU, QIMING; HAN, ZHAOJIAO; YU, BOWEI; YAO, JIANYE
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 072044/0112 →
Priority Claims (2)
CN 202110399947.4 · Apr 14, 2021 · national
CN 202110697375.8 · Jun 23, 2021 · national
Continuity (2)
Continuation PCTCN2022084322 · Mar 31, 2022
Related Publication 20240039995A1 · Feb 1, 2024
References Cited (27)
US 7783788B1 · Quinn · 2010 [cited by examiner]
US 10831386B2 · Voigt · 2020 [cited by examiner]
US 10877922B2 · Voigt · 2020 [cited by examiner]
US 11089105B1 · Karumbunathan · 2021 [cited by examiner]
US 20140012936A1 · Aikoh · 2014 [cited by examiner]
US 20140344488A1 · Flynn · 2014 [cited by examiner]
US 20150261633A1 · Usgaonkar et al. · 2015 [cited by applicant]
US 20180188974A1 · Cayton · 2018 [cited by examiner]
US 20180341429A1 · Bolkhovitin · 2018 [cited by examiner]
US 20180341547A1 · Bolkhovitin · 2018 [cited by examiner]
US 20180341548A1 · Bolkhovitin · 2018 [cited by examiner]
US 20180341549A1 · Bolkhovitin · 2018 [cited by examiner]
US 20190294339A1 · Bolkhovitin · 2019 [cited by examiner]
US 20200133909A1 · Hefty et al. · 2020 [cited by applicant]
US 20200285591A1 · Luo · 2020 [cited by examiner]
US 20200320014A1 · Luo · 2020 [cited by examiner]
US 20200326891A1 · Luo · 2020 [cited by examiner]
US 20220113913A1 · Niell · 2022 [cited by examiner]
US 20220400069A1 · Xu · 2022 [cited by examiner]
US 20230409514A1 · Bshara · 2023 [cited by examiner]
CN 103902486A · 2014 [cited by applicant]
CN 103929415A · 2014 [cited by applicant]
CN 103942087A · 2014 [cited by applicant]
CN 112204513A · 2021 [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/CN2022/084322, mailed on Jun. 16, 2022, 16 pages (with English translation). [cited by applicant]
Extended European Search Report in European Appln. No. 22787387.4, mailed on Aug. 23, 2024, 7 pages. [cited by applicant]
EP Communication Pursuant to Article 94(3) EPC in European Appln. No. 22787387.4, mailed on Sep. 26, 2025, 8 pages. [cited by applicant]