Syntax of a Description File for RAID Configurations

Top  Previous  Next

You may create and store your own RAID configurations The syntax of those files is similar to that of the XML language. They are stored in an .xml file specified on the R-Studio Settings.

A number of file examples are shown on the Description Files for RAID Configurations topic.

RAID configuration file example

<RAIDList>

  <RAID name="RAID6Complex" parents="5" rows="6" blocksize="16777216">

    <Table>

      <Block id="A1">ReedSolomon</Block>

      <Block id="B1">1</Block>

      <Block id="C1">2</Block>

      <Block id="D1">3</Block>

      <Block id="E1">XorOfData</Block>

      <Block id="A2">4</Block>

      <Block id="B2">5</Block>

      <Block id="C2">6</Block>

      <Block id="D2">XorOfData</Block>

      <Block id="E2">ReedSolomon</Block>

      <Block id="A3">8</Block>

      <Block id="B3">9</Block>

      <Block id="C3">XorOfData</Block>

      <Block id="D3">ReedSolomon</Block>

      <Block id="E3">7</Block>

      <Block id="A4">12</Block>

      <Block id="B4">XorOfData</Block>

      <Block id="C4">ReedSolomon</Block>

      <Block id="D4">10</Block>

      <Block id="E4">11</Block>

      <Block id="A5">XorOfData</Block>

      <Block id="B5">ReedSolomon</Block>

      <Block id="C5">13</Block>

      <Block id="D5">14</Block>

      <Block id="E5">15</Block>

      <Block id="A6" sequence="1">XorOfAll</Block>

      <Block id="B6" sequence="2">XorOfAll</Block>

      <Block id="C6" sequence="3">XorOfAll</Block>

      <Block id="D6" sequence="4">XorOfAll</Block>

      <Block id="E6" sequence="5">XorOfAll</Block>

    </Table>

    <Sequences>

      <Sequence id="1">A1 A2 A3 A4 A5 A6</Sequence>

      <Sequence id="2">B1 B2 B3 B4 B5 B6</Sequence>

      <Sequence id="3">C1 C2 C3 C4 C5 C6</Sequence>

      <Sequence id="4">D1 D2 D3 D4 D5 D6</Sequence>

      <Sequence id="5">E1 E2 E3 E4 E5 E6</Sequence>

    </Sequences>

  </RAID>

</RAIDList>

File structure

File header

The file starts with a standard  XML header:

<?xml version="1.0" encoding="utf-8"?>

Section RAIDList

<RAIDList>

It can contain any number of the <RAID> sections and requires a closing element </FileTypeList>.

Section structure example:

  <RAIDList>

    <RAID [attributes]>

      ...

    </RAID>

    ...

    <RAID [attributes]>

      ...

    </RAID>

Section RAID

This section describes each RAID layout.

It must contain at least one <Table> section and can contain one block <Sequences> and one block <Offsets>.

Attributes:

name

<string>

Optional

The name of the RAID layout

parents

<u16>

Required

The number of parent objects

rows

<u16>

Required

The number of rows in the RAID layout table.

blocksize

<u32>

Required

The block size of the RAID in bytes.

Section structure example:

  <RAIDList>

    <RAID name="example" parents="2" rows="2" blocksize="16777216">

      <Table>

        ...

      </Table>

      <Sequences>

        ...

      </Sequences>

      <Offsets>

        ...

      </Offsets>

    </RAID>

  </RAIDList>

Section Table

This section describes the RAID layout table. It contains the <Block> elements which number is a product of two attributes in the <RAID> section: <parents> x <rows>.

Section structure example:

  <RAIDList>

    <RAID name="example" parents="2" rows="2" blocksize="16777216">

      <Table>

        <Block [attributes]> ... </Block>

        <Block [attributes]> ... </Block>

        <Block [attributes]> ... </Block>

        <Block [attributes]> ... </Block>

      </Table>

    </RAID>

  </RAIDList>

Element Block

The element specifies the block number in the RAID layout table (a positive integer number) or an error correction block of the following types:

· PD or ParityOfData
· PA or ParityOfAll
· RS or ReedSolomon
· U or Unknown
· I or Ignore

Any other value is treated as Unknown.

Attributes:

id

<string>

Required

The alpha-numerical identifier of the block in the RAID layout table. The element in the 3-rd column of the 2-nd line is designated as C2. AA is used after letter Z, and so on.

sequence

<u16> or row

Optional

The identifier of a sequence. The attribute should be specified only for checksum blocks of the sequences described in the <Sequences> section. Default: row

Section Sequences

This section describes the data checksum sequences used to preserve data integrity. It can contain any number of the <Sequence> elements.

Section structure example:

  <RAIDList>

    <RAID name="example" parents="4" rows="4" blocksize="16777216">

      <Table>

        ...

      </Table>

      <Sequences>

        <Sequence [attributes]> ... </Sequence>

        ...

        <Sequence [attributes]> ... </Sequence>

      </Sequences>

    </RAID>

  </RAIDList>

Element Sequence

The element contains the list of the RAID blocks separated by a space which belong to that sequence.

Attributes:

id

<u16>

Required

The sequence identifier.

Element example:

See the RAID configuration file example.

Section Offsets

This section describes the offsets of each parent object.. It contains the <Offset> elements which number should not exceed the value of the parents attribute of the <RAID> section. If the <Offsets> section is absent, offsets are treated as zero.

Section structure example:

  <RAIDList>

    <RAID name="example" parents="4" rows="4" blocksize="16777216">

      <Table>

        ...

      </Table>

      <Offsets>

        <Offset [attributes]> ... </Offset>

        <Offset [attributes]> ... </Offset>

        <Offset [attributes]> ... </Offset>

        <Offset [attributes]> ... </Offset>

      </Offsets>

    </RAID>

  </RAIDList>

Element Offset

The element specifies the offset of a RAID parent in bytes.

Attributes:

id

<u16>

Required

The RAID parent identifier. (from 1 to the parents attribute of the <RAID> section.)

Element example:

  <RAIDList>

    <RAID name="example" parents="4" rows="4" blocksize="16777216">

      <Table>

        ...

      </Table>

      <Offsets>

        <Offset id="1"> 0x00100</Offset>

        <Offset id="3"> 0x01000</Offset>

      </Offsets>

    </RAID>

  </RAIDList>

Comments

<!-- Comment string -->

An XML standard string for a comment.