IP Library Granted Patent US 9,436,394
Granted Patent B2
US 9,436,394 · App. 14/202,484 · Granted Sep 6, 2016

RAID random distribution scheme

Inventors: Doron Tal (Haifa, IL); Ilan Steinberg (Haifa, IL); Shai Maskit (Haifa, IL); Eyal Gordon (Haifa, IL)
Assignee: Kaminario Technologies Ltd.
G06F3/0619G06F3/064G06F3/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 9,436,394
App. No.
14/202,484
Granted
Sep 6, 2016
Kind
B2
Abstract

There is provided a computerized method, computerized system, a non-transitory program storage device and a computer program product for enabling allocation of segments in a RAID stripe to respective storage devices in a corresponding RAID group. A randomized distribution scheme is generated for randomly distributing the data segments and syndrome segments in a RAID stripe to respective storage devices in the RAID group. The randomized distribution scheme is used for distributing the segments in the at least one RAID stripe to the storage devices in the RAID group, such that any two failed storage devices in the RAID group would have the same first probability (P) for being protected by the same type-1 syndrome segment and the same second probability (1-P) for each one of the two failed storage devices being protected by a different type-1 syndrome segment, irrespective of the relative location of the two failed storage devices.

Claims (36)

1. A computerized method of allocating segments in a RAID stripe to respective storage devices in a corresponding RAID group; each RAID stripe comprises a group of data segments arranged in a first subset of data segments and a second subset of data segments; the first subset is protected by a first type-1 syndrome segment, the second subset is protected by a second type-1 syndrome segment and the entire group of data segments is protected by a type-2 syndrome segment; the method comprising using a processor for:

generating a randomized distribution scheme for randomly distributing the data segments and syndrome segments in a RAID stripe to respective storage devices in the RAID group, including:

generating a randomization table, wherein each row in the randomization table comprises a sequence of integers in random order, the sequence of integers in each row representing one possible randomized distribution of segments in a RAID stripe across storage devices in the RAID group,

selecting a row from the randomization table, and

distributing the segments in the RAID stripe to the storage devices in the RAID group based on a respective sequence of integers in the selected row; and

responsive to a need to write data to the RAID group:

generating at least one RAID stripe; and using the randomized distribution scheme for distributing the segments in the at least one RAID stripe to the storage devices in the RAID group, such that any two failed storage devices in the RAID group would have the same first probability (P) for being protected by the same type-1 syndrome segment and the same second probability (1-P) for each one of the two failed storage devices being protected by a different type-1 syndrome segment, irrespective of the relative location of the two failed storage devices.

2. The computerized method according to claim 1 further comprising:

responsive to a need to read data from the RAID group, using the randomized distribution scheme for reconstructing segments in the at least one RAID stripe.

3. The computerized method according to claim 1 wherein selection of a row from the randomization table comprises:

performing a modulo (%) operation between a number of the RAID stripe to which the data is being written, and a total number of rows in the randomization table.

4. The computerized method according to claim 1 wherein each integer value in the selected row represents a respective data segment or syndrome segment in the RAID stripe and each location in the selected row cell represents a specific storage device in the RAID group.

5. The computerized method according to claim 1 wherein random distribution of the segments to storage devices in the RAID group is logically represented in a table stored in a computer memory.

6. The computerized method according to claim 1 wherein the generation of the randomization table comprises:

generating a table comprising n columns and m rows; wherein n equals to the number of segments in a RAID stripe an wherein m is equal to or smaller than the number of RAID stripes in the RAID group;

generating, for each row, a randomly ordered sequence of integers; and

storing the randomly ordered sequence of integers in the row.

7. A storage system comprising a control interface configured to logically represent a storage space constituted by a plurality of storage devices as at least one RAID group configured for storing a plurality of RAID stripes; each RAID stripe comprises a group of data segments arranged in a first subset of data segments and a second subset of data segments; the first subset is protected by a first type-1 syndrome segment, the second subset is protected by a second type-1 syndrome segment and the entire group of data segments is protected by a type-2 syndrome segment; a control layer comprises a RAID controller configured to:

generate a randomized distribution scheme for randomly distributing the data segments and syndrome segments in a RAID stripe to respective storage devices in the RAID group; and, responsive to a need to write data to the RAID group, to: generate at least one RAID stripe; and utilize the randomized distribution scheme for distributing the segments in the at least one RAID stripe to the storage devices in the RAID group, such that such any two failed storage devices in the RAID group would have the same first probability (P) for being protected by the same type-1 syndrome segment and the same second probability (1-P) for each one of the two failed storage devices being protected by a different type-1 syndrome segment, irrespective of the relative location of the two failed storage devices;

