© 2023 R-Tools Technology Inc.
All rights reserved.
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.
There are two types of such description files: for RAID presets and custom-created RAID layouts.
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID5" rows="3" type="5" order="2" parityDelay="1">
<Parents>
<Parent comp="RAID5Disk1.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="1"/>
<Parent comp="RAID5Disk2.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="2"/>
<Parent comp="RAID5Disk3.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="3"/>
</Parents>
</RAID>
</RAIDList>
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID6Complex" rows="6" type="256">
<Parents>
<Parent name="img1.bin" size="941359104" order="1"/>
<Parent name="img2.bin" fs="NTFS" size="941359104" order="2"/>
<Parent name="img3.bin" size="941359104" order="3"/>
<Parent name="img4.bin" size="941359104" order="4"/>
<Parent name="img5.bin" size="941359104" order="5"/>
</Parents>
<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 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> and <Parents> sections and can contain one block <Sequences> ..
<RAIDList version="1">
<RAID blockSize="65536" name="RAID5" rows="3" type="5" order="2" parityDelay="1">
<Parents>
</Parents>
<Table>
</Table>
<Sequences>
</Sequences>
</RAID>
</RAIDList>
Attributes :
blocksize |
<u32> |
Required |
The block size of the RAID in bytes |
name |
<string> |
Optional |
The name of the RAID layout |
rows |
<u16> |
Required |
The number of rows in the RAID layout table. |
type |
<u16> |
Required |
The type of the RAID preset. The following types are supported: 1: RAID0 (Stripe set) 2: RAID10 3: RAID1E 4: RAID4 5: RAID5 6: RAID5E 7: RAID5EE 8: RAID6 / Reed-Solomon Encoding 9: RAID6E / Reed-Solomon Encoding 10: RAID6 / Vertical Xor Encoding 256: Custom Raid Table If the RAID type parameter contradicts to the RAID table, the RAID table always prevails. |
order |
<u16> |
Required/Optional |
The RAID sub-type. For example, order="2" means Left Asynchronous for RAID5 layouts. Any value for the custom RAID layouts will be ignored. |
parityDelay |
<u16> |
Required |
The Parity delay parameter. |
Section structure example:
<RAID blockSize="65536" rows="6" type="256">
<Parents>
</Parents>
<Table>
</Table>
<Sequences>
</Sequences>
</RAID>
Section Parents
This section describes the RAID parents. It contains the <Parent> elements of the RAID.
Section structure example:
<Parents>
<Parent comp="RAID5Disk1.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="1"/>
<Parent comp="RAID5Disk2.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="2"/>
<Parent comp="RAID5Disk3.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="3"/>
</Parents>
Element Parent
The element specifies the parent of the RAID.
Attributes :
comp |
<string> |
Required/Optional |
The file-container with the parent object. |
name |
<string> |
Required |
The object name of the RAID parent. |
offset |
<u16> |
Required is not 0 |
The offset value in bytes |
size= |
<u16> |
Required |
The object size in bytes |
order |
<u16> |
Required |
The order of the RAID object |
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 |
<string> |
Optional |
The numerical identifier for non-default sequences. |
Section Sequences
This section describes the non-default data checksum sequences used to preserve data integrity. It is not necessary to explicitly list default sequences (the table rows). Sequences can contain any number of the <Sequence> elements.
Section structure example:
<RAIDList>
<RAID name="example" parents="4" rows="4" blocksize=" 16777216 ">
<Parents>
</Parents>
<Table>
...
</Table>
<Sequences>
<Sequence [attributes]> ... </Sequence>
...
<Sequence [attributes]> ... </Sequence>
</Sequences>
</RAID>
</RAIDList>
Element Sequence
The element contains the list of the RAID blocks belonging to that sequence. The elements are separated by a space .
Attributes :
id |
<u16> |
Required |
The sequence identifier. |
Element example:
See the RAID configuration file example .
Comments
<!-- Comment string -->
An XML standard string for a comment.