虚拟化技术原理是将硬件虚拟化给不同的虚拟机使用,利用虚拟化技术可以在一台物理机上安装多台虚拟机。误操作或者物理机器出现故障都会导致虚拟机不可用,虚拟机中的数据丢失。
虚拟化数据恢复环境:
有一台虚拟机是由物理机迁移到ESXI上面的,迁移完成后为该虚拟机做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了5年左右的数据。
该ESXI上共有二十几台虚拟机,EXSI连接一台某品牌EVA存储,所有的虚拟机(包括故障虚拟机)都存放在该EVA存储上。
虚拟机故障:
工作人员的误操作将数年前刚迁移后做的快照给还原了。快照是数年前做完迁移时创建的,也就是说虚拟机数据还原到数年前了,近几年更新的数据都被删除了。
还原快照相当于删除数据,意味着底层的存储空间会被释放一部分。误还原快照后,为了避免这部分释放的空间被重新使用覆盖,需要将连接这台存储的所有虚拟机都关机。如果有重要的虚拟机不能长时间宕机,则需要将不能长时间宕机的虚拟机迁移到别的EXSI上。刚好本例中有一台虚拟机不能长时间关机,只能做热迁移。迁移完所有虚拟机后就着手开始恢复虚拟机数据了。
虚拟机数据恢复过程:
Tips:Vmware文件系统是Vmfs,所有的虚拟机都存放在Vmfs中。Vmfs默认会将整个磁盘空间划分为1M的Block,分配给文件的最小单位为一个Block。Vmfs中有一片区域描述这些1M Block的使用情况,而每1024个Block(也就是1GB)会用一个MAP来记录。MAP记录的1M的 Block在物理磁盘上不一定是连续的,但这个MAP所记录的所有1M的Block一定是同一个文件的。即:一个文件是由N多个MAP中的1024个Block组成的,即FileSize = N * MAP * 1024(Block)。
Vmware的快照其实就是一个文件,还原快照也就是删掉一个文件。在Vmfs中,删除一个文件只会删掉文件的索引项,而不会删掉文件的实际数据以及指向数据的MAP。
1、备份过程在这里就不赘述了。备份完成后北亚企安数据恢复工程师编写程序开始提取vmfs中空闲的MAP。
2、在空闲的MAP中找到一个符合快照文件头结构的MAP。
3、根据快照文件的结构,提取快照文件剩下的碎片。
4、提取完快照文件后,将快照文件和原vmdk合并生成新的vmdk,新的vmdk中包含了所有的数据。
5、挂载新的vmdk并解释vmdk中的数据。