IP Library › Granted Patent US 11,880,579
Granted Patent B2
US 11,880,579 · App. 17/183,045 · Granted Jan 23, 2024

Data migration method and apparatus

Inventor: Yu Lin (Chengdu, CN)
Assignee: Huawei Technologies Co., Ltd.
G06F3/0647G06F3/067G06F3/0619G06F3/0653G06F3/0659G06F3/0683
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,880,579
App. No.
17/183,045
Granted
Jan 23, 2024
Kind
B2
Abstract

A data migration method and a storage device are provided. The device obtains data access temperature of a first storage unit group, which is determined by data access temperature of each storage unit, and the data access temperature of each storage unit is determined by a logical unit in which the storage unit is located. When the data access temperature of the first storage unit group reaches a specified threshold, the storage device migrates data in the first storage unit group to a second storage unit group. Access performance of the second storage unit group is higher than access performance of the first storage unit group. According to this application, accuracy of collecting statistics about data access temperature can be improved, thereby improving hierarchical storage performance of a storage device.

Claims (74)

1. A data migration method comprising:

obtaining, by a storage device, data access temperature of a first storage unit group,

wherein memory blocks from different solid-state disks form the first storage unit group, and the memory blocks are divided into a data group comprising at least two memory blocks for data and a check group comprising at least one memory block for check data in the data,

wherein the first storage unit group comprises a plurality of storage units, each storage unit is divided into a finer granularity, the finer granularity makes a composition unit of a block, the block belongs to a logical unit, and the logical unit is logical storage space provided by the storage device and accessible by a host, and

wherein the data access temperature of the first storage unit group is obtained by adding up data access temperature of a number of storage units within one of the blocks belonging to the first storage unit group multiplied by the number of storage units belonging to the one of the blocks of the first storage unit group, wherein each one of the blocks of the first storage unit group corresponds to a different logical block address, and the data access temperature of each storage unit which is determined by the storage device, is equal to data access temperature of the block belonging to the logical unit in which a storage unit is located;

wherein the block is associated with a plurality of logical units, and each logical unit is associated with a plurality of storage unit groups to which the first storage unit group belongs;

wherein statistics about a quantity of times of reading or writing data of the block is collected as a monitoring object to determine the data access temperature of the block; and

in response to the data access temperature of the first storage unit group reaching a threshold, migrating, by the storage device, data in the first storage unit group to a second storage unit group, wherein access performance of the second storage unit group is higher than access performance of the first storage unit group.

2. The method according to claim 1 , wherein the storage device collects the data access temperature by using the block belonging to the logical unit as a unit.

3. The method according to claim 1 , wherein the first storage unit group comprises a first storage unit, and the method further comprises:

receiving, by the storage device, a data write request, wherein the data write request is used to write data into a second storage unit, and a storage unit group to which the second storage unit belongs is different from the first storage unit group;

writing, by the storage device, the data into the first storage unit, and storing a correspondence between an actual address of the data and a logical address of the first storage unit; and

wherein the obtaining the data access temperature of the first storage unit group comprises:

updating, by the storage device, data access temperature of the first storage unit based on data access temperature of the second storage unit; and

obtaining, by the storage device, the data access temperature of the first storage unit group based on the updated data access temperature of the first storage unit.

4. The method according to claim 3 , wherein a third storage unit group comprises the second storage unit, and the method further comprises:

in response to the second storage unit being released, resetting, by the storage device, the data access temperature of the second storage unit;

obtaining, by the storage device, data access temperature of the third storage unit group based on the reset data access temperature of the second storage unit; and

in response to the data access temperature of the third storage unit group reaching a threshold, migrating, by the storage device, data in the third storage unit group to a fourth storage unit group, wherein access performance of the fourth storage unit group is higher than access performance of the third storage unit group.

5. A storage device, comprising a processor and a first storage unit group, wherein the first storage unit group comprises a plurality of storage units, each storage unit is divided into a finer granularity, the finer granularity makes a composition unit of a block, the block belongs to a logical unit, the logical unit is logical storage space provided by the storage device and accessible by a host, wherein the processor is configured to:

