服务器数据恢复环境:
ORACLE Sun ZFS Storage;
32块磁盘分为4组,每组8块硬盘,热备盘全副启用。
ZFS文件系统,Windows操作系统。
服务器故障&剖析:
设施在失常工作时候忽然解体,通过查看排除了断电、进水、异样操作、供电不稳固等因素。用户重启设施无奈进入零碎。
ZFS文件系统中,池被称为ZPOOL。ZPOOL的子设施有很多种,其中包含块设施、文件、磁盘等,在本案例中ZPOOL的子设施是三组RAIDZ。
通过北亚企安工程师的剖析发现,三组RAIDZ中的两组别离启用了1个热备盘和3个热备盘。在热备盘启用后,第一组RAIDZ内又呈现一块离线盘,第二组RAIDZ内则又呈现两块离线盘。故障场景还原:三组RAIDZ内第一组和二组呈现离线盘,热备盘及时启动替换离线盘;热备盘无冗余状态下第一组RAIDZ又呈现一块离线盘,第二组RAIDZ则又呈现两块离线盘,ZPOOL进入了高负荷状态(每次读取数据都须要进行校验能力失去正确数据);第二组RAIDZ内呈现第三块离线盘,RAIDZ解体、ZPOOL下线、设施解体。
服务器数据恢复过程:
1、重组ZPOOL,追踪数据入口
ZFS文件系统治理的存储池与惯例存储不同,是由ZFS治理所有磁盘。惯例RAID在存储数据时依照特定的规定组建池,不关怀文件在子设施上的地位。而ZFS文件系统在存储数据时会为每次写入的数据调配适当大小的空间,并通过计算获取到指向子设施的数据指针。这种个性导致RAIDZ缺盘时无奈间接通过校验失去数据,必须将整个ZPOOL作为一个整体进行解析。
2、手工截取事务块数据,北亚企安数据恢复工程师编写程序获取最大事务号入口。
获取文件系统入口:
3、获取到ZFS文件系统入口后,北亚企安数据恢复工程师编写数据指针解析程序解析地址。
解析数据指针:
4、获取到ZFS文件系统入口点在各磁盘的散布状况后,北亚企安数据恢复工程师手工截取并剖析文件系统内部结构,入口散布所在的磁盘组无缺失盘,可间接提取信息。依据ZFS文件系统的存储构造找出映射的LUN名称,进而找到其节点。
5、提取数据。北亚企安数据恢复工程师编写数据提取程序提取数据。
因为磁盘组内缺盘个数较多,每个IO流都须要通过校验失去,提取进度极为迟缓。与用户沟通后得悉,ZVOL卷映射到XenServer作为存储设备,用户所需的文件在一个vhd内。提取ZVOL卷头部信息,依照XenStore卷存储构造进行剖析后发现这个vhd在ZVOL卷的尾部,通过计算得悉该vhd的起始地位,从此地位开始提取数据。
6、实现数据提取后,验证Vhd外部的压缩包及图片、视频等文件,发现均可失常关上。让用户亲自对数据进行验证,确定文件数量与零碎自动记录的文件数量统一,全副文件可失常关上,服务器数据恢复实现。