共计 1744 个字符,预计需要花费 5 分钟才能阅读完成。
服务器存储数据恢复环境:
EVA 存储构造:1 台 EVA 某型号控制器 + 3 台 EVA 某型号扩大柜 +28 块 FC 硬盘。
服务器存储故障:
EVA 存储构造中的两块磁盘掉线导致存储中的某些 LUN 失落不可用,管理员分割咱们数据恢复核心进行数据恢复。
服务器存储数据恢复过程:
1、北亚数据恢复核心收到故障存储的磁盘后,由硬件工程师对所有磁盘做物理检测,没有发现物理故障。而后应用坏道检测工具检测磁盘坏道,没有发现坏道。磁盘坏道检测日志如下:
2、备份数据。
数据恢复工程师应用工具将所有磁盘都镜像成文件。备份完局部数据如下:
3、剖析故障起因。
通过后面的检测,磁盘没有发现物理故障或者坏道,数据恢复工程师判断故障产生起因是某些磁盘读写不稳固。因为 EVA 控制器磁盘检测的策略十分严格,一旦有磁盘呈现性能不稳固的迹象,就很有可能被 EVA 控制器断定为坏盘并被踢出磁盘组。如果某个 LUN 的同一个条带中掉线的盘达到肯定的数量,这个 LUN 将不可用。如果 EVA 中所有的 LUN 都有盘掉线,那么所有 LUN 都会受影响,所以 2 块盘掉线导致整个存储的 LUN 都不可用的状况也有可能产生。本案例的理论状况是现存 8 个 LUN,损坏 7 个 LUN,失落 6 个 LUN,须要复原所有 LUN 的数据。
4、剖析 LUN 的构造。
HP-EVA 的 LUN 都是以 RAID 条目标模式存储数据的,EVA 将每个磁盘的不同块组成一个 RAID 条目。RAID 条目标类型有多种。咱们须要剖析出组成 LUN 的 RAID 条目类型和每个 RAID 条目是由哪些盘的哪些块组成。这些信息都寄存在 LUN_MAP 中,每个 LUN 都有一份 LUN_MAP,EVA 将 LUN_MAP 别离寄存在不同的磁盘中,并应用索引指定其地位。因而,只有在每个磁盘中找出指向 LUN_MAP 的索引就能够找到现存 LUN 的信息了。
5、剖析失落的 LUN。
尽管磁盘中记录了指向 LUN_MAP 的索引,然而它只记录现存的 LUN,失落的 LUN 是不会记录索引的。因为 EVA 中删除一个 LUN 只会革除这个 LUN 的索引,而不会革除这个 LUN 的 LUN_MAP。只有扫描所有磁盘找到所有合乎 LUN_MAP 的数据块,而后排除掉现有的 LUN_MAP,剩下的 LUN_MAP 也不肯定全是删除的,也有一些是以前旧的,但此时无奈在 LUN_MAP 中筛选,只能通过程序将所有 LUN_MAP 的数据都复原进去,人工的去核查哪些 LUN 是删除的。
6、剖析掉线磁盘。
尽管通过检测没有发现磁盘有物理故障和坏道,但还是可能因为性能不稳固从 EVA 磁盘组中脱离。因为这些脱离的磁盘寄存旧的数据,所以在生成数据的时候须要将这些磁盘都排除掉。那么如何判断那些掉线的磁盘呢?因为 LUN 的 RAID 构造大多都是 RAID5,只须要将一个 LUN 的 RAID 条目通过 RAID5 的校验算法算出校验值,再和原有的校验值做比拟就能够判断这个条目中是否有掉线盘。将一个 LUN 的所有 LUN_MAP 都校验一遍就能够晓得这个 LUN 中哪些 RAID 条目中有掉线盘。这些 RAID 条目中都存在的那个盘就肯定是掉线盘。排除掉线盘,而后依据 LUN_MAP 复原所有 LUN 的数据即可。
7、编写数据恢复程序。
上述的故障剖析以及解决思路最终都须要编写程序来实现。北亚数据恢复工程师编写扫描 LUN_MAP 的程序扫描全副 LUN_MAP,联合人工剖析获取最准确的 LUN_MAP;编写检测 RAID 条目标程序检测所有 LUN 中掉线的磁盘,联合人工剖析排除掉线的磁盘;编写 LUN 数据恢复程序,联合 LUN_MAP 复原所有 LUN 数据。
8、复原所有 LUN 数。
依据编写的程序去实现不同的性能,而后人工核查每个 LUN,确认是否和管理员形容的统一。局部复原进去的 LUN 的数据:
数据验证:
依据管理员形容,所有 LUN 的数据能够分成两大部分:一部分是 Vmware 的虚拟机,一部分是 HP-UX 上的裸设施,裸设施里寄存的是 Oracle 的 dbf 数据库。因为咱们复原的是 LUN,无奈看到外面的文件,因而须要将这些 LUN 用人工核查的形式确定哪些 LUN 寄存 Vmware 的数据,哪些 LUN 寄存 HP-UX 的裸设施。而后将 LUN 挂载到不同的验证环境中验证复原的数据是否残缺。别离部署好 Vmware 虚拟机的验证环境和 Oracle 数据库的验证环境并进行验证,修复好 Oracle 数据库(过程就不赘述了)并移交数据。