ZFS:尝试从 Zpool 中删除顶级驱动器

ZFS:尝试从 Zpool 中删除顶级驱动器

我有一个名为 storage 的 zpool,其中包含五个设备 raidz1 阵列。

今天我去买了另一台 3TB 设备并将其放入我的外壳中。但是,我没有创建一个新池并将该设备添加到其中,而是犯了一个错误,并将其添加到了现有的存储池中。

现在我有一个要删除的顶级设备sdg(即新驱动器)。每次我尝试删除它时,我都会得到:

cannot remove sdg: only inactive hot spares, cache, top-level, or log devices can be removed.

那么现在我该如何删除这个设备呢?如果此设备发生故障,我的整个池将不可用。我想我应该去购买另一个驱动器,至少它会被镜像,但我只是不敢相信没有正确的方法来做到这一点。

这是我的状态转储:

pool: storage
state: ONLINE
scan: scrub canceled on Wed Jul 23 17:26:08 2014

config:

 NAME                                 STATE     READ WRITE CKSUM
 storage                              ONLINE       0     0     0
   raidz1-0                           ONLINE       0     0     0
     ata-ST3000DM001-1CH166_Z1F1PYM6  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F24CSC  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F2372R  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_W1F24BTK  ONLINE       0     0     0
     ata-ST3000DM001-1CH166_Z1F2KKLW  ONLINE       0     0     0
   sdg                                ONLINE       0     0     0

errors: No known data errors

答案1

不幸的是,ZFS 当前不支持从池中删除 vdev(此驱动器)(但有工作正在进行中以支持它)。解决方法是将数据从池中转储并重新创建它,然后将数据放回去。

答案2

跟进:对于那些从那时起阅读本文的人来说,至少从 FreeBSD 12.2-RELEASE 开始这是可能的(但是,手册页在 12.2 的部分zpool中没有提到这一点,但是也允许删除非冗余的顶级 vdev,removezpool remove如果池有足够的可用空间)。

相关内容