ZFS 在线磁盘迁移

ttt*_*ttt 4 zfs

我想知道 ZFS 是否可以处理以下问题。假设我在 zpool 上安装了 FreeBSD,并在镜像设置中使用了两个 500GB 物理磁盘。这些构成了根分区,因此实际上最多只能使用 20GB。

我以后想用镜像设置中的两个小型 SSD 替换物理磁盘。有没有办法在网上做到这一点?我的想法是将这些磁盘作为额外的镜像添加到 zpool,等待重新同步完成,然后移除旧驱动器。问题是这些新磁盘会比原始磁盘小。

我的一个想法是只对 500GB 驱动器进行分区,这样 ZFS 只能在每个物理磁盘上获得 30GB 的空间,其余的都被浪费了。这样 SSD 会有更多空间,所以我不会遇到收缩问题。问题是这样我需要提前估计未来更换磁盘的大小。有没有办法避免这种情况?

Chr*_*s S 5

你是对的,如果 vdev 是整个磁盘,当你切换到 SSD 时,它们必须至少是那个大小,你不能“缩小”到更小的磁盘(当然你可以增长到更大的磁盘)。您也可以使用分区,因此 vdev 比未来的 SSD 小,这也是正确的,您必须猜测这些 SSD 将有多大。

或者,如果服务器可以同时容纳所有 4 个磁盘,即使是很短的时间,您现在可以以任何方式创建 zpool,然后使用发送/接收将数据传输到新的 SSD。这确实需要同时插入所有设备。一个小小的警告,发送/接收操作只能从快照发送 - 因此您不能复制“实时”磁盘,并且需要为此做出调整(通过增加一点复杂性,停机时间可以很短)。

更复杂的是,实际上可以将“发送”存储到另一个磁盘上某处的中间文件,然后从中“接收”。因此,您在任何时候都只需要服务器中的 3 个磁盘。更复杂的是,这 4 个磁盘可以位于不同的服务器上,并且可以通过 ssh 甚至 netcat 进行发送/接收。