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

我通过将两个RAID1 md设备作为物理卷添加到卷组来创buildRAID10。 不幸的是,当我创build逻辑卷的时候,我忘了指定条带的数量(已经很晚了):

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

我知道我可以将逻辑卷的所有数据从一个物理卷转移到另一个物理卷。 它也看起来像lvextend支持-i开关来改变条纹的数量。 有什么办法可以把这两个结合起来, 改变条纹的数量,并根据分配策略“重新平衡”条纹上的数据?

根据罗斯沃克从2010年3月的这封邮件是不可能的,但也许这从那以后已经改变。

pvmove非常慢。 如果您在较短的停机时间内重新创build布局,则速度会更快。

如果没有宕机是可能的,我会重新创buildmd334作为带有降级raid1磁盘作为基础磁盘的条纹镜像(即使用md的RAID 10 – 而不是LVM)。 然后做你的pvmove md334,摆脱md312,擦拭他们的磁盘md-signature,然后将免费的两个磁盘添加到你的两个退化RAID1(并回到完全冗余)。

我不确定你是否可以堆叠MD设备,但是我没有看到为什么不能这样做。 在pvmove你没有冗余。

更新2011-08-17:我只是用CentOS 5.6testing过程 – 它的工作原理。 结果如下:

 cat /proc/mdstat 

个性:[raid1] [raid0]

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

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

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

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

然后我把/ dev / md1和md3设置为由loop1或者loop1组成的降级的raid1设备。 循环3。 之后,我创build了一个raid10设备,我用md1和md3构build了一个raid0。

我加了md10到VG。 然后pvmove md0到md10。 从VG中删除了md0。 停止md0,擦除loop0和loop2。 调整退化raid1到他们可以使用两个设备。 热添加loop0到md3和loop2到md1。

文件系统在整个过程中仍然被安装。