一、底层结构解析与恢复方案制定
三、LUN的提取与重组
通过对存储结构的进一步分析,我们获取了存储划分的映射块,进而解析了各个LUN的数据块指针。随后,我们编写了数据提取程序(或借助了特定数据恢复工具)来提取LUN碎片,并进行碎片拼接,最终组成了完整的LUN。
四、虚拟机的导出与启动
由于虚拟机名称涉及客户隐私且导出过程相对简单,此处不再详细描述。在导出虚拟机后尝试启动时发现,由于操作系统受损,虚拟机无法正常启动。
五、虚拟机内文件的提取
鉴于虚拟机无法启动的情况,我们只能对虚拟机内的文件进行提取。多数文件严重,仅有少数文件可用。我们需要继续探索其他数据恢复方案。
六、数据库数据的提取与分析
在本次数据恢复的虚拟机中,存在一个mysql数据库。我们利用了数据库底层的存储特性进行数据页扫描,从而提取数据。
值得一提的是,在面对虚拟机启用快照、父盘和快照文件均损坏的情况时,我们采用了公司自主研发的VMFS快照合并程序进行快照合并操作。
七、mysql数据页的获取与分析
我们根据mysql数据页的特征进行了数据页扫描并导出。对于innodb引擎,此方案可行;而对于myisam引擎,由于其没有“数据页”概念,因此不可用。
随后,我们分析了系统表以获取各用户表信息,并根据各个表的id进行数据页分割。
八、表结构提取与记录
由于数据库使用时间较长,表结构曾多次变更,且系统表在存储损坏后也有部分数据丢失。这使得记录提取过程面临较大挑战。
我们首先获取了最初版本的数据库表结构,然后结合其他信息进行了记录提取和导入恢复环境中的mysql数据库操作。
九、数据验证与成功
由于两个版本的数据库表结构存在差异,我们联系了客户方的应用工程师进行调试。经过调试和平台验证,本次数据恢复成功。
整个过程虽然充满挑战,但我们的专业团队凭借精湛的技术和不懈的努力,最终成功恢复了关键数据,为客户挽回了重大损失。