Nik*_*nov
8
zfs
lvm
dell-perc
我需要扩展服务器的磁盘容量。该池从 1Tb 磁盘开始,然后用 2Tb 磁盘扩展。有超过 1Tb 的可用空间,即所有数据都可以轻松容纳 2Tb 部分,但当前分配在 1Tb 磁盘上。
实际上,这些磁盘是 1Tb 和 2Tb 对上的硬件 (PERC) RAID1 阵列。
我想用 3Tb 替换这些 1Tb 磁盘。“一个接一个”的替换并不是一个真正的选择。原则上,这个物理RAID可以一个个替换磁盘,然后增长阵列来填满磁盘。但是,我想避免使用此路径,因为它会在磁盘冗余丢失时留下相当长的时间段。
我想从字面上将所有数据从 1Tb 移走,然后将其删除,并替换为 3Tb。一切都将在运行中、零停机时间的情况下即时完成。
使用 LVM,操作必须非常简单易懂:
- pvmove 从 1Tb 物理磁盘(RAID 术语中的 VD)中分配的所有数据
- vgreduce 从 vg 中删除该 pv 并 pvremove 删除 pv 元数据
- 使用 megacli 删除 1Tb 阵列(PERC 更名为 LSI/Avago MegaRAID SAS)
- 物理更换磁盘
- 使用 megacli 再次组装另一个数组
- 制作一个新的 pv 并将其添加到 vg
这是我以前做的例行程序。每一步都很好理解,每一步我都可以完全控制正在发生的事情,如果出现问题,我总是知道如何继续等等。
如何使用 ZFS 安全且有意识地执行相同的程序?
如果这很重要:
- 服务器是戴尔 PowerEdge R730
- 操作系统是基于 Debian 10.1 的 Proxmox VE 6.0。它是从 PVE ISO 映像安装的,即不是从 Debian 安装转换而来的。
- 系统不依赖于这个池,因为它从组装到另一个池中的一组 SSD 运行
- 该池托管一些不需要高性能的 VM 虚拟磁盘。然而,这些数据很有价值,如果它丢失了,我不能容忍。因此,程序应该清晰易懂
- 系统不断被用户使用,但他们会容忍数据迁移过程中的性能损失