RAID Calculator

Convert between GLOBAL and LOCAL sectors

Online RAID Calculator

The RAID Calculator lets you map sectors between the RAID and its individual drives. For example, if you want to know which sector on which individual member drive hosts sector 111 of a 3-drive backward RAID-5 with a block size of 128, you can find out with the tool below. Supported are RAID-0, RAID-5, RAID-6, and a non-standard RAID-5 as used in HP servers.

RAID TYPE




ROTATION





DRIVES



GLOBAL sector on RAID

ACTION




LOCAL sector on drive


Try it out! Enter 111 in the field above and click "Calculate." On the right-hand side, you can read the result: drive 1 and sector 111.

You can reverse the direction and find out which global sector originates from a given local sector. Click on ">>" and then type 2 into the field for the local drive and 111 into the field for the local sector. Now the left-hand side shows you the result, 239, which is expected as the first 128 sectors are on drive 1 and the next 111 on drive 2, resulting in 239.

Now try drive 3, sector 111. As determined by the RAID topology, sector 111 on drive 3 is in a parity block and, as such, can not be translated into a global sector. The left-hand side signals this with PARITYDRIVE.

Blocks, Stripes, and Cycles

Please note our terminology regarding "blocks," "stripes," and "cycles." The above-defined RAID has the following characteristics:

In our example, one block consists of 128 sectors. One stripe consists of one block taken from each drive at the same position. Two of these blocks contain data; one is parity. One cycle is made of three stripes, which is the period it takes for the parity to make one full rotation.

Supported RAID Types

The RAID Calculator supports the following RAID types:

  • RAID-0, striped array without redundancy

  • RAID-5, redundant array with 1 parity drive

  • RAID-6, redundant array with 2 parity drives

  • RAID-5 (HP), proprietary RAID scheme widely used by HP/Compaq RAID controllers

Supported Rotations

