服务器数据恢复—如何应对双循环RAID5阵列的数据丢失问题?

本文主要是介绍服务器数据恢复—如何应对双循环RAID5阵列的数据丢失问题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器存储数据恢复环境:
一台存储中有一组由7块硬盘组建的RAID5阵列,存储中还有另外3块盘是raid中掉线的硬盘(硬盘掉线了,管理员只是添加一块的新的硬盘做rebuild,并没有将掉线的硬盘拔掉)。整个RAID5阵列的存储空间划分了一个LUN。

服务器存储故障:
硬盘出现故障导致存储中阵列瘫痪。
和管理员沟通,据管理员说是磁盘阵列中某些硬盘出现故障导致存储不可用,初步判断RAID中有硬盘掉线了。

服务器存储数据恢复过程:
1、将所有硬盘编号后取出。硬件工程师检测所有硬盘是否存在硬件故障,检测后并没有发现有硬盘存在物理故障。应该是某些硬盘上出现逻辑坏道或者其他原因导致RAID崩溃。将所有硬盘以只读方式进行扇区级全盘镜像,镜像完成后按照编号将所有磁盘按照原样还原到故障存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有硬盘底层数据。打开镜像盘后发现每512字节多加了一个8字节的校验,也就是说每扇区变成520字节。于是北亚企安数据恢复工程师编写小程序将8字节的校验去掉,方便后期的数据恢复工作。
3、转换完成后开始分析RAID结构。由于多了3块以前的离线的旧盘,所以需要比较每块磁盘。其中会有两块磁盘前面的部分数据相同,这两块磁盘中会有一块磁盘是旧的,这样的磁盘会有3对。旧盘的数据量没有新盘多,需要排除旧盘。
4、由于操作系统层面采用的是NTFS文件系统,通过MFT就可以获取RAID结构。搞清楚RAID结构后发现这不是一个普通的RAID5,而是一个双循环RAID5。通过常用软件如winhax无法重组RAID。经过测试发现UFS可以重组这个RAID,重组RAID后发现数据不是最新的,北亚企安数据恢复工程师判断出现这种情况的原因是管理员没有及时发现RAID5阵列中第一块硬盘掉线的情况,没有及时添加新的硬盘做rebuild。一段时间后又有一块硬盘掉线了,导致整个RAID不可用。所以还需要找出一块旧的磁盘,才能生成最新的数据。
5、尝试每次踢掉阵列中一块硬盘,然后重组RAID,看最新的数据是否可用,直到重组RAID中最新数据可用时为止。然后导出数据验证。
6、经过数据恢复工程师验证没有发现问题后,交由用户方进行检测。经过用户方的仔细检测和核对,确认恢复数据完整有效,认可数据恢复结果。本次数据恢复工作完成。

这篇关于服务器数据恢复—如何应对双循环RAID5阵列的数据丢失问题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S

Python实现将MySQL中所有表的数据都导出为CSV文件并压缩

《Python实现将MySQL中所有表的数据都导出为CSV文件并压缩》这篇文章主要为大家详细介绍了如何使用Python将MySQL数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到... python将mysql数据库中所有表的数据都导出为CSV文件到一个目录,并压缩为zip文件到另一个

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错