永久删除zfs池中的磁盘

isk*_*kim 7 zfs

我试图通过ZIL向zpool添加SSD,但是我犯了一个错误.

我期待.. zpool add zones log c0t1d0
但我做了... zpool add zones c0t1d0

我尝试执行zone remove,detach,offline命令,但是失败了.
如何在zpool中删除没有数据丢失的SSD?

$ zpool status
pool: zones
state: ONLINE
scan : non requested
config:
   NAME          STATE     READ  WRITE CKSUM
   zones          ONLINE      0      0      0
       c0t0d0     ONLINE      0      0      0
       c0t1d0     ONLINE      0      0      0


$ zpool iostat -v               
capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
zones        280G   109G     40    139  1.28M  13.7M  
     c0t0d0  263G  15.3G     39     35  1.25M  2.61M  
     c0t1d0 17.6G  93.4G      0    104  20.9K  11.1M
----------  -----  -----  -----  -----  -----  -----
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 10

更新:ZoL 0.8.0 版本将包含此功能。

@user121391 是正确的,今天这是不可能的,除非通过send/recv存储迁移。

然而,有一个由 Matt Ahrens(OpenZFS 社区负责人)开发的新功能即将登陆 master 分支,最终将进入其他平台(FreeBSD / Linux / macOS / 等)。这是Github 上拉取请求的链接。

集成后,您将能够zpool remove在任何顶级 vdev 上运行,它将其存储迁移到池中的不同设备,并添加从旧位置到新位置的间接映射。如果您要删除的 vdev 已经充满了数据(因为访问任何这些数据都必须通过间接映射),那就不好了,但它的设计非常适合您正在谈论的用例(您很快注意到的错误配置)。

  • 看起来它即将在 0.8.0 版本中登陆 Linux (https://github.com/zfsonlinux/zfs/pull/6900)。 (2认同)

use*_*391 3

不幸的是,你将不得不破坏并重新创造。您可以用来zfs send/recv迁移所有数据,并保留所有快照、元数据等,并且复制速度比普通cp.