服务器数据恢复—SAN环境下LUN被重复映射导致写操作不互斥的数据恢复案例
服务器存储数据恢复环境:
一台存储中有一组由6块硬盘组成的RAID6,划分为若干LUN,MAP到不同业务的SOLARIS操作系统服务器上。
服务器存储故障:
由于业务变化需要增加一台服务器,在存储在线的状态下将该存储中的某个LUN映射到这台新增加的服务器上并开始初始化,不料映射的这个LUN已经MAP到其他SOLARIS服务器上了。由于该LUN已经进行了部分的初始化,磁盘报错,重启后发现卷无法挂载。
SUN工程师检测后执行了fsck操作,执行fsck操作后文件系统虽然可以挂上,但是发现很大量数据丢失或文件大小变为0,特别是最新的数据损坏严重。
此类故障在SAN环境下较为常见,多数是人为导致,本案例情况就是如此。SAN分配出来的LUN是采用独占模式的,如果同时被几个操作系统控制,就会导致写操作不互斥,继而出现文件系统一致性出错的问题。
针对这类问题的数据恢复,需要深入文件系统,观察并分析具体的结构破坏情况。本案例中的文件系统是UFS,所以对任何一个需要恢复的文件而言,我们需要优先考虑目录信息、节点、数据区是否正常。如果这3个结构均正常,数据可完整恢复。多数情况下,执行fsck操作后INODE会被清除,即使留下目录信息,也无法与数据一一对应。这种情况下只能参考文件内部格式进行类型式的恢复了。
服务器存储数据恢复过程:
1、完整备份故障卷。因为RAID无故障,所以可以直接在SOLARIS环境中对原LUN做dd备份。后续的数据分析和数据恢复操作都在备份文件中进行,避免对原始数据造成二次破坏。
2、基于备份文件分析文件系统。经过分析确认需要恢复文件的inode已经被全部清除,无法恢复,只能按照文件类型进行处理。
3、分析需要恢复的特定文件,发现采用vfs文件系统的索引文件具有强的类型特征,同时文件中包含目录信息。
4、按照vfs文件系统的索引结构特征,北亚企安数据恢复工程师编写程序提取数据文件,提取完成后根据特征重新命名。
5、按类型恢复数据文件后,根据索引文件重新整理数据文件。
6、上述数据恢复操作完成后交由用户方检测。经过用户方仔细检测,发现目录索引文件基本上完整恢复,大部分数据文件恢复成功。针对无法恢复的文件,只能根据目录索引文件重新采集。用户方认可数据恢复结果。
相关文章:

服务器数据恢复—SAN环境下LUN被重复映射导致写操作不互斥的数据恢复案例
服务器存储数据恢复环境: 一台存储中有一组由6块硬盘组成的RAID6,划分为若干LUN,MAP到不同业务的SOLARIS操作系统服务器上。 服务器存储故障: 由于业务变化需要增加一台服务器,在存储在线的状态下将该存储中的某个LUN映…...
Linux系统安全加固:从防火墙到SELinux策略
1. iptables防火墙配置 •基础规则设定:学习如何设置iptable的基本规则,包括允许/拒绝特定端口的进出流量,限制特定IP地址的访问等。 •状态检查:利用iptables的状态检查功能,只允许已建立连接或相关联的流量通过&am…...

排序算法:归并排序,golang实现
目录 前言 归并排序 代码示例 1. 算法包 2. 归并排序代码 3. 模拟程序 4. 运行程序 5. 从大到小排序 归并排序主要操作 1. 合并 2. 分割(Divide)与递归排序(Conquer) 总体思想 循环次数测试 假如 10 条数据进行排序…...

