【北亚服务器数据恢复】san环境下LUN Mapping出错导致文件系统一致性出错的数据恢复案例

服务器数据恢复环境:
san环境下的存储上一组由6块硬盘组建的RAID6,划分为若干LUN,MAP到跑不同业务的服务器上,服务器上层是SOLARIS操作系统+UFS文件系统。

服务器故障:
业务需求需要增加一台服务器跑新增的应用,工作人员在原服务器在线的状态下将其中一个lun映射到一台新服务器上。实际上这个刚映射过去的卷已经map到了solaris生产系统上的某个lun上了。新服务器对这个映射过来的卷进行初始化,原来的solaris系统上的磁盘报错,重启服务器后这个卷已经无法挂载了。
联系原厂工程师寻求帮助,原厂工程师检测后执行了fsck操作,完成fsck操作后文件系统挂载成功,查看数据时发现大量数据丢失或者文件大小变为0,最新的数据全部丢失。
本案例故障情况在san环境下比较常见,多数情况下是工作人员在没有考虑充分的情况下进行操作导致数据丢失。


在正常的工作模式下,san分配的卷为独立占用模式,如果将卷映射给两个或多个操作系统,就会导致文件系统一致性出错。
在这种故障情况下恢复数据,首先需要分析文件系统各个结构的损坏状态。本案例的文件系统是UFS,所以对任何一个需要恢复的文件,我们需要考虑目录信息、节点、数据区是否正常。如果上述三者均正常,数据可完整恢复。但多数情况下,执行fsck后INODE会被清除,即使留下目录信息,也无法与数据一一对应,这种情况下就只能参考文件内部格式进行类型式的恢复了。

服务器数据恢复过程:
1、将出现问题的lun完整备份,后续的数据分析和数据恢复操作都在备份文件进行,避免对原始数据造成二次破坏。
2、基于备份文件解析文件系统,经过分析发现文件中的iNode已经被清除,无法通过还原iNode的方式来恢复数据,只能通过文件类型进行处理。
3、对用户需要恢复的特定文件进行分析,发现采用vfs公文系统的索引文件具有强的类型特征,而且文件中包含目录信息。
4、按照vfs公文系统的索引结构特征,北亚企安数据恢复工程师编写程序提取数据,提取数据完成后根据特征重新命名。
5、按类型恢复数据文件,然后由用户方根据索引文件重新整理数据文件。
6、整理完成后对恢复出来的数据进行检测,检测完成后用户方确认恢复数据完整有效。本次服务器数据恢复工作完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/308255.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CodeWhisperer:编码世界中的声音启迪者

人烟 导语: 在数字化时代,编码已经成为了一种不可或缺的技能。而 CodeWhisperer(编码世界中的声音启迪者)则以其卓越的技术和深厚的知识为人们带来了独特的启发和指导。本文将介绍 CodeWhisperer 的背景和成就,探讨他是…

python/selenium/jenkins整合

1、新建python项目,专门写selenium代码,建议用pytest框架写。 2、把代码上传到代码库中。 3、环境配置: 3.1 在跑jenkins的机器上配置好python环境,需要python --version能在任何地方运行(配置好系统环境变量&#…

使用element中el-cascader级联选择器实现省市区街道筛选(非动态加载)

<template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"地址:" prop"addressList"><el-cascaderv-model"form.addressList":props"props":options&q…

封装uniapp签字板

新开发的业务涉及到签字功能&#xff0c;由于是动态的表单&#xff0c;无法确定它会出现在哪里&#xff0c;不得已封装模块。 其中涉及到一个难点就是this的指向性问题&#xff0c; 第二个是微信小程序写法&#xff0c; 我这个写法里用了u-view的写法&#xff0c;可以自己修改组…

Android Studio修改创建新布局时默认根布局

将Android Studio默认布局ConstraintLayout切换成LinearLayout 打开设置&#xff0c; Editor> File and Code Templates > Other > layoutResourceFile.xml 备注&#xff1a;创建时提示根布局仍然为ConstraintLayout&#xff0c;不用管这个&#xff0c;实际创建的…

【Linux系统化学习】进程终止的奥秘

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Liunx系统化学习 代码仓库&#xff1a;Gitee 目录 获取函数返回值 退出码 进程退出的场景 错误码 信号终止异常代码 进程的终止 main函数直接return exit函数 _exit函数 获取函数返回值 在C语言学…

测试开发工具推荐(含自动化、性能、稳定性、抓包)

今天将给大家推荐14款日常工作中经常用到的测试开发工具神器&#xff0c;涵盖了自动化测试、APP性能测试、稳定性测试、抓包工具等。 一、UI自动化测试工具 1. uiautomator2 Github地址 https://github.com/openatx/uiautomator2 介绍&#xff1a; openatx开源的ui自动化…

Vscode新手安装与使用

安装与版本选择 VS Code 有两个不同的发布渠道&#xff1a;一个是我们经常使用的稳定版&#xff08;Stable&#xff09;&#xff0c;每个月发布一个主版本&#xff1b;另外一个发布渠道叫做 Insiders&#xff0c;每周一到周五 UTC 时间早上6点从最新的代码发布一个版本&#x…

nginx+rsyslog+kafka+clickhouse+grafana 实现nginx 网关监控

需求 我想做一个类似腾讯云网关日志最终以仪表方式呈现&#xff0c;比如说qps、p99、p95的请求响应时间等等 流程图 数据流转就像标题 nginx ----> rsyslog ----> kafka —> clickhouse —> grafana 部署 kafka kafka 相关部署这里不做赘述&#xff0c;只要创…

无需翻墙|Stable Diffusion WebUI 安装|AI绘画

前言 最近终于有机会从围墙里往外看&#xff0c;了解到外面的世界已经有了天翻地覆的变化&#xff0c;感叹万千&#xff0c;笔者在本地mac&#xff0c;windows&#xff0c;linux&#xff0c;docker部署了不下20遍后&#xff0c;整理出来的linux极简避坑安装方案&#xff0c;供…

机器学习距离度量方法

1. 机器学习中为什么要度量距离&#xff1f; 机器学习算法中&#xff0c;经常需要 判断两个样本之间是否相似 &#xff0c;比如KNN&#xff0c;K-means&#xff0c;推荐算法中的协同过滤等等&#xff0c;常用的套路是 将相似的判断转换成距离的计算 &#xff0c;距离近的样本相…

Docker 入门 ------ 基本命令

1. 使用Docker镜像 1.1 获取镜像 主要命令: docker pull NAME[:TAG] NAME 为镜像名称&#xff0c;后跟:版本号&#xff0c;如果没有跟后面的版本号&#xff0c;默认拉取最新的稳定版本 例子&#xff1a; 上述命令相当于&#xff1a;docker.io/library/ubuntu:latest 1.2 查…