服务器数据恢复—异常断电导致RAID6阵列中磁盘出现坏扇区的数据恢复案例

服务器存储数据恢复环境:
一台存储中有一组由12块SAS硬盘组建的RAID6磁盘阵列,划分为一个卷,分配给几台Vmware ESXI主机做共享存储。该卷中存放了大量Windows虚拟机,这些虚拟机系统盘是统一大小,数据盘大小不确定,数据盘是精简模式。

服务器存储故障:
机房断电导致服务器存储异常关机,加电后存储无法使用。

服务器存储数据恢复过程:
1、将故障服务器存储的所有磁盘和备份数据的目标磁盘接入到Windows Server服务器上。将磁盘都设为脱机(只读)状态,看到的连接状态如下所示(HD1-HD12为目标备份磁盘,HD13-HD24为源故障磁盘,型号为HUS723030ALS640):

2、使用工具在底层读取HD13-HD24扇区,发现了大量损坏扇区,数据恢复工程师初步推断出现这种情况的原因是这种硬盘的读取机制与常见硬盘不一样。尝试更换主机、HBA卡、扩展柜,并将操作系统更换为Linux,均呈现相同故障表现。与用户方工程师沟通,用户方工程师回应此控制器对磁盘没有特殊要求。
检测硬盘损坏扇区的分布规律,服务器数据恢复工程师发现以下规则:
a、损坏扇区分布以256个扇区为单位。
b、除损坏扇区片断的起始位置不固定外,后面的损坏扇区都是以2816个扇区为间隔。
所有磁盘的损坏扇区(部分)分布:

北亚企安数据恢复工程师编写小程序,绕过处理每个磁盘的损坏扇区,将所有盘的数据做只读镜像。
3、基于镜像文件分析所有磁盘的底层数据。
经过分析发现损坏扇区呈规律性出现:
-每段损坏扇区区域大小总为256。
-损坏扇区分布为固定区域,每跳过11个256扇区遇到一个坏的256扇区。
-损坏扇区的位置一直存在于RAID的P校验或Q校验区域。
-所有硬盘中只有10号盘中有一个自然坏道。
分析HD13、HD23、HD24的0-2扇区得知分区大小为52735352798扇区,按RAID6的模式计算,将分区大小除以9等于5859483644扇区,与物理硬盘大小以及DS800控制器中保留的RAID信息区域大小吻合。根据物理硬盘底层表现,分区表大小为512字节,后面无8字节校验,大量的0扇区也无8字节校验。故原存储并未启用存储中常用的DA技术(520字节扇区)。
分区大小如下图(GPT分区表项底层表现,涂色部分表示分区大小,单位512字节扇区,64bit):

4、存储使用的是标准RAID6阵列,只需要分析出RAID成员盘数量以及RAID走向就可以重组RAID。
-分析RAID条带大小
整个存储被划分为一个大的卷,分配给几台ESXI做共享存储,卷的文件系统是VMFS。该VMFS卷中存放了大量的Windows虚拟机。Windows虚拟机大多使用NTFS文件系统,因此可以根据NTFS中MFT的顺序分析出RAID条带大小以及RAID走向。
-分析RAID是否存在掉线盘
镜像完所有磁盘后发现最后一块硬盘中并没有像其他硬盘一样有大量的坏道。最后一块硬盘中有大量未损坏扇区,这些未损坏扇区大多是全0扇区,因此可以判断这块硬盘是热备盘。
5、根据分析出来的RAID结构重组RAID。重组完成后能看到目录结构,但不确定是否为最新状态。随机检测几个虚拟机发现部分虚拟机数据异常,初步判断RAID中存在掉线的磁盘。依次将RAID中的每一块磁盘踢掉,然后查看刚才数据异常的地方,没有找到问题原因。
6、分析底层数据后发现问题不是出在RAID层面,而是出在VMFS文件系统层面。由于VMFS文件系统如果大于16TB会存在一些其他的记录信息,因此在组建RAID的时候需要跳过这些记录信息。再次重组RAID后查看以前数据异常的地方,已经没有问题了。
针对其中的一台虚拟机做验证,将所有磁盘加入RIAD中后,这台虚拟机是可以启动的,但缺盘的情况下启动有问题,因此可以判断整个RAID处在不缺盘的状态为最佳。

验证数据:
1、验证虚拟机
验证较为重要的虚拟机,发现大多数虚拟机都可以开机,进入登录界面。部分虚拟机开机蓝屏或开机检测磁盘,但是使用光盘修复之后都可以正常启动。
部分虚拟机开机如下:

2、验证数据库
验证重要虚拟机中的数据库,发现数据库都正常。通过查询master数据库中的系统视图,查出所有数据库信息如下:

