总结:我在一台具有 16GB ECC 内存的服务器上运行带有 ZFS 的 FreeBSD 11.2 NAS 服务器。我发现我的主池消失了。ZFS 可以看到该池,但报告故障全自动高速ZFS-8000就是这样cannot import 'tank': pool may be in use from other system, it was last accessed by nasserver (hostid: 0xaaaaaaaa) on Sat Apr 13 04:16:22 2019
,但是这个池子有绝不已被其他系统使用,并且nasserver
是当前主机。我担心我的池已损坏。我应该怎么做才能尝试恢复它?我有备份,但它们已经过期,因为我必须手动进行备份。我还没有尝试运行zpool import -f tank
,因为我想小心谨慎,避免让事情变得更糟。
完整问题:
我正在运行带有 ZFS 的 FreeBSD 11.2 NAS 服务器。我休假回来后发现服务器已启动,但 NAS 卷无法访问。当我通过 ssh 进入服务器时,我发现我的 man 池tank
不见了:
root@nasserver:/home/root # zpool status pool: zroot state: ONLINE status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable. action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details. scan: scrub repaired 0 in 0h0m with 0 errors on Sat Mar 23 03:01:44 2019 config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
diskid/DISK-XXXXXXXXXXXXXXXXXXX1 ONLINE 0 0 0
diskid/DISK-XXXXXXXXXXXXXXXXXXX2 ONLINE 0 0 0
errors: No known data errors
这些驱动器似乎可用,我尝试导入它们,但 ZFS 报告它cannot import 'tank': pool may be in use from other system, it was last accessed by nasserver (hostid: 0xaaaaaaaa) on Sat Apr 13 04:16:22 2019
。这很奇怪,因为我从未在其他系统上使用过这些磁盘,并且报告的主机名是它们所连接的计算机的主机名:
root@nasserver:/home/root # zpool import
pool: tank
id: 12345678901234567901
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: http://illumos.org/msg/ZFS-8000-EY
config:
tank ONLINE
raidz1-0 ONLINE
gpt/tank-1 ONLINE
gpt/tank-2 ONLINE
gpt/tank-3 ONLINE
gpt/tank-4 ONLINE
root@nasserver:/home/root # zpool import tank
cannot import 'tank': pool may be in use from other system, it was last accessed by nasserver (hostid: 0xaaaaaaaa) on Sat Apr 13 04:16:22 2019
use '-f' to import anyway
我担心我的池可能已损坏。我有备份,但它们有些过时了。我应该怎么做才能恢复我的池?
答案1
zpool import -f tank
,就像错误对话框中所显示的那样。
这是一个相当不常见的错误,但我以前见过它发生过(过去十年里,在 100 多台机器上可能出现过一两次);如果出现更改了主机名和其他魔法,zfs
由于(可能过度)谨慎,即这可能不是该池所属的机器,因此不会自动导入池。使用-f
来覆盖该谨慎,然后,这就是您的池(并且它应该在下一轮中自动导入成功)。
这可能是最多在系统崩溃或断电后,很可能会发生这种情况,导致系统崩溃,并且池在崩溃过程中无法正确导出。