obtain data access temperature of the first storage unit group,

wherein memory blocks from different solid-state disks form the first storage unit group, and the memory blocks are divided into a data group comprising at least two memory blocks for data and a check group comprising at least one memory block for check data in the data,

wherein the data access temperature of the first storage unit group is obtained by adding up data access temperature of a number of storage units within one of the blocks belonging to the first storage unit group multiplied by the number of storage units belonging to the one of the blocks of the first storage unit group, wherein each one of the blocks of the first storage unit group corresponds to a different logical block address, and the data access temperature of each storage unit which is determined by the storage device, is equal to data access temperature of the block belonging to the logical unit in which a storage unit is located;

wherein the block is associated with a plurality of logical units, and each logical unit is associated with a plurality of storage unit groups to which the first storage unit group belongs;

wherein statistics about a quantity of times of reading or writing data of the block is collected as a monitoring object to determine the data access temperature of the block; and

migrate data in the first storage unit group to a second storage unit group, wherein access performance of the second storage unit group is higher than access performance of the first storage unit group, in response to the data access temperature of the first storage unit group reaching a threshold.

6. The storage device according to claim 5 , wherein the storage device collects the data access temperature by using the block belonging to the logical unit as a unit.

7. The storage device according to claim 5 , wherein the first storage unit group comprises a first storage unit, and wherein the processor is further configured to receive a data write request, wherein the data write request is used to write data into a second storage unit, and a storage unit group to which the second storage unit belongs is different from the first storage unit group; and write the data into the first storage unit, and store a correspondence between an actual address of the data and a logical address of the first storage unit, and wherein the processor is further configured to:

update data access temperature of the first storage unit based on data access temperature of the second storage unit; and

obtain the data access temperature of the first storage unit group based on the updated data access temperature of the first storage unit.

8. The storage device according to claim 7 , wherein a third storage unit group comprises the second storage unit, and the processor is further configured to:

reset the data access temperature of the second storage unit, in response to the second storage unit being released;

obtain data access temperature of the third storage unit group based on the reset data access temperature of the second storage unit; and

migrate data in the third storage unit group to a fourth storage unit group, in response to the data access temperature of the third storage unit group reaching a threshold, wherein access performance of the fourth storage unit group is higher than access performance of the third storage unit group.

9. A non-transitory computer readable storage medium having stored thereon processor executable instructions which, when executed by a processor of a storage device, cause the processor to control the storage device to perform a method comprising:

obtaining data access temperature of a first storage unit group,

wherein memory blocks from different solid-state disks form the first storage unit group, and the memory blocks are divided into a data group comprising at least two memory blocks for data and a check group comprising at least one memory block for check data in the data,

wherein the first storage unit group comprises a plurality of storage units, each storage unit is divided into a finer granularity, the finer granularity makes a composition unit of a block, the block belongs to a logical unit, and the logical unit is logical storage space provided by the storage device and accessible by a host, and

wherein the data access temperature of the first storage unit group is obtained by adding up data access temperature of a number of storage units within one of the blocks belonging to the first storage unit group multiplied by the number of storage units belonging to the one of the blocks of the first storage unit group, wherein each one of the blocks of the first storage unit group corresponds to a different logical block address, and the data access temperature of each storage unit which is determined by the storage device, is equal to data access temperature of the block belonging to the logical unit in which a storage unit is located;

wherein the block is associated with a plurality of logical units, and each logical unit is associated with a plurality of storage unit groups to which the first storage unit group belongs;

wherein statistics about a quantity of times of reading or writing data of the block is collected as a monitoring object to determine the data access temperature of the block; and

in response to the data access temperature of the first storage unit group reaching a threshold, migrating data in the first storage unit group to a second storage unit group, wherein access performance of the second storage unit group is higher than access performance of the first storage unit group.

10. The non-transitory computer readable storage medium according to claim 9 , wherein the storage device collects the data access temperature by using the block belonging to the logical unit as a unit.

11. The non-transitory computer readable storage medium according to claim 9 , wherein the first storage unit group comprises a first storage unit, and the method further comprises:

