IP Library Patent Application 14181108
Patent Application
App. No. 14/181,108

System and Method for Providing Data Services in Direct Attached Storage via Multiple De-clustered RAID Pools

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 None
App. No.
14/181,108
Abstract

A system and method for providing Quality of Service (QoS)-based data services in a direct attached storage system including at least one physical drive comprises logically dividing the drive or drives into a plurality of pools implemented according to CRUSH algorithms or other declustered RAID configurations. The plurality of pools are then managed as declustered RAID virtual drives. The system and method further comprises identifying a pool with a performance characteristic and monitoring the pool to detect “hot” data within the pool, which may then be migrated to a pool with a more desirable performance characteristic. The system and method further comprises prioritizing critical operations performed on a pool based on the performance characteristic of the pool.

Claims (48)

1 . A system for providing direct attached storage, comprising:

at least one physical drive, each physical drive including a plurality of blocks, each block including a continuous range of physical logical block addresses;

a plurality of pools implemented according to at least one declustered Redundant Array of Independent Disks (RAID) configuration, each pool including a plurality of virtual logical block addresses and at least one block of the plurality of blocks;

at least one controller operably coupled to the at least one physical drive, configured to manage the plurality of pools as a plurality of virtual drives according to the at least one declustered RAID configuration.

2 . The system of claim 1 , wherein the plurality of pools implemented according to at least one declustered Redundant Array of Independent Disks (RAID) configuration includes

a plurality of pools implemented according to Controlled Replication under Scalable Hashing (CRUSH) algorithms.

3 . The system of claim 1 , wherein the at least one controller is further configured to

dynamically map the physical LBA of each block of the plurality of virtual drives to a virtual LBA; and

store the resulting map of physical LBAs to virtual LBAs within the at least one physical drive.

4 . The system of claim 1 , wherein the at least one controller is configured to manage each virtual drive of the plurality of virtual drives in at least one of a standard RAID configuration, a nonstandard RAID configuration, a hybrid RAID configuration, a just-a-bunch-of-disks (JBOD) configuration, and a massive array of idle drives (MAID) configuration.

5 . The system of claim 1 , wherein the at least one controller is configured to

identify at least a first pool and a second pool of the plurality of pools, the first pool having a first performance characteristic including at least one of input/output operations per second, latency, and bandwidth and the second pool having a second performance characteristic including at least one of input/output operations per second, latency, and bandwidth.

6 . The system of claim 5 , wherein the at least one controller is further configured to

monitor the utilization of the first pool to detect the placement of frequently accessed data within at least one block of the pool;

logically divide the at least one block into at least a first segment and a second segment, the first segment including a proportionally larger amount of frequently accessed data than the second segment; and

migrate the first segment into the second pool and retain the second segment in the first pool when the second pool has a more desirable performance characteristic than the first pool, and migrate the second segment into the second pool and retain the first segment in the first pool when the second pool has a less desirable performance characteristic than the first pool.

7 . The system of claim 5 , wherein the at least one controller is configured to prioritize a critical operation performed on at least one of the first pool and the second pool based on the performance characteristic.

8 . The system of claim 7 , wherein the at least one controller is further configured to prioritize a critical operation performed on the first pool over a critical operation performed on the second pool when the first pool has a more desirable performance characteristic than the second pool and prioritize a critical operation performed on the second pool over a critical operation performed on the first pool when the first pool has a less desirable performance characteristic than the second pool.

9 . The system of claim 7 , wherein the critical operation includes at least one of an I/O operation and rebuilding failed drive data.

10 . The system of claim 1 , wherein the system is embodied in a Redundant Array of Independent Disks (RAID) system comprising at least one hard disk.

11 . A method for providing direct attached storage via at least one physical drive, executable by a computer or processor operably coupled to the at least one physical drive, comprising:

logically dividing the at least one physical drive into a plurality of pools according to at least one declustered Redundant Array of Independent Disks (RAID) configuration, each pool including a plurality of virtual logical block addresses and a plurality of blocks, each block including a continuous range of physical logical block addresses; and

