ZFS 导入无法找到任何池

ZFS 导入无法找到任何池

我在 FreeBSD 服务器上运行了一个 ZFS 池(包含 2 个 vdev 的镜像)。现在我只有镜像中的一个磁盘,我正在尝试从中恢复文件。

ZFS 数据存储在磁盘上的 GPT 分区中。

当我尝试导入池时,没有任何迹象表明它存在。我尝试了很多方法,但什么也没发生。

我已经zdb -lu在分区上运行了它,它似乎很好地找到了标签。

# zpool import
# zpool import -D
# zpool status
no pools available
# zpool import -f ztmp
cannot import 'ztmp': no such pool available
# zpool import 16827460747202824739
cannot import '16827460747202824739': no such pool available

分区信息:

# gpart list da0
Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 3907029134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da0p1
   Mediasize: 65536 (64K)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 17408
   Mode: r0w0e0
   rawuuid: d7a10230-8b0e-11e1-b750-f46d04227f12
   rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
   label: (null)
   length: 65536
   offset: 17408
   type: freebsd-boot
   index: 1
   end: 161
   start: 34
2. Name: da0p2
   Mediasize: 17179869184 (16G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7aa40b7-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 17179869184
   offset: 82944
   type: freebsd-swap
   index: 2
   end: 33554593
   start: 162
3. Name: da0p3
   Mediasize: 1905891737600 (1.7T)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 82944
   Mode: r0w0e0
   rawuuid: d7b6a47e-8b0e-11e1-b750-f46d04227f12
   rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
   label: (null)
   length: 1905891737600
   offset: 17179952128
   type: freebsd-zfs
   index: 3
   end: 3755999393
   start: 33554594
Consumers:
1. Name: da0
   Mediasize: 2000398934016 (1.8T)
   Sectorsize: 512
   Mode: r0w0e0

ZFS 标签:

--------------------------------------------
LABEL 0
--------------------------------------------
    version: 5000
    name: 'ztmp'
    state: 0
    txg: 0
    pool_guid: 16827460747202824739
    hostid: 740296715
    hostname: '#############'
    top_guid: 15350190479074972289
    guid: 3060075816835778669
    vdev_children: 1
    vdev_tree:
        type: 'mirror'
        id: 0
        guid: 15350190479074972289
        whole_disk: 0
        metaslab_array: 30
        metaslab_shift: 34
        ashift: 9
        asize: 1905887019008
        is_log: 0
        create_txg: 4
        children[0]:
            type: 'disk'
            id: 0
            guid: 3060075816835778669
            path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            phys_path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
            whole_disk: 1
            DTL: 5511
            resilvering: 1
        children[1]:
            type: 'disk'
            id: 1
            guid: 3324029433529063540
            path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            phys_path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
            whole_disk: 1
            DTL: 3543
            create_txg: 4
            resilvering: 1
    features_for_read:
    create_txg: 0
Uberblock[0]
    magic = 0000000000bab10c
    version = 5000
    txg = 0
    guid_sum = 1668268329223536005
    timestamp = 1361299185 UTC = Tue Feb 19 10:39:45 2013

(其他标签均为准确复制)

这个老话题。我尝试运行 Jeff Bonwick 的labelfix工具(更新自这个帖子),但似乎并没有解决问题。

有任何想法吗?

答案1

以供将来参考,当无法识别 zpool/zfs fs 时,只需执行 zpool import -a (将搜索全部)通常也会有所帮助。

答案2

来自评论(摘自开幕海报):

我编辑了 FreeBSD 安装中的 ZFS 源,并让它们绕过所有健全性检查。禁用足够多的检查后,我成功导入了池。

答案3

我遇到了相同或非常相似的问题,这有帮助:

ls -l /dev/disk/by-id/

那么驱动器的第一个分区可能是要挂载的分区。例如:

sudo zpool import -a -d /dev/disk/by-id/ata-Samsung_SSD_abc-part1 -d /dev/disk/by-id/ata-Samsung_SSD_def-part1

(-a 开关可能有效,无需记住池名称)

如果出现问题,请尝试man zpool-import

我不知道为什么 sudo zpool import -a 找不到任何池,而我必须定义磁盘

答案4

在我的 FreeNAS 11.2 系统中,电源线出现故障,导致阵列中的 3 个驱动器脱机。系统行为异常(ssh 端口已打开,但 ssh 没有响应)。

强制关闭电源并更换电缆后,系统启动了,但没有阵列。阵列没有降级 - 它被标记为离线。无论我怎么尝试,我都无法将其联机,甚至无法再次导入阵列。

只有在 FreeNAS Web UI 中删除该阵列的条目后,我才能够导入该阵列。看来系统数据库已损坏,并且损坏干扰了对阵列的识别。

相关内容