# US 12,216,929 B2 · Storage system, memory management method, and management node

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

- Number: US 12,216,929 B2
- Document ID: US12216929B2
- Status: Granted
- Kind: B2
- Application number: 18/527,353
- Filed: 2023-12-03
- Published: 2024-03-21
- Granted: 2025-02-04
- Earliest claimed: 2020-04-28
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Wenlin Cui; Keji Huang; Peng Zhang; Siwei Luo
- Web page: https://patentgrep.com/patent/US12216929B2

## CPC

- G06F 3/0647: {Migration mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0649: {Lifecycle management}
- G06F 3/0673: {Single storage device}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 12/0802: Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F 2212/60: Details of cache memory
- 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)
- 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

A storage system includes multiple storage nodes. Each storage node includes a first storage device of a first type and a second storage device of a second type, and a performance level of the first storage device is higher than the second storage device. The globe cache includes a first tier comprising the first storage device in each storage node, and a second tier comprising the second storage device in each storage node. The first tier is for storing data with a high access frequency, and the second tier is for storing data with a low access frequency. The management node monitors an access frequency of target data stored in the first tier. When the access frequency of the target data is lower than a threshold, the management node instructs the first storage node to migrate the target data from the first tier to the second tier.

## Claims

### Claim 1

A storage system comprising:
a management node; and
multiple storage nodes, each of the multiple storage nodes including a first storage device of a first type and a second storage device of a second type, and a performance level of the first storage device being higher than a performance level of the second storage device, wherein the first storage device includes a dynamic random access memory (DRAM), and the second storage device includes a storage class memory (SCM),
wherein the management node is configured to:
create a globe cache comprising the first storage device and the second storage device in each storage node, wherein the globe cache includes a first tier comprising the first storage device in each storage node, and a second tier comprising the second storage device in each storage node, wherein the first tier is configured for storing data with a high access frequency, and the second tier is configured for storing data with a low access frequency, wherein both the first storage device and the second storage device in the globe cache have memory interfaces, and are configured to be directly accessed by a processor of each storage device through a memory bus;
monitor an access frequency of target data in the first tier, wherein the target data is located in the first storage device of a first storage node in the multiple storage nodes; and
instruct the first storage node to migrate the target data from the first tier to the second tier of the globe cache, when the access frequency of the target data is lower than a threshold.

### Claim 2 (depends on 1)

The storage system according to claim 1, wherein the management node is further configured to:
obtain status information of the first storage device and the second storage device in each storage node, wherein the status information comprises a type and a capacity of the first storage device and a type and a capacity of the second storage device, and the management node is configured to create the globe cache based on the status information.

### Claim 3 (depends on 1)

The storage system according to claim 1, wherein the globe cache includes multiple pages, each page having a globe address and a physical address, and wherein the management node is further configured to:
allocate a globe address for each page, the globe address indicating a location within the globe cache;
create a mapping relationship between the globe address and a physical address of each page, the physical address; and
record the mapping relationship into an index table.

### Claim 4 (depends on 3)

The storage system according to claim 3, wherein the first storage node comprises an IO controller, the IO controller stores the index table and communicates with a computing node, and is configured to:
receive first data and a first logical address of the first data from the computing node;
identify a first global address of the first data based on the first logical address;
determine whether a first physical address has been allocated to the first global address, based on the index table; and
in response to determining that the first physical address has been allocated to the first global address, write the first data into a physical space indicated by the first physical address.

### Claim 5 (depends on 4)

The storage system according to claim 4, wherein the IO controller is further configured to:
receive a data read request from the computing node, wherein the data read request comprises the first logical address;
identify the first global address based on the first logical address;
identify, based on the index table, the first physical address corresponding to the first global address; and
obtain the first data from the physical space indicated by the first physical address.

### Claim 6 (depends on 5)

The storage system according to claim 5, wherein the IO controller is further configured to:
identify, based on the first logical address, other data associated with the first data, wherein the other data is located in the second tier, and a logical address of the other data is consecutive to the first logical address; and
migrate the other data to the first tier.

### Claim 7 (depends on 4)

The storage system according to claim 4, wherein the computing node is located in one of the multiple storage nodes.

### Claim 8 (depends on 4)

The storage system according to claim 4, wherein the computing node is separate from the multiple storage nodes.

### Claim 9 (depends on 3)

The storage system according to claim 3, wherein the first storage node comprises an IO controller, the IO controller stores the index table and communicates with a computing node, and is configured to:
receive second data and a second logical address of the second data from the computing node;
identify a second global address of the second data based on the second logical address;
determine whether a second physical address has been allocated to the second global address, based on the index table; and
in response to determining that the second physical address has not been allocated to the second global address, allocate the second physical address from the first tier;
write the second data into a physical space indicated by the second physical address; and
record a mapping relationship between the second globe address and the second physical address.

