服务器数据恢复—KVM虚拟机被误删除如何恢复虚拟磁盘文件?

本文主要是介绍服务器数据恢复—KVM虚拟机被误删除如何恢复虚拟磁盘文件?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器数据恢复环境&故障:
1台服务器,Linux操作系统+EXT4文件系统,部署了数台KVM虚拟机,每台虚拟机包含一个qcow2格式的磁盘文件,和一个raw格式的磁盘文件。
工作人员操作失误删除了3台服务器上的KVM虚拟机,需要恢复raw格式的磁盘文件。

服务器数据恢复过程:
1、将故障服务器中所有磁盘编号后取出,硬件工程师检测后没有发现有硬盘存在硬件故障。将所有磁盘以只读方式进行全盘镜像。镜像完成后将所有磁盘按照编号还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析服务器中的EXT4文件系统,定位被删除的虚拟机磁盘文件节点位置。
3、获取磁盘文件残留的索引信息并校验残留索引信息是否正确,然后修复破坏不严重的索引。
获取的索引信息:

4、完成索引的修复后解析服务器中残留的各级索引,从虚拟机所在的卷中提取虚拟磁盘文件。
5、根据虚拟磁盘文件的提取情况,获取卷中未被索引到的自由空间。校验提取出的磁盘文件的正确性与完整性。
6、从自由空间中获取有效信息,尝试修补虚拟磁盘文件(如节点,目录项,数据库页等信息)。
提取出的自由空间:

7、由于部分索引丢失,提取出的虚拟磁盘文件并不完整。
针对存放数据库的服务器中数据库文件有丢失的情况,可以尝试从自由空间中获取数据库页去修补数据库文件。由于部分页所在区域被覆盖占用,只能尽量多的去补页。
针对存放程序代码的服务器中节点和目录项丢失的情况,若节点或目录项有残留,可以尝试去补齐节点和目录项。由于部分文件的节点和目录项同时丢失,根据节点和目录项之间相关联的特性,这种情况下无法补齐节点和目录项。再者程序代码文件不具备一定的规律性,若其数据区丢失,则无法补齐。
恢复出的部分目录结构:

8、尝试对虚拟磁盘文件及其中的数据库文件进行尽可能的修补之后,由用户方对恢复出来的数据进行验证。经过验证,服务器中绝大部分数据都恢复出来了,重要数据都在,用户方认可本次数据恢复结果。

这篇关于服务器数据恢复—KVM虚拟机被误删除如何恢复虚拟磁盘文件?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070943

相关文章

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

Linux(centos7)虚拟机没有IP问题及解决方案

《Linux(centos7)虚拟机没有IP问题及解决方案》文章介绍了在CentOS7中配置虚拟机网络并使用Xshell连接虚拟机的步骤,首先,检查并配置网卡ens33的ONBOOT属性为yes,然后... 目录输入查看ZFhrxIP命令:ip addr查看,没有虚拟机IP修改ens33配置文件重启网络Xh

Mysql利用binlog日志恢复数据实战案例

《Mysql利用binlog日志恢复数据实战案例》在MySQL中使用二进制日志(binlog)恢复数据是一种常见的用于故障恢复或数据找回的方法,:本文主要介绍Mysql利用binlog日志恢复数据... 目录mysql binlog核心配置解析查看binlog日志核心配置项binlog核心配置说明查看当前所

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4: