故障情况简介:

需要进行数据恢复的设备是一台NetApp存储,共有24块磁盘组成。由于管理员删除文件夹,且时间比较久,删除有几个月时间。

可恢复性判断:
由于NetApp中的文件系统的特性,WAFL是“Write Anywhere File Layout”, 即“任意位置写入文件布局”的特性,所以覆盖之前的数据的可能性不大,可以进行尝试性数据恢复。

数据恢复步骤:
1,分析NetApp的数据结构,由于不同型号的WAFL文件系统版本各有不同且差距较大,所以需要根据节点的结构进行判断,比如数据块节点指针,或为8字节,或为12字节。经过人工的分析断定此次案例中的版本为WAFL7.3.4,数据块指针为8字节。

2,经过观察,该文件系统使用的blocksize为8+1扇区,其中前4个扇区为数据块,后一扇区为block标志,有的版本中,采用的将最后一个扇区内容压缩至数据扇区的最后一个扇区的最后,以节约磁盘容量。

块校验扇区
3,重要的是分析目录结构,这里面存放了文件夹,文件,以及文件系统本身的元信息。该结构存放了文件的节点,该节点唯一,父文件夹的节点,且与数据节点中的信息一致。

目录
4,分析完成这些重要的结构之后,就是进行全盘的扫描了,将我们需要的节点信息以及目录信息全部扫描出来,存放进数据库。
5,根据用户的需要,将需要的文件或文件夹的在数据库里面查找,建立我们需要的目录树,了解算法之后,根据需求编写相应的程序,提供根目录之后,后续基本就是靠程序跑出来了。

山西某公司NetApp存储不小心删除文件数据恢复成功案例的更多相关文章

  1. eclipse不小心删除文件如何恢复

    转自:https://blog.csdn.net/u012129031/article/details/78791277 1.右键点击java项目工程名,选择restort from history, ...

  2. Django Admin 删除文件同时删除资源文件(delete_upload_files)

    一  使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7  (Windows x86-64 executable in ...

  3. NetApp 存储的常用概念普及

    NetApp 存储的常用概念和命令1. Volume 和qtree卷(volume)是filer 上的一个基本空间单位,它可以是基于aggr划出的灵活卷(flexvol),也可以是直接由物理盘组成的传 ...

  4. hadoop 集群 加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令

    加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令 方式1:静态添加datanode,停止namenode方式 1.停止namenode 2.修改slaves文件,并更新到各个节点3.启动na ...

  5. 不小心rm删除文件怎么办

    不小心rm删除文件怎么办 rm 命令的副作用越来越显现.而且rm掉之后的东西想找回来很困难.有2个原则: 1 永远不要在root下操作,尤其是rm命令 2 写一个别名,代替rm 我就是在~/.bash ...

  6. 关于github在客户端不小心删除新仓库,重建后无法上传解决方法

    不小心删除了如果直接在客户端重建一个不行,首先找出本地新仓库,删除,然后在重新再客户端建立一个. 但此时如果两仓库名字一样,会发现无法上传. 此时应该在网页打开github,点击进入之前删除的仓库(云 ...

  7. 使用Git进行本地提交后,未上传提交,却不小心删除了本地提交或提交所在分支,怎么办?????

    使用Git进行本地提交后,未上传提交,却不小心删除了本地提交或提交所在分支,怎么办????? 不要紧!!!! 可以使用git reflog命令来帮助恢复删除的本地提交! 运行以下命令你就知道怎么用了! ...

  8. Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】

    作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS             阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...

  9. Git永久删除文件和历史记录

    目录 Git永久删除文件和历史记录 使用filter-branch 添加到.gitignore文件里并push修改后的repo 清理和回收空间 Git永久删除文件和历史记录 造成你想从git存储库中永 ...

随机推荐

  1. VM快照-克隆重要应用讲解及克隆后网卡问题解决

    快照:snapshot 1---2---3---5 用于以后 rollback 1 2 3 5 克隆前关机:halt 克隆之后连不上网 解决办法: 1.编辑eth0的配置文 vi/etc/syscon ...

  2. eclipse 精确查询

    ---恢复内容开始--- ctrl+H(一般都是这个,如果无效看你的自定义快捷键) 输入\b 查询的字符串 \b   后面的正则表达式选框必须选

  3. Entity Framework Core 之数据库迁移

    前言 最近打算用.NET Core写一份开源的简易CMS系统,来练练手 所以又去深入研究了一下Entity Framework Core 发现其实有些细节园子里还是很少讲到. 特意整理了几个细节. 正 ...

  4. 关于new,delete,malloc,free的一些总结

    首先,new,delete都是c++的关键字并不是函数,通过特定的语法组成表达式,new可以在编译的时候确定其返回值.可以直接使用string *p=new string("asdfgh&q ...

  5. face landmark 人脸特征点检测

    1.ASM&AAM算法 ASM(Active Shape Model)算法介绍:http://blog.csdn.net/carson2005/article/details/8194317 ...

  6. 转: web 页面加载速度优化实战-100% 的飞跃提升

    前言 一个网站的加载速度有多重要? 反正我相信之前来 博主网站 的人至少有 50% 在加载完成前关闭了本站. 为啥捏? 看图 首页完整加载时间 8.18s,看来能进来看博主网站的人都是真爱呀,哈哈. ...

  7. springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法

    springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  8. VS 2017 开发安卓环境搭建 问题总结

    VS 2017可以开发安卓啦,之前一直想尝试开发安卓,但是由于时间忙, Java只学了个基础,不如C#熟练所以一直没有机会接触安卓开发.既然需要利用VS2017开发安卓,那么第一步就是了解VS2017 ...

  9. 插入排序(Java实现)

    直接插入排序 public class InsertionSort { public static <T extends Comparable<? super T>> void ...

  10. numpy pandas 索引注意事项

    pandas.DataFrame 的 iloc # ------------------------------------------------------------ 'python式的切片,包 ...