IP Library Granted Patent US 10,891,066
Granted Patent B2
US 10,891,066 · App. 16/234,884 · Granted Jan 12, 2021

Data redundancy reconfiguration using logical subunits

Inventors: Venkata Ramprasad Darisa (Bangalore, IN); Abhishek Agarwal (Bangalore, IN); Angshuman Devchoudhury (Bangalore, IN)
Assignee: INTELLIFLASH BY DDN, INC.
G06F3/0647G06F3/0614G06F3/0689G06F11/1076
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,891,066
App. No.
16/234,884
Granted
Jan 12, 2021
Kind
B2
Abstract

Example storage systems, storage controllers, and methods provide data redundancy reconfiguration using logical subunits. Storage devices are configured in a storage group with a first data redundancy configuration. A second data redundancy configuration is selected and the space available in the storage group is determined. For each logical data unit, logical data subunits are selected, written to the space available in the second data redundancy configuration, and deleted from the logical data unit. Storage operations using the storage group may be maintained during the migration process.

Claims (80)

1. A system, comprising:

a processor;

a memory;

a plurality of storage devices configured as a storage group in a first data redundancy configuration, wherein at least one logical data unit is stored in the plurality of storage devices with the first data redundancy configuration; and

a reconfiguration initiator stored in the memory and executable by the processor to perform operations comprising:

accessing a request to migrate data stored at a plurality of storage devices from storage in a first volume having a first data redundancy configuration to storage in a second volume having a second data redundancy configuration;

determining a quantity of available data blocks in the plurality of storage devices;

selecting at least one logical data subunit from the data;

migrating the at least one logical data subunit to one or more of the available data blocks in accordance with the second data redundancy configuration;

during migration of the at least one logical data subunit, receiving a user write operation indicating a change to a portion of the data;

in response to receiving the user write operation:

processing the user write operation to the first volume implementing the change to the portion of the data at the first volume in accordance with the first data redundancy configuration; and

queuing a duplicate user write operation;

migrating a final data subunit from the first volume to one or more other available data blocks at the plurality of storage devices;

activating the second volume subsequent to migrating the final data subunit; and

processing the queued duplicate user write operation to the activated second volume implementing the change to the portion of the data at the activated second volume in accordance with the second data redundancy configuration.

2. The system of claim 1 , wherein the reconfiguration initiator is further executable to perform operations comprising:

ordering a plurality of logical data subunits, including the at least one logical data subunit, in a migration order; and

repeating, according to the migration order, migrating each logical data subunit from the plurality of logical data subunits to the second volume in accordance with the second data redundancy configuration.

3. The system of claim 2 , wherein the reconfiguration initiator is further executable to perform operations comprising:

generating the final data subunit corresponding to a set of data blocks in at least one logical data unit; and

deleting, responsive to migrating the final data subunit, the at least one logical data unit in the first data redundancy configuration.

4. The system of claim 2 , wherein the migration order is ordered according to size.

5. The system of claim 1 , wherein the reconfiguration initiator is further executable to perform operations comprising:

selecting the one or more available storage blocks for migration of the at least one logical subunit.

6. The system of claim 5 , wherein selecting the one or more available blocks defragments the quantity of available data blocks.

7. The system of claim 1 , wherein:

the first data redundancy configuration is a first redundant array of independent disks (RAID) level; and

the second data redundancy configuration is a second RAID level that is different from the first RAID level.

8. A computer-implemented method, comprising:

accessing a request to migrate data stored at a plurality of storage devices from storage in a first volume having a first data redundancy configuration to storage in a second volume having a second data redundancy configuration;

determining a quantity of available data blocks in the plurality of storage devices;

selecting at least one logical data subunit from the data;

migrating the at least one logical data subunit to one or more of the available data blocks in accordance with the second data redundancy configuration;

during migration of the at least one logical data subunit, receiving a user write operation indicating a change to a portion of the data;

in response to receiving the user write operation:

processing the user write operation to the first volume implementing the change to the portion of the data at the first volume in accordance with the first data redundancy configuration; and

queuing a duplicate user write operation;

migrating a final data subunit from the first volume to one or more other available data blocks at the plurality of storage devices;

activating the second volume subsequent to migrating the final data subunit; and

processing the queued duplicate user write operation to the activated second volume implementing the change to the portion of the data at the activated second volume in accordance with the second data redundancy configuration.

9. The computer-implemented method of claim 8 , further comprising:

ordering a plurality of logical data subunits, including the at least one logical data subunit, in a migration order; and

repeating, according to the migration order, migrating each logical data subunit from the plurality of logical data subunits to the second volume in accordance with the second data redundancy configuration.

10. The computer-implemented method of claim 9 , further comprising:

generating the final data subunit corresponding to a set of data blocks in at least one logical data unit; and

deleting, responsive to migrating the final data subunit, the at least one logical data unit in the first data redundancy configuration.

11. The computer-implemented method of claim 9 , wherein the migration order is ordered according to size.

12. The computer-implemented method of claim 8 , further comprising:

selecting the one or more available storage blocks for migration of the at least one logical subunit.

13. The computer-implemented method of claim 12 , wherein selecting the one or more available blocks defragments the quantity of available data blocks.

14. The computer-implemented method of claim 8 , wherein:

the first data redundancy configuration is a first redundant array of independent disks (RAID) level; and

the second data redundancy configuration is a second RAID level that is different from the first RAID level.

15. A system comprising:

a processor; and

system memory coupled to the processor and storing instructions configured to cause the processor to:

access a request to migrate data stored at a plurality of storage devices from storage in a first volume having a first data redundancy configuration to storage in a second volume having a second data redundancy configuration;

determine a quantity of available data blocks in the plurality of storage devices;

select at least one logical data subunit from the data;

migrate the at least one logical data subunit to one or more of the available data blocks in accordance with the second data redundancy configuration;

during migration of the at least one logical data subunit, receive a user write operation indicating a change to a portion of the data;

in response to receiving the user write operation:

process the user write operation to the first volume implementing the change to the portion of the data at the first volume in accordance with the first data redundancy configuration; and

queue a duplicate user write operation;

migrate a final data subunit from the first volume to one or more other available data blocks at the plurality of storage devices;

activate the second volume subsequent to migrating the final data subunit; and

process the queued duplicate user write operation to the activated second volume implementing the change to the portion of the data at the activated second volume in accordance with the second data redundancy configuration.

16. The system of claim 15 , further comprising instructions configured to:

order a plurality of logical data subunits, including the at least one logical data subunit, in a migration order; and

repeat, according to the migration order, migrating each logical data subunit from the plurality of logical data subunits to the second volume in accordance with the second data redundancy configuration.

17. The system of claim 16 , further comprising instructions configured to:

generate the final data subunit corresponding to a set of data blocks in at least one logical data unit; and

delete, responsive to migrating the final data subunit, the at least one logical data unit in the first data redundancy configuration.

18. The system of claim 15 , wherein the migration order is ordered according to size.

19. The system of claim 15 , further comprising instructions configured to:

defragment the quantity of available data blocks by selecting the one or more available storage blocks for migration the at least one logical subunit.

20. The system of claim 15 , wherein:

the first data redundancy configuration is a first redundant array of independent disks (RAID) level; and

the second data redundancy configuration is a second RAID level that is different from the first RAID level.

Assignments (3)
CHANGE OF NAME Recorded Jan 17, 2020
From: DDN FIRECREST, INC.
To: INTELLIFLASH BY DDN, INC.
Reel/Frame 051640/0105 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: DDN FIRECREST, INC.
Reel/Frame 051535/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2019
From: DARISA, VENKATA RAMPRASAD; AGARWAL, ABHISHEK; DEVCHOUDHURY, ANGSHUMAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 048608/0669 →