我有以下情况:带有 4 个磁盘的服务器 - 设备/dev/sdb
- /dev/sde
。
这些磁盘中的每一个都是物理卷,并且它们都位于单个卷组内。
在这个卷组中,我有一个跨越所有 4 个磁盘的单个逻辑卷。
现在,我想将其迁移到更大的磁盘。我添加了 4 个新驱动器(/dev/sdf - /dev/sdi)
,并将移动数据。
通常我会:
pvmove /dev/sdb /dev/sdf
等待它完成
pvmove /dev/sdc /dev/sdg
等待它完成
pvmove /dev/sde /dev/sdi
问题是 - 我能否安全地同时运行所有 4 个 pvmove,而不必等待它们每个完成?
答案1
作答,供参考。
不,你不能。或者更确切地说 - 你可以安全地这样做,但这样做不会奏效。
对同一个 lv 运行第二个 pvmove,结果如下:
Skipping locked LV lv
Skipping mirror LV pvmove0
All data on source PV skipped. It contains locked, hidden or non-top level LVs only.
No data to move for vg
您必须等待第一个完成后才能移动第二个。
答案2
手册页说你可以,
You can run more than one pvmove at once provided they are moving data
off different SourcePhysicalVolumes, but additional pvmoves will ignore
any Logical Volumes already in the process of being changed, so some
data might not get moved.
但是,如果您的 LV 跨越 PV,则不会出现上述锁定问题。解决此问题的方法是指定要移动的 LV,而不是 pv。
IE。pvmove lv_name pv_source pv_dest
这应该可以避免锁定。但是您无法并行化同一个 LV。