我有一个跨三个物理卷的条带化逻辑卷。我必须将此逻辑卷移动到另一个物理卷。使用 pvmove 命令可以很好地完成此操作。但是,我后来发现逻辑卷仍然是条带化的,现在所有三个条带都在同一个物理卷上。有没有办法将条带化的逻辑卷转换为线性逻辑卷?我在 Linux 上使用 LVM2。
我认为最明显的可能性是重命名条带逻辑卷,创建新的线性逻辑卷,然后复制数据,但这需要将文件系统离线一段时间。不幸的是,我不能在下周之前做到这一点。有没有更好的选择?
答案1
也可以先使用另一个单个 PV 构建镜像,然后拆分条带卷。这需要一个空闲的 PV,但我再次假设 pvmove 也需要它。
例如,如果您有一个lvsplit
使用 PV 的卷,并且是一个具有足够可用范围的(临时)PV,您可以执行以下操作:sda1
sdb1
sdc1
lvconvert -m 1 /dev/volumegroupname/lvsplit
这将从您的条带卷创建镜像,使用 sdc1 来构建镜像
...让镜子建造...
lvconvert -m 0 /dev/volumegroupname/lvsplit /dev/sda1 /dev/sdb1
这会将镜像转换回单个卷,取出 PV/dev/sda1
和上的范围/dev/sdb1
,使 sdc1 成为您现在的线性 LV 的唯一 PV。
然后您可以pvmove
从 sdc1 迁移到另一个 PV,或者使用镜像技术而不是 pvmove 来迁移回sda1
或sdb1
。
答案2
然而,我后来发现逻辑卷仍然是条带化的
是的,这真是太麻烦了。性能大幅下降(以前就知道这个)。
还有更好的选择吗?
当然,但很不愉快。你必须对pvmove
所有范围进行操作,这样它们才能按逻辑顺序排列。我更喜欢自己编写脚本,但你可以尝试使用http://bisqwit.iki.fi/source/lvm2defrag.html(当然,风险由您自行承担)。