xcznb 2019-12-25
为防止在数据恢复过程中由于部分操作对原始磁盘造成不可还原的修改,导致数据出现二次丢失, 对原始磁盘进行镜像备份。
将VSAN的节点服务器上所有硬盘编号拆出,接入到备份服务器中,使用WinHex软件对所有硬盘进行底层的逐字节镜像备份。
获取到客户三台节点服务器上的所有硬盘的底层镜像,共18个镜像文件。
对全部镜像文件进行分析扫描,发现故障虚拟机的元数据和组件信息没有严重损坏和丢失的情况,保留较为完整,有很大的把握可以完整恢复。
·
1、扫描组件信息。
因为VSAN中所有文件以对象的方式存在,而每个对象会被分割为多个组件,扫描所有组件信息,组件信息中记录组件ID和该组件属于哪个对象的对象ID等信息。编写程序扫描组件信息。
2、提取组件。
根据组件中的信息,找到每个数据块和该块在组件的逻辑位置,编写程序提取完整组件。
3、合并VMDK文件。
根据组件信息中的描述信息将组件按照描述信息中记录的RAID级别和各个组件在对象中的逻辑位置进行组合,拼接出完整的对象,即完整的vmdk文件。
4、刷新缓存盘数据。
每个组件可能会有部分数据留在缓存盘上,并没有写入到容量盘中,编写程序将缓存盘上的数据刷新到对应的组件或对象中。
5、合并快照。
对于有快照的vmdk文件,将快照和父盘进行合并。
6、解析vmdk,恢复文件。
将合并完成后的vmdk文件进行解析,并提取其中SQL server 2008 R2数据库的备份文件。
7、数据库还原和检测。
安装SQL server 2008 R2数据库,将提取完成的数据库备份文件进行还原操作,还原过程没有任何报错,成功还原后使用dbcc命令检查数据库完整性,检查完成无任何报错。