IP Library Granted Patent US 10,156,990
Granted Patent B2
US 10,156,990 · App. 15/873,615 · Granted Dec 18, 2018

Data storage management

Inventor: Marek Piekarski (Macclesfield, GB)
Assignee: Micron Technology, Inc.
G06F3/0604G06F3/061G06F3/067G06F3/0644G06F3/0665G06F3/0667G06F3/0689
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 10,156,990
App. No.
15/873,615
Granted
Dec 18, 2018
Kind
B2
Abstract

A method of managing a plurality of storage devices. The method comprises at a first device connected to the plurality of storage devices via a switch, receiving an indication of a plurality of logical disks, each logical disk being provided by a respective one of the plurality of storage devices. Each logical disk comprises a plurality of logical blocks. Data representing a virtual disk is generated, the virtual disk comprising a plurality of virtual blocks, each virtual block being provided by a logical block. Access is provided to the virtual disk to a second device different to the first device. A first virtual block is selected, the first virtual block being provided by a first logical block, and a re-mapping operation is performed after which the first virtual block is provided by a second logical block different to the first logical block.

Claims (53)

1. A method of copying data from a first block provided by a first storage device to a second block provided by a second storage device, the method comprising:

dividing the first and second blocks into an equal number of sub-blocks;

performing a first copy operation, the first copy operation comprising copying at least one sub-block of the first block to a sub-block of the second block;

receiving during the first copy operation a first write request indicating data to be written to the first block;

performing a first write operation, the first write operation writing the first data to the first block,

marking as dirty each sub-block of the first block affected by the first write operation;

performing at least one re-copy operation, each re-copy operation copying one of the sub-blocks of the first block marked as dirty to a sub-block of the second block;

determining whether a predetermined number of re-copy operations has been performed;

if it is determined that the predetermined number of re-copy operations has been performed, determining whether a total number of remaining sub-blocks marked as dirty is below a predetermined threshold; and

if it is determined that the total number of remaining sub-blocks marked as dirty is below the predetermined threshold, temporarily preventing further write operations writing data to the first block.

2. The method of claim 1 , further comprising if it is determined that the predetermined number of re-copy operations has not been performed, performing at least one further re-copy operation.

3. The method of claim 1 , wherein if it is determined that the predetermined number of re-copy operations has been performed and that the total number of remaining sub-blocks marked as dirty is not below the predetermined threshold, the method further comprises aborting the first copy operation.

4. The method of claim 1 , wherein further write operations are prevented for a duration of time required to perform re-copy operations for each of the remaining sub-blocks marked as dirty.

5. The method of claim 1 , wherein if it is determined that the predetermined number of re-copy operations has been performed and that the total number of remaining sub-blocks marked as dirty is not below the predetermined threshold, the method further comprises increasing a rate at which the re-copy operations are performed or increasing the predetermined number of re-copy operations.

6. The method of claim 5 , wherein the predetermined number of re-copy operations is increased if it is determined that the total number of remaining sub-blocks marked as dirty is below a second predetermined threshold.

7. The method of claim 1 , further comprising performing a second write operation, the second write operation comprising writing the first data to the second block.

8. A storage system comprising a first device, a second device, a first storage device providing a first block and a second storage device providing a second block, the first device, the second device, the first storage device and the second storage device connected to a switch;

wherein the first device stores computer readable instructions arranged to cause the first device to perform a copy operation comprising:

dividing the first and second blocks into an equal number of sub-blocks;

copying at least one sub-block of the first block to a sub-block of the second block; and

wherein the computer readable instructions are further arranged to cause the first device to:

receive through the switch from the second device during the copy operation a first write request indicating first data to be written to the first block;

perform a first write operation, the first write operation comprising writing the first data to the first block;

mark as dirty each sub-block of the first block affected by the first write operation;

perform at least one re-copy operation, each re-copy operation copying one of the sub-blocks of the first block marked as dirty to a sub-block of the second block;

determine whether a predetermined number of re-copy operations has been performed;

if it is determined that the predetermined number of re-copy operations has been performed, determine whether a total number of remaining sub-blocks marked as dirty is below a predetermined threshold; and

if it is determined that the total number of remaining sub-blocks marked as dirty is below the predetermined threshold, temporarily preventing further write operations writing data to the first block.

9. The storage system of claim 8 , wherein the computer readable instructions are arranged to cause the first device to perform a second write operation, the second write operation comprising writing the first data to the second block.

10. A method of removing a storage device from a storage system comprising a plurality of storage devices, each storage device providing at least one block, the method comprising:

receiving an indication that a first storage device of the plurality of storage devices is to be removed, the first storage device providing a first block;

selecting a second storage device, the second storage device providing a second block;

dividing the first and second blocks into a plurality of sub-blocks;

performing a first copy operation, the first copy operation comprising copying at least one sub-block of the first block to a sub-block of the second block;

receiving during the first copy operation a first write request indicating first data to be written to the first block; and

performing a first write operation; the first write operation to write the first data to the first block;

marking as dirty each sub-block of the first block affected by the first write operation;

performing at least one re-copy operation, each re-copy operation copying one of the sub-blocks of the first block marked as dirty to a sub-block of the second block;

determining whether a predetermined number of re-copy operations has been performed;

if it is determined that the predetermined number of re-copy operations has been performed, determining whether a total number of remaining sub-blocks marked as dirty is below a predetermined threshold; and

if it is determined that the total number of remaining sub-blocks marked as dirty is below the predetermined threshold, temporarily preventing further write operations writing data to the first block.

11. The method of claim 10 , further comprising performing a second write operation, the second write operation comprising writing the first data to the second block.

12. The method of claim 10 further comprising:

receiving an indication that a third storage device has been added to the storage system, the r storage device providing a third block;

dividing the second and third blocks into a plurality of sub-blocks; and

performing a second copy operation, the second copy operation comprising copying at least one sub-block of the second block to a sub-block of the third block.

13. The method of claim 12 , further comprising:

receiving during the second copy operation a second write request indicating second data to be written to the second block; and

performing a third write operation, the third write operation comprising writing the second data to the second block.

14. The method of claim 13 , further comprising marking as dirty each sub-block of the second block affected by the third write operation; and

performing at least one re-copy operation, each re-copy operation copying one of the sub-blocks of the second block marked as dirty to a sub-block of the third block.

15. The method of claim 14 , further comprising:

performing a fourth write operation, the fourth write operation comprising writing the second data to the third block.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050716/0678 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 7 TO PATENT SECURITY AGREEMENT Recorded Feb 6, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 045267/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2018
From: PIEKARSKI, MAREK
To: MICRON TECHNOLOGY, INC.
Reel/Frame 044643/0676 →
Continuity (2)
Division 13969402 · Aug 16, 2013
Related Publication 20180143765A1 · May 24, 2018
Cited By (1)
US 12,602,401