3、检测整个VMFS卷是否完整
由于虚拟机数量很多,每台都验证的话,所需的时间会很长,因此检测整个VMFS卷,在检测VMFS卷的过程中发现部分虚拟机或虚拟机的文件被破坏。

批量恢复数据:
1、和用户方沟通并且通报了目前恢复数据的情况。用户对几台重要的虚拟机进行验证后,认可恢复的数据。于是北亚企安数据恢复工程师着手恢复所有数据。
准备好目标RAID,将重组的RAID数据镜像到目标阵列上,然后使用工具解析整个VMFS。
2、将恢复出来的VMFS卷连接到虚拟化环境中的一台ESXI5.5主机上,尝试将该VMFS卷挂载到的ESXI5.5的环境中。由于版本(用户方的ESXI主机是5.0版本)原因或VMFS本身有损坏,导致挂载不成功。

移交数据:
北亚企安数据恢复工程师将目标阵列上的数据带到用户方现场,使用工具导出VMFS卷中的虚拟机。
1、将目标阵列上的数据通过HBA卡连接到用户的VCenter服务器上。
2、在VCenter服务器安装工具,然后使用工具解释VMFS卷。
3、使用工具将VMFS卷中的虚拟机导入到VCenter服务器上。
4、使用VCenter的上传功能将虚拟机上传到ESXI的存储中。
5、将上传完的虚拟机添加到清单,开机验证。
6、如果有虚拟机开机出现问题,则尝试使用命令行模式修复;或者重建虚拟机并将恢复的虚拟机磁盘(既VMDK文件)拷贝过去。
7、由于部分虚拟机的数据盘很大,而数据很少。这种情况就可以直接导出数据,然后新建一个虚拟磁盘,最后将导出的数据拷贝至新建的虚拟磁盘中即可。
统计了一下整个存储中虚拟机的数量,整个存储中大约有200台虚拟机。目前的情况只能通过上述方式将恢复出来的虚拟机一台一台的恢复到用户的ESXI中。

总结:
所有磁盘坏道的规律如下表:

经过分析后得到关于坏道的规则表现:
-除去SN:YHJ6LEUD上的一个自然坏道外,其余坏道均分布于RAID6的Q校验块中。
-坏道区域多数表现为完整的256个扇区,正好是当时创建RAID6时的一个完整RAID块大小。
-活动区域表现为坏道,非活动区域坏道有可能不出现,如热备盘,由于上线不足10%,所以坏道数量就比其他在线盘少。
-其他非Q校验区域完好,无任何故障。
结论:通过上述坏道规则表现可推断:坏道为控制器生成Q校验,向硬盘下达IO指令时,可能表现为非标指令,硬盘内部处理异常,导致出现规律性坏道。
存储故障是由坏道引起的,导致恢复出来的数据有部分破坏,但不影响整体,结果也在可接受范围内。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/757641.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

word2016中新建页面显示出来的页面没有页眉页脚,只显示正文部分。解决办法

问题描述:word2016中新建页面显示出来的页面没有页眉页脚,只显示正文部分。设置了页边距也不管用。 如图1 图1 解决: 点击“视图”——“多页”——“单页”,即可。如图2操作 图2 结果展示:如图3 图3

Nginx 1.26.1最新版部署笔记

Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 以下是 Nginx 的一些核心功能和特点: 高性能的 Web 服务器: Nginx 被设计为处理高并发连接,具有非常高的性能和稳定性。反向代理: …

运维锅总详解Nginx

本文尝试从Nginx特性及优缺点、为什么具有文中所述的优缺点、Nginx工作流程、Nginx最佳实践及历史演进等角度对其进行详细分析。希望对您有所帮助。 Nginx特性及优缺点 Nginx简介 Nginx(发音为 “engine-x”)是一款高性能的开源Web服务器及反向代理服…

【折腾笔记】兰空图床使用Redis做缓存

前言 最近发现我部署在群晖NAS上的兰空图床程序在高并发的情况下会导致图片加载缓慢或出现图片加载失败的情况,于是我查阅了官方文档资料并进行了一系列的测试,发现兰空图床如果开启了原图保护功能,会非常的吃CPU的性能,尤其是在…

【Cpolar】如何实现外部网络对内部网络服务的访问

希望文章能给到你启发和灵感~ 如果觉得文章对你有帮助的话,点赞 关注 收藏 支持一下博主吧~ 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是Cpolar?三、如何安装Cpolar?3.1 Mac系统安装 四、最后 开篇说…

生命在于学习——Python人工智能原理(2.3.4)

