一, 服务器数据恢复描述
先简单介绍一下服务器故障情况; 客户的服务器是一台华为 OceanStor S5600T 型号, 服务器位于北京大兴机房, 使用 MD1200 磁盘柜 + RAID 卡的方式, 服务器共有 15 块硬盘创建了一组 RAID5 阵列, 分配了两个 LUN 共 80T 左右, 在系统层面对 LUN 进行了分区划分, 分别为 sdc1,sdc2 和 sdc3 三个分区, 其中 sdc1 分区大小为 4T, 通过 LVM 扩容的方式, 将 sdc1 分区加入到了 root_lv 中, 剩余的 sdc2 和 sdc3 分区格式化为 XFS 文件系统使用.
管理员对服务器进行重装系统操作后发现 sdc 磁盘分区发生改变, 原先的 sdc3 分区丢失, 无法访问.
二, 服务器数据备份
服务器数据恢复工程师携带备份服务器赶到客户现场对数据进行初检, 同时借助数据恢复工具将所有磁盘的数据镜像备份到备份服务器上. 以备后期分析和恢复数据使用.
三, 服务器数据恢复步骤
1, 使用镜像盘分析 raid 的盘序, 条带大小等信息; 这里可以借助数据恢复工具搜索查看 FILE ID 编号, 可以从编号判断出盘序, 块大小, 循环方向, 同异步等 (需要谨慎操作, 如果数据十分重要最好找专业的数据恢复公司进行操作).
通过分析出的 raid 信息虚拟重组出 raid 结构;
2, 定位到 xfs 文件系统的分区起始位置; XFS INODE number: 变长的位数表示, 三部分组成: 起始块组号 + 起始块号 + 块内 INODE 号. 起始块号与块内 INODE 号的位长由 SUPERBLOCK 中 frombyte.com 参数指定.
3, 校验 xfs 文件系统的完整性及正确性; 通过校验发现该文件系统头部的超级块及部分节点, 目录项丢失.
4, 修复 xfs 文件系统的超级块结构; 根据超级块备份及文件系统中的目录树结构, 对超级块进行修复还原,
图一:
5, 对 xfs 文件系统中丢失的节点及目录项进行修复; 对丢失的节点, 目录项进行修补, 重构
图二:
图三:
6, 修复完成后编写程序解析 xfs 文件系统, 提取其中的数据.
四, 服务器数据恢复结果
由于数据丢失之后客户未对服务器做任何写入等其他破坏性操作, 所以数据及文件系统信息绝大部分保留完整, 数据 100% 恢复成功.
来源: http://blog.51cto.com/sun510/2131235