RAID5数据恢复—zfs文件系统下重组RAID5阵列的方法详解

简介: RAID5数据恢复环境:一台存储上有一组由12块SCSI硬盘(11块数据盘+1块热备盘)组建的RAID5磁盘阵列,FreeBSD操作系统+zfs文件系统。RAID5故障:

RAID5数据恢复环境:
一台存储上有一组由12块SCSI硬盘(11块数据盘+1块热备盘)组建的RAID5磁盘阵列,FreeBSD操作系统+zfs文件系统。

RAID5故障:
其中一块盘出现故障,需要重组该raid5磁盘阵列。

RAID5数据恢复过程:
1、将存储关机,将存储中所有磁盘标记后从槽位上取出。以只读方式将所有磁盘进行扇区级全盘镜像,镜像完成后将所有磁盘按照原样还原到存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有磁盘底层数据,获取重组raid5所需要的信息,包括:RAID5起始扇区、块大小(条带大小)分析、RAID5成员盘盘序、校验方向、数据走向。
2.1、RAID5起始扇区。
RAID起始扇区是指RAID内的数据在每块物理盘上的起始位置。起始扇区只存在于一块物理盘,大多数情况是0扇区。
1副本.png
使用数据恢复软件的同步功能将11块数据盘定位在0扇区,可以看到11块盘中只有3块盘(1号盘、2号盘和出现故障的那块盘)的0扇区有“55 AA”标志,这个标志说明是MBR磁盘结构。
2副本.png

分析raid5起始扇区位于哪块硬盘。先看出现故障的那块硬盘,这块故障硬盘的结尾显示这是一个GPT头备份且只有128MB大小。
3副本.png

剩下的0扇区有“55 AA”标志的另外2块磁盘(1号盘和2号盘)中的0扇区有起始扇区或校验。
2.2、块大小(条带大小)。
块也称条带,是RAID处理数据的基本单元,不同的RAID条带大小有所不同。由于一个校验区的大小是一个条带的大小,根据这个规则分析该RAID5实例。此实例使用的是zfs文件系统,同步显示11块物理盘的某个扇区,发现有一块盘的此扇区和其他盘的的此扇区明显不一样,这是位于该盘的校验区。顺着该盘的该扇区上下寻找,找到连续的128个扇区。这128个扇区就是这个RAID5的条带大小。
2.3、RAID5盘序。
同步定位11块硬盘的53654656扇区。发现1号盘的该扇区与其他盘的该扇区不同,这个是1号盘的校验区。接着分析1号盘的下一个条带,即53654656+128=53654784扇区,发现2号盘的这个扇区和其他盘的不同,所以2号盘从53654784扇区开始的条带是校验区。以此方式继续分析,找到3号盘的校验区,4号盘的校验区……,“P”字母即表示校验区。按照校验区的位置可得到盘序。这个实例的盘序正好是从1号盘开始依次递增的。
对于左结构来说,0扇区是起始扇区的物理盘一定是RAID5的1号盘;对于右结构来说,0扇区是起始扇区的物理盘一定是RAID5的2号盘。
4副本.png

2.4、校验方向。
RAID5的基本结构有左同步、左异步、右同步、右异步。左和右是对校验方向来说的,区别如表1和表2所示。该RAID5实例很明显是右走向的。
1表副本.png

左同步、左异步结构中的校验块都是从最后一块物理盘开始,右同步、右异步结构中的校验块都是从第一块物理盘开始。
判断校验方向的方法有两种:
方法一、先分析起始扇区,再分析条带大小,然后是盘序,盘序分析出来后校验方向很容易就能看出来。
方法二、如果盘序没有确定下来,只确定了起始扇区和条带大小,可以采用反推法(想了解反推法可以咨询北亚企安数据恢复工程师)。
2.5、数据走向。
数据的走向指同步或者异步。异步结构中,各条带组内的数据块均由低号盘向高号盘依次写入。同步结构中,每个条带组内第一个数据块写在校验块所在物理盘的下一个物理盘,若后面还有物理盘,则顺序往后写;若校验块所在物理盘后没有物理盘,则从校验块所在物理盘前面的物理盘开始从低号盘向高号盘顺序写入。
2表副本.png

3、RAID5实例分析过程(已确定此RAID5是右结构):
a、从“数据块A”入手。
5副本.png

