AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[zpool](server)

Martin Hope
marolafm
Asked: 2022-04-21 07:52:39 +0800 CST

zpool 文件系统上的错误

  • 2

我在 Debian 9 机器上使用 ZFS。这台机器已经工作了多年,直到今天都没有出现任何问题。

zfs 池安装在 RAID 系统的顶部,由硬件控制(因此只有一个驱动器作为 sda 暴露给 Linux)。您可以在下面看到“zpool status”的输出。

在继续之前,只需提一下我检查了 RAID 的一致性,一切都很好。

突然,对文件系统的所有访问都会引发冻结命令(甚至是 ls 命令),最终,我需要手动重新启动机器。

运行zpool status -v时,输出为:

#/sbin/zpool status -v
  pool: export
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://zfsonlinux.org/msg/ZFS-8000-8A
  scan: scrub repaired 0B in 53h4m with 0 errors on Tue Mar 15 05:28:38 2022
config:

        NAME        STATE     READ WRITE CKSUM
        export      ONLINE       0     0     0
          sda       ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        export/home:<0x0>
        export/home:<0x2b2ed23>
        export/home:<0x2e1183b>
        export/home:<0x2b2e849>
        export/home:<0x1d0b5b1>

所以,主要问题是:这些文件的含义是什么?我该如何解决这个问题?

先感谢您!

linux filesystems raid zfs zpool
  • 2 个回答
  • 244 Views
Martin Hope
Jason
Asked: 2021-07-30 11:09:11 +0800 CST

ZFS 池数据备份和恢复

  • 2

我目前有一个 zfs raidz2 池卡在重新同步循环中,因为我试图用 8TB 磁盘替换 3TB 磁盘。在让第一个替换磁盘重新同步在线一个多星期后,它终于完成了,只是立即重新开始。将磁盘标记为“离线”后,第二次重新同步大约在 2 天内完成。我在线标记了磁盘,一切看起来都很好(几分钟),所以我更换了第二个磁盘。一旦第二个磁盘的重新同步启动,它表明第一个磁盘也在重新同步。我现在正处于这两个驱动器的第三或第四个重新同步周期,并且两个磁盘重新同步我没有容错能力。此时我想将 zpool 备份到 nfs 共享并使用新驱动器重新创建它,但我没有 不想丢失我所有的数据集配置,其中包括我所有的监狱。有没有办法将整个 zpool 导出为可以以某种方式恢复的备份映像?具有足够磁盘空间来存储所有这些数据的另一台机器的文件系统已经使用了不同的文件系统,因此 zfs 复制可能不是一个选项。这是一个 TrueNAS-12.0-U4 安装。备份机器正在运行带有 LVM/Ext4 的 Ubuntu 21.04。以下是当前池状态。


  pool: pool0
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
    continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Jul 29 00:39:12 2021
    13.8T scanned at 273M/s, 13.0T issued at 256M/s, 13.8T total
    2.17G resilvered, 93.77% done, 00:58:48 to go
config:

    NAME                                            STATE     READ WRITE CKSUM
    pool0                                           DEGRADED     0     0     0
      raidz2-0                                      DEGRADED     0     0     0
        gptid/55bf3ad6-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
        gptid/55c837e3-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
        gptid/55f4786c-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
        gptid/60dcf0b8-eef3-11eb-92f9-3cecef030ab8  OFFLINE      0     0     0  (resilvering)
        gptid/56702d96-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
        gptid/5685b5f7-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
        gptid/8f041954-eef3-11eb-92f9-3cecef030ab8  OFFLINE      0     0     0  (resilvering)
        gptid/56920c3a-3747-11eb-a0da-3cecef030ab8  ONLINE       0     0     0
    cache
      gptid/56256b6a-3747-11eb-a0da-3cecef030ab8    ONLINE       0     0     0

errors: No known data errors
backup restore zfs truenas zpool
  • 1 个回答
  • 460 Views
Martin Hope
tango
Asked: 2021-02-16 23:22:34 +0800 CST

ZFS:设备 vdev 徘徊,导致 zpool 故障

  • 4

我有一个 zpool,在断电重新启动服务器和设备名称后,它现在显示为 FAULTED 状态。我知道我通过设备名称添加 vdev 搞砸了,但不知道它可以在创建和填充池后更改。目前,池正在寻找“/dev/sde”(而不是“/dev/sdc”),而“/dev/sde”是 root fs 所在的设备,我不确定如何在没有潜在风险的情况下进行任何恢复更糟糕。

希望有一种方法可以简单地将 zpool 重新配置为使用“sdc”,以便能够使用“by-id”命名导出和重新导入,以避免将来出现这种情况。