CSS 的工作原理
我们已经学习了CSS的基础知识,它的用途以及如何编写简单的样式表。在本课中,我们将了解浏览器如何获取 CSS 和 HTML 并将其转换为网页。 先决条件:已安装基本软件,了解处理文件的基本知识以及 HTML 基础知识(学习 HTML 简介。目的:要了解浏览器如何解析 CSS 和 HTML 的基…...

买完就后悔?只需几步教你 Apple 怎么申请退款
苹果系统不同于 Android 系统的一点在于下载某一些 App 的时候需要付费才能下载,但是有时候在我们付费之后突然就不想要购买了怎么办呢?别急这可以申请退款,你知道 Apple 怎么申请退款吗?下面就带大家了解一下 Apple 申请退款的步…...

【保卫战】休闲小游戏 链游
...

如何构建自己的交易机器人开发环境
作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文主要讲解如何构建一个交易机器人开发环境。描述具体的步骤和工具,包括使用 GitHub Codespaces、Visual Studio Code(VS Code)…...
解决WordPress文章引用的图片不显示问题
在使用WordPress发布文章时,有时会遇到复制发布的文档中包含的外链图片无法正常显示的问题。然而,当我们将图片路径复制到浏览器中单独打开时,图片却可以正常显示。以下是解决这一问题的方法。 问题描述 当你在WordPress文章中引用外链图片…...

商业银行国际结算规模创新高,合合信息AI助力金融行业智能处理多版式文档
随着我国外贸新业态的快速增长,银行国际结算业务在服务实体经济发展、促进贸易投资便利化进程中发挥了越来越重要的作用。根据中国银行业协会近日发布的《中国贸易金融行业发展报告(2023—2024)》,2023年我国主要商业银行国际结算…...

数字芯片设计验证经验分享:将ASIC IP核移植到FPGA上——更新概念并推动改变以完成充满挑战的任务!
作者:Philipp Jacobsohn,SmartDV首席应用工程师 Sunil Kumar,SmartDV FPGA设计总监 本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用I…...

【Linux】Linux下的日志(日常级)
日志是日后工作中非常重要的一部分,现在写一份简单的日志项目可以帮助我们熟悉并理解原理。 目录 设计思路:一些实现细节:代码:日志的使用方法: 设计思路: 图示是我们的最终目的。 设计一个类࿰…...

手把手教你如何在Linux上轻松安装Python,告别编程入门难题
导语: Python作为当下最热门的编程语言之一,受到了越来越多人的喜爱。对于Linux用户来说,掌握如何在Linux上安装Python至关重要。今天,就让我带领大家一步步在Linux上安装Python,让你轻松迈入编程世界! 一…...

XSS-labs靶场(超详解)1-20关——附原码
level1 原码 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script> window.alert function() { confirm("完成的不错࿰…...

【网络安全】LockBit病毒入侵揭秘:如何防范与应对
文章目录 前言 主要特征攻击手段演进历程主要威胁防范与对策 如何入门学习网络安全【黑客】 【----帮助网安学习,以下所有学习资料文末免费领取!----】 大纲学习教程面试刷题 资料领取 前言 在数字时代,随着科技的飞速发展,网络…...

《开源大模型食用指南》适合中国宝宝的部署教程,基于Linux环境快速部署开源大模型
本项目是一个围绕开源大模型、针对国内初学者、基于 AutoDL 平台的中国宝宝专属大模型教程,针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导,简化开源大模型的部署、使用和应用流程,让更多的普通学生、研究者…...

体验教程:通义灵码陪你备战求职季
本场景将带大家体验在技术面试准备场景下,如何通过使用阿里云通义灵码实现高效的编程算法题练习 、代码优化、技术知识查询等工作,帮助开发者提升实战能力,更加从容地应对面试挑战。主要包括: 1、模拟题练习:精心挑选…...

(070)爬楼梯
思路:一次爬一个或者一次爬两个楼梯,终止条件,即是当n1或n2时,完成操作,当n>2时,总方法就等于一次爬一个楼梯的方法数加上一次爬两个楼梯的方法数。 解法一:递归解法 if(n 1)return 1;if(n 2)return 2…...

el-table 表格序号列前端实现递增,切换分页不从头开始
<el-table-column type"index" width"55" label"序号" :index"hIndex"> </el-table-column> 分页 <el-pagination size-change"handleSizeChange" current-change"handleCurrentChange"> <…...

NSSCTF-Web题目27(Nginx漏洞、php伪协议、php解析绕过)
目录 [HNCTF 2022 WEEK2]easy_include 1、题目 2、知识点 3、思路 [NSSRound#8 Basic]MyDoor 4、题目 5、知识点 6、思路 [HNCTF 2022 WEEK2]easy_include 1、题目 2、知识点 nginx日志漏洞执行系统命令 3、思路 打开题目,出现源码 题目要我们上传一个fi…...

分割损失:Dice vs. IoU
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 对于医学影像分割…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...

mq安装新版-3.13.7的安装
一、下载包,上传到服务器 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 二、 erlang直接安装 rpm -ivh erlang-26.2.4-1.el8.x86_64.rpm不需要配置环境变量,直接就安装了。 erl…...
JS设计模式(5): 发布订阅模式
解锁JavaScript发布订阅模式:让代码沟通更优雅 在JavaScript的世界里,我们常常会遇到这样的场景:多个模块之间需要相互通信,但是又不想让它们产生过于紧密的耦合。这时候,发布订阅模式就像一位优雅的信使,…...