《深入 UFS Explorer:自定义 RAID 配置指南》
UFS Explorer支持以虚拟模式组装任何受支持的RAID配置,以便后续访问其内容或恢复丢失数据。启动RAID构建器;向RAID构建器主内容区域的列表中添加RAID组件;为不可用组件插入占位符(需当前RAID级别支持且软件兼容);调整组件的准确顺序;在“虚拟RAID配置”区域设置RAID参数;以虚拟模式组装阵列各部分。程序主窗口“存储设备导航面板”中打开的任何存储设备(包括驱动器、逻辑卷、磁盘
概述
RAID构建器(RAID Builder)支持以虚拟模式从组件组装复杂存储设备,或编辑通过自动重建流程生成的配置;同时提供阵列原始数据分析、内容及布局可视化展示等附加功能。需注意:通过该工具构建的存储设备均为真实对象的虚拟模拟,以安全的只读模式处理,不会对原始存储设备执行任何写入操作。
启动RAID构建器的方式:
- 通过程序主菜单“RAID”选项下的“构建RAID”(Build RAID)启动;
- 在“存储设备导航面板”中选中已组装的复杂存储设备,通过其右键菜单的“编辑RAID配置”(Edit RAID configuration)启动。
RAID构建器窗口包含以下部分:
- (1)主内容区域
- (2)位于主内容区域上方的RAID构建器主工具栏
- (3)右侧的“虚拟RAID配置”区域
- (4)配置面板上方的RAID分析工具集
- (5)窗口底部默认打开的“快速分析”面板(含上下文关联的十六进制查看器)
1. 主内容区域(Main content area)
主内容区域列出包含RAID组件的存储设备(物理驱动器、磁盘镜像、其他RAID集等)及其属性:
- 源存储设备名称及ID;
- 组件的起始扇区;
- 组件在源存储设备上的总扇区大小。
2. 主工具栏(Main toolbar)
主工具栏提供对主内容区域中RAID组件的操作工具,包含以下按钮:
- 添加占位符表示缺失磁盘:为降级RAID集中缺失(故障)的组件添加虚拟替代项(需当前RAID配置支持此类组装)。
- 向上移动组件:将主内容区域中选中的组件在列表中向上移动一个位置,调整其顺序。
- 向下移动组件:将主内容区域中选中的组件在列表中向下移动一个位置,调整其顺序。
- 编辑组件范围:为中内容区域选中的存储设备定义RAID组件的范围(扇区偏移量及偏移量后的扇区数);启用“应用到所有组件”(Apply to all components)时,指定的起始扇区和扇区数将应用于主内容区域中的所有存储设备。
- 恢复为完整大小:重置主内容区域中选中存储设备的起始扇区和扇区数(恢复为默认完整大小)。
- 移除选中组件:从主内容区域的列表中删除选中的存储设备。
- 从文件加载配置:打开此前在UFS Explorer中保存的、含已定义RAID配置的*.urcf文件。
- 将配置保存到文件:将RAID构建器中指定的配置保存为*.urcf文件,用于备份。
- 构建此RAID:基于已定义的配置构建虚拟复杂存储设备;RAID构建器将自动关闭,组装后的RAID集将显示在“存储设备导航面板”中,可像独立驱动器一样操作(打开、扫描丢失数据等)。
- 关闭RAID构建器:退出RAID构建器并返回程序主界面;需注意:若未提前保存,当前定义的配置将丢失。
3. 虚拟RAID配置(Virtual RAID configuration)
“虚拟RAID配置”区域以面板形式展示RAID属性集,点击每个属性旁的“修改值”(Change value)按钮,可从下拉列表选择或手动输入值来修改属性。
面板中的参数集因所选RAID级别而异,仅显示当前级别需指定的必要参数:
- RAID级别(RAID level):复杂存储设备使用的数据分布方案类型。
- 校验分布(Parity distribution):在阵列组件间分配校验信息的算法类型(适用于RAID 5、RAID 6)。
- 条带大小(Stripe size):单个数据块/条带的大小(除RAID 1、JBOD外的所有级别适用)。
- 校验延迟(Parity delay):单个校验块包含的条带数(适用于部分采用延迟校验的控制器实现的RAID 5、RAID 6)。
- RAID别名(RAID alias):在UFS Explorer中为组装的复杂存储设备分配的名称(显示在“存储设备导航面板”中)。
- 异步I/O(Asynchronous I/O):启用并行数据访问模式,以提升大条带大小RAID集对大型请求的性能(除RAID 1、JBOD外的所有级别适用)。
- 自适应重建(Adaptive reconstruction):自定义RAID 1自适应重建方法的可能性。
- 数据轮换(Data rotation):在RAID 1E组件间分配镜像块的算法类型(镜像、交错)。
- 轮换偏移值(Rotation shift value):数据/校验轮换的指定偏移量(适用于RAID 5、RAID 6)。
- 数据分布算法(Data distribution algorithm):使用通过RAID定义语言(RAID Definition Language)外部指定的自定义数据分布算法。
- LUN:多LUN Drobo设备上的LUN编号(适用于Drobo BeyondRAID)。
当RAID级别设为RAID 6时,将额外显示用于配置降级/双重降级阵列恢复(如校验获取方式)的区域:
- Q条带算法(Q-stripe algorithm):计算阵列中Q校验块的算法。
- P和Q顺序(P and Q order):P校验块和Q校验块的写入顺序。
- 驱动器编号(Drives numbering):计算Q条带时的驱动器编号顺序(对称、非对称,包含/排除P和Q)。
- 伽罗瓦域乘法类型(GF multiplication type):里德-所罗门码(Reed-Solomon)计算Q条带时使用的乘法类型。
- 里德-所罗门码索引(Reed-Solomon code indexes):通过里德-所罗门方法计算Q条带时的乘数计算方式。
4. RAID分析工具集(RAID analysis toolkit)
该工具集提供辅助功能,便于验证正在组装的阵列一致性及所选RAID配置的正确性,包含以下工具:
- 磁盘数据报告(Disk data reports):为每个可读取组件生成动态熵报告(直方图),辅助确定RAID中驱动器的正确顺序;可调整组件顺序使高数据密度片段与所选RAID方案的网格模式匹配,支持配置直方图的X轴比例、Y轴比例、Y轴偏移,对直方图值应用西格玛平滑,选择自定义直方图颜色;报告与十六进制查看器同步,可直接导航到对应的十六进制位置。
- RAID网格模式(RAID grid pattern):以网格形式展示RAID模式,直观呈现数据/校验在阵列组件间的分布方案(含校验延迟、轮换偏移等);可在条带间导航或切换到十六进制查看器中的对应位置。
- 十六进制查看器模式(Hexadecimal viewer mode):十六进制查看器与主内容区域自动同步;选中组件时,其原始内容将显示在十六进制查看器面板中,便于分析磁盘数据并直观确认驱动器顺序;切换到其他组件时,软件将显示该组件相同位置的内容;十六进制查看器支持按RAID指定的条带大小进行“制表符跳转”;更多关于十六进制查看器的使用方法,可参考对应章节。
- 数据可视化(Data visualization):以可视化方式展示RAID数据内容,可标记磁盘上的各类结构(如MFT、MBR);该功能与十六进制查看器同步,可通过结构签名搜索所需结构;校验值检查及缺失数据重建(适用时)将自动执行。
5. “快速分析”面板(Quick analysis pane)
面板内容由RAID分析工具集中当前激活的工具决定,默认激活的分析工具为十六进制查看器。
自动RAID重建(Automated RAID reconstruction)
若UFS Explorer软件设置中启用“检测已知RAID”(Detect known RAID)选项,且有足够信息确定正确参数,部分RAID配置可被软件自动识别并组装。重建存储设备所需的驱动器数量取决于RAID布局,连接必要驱动器后,只需使用程序主菜单的“刷新”(Refresh)选项即可触发自动重建。
重建成功后,组装的复杂存储设备将显示在“存储设备导航面板”中;可通过存储设备右键菜单的“编辑RAID配置”验证组件顺序及阵列的其他属性。
若RAID配置严重损坏或存在其他问题,程序可能无法自动组装RAID,但仍可通过手动模式(定义组件列表、组件顺序、RAID级别及其他适用参数)构建RAID。
手动RAID定义(Manual RAID definition)
UFS Explorer支持以虚拟模式组装任何受支持的RAID配置,以便后续访问其内容或恢复丢失数据。手动定义RAID的流程如下:
- 启动RAID构建器;
- 向RAID构建器主内容区域的列表中添加RAID组件;
- 为不可用组件插入占位符(需当前RAID级别支持且软件兼容);
- 调整组件的准确顺序;
- 在“虚拟RAID配置”区域设置RAID参数;
- 以虚拟模式组装阵列各部分。
程序主窗口“存储设备导航面板”中打开的任何存储设备(包括驱动器、逻辑卷、磁盘镜像、虚拟磁盘及其他复杂存储设备)均可作为RAID组件。
启动RAID构建器后,“存储设备导航面板”中项目的默认行为会改变:激活任意存储设备时,该设备将作为RAID组件添加到RAID构建器的主内容区域,而非在资源管理器/分区管理器中打开。
每个存储设备的右键菜单中还会新增“添加到RAID”(Add to RAID)选项。
若添加了错误组件,可在RAID构建器主内容区域选中该组件,点击工具栏的“移除选中组件”按钮或右键菜单中的对应选项删除。
对于降级阵列,需为每个缺失组件添加虚拟磁盘占位符才能正确构建RAID,可通过RAID构建器工具栏的“添加占位符表示缺失磁盘”按钮实现。
如需编辑存储组件顺序,可在主内容区域选中项目,通过“向上移动组件”和“向下移动组件”按钮设置其正确顺序。
若RAID组件大小不正确,或需调整其在源存储设备上的起始位置,可使用RAID构建器工具栏的“编辑组件范围”按钮或右键菜单的对应选项;如需重置指定范围,可使用“恢复为完整大小”功能。
不同RAID布局使用不同设置,“虚拟RAID配置”区域会适配所选RAID级别,仅允许指定当前级别所需的RAID参数。
RAID 6有额外的校验分布算法相关参数面板,仅当RAID包含缺失(故障)驱动器且需重建时,才需设置这些参数。
可通过多种渠道获取RAID的正确参数(RAID卡BIOS信息、配置文件、磁盘结构、设备文档等);若RAID类型或其他设置选择错误,将无法恢复完整数据。
基于已定义的配置组装阵列时,点击RAID构建器工具栏的“构建此RAID”按钮即可。
RAID重建成功后,阵列将作为新存储设备添加到“存储设备导航面板”中,可对其执行所有适用于其他存储类型的操作(包括将其作为另一RAID的组件);若UFS Explorer在该RAID上检测到有效文件系统,“已连接存储设备”树形结构中会显示该RAID的子节点(分区项目)。
保存RAID配置(Saving RAID configurations)
在组装RAID前,可通过RAID构建器主工具栏的“将配置保存到文件”工具保存RAID配置。
如需保存已组装的RAID配置,在“存储设备导航面板”中选中对应的复杂存储设备,使用右键菜单的“保存RAID配置”(Save RAID configuration)选项即可。
后续可通过UFS Explorer主菜单“打开”选项下的“镜像文件或虚拟磁盘”子项,从创建的*.urcf文件中加载该配置。
修正RAID配置(Correcting RAID configurations)
UFS Explorer中组装的错误RAID配置不会影响设备的“真实”设置,但无法从该RAID集中恢复数据。需构建参数正确的RAID才能成功恢复数据,且可进行任意次数的RAID重建尝试(软件不会修改源磁盘上的任何数据)。
修正步骤:在存储设备右键菜单中选择“编辑RAID配置”,RAID构建器将重新启动并加载该项目;完成必要调整后,使用RAID构建器主工具栏的“构建此RAID”功能即可。
嵌套RAID级别(Nested RAID levels)
RAID构建器支持组装不同配置的嵌套(混合)RAID集,但需对层级结构中的每个级别分别执行重建流程,且需按“从下到上”的顺序组装:
- 首先,按“手动RAID定义”章节所述,构建构成最低级(由第一个数字标识)的每个RAID单元;
- 组装完最低级的所有阵列后,重新启动RAID构建器,使用每个已获取RAID集上挂载的卷创建新阵列;最终RAID的类型由所用RAID级别中的第二个数字标识。
复合卷与非标准RAID级别(Composite volumes and non-standard RAID levels)
UFS Explorer支持处理由各类卷管理器及其他特定方案创建的虚拟存储设备,包括Windows动态磁盘与存储空间(Storage Spaces)、Apple软件RAID与基于APFS的融合驱动器(Fusion Drive)、Linux mdadm RAID与LVM。
软件可自动将物理组件或组件磁盘镜像识别为复合卷的一部分,并进行相应组装;组装结果将以带特定标识的复杂存储设备形式显示在“存储设备导航面板”中。
可通过存储设备右键菜单的“编辑RAID配置”检查其组件顺序或其他属性。
若元数据损坏或存在其他问题,软件可能无法自动组装复合卷,但仍可按“手动RAID定义”章节所述手动定义其参数。
自定义RAID配置
若需应用自定义RAID配置,需创建一个文本文件(ASCII格式或带格式标记的UTF-8/UTF-16格式),文件中包含RAID配置指令。RAID通过stripes
命令配置,该命令需传入“条带大小”(stripe size)和“模式长度”(pattern length)两个参数。
命令块用于描述存储组件及其顺序,格式规则如下:
- 逗号(,):分隔同一行的组件;
- 分号(;):开始描述下一行的组件;
- 可选参数:可给组件定义行“偏移”(bias);
- 格式特性:定义不区分换行,允许添加块注释(/…/)。
配置文件加载步骤
- 在“虚拟RAID配置”(Virtual RAID configuration)区域,从“RAID级别”(RAID level)参数旁的下拉列表中选择“自定义数据分布算法”(Custom data distribution algorithm);
- 点击“数据分布算法”(Data distribution algorithm)属性旁的“修改值”(Change value)按钮;
- 配置导入成功后,软件会弹出确认对话框,若配置无误,点击“确定”(OK)接受;
- 最后点击RAID构建器(RAID Builder)主工具栏的“构建此RAID”(Build this RAID)按钮,完成RAID组装。
配置示例与语法解析
基础示例:4驱动器RAID 5(左对称,64KB条带)
带换行格式:
stripes(128,4) {
1,2,3;
4,1,2;
3,4,1;
2,3,4;
}
无换行格式:
stripes(128,4) {1,2,3;4,1,2;3,4,1;2,3,4;}
语法解析:
stripes(128,4)
:定义配置参数——条带大小为128个扇区(64KB,1扇区=512字节),模式长度为4个条带;{...}
内的枚举:表示组件的序号;- 分号(;):标识新的模式行。
含偏移参数的等效写法
上述RAID 5配置也可通过“偏移(bias)参数”实现,格式如下:
stripes(128,4) {1,2,3,4(1),1(1),2(1),3(2),4(2),1(3),2(4),3(4),4(4)}
函数表达式(用于数据重建)
组件位置除填写序号外,还可指定函数表达式,支持三种类型:“通过校验重建”“通过里德-所罗门码重建”“校验与里德-所罗门码组合重建”。
1. 校验重建(Parity)
格式:P{组件序号列表}
说明:P
表示校验函数,大括号内为用于计算校验的组件序号。
示例:P{1,2,3}
(通过组件1、2、3计算校验)。
2. 里德-所罗门码重建(Reed-Solomon)
格式:Q(磁盘序号, 索引类型, 缺失磁盘索引){磁盘序号与索引列表(分号分隔)}
说明:
Q
表示里德-所罗门码函数;- 括号内参数:磁盘序号(Q条带位置)、索引类型(
g
=伽罗瓦域中索引的2次幂,i
=普通索引)、缺失磁盘索引; - 大括号内:用于计算里德-所罗门码的“磁盘序号+磁盘索引”(分号分隔)。
示例:Q(5,g,4){1,2,3;1,2;3}
。
3. 校验与里德-所罗门码组合重建(Parity and Reed-Solomon)
格式:PQ(磁盘序号P, 磁盘序号Q, 索引类型, 待重建磁盘索引1, 待重建磁盘索引2){磁盘序号与索引列表(分号分隔)}
说明:
PQ
表示组合计算函数;- 括号内参数:P条带磁盘序号、Q条带磁盘序号、索引类型、两个待重建磁盘的索引;
- 大括号内:用于计算里德-所罗门码的“磁盘序号+磁盘索引”(分号分隔)。
示例:PQ(6,7,i,4,5) {1,2,3;1,2,3}
。
含重建逻辑的RAID配置示例
示例a:4驱动器RAID 5(缺失驱动器3)
stripes(128,4) {
1,2,P{1,2,3}; // 用组件1、2计算校验,替代缺失的组件3
3,1,2;
P{1,2,3},3,1; // 用校验替代缺失的组件3
2,P{1,2,3},3; // 用校验替代缺失的组件3
}
示例b:5驱动器RAID 6(缺失驱动器3,冗余顺序:P→Q)
stripes(128,5) {
1,2,P{1,2,3,4}; // 用组件1-4计算P校验
4,1,2;
3,4,1;
P{1,3,4},3,4; // 用组件1、3、4计算P校验
2,P{2,3,4},3; // 用组件2-4计算P校验
}
示例c:5驱动器RAID 6(缺失驱动器3、5,冗余顺序:P→Q)
stripes(128,5) {
1,2,P{1,2,3,4}; // P校验(组件1-4)
Q(3,g,1){1,2;2,3},1,2; // Q校验(里德-所罗门码)
3,P{1,2,3},1; // P校验(组件1-3)
PQ{1,2,g,1,3}{3;2},3,PQ{1,2,g,3,1}{3;2}; // PQ组合校验
2,Q(1,g,2){2,3;1,3},3; // Q校验(里德-所罗门码)
}
含“校验延迟”的配置(用repeat函数)
若RAID存在“校验延迟”(parity delay),可通过repeat
函数对整列(含函数表达式)设置循环,格式如下:
示例:4驱动器RAID 5(左非对称,16KB条带,16个条带的校验延迟)
stripes(32,64) { // 条带大小32扇区=16KB,模式长度64
repeat(16){1,2,3}; // 循环16次:用组件1-3
repeat(16){1,2,4}; // 循环16次:用组件1-2、4
repeat(16){1,3,4}; // 循环16次:用组件1、3-4
repeat(16){2,3,4}; // 循环16次:用组件2-4
}
磁盘(组件)指定(drives章节)
drives
章节为可选配置:
- 若不指定:RAID构建器将使用已定义的组件;
- 若指定:该章节中的组件列表将替换RAID构建器主内容区域的原有列表。
支持的组件类型
组件类型 | 说明 | 格式 |
---|---|---|
disk |
物理驱动器 | disk(标识信息, 起始偏移, 使用大小) (后两个参数可选) |
image |
磁盘镜像文件 | image(文件路径, 起始偏移, 使用大小) (后两个参数可选) |
span |
预定义的跨度组件 | span(跨度名称, 起始偏移, 使用大小) (后两个参数可选) |
组件标识信息规则
- Windows系统:物理驱动器用“驱动器序号”;
- macOS、Linux等系统:物理驱动器用“块设备完整路径”;
- 磁盘镜像:用“镜像文件完整路径”;
- 跨度卷:用“跨度标识名称”。
示例1:基础drives配置
disk(1,2048,233432); // 物理驱动器1,起始偏移2048扇区,使用大小233432扇区
image(C:/image1.img,0,4096); // 镜像文件,起始偏移0,使用大小4096扇区
image(C:/image2.img); // 镜像文件,默认使用完整大小
span(myspan01,0,40960); // 跨度组件myspan01,起始偏移0,使用大小40960扇区
示例2:完整HP RAID配置(4驱动器RAID 5)
drives { // 指定4个物理驱动器,起始偏移均为1088扇区
disk(1,1088);
disk(2,1088);
disk(3,1088);
disk(4,1088);
}
stripes(32,64) { // 条带大小32扇区=16KB,模式长度64
repeat(16){1,2,3};
repeat(16){1,2,4};
repeat(16){1,3,4};
repeat(16){2,3,4};
}
仅含drives章节的作用
若配置文件仅包含drives
章节,仅会将组件加载到RAID构建器中,不定义任何RAID配置。
跨度(SPAN)定义(defspan章节)
可通过defspan
章节定义跨度(span),且需在作为组件使用前定义,格式如下:
基础格式
defspan(跨度名称){组件枚举}
说明:枚举内容与drives
章节支持的组件类型一致(含其他跨度)。
示例1:基础跨度定义
defspan("myspan01") {
disk(1,2048,233432); // 物理驱动器
image("C:/image1.img",0,4096); // 镜像文件
image("C:/image2.img"); // 镜像文件(完整大小)
span("myspan00",0,40960); // 引用其他跨度
}
示例2:通过RDL加载简单跨度
defspan("images") { // 定义跨度“images”,包含3个镜像文件
image("C:/image1.img");
image("C:/image2.img");
image("C:/image3.img");
}
drives {
span("images"); // 在drives中引用跨度“images”
}
stripes(1,1) {1} // 基础RAID配置(模式长度1,条带大小1)
更多推荐
所有评论(0)