### Claim 10 (depends on 3)

The storage system according to claim 3, wherein the storage system further includes a computing node, and the management node is further configured to provide globe addresses of all pages in the globe cache to the computing node.

### Claim 11 (depends on 10)

The storage system according to claim 10, wherein the first storage node comprises an IO controller, the IO controller stores the index table and communicates with the computing node, and is configured to:
receive third data and a third global address of the third data from the computing node, wherein the third global address is a set of the globe addresses of all pages in the global cache;
identify, a third physical address corresponding to the third global address, based on the index table; and
write the third data into a space indicated by the third physical address.

### Claim 12

A method of operating a storage system, wherein the storage system includes a management node and multiple storage nodes, each of the multiple storage nodes includes a first storage device of a first type and a second storage device of a second type, a performance level of the first storage device is higher than a performance level of the second storage device, the first storage device includes a dynamic random access memory (DRAM), and the second storage device includes a storage class memory (SCM), the method comprising:
creating, by the management node, a globe cache comprising the first storage device and the second storage device in each storage node, wherein the memory pool includes a first tier comprising the first storage device in each storage node, and a second tier comprising the second storage device in each storage node, wherein the first tier is configured for storing data with a high access frequency, and the second tier is configured for storing data with a low access frequency, wherein both the first storage device and the second storage device in the globe cache have memory interfaces, and are configured to be directly accessed by a processor of each storage device through a memory bus;
monitor, by the management node, an access frequency of target data in the first tier, wherein the target data is located in the first storage device of a first storage node in the multiple storage nodes; and
instruct, by the management node, the first storage node to migrate the target data from the first tier to the second tier within the globe cache, when the access frequency of the target data is lower than a threshold.

### Claim 13 (depends on 12)

The method according to claim 12, further comprising:
obtaining, by the management node, status information of the first storage device and the second storage device in each storage node, wherein the status information comprises a type and a capacity of the first storage device and a type and a capacity of the second storage device, and wherein the step of creating comprises creating the globe cache based on the status information.

### Claim 14 (depends on 12)

The method according to claim 12, wherein the globe cache includes multiple pages, each page has a globe address and a physical address, and the method further comprises:
allocating a globe address for each page, the globe address indicating a location within the globe cache;
creating a mapping relationship between the globe address and a physical address of each page, the physical address; and
recording the mapping relationship into an index table.

### Claim 15 (depends on 14)

The method according to claim 14, wherein the first storage node comprises an IO controller storing the index table, and the method further comprises:
receiving, by the IO controller, first data and a first logical address of the first data from the computing node;
identifying, by the IO controller, a first global address of the first data based on the first logical address;
determining, by the IO controller, whether a first physical address has been allocated to the first global address, based on the index table; and
in response to determining that the first physical address has been allocated to the first global address, writing, by the IO controller, the first data into a physical space indicated by the first physical address.

### Claim 16 (depends on 15)

The method according to claim 15, further comprising:
receiving, by the IO controller, a data read request from the computing node, wherein the data read request comprises the first logical address;
identifying, by the IO controller, the first global address based on the first logical address;
identifying, by the IO controller, based on the index table, the first physical address corresponding to the first global address; and
obtaining, by the IO controller, the first data from the physical space indicated by the first physical address.

### Claim 17 (depends on 16)

The method according to claim 16, further comprising:
identifying, by the IO controller based on the first logical address, other data associated with the first data, wherein a logical address of the other data is consecutive to the first logical address, and the other data is located in the second s tier; and
migrating, by the IO controller, the other data to the first tier.

### Claim 18 (depends on 14)

The method according to claim 14, wherein the first storage node comprises an IO controller storing the index table and communicating with a computing node, and the method further comprises:
receiving, by the IO controller, second data and a second logical address of the second data from the computing node;
identifying, by the IO controller, a second global address of the second data based on the second logical address;
determining, by the IO controller, whether a second physical address has been allocated to the second global address, based on the index table; and
in response to determining that the second physical address has not been allocated to the second global address, allocating, by the IO controller, the second physical address from the first tier;
writing, by the IO controller, the second data into a physical space indicated by the second physical address; and
recording, by the IO controller, a mapping relationship between the second globe address and the second physical address.

### Claim 19 (depends on 14)

The method according to claim 14, wherein the storage system further includes a computing node, and the method further comprises:
providing, by the management node, globe addresses of all pages in the globe cache to the computing node.

### Claim 20 (depends on 19)

The method according to claim 19, wherein the first storage node comprises an IO controller communicating with the computing node and storing the index table, and the method further comprises:
receiving, by the IO controller, third data and a third global address of the third data from the computing node, wherein the third global address is a set of the globe addresses of all pages in the global cache;
identifying, by the IO controller based on the index table, a third physical address corresponding to the third global address; and
writing, by the IO controller, the third data into a space indicated by the third physical address.
