虚拟机数据恢复环境:
故障虚拟机是由物理机迁移到EXSI上面的,迁移完成后做了一个快照;
故障虚拟机运行SQL的数据库,记录了6年的数据;
EXSI上共有二十几台虚拟机;EXSI连接的存储是一台HP EVA存储,所有的虚拟机(包括故障虚拟机)都放在EVA上。
虚拟机故障描述&分析:
由于工作人员的误操作将快照还原了。快照是3年前虚拟机做完迁移时做的,也就是说虚拟机还原到3年前的状态,最近3年的数据都被删除了。管理员联系我们数据恢复中心进行数据恢复。
还原快照相当于删除数据,意味着底层的存储空间会释放一部分。为了不让这部分释放的空间被重用覆盖,就必须将连接到这台EVA存储的所有虚拟机都关掉。不能长时间的宕机的重要虚拟机需要迁移到别的EXSI上。用户这里就有一台虚拟机不能关机,只能做热迁移。由于vmware的热迁移是需要建立N多个快照来完成迁移的,这会给后面的恢复快照工作带来很多麻烦。迁移完所有虚拟机后需要对底层的EVA存储做镜像,但是镜像整个存储需要的时间太长,用户比较着急。最后只能将EVA存储以只读的方式挂载到一台服务器上,以只读的方式恢复数据。
虚拟机数据恢复过程:
Vmware的文件系统是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,在空闲的MAP中找到一个符合快照文件头结构的MAP。
2、根据快照文件的结构,提取快照文件剩下的碎片。
3、提取完快照文件后,将快照文件和原vmdk合并生成新的vmdk,新的vmdk中包含了所有的数据。
4、挂载新的vmdk并解释里面的数据。由用户亲自对恢复出来的数据进行验证。
虚拟机数据恢复结果:
由于用户做过虚拟机的热迁移的操作,导致快照中的几个碎片被重用。最终恢复的数据中,最新的数据不可用。但由于需要恢复的数据是数据库,每天都备份2次。虽然最新的数据不可用,但备份的数据可用。整个恢复工作耗时2天。