虚拟机故障:
一台 Linux 操作系统的服务器,EXT4 文件系统。每台虚拟机蕴含一个 qcow2 格局的磁盘文件和一个 raw 格局的磁盘文件。这台服务器上的 KVM 虚拟机被误删除,管理员分割咱们数据恢复核心要求复原 raw 格局的磁盘文件,次要复原的是寄存数据库和程序代码等数据的三台虚拟化服务器。
虚拟机数据恢复过程:
1、数据恢复工程师拿到这台服务器的硬盘后对所有硬盘做镜像备份;
2、在镜像文件上剖析 EXT4 文件系统,定位被删除虚拟机磁盘文件的节点地位,获取磁盘文件残留的索引信息;
3、校验残留索引信息的正确性,修复毁坏不重大的索引;
图为获取的索引等信息:
4、索引修复实现后,解析残留的各级索引,从虚拟机所在的卷中提取虚构磁盘文件;
5、依据虚构磁盘文件的提取状况,获取卷中未被索引到的自由空间;
6、校验提取进去的磁盘文件的正确性与完整性;
7、从自由空间中获取无效信息,尝试对虚构磁盘文件进行修补(如节点,目录项,数据库页等信息)。
图为提取出的自由空间:
8、因为索引失落,提取出的虚构磁盘文件并不残缺。针对数据库文件有失落的状况,能够从自由空间中获取数据库页去对数据库文件进行修补,但因为局部页所在区域被笼罩占用,只能尽量多的去补页;
9、对于寄存程序代码的服务器中的节点和目录项失落的状况,若节点或目录项有残留,能够尝试去补齐节点和目录项。但局部文件的节点和目录项都失落了。因为节点和目录项之间的相关联,这种状况无奈补齐。因为程序代码文件不具备肯定规律性,如果数据区失落则无奈补齐。
图为复原出的局部目录构造:
数据验证:
在尽可能的尝试对虚构磁盘文件及其中的数据库文件修补之后,由管理员对数据进行验证。因为上述的起因,数据有小局部失落,然而复原进去重要的数据没有问题,这次数据恢复工作无效。