虚拟化平台数据灾难的正确数据恢复方案

 

------------------------------基本情况简述------------------------------

 

基本配置客户采用的10台Dell R730服务器用作VMware宿主机,Dell 200T存储空间用作VMware storage存放虚拟机文件,VMware ESXi 6.5版本。

 

故障原因:因机房意外断电,UPS未能在预定时间内提供电力保障,导致整个环境未能及时关机,虚拟化异常断电。恢复电力后按顺序开机后发现部分虚拟机不能正常启动,浏览存储发现无法正常启动文件夹内除了一个vmware的log文件外其他文件全部丢失。

 

    客户的恢复需求是将其中3台核心虚拟机中的核心数据库能恢复出来就可以。因为业务比较紧急给的恢复时间最多只有3天。

 

------------------------------恢复步骤------------------------------

 

    制定项目处理步骤该步骤针对所有的vmware或者超融合平台都适用如果虚拟化或者超融合遇到故障可参考本方案结合自己的实际情况制定方案也可以联系云天工程师需求技术支持服务 

 

步骤1  备份数据 

 

1.准备应急空间紧急备份目前没有丢失的数据。这个备份采用的传统备份方式,仅备份有效数据即可。避免在恢复过程中有其他未知因素导致现有可以正常工作的数据出现数据丢失,导致数据故障进一步恶化。

 

2.VMware vSphere 中上将有错误storage中VMFS卷以正常方式卸载掉。然后将存储连接到光接口的备份服务器上。

 

3.使用云天VMware恢复工具将损坏卷镜像备份。后续所有的恢复操作均在备份上进行,不在原机上进行任何写入操作。

 

步骤2  分析故障原因

 

    在镜像VMFS卷中分析后得知,该故障根本原因是因为目录区的目录项在异常断电过程中未能正确保存,导致了文件目录丢失。通过VMFS文件系统底层原理一步步找到真实的虚拟机文件,发现虚拟机文件头不对。这种情况已经说明这个问题并非简单的目录项丢失的问题。很可能存在客户二次修复导致故障变严重的情况。 往往这种情况客户也不会具讲到底做了什么操作,因为责任太大了,即使某个工程师做了操作也不敢说自己做了修复操作。 所以我们只是尝试性跟客户那边确认后就不再继续追问。而是通过技术手段进一步定位文件碎片。最终根据MSSQL数据库中mdf文件固有的页面结构找到了根本原因。因为异常断电后客户重启发现部分虚拟机无法正常开启,所以按照网络上的教程对VMFS进行了命令修复。这个修复导致问题进一步严重了。

 

强烈建议无论出现什么故障先不要随便进行修复先保留好损坏后第一状态然后对这个状态做一个备份或者快照后再进行咨询专家获得技术支持后再区进一步操作这个意识应该深深的贯彻到运维工程师的思维里

 

步骤3  制定解决方案

 

恢复方案一:

 

    尝试恢复急需的VMDK文件然后采用引用外部磁盘的方式启动虚拟机

 

    根据删除VMFS文件系统原理进行VMDK碎片恢复,碎片恢复完成后对VMDK文件进行遍历检测并浏览磁盘内部目录确认最新数据是否正常打开,若可以正常打开则该方案成功,只需要新建一台虚拟机利用这个vmdk做磁盘即可正常启动业务,操作系统和应用环境均可以正常使用。

 

恢复方案二:若方案一失败

 

    只能通过MSSQL的恢复方法在存储卷中查找数据库碎片,并对数据库碎片进行整理。然后新新建虚拟机并安装应用软件,将恢复的数据库导入新环境即可正常使用。

  

恢复方案三:若方案一和方案二都恢复失败

 

    通过数据库的固有页结构和表结构,提取重要的表数据,然后新建系统及应用,将重要的表数据导入到新建数据库中使用

 

------------------------------专家建议------------------------------

 

    以上的三个方案一步步变的越来越难并且恢复的效果也会越来越差但是必须制定好这张的方案才能在整个恢复过程中让客户做到心中有数并且在恢复的过程中客户协调其他供应商都在做相应的准备工作大大缩短了恢复数据后互相等待的时间以上的方案我们在大量客户实际案例中使用已经形成一个标准的流程如果客户或者同行朋友们遇到此类问题也可以借鉴此恢复方案

 

    经过跟客户沟通后客户同意,我方开始了整个恢复过程。

 

    因为客户数据涉密,恕不能在文章中详细说明整个数据恢复过程中的细节。以后遇到其他案例后,再增加一篇重点介绍恢复技术细节的文章。该恢复案件最终在方案一阶段即完美恢复了。用时1天。