root@boxey:~# zpool status
  pool: data
 state: FAULTED
status: One or more devices could not be used because the label is missing
        or invalid.  There are insufficient replicas for the pool to continue
        functioning.
action: Destroy and re-create the pool from
        a backup source.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        data        UNAVAIL      0     0     0  insufficient replicas
          raidz1-0  UNAVAIL      0     0     0  insufficient replicas
            sda     ONLINE       0     0     0
            sde     UNAVAIL      0     0     0
            sdd     FAULTED      0     0     0  corrupted data
            sdb     FAULTED      0     0     0  corrupted data


root@boxey:~# lsblk --output=NAME,FSTYPE,LABEL,SIZE,UUID
NAME   FSTYPE     LABEL        SIZE UUID
sda                            2.7T
├─sda1 zfs_member data         2.7T 166412156792699288
└─sda9                           8M
sdb                            2.7T
├─sdb1 zfs_member data         2.7T 166412156792699288
└─sdb9                           8M
sdc                            2.7T
├─sdc1 zfs_member data         2.7T 166412156792699288
└─sdc9                           8M
sdd                            2.7T
├─sdd1 zfs_member data         2.7T 166412156792699288
└─sdd9                           8M
sde                           55.9G
├─sde1 ext4                   53.6G f2d9733a-846d-48c2-bb63-c7f4e0345ad5
├─sde2                           1K
└─sde5 swap                    2.3G 6c34cadd-db42-4e14-a647-733e021c018e

root@boxey:~# zpool export -f data
cannot export 'data': one or more devices is currently unavailable

root@boxey:~# zdb
data:
    version: 5000
    name: 'data'
    state: 0
    txg: 23300202
    pool_guid: 166412156792699288
    errata: 0
    hostid: 8323329
    hostname: 'boxey'
    com.delphix:has_per_vdev_zaps
    vdev_children: 1
    vdev_tree:
        type: 'root'
        id: 0
        guid: 166412156792699288
        children[0]:
            type: 'raidz'
            id: 0
            guid: 1294813595973345307
            nparity: 1
            metaslab_array: 34
            metaslab_shift: 36
            ashift: 12
            asize: 12002313371648
            is_log: 0
            create_txg: 4
            com.delphix:vdev_zap_top: 39
            children[0]:
                type: 'disk'
                id: 0
                guid: 4873892069497714664
                path: '/dev/sda1'
                whole_disk: 1
                DTL: 101
                create_txg: 4
                com.delphix:vdev_zap_leaf: 40
            children[1]:
                type: 'disk'
                id: 1
                guid: 16241503886070383904
                path: '/dev/sde1'
                whole_disk: 1
                DTL: 100
                create_txg: 4
                com.delphix:vdev_zap_leaf: 41
            children[2]:
                type: 'disk'
                id: 2
                guid: 1910545688695459106
                path: '/dev/sdd1'
                whole_disk: 1
                DTL: 99
                create_txg: 4
                com.delphix:vdev_zap_leaf: 42
            children[3]:
                type: 'disk'
                id: 3
                guid: 2766829802450425996
                path: '/dev/sdb1'
                whole_disk: 1
                DTL: 98
                create_txg: 4
                com.delphix:vdev_zap_leaf: 43
    features_for_read:
        com.delphix:hole_birth
        com.delphix:embedded_data
zfs zfsonlinux zpool
  • 1 个回答
  • 432 Views
Martin Hope
Steve81
Asked: 2021-01-28 09:33:44 +0800 CST

残废 zpool 的创造性解决方案(也就是帮助垂死的突袭生存 1-2 周)

  • 0

我在 Proxmox 6(Linux 内核版本:5.4.78-2-pve,openZFS 版本:0.8.5-pve1)上有一个 8x4TB 制作的 ZFS RAIDZ-7。

不幸的星相合迫使我从我的 RAIDZ 中移除 3 个磁盘。在大约 1 或 2 周内,我会收到 5 个新磁盘。

还不错,raidz7可以吃3亏。但是剩余磁盘上的一个正在死去(慢慢地,我想可以存活一段时间)。

我现在有一个 2TB 和一个 3TB 磁盘可用。

所以我想用 2TB 和 3TB 构建一个 mdadm 条带阵列,并将生成的 5TB raid 用作 raidz 的磁盘。

有一个纯粹的 zfs 替代品吗?是否可以使用 2TB+3TB 磁盘创建 VDEV 并将其用作 RAID-Z 的磁盘?

zfs mdadm zpool raidz
  • 1 个回答
  • 69 Views
