IP Library Granted Patent US 11,861,204
Granted Patent B2
US 11,861,204 · App. 17/510,388 · Granted Jan 2, 2024

Storage system, memory management method, and management node

Inventors: Wenlin Cui (Chengdu, CN); Keji Huang (Chengdu, CN); Peng Zhang (Chengdu, CN); Siwei Luo (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F3/0647G06F3/0604G06F3/0673G06F12/0802G06F2212/60
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 11,861,204
App. No.
17/510,388
Granted
Jan 2, 2024
Kind
B2
Abstract

A storage system includes a management node and multiple storage nodes. Each storage node includes a first storage device of a first type (e.g., DRAM) and a second storage device of a second type (e.g., SCM), and a performance level of the first storage device is higher than the second storage device. The management node creates a globe cache including 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 of the globe cache.

Claims (75)

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, a second storage device of a second type, and a third storage device of a third type, a performance level of the first storage device being higher than a performance level of the second storage device, a performance level of the second storage device being higher than a performance level of the third storage device, wherein both the first storage device and the second storage device provide a cache interface accessed by a central processing unit (CPU), and the third storage device is configured to persistently store data;

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 medium access frequency, and wherein the storage system further provides a storage pool for storing data with a low access frequency, the storage pool containing the third storage device in each storage node;

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

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

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

9. 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.

10. 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.

11. 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.

12. A method of operating a storage system including, a management node and multiple storage nodes, each of the multiple storage nodes including a first storage device of a first type a second storage device of a second type, a third storage device of a third type, a performance level of the first storage device being higher than a performance level of the second storage device, a performance level of the second storage device being higher than a performance level of the third storage device, wherein both the first storage device and the second storage device provide a cache interface accessed by a central processing unit (CPU), and wherein the third storage device is configured to persistently store data, 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 medium access frequency, and wherein the storage system further provides a storage pool for storing data with a low access frequency, the storage pool containing the third storage device in each storage node;

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.

13. 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.

14. The method according to claim 12 , wherein the globe cache includes multiple pages, each page having 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.

15. 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.

16. 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.

17. 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.

18. 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.

19. 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.

20. 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 TO 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 TO controller based on the index table, a third physical address corresponding to the third global address; and

writing, by the TO controller, the third data into a space indicated by the third physical address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2023
From: CUI, WENLIN; HUANG, KEJI; ZHANG, PENG; LUO, SIWEI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 065442/0173 →
Priority Claims (2)
CN 202010348770.0 · Apr 28, 2020 · national
CN 202010625111.7 · Jul 1, 2020 · national
Continuity (2)
Continuation PCTCN2020119857 · Oct 7, 2020
Related Publication 20220057954A1 · Feb 24, 2022