我试图通过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
---------- ----- ----- ----- ----- ----- -----
答案 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
更快地进行复制。