Martin Hope
ppk
Asked: 2020-11-04 15:31:16 +0800 CST

看不到 ZFS 数据集上的正确空间和已用空间

  • 0

我已经用 debian buster 和 ZFS 建立了一个 vm。最初机器从第一个硬盘驱动器启动,但添加了 x4 20Gb hd 并将系统转移到 zfs 以进行测试。

它有效,所以我添加了一些数据集来看看它是如何增长的。但是在查询已用/可用空间时,它不会显示实数。好像什么都没发生。也测试达到配额,结果是一样的,

我做错了什么?

谢谢。

磁盘布局

root@debzfs:~# fdisk -l | grep sd | sort
/dev/sda1      2048 40892415 40890368 19.5G Solaris /usr & Apple ZFS
/dev/sda9  40892416 41943006  1050591  513M BIOS boot
/dev/sdb1      2048 40892415 40890368 19.5G Solaris /usr & Apple ZFS
/dev/sdb9  40892416 41943006  1050591  513M BIOS boot
/dev/sdc1      2048 40892415 40890368 19.5G Solaris /usr & Apple ZFS
/dev/sdc9  40892416 41943006  1050591  513M BIOS boot
/dev/sdd1      2048 40892415 40890368 19.5G Solaris /usr & Apple ZFS
/dev/sdd9  40892416 41943006  1050591  513M BIOS boot
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors

根池和数据集(已复制原始系统的位置)

zpool create -d -o feature@async_destroy=enabled -o feature@empty_bpobj=enabled -o feature@lz4_compress=enabled -o ashift=12 -O compression=lz4 rpool raidz2 /dev/sd[a-d]1 -f
zfs create rpool/root
zfs set quota=10gb rpool/root

# The new datasets
zfs create rpool/smalldb
zfs set quota=5gb rpool/smalldb
zfs create rpool/greatdb
zfs set quota=20gb rpool/greatdb

创建数据集后的当前磁盘布局

root@debzfs:~# zpool status
  pool: rpool
 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(5) for details.
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda1    ONLINE       0     0     0
            sdb1    ONLINE       0     0     0
            sdc1    ONLINE       0     0     0
            sdd1    ONLINE       0     0     0

errors: No known data errors

root@debzfs:~# zpool list
NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
rpool  77.5G  3.04G  74.5G         -      -     3%  1.00x  ONLINE  -
root@debzfs:~# zfs list
NAME            USED  AVAIL  REFER  MOUNTPOINT
rpool          1.47G  34.9G   244K  /rpool
rpool/greatdb   198K  20.0G   198K  /rpool/greatdb
rpool/root     1.47G  8.53G  1.47G  /
rpool/smalldb   198K  5.00G   198K  /rpool/smalldb

测试命令和输出(错误)。预期的当前大小和可用空间。但似乎什么也没发生。

truncate -s 2G /rpool/smalldb/smalldb.log
truncate -s 8G /rpool/smalldb/limitdb.log      #what ? if ls the file is there !!
truncate -s 10G /rpool/greatdb/greatdb.log

root@debzfs:~# zpool list
NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
rpool  77.5G  3.03G  74.5G         -      -     3%  1.00x  ONLINE  -

root@debzfs:~# zfs list
NAME            USED  AVAIL  REFER  MOUNTPOINT
rpool          1.47G  34.9G   244K  /rpool
rpool/greatdb   209K  20.0G   209K  /rpool/greatdb
rpool/root     1.47G  8.53G  1.47G  /
rpool/smalldb   209K  5.00G   209K  /rpool/smalldb

root@debzfs:~# ls -lh /rpool/smalldb/ /rpool/greatdb/
/rpool/greatdb/:
total 512
-rw-r--r-- 1 root root 10G Nov  4 00:11 greatdb.log

/rpool/smalldb/:
total 1.0K
-rw-r--r-- 1 root root 8.0G Nov  4 00:14 limitdb.log
-rw-r--r-- 1 root root 2.0G Nov  4 00:09 smalldb.log
root@debzfs:~#

linux zfs storage zpool
  • 1 个回答
  • 116 Views
Martin Hope
CodeNinja
Asked: 2020-08-13 03:55:34 +0800 CST

为什么我增加 ZFS 共享的配额时可用空间没有增加?

  • 2

我对 ZFS 不是很熟悉,需要在 FreeNAS 上增加 ZFS 共享的大小。当我这样做时,zpool list我看到我们有 2 个 ZFS 池:

NAME           SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
Volume1       1.98T  1.00T  1003G         -    26%    50%  1.00x  ONLINE  /mnt
Volume2       1.98T   140G  1.85T         -     2%     6%  1.00x  ONLINE  /mnt

