博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ESXI5.5虚拟机还原快照数据恢复处理办法
阅读量:6272 次
发布时间:2019-06-22

本文共 1448 字,大约阅读时间需要 4 分钟。

 现在由于虚拟化技术的兴起,很多企业开始运用虚拟化技术。虚拟化技术的原理就是将硬件虚拟化给不同的虚拟机使用。也就是一台物理的机器上可以有多台虚拟机。但如果物理机器出现故障或者存储服务器出现故障都会导致上层的虚拟机不可用。还有包括员工的误操作等原因。这些都会导致虚拟机里面的重要数据丢失,而弥补这些数据的唯一方法就是恢复数据。今天要说的就是一起vmware虚拟化误操作的数据恢复案例。

【环境描述】

1)故障虚拟机是由物理机迁移到ESXI上面的,迁移完成后以防不稳定做了一个快照。

2)虚拟机上运行的是一个SQL 2005的数据库,记录了从2011年到2016年所有的数据。

3)整个ESXI上一共有20几台虚拟机,EXSI连接的存储是一台HP EVA4400,所有的虚拟机(包括故障虚拟机)都放在EVA上。

 

【故障描述】

  由于员工的误操作,不小心还原快照了。快照是3年前做完迁移时建的,也就是虚拟机还原到3年前了。也就意味着这3年的数据都被删除了,而这些数据都是特别重要的。

 

【准备工作】

  还原快照就相当于删除数据,也就意味着底层的存储空间会被释放一部分。为了不让这部分空间重用,需要将连接这台存储的所有虚拟机都关掉,如果有重要的虚拟机不能长时间宕机,则需要迁移到别的EXSI上。而客户这里有一台虚拟机很重要,不能关机,只能做热迁移。而vmware的热迁移则是需要建立N多个快照来完成迁移的,这给后期的恢复快照工作带来很多麻烦。迁移完所有虚拟机后就需要对底层的EVA存储做镜像了,但是客户比较着急,镜像整个存储需要的时间太长。最后将EVA存储以只读的方式挂载到一台北亚备份服务器上,我们以只读的方式恢复数据。

 

【解决方案】

Vmfs文件系统介绍:

Vmware自己的文件系统叫做Vmfs,所有的虚拟机都存放在这个文件系统中。Vmfs文件系统中默认会将整个磁盘分成1M的Block,分配给文件的最小单位为一个Block。Vmfs文件系统中会有一片区域描述这些1M Block的使用情况,而每1024个Block(也就是1GB)会用一个MAP来记录。这个MAP里面记录的1M Block在物理磁盘上不一定是连续的。但这个MAP所记录的所有1M Block一定是同一个文件的。可以理解为一个文件是由N多个MAP中的1024个Block组成的,即FileSize:frombyte.com = N * MAP * 1024(Block)。

 

Vmware的快照其实就是一个文件,还原快照也就意味着是删掉一个文件。而在Vmfs文件系统中,删除一个文件只会删掉文件的索引项,而不会删掉文件的实际数据以及指向数据的MAP。而我们要做的就是提取整个vmfs文件系统中空闲的MAP,然后在空闲的MAP中找到一个符合快照文件头结构的MAP。然后根据快照文件的结构,提取快照文件剩下的碎片。提取完快照文件后,需要将快照文件和原vmdk合并生成新的vmdk。新的vmdk中包涵了所有的数据,接下来挂载新的vmdk解释里面的数据即可。

 

  随着虚拟化技术兴起,越来越多的企业开始应用虚拟化技术。伴随的虚拟化故障也越来越多,但虚拟化的数据恢复技术在国内却没有几家公司可以做,北亚数据恢复专注于虚拟化数据恢复技术研究,对虚拟化底层结构算法研究比较深入,可以解决虚拟化数据丢失出现的各类问题。

本文转自 宋国建 51CTO博客,原文链接:http://blog.51cto.com/sun510/1906414,如需转载请自行联系原作者
你可能感兴趣的文章
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
HUE集成
查看>>
docker centos环境部署tomcat
查看>>
python多线程编程: 使用互斥锁同步线程
查看>>
ireport报表自定义字体
查看>>
人为触发jquery ajax 中error回调方法
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
jQuery-强大的jQuery选择器 (详解)[转]
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>
设计模式01:简单工厂模式
查看>>
多线程讲解
查看>>
项目经理笔记一
查看>>
Hibernate一对一外键双向关联
查看>>
mac pro 入手,php环境配置总结
查看>>
MyBatis-Plus | 最简单的查询操作教程(Lambda)
查看>>