服务器数据恢复—多块磁盘离线导致阵列瘫痪,上层lun不可用的数据恢复案例

本文主要是介绍服务器数据恢复—多块磁盘离线导致阵列瘫痪,上层lun不可用的数据恢复案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器存储数据恢复环境:
某品牌MSA2000存储,该存储中有一组由8块SAS硬盘(其中有一块热备盘)组建的RAID5阵列,raid5阵列上层划分了6个lun,均分配给HP-Unix小型机使用,主要数据为oracle数据库和OA服务端。

服务器存储故障:
该MSA2000存储RAID5阵列中2块硬盘出现故障离线,阵列中只有一块热备盘,虽然热备盘成功激活,RAID5阵列瘫痪,上层LUN无法使用,存储不可用。

服务器存储数据恢复过程:
1、收到故障存储中所有磁盘后,由硬件工程师对所有磁盘做物理故障检测,没有发现有硬盘存在明显物理故障,都可以正常读取。使用坏道检测工具检测所有磁盘,也没有发现有硬盘存在坏道。
2、将所有磁盘以只读方式做扇区级全盘镜像。镜像完成后将所有磁盘还给用户方,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

注:由于所有磁盘没有检测出存在明显的物理故障或者坏道,所以可以判断出磁盘离线的原因是读写性能不稳定。因为MSA2000存储中的raid控制器的磁盘检查策略非常严格,一旦阵列中有磁盘性能不稳定,控制器就将这些磁盘识别为坏盘并踢出RAID。一旦RAID中掉线的盘到超过该RAID级别所允许掉盘的最大数量,该RAID崩溃,上层基于RAID的LUN也将不可用。
3、MSA2000存储的LUN都是基于RAID的。分析所有磁盘中数据,发现其中一块盘的数据同其它盘不一样,可以初步判断这块盘是热备盘盘。分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,初步判断此硬盘是先掉线的那块磁盘。通过RAID校验程序对这个条带做校验,最终确定先掉线的那块硬盘。分析Oracle数据库页在每个磁盘中的分布情况,并根据数据分布的情况获取RAID的条带大小,磁盘顺序及数据走向等RAID的重要信息。根据分析出的RAID信息虚拟重组原始RAID。
4、分析LUN在RAID中的分配情况,以及LUN分配的数据块MAP。将每一个LUN的数据块分布MAP提取出来,北亚企安数据恢复工程师编写程序解析所有LUN的数据MAP,然后根据数据MAP导出所有LUN的数据。

5、分析所有导出的LUN,发现所有LUN中均包含HP-Unix的LVM信息。尝试解析每个LUN中的LVM信息,一共发现三个LVM:一个LVM中划分了一个LV,里面存放OA服务器端的数据;一个LVM中划分了一个LV,里面存放临时备份数据;剩余4个LUN组成一个LVM,只划分了一个LV,里面存放Oracle数据库文件。北亚企安数据恢复工程师编写LVM解释程序,尝试将所有LVM中的LV都解释出来,但发现解释过程中程序出错。
6、分析程序报错原因,开发工程师debug程序出错的位置。文件系统工程师对恢复出来的LUN做检测后发现存储瘫痪导致LVM信息损坏。尝试人工修复损坏的区域并同步修改程序,重新解析LVM逻辑卷。
7、搭建HP-Unix环境,将解释出来的LV映射到HP-Unix并尝试Mount文件系统,结果Mount文件系统出错。尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,修复完成后仍然无法挂载文件系统。怀疑vxfs文件系统的部分元数据可能被破坏,需要手工修复。
8、仔细分析解析出来的LV,根据VXFS文件系统的底层结构校验此文件系统是否完整。经过分析发现VXFS文件系统果然存在问题,原来存储瘫痪的时候VXFS文件系统正在执行IO操作,导致部分文件系统元文件损坏。手工修复损坏的元文件,直到能够正常解析VXFS文件系统。再次将修复好的LV挂载到HP-Unix小型机上,尝试Mount文件系统,这回没有报错,成功挂载。
9、在HP-Unix小型机上mount文件系统后,将所有用户数据备份至指定磁盘空间。
部分文件目录截图:

10、使用Oracle数据库文件检测工具“dbv”检测每个数据库文件的完整性,经过检测没有发现问题。再使用北亚企安自主研发的Oracle数据库检测工具进行检测,发现部分数据库文件和日志文件校验不一致。由数据库工程师对此类文件进行修复后再次校验,直到所有数据库文件均通过校验为止。
11、将恢复出来的Oracle数据库附加到原始生产环境的HP-Unix小型机中,尝试启动Oracle数据库,Oracle数据库启动成功。

12、由用户方配合,启动Oracle数据库和OA服务端。通过本地安装的OA客户端数据记录进行验证,并且用户方安排不同部门人员进行远程验证。经过仔细验证,确定恢复出来的数据完整可用,认可本次数据恢复结果。本次数据恢复工作完成。

这篇关于服务器数据恢复—多块磁盘离线导致阵列瘫痪,上层lun不可用的数据恢复案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948845

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

javacv依赖太大导致jar包也大的解决办法

《javacv依赖太大导致jar包也大的解决办法》随着项目的复杂度和依赖关系的增加,打包后的JAR包可能会变得很大,:本文主要介绍javacv依赖太大导致jar包也大的解决办法,文中通过代码介绍的... 目录前言1.检查依赖2.更改依赖3.检查副依赖总结 前言最近在写项目时,用到了Javacv里的获取视频

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2