Linux:pvmove 的 ZFS 模拟 - 如何从 vdev 移出数据?

Linux:pvmove 的 ZFS 模拟 - 如何从 vdev 移出数据?

我需要扩展服务器的磁盘容量。池最初使用 1Tb 磁盘,然后使用 2Tb 磁盘进行扩展。有超过 1Tb 的可用空间,也就是说,所有数据都可以轻松容纳 2Tb 部分,但目前已分配到 1Tb 磁盘上。

实际上,这些磁盘是分别超过 1Tb 对和 2Tb 对的硬件(PERC)RAID1 阵列。

我想用 3TB 的磁盘替换这些 1TB 的磁盘。“逐个”替换实际上不是一个选择。原则上,这个物理 RAID 可以逐个替换磁盘,然后扩大阵列以填满磁盘。但是,我想避免这条路径,因为它会在相当长的时间内丢失磁盘冗余。

我想将所有数据从 1Tb 移出,然后删除,并替换为 3Tb。所有操作均在运行系统的情况下即时完成,且不会停机。

使用 LVM 的操作必须非常简单且易于理解:

  1. pvmove 从 1Tb 物理磁盘(RAID 术语中的 VD)中移动所有分配的数据
  2. vgreduce 从 vg 中删除该 pv,并使用 pvremove 删除 pv 元数据
  3. 使用 megacli 删除 1Tb 阵列(PERC 更名为 LSI/Avago MegaRAID SAS)
  4. 物理替换磁盘
  5. 使用 megacli 再次组装另一个阵列
  6. 创建一个新的 pv 并将其添加到 vg 中

这是我过去常做的常规程序。每个步骤都很清楚,每个步骤我都能完全掌控,如果出现问题我总是知道该怎么做等等。

如何使用 ZFS 安全且知情地执行相同的过程?

如果这很重要:

  • 服务器是Dell PowerEdge R730
  • 操作系统是 Proxmox VE 6.0,基于 Debian 10.1。它是从 PVE ISO 映像安装的,即不是从 Debian 安装转换而来的。
  • 系统不依赖于此池,因为它从组装到另一个池的一组 SSD 运行
  • 该池托管一些不需要高性能的 VM 虚拟磁盘。但是,这些数据很有价值,我不能容忍它丢失。因此,该过程应该清晰易懂
  • 系统不断被用户使用,但他们可以容忍数据迁移过程中的性能损失

答案1

如何将数据从 vdev 移出?

无法完成镜像池除外。

相关内容