zdb 无法识别我的池?

zdb 无法识别我的池?

在我的 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

我想获取有关我的datazpool 的统计信息,但是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其放回原位。

相关内容