我在 Linux 3.6.11 上,并在 Linux 0.6.0rc11 上使用 ZFS。
我有一个大型 ZFS 池,其中包含三个子池:
zpool1
zpool1/backups
zpool1/graphite
zpool1/log_backups
昨晚机器莫名其妙地重启了。在我收到寻呼并得到一个 shell 之后,它已经恢复了。
我运行zfs mount -a
重新安装池。zpool1/log_backups
其中有数据,但是zpool1/graphite
和zpool1/backups
完全是空的,并df
报告这些分区上没有使用空间。
不幸的是,我没有设置快照,所以这是不可能的。我尝试过导出并重新导入,但没有变化。
我还能尝试什么?ZFS 有哪些数据恢复选项?我见过一些挖掘 fs 数据结构的脚本,但它们都比我现在想要的更粗糙,更具破坏性。
答案1
希望zpool status
有话要说。尝试运行zpool import
(不带参数)以列出 ZFS 发现的可能重新导入的池。
描述系统上存在哪些池的文件应该是“/etc/zfs/zpool.cache”。如果它已损坏,这将解释为什么池不会自动导入。
您也可以尝试旧方法zpool import <pool name>
,看看是否有帮助。
答案2
这是旧版本的Linux 上的 ZFS。我不希望这种事情发生在任何人身上。你发邮件到邮件列表了吗?
我会尝试了解崩溃的性质,因为这不正常。您拥有哪种类型的硬件(服务器、控制器),以及您的池设置是什么?