Синтаксис Файла Описания Конфигураций RAID

Top  Previous  Next

Пользователь может создавать и сохранять собственные конфигурации RAID. Синтаксис файлов таких конфигураций схож с языком XML. Они хранятся в файлах   .xml.

Примеры файлов конфигурации RAID приведены в разделе Файлы Описания Конфигураций RAID .

Пример файла конфигурации RAID

<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>

Структура файла

Заголовок Файла

Файл начинается со стандартного заголовка  XML

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

Элемент RAIDList

<RAIDList>

Данный элемент может содержать любое число элементов <RAID>; в конце обязательно должен находиться закрывающий тег </RAIDList>

Пример структуры элемента:

   <RAIDList>

      <RAID [attributes]>

         ...

      </RAID>

      ...

      <RAID [attributes]>

         ...

      </RAID>

Элемент RAID

Данный элемент описывает схему RAID.

Он должен содержать по крайней мере один элемент <Table> , а также может содержать один блок <Sequences> и один блок <Offset> .

Атрибуты:

name

<string>

Необязательный

Название схемы RAID

parents

<u16>

Обязательный

Число родительских объектов

rows

<u16>

Обязательный

Число рядов в таблице схемы RAID

blocksize

<u32>

Обязательный

Размер блока RAID в байтах

Пример структуры элемента:

   <RAIDList>

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

         <Table>

            ...

         </Table>

         <Sequences>

            ...

         </Sequences>

         <Offsets>

            ...

         </Offsets>

      </RAID>

   </RAIDList>

Элемент 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

<u16> или row

Необязательный

Идентификатор последовательности. Атрибут должен быть задан только для блоков контрольной суммы последовательностей, описанных в элементе <Sequences>. По умолчанию: row

Элемент Sequences

Данный элемент описывает данные контрольной суммы последовательностей, используемые для сохранения целостности данных.  Он может содержать любое число элементов <Sequence>.

Пример структуры элемента:

   <RAIDList>

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

         <Table>

            ...

         </Table>

         <Sequences>

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

            ...

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

         </Sequences>

      </RAID>

   </RAIDList>

Элемент Sequence

Данный элемент содержит список принадлежащих последовательности блоков RAID, разделенных пробелом.

Атрибуты:

id

<u16>

Обязательный

Идентификатор последовательности

Пример элемента:

Смотри в разделе Пример файла конфигурации RAID .

Элемент Offsets

Данный элемент описывает смещения каждого родительского объекта. Он содержит элементы <Offset>, число которых не должно превышать значение атрибута parents элемента <RAID>. Если элемент <Offsets> отсутствует, то это означает, что смещения равны нулю.

Пример структуры элемент:

   <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>

Элемент Offset

Данный элемент задает смещение родительского объекта в байтах.

Атрибуты:

id

<u16>

Обязательный

Идентификатор родительского объекта RAID (от 1 до атрибута parents элемента <RAID>).

Пример элемента:

   <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>

Комментарии

<!-- Comment string -->

Стандартная строка комментария XML .