我想增加大小的共享是一个Volume1名为的目录releases(应该从 100G 到 150G)

[root@axxfile] ~# zfs list | grep releases
Volume1/releases                                           100G   280K   100G  /mnt/Volume1/releases

[root@axxfile] ~# zfs get quota Volume1/releases
NAME              PROPERTY  VALUE  SOURCE
Volume1/releases  quota     100G   local

为了增加我所做的大小:zfs set quota=150 Volume1/releases这导致:

[root@axxfile] ~# zfs list | grep releases
Volume1/releases                                           100G   280K   100G  /mnt/Volume1/releases

[root@axxfile] ~# zfs get quota Volume1/releases
NAME              PROPERTY  VALUE  SOURCE
Volume1/releases  quota     150G   local

由于某种原因,配额从 100G 增加到 150G,但“可用空间”仍然是 100G。在向谷歌询问解决方案后,我发现我增加了 ZFS 共享,但操作系统不知道这一点,所以我需要用类似的东西告诉操作系统

[root@axxfile] ~# growfs -M /mnt/Volume1/releases/ Volume1/releases
growfs: illegal option -- M
usage: growfs [-Ny] [-s size] special | filesystem

如您所见,这不起作用,因为-M它不是有效的属性。我尝试继续谷歌搜索,但无法找到解决方案。也许有人可以通过解释我做错了什么或我错过了哪一步来帮助我?

也许很高兴知道我们使用的是旧版本(9.3)的 FreeNAS。计划在不久的将来进行更新,但我们还无法做到。

============== 更新1 ============ @Michael Hampton

我注意到 refquota 仍然是 100G,我猜这就是问题所在?

[root@axxfile] ~# zfs get quota,reservation,refquota,refreservation Volume1/releases
NAME              PROPERTY        VALUE      SOURCE
Volume1/releases  quota           150G       local
Volume1/releases  reservation     none       local
Volume1/releases  refquota        100G       local
Volume1/releases  refreservation  none       local

[root@axxfile] ~# zfs get -r reservation,refreservation -t filesystem,volume Volume1
cannot open '-t': dataset does not exist
cannot open 'filesystem,volume': invalid dataset name
NAME                                              PROPERTY        VALUE      SOURCE
Volume1                                           reservation     none       local
Volume1                                           refreservation  none       local
Volume1/VM                                        reservation     none       local
Volume1/VM                                        refreservation  none       local
Volume1/ab                                        reservation     none       local
Volume1/ab                                        refreservation  none       local
Volume1/backup                                    reservation     none       default
Volume1/backup                                    refreservation  none       default
Volume1/backup/cloneimages                        reservation     none       local
Volume1/backup/cloneimages                        refreservation  none       local
Volume1/backup/sicherungen                        reservation     none       local
Volume1/backup/sicherungen                        refreservation  none       local
Volume1/backup/switch                             reservation     none       default
Volume1/backup/switch                             refreservation  none       default
Volume1/jails                                     reservation     none       default
Volume1/jails                                     refreservation  none       default
Volume1/mailserver                                reservation     none       local
Volume1/mailserver                                refreservation  none       local
Volume1/releases                                  reservation     none       local
Volume1/releases                                  refreservation  none       local
quota zfs truenas zpool
  • 1 个回答
  • 808 Views
Martin Hope
MrQ
Asked: 2020-05-05 11:38:52 +0800 CST

将现有 RAID1 zpool 扩展为 RAID10 zpool

  • 3

我想通过添加另外 2 个 3TB 硬盘来扩展/转换我现有的 RAID1(2x 3TB 镜像)zpool 到 RAID10 zpool,而不会丢失(或移动)存储在现有池中的数据。

最终结果看起来像 2x3TB(现有镜像)+2x3TB(新镜像)组合成 RAID0 zpool

可能吗?

zfs raid10 zfsonlinux zpool convert
  • 1 个回答
  • 213 Views
Martin Hope
Pryo
Asked: 2020-03-14 10:36:27 +0800 CST

从“FAULTED”zfs 池中恢复。“-F”选项似乎被忽略了

  • 2

在 Ubuntu 上,我最近开始在外部 USB 硬盘上试用 ZFS。我现在似乎有一个损坏的 zfs 池,这可能只是因为我关闭了我的计算机(使用poweroff)。

$ zpool import
   pool: zfs
     id: 1234512345123451234
  state: FAULTED
 status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
    The pool may be active on another system, but can be imported using
    the '-f' flag.
   see: http://zfsonlinux.org/msg/ZFS-8000-72
 config:

        zfs                      FAULTED  corrupted data
          usb-Disk_Name_etc-0:0  ONLINE