查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID5属于异步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID5属于同步结构。
b、从“数据块A”入手。
6副本.png

查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID5属于异步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID5属于同步结构。
c、从“数据块A”入手。
7副本.png
查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID5属于同步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID5属于异步结构。
d、从“数据块A”入手。
8副本.png

查看“数据块A”末尾扇区的数据,然后再查看“数据块B”和“数据块C”开始扇区的数据。如果“数据块A” 末尾扇区的数据能够与“数据块B” 开始扇区的数据衔接,则该RAID5属于异步结构。如果“数据块A” 末尾扇区的数据能够与“数据块C” 开始扇区的数据衔接,则该RAID5属于同步结构。
4、重组RAID5阵列。
上面步骤分析出重组RAID5阵列所需要的信息,根据这些信息,我们就可以开始重组RAID5阵列了。
用工具打开并添加这11块硬盘。
9副本.png
9副本.png

将1.dsk添加到了左侧Connected storages里。
6副本.png

点击Build RAID选项,依照RAID5的盘序把10块盘都添加进去,开始组建RAID5阵列。
11副本.png

剔除出现故障的那块盘,在其位置添加时补一个空缺,并继续按照顺序添加完其它硬盘。点击标红框位置处的按钮,添加空缺硬盘。
12副本.png

选择校验方向和数据走向。本实例条带大小为28个扇区,即65KB,右异步结构。
13副本.png

点击Build按钮,在弹出窗口中点击find查找,选择zfs文件系统。
14副本.png

出现正在组建的RAID5阵列。
15副本.png
图15

相关文章
|
9月前
|
存储 数据挖掘
服务器数据恢复—ZFS文件系统下数据恢复案例
服务器存储数据恢复环境: ZFS Storage 7320存储阵列中有32块硬盘。32块硬盘分为4组,每组8块硬盘,共组建了3组RAIDZ,每组raid都配置了热备盘。 服务器存储故障: 服务器存储运行过程中突然崩溃,排除人为误操作、断电、进水和其他机房不稳定因素。管理员重启服务器存储,系统无法进入,需要恢复服务器存储中的数据。
|
11月前
|
存储 Linux iOS开发
文件系统选择合适的文件系统类型
【10月更文挑战第8天】
839 4
|
11月前
|
JavaScript 数据可视化
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
这篇文章介绍了如何使用vue-cli 2和3版本来创建Vue项目,并详细说明了两者之间的主要区别。
283 5
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
|
11月前
|
前端开发 小程序
扩展uview复选组件库支持自定义图片+自定义内容
扩展uview复选组件库支持自定义图片+自定义内容
391 6
|
11月前
|
缓存 数据挖掘 API
商品详情API接口的应用实践
本文探讨了商品详情API接口在电商领域的应用实践,介绍了其作为高效数据交互方式的重要性,包括实时获取商品信息、提升用户体验和运营效率。文章详细描述了API接口的特点、应用场景如商品展示、SEO优化、数据分析及跨平台整合,并提出了缓存机制、分页加载、异步加载和错误处理等优化策略,旨在全面提升电商运营效果。
|
11月前
|
人工智能 关系型数据库 Serverless
1024,致开发者们——希望和你一起用技术人独有的方式,庆祝你的主场
阿里云开发者社区推出“1024·云上见”程序员节专题活动,包括云上实操、开发者测评和征文三个分会场,提供14个实操活动、3个解决方案、3 个产品方案的测评及征文比赛,旨在帮助开发者提升技能、分享经验,共筑技术梦想。
1751 161
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
11月前
|
缓存 监控 API
淘宝API接口注意事项及要点
淘宝API接口的使用需注意以下要点:首先注册并认证开发者账号,获取API密钥;深入理解接口文档,确保参数合法准确;遵守调用频率限制,必要时申请提额;确保数据安全与隐私保护;合理处理错误与异常;优化缓存与性能;关注版本更新与兼容性;遵守合规性与法律要求;建立日志记录与监控机制。
|
8月前
|
存储 数据挖掘
服务器数据恢复—zfs文件系统服务器数据恢复案例
一台配有32块硬盘的服务器在运行过程中突然崩溃不可用。经过初步检测,基本上确定服务器硬件不存在物理故障。管理员重启服务器后问题依旧。需要恢复该服务器中的数据。
|
10月前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
592 6