三、Python的数据类型 3.2 Python的组合数据类型 3.2.4 字典-映射类型 映射类型是键-值数据项的组合,每一个元素都是一个键-值对,即元素是(key,value),元素之间是无序的,键-值对(…

6月28日PolarDB开源社区长沙站,NineData联合创始人周振兴将带来《数据库DevOps最佳实践》主题分享

6月28日(周五),PolarDB 开源社区将来到湖南长沙,与湖南的开发者朋友们一起进行数据库技术交流!NineData 联合创始人周振兴受邀参加,并将带来《数据库 DevOps 最佳实践》的主题分享。 本次活动议程&#xff…

在晋升受阻或遭受不公待遇申诉时,这样写是不是好一些?

在晋升受阻或遭受不公待遇申诉时,这样写是不是好一些? 在职场中,晋升受阻或遭受不公待遇是员工可能面临的问题之一。面对这样的情况,如何撰写一份有效的申诉材料,以维护自己的合法权益,就显得尤为重要。#李…

Application Studio 学习笔记(3)

一、工具栏按钮 1、panel控件添加工具栏按钮 展开panel控件的Advanced属性并点击Action Data,进入Action Data编辑界面 新增Action Data数据,Sequence设定工具按钮的显示顺序 默认工具按钮会显示在弹出工具栏中 勾选Add to Primary ToolBar后&#xff…

龙芯久久派到手开机测试

今天刚拿到龙芯久久派,没看到文档,只有视频,我来写个博客,做个记录,免得以后忘记 1.连接usb转ttl串口与龙芯久久派,如图所示。 2.将usb转串口接到电脑USB口 也就是这个接电脑上 3.打开串口调试助手或Secu…

惠海H6392 2.6v升5V 3.7V升9V 4.2V升12V 升压恒压芯片 小家电IC

惠海H6392升压恒压芯片是一款小家电、移动设备以及其他需要升压恒压电源的电子设备设计的DC-DC转换器。这款芯片以其独特的产品特性和广泛的应用场景,为电子产品设计者提供了高效、稳定的电源解决方案。 产品描述: H6392采用了简单的电流模式升压技术&a…

CesiumJS【Basic】- #027 加载倾斜摄影文件

文章目录 加载倾斜摄影文件1 目标2 代码2.1 main.ts3 资源加载倾斜摄影文件 1 目标 加载倾斜摄影文件(通常是.json和.b3dm配套使用) 2 代码 有意改变了高度,因为大部分情况下是需要手动调节高度的 2.1 main.ts import * as Cesium from cesium;const viewer = new Ces…

全国31省细分产品出口数据集(2002-2022年)

数据简介:整理全国31个省直辖市自治区按hs码分的22类细分产品的出口数据,只包含22类的细分,不包含更细的类目。可用来计算出口产品质量,出口产品技术复杂度等指标,数据区间为2002-2022年。 数据名称:31省细…

怎样查看自己的Windows电脑最近弄了哪些内容

一、需求说明 有时候我们的电脑别人需要使用,你不给他使用又不行,且你也不在电脑身边,你只能告诉他自己的电脑密码让他操作,此时你并不不知道他操作了哪些内容。 还有一个种情况是自己不在电脑旁边,且电脑没有锁屏&…

判断时间序列中的元素是否为:年初、年末、季初、季末

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 判断时间序列中的元素是否为: 年初、年末、季初、季末 Series.dt.is_year_start Series.dt.is_year_end Series.dt.is_quarter_start Series.dt.is_quarter_end 选择题 关于以下…

探索LangChain-Chatchat 0.3:一体化Agent与强大RAG模型的全面入门指南

介绍 LangChain-Chatchat 支持RAG和Agent0.3版本跟大模型解耦,支持Xinference、Ollama、LocalAI、FastChat、One API,可以非常方便的切换各个模型,本文只是介绍XinferenceXorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 X…

Go-知识测试-工作机制

Go-知识测试-工作机制 生成test的maintest的main如何启动case单元测试 runTeststRunnertesting.T.Run 示例测试 runExamplesrunExampleprocessRunResult 性能测试 runBenchmarksrunNtesting.B.Run 在 Go 语言的源码中,go test 命令的实现主要在 src/cmd/go/internal…

pip安装neuralcoref失败ERROR

最终解决的方法如下: git clone https://github.com/huggingface/neuralcoref.git cd neuralcoref pip install -r requirements.txt python setup.py install 原始步骤: 安装 neuralcoref 的依赖: 安装编译 neuralcoref 所需的依赖项&am…

Codeforces Round 954 (Div. 3) A B C D

A. X Axis time limit per test: 2 second memory limit per test: 256 megabytes input: standard input output: standard output You are given three points with integer coordinates x 1 x_1 x1​, x 2 x_2 x2​, and x 3 x_3 x3​ on the X X X axis ( 1 ≤ x i ≤ …

fiddler使用

1、设置抓取HTTPS的请求 先选中浏览器Browser---Chrome 默认是不抓https的数据包的 有时我们抓取的的包是https的,不是http的,就要做一些设置 Tools---Options 勾选Capture HTTPS CONNECTs 勾选Decrypt HTTPS traffic 勾选 Ignore server certificat…