美文网首页Java 杂谈互联网科技
实习生删除虚拟机跑路了,还好有我们才能找回来!

实习生删除虚拟机跑路了,还好有我们才能找回来!

作者: Java黎先生 | 来源:发表于2018-09-12 20:54 被阅读7次

    一、服务器数据恢复描述

    需要进行数据恢复的服务器采用Linux操作系统、EXT4文件系统。由于实习生操作失误将服务器上的KVM虚拟机删除了3台。该服务器上每台虚拟机包含一个qcow2格式的磁盘文件,和一个大小约为1.2T的raw格式的磁盘文件,主要需恢复raw格式的磁盘文件。

    二、恢复服务器虚拟机过程

    1、分析服务器中的EXT4文件系统,将被删除的虚拟机磁盘文件节点位置定位;

    2、获取磁盘文件残留的索引信息;

    3、校验残留索引信息的正确性,修复破坏不严重的索引;

    图为获取的索引等信息:

    图 1

    4、完成修复后对服务器中残留的各级索引进行解析,从虚拟机所在的卷中提取虚拟磁盘文件;

    5、根据虚拟磁盘文件的提取情况,获取卷中未被索引到的自由空间;

    6、校验提取出的磁盘文件的正确性与完整性;

    7、从自由空间中获取有效信息,尝试对虚拟磁盘文件进行修补(如节点,目录项,数据库页等信息)。

    图为提取出的自由空间:

    图 2

    三、数据恢复结果

    1、由于索引丢失,提取出的虚拟磁盘文件并不完整,针对数据库服务器,数据库文件有丢失的情况,可以从自由空间中获取数据库页去对数据库文件进行修补,但由于部分页所在区域被覆盖占用,只能尽量多的去补页;

    2、对于存放程序代码的服务器中的节点和目录项丢失的情况,若节点或目录项有残留,可以尝试去补齐节点和目录项。但发现部分文件的节点和目录项同时丢失,根据节点和目录项之间相关联的特性,这种情况下无法补齐。另根据程序代码文件的特性,不具备一定的规律性,若其数据区丢失,无法补齐。

    图为恢复出的部分目录结构:

    图 3

    图 4

    四、数据验证

    在尽可能的尝试对虚拟磁盘文件及其中的数据库文件修补之后,由客户对数据进行验证。服务器数据恢复90%,数据恢复成功。

    Java高架构师、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费学习加群:835638062 点击链接加入群聊【Java高级架构】:https://jq.qq.com/?_wv=1027&k=5S3kL3v

    相关文章

      网友评论

        本文标题:实习生删除虚拟机跑路了,还好有我们才能找回来!

        本文链接:https://www.haomeiwen.com/subject/ciwbgftx.html