虚拟机技术是虚拟化技术的一种,所谓虚拟化技术就是将事物从一种形式转变成另一种形式,最常用的虚拟化技术有操作系统中内存的虚拟化,实际运行时用户需要的内存空间可能远远大于物理机器的内存大小,利用内存的虚拟化技术,用户可以将一部分硬盘虚拟化为内存,而这对用户是透明的。又如,可以利用虚拟专用网技术在公共网络中虚拟化一条安全,稳定的“隧道”,用户感觉像是使用私有网络一样。虚拟化技术看起来是一种更加安全的数据存储方式,但是世界上并没有100%安全的存储模式,一旦承载虚拟机的底层服务器或者存储出现故障甚至服务器硬盘出现故障都可能导致上层虚拟机不可用,虚拟机内的数据丢失。另外还有一种比较常见的虚拟机数据丢失的情况那就是工作人员误操作,今天小编在这里要为大家介绍一下虚拟机误删除快照的数据恢复方法。
先简单的介绍一下需要虚拟机还原快照的本质是什么;假设进行数据恢复的虚拟机是三年前由一台物理服务器上迁移到ESXI上的,在迁移成功后做了一个快照,这个ESXI上面一共运行了26台虚拟机,底层存储设备为某品牌的服务器。某天工作人员一个不小心进行了还原快照操作,这也就意味着虚拟机内的数据还原到了3年前刚迁移时的状态,最近3年的数据全部处于被删除的状态。
还原快照操作与删除数据是本质上是一样的,虚拟机删除快照后会将底层存储空间相应位置进行释放,然后重用该部分空间用于存储新数据。也就是说如果一台虚拟机不小心还原了快照,应该尽快将存储上的所有虚拟机关机或迁移到其他ESXI上。
虚拟机的情况介绍到这里,下面就开始进行数据恢复的部分介绍了,介绍数据恢复方法前先需要介绍vmfs文件系统的底层结构,vmfs文件系统是wmware虚拟化的自有文件系统,在这个文件系统下所有的硬盘被默认划分成若干个区域,这些区域最小单位叫做block,每个block的大小为1MB的容量,每1024个block组成为一个MAP,这些信息都记录在文件系统的某一片特定区域内。每个map里面的block在屋里硬盘上的存储顺序不连续但每个map里的所有block一定是同属于一个文件的,即FileSize:frombyte.com = N MAP 1024(Block)。
Vmfs文件系统的另一个特性也有助于我们恢复虚拟机数据。在vmfs文件系统中如果某文件被删除那么在底层数据层面只是删除掉了文件的索引项,实际数据内容及只想数据map实际上并没有被删除。在数据恢复时需要我们对整个文件系统里面的所有空闲map进行提取,然后找到符合快照文件头结构的map就可以根据文件结构继续提取剩下的文件碎片,将所有数据提取完成后结合原有的vmdk合成一个新的vmdk,最后把新和成的vmdk文件挂载起来,解释里面的数据即完成了虚拟机的数据恢复。
原文地址:https://blog.51cto.com/sun510/2433002