IP Library Granted Patent US 11,467,751
Granted Patent B2
US 11,467,751 · App. 17/110,466 · Granted Oct 11, 2022

Migation of data portions between different sized slices in the same of different performance tier

Inventor: Nickolay Dalmatov (St. Petersburg, RU)
Assignee: EMC IP Holding Company LLC
G06F3/0647G06F3/061G06F3/0685
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,467,751
App. No.
17/110,466
Granted
Oct 11, 2022
Kind
B2
Abstract

Techniques for data placement may include receiving data portions stored at logical addresses, and storing the data portions on slices of physical storage located in storage tiers. The storage tiers may include different size slices on the different tiers. In one embodiment, slices in the same tier are all the same size. In another embodiment, slices in the same tier may be of different sizes. Slices of data may be demoted and promoted among the storage tiers as the workloads of the slices changes over time. Demotion may include combining slices into a larger slice. Promotion may include partitioning a slice into smaller slices. Additionally, multiple slices of a tier may be combined into a larger slice in the tier. A slice in the tier may be partitioned into multiple smaller slices also located in the tier.

Claims (47)

1. A method of data placement comprising:

receiving a plurality of data portions stored at a plurality of logical addresses; and

storing the plurality of data portions on a plurality of slices of physical storage located in a plurality of storage tiers of non-volatile physical storage devices, wherein the plurality of slices include a first slice of a first storage tier of the plurality of storage tiers and a second slice of a second storage tier of the plurality of storage tiers, wherein the second storage tier is different than the first storage tier and wherein the first slice is a first size and the second slice is a second size that is different than the first size, wherein each of a first plurality of slices, in the first storage tier, is the first size, and each of a second plurality of slices, in the second storage tier, is the second size, and wherein a first data movement includes relocating a first data portion from the first slice of the first storage tier to the second slice of the second storage tier.

2. The method of claim 1 , further comprising:

receiving a plurality of I/O operations directed to the plurality of slices located in the plurality of storage tiers;

determining, in accordance with the plurality of I/O operations, a plurality of sets of one or more I/O workload statistics of the plurality of slices, wherein each of the plurality of slices has an I/O workload characterized by a corresponding one of the plurality of sets of one or more I/O workload statistics; and

determining, in accordance with the plurality of sets of one or more I/O workload statistics, the first data movement for of the first data portion of the plurality of data portions wherein the first data portion is stored on the first slice of the first storage tier.

3. The method of claim 2 , wherein the first data movement includes demoting the first data portion from the first slice of the first storage tier to the second slice of the second storage tier, and wherein the first storage tier is a higher performance storage tier than the second storage tier.

4. The method of claim 3 , further comprising:

combining the first data portion of the first slice with one or more additional data portions stored on one or more additional slices of the first storage tier; and

relocating, to the second slice of the second storage tier, the first data portion of the first slice and the one or more additional data portions of the one or more additional slices of the first storage tier, wherein the second size of the second slice is larger than the first size of the first slice.

5. The method of claim 4 , wherein the second size of the second slice is equal to a sum of the first size of the first slice and a size of each of the one or more additional slices.

6. The method of claim 2 , wherein the first data movement includes promoting the first data portion from the first slice of the first storage tier to the second slice of the second storage tier, and wherein the first storage tier is a lower performance storage tier than the second storage tier.

7. The method of claim 1 , the method further comprises:

forming a new slice in the first storage tier by combining the first slice of the first storage tier with one or more additional slices of the first storage tier, wherein a size of the new slice is equal to a sum of the first size of the first slice and one or more corresponding sizes of the one or more additional slices.

8. The method of claim 7 , wherein the first storage tier is a lowest performance tier of the plurality of storage tiers, and wherein I/O workloads of the first slice and the one or more additional slices are below a specified minimum threshold.

9. The method of claim 1 , wherein the method further comprises:

repartitioning the first slice into a third plurality of slices of the first storage tier, wherein each of the third plurality of slices has an associated size that is less than the first size of the first slice.

10. The method of claim 9 , wherein the first storage tier is a highest performance tier of the plurality of storage tiers.

11. The method of claim 1 , wherein for each of the plurality of storage tiers ranked higher in performance ranking than another one of the plurality of storage tiers, said each storage tier has a smaller slice size than another slice size of the another one of the plurality of storage tiers, and wherein each slice in said each storage tier is the smaller slice size and each slice in the another one of the plurality of storage tiers is the another slice size.

12. A method of data placement comprising:

receiving a plurality of data portions stored at a plurality of logical addresses; and

storing the plurality of data portions on a plurality of slices located in a plurality of storage tiers of non-volatile physical storage devices, wherein the plurality of slices include a first slice of a first storage tier of the plurality of storage tiers and a second slice of a second storage tier of the plurality of storage tiers, wherein the second storage tier is different than the first storage tier and wherein the first slice is a first size and the second slice is a second size that is different than the first size, wherein a first data movement includes relocating a first data portion from the first slice of the first storage tier to the second storage tier, wherein the first data movement includes promoting the first data portion from the first slice of the first storage tier to the second storage tier, and wherein the first storage tier is a lower performance storage tier than the second storage tier, and wherein said promoting includes:

partitioning the first data portion of the first slice into a plurality of data partitions; and

relocating each of the plurality of data partitions into a different one of a second plurality of slices in the second storage tier, wherein a size of each slice in the second plurality of slices is smaller than the first size of the first slice.

13. The method of claim 12 , wherein each slice in the second plurality of slices is a same size.

14. The method of claim 13 , wherein a sum of sizes of the second plurality of slices is equal to the first size of the first slice.

15. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method of data placement comprising:

receiving a plurality of data portions stored at a plurality of logical addresses; and

storing the plurality of data portions on a plurality of slices located in a plurality of storage tiers of non-volatile physical storage devices, wherein the plurality of slices include a first slice of a first storage tier of the plurality of storage tiers and a second slice of a second storage tier of the plurality of storage tiers, wherein the second storage tier is different than the first storage tier and wherein the first slice is a first size and the second slice is a second size that is different than the first size, wherein each of first plurality of slices, in the first storage tier, is the first size, and each of second plurality of slices, in the second storage tier, is the second size, and wherein a first data movement includes relocating a first data portion from the first slice of the first storage tier to the second slice of the second storage tier.

16. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of data placement comprising:

receiving a plurality of data portions stored at a plurality of logical addresses; and

storing the plurality of data portions on a plurality of slices located in a plurality of storage tiers of non-volatile physical storage devices, wherein the plurality of slices include a first slice of a first storage tier of the plurality of storage tiers and a second slice of a second storage tier of the plurality of storage tiers, wherein the second storage tier is different than the first storage tier and wherein the first slice is a first size and the second slice is a second size that is different than the first size, wherein each of first plurality of slices, in the first storage tier, is the first size, and each of second plurality of slices, in the second storage tier, is the second size, and wherein a first data movement includes relocating a first data portion from the first slice of the first storage tier to the second slice of the second storage tier.

17. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of data placement comprising:

receiving a plurality of data portions stored at a plurality of logical addresses; and

storing the plurality of data portions on a plurality of slices located in a plurality of storage tiers of non-volatile physical storage devices, wherein the plurality of slices include a first slice of a first storage tier of the plurality of storage tiers and a second slice of a second storage tier of the plurality of storage tiers, wherein the second storage tier is different than the first storage tier and wherein the first slice is a first size and the second slice is a second size that is different than the first size, wherein a first data movement includes relocating a first data portion from the first slice of the first storage tier to the second storage tier, wherein the first data movement includes promoting the first data portion from the first slice of the first storage tier to the second storage tier, and wherein the first storage tier is a lower performance storage tier than the second storage tier, and wherein said promoting includes:

partitioning the first data portion of the first slice into a plurality of data partitions; and

relocating each of the plurality of data partitions into a different one of a second plurality of slices in the second storage tier, wherein a size of each slice in the second plurality of slices is smaller than the first size of the first slice.

18. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method of data placement comprising:

receiving a plurality of data portions stored at a plurality of logical addresses; and

storing the plurality of data portions on a plurality of slices located in a plurality of storage tiers of non-volatile physical storage devices, wherein the plurality of slices include a first slice of a first storage tier of the plurality of storage tiers and a second slice of a second storage tier of the plurality of storage tiers, wherein the second storage tier is different than the first storage tier and wherein the first slice is a first size and the second slice is a second size that is different than the first size, wherein a first data movement includes relocating a first data portion from the first slice of the first storage tier to the second storage tier, wherein the first data movement includes promoting the first data portion from the first slice of the first storage tier to the second storage tier, and wherein the first storage tier is a lower performance storage tier than the second storage tier, and wherein said promoting includes:

partitioning the first data portion of the first slice into a plurality of data partitions; and

relocating each of the plurality of data partitions into a different one of a second plurality of slices in the second storage tier, wherein a size of each slice in the second plurality of slices is smaller than the first size of the first slice.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: DALMATOV, NICKOLAY
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054528/0007 →