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

Nik*_*nov 8 zfs lvm dell-perc

我需要扩展服务器的磁盘容量。该池从 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 安全且有意识地执行相同的程序?

如果这很重要:

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

poi*_*ige 5

如何将数据从 vdev 移走?

除了镜像池之外无法完成

  • 好吧,ZFS 也有它的优势!至于您遇到的问题 - 有很多可能的方法可以优雅地解决这个问题,至少是由于 Proxmox 内置的 VE 存储透明(实时)迁移方法。 (3认同)
  • 这篇文章总结了对围绕 ZFS 的这种炒作的不好的感觉。 (2认同)