尝试导入它时,我收到一条有用的消息,说明我将丢失大约 1 秒的数据(这很好),我可以尝试使用“-F”选项进行恢复:

$ zpool import zfs
cannot import 'zfs': I/O error
    Recovery is possible, but will result in some data loss.
    Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
    should correct the problem.  Approximately 1 seconds of data
    must be discarded, irreversibly.  Recovery can be attempted
    by executing 'zpool import -F zfs'.  A scrub of the pool
    is strongly recommended after recovery.

使用空运行标志,我确认 -F 应该工作:

$ zpool import -Fn zfs
Would be able to return zfs to its state as of Thu 12 Mar 2020 00:58:03 GMT.
Would discard approximately 1 seconds of transactions.

但是,当我尝试真实的东西时,它似乎完全忽略了“-F”选项并重复了原始消息:

$ zpool import -F zfs
cannot import 'zfs': I/O error
    Recovery is possible, but will result in some data loss.
    Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
    should correct the problem.  Approximately 1 seconds of data
    must be discarded, irreversibly.  Recovery can be attempted
    by executing 'zpool import -F zfs'.  A scrub of the pool
    is strongly recommended after recovery.

我发现从这个答案中提到了“-X”选项:https ://serverfault.com/a/645866/74394但我继续收到完全相同的消息。我已经尝试了所有这些选项组合,包括池名称 (zfs) 和数字 ID 号(如 1234512345123451234),我总是得到与上面建议使用 -F 选项完全相同的消息。

-F -FX -f -fF -fFX

我在这里做明显错误的事情吗?如果我因为系统关闭而导致 1 秒的数据丢失而无法挽回地丢失了整个磁盘,那么 ZFS 似乎非常不稳定!我没有池的备份副本,因为我才刚刚开始尝试 ZFS。谢谢你的帮助。

linux ubuntu zfs corruption zpool
  • 1 个回答
  • 1181 Views
Martin Hope
Sam Martin
Asked: 2017-03-12 02:09:05 +0800 CST

重新启动后两个池中的 ZFS 磁盘?

  • 2

我对 ZFS 很陌生,所以也许我读错了。
重新启动我的服务器后,我不得不重新导入我的池,并且在执行某些操作时出现了这种状态:

# zpool status -v
  pool: data
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: scrub in progress since Sat Mar 11 09:54:23 2017
    18.4M scanned out of 28.9T at 4.61M/s, (scan is slow, no estimated time)
    0 repaired, 0.00% done
config:

        NAME                     STATE     READ WRITE CKSUM
        data                     DEGRADED     0     0     0
          raidz1-0               DEGRADED     0     0     0
            sdd                  ONLINE       0     0     0
            5824186382562856058  FAULTED      0     0     0  was /dev/sdb1
            sde                  ONLINE       0     0     0
          raidz1-1               ONLINE       0     0     0
            sdj                  ONLINE       0     0     0
            sdk                  ONLINE       0     0     0
            sdl                  ONLINE       0     0     0
          raidz1-2               ONLINE       0     0     0
            sdg                  ONLINE       0     0     0
            sdb                  ONLINE       0     0     0
            sdf                  ONLINE       0     0     0
          raidz1-3               ONLINE       0     0     0
            sdc                  ONLINE       0     0     0
            sdh                  ONLINE       0     0     0
            sdi                  ONLINE       0     0     0

引起我注意的是in的FAULTED音量raidz1-0,但我没有注意到它是 /dev/sdb,但/dev/sdb目前正在使用raidz1-2!

因此,我正式导出了池,强制打开 labelclear/dev/sdb并呈现以下状态:

# zpool status
  pool: data
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Sat Mar 11 10:01:16 2017
    6.16G scanned out of 28.9T at 263M/s, 32h3m to go
    2.02G resilvered, 0.02% done
config:

        NAME                       STATE     READ WRITE CKSUM
        data                       ONLINE       0     0     0
          raidz1-0                 ONLINE       0     0     0
            sdd                    ONLINE       0     0     0
            replacing-1            UNAVAIL      0     0     0
              5824186382562856058  UNAVAIL      0     0     0  was /dev/sdb1/old
              sdb1                 ONLINE       0     0     0  (resilvering)
            sde                    ONLINE       0     0     0
          raidz1-1                 ONLINE       0     0     0
            sdj                    ONLINE       0     0     0
            sdk                    ONLINE       0     0     0
            sdl                    ONLINE       0     0     0
          raidz1-2                 ONLINE       0     0     0
            sdg                    ONLINE       0     0     0
            16211591403717513484   UNAVAIL      0     0     0  was /dev/sdb1
            sdf                    ONLINE       0     0     0
          raidz1-3                 ONLINE       0     0     0
            sdc                    ONLINE       0     0     0
            sdh                    ONLINE       0     0     0
            sdi                    ONLINE       0     0     0

