我一直在做一些阅读,看起来ZFS不喜欢从非冗余阵列中删除磁盘:
您可以使用该
zpool detach
命令从镜像存储池分离设备。例如:# zpool detach zeepool c2t1d0
但是,如果没有其他有效的数据副本,则拒绝此操作。例如:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs
基本问题是可以理解的:从数组中删除数据的唯一副本(无论是元数据还是有效载荷数据)都会使该数据不可用。
替换ZFS存储池中的设备的示例提供了有关如何替换存储池中的设备的基本分步说明:使磁盘脱机,卸下磁盘,插入替换磁盘,运行zpool replace
以将更改通知ZFS然后将磁盘联机。显然,这要求该阵列不依赖于要更换的磁盘,因此该阵列必须具有冗余性。如果它确实取决于所讨论的驱动器,则此方法存在与上述相同的问题。
在非冗余 ZFS阵列中更换磁盘的推荐方法是什么?
假定现有磁盘工作正常,并假定替换磁盘的大小至少与被替换磁盘的大小相同。(如果现有磁盘发生故障,显然所有可以做的就是添加新磁盘,并从备份中还原受磁盘故障影响的所有文件。)