© 2021 R-Tools Technology Inc.
All rights reserved.
Пользователь может создавать и сохранять собственные конфигурации RAID. Синтаксис файлов таких конфигураций схож с языком XML. Они хранятся в файле .xml заданном в Настройках R-Studio .
Примеры файлов конфигурации RAID приведены в разделе Файлы Описания Конфигураций RAID .
Есть два типа файлов конфигурации RAID: для имеющихся пресетов RAID и для созданных пользователем схем RAID.
<?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>
Структура файла
Заголовок Файла
Файл начинается со стандартного заголовка XML
<?xml version="1.0" encoding="utf-8"?>
Элемент RAIDList
<RAIDList>
Данный элемент может содержать любое число элементов <RAID>; в конце обязательно должен находиться закрывающий тег </RAIDList>
Пример структуры элемента:
<RAIDList>
<RAID [attributes]>
...
</RAID>
...
<RAID [attributes]>
...
</RAID>
Элемент RAID
Данный элемент описывает схему RAID.
Он должен содержать по крайней мере по одному элементу <Table> и <Parents> , а также может содержать один блок <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>
Атрибуты :
blocksize |
<u32> |
Обязательный |
Размер блока RAID в байтах |
name |
<string> |
Необязатальный |
Название схемы RAID |
rows |
<u16> |
Обязательный |
Число рядов в таблице схемы RAID . |
type |
<u16> |
Обязательный |
Тип пресета RAID. Поддерживаются следующие типы: 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: Пользовательская Таблица Raid Если параметр RAID type противоречит таблице RAID, то тогда всегда применяется таблица RAID. |
order |
<u16> |
Обязательный/Необязательный |
Подтип RAID. Например, order="2" означает Левый Асинхронный для схем RAID5. Любое значение для пользовательских схем RAID будет игнорироваться. |
parityDelay |
<u16> |
Обязательный |
Параметр Задержка четности. |
Пример структуры элемента:
<RAID blockSize="65536" rows="6" type="256">
<Parents>
</Parents>
<Table>
</Table>
<Sequences>
</Sequences>
</RAID>
Элемент Parents
Данный элемент описывает родительские объекты RAID. Он содержит элементы <Parent> конкретного RAID.
Пример структуры элемента:
<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>
Элемент Parent
Данный элемент определяет родительский объект RAID.
Attributes :
comp |
<string> |
Обязательный/Необязательный |
Файл-контейнер с родительским объектом. |
name |
<string> |
Обязательный |
Имя родительского объекта RAID. |
offset |
<u16> |
Обязательный если не 0 |
Величина смещения в байтах |
size= |
<u16> |
Обязательный |
Размер объекта в байтах |
order |
<u16> |
Обязательный |
Порядок объекта RAID |
Элемент Table
Данный элемент описывает таблицу схемы RAID. Он содержит элементы <Block> , число которых определяется двумя атрибутами элемента <RAID> : < parents>x<rows>.
Пример структуры элемента:
<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>
Элемент Block
Данный элемент задает номер блока в таблице схемы RAID (целое положительное число) или блок коррекции ошибок одного из следующих типов:
• PD или ParityOfData
• PA или ParityOfAll
• RS или ReedSolomon
• U или Unknown
• I или Ignore
Любое другое значение обрабатывается как Unknown .
Атрибуты:
id |
<string> |
Обязательный |
Буквенно-цифровой идентификатор блока в таблице схемы RAID. Элемент в третьей колонке второго ряда обозначается как C2 . После Z используется AA и т.д. |
sequence |
<string> |
Необязательный |
Цифровой идентификатор для последовательностей не по умолчанию. |
Элемент Sequences
Данный элемент описывает данные контрольной суммы последовательностей не по умолчанию, используемые для сохранения целостности данных. Явным образом определять последовательности по умолчанию (ряды таблицы) необязательно. Элемент может содержать любое число элементов <Sequence>.
Пример структуры элемента:
<RAIDList>
<RAID name="example" parents="4" rows="4" blocksize=" 16777216 ">
<Parents>
</Parents>
<Table>
...
</Table>
<Sequences>
<Sequence [attributes]> ... </Sequence>
...
<Sequence [attributes]> ... </Sequence>
</Sequences>
</RAID>
</RAIDList>
Элемент Sequence
Данный элемент содержит список принадлежащих последовательности блоков RAID, разделенных пробелом.
Атрибуты:
id |
<u16> |
Обязательный |
Идентификатор последовательности |
Пример элемента:
Смотри в разделе Пример файла конфигурации RAID .
Комментарии
<!-- Comment string -->
Стандартная строка комментария XML .