我有两个问题

  1. 这怎么发生的
  2. 大概这意味着我在某处丢失了磁盘?识别它的最佳方法是什么?

附加信息:这个服务器+启动应该有12个数据盘,但是blkid只有11个。

# blkid
/dev/sda1: UUID="43AB-B900" TYPE="vfat" PARTUUID="70dbeb11-8d0f-4a90-892b-71ddbfa40614"
/dev/sda2: UUID="31b78e1e-47d2-4835-84f3-52526382626e" TYPE="ext2" PARTUUID="d4385b72-1d3b-4f10-b7be-a47240d0a875"
/dev/sda3: UUID="BW2exB-GVBK-2kYB-O6I3-0Xff-tZsT-1wR3eT" TYPE="LVM2_member" PARTUUID="8298e710-3c27-45f8-bde2-0ca014f61560"
/dev/sdc1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8549439230979948204" TYPE="zfs_member" PARTLABEL="zfs-d160a62f672223cd" PARTUUID="9a5815bb-0c8c-4147-81f7-3c2ed819c856"
/dev/sdd1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8670871889276024405" TYPE="zfs_member" PARTLABEL="zfs-056f7c2c0a7e1d0a" PARTUUID="672f59c7-b6b3-604b-8afd-594bd3b9b5f8"
/dev/sde1: LABEL="data" UUID="1497224562158568852" UUID_SUB="6213246766257863816" TYPE="zfs_member" PARTLABEL="zfs-65908045daba9599" PARTUUID="04785f97-1125-7642-b5c1-9c1a16cda925"
/dev/sdf1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8276492610986556289" TYPE="zfs_member" PARTLABEL="zfs-f8318dd36075cff4" PARTUUID="5d7feebf-8a5f-654b-b2d1-c15691800f44"
/dev/sdh1: LABEL="data" UUID="1497224562158568852" UUID_SUB="1281571628149249275" TYPE="zfs_member" PARTLABEL="zfs-59cc747b1125d66a" PARTUUID="61c60d91-9a85-3b4d-9b99-8df071434a50"
/dev/sdg1: LABEL="data" UUID="1497224562158568852" UUID_SUB="10881622467137806147" TYPE="zfs_member" PARTLABEL="zfs-1a80f12f1e668bbe" PARTUUID="208107b9-ad5f-184c-9178-5db0ebf19a14"
/dev/sdi1: LABEL="data" UUID="1497224562158568852" UUID_SUB="17007441084616526595" TYPE="zfs_member" PARTLABEL="zfs-0a8e6dabd469faca" PARTUUID="e8ed04a8-cde2-6244-902e-6353664af06a"
/dev/sdj1: LABEL="data" UUID="1497224562158568852" UUID_SUB="8620535390437895467" TYPE="zfs_member" PARTLABEL="zfs-97d91e998134d363" PARTUUID="a689a2ff-3b07-ef41-8b9c-cf6361a0e1d1"
/dev/sdk1: LABEL="data" UUID="1497224562158568852" UUID_SUB="17779182602415489900" TYPE="zfs_member" PARTLABEL="zfs-52c3d94733668a22" PARTUUID="42a8072a-e94c-a64d-aa07-dee30f675655"
/dev/sdl1: LABEL="data" UUID="1497224562158568852" UUID_SUB="7227713853040895948" TYPE="zfs_member" PARTLABEL="zfs-cc1406096601d13c" PARTUUID="5481683e-1d8b-4342-9629-3c49f6397075"
/dev/mapper/server--vg-root: UUID="1e3fee5d-d4c8-4971-ae32-23722bbd0688" TYPE="ext4"
/dev/mapper/server--vg-swap_1: UUID="6447b120-e79d-4c9f-8cc6-8eef5e275dfc" TYPE="swap"
/dev/sdb1: LABEL="data" UUID="1497224562158568852" UUID_SUB="16704776748125199400" TYPE="zfs_member" PARTLABEL="zfs-368140a1f4980990" PARTUUID="c131befd-a122-aa45-b710-399233eb08a6"
/dev/sdb9: PARTUUID="4aaed8f3-443e-2e44-8737-94a4d09496aa"
/dev/sdc9: PARTUUID="5f2cb2dd-dddd-154f-a771-8db4f5475fec"
/dev/sdd9: PARTUUID="22968880-24bb-d94a-a50f-13adaaa380bc"
/dev/sde9: PARTUUID="b867fa3f-bda4-cf40-b44c-c76bad4047be"
/dev/sdf9: PARTUUID="b4f79585-6676-de40-81ea-44cf74937b28"
/dev/sdh9: PARTUUID="77f5225f-e0e5-4d4f-8361-d13984807960"
/dev/sdg9: PARTUUID="be9746bc-1eb5-9342-b753-3471ae936d42"
/dev/sdi9: PARTUUID="08675893-d6d3-0b49-bf69-105383040006"
/dev/sdj9: PARTUUID="107df9dc-7ea8-694a-8deb-7a6025b74b86"
/dev/sdk9: PARTUUID="2b2ef8de-da71-a740-aad0-bd2dc1d1c8a7"
/dev/sdl9: PARTUUID="f52efda2-f758-2f47-80ff-318be5db3fca"
linux zfs zpool
  • 1 个回答
  • 431 Views