receiving a data write request, wherein the data write request is used to write data into a second storage unit, and a storage unit group to which the second storage unit belongs is different from the first storage unit group;

writing the data into the first storage unit, and storing a correspondence between an actual address of the data and a logical address of the first storage unit; and

wherein the obtaining the data access temperature of the first storage unit group comprises:

updating data access temperature of the first storage unit based on data access temperature of the second storage unit; and

obtaining the data access temperature of the first storage unit group based on the updated data access temperature of the first storage unit.

12. The non-transitory computer readable storage medium according to claim 11 , wherein a third storage unit group comprises the second storage unit, and the method further comprises:

in response to the second storage unit being released, resetting the data access temperature of the second storage unit;

obtaining data access temperature of the third storage unit group based on reset data access temperature of the second storage unit; and

in response to the data access temperature of the third storage unit group reaching a threshold, migrating data in the third storage unit group to a fourth storage unit group, wherein access performance of the fourth storage unit group is higher than access performance of the third storage unit group.

13. A controller of a storage device, comprising:

a processor; and

a memory, having stored thereon processor executable instructions which, when executed by the processor of the controller, cause the controller to cooperate with the storage device to perform a method comprising:

obtaining data access temperature of a first storage unit group,

wherein memory blocks from different solid-state disks form the first storage unit group, and the memory blocks are divided into a data group comprising at least two memory blocks for data and a check group comprising at least one memory block for check data in the data,

wherein the first storage unit group comprises a plurality of storage units, each storage unit is divided into a finer granularity, the finer granularity makes a composition unit of a block, the block belongs to a logical unit, the logical unit is logical storage space provided by the storage device and accessible by a host, and

wherein the data access temperature of the first storage unit group is obtained by adding up data access temperature of a number of storage units within one of the blocks belonging to the first storage unit group multiplied by the number of storage units belonging to the one of the blocks of the first storage unit group, wherein each one of the blocks of the first storage unit group corresponds to a different logical block address, and the data access temperature of each storage unit which is determined by the storage device, is equal to data access temperature of the block belonging to the logical unit in which a storage unit is located;

wherein the block is associated with a plurality of logical units, and each logical unit is associated with a plurality of storage unit groups to which the first storage unit group belongs;

wherein statistics about a quantity of times of reading or writing data of the block is collected as a monitoring object to determine the data access temperature of the block; and

in response to the data access temperature of the first storage unit group reaching a threshold, migrating data in the first storage unit group to a second storage unit group, wherein access performance of the second storage unit group is higher than access performance of the first storage unit group.

14. The controller according to claim 13 , wherein the storage device collects the data access temperature by using the block belonging to the logical unit as a unit.

15. The controller according to claim 13 , wherein the first storage unit group comprises a first storage unit, and the method further comprises:

receiving a data write request, wherein the data write request is used to write data into a second storage unit, and a storage unit group to which the second storage unit belongs is different from the first storage unit group;

writing the data into the first storage unit, and storing a correspondence between an actual address of the data and a logical address of the first storage unit; and

wherein the obtaining the data access temperature of the first storage unit group comprises:

updating data access temperature of the first storage unit based on data access temperature of the second storage unit; and

obtaining the data access temperature of the first storage unit group based on the updated data access temperature of the first storage unit.

16. The controller according to claim 15 , wherein a third storage unit group comprises the second storage unit, and the method further comprises:

in response to the second storage unit being released, resetting the data access temperature of the second storage unit;

obtaining data access temperature of the third storage unit group based on reset data access temperature of the second storage unit; and

in response to the data access temperature of the third storage unit group reaching a threshold, migrating data in the third storage unit group to a fourth storage unit group, wherein access performance of the fourth storage unit group is higher than access performance of the third storage unit group.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2021
From: LIN, YU
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 056661/0023 →
Priority Claims (1)
CN 201810972007.8 · Aug 24, 2018 · national
Continuity (2)
Continuation PCTCN2019079411 · Mar 25, 2019
Related Publication 20210173579A1 · Jun 10, 2021