使用 Linux LVM,我可以更改条带数并“重新平衡”逻辑卷吗?

使用 Linux LVM,我可以更改条带数并“重新平衡”逻辑卷吗?

我通过将两个 RAID1 md 设备作为物理卷添加到卷组来创建 RAID10。不幸的是,我似乎在创建逻辑卷时忘记指定条带数(为时已晚):

PV         VG     Fmt  Attr PSize   PFree  
/dev/md312 volume lvm2 a-   927.01G 291.01G
/dev/md334 volume lvm2 a-   927.01G 927.01G

我知道我可以使用 将逻辑卷的所有数据从一个物理卷移动到另一个物理卷pvmove。它似乎还lvextend支持-i更改条带数量的开关。有没有办法将这两者结合起来,即更改条带数量并根据分配策略在条带上“重新平衡”数据?

根据罗斯·沃克 (Ross Walker) 的这封邮件从 2010 年 3 月起这已不再可能,但自那时起情况可能已经发生改变。

答案1

pvmove 非常慢。如果您在短暂的停机时间内重新创建布局,速度可能会更快。

如果不可能停机,我会将 md334 重新创建为条带镜像,并将降级的 raid1 磁盘作为底层磁盘(即,将 md 用于 Raid 10 - 而不是 LVM)。然后对 md334 执行 pvmove,删除 md312,擦除其磁盘 md 签名,并将当时空闲的两个磁盘添加到两个降级的 raid1(并恢复完全冗余)。

我不确定您是否可以堆叠 md 设备,但我看不出这有什么不可以的。在 pvmove 期间,您不会有冗余。

更新 2011-08-17:我刚刚用 CentOS 5.6 测试了该过程 - 成功了。结果如下:

cat /proc/mdstat

个性:[raid1] [raid0]

md10 :活动 raid0 md3[1] md1[0] 1792 块 64k 块

md3 : 活动 raid1 loop0[1] loop1[0] 960 个块 [2/2] [UU]

md1:活动 raid1 loop2[1] loop3[0] 960 个块 [2/2] [UU]

为了模拟您的设置,我首先设置了 /dev/md0,其中包含一个由 loop0 和 loop2 组成的镜像。我设置了一个 VG,其中 md0 为磁盘。然后我在该 VG 中创建了一个 LV,在该 LV 中创建了一个文件系统并挂载它,向其中写入了一些文件。

然后我将 /dev/md1 和 md3 设置为降级 raid1 设备,由 loop1 和 loop3 组成。之后,我创建了一个 raid10 设备,用 md1 和 md3 构建了一个 raid0。

我将 md10 添加到 VG。然后 pvmove md0 到 md10。从 VG 中删除 md0。停止 md0,擦除 loop0 和 loop2。调整降级的 raid1 的大小,使其可以使用两个设备。将 loop0 热添加到 md3,将 loop2 热添加到 md1。

在整个过程中,文件系统仍然处于安装状态。

相关内容