在我的 freenas 服务器上,zpool status
告诉我有 2 个 zfs 池:data
& freenas-boot
:
% zpool status
pool: data
state: ONLINE
scan: scrub repaired 0 in 0 days 04:16:16 with 0 errors on Mon Nov 20 00:59:24 2017
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
gptid/3e08fdba-4564-11e7-bdef-00fd45fc38ec ONLINE 0 0 0
gptid/3eba62c2-4564-11e7-bdef-00fd45fc38ec ONLINE 0 0 0
gptid/3f704246-4564-11e7-bdef-00fd45fc38ec ONLINE 0 0 0
gptid/40249d11-4564-11e7-bdef-00fd45fc38ec ONLINE 0 0 0
errors: No known data errors
pool: freenas-boot
state: ONLINE
scan: scrub repaired 0 in 0 days 00:00:13 with 0 errors on Sun Mar 4 03:45:14 2018
config:
NAME STATE READ WRITE CKSUM
freenas-boot ONLINE 0 0 0
ada0p2 ONLINE 0 0 0
errors: No known data errors
我想获取有关我的data
zpool 的统计信息,但是zdb
出现错误:
% sudo zdb -b data
zdb: can't open 'data': No such file or directory
但它在freenas-boot
池中起作用:
% sudo zdb -b freenas-boot
Traversing all blocks to verify nothing leaked ...
loading space map for vdev 0 of 1, metaslab 55 of 119 ...
2.56G completed ( 881MB/s) estimated time remaining: 0hr 00min 00sec
No leaks (block sum matches space maps exactly)
bp count: 281124
ganged count: 0
bp logical: 5928553472 avg: 21088
bp physical: 2636954624 avg: 9380 compression: 2.25
bp allocated: 3376803840 avg: 12011 compression: 1.76
bp deduped: 0 ref>1: 0 deduplication: 1.00
SPA allocated: 3376803840 used: 2.64%
Dittoed blocks on same vdev: 50961
我究竟做错了什么 ?
答案1
无论出于什么原因,FreeNAS/TrueNAS Core 上的缓存路径都不同。他们还没有修补 zdb 以使其知道默认情况下应该查找的位置。
添加-U /data/zfs/zpool.cache <POOLNAME>
到 zdb 的所有用途以使其正常工作。
对于你的例子,命令将是:zdb -U /data/zfs/zpool.cache -b data
答案2
我在 OmniOS 上遇到了这个问题,zdb
无法打开rpool
。问题是由于 zfs 元数据中的 guid 与我的磁盘的实际 guid 不匹配造成的。我猜这是更换损坏的硬件和在 zpools 之间移动磁盘的结果……
解决方案是将zfs detach
镜子装置在一个装置上并将zfs attach
其放回原位。