本文档详细介绍 R-Studio 中用于自定义 RAID 配置的描述文件语法。通过创建 XML 格式的描述文件,用户可以保存和加载复杂的 RAID 布局,包括预设 RAID 类型和完全自定义的块顺序表。
用户可以创建并保存自己的 RAID 配置。这些配置文件的语法类似于 XML 语言,文件保存在 R-Studio 设置中指定的 .xml 文件中。
本文档涵盖两种类型的描述文件:
- RAID 预设配置文件:用于标准 RAID 级别(如 RAID 0/1/5/6 等)
- 自定义创建的 RAID 布局文件:用于完全自定义的块顺序表
文件结构
文件头
文件以标准 XML 头开始:
<?xml version="1.0" encoding="utf-8"?>
根元素:<RAIDList>
<RAIDList> 是根元素,可以包含任意数量的 <RAID> 区块,需要闭合标签 </RAIDList>。
结构示例:
<RAIDList version="1">
<RAID [attributes]>
...
</RAID>
...
<RAID [attributes]>
...
</RAID>
</RAIDList>
注释
使用 XML 标准注释格式:
<!-- 注释内容 -->
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>
自定义 RAID 配置文件示例
<?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 元素 -->
</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>
条带集(Stripe Set)
条带集布局在《卷集、条带集与镜像》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="StripeSet" rows="2" type="1" order="7" parityDelay="1">
<Parents>
<Parent comp="RAID0Disk1.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="1"/>
<Parent comp="RAID0Disk2.dsk" name="Promise1+0 JBOD1.10" size="40060321792" order="2"/>
</Parents>
</RAID>
</RAIDList>
基本 RAID 5
该 RAID 布局在《基本 RAID 4 与 RAID 5 操作》主题中描述。
<?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>
带奇偶校验延迟的 RAID 5
该 RAID 布局在《带奇偶校验延迟的 RAID 5》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="16384" name="RAID5HP" rows="48" type="5" order="2" parityDelay="16" firstParity="16">
<Parents>
<Parent name="RAID5HPDisk1.bin" offset="557056" size="941359104" order="1"/>
<Parent name="RAID5HPDisk2.bin" offset="557056" size="941359104" order="2"/>
<Parent name="RAID5HPDisk3.bin" offset="557056" size="941359104" order="3"/>
</Parents>
</RAID>
</RAIDList>
高级 RAID 5(示例一)
该 RAID 布局在《高级 RAID 布局》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="4096" name="RAID5Complex" rows="9" type="256">
<Parents>
<Parent name="RAID5CDisk1.bin" offset="16777216" size="941359104" order="1"/>
<Parent name="RAID5CDisk2.bin" offset="16777216" size="941359104" order="2"/>
<Parent name="RAID5CDisk3.bin" offset="16777216" size="941359104" order="3"/>
</Parents>
<Table>
<Block id="A1">XorOfData</Block>
<Block id="B1">1</Block>
<Block id="C1">2</Block>
<Block id="A2">XorOfData</Block>
<Block id="B2">3</Block>
<Block id="C2">4</Block>
<Block id="A3">XorOfData</Block>
<Block id="B3">5</Block>
<Block id="C3">6</Block>
<Block id="A4">7</Block>
<Block id="B4">XorOfData</Block>
<Block id="C4">8</Block>
<Block id="A5">9</Block>
<Block id="B5">XorOfData</Block>
<Block id="C5">10</Block>
<Block id="A6">11</Block>
<Block id="B6">XorOfData</Block>
<Block id="C6">12</Block>
<Block id="A7">13</Block>
<Block id="B7">14</Block>
<Block id="C7">XorOfData</Block>
<Block id="A8">15</Block>
<Block id="B8">16</Block>
<Block id="C8">XorOfData</Block>
<Block id="A9">17</Block>
<Block id="B9">18</Block>
<Block id="C9">XorOfData</Block>
</Table>
</RAID>
</RAIDList>
高级 RAID 5(示例二,Mac Pro 风格)
该 RAID 布局在《高级 RAID 布局》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="524288" name="RAID_MacPro" rows="3" type="256">
<Parents>
<Parent name="RAID_MAC_ProDisk1.bin" fs="NTFS" offset="16777216" size="941359104" order="1"/>
<Parent name="RAID_MAC_ProDisk2.bin" offset="16777216" size="941359104" order="2"/>
<Parent name="RAID_MAC_ProDisk3.bin" offset="16777216" size="941359104" order="3"/>
<Parent name="RAID_MAC_ProDisk4.bin" offset="16777216" size="941359104" order="4"/>
</Parents>
<Table>
<Block id="A1" sequence="1">XorOfData</Block>
<Block id="B1">1</Block>
<Block id="C1">2</Block>
<Block id="D1" sequence="2">XorOfData</Block>
<Block id="A2">3</Block>
<Block id="B2">4</Block>
<Block id="C2" sequence="3">XorOfData</Block>
<Block id="D2">5</Block>
<Block id="A3">6</Block>
<Block id="B3" sequence="4">XorOfData</Block>
<Block id="C3">7</Block>
<Block id="D3">8</Block>
</Table>
<Sequences>
<Sequence id="1">A1 B1 C1</Sequence>
<Sequence id="2">D1 A2 B2</Sequence>
<Sequence id="3">C2 D2 A3</Sequence>
<Sequence id="4">B3 C3 D3</Sequence>
</Sequences>
</RAID>
</RAIDList>
RAID 6 Reed‑Solomon(左同步(标准))预设
该 RAID 布局在《RAID 6 预设》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID6RS" rows="5" type="8" order="1" parityDelay="1">
<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>
</RAID>
</RAIDList>
RAID 6(Double XOR)预设
该 RAID 布局在《RAID 6 预设》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID62X" rows="4" type="10" order="1" parityDelay="1">
<Parents>
<Parent name="RAID62X1.bin" fs="NTFS" size="941359104" order="1"/>
<Parent name="RAID62X2.bin" size="941359104" order="2"/>
<Parent name="RAID62X3.bin" size="941359104" order="3"/>
<Parent name="RAID62X4.bin" size="941359104" order="4"/>
<Parent name="RAID62X5.bin" size="941359104" order="5"/>
<Parent name="RAID62X6.bin" size="941359104" order="6"/>
</Parents>
</RAID>
</RAIDList>
高级 RAID 6
该 RAID 布局在《高级 RAID 布局》主题中描述。
<?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>
RAID 10(1+0)
该 RAID 布局在《RAID 10(1+0)》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID10" rows="1" type="2" order="7" parityDelay="1">
<Parents>
<Parent name="RAID10-1.bin" size="941359104" order="1"/>
<Parent name="RAID10-2.bin" size="941359104" order="2"/>
<Parent name="RAID10-3.bin" size="941359104" order="3"/>
<Parent name="RAID10-4.bin" size="941359104" order="4"/>
</Parents>
</RAID>
</RAIDList>
RAID 1E
该 RAID 布局在《RAID 1E》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID1E" rows="2" type="3" order="1" parityDelay="1">
<Parents>
<Parent name="RAID1EDisk1.bin" fs="NTFS" size="941359104" order="1"/>
<Parent name="RAID1EDisk2.bin" size="941359104" order="2"/>
<Parent name="RAID1EDisk3.bin" size="941359104" order="3"/>
</Parents>
</RAID>
</RAIDList>
RAID 5E
该 RAID 布局在《RAID 5E》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID5E" rows="5" type="6" order="1" parityDelay="1">
<Parents>
<Parent name="RAID5EDisk1.bin" fs="NTFS" size="941359104" order="1"/>
<Parent name="RAID5EDisk2.bin" size="941359104" order="2"/>
<Parent name="RAID5EDisk3.bin" size="941359104" order="3"/>
<Parent name="RAID5EDisk4.bin" size="941359104" order="4"/>
</Parents>
</RAID>
</RAIDList>
RAID 5EE
该 RAID 布局在《RAID 5EE》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID5EE" rows="4" type="7" order="1" parityDelay="1">
<Parents>
<Parent name="RAID5EEDisk1.bin" fs="NTFS" size="941359104" order="1"/>
<Parent name="RAID5EEDisk2.bin" size="941359104" order="2"/>
<Parent name="RAID5EEDisk3.bin" size="941359104" order="3"/>
<Parent name="RAID5EEDisk4.bin" fs="NTFS" size="941359104" order="4"/>
</Parents>
</RAID>
</RAIDList>
RAID 6E
该 RAID 布局在《RAID 6E》主题中描述。
<?xml version="1.0" encoding="UTF-8"?>
<RAIDList version="1">
<RAID blockSize="65536" name="RAID6E" rows="7" type="9" order="1" parityDelay="1">
<Parents>
<Parent name="RAID6E1.bin" size="941359104" order="1"/>
<Parent name="RAID6E2.bin" fs="NTFS" size="941359104" order="2"/>
<Parent name="RAID6E3.bin" size="941359104" order="3"/>
<Parent name="RAID6E4.bin" size="941359104" order="4"/>
<Parent name="RAID6E5.bin" size="941359104" order="5"/>
<Parent name="RAID6E6.bin" size="941359104" order="6"/>
</Parents>
</RAID>
</RAIDList>
元素与属性详解
<RAID> 元素
每个 <RAID> 描述一种 RAID 布局,必须包含 <Parents> 和 <Table> 部分,并可包含 <Sequences> 部分。
属性:
| 属性 | 类型 | 必需 | 说明 |
|---|---|---|---|
blockSize | u32 | 是 | RAID 的块大小(字节) |
name | string | 否 | RAID 布局的名称 |
rows | u16 | 是 | RAID 布局表中的行数 |
type | u16 | 是 | RAID 预设类型 (见下表) |
order | u16 | 条件必需 | RAID 子类型 (如 RAID 5 左异步 = 2)。 自定义布局时忽略 |
parityDelay | u16 | 是 | 奇偶校验延迟参数 |
支持的 type 值:
| 值 | 含义 |
|---|---|
| 1 | RAID 0(条带集) |
| 2 | RAID 10 |
| 3 | RAID 1E |
| 4 | RAID 4 |
| 5 | RAID 5 |
| 6 | RAID 5E |
| 7 | RAID 5EE |
| 8 | RAID 6 / Reed‑Solomon 编码 |
| 9 | RAID 6E / Reed‑Solomon 编码 |
| 10 | RAID 6 / 垂直 XOR 编码 |
| 256 | 自定义 RAID 表 |
注意:如果 RAID 类型参数与 RAID 表冲突,RAID 表始终优先。
<Parents> 部分
描述 RAID 的父对象(成员磁盘/分区),包含多个 <Parent> 元素。
<Parent> 元素
属性:
| 属性 | 类型 | 必需 | 说明 |
|---|---|---|---|
comp | string | 条件必需 | 包含父对象的文件容器 (如磁盘映像文件) |
name | string | 是 | RAID 父对象的名称 |
offset | u16 | 非零时必需 | 偏移量(字节) |
size | u16 | 是 | 对象大小(字节) |
order | u16 | 是 | RAID 对象的顺序 |
<Table> 部分
描述 RAID 布局表,包含多个 <Block> 元素。<Block> 的数量等于 <RAID> 中 parents(父对象数量) × rows(行数)。
<Block> 元素
指定 RAID 布局表中的块编号(正整数)或纠错块类型。
支持的纠错块类型:
| 值 | 含义 |
|---|---|
PD 或 ParityOfData | 数据奇偶校验(XOR) |
PA 或 ParityOfAll | 全奇偶校验 |
RS 或 ReedSolomon | Reed‑Solomon 纠错码 |
U 或 Unknown | 未知 |
I 或 Ignore | 忽略 |
任何其他值被视为 Unknown。
属性:
| 属性 | 类型 | 必需 | 说明 |
|---|---|---|---|
id | string | 是 | 块在布局表中的字母数字标识符, 如 A1(第1列第1行)、C2(第3列第2行)。Z 之后使用 AA、AB 等 |
sequence | string | 否 | 非默认序列的数字标识符 |
<Sequences> 部分
描述用于保持数据完整性的非默认数据校验和序列。不需要显式列出默认序列(即表行)。可包含任意数量的 <Sequence> 元素。
<Sequence> 元素
包含属于该序列的 RAID 块列表,块标识符之间用空格分隔。
属性:
| 属性 | 类型 | 必需 | 说明 |
|---|---|---|---|
id | u16 | 是 | 序列标识符 |
常见问题解答
- Q1:RAID 配置文件保存在哪里?
- A:文件保存在 R-Studio 设置(Settings)中指定的
.xml文件路径中。用户可在 Settings → Main → User paths 中查看和修改。
- Q2:type="256" 表示什么?
- A:type="256" 表示自定义 RAID 表,此时 R-Studio 将完全依赖
<Table>中的块顺序定义,忽略预设的 RAID 类型参数。
- Q3:
order属性在 RAID 5 中的常见值有哪些? - A:常见值:1 = 左同步,2 = 左异步,3 = 右同步,4 = 右异步。具体取决于 RAID 控制器的实现。
- Q4:
parityDelay参数如何设置? - A:奇偶校验延迟表示奇偶校验块在每块磁盘上连续出现的行数。标准 RAID 5 通常为 1,某些非标准布局(如带奇偶校验延迟的 RAID)可能大于 1。
- Q5:
<Block>的id命名规则是什么? - A:
id由列字母和行号组成。列:A、B、C、...、Z、AA、AB、...;行:1、2、3...。例如C2表示第 3 列第 2 行。
- Q6:自定义布局中
<Sequences>的作用是什么? - A:
<Sequences>用于定义非默认的数据校验序列(如列奇偶校验序列)。默认序列是行,无需显式列出。在复杂 RAID 6 布局中,可能需要为每列定义一个序列。
- Q7:R-Studio 演示模式下可以加载自定义 RAID 配置文件吗?
- A:可以。加载和预览功能均可用,但恢复文件时受大小限制(Windows/macOS >256KB,Linux >1024KB 无法保存)。
- Q8:配置文件中可以包含注释吗?
- A:可以。使用 XML 标准注释格式
<!-- 注释内容 -->。
| 核心要点 | 说明 |
|---|---|
| 文件格式 | XML,扩展名为 .xml |
| 根元素 | <RAIDList version="1"> |
| 核心元素 | <RAID>、<Parents>、<Table>、<Sequences> |
| RAID 类型 | 支持标准 RAID 0/1/4/5/6/10/1E/5E/5EE/6E 及自定义 (type=256) |
| 自定义布局 | 通过 <Table> 中的 <Block> 元素逐格定义块顺序和纠错类型 |
| 序列支持 | 通过 <Sequences> 定义非默认校验序列(如列奇偶校验) |
| 存储位置 | R-Studio Settings 中指定的用户路径 |
RAID 配置描述文件为高级用户提供了保存和复用复杂 RAID 布局的能力。无论是标准 RAID 还是完全自定义的块顺序表,都可以通过 XML 文件精确描述,便于在多个恢复任务中重复使用。