lvm2 restriping?

经过一番search,我假设lvm2 restriping,如在一个活跃的LV的所有程度,并平均重新分配在VG所有当前的PV,是不可能的?

例如:

  • 1个具有6个物理卷的卷组基于HDD和1个物理卷的SSD。
  • 新的LV是专门在SSD PV上创build的,使用lvcreate选项来应对高写入IOPS。
  • 后来,IOPS下降,LV占用了宝贵的SSD空间,因此应该将其移至6个物理卷,以便跟上中等写入IOPS。

(在同一个VG中混合使用SSD和HDD基本上是一件有趣的事情,因为pvmove可以将LV在线从SSD移动到硬盘并返回,但不幸的是移动时不能移动)

离线的情况是直截了当的:跨硬盘创build一个新的条纹LV,dd从旧到新的所有内容,重命名,再次在线。 但有没有办法做到这一点在线?

最接近的事情是我写了一个运行pvmove bash脚本来分散的范围 ,但不会是相同的(因为范围的大小是一个巨大的4 MiB反对典型的条带大小64 KiB)。

既然你澄清了你的设置,我会再次通过md层。

  1. 使用由原始LV组成的mdadm创build一个降级的Raid 1(在SSD上)
  2. 重新安装该MD设备,而不是LV
  3. 将6个HD组成的LVjoin这个团队,让它解决
  4. 从MD设备中删除SSD-LV(从而再次降级MD RAID 1)
  5. 可选:umount md-device,改为安装HD-LV。

    1. 和5.会有助于导致短暂的停机时间(如果重新安装不工作在线)。

但是:md-raid1镜像比pvmove快得多 – 并且会导致新的布局几乎没有服务中断。

恐怕你最好的办法是在VG内完成LV的全部转储; 破坏VG; 用新的条带参数重新创buildVG;重新创buildLV; 从转储恢复LV。