【服务器数据恢复】通过reed-solomon算法恢复raid6数据的案例
服务器数据恢复环境:
一台网站服务器中有一组由6块磁盘组建的RAID6磁盘阵列,操作系统层面运行MySQL数据库和存放一些其他类型文件。

服务器故障:
该服务器在工作过程中,raid6磁盘阵列中有两块磁盘先后离线,不知道是管理员没有注意或者没有重视这个情况,没有为该raid6磁盘阵列更换离线磁盘。当第三块硬盘离线后,该raid6阵列崩溃,服务器瘫痪,该服务器上跑的业务停摆。如果更换硬盘重新组建阵列,则阵列中的所有数据会全部丢失。
服务器管理员尝试通过市面上比较流行的数据恢复软件对服务器中的数据进行抢救,但是仍有大部分数据丢失无法恢复。管理员求助我们数据恢复中心,要求恢复服务器中所有数据。

服务器数据恢复过程:
1、将故障服务器内所有硬盘编号后取出,经过硬件工程师检测没有发现有硬盘存在明显的硬件故障,都可以正常读取数据。以只读方式将所有磁盘进行扇区级别的全盘镜像,镜像完成后按照编号将所有磁盘还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、服务器磁盘阵列中3块硬盘同时掉线的概率可以忽略不计,要恢复磁盘阵列中的数据首先需要搞清楚这几块硬盘离线的先后顺序,找到最后离线的硬盘。如果最后离线的那块硬盘存在硬件故障则修复硬件故障,然后提取数据。根据该raid阵列的存储结构分析raid结构参数,然后利用这些参数重组raid。
3、本案例服务器中的raid6磁盘阵列使用的是双校验模式:第一个校验方式是普通的oxr(异或运算),第二个校验方式是reed-solmon算法。一般情况下通过第一个校验方式即可恢复数据,但是本案例中radi6阵列中的前两块离线硬盘很早之前就已经掉线,不具备数据恢复的条件,所以无法通过第一种校验方式来恢复数据。第二种校验方式比较复杂,所以管理员通过市面上常用的数据恢复软件恢复出来的数据大量缺失,且数据库无法使用。
4、北亚企安数据恢复中心工程师团队对reed-solomon算法进行过技术攻关,拥有通过reed-solomon算法恢复数据的实际案例经验。经过一番努力,北亚企安数据恢复工程师通过分析获取到该raid6磁盘阵列的关键参数并提取出完整的镜像数据。
5、经过用户方管理员的验证,确认所有数据成功恢复,数据库可以使用,本次服务器数据恢复工作完成。
相关文章:
【服务器数据恢复】通过reed-solomon算法恢复raid6数据的案例
服务器数据恢复环境: 一台网站服务器中有一组由6块磁盘组建的RAID6磁盘阵列,操作系统层面运行MySQL数据库和存放一些其他类型文件。 服务器故障: 该服务器在工作过程中,raid6磁盘阵列中有两块磁盘先后离线,不知道是管理…...
LeetCode 2583.二叉树中的第 K 大层和:层序遍历 + 排序
【LetMeFly】2583.二叉树中的第 K 大层和:层序遍历 排序 力扣题目链接:https://leetcode.cn/problems/kth-largest-sum-in-a-binary-tree/ 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k …...
element ui 安装 简易过程 已解决
我之所以将Element归类为Vue.js,其主要原因是Element是(饿了么团队)基于MVVM框架Vue开源出来的一套前端ui组件。我最爱的就是它的布局容器!!! 下面进入正题: 1、Element的安装 首先你需要创建…...
websoket
WebSockets 是一种先进的技术。它可以在用户的浏览器和服务器之间打开交互式通信会话。你可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应,比较典型的应用场景就是即时通讯(聊天)系统。 <!DOC…...
案例:微服务从Java/SpringBoot迁移到Golan
基于 Java 的微服务,特别是那些使用 Spring Boot 的微服务,长期以来因其强大的功能和广泛的社区支持而闻名。Spring Boot 的约定优于配置方法简化了微服务的部署和开发,提供了大量开箱即用的功能,例如自动配置、独立功能和简单的依…...
小波变换模拟
小波变换是一种信号处理技术,通过在时间-频率域中使用基于小波的函数进行信号分析。小波变换在处理非平稳信号和图像时特别有用,可以将信号分解为不同频率的成分。它在数据压缩、去噪、特征提取等领域有广泛应用。 MATLAB中提供了用于二维离散小波变换的…...
cv::Mat图像操作
图像读写 //include header #include <opencv2/imgcodecs.hpp>/** Currently, the following file formats are supported: Windows bitmaps - *.bmp, *.dib (always supported) JPEG files - *.jpeg, *.jpg, *.jpe (see the Note section) JPEG 2000 files - *.jp2 (s…...
【机器学习基础】一元线性回归(适合初学者的保姆级文章)
🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: 【机器学习基础】机器学习入门(1) 【机器学习基…...
2024年软件测试岗位-面试
第一部分: 1、自我介绍:简历写到的快速描述,学校、学历、工作经验等(注意:不要过度优化简历,你不写别人可能会问,但你写了别人一定会问!) 第二部分: 1、功能测…...
【坑】Spring Boot整合MyBatis,一级缓存失效
一、Spring Boot整合MyBatis,一级缓存失效 1.1、概述 MyBatis一级缓存的作用域是同一个SqlSession,在同一个SqlSession中执行两次相同的查询,第一次执行完毕后,Mybatis会将查询到的数据缓存起来(缓存到内存中…...
J7 - 对于ResNeXt-50算法的思考
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 J6周有一段代码如下 思考过程 首先看到这个问题的描述,想到的是可能使用了向量操作的广播机制然后就想想办法验证一下&…...
R3F(React Three Fiber)基础篇
之前一直在做ThreeJS方向,整理了两篇R3F(React Three Fiber)的文档,这是基础篇,如果您的业务场景需要使用R3F,您又对R3F不太了解,或者不想使用R3F全英文文档,您可以参考一下这篇&…...
torch\tensorflow在大语言模型LLM中的作用
文章目录 torch\tensorflow在大语言模型LLM中的作用 torch\tensorflow在大语言模型LLM中的作用 在大型语言模型(LLM)中,PyTorch和TensorFlow这两个深度学习框架起着至关重要的作用。它们为构建、训练和部署LLM提供了必要的工具和基础设施。 …...
设计模式-创建型模式-单例模式
0 引言 创建型模式(Creational Pattern)关注对象的创建过程,是一类最常用的设计模式,每个创建型模式都通过采用不同的解决方案来回答3个问题:创建什么(What),由谁创建(W…...
备战蓝桥杯—— 双指针技巧巧答链表1
对于单链表相关的问题,双指针技巧是一种非常广泛且有效的解决方法。以下是一些常见问题以及使用双指针技巧解决: 合并两个有序链表: 使用两个指针分别指向两个链表的头部,逐一比较节点的值,将较小的节点链接到结果链表…...
微信小程序返回上一级页面并自动刷新数据
文章目录 前言一、获取小程序栈二、生命周期触发总结 前言 界面由A到B,在由B返回A,触发刷新动作 一、获取小程序栈 界面A代码 shuaxin(){//此处可进行接口请求从而实现更新数据的效果console.log("刷新本页面数据啦")},界面B代码 // 返回触…...
Spring⼯⼚创建复杂对象
文章目录 5. Spring⼯⼚创建复杂对象5.1 什么是复杂对象5.2 Spring⼯⼚创建复杂对象的3种⽅式5.2.1 FactoryBean 接口5.2.2 实例⼯⼚5.2.3 静态工厂 5.3 Spring 工厂的总结 6. 控制Spring⼯⼚创建对象的次数6.1 如何控制简单对象的创建次数6.2 如何控制复杂对象的创建次数6.3 为…...
Top-N 泛型工具类
一、代码实现 通过封装 PriorityQueue 实现,PriorityQueue 本质上是完全二叉树实现的小根堆(相对来说,如果比较器反向比较则是大根堆)。 public class TopNUtil<E extends Comparable<E>> {private final PriorityQ…...
Java 后端面试指南
面试指南 TMD,一个后端为什么要了解那么多的知识,真是服了。啥啥都得了解 MySQL MySQL索引可能在以下几种情况下失效: 不遵循最左匹配原则:在联合索引中,如果没有使用索引的最左前缀,即查询条件中没有包含…...
142.环形链表 ||
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整…...
Python从入门到精通(第14章):迭代器与生成器
开头导语 这是本系列第14章。前面你已经用过很多次迭代器和生成器——for x in data 的背后是什么,map 返回的对象为什么不能下标访问,range 为什么不会占很多内存——这些问题的答案都在本章。通过亲手实现一个迭代器类,你会对 Python 迭代协议有清晰的认识,遇到相关错误…...
如何通过ExplorerPatcher实现Windows 11界面个性化定制:从经典布局到高效工作流
如何通过ExplorerPatcher实现Windows 11界面个性化定制:从经典布局到高效工作流 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Wi…...
思考时爱用手托腮?警惕单侧发力拖垮颈肩平衡
很多人在工作、学习或思考时,习惯用手托腮,这个看似不经意的动作,会给颈肩带来持续负担,引发肌肉失衡劳损。用手托腮时,头部会向一侧倾斜,颈椎处于侧屈状态,颈部一侧肌肉持续紧张、牵拉…...
Qwen-Image镜像实战:基于RTX4090D,轻松实现图片问答与内容分析
Qwen-Image镜像实战:基于RTX4090D,轻松实现图片问答与内容分析 1. 引言:Qwen-Image镜像的核心价值 在当今多模态AI技术快速发展的背景下,能够同时理解图像和文本的视觉语言模型正变得越来越重要。Qwen-Image作为通义千问系列中的…...
长期用嘴呼吸,颈肩肌肉代偿性紧张
很多人因为鼻塞、习惯等原因长期用嘴呼吸,却不知道这会导致颈肩肌肉代偿性紧张,影响颈腰椎健康。用嘴呼吸时,头部会不自觉地向前伸、仰起,颈椎长期处于过度前屈或后伸状态,颈部肌肉持续牵拉,容易导致肌肉劳…...
如何高效使用Super IO插件:Blender批量导入导出终极指南
如何高效使用Super IO插件:Blender批量导入导出终极指南 【免费下载链接】super_io blender addon for copy paste import / export 项目地址: https://gitcode.com/gh_mirrors/su/super_io 想要在Blender中实现一键导入导出模型和图像吗?Super I…...
颠覆传统投资分析:TradingAgents-CN智能交易系统零门槛部署指南
颠覆传统投资分析:TradingAgents-CN智能交易系统零门槛部署指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融科技迅猛发展的…...
避坑指南:通达信DLL加密常见的5大误区与替代方案
通达信指标加密实战:5种DLL开发陷阱与零代码解决方案 在量化交易领域,指标公式的保护一直是开发者面临的棘手问题。最近三个月内,某金融开发者社区关于"通达信DLL加密失败"的求助帖增长了47%,暴露出传统加密方案存在显…...
LangFlow+Ollama快速部署:3步搭建本地AI应用开发环境
LangFlowOllama快速部署:3步搭建本地AI应用开发环境 想快速搭建一个属于自己的AI应用开发环境,但又不想折腾复杂的命令行和配置?今天,我来分享一个极其简单的方法:用LangFlow和Ollama,只需3步,…...
Shiny框架终极指南:输入控件与输出渲染的完美交互原理
Shiny框架终极指南:输入控件与输出渲染的完美交互原理 【免费下载链接】shiny Easy interactive web applications with R 项目地址: https://gitcode.com/gh_mirrors/sh/shiny Shiny是R语言生态中一款强大的交互式Web应用框架,它让数据科学家和分…...
