服务器数据恢复—磁盘坏扇区导致raid6阵列崩溃的数据恢复案例

ops/2024/12/22 21:17:46/

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

服务器存储故障:
机房异常断电导致存储瘫痪,加电后存储依然不可用。

服务器存储数据恢复过程:
1、将故障存储的所有磁盘编号后取出,将所有磁盘和备份数据的目标磁盘连入到一台安装Windows Server系统的服务器上,将故障存储中的磁盘都设为脱机(只读)状态。
通过软件查看的连接状态(HD1-HD12为目标备份磁盘,HD13-HD24为故障存储中的磁盘):

2、在底层读取HD13-HD24扇区,发现了大量坏扇区。初步判断这种硬盘的读取机制与常规硬盘不一样。更换操作主机、HBA卡、扩展柜甚至将操作系统更换为Linux,均呈现相同问题。与用户方工程师沟通,用户方工程师回应此控制器对磁盘没有特殊要求。
3、对硬盘损坏扇区的分布规律进行检测后发现如下规则:
a、损坏扇区分布以256个扇区为单位。
b、除损坏扇区片断的起始位置不固定外,后面的损坏扇区都是以2816个扇区为间隔。
所有磁盘的损坏扇区分布如下表(只列出前3个损坏扇区):

北亚企安数据恢复工程师编写了一个小程序,绕过每个磁盘的损坏扇区,镜像完所有故障存储中磁盘的数据。后续的数据分析和数据恢复操作都基于镜像文件进行。
4、基于镜像文件仔细分析损坏扇区后发现损坏扇区呈规律性出现,具有以下规律:
a、每段损坏扇区区域大小总是256扇区。
b、损坏扇区分布位置有一定规律性,每跳过11个256扇区遇到一个坏的256扇区。
c、损坏扇区的位置存在于RAID的P校验或Q校验区域。
d、所有硬盘中只有10号盘有一个自然坏道。
5、分析HD13、HD23、HD24的0-2扇区,按RAID6计算,将分区大小除以9,与物理硬盘大小以及控制器中保留的RAID信息区域大小吻合。根据物理硬盘底层表现,分区表大小为512字节,后面无8字节校验,大量的0扇区也无8字节校验。故原存储并未启用DA技术(520字节扇区)。
分区大小如下图(GPT分区表项底层表现,涂色部分表示分区大小,单位512字节扇区,64bit):

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

9、验证数据库
验证重要虚拟机中的数据库,发现数据库都正常。其中有一个数据库,据用户描述是缺少部分数据,但是经过仔细核对后发现这些数据在数据库中本来就不存在。通过查询master数据库中的系统视图。
查询结果如下图:

10、由于虚拟机的数量很多,如果验证每台虚拟机所需时间很长,因此对整个VMFS卷做检测。在检测VMFS卷的过程中发现有部分虚拟机或虚拟机的文件被破坏。

11、北亚企安数据恢复工程师向客户描述了目前的恢复情况。用户对几台重要的虚拟机进行验证后,认可恢复的数据结果。于是着手恢复所有数据。
使用目标磁盘在一台存储上组建了一组RAID6阵列,将重组的RAID数据镜像到目标阵列上,然后解析整个VMFS文件系统。
12、将恢复好的VMFS卷连接到一台ESXI主机上,尝试将其挂载到的ESXI环境中。但是由于ESXI版本不同或VMFS本身有损坏,挂载不成功。尝试使用ESXI的命令挂载也不成功,于是放弃挂载VMFS卷。
13、安排工程师将那台新组建raid6阵列的存储带到用户方现场,依次导出VMFS卷中的虚拟机。
a、将存储上的数据通过HBA卡连接到用户的VCenter服务器上。
b、在VCenter服务器安装“UFS”工具,然后使用“UFS”工具解释VMFS卷。
c、使用“UFS”工具将VMFS卷中的虚拟机导入到VCenter服务器上。
d、使用VCenter的上传功能将虚拟机上传到ESXI的存储中。
e、将上传完的虚拟机添加到清单,开机验证。
f、如果有虚拟机开机有问题,则尝试使用命令行模式修复,或者重建虚拟机并将恢复的虚拟机磁盘(既VMDK文件)拷贝过去。
g、由于部分虚拟机的数据盘很大而数据很少。针对这种情况可以直接导出数据,然后新建一个虚拟磁盘,将导出的数据拷贝至新建的虚拟磁盘中即可。
通过上述方式将恢复的虚拟机逐台恢复到用户的ESXI环境中。


http://www.ppmy.cn/ops/105095.html

相关文章

Go父类调用子类方法(虚函数调用)

前言 在Go语言中,支持组合而不是继承。网上都说可以通过接口和结构体内嵌来模拟面向对象编程中的子类和父类关系。但给的例子或写法感觉都不是很好,难以达到我的目的(比如通过模板模式实现代码的重用等)。因此调查了一下实现方式…

基于LDA模型的经济金融政策文本研究与分析设计与实现,很详细

摘 要 经济金融政策文本的研究与分析对于理解国家经济发展方向和政策制定逻辑至关重要。近年来,随着信息技术的发展,基于文本的定量分析方法在经济金融领域得到广泛应用。LDA(Latent Dirichlet Allocation)作为一种典型的主题模型…

SpringBoot SSM vue在线作业考试系统

SpringBoot SSM vue在线作业考试系统 首页 图片轮播 作业信息 通知公告 登录注册 留言板 个人中心 我的收藏 后台管理 登录注册 个人中心 教师信息管理 学生信息管理 学院信息管理 专业信息管理 班级信息管理 作业信息管理 作业提交管理 通知公告管理 试卷管理 试题管理 系统…

jenkins

jenkins简介 Jenkins是一个开源CI&CD软件、提供友好操作界面的持续集成(CI)工具; 起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行;Jenkins用J…

使用 ip route 命令配置 Linux 路由表的详细指南

深入解析 Linux 路由表及其配置 在现代计算机网络中,路由表是网络通信的核心组成部分。Linux 作为一种广泛使用的操作系统,在路由表管理方面提供了强大的工具集。本文将详细介绍 Linux 路由表的基本概念、查看与配置方法,以及如何通过实际案…

【HarmonyOS】模仿个人中心头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (一)

【HarmonyOS】头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (一) Demo效果展示: 方案思路: 使用photoAccessHelper实现系统相册选择图片的功能。此API可在无需用户授权的情况下&#xff…

整数算术运算中的错误

如果一个整数被零除,将不会产生正确的结果,而是出现一个异常( exception ).在Java中,异常是标志错误的一种方法,我们将在第7章中详细地介绍。对变量或表达式应用%运算符,如果右侧的操作数是零&a…

【什么是电商供应链】

文章目录 前言一、商品来源与采购计划:二、商品信息与库存管理:三、订单处理与物流配送:四、金融服务与全球采购:总结 前言 电商供应链是将传统供应链电子商务化,通过互联网服务平台实现供应链交易过程的全程电子化&a…