永久删除zfs池中的磁盘

时间:2016-11-21 07:02:19

标签: 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
----------  -----  -----  -----  -----  -----  -----

2 个答案:

答案 0 :(得分:4)

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

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

然而,Matt Ahrens(OpenZFS社区的负责人)开发了一个新功能,该功能即将登陆主分支,最终将进入其他平台(FreeBSD / Linux / macOS /等)。这是指向pull request on Github的链接。

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

答案 1 :(得分:2)

不幸的是,你将不得不销毁并重新创造。您可以使用zfs send/recv迁移所有数据,同时保留所有快照,元数据等,并且比正常cp更快地进行复制。