wherein the RAID controller is configured for generating the randomized distribution scheme to:

generate a randomization table, wherein each row in the randomization table comprises a sequence of integers in random order, the sequence of integers in each row representing one possible randomized distribution of segments in a RAID stripe across storage devices in the RAID group; select a row from the randomization table; and distribute the segments in the RAID stripe to the storage devices in the RAID group based on a respective sequence of integers in the selected row.

8. The storage system according to claim 7 wherein the RAID controller is further configured, responsive to a need to read data from the RAID group, to utilize the randomized distribution scheme for reconstructing segments in the at least one RAID stripe.

9. The storage system according to claim 8 wherein the RAID controller is configured to select a row from the randomization table to perform a modulo (%) operation between a number of the RAID stripe to which the data is being written and a total number of rows in the randomization table.

10. The storage system according to claim 7 wherein the RAID controller is configured to assign each integer value in the selected row to a respective data segment or syndrome segment in the RAID stripe and assign each location in the selected row cell to a specific storage device in the RAID group.

11. The storage system according to claim 7 wherein the RAID controller is configured to manage a table logically representing the random distribution of the segments to storage devices in the RAID group, the table being stored in a computer memory.

12. The storage system according to claim 7 wherein the RAID controller is configured for generating the randomization table to:

generate a table comprising n columns and m rows; wherein n is equal to the number of segments in a RAID stripe and wherein m is equal to or smaller than the number of RAID stripes in the RAID group;

generate, for each row, a randomly ordered sequence of integers; and

store the randomly ordered sequence of integers in the row.

13. The storage device system according to claim 7 is a Solid State Drive storage device.

14. A non-transitory program storage device readable by a computer, tangibly embodying a computer readable code portion executable by the computer to perform a method of allocating segments in a RAID stripe to respective storage devices in a corresponding RAID group; each RAID stripe comprises a group of data segments arranged in a first subset of data segments and a second subset of data segments; the first subset is protected by a first type-1 syndrome segment, the second subset is protected by a second type-1 syndrome segment and the entire group of data segments is protected by a type-2 syndrome segment; the method comprising:

generating a randomized distribution scheme for randomly distributing the data segments and syndrome segments in a RAID stripe to respective storage devices in the RAID group, including:

generating a randomization table, wherein each row in the randomization table comprises a sequence of integers in random order, the sequence of integers in each row representing one possible randomized distribution of segments in a RAID stripe across storage devices in the RAID group,

selecting a row from the randomization table, and

distributing the segments in the RAID stripe to the storage devices in the RAID group based on a respective sequence of integers in the selected row; and, responsive to a need to write data to the RAID group:

generating at least one RAID stripe; and using the randomized distribution scheme for distributing the segments in the at least one RAID stripe to the storage devices in the RAID group, such that any two failed storage devices in the RAID group would have the same first probability (P) for being protected by the same type-1 syndrome segment and the same second probability (1-P) for each one of the two failed storage devices being protected by a different type-1 syndrome segment, irrespective of the relative location of the two failed storage devices.

Assignments (6)
SECURITY INTEREST Recorded Nov 4, 2024
From: SILK TECHNOLOGIES INC.; THE SILK TECHNOLOGIES ILC LTD
To: TRINITY CAPITAL INC., AS COLLATERAL AGENT
Reel/Frame 069133/0868 →
SECURITY INTEREST Recorded Sep 19, 2023
From: THE SILK TECHNOLOGIES ILC LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 064945/0667 →
SECURITY INTEREST Recorded Sep 20, 2021
From: THE SILK TECHNOLOGIES ILC, LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 057523/0433 →
SECURITY INTEREST Recorded Jul 27, 2015
From: KAMINARIO TECHNOLOGIES LTD.
To: KREOS CAPITAL IV (EXPERT FUND) LIMITED
Reel/Frame 036180/0394 →
SECURITY AGREEMENT Recorded Jul 16, 2015
From: KAMINARIO TECHNOLOGIES LTD
To: SILICON VALLEY BANK
Reel/Frame 036125/0944 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2015
From: TAL, DORON; STEINBERG, ILAN; MASKIT, SHAI; GORDON, EYAL
To: KAMINARIO TECHNOLOGIES LTD.
Reel/Frame 034981/0051 →
Continuity (1)
Related Publication 20150254008A1 · Sep 10, 2015