2015年10月15日更新:今天我发现了该zpool split
命令,该命令从现有池中拆分出一个新池(使用新名称)。 split
比offline
和干净得多detach
,因为两个池随后可以在同一系统上存在(并分别清理)。export[ed]
从系统中拔出新池之前,也可以对其进行干净(正确)的安装。
(我的原始帖子如下)。
警告! 此页面上的各种注释均暗示zpool detach
着驱动器可能(或可能),然后以某种方式重新连接驱动器并访问其包含的数据。
但是,根据该线程(和我自己的实验)
zpool detach
,从分离的驱动器中删除了“池信息”。换句话说,a detach
就像驱动器的快速重新格式化。在detach
驱动器上仍有大量数据之后,但是实际上将无法重新安装驱动器并将数据视为可用的文件系统。
因此,在我看来,它detach
比更具破坏性destroy
,因为我相信它zpool import
可以恢复被破坏的池!
一个detach
是不是一个umount
,也不是一个zpool export
,也没有一个zpool offline
。
在实验中,如果我先是zpool offline
一台设备,然后再zpool detach
是同一台设备,则池中的其余部分会忘记该设备曾经存在过。但是,由于设备本身早于offline[d]
以前,因此detach[ed]
永远不会将其通知给设备本身detach
。因此,设备本身仍然具有其池信息,并且可以移动到另一个系统,然后再移动import[ed]
(处于降级状态)。
为了进一步保护detach
您,甚至可以offline
在发出detach
命令之后但在发出命令之前物理上拔下设备的电源。
我希望先使用offline
,然后detach
再使用import
来备份我的池。像原始海报一样,我计划使用四个驱动器,两个使用恒定的镜像,另外两个用于每月,轮换,异地(和脱机)备份。在将其备份到异地之前,我将通过在单独的系统上导入和清理每个备份来对其进行验证。与原始海报不同,我不介意每月重写整个备份驱动器。实际上,我更喜欢完全重写以便有新鲜感。