Martin Hope
user260467
Asked: 2016-09-09 12:24:54 +0800 CST

ZFS vdev 会累积校验和错误,但单个磁盘不会

  • 8

我正在运行 FreeNAS 9.3 的特定于供应商的衍生产品。

当我安装一个新的 JBOD 机箱向我的池中添加两个新的 vdev 时,我的麻烦就开始了,而机箱的主板坏了。在此期间,我看到坏板上的驱动器出现 SAS 电源错误——我的新驱动器每分钟都在重复地打开和关闭。

我更换了主板,现在,从大多数方面来看,驱动器运行良好,但是当我查看zpool status. 我认为当我遇到 SAS 电源问题时,有一些糟糕的 CoW 写入。

带有 CPU、引导驱动器、RAM 等的第一个机箱通过 mini-SAS 连接到第一个扩展 JBOD 机箱,第二个 JBOD 扩展机箱通过第一个 JBOD 扩展机箱以菊花链方式连接,也通过 mini-SAS。

  • [机箱 1:启动盘,两个 L2ARC SSD,RAIDZ3-0 的 11/11 驱动器,RAIDZ3-1 的 1/11 驱动器] -->mini-SAS 到机箱 2
  • [机箱 2:RAID Z3-1 的 10/11 个驱动器,RAID Z3-2 的 6/11 个驱动器] --> mini-SAS 到机箱 3
  • 【机箱3:RAIDZ3-2 5/11盘,RAIDZ3-3 11/11盘】

校验和错误并没有准确地映射到任何一个控制器或机箱,但我的直觉是,当我遇到这些电源问题时,写入不同新磁盘的任何数据都在两个新 vdev 上写入错误。

我的 HBA 都在良好的 LSI 固件上——全部都在 20.00.04.00 或 20.00.08.00

我已经更换了 mini-SAS 电缆,并尝试使用不同的端口,但无济于事。

的输出zpool status显示了两个新 vdev 上累积的校验和错误,并且在清理、重新启动或zpool clear之后,最终将zpool status这些 vdev 标记为降级。奇怪的是,它还将属于那些 vdev 的一些驱动器标记为降级,但它们的各个磁盘的实际错误计数都是 0。zdb表明各个驱动器被标记为降级,因为它们有太多的校验和错误,即使他们所有的校验和错误计数实际上都是 0。同样奇怪的是池级校验和错误显示的数字低于两个问题 vdev 加在一起的校验和错误。

zpool status -v在映射到0x0早已被删除但似乎无法通过多次清理、重新启动或zpool clear. 此外,其他永久性错误会时不时出现,有时仅显示为十六进制代码 inode,有时则显示为最近快照的一部分。我找不到任何0x0.lsof

我相信池中的元数据可能存在某种数据损坏。

我正在寻找一种方法来通过手术移除这些幻像快照,或者以其他方式将我的池恢复到健康状态而不破坏我的数据。我怀疑在某个地方,ZFS 正在迭代这些损坏的幻像快照,并导致奇怪的校验和错误和 vdev 上的降级状态。

我有很多重要数据的“冷”LTO 备份,但除此之外,如果我无法修复我的池,我正准备设置第二台服务器,将所有内容卸载到“热”的第二台服务器,销毁我的池在顶层,然后从热备份重新加载。

这是输出zpool status -v:

[root@Jupiter] ~# zpool status -v
  pool: freenas-boot
 state: ONLINE
status: One or more devices are configured to use a non-native block size.
        Expect reduced performance.
