尝试恢复威联通QNAP(QTier)数据过程的记录

385

0x01 写在前面的话

我的QNAP采用QTIER分层存储+raid1模式,NAS由于硬件原因无法开机且机器不在手里,故尝试挂载Linux下恢复和使用Windows版本R-Linux恢复。目前品牌NAS都基于Linux存储框架,定制了自己的内容,使得普通用户无法在其他操作系统下访问数据(ZFS除外,可以直接导入zpool)。

本文讨论恢复QNAP QTIER未加密存储池的方式,后续会有相应文章讨论品牌NAS的最佳存储实践。

0x02 失败的恢复过程 (建立对QNAP QTier结构的理解)

2.1 环境准备

创建虚拟机,直通sas卡,卡上面有qnap下使用两块HC550组的raid1

虚拟机开机后,通过ssh登录,之后查看这两个盘是否可以显示

在Ubuntu中安装mdadm和lvm2

2.2 检查现有信息

通过以下命令扫描现有raid阵列

sudo mdadm --examine --scan

检查现有raid结构

sudo cat /proc/mdstat

黄框内即为QNAP数据分区所组合的raid1,我们的数据也在里面,也就是每个盘的sdc3和sdb3分区

2.3 尝试恢复

通过如下命令使用mdadm启动单独的raid1分区

sudo mdadm -A -R /dev/md9 /dev/sdb3

之后通过如下命令挂载到新创建的目录下

sudo mkdir /mnt/qnap_recover
sudo mount /dev/md9 /mnt/qnap_recover/

至此,如果你的QNAP未开启QTIER,那么此时可以正常挂在ext4,并且成功恢复数据,但是我的QNAP开启了QTIER,同时QNAP定制的LVM模块无法在其他机器上安装,所以需要使用其他方法恢复数据

  1. 使用QuTSCloud,威联通的云NAS系统来尝试重新导入存储池,进而恢复数据

  2. 使用专业数据恢复软件,这次尝试使用R-Linux

0x03 使用R-Linux恢复数据

由于在Linux下使用R-Linux需要X11转发等配置,所以本次使用Windows平台,同样把SAS卡直通到Windows虚拟机内,启动虚机。

在Windows虚拟机内可以看到正确识别了对应两个磁盘

3.1 软件下载扫描

下载安装好R-Linux后启动,即可看到磁盘内QNAP的用户数据分区,即之前的drbd(即使配置好了drbd分布式块存储服务,也无法直接读取,因为QNAP定制了LVM模块

扫描对应分区

扫描整个驱动器,并且把扫描结果保存到文件,以免中途失败丢失结果

3.2 等待扫描结果

等待扫描结束,对于18T的HC550,需要20小时左右,请耐心等待

3.3 分析扫描文件

部分扫描结果如下

扫描出来原始文件名丢失,目录结构丢失,成功恢复的文件也无法打开(初步怀疑还是底层采用drbd的问题),所以还是需要原始QNAP的LVM来加载才可以正确获取相关文件。后续可以尝试使用QuTS Cloud导入现有存储池的方式恢复,由于时间原因和数据重要程度,本次不再做处理,欢迎讨论实践。