服务器存储数据恢复环境:
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数据库(过程就不赘述了)并移交数据。