action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool.
  scan: resilvered 944M in 0h17m with 0 errors on Tue Aug  9 11:56:28 2016
config:

    NAME        STATE     READ WRITE CKSUM
    freenas-boot  ONLINE       0     0     0
      mirror-0  ONLINE       0     0     0
        da46p2  ONLINE       0     0     0  block size: 8192B configured, 8388608B native
        da47p2  ONLINE       0     0     0  block size: 8192B configured, 8388608B native

errors: No known data errors

  pool: pool
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://illumos.org/msg/ZFS-8000-8A
  scan: scrub in progress since Fri Sep  9 22:43:51 2016
        6.27T scanned out of 145T at 1.11G/s, 35h27m to go
        0 repaired, 4.33% done
config:

    NAME                                            STATE     READ WRITE CKSUM
    pool                                            DEGRADED     0     0   118
      raidz3-0                                      ONLINE       0     0     0
        gptid/ac108605-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ac591d4e-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ac92fd0d-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/accd3076-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ad067e97-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ad46cbee-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ad91ba17-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/adcbdd0a-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ae07dc0d-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ae494d10-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ae93a3a5-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
      raidz3-1                                      ONLINE       0     0     0
        gptid/12f6a4c5-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/511ea1f9-1932-11e6-9b1e-0cc47a599098  ONLINE       0     0     0
        gptid/14436fcf-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/14f50aa3-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/159b5654-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/163d682b-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/16ee624e-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/1799dde3-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/184c2ea4-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/18f51c30-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/19a861ea-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
      raidz3-2                                      DEGRADED     0     0   236
        gptid/5f80fc42-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/60369e0f-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/60e8234a-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/61a235f2-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/62580471-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/6316a38a-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/63d4bce8-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/ebfc2b99-6893-11e6-9b09-0cc47a599098  ONLINE       0     0     0
        gptid/654f143a-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/66236b33-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/66eda3f6-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
      raidz3-3                                      DEGRADED     0     0   176
        gptid/c77a9da9-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/c83e100e-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/c8fd9ced-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/c9bb21ba-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/ca7a48db-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/cb422329-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/cbfe4c21-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/ccc43528-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/cd93a34c-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/ce622f51-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/cf2591d3-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
    cache
      gptid/aedd3872-265c-11e5-9a02-0cc47a599098    ONLINE       0     0     0
      gptid/af559c10-265c-11e5-9a02-0cc47a599098    ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        <0x357>:<0x2aef3>
        <0x37b>:<0x397285>
pool/[email protected]:<0x0>

通过 FreeNAS GUI,我尝试将System dataset poolfrom复制pool到freenas-boot,然后尝试使用zfs destroy删除pool副本pool/.system并保持freenas-boot副本完好无损。我可以zfs destroy用来删除中 pool/.system列出的所有内容zfs list,但是在尝试使用 销毁pool/.system时zfs destroy,shell 返回了错误:Cannot iterate filesystems: I/O error。根据Oracle ZFS 文档,我尝试zfs destroy使用pool/.system、和标志,但无济于事。-f-r-R

我又开始了另一次磨砂。也许消除副本上的pool/.system内容将允许清理使用幻像快照清除元数据错误。poolSystem dataset poolpool/[email protected]

我想知道是否有可能重新同步显示为降级的每个磁盘,一个接一个,以便可以放弃没有被引用的“坏”元数据。我已经重新同步了两个磁盘,但现在我遇到了一个问题,其中重新同步任何其他磁盘会导致我已经重新同步的其他磁盘同时开始再次重新同步。我相信这可能是与定期快照任务相关的 ZFS 错误,我已经删除了我的定期快照任务并销毁了我所有的快照,但我犹豫是否要重新同步另一个降级的驱动器,因为害怕所有先前重新同步的磁盘将再次重新同步,使我没有任何冗余,最终导致池出现故障。

在禁用我的定期快照任务并删除我的所有快照后,我尝试擦除一个磁盘然后重新同步它,但是我已经重新同步的三个磁盘又开始重新同步。现在我几乎可以肯定,每个问题 RAID-Z3 vdev 都有两个不同的磁盘可以重新同步,所以如果我尝试重新同步更多磁盘,我将失去每个问题 vdev 和我的池中的冗余会出错。

另一种奇怪的行为是检查zpool status -v实际上会逐渐增加池的校验和错误计数,但检查zpool status不会。就好像-v标志本身正在迭代导致校验和错误的任何机制。

在我的池中使用zdb -c是否能够以某种方式“修复”这些元数据错误?

freebsd zfs truenas checksum zpool
  • 1 个回答
  • 2512 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve