服务器数据恢复—RAID5阵列中部分成员盘重组RAID5阵列后如何恢复原raid5阵列数据?
服务器数据恢复环境:
一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。

服务器故障:
存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
通过故障存储中使用的阵列卡创建一组RAID5时,默认会全盘重建所有块校验,也就是说在组成RAID5阵列的任一条带中,总有一个校验块的数据是在创建时生成的,这对于原数据来说是极具破坏性的。
要想恢复原raid5阵列的数据,必须修复早掉线的那块硬盘。
数据恢复思路:通过对前后两次raid5阵列的组成结构的差异性进行分析,用之前掉线的盘重新补回之后重建RAID5阵列时被破坏的校验信息,再重组RAID,解释文件系统,导出文件。

服务器数据恢复过程:
1、将故障存储中所有磁盘标记后取出,硬件工程师检测后没有发现有硬盘存在硬件故障。以只读方式将所有磁盘进行扇区级全盘镜像,镜像完成后将所有磁盘按照原样还原到原存储中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有磁盘底层数据。根据被破坏前后的数据痕迹,获取到原RAID5阵列和后新建raid5阵列的结构。
3、分析原raid5阵列和新建raid5阵列之间的差异。北亚企安数据恢复工程师编写校验修正程序。按照原RAID5阵列结构重组raid5阵列,生成重组raid5阵列的镜像文件。
4、修正重组raid5阵列的镜像文件的系统错误,导出数据。
5、在数据恢复工程师的协助下,用户方在新搭建的环境中对恢复出来的数据进行测试。经过测试,用户方确认恢复出来的数据有效,认可数据恢复结果。

相关文章:
服务器数据恢复—RAID5阵列中部分成员盘重组RAID5阵列后如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障ÿ…...
【Linux】文件切割排序 cut sort
文章目录 Linux文件切割命令:cut1. cut命令的基本用法2. cut命令的选项和参数3. cut命令的实际应用案例 Linux文件排序命令:sort1. sort命令的基本用法2. sort命令的选项和参数3. sort命令的实际应用案例 常见问题和解决方案1. cut和sort命令的联合使用2…...
零售EDI:HornBach EDI 项目案例
HornBach 是一家总部位于德国的家居和建筑材料零售商,成立于1968年。它以大型仓储式商店而闻名,提供广泛的产品,包括建筑材料、园艺、家居装饰和工具等。 近期我们帮助HornBach的供应商W公司成功实现了与HornBach的EDI直连,除了满…...
SpringBoot 集成RabbitMQ 实现钉钉日报定时发送功能
文章目录 一、RabbitMq 下载安装二、开发步骤:1.MAVEN 配置2. RabbitMqConfig 配置3. RabbitMqUtil 工具类4. DailyDelaySendConsumer 消费者监听5. 测试延迟发送 一、RabbitMq 下载安装 官网:https://www.rabbitmq.com/docs 二、开发步骤:…...
基于java ssm springboot女士电商平台系统源码+文档设计
基于java ssm springboot女士电商平台系统源码文档设计 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统…...
Matlab数字信号处理——基于改进小波变换的图像去噪方法(7种去噪算法)
1.基于小波变换的阈值收缩法去噪 该方法利用小波变换分离出信号中的噪声成分,并通过设置合适的阈值对小波系数进行收缩,保留主要信息的同时,去除噪声。 %基于小波变换的阈值收缩法去噪算法 clear clc Iimread(nana.png); X im2double(I); …...
leetcode hot100【LeetCode 70. 爬楼梯】java实现
LeetCode 70. 爬楼梯 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数。 示例 1: 输入:n 2 输出:2 解释&…...
Java异常2
异常抛出的两种形式: 系统隐式抛出;int n10/0;—隐式抛出一个异常;手动抛出异常:throw new Exception(); import java.util.InputMismatchException; import java.util.Scanner;public class Main {public static void main(Str…...
2024熵密杯初始题2
问题简要: 已知 counter 0x7501E6EA token 0xF4CE927C79B616E8E8F7223828794EEDF9B16591AE572172572D51E135E0D21A 伪造出另一个可以通过验证的counter和token。 给出token生成及验证代码如下: import binascii from gmssl import sm3# 读取HMAC ke…...
echarts属性之title
title 标题组件,包含主标题和副标题。 在 ECharts 2.x 中单个 ECharts 实例最多只能拥有一个标题组件。但是在 ECharts 3 中可以存在任意多个标题组件,这在需要标题进行排版,或者单个实例中的多个图表都需要标题时会比较有用。 例如下面不…...
VUE errolog, vue 错误集
I) installation As to command “npm install” on cmd or powershell, we must execute it under the program folder...
驱动开发系列13 - Linux tasklet用法介绍
一:概述 Tasklet 是 Linux 内核中的一种轻量级任务调度机制,通常用于在中断上下文中执行短小的任务。它们在软中断处理过程中被调用,允许将较长的处理工作延后到一个较低优先级的上下文中,以减少中断处理的延迟。Tasklet 的使用可以帮助开发者更好地管理系统资源,提高性能…...
redis实现分布式锁,go实现完整code
Redis分布式锁 Redis 分布式锁是一种使用 Redis 数据库实现分布式锁的方式,可以保证在分布式环境中同一时间只有一个实例可以访问共享资源。 实现机制 以下是实现其加锁步骤: 获取锁 在 Redis 中,一个相同的key代表一把锁。是否拥有这把锁&…...
解析日期、编码
解析日期 这里指的是将字符串或者object类型的日期,转换成panda或python的日期类型。 主要的是dtype的变化:object / str —> datetime64[ns] # modules well use import pandas as pd import numpy as np import seaborn as sns import datetime# …...
【Qt】QApplication::restoreOverrideCursor():恢复鼠标光标到原始状态的用法解析
restoreOverrideCursor() 是 Qt 中 QApplication 类提供的一个静态函数,用来恢复鼠标光标到应用程序之前设置的状态。 在 Qt 中,你可以使用 QApplication::setOverrideCursor() 来临时更改鼠标光标的外观。例如,当执行一些耗时操作时&#x…...
重生之“我打数据结构,真的假的?”--2.单链表(无习题)
C语言中的单链表总结 单链表是一种基础的数据结构,广泛应用于C语言编程中。它由节点组成,每个节点包含数据和指向下一个节点的指针。单链表的优点在于动态内存分配和高效的插入与删除操作。本文将详细探讨单链表的定义、基本操作、应用场景以及相关示例…...
【有啥问啥】视频插帧算法技术原理详解
视频插帧算法技术原理详解 引言 视频插帧(Video Interpolation)技术,作为计算机视觉领域的一项重要应用,旨在通过算法手段在已有的视频帧之间插入额外的帧,从而提升视频的帧率,使其看起来更加流畅。这一技…...
Leetcode148,109以及二者的合并 -> Tencent面试算法题 - 无序双向链表转BST
根源简述 这道题是腾讯在2024/8/30考的一道面试题,整体来说,难度不大,就是代码量稍稍有点儿大,让我们一起来看一下吧 题目描述 整数无序双向链表能否转BST(二叉搜索树),如果能,怎么转…...
【蓝桥杯选拔赛真题77】python计算小球 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析
目录 python计算小球 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python计算小球 第十五届蓝桥杯青少年组python比赛选拔赛真题 一、题目要…...
获取Hive表备注
DESCRIBE EXTENDED 表名;先获取Detailed Table Information这行的data_type字段数据,进行正则匹配,拿到表备注,如下: String str ReUtil.get("parameters:\\{(?!.*?\\().*transient_lastDdlTime.*?comment(.*?)\\}&quo…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