The rotation's direction relates to the movement of the parity drive from one stripe to the next stripe within one cycle.

  • Backward (aka left-asymmetric):

    Backward
    Example: RAID-5, 3 drives, block size 128
    Local drive
    sector*)\
    Drive 1 Drive 2 Drive 3 Cycle Stripe
    0-127 B1 **) B2  P 0 0
    128-255 B3  P B4 1
    256-383  P B5 B6 2
    384-511 B7 B8  P 1 0
    512-639 B9  P B10 1
    640-767  P B11 B12 2
     :  :  :  :  :  :
    *) Sectors, cycles and stripes are 0-based,
    blocks and drives are 1-based
    **) Blocks B1, B2, B3, ... are data in the
    1st 128 global sectors (0-127),
    2nd 128 global sectors (128-255),
    3rd 128 global sectors (256-383), etc.
    P is parity for the blocks within the same stripe.

    The name originates from the parity drive rotating backward (left) with each stripe until the start of a new cycle.

    This rotation scheme is widespread and used by many hardware RAID controllers.

  • Back. dyn (aka left-symmetric):

    Backward dynamic
    Example: RAID-5, 3 drives, block size 128
    Local drive
    sector*)\
    Drive 1 Drive 2 Drive 3 Cycle Stripe
    0-127 B1 **) B2  P 0 0
    128-255 B4  P B3 1
    256-383  P B5 B6 2
    384-511 B7 B8  P 1 0
    512-639 B10  P B9 1
    640-767  P B11 B12 2
     :  :  :  :  :  :
    *) Sectors, cycles and stripes are 0-based,
    blocks and drives are 1-based
    **) Blocks B1, B2, B3, ... are data in the
    1st 128 global sectors (0-127),
    2nd 128 global sectors (128-255),
    3rd 128 global sectors (256-383), etc.
    P is parity for the blocks within the same stripe.

    As with the backward rotation, the backward dynamic rotation gets its name from the parity drive rotating backward (left) with each stripe until the start of a new cycle. It is very similar to backward, only stripe 1 arranges the blocks differently. The block to the right of parity P is the block with that stripe's lowest number, while in backward, the lowest-numbered block is always the first block. The blocks start to the right of parity P, incrementing by 1 with each block, rolling over to the first block, and continuing until reaching parity P from the left side. Some people call this left-symmetric.

    We call it backward dynamic because we first encountered this rotation scheme when examining Windows software RAID-5s created with dynamic disks partitioning. This rotation scheme is very common and used by most software RAID-5s, under Windows and Linux.

  • Forward (aka right-asymmetric): 

    Forward
    Example: RAID-5, 3 drives, block size 128
    Local drive
    sector*)\
    Drive 1 Drive 2 Drive 3 Cycle Stripe
    0-127  P B1 **) B2 0 0
    128-255 B3  P B4 1
    256-383 B5 B6  P 2
    384-511  P B7 B8 1 0
    512-639 B9  P B10 1
    640-767 B11 B12  P 2
     :  :  :  :  :  :
    *) Sectors, cycles and stripes are 0-based,
    blocks and drives are 1-based
    **) Blocks B1, B2, B3, ... are data in the
    1st 128 global sectors (0-127),
    2nd 128 global sectors (128-255),
    3rd 128 global sectors (256-383), etc.
    P is parity for the blocks within the same stripe.

    The name comes from the parity drive rotating forward (right) with each stripe until the start of a new cycle.

    This is a rare rotation scheme, used by just a few hardware RAID controllers.

  • Forw. dyn (aka left-symmetric):  

    Forward dynamic
    Example: RAID-5, 3 drives, block size 128
    Local drive
    sector*)\
    Drive 1 Drive 2 Drive 3 Cycle Stripe
    0-127  P B1 **) B2 0 0
    128-255 B4  P B3 1
    256-383 B5 B6  P 2
    384-511  P B7 B8 1 0
    512-639 B10  P B9 1
    640-767 B11 B12  P 2
     :  :  :  :  :  :
    *) Sectors, cycles and stripes are 0-based,
    blocks and drives are 1-based
    **) Blocks B1, B2, B3, ... are data in the
    1st 128 global sectors (0-127),
    2nd 128 global sectors (128-255),
    3rd 128 global sectors (256-383), etc.
    P is parity for the blocks within the same stripe.

    As with the forward rotation, the forward dynamic rotation gets its name from the parity drive rotating forward (right) with each stripe until the start of a new cycle. It is very similar to forward, only stripe 1 arranges the blocks differently. The block to the right of parity P is the block with that stripe's lowest number, while in forward, the lowest-numbered block is always the first block. The blocks start to the right of parity P, incrementing by 1 with each block, rolling over to the first block, and continuing until reaching parity P from the left side. Some people call this right-symmetric.

    This rotation scheme is very rare.

  • Backward with sub-allocation (proprietary HP/Compaq-style RAID-5):  

    Backward with sub-allocation
    Example: HP-style RAID-5, 3 drives, block size 128 with sub-allocation of 32 sectors
    Local drive
    sector*)\
    Drive 1 Drive 2 Drive 3 Cycle Stripe
    0-31 B1 **) B2  P 0 0
    32-63 B3 B4  P
    64-91 B5 B6  P
    92-127 B7 B8  P
    128-159 B9  P B10 1
    160-191 B11  P B12
    192-223 B13  P B14
    224-255 B15  P B16
    256-287  P B17 B18 2
    288-319  P B19 B20
    320-351  P B21 B22
    352-383  P B23 B24
    384-415 B25 B26  P 1 0
    416-447 B27 B28  P
    448-479 B29 B30  P
    480-511 B31 B32  P
    512-543 B33  P B34 1
    544-575 B35  P B36
    576-607 B37  P B38
    608-639 B39  P B40
    640-671  P B41 B42 2
    672-703  P B43 B44
    704-735  P B45 B46
    736-767  P B47 B48
     :  :  :  :  :  :
    *) Sectors, cycles and stripes are 0-based,
    blocks and drives are 1-based
    **) Blocks B1, B2, B3, ... are data in the
    1st 32 global sectors (0-31),
    2nd 32 global sectors (32-63),
    3rd 32 global sectors (64-95), etc.
    P is parity for the blocks within the same stripe.

    This is not a pure RAID-5. It is used by HP/Compaq server systems. While its parity rotates left, within data blocks, the data rotates multiple times between the non-parity drives. 

    This rotation scheme is quite common.

© 2024 Runtime Software