managing the plurality of pools as a plurality of virtual drives according to the at least one declustered RAID configuration.

12 . The method of claim 11 , wherein

logically dividing the at least one physical drive into a plurality of pools according to at least one declustered Redundant Array of Independent Disks (RAID) configuration includes logically dividing the at least one physical drive into a plurality of pools according to Controlled Replication under Scalable Hashing (CRUSH) algorithms; and

managing the plurality of pools as a plurality of virtual drives according to the at least one declustered RAID configuration includes managing the plurality of pools as a plurality of virtual drives according to Controlled Replication under Scalable Hashing (CRUSH) algorithms.

13 . The method of claim 11 , wherein managing the plurality of pools as a plurality of virtual drives according to the at least one declustered RAID configuration includes:

dynamically mapping each physical LBA of each block of each virtual drive to a virtual LBA; and

storing the resulting map of physical LBAs to virtual LBAs within the at least one physical drive.

14 . The method of claim 11 , wherein managing the plurality of pools as a plurality of virtual drives according to the at least one declustered RAID configuration includes managing the plurality of virtual drives in at least one of a standard RAID configuration, a nonstandard RAID configuration, a hybrid RAID configuration, a just-a-bunch-of-disks (JBOD) configuration, and a massive array of idle drives (MAID) configuration.

15 . The method of claim 11 , further comprising:

identifying at least a first pool and a second pool of the plurality of pools, the first pool having a first performance characteristic including at least one of input/output operations per second, latency, and bandwidth and the second pool having a second performance characteristic including at least one of input/output operations per second, latency, and bandwidth.

16 . The method of claim 15 , further comprising:

monitoring the utilization of the first pool to detect the placement of frequently accessed data within at least one block of the pool;

logically dividing the at least one block into at least a first segment and a second segment, the first segment including a proportionally larger amount of frequently accessed data than the second segment; and

migrating the first segment into the second pool and retaining the second segment in the first pool when the second pool has a more desirable performance characteristic than the first pool, and migrating the second segment into the second pool and retaining the first segment in the first pool when the second pool has a less desirable performance characteristic than the first pool.

17 . The method of claim 15 , further comprising:

prioritizing a critical operation performed on at least one of the first pool and the second pool based on the performance characteristic.

18 . The method of claim 17 , wherein prioritizing a critical operation performed on at least one of the first pool and the second pool includes prioritizing a critical operation performed on the first pool over a critical operation performed on the second pool when the first pool has a more desirable performance characteristic than the second pool and prioritizing a critical operation performed on the second pool over a critical operation performed on the first pool when the first pool has a less desirable performance characteristic than the second pool.

19 . The method of claim 17 , wherein the critical operation includes at least one of an I/O operation and rebuilding failed drive data.

20 . An article of manufacture comprising a computer-readable, non-transitory medium bearing encoded instructions executable by a computer or processor operably coupled to a direct attached storage system including at least one physical drive for:

logically dividing the at least one physical drive into a plurality of pools according to at least one declustered Redundant Array of Independent Disks (RAID) configuration, each pool including a plurality of virtual logical block addresses and a plurality of blocks, each block including a continuous range of physical logical block addresses;

managing the plurality of pools as a plurality of virtual drives according to the at least one declustered RAID configuration;

identifying at least a first pool and a second pool of the plurality of pools, the first pool having a first performance characteristic and the second pool having a second performance characteristic;

monitoring the utilization of the first pool to detect the placement of frequently accessed data within at least one block of the pool;

logically dividing the at least one block into at least a first segment and a second segment, the first segment including a proportionally larger amount of frequently accessed data than the second segment;

migrating at least one of the first segment and the second segment into the second pool based on at least one performance characteristic; and

prioritizing a critical operation performed on at least one of the first pool and the second pool based on the performance characteristic.

Assignments (6)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2014
From: NAIR, NAMAN
To: LSI CORPORATION
Reel/Frame 032222/0605 →