同じボリュームグループに2つのシンプール(vg / pool1)と(vg / pool2)があり、最初のプールにLVがある場合、LVを2番目のプールに移動するLVMコマンドはありますか? pvmoveはこれを行うか?
あるいは、2つの異なるPVに分散されたシンLVMプールがある場合は、pvmoveコマンドを使用してLV Xのすべての範囲をPV YからZに移動するように簡単に指定できますか?
答え1
私は成功せずにこれを行うためにpvmoveを使ってみました。 pvmoveコマンドでこれを行うことができるソースコードの修正への参照はGoogleにありますが、私のCentOS 7システムではシンプールについて文句を言うので、この修正がどのバージョンであるかわかりません。もしそうなら)それがうまくいくかどうかわかりません。
つまり、LVをあるプールから別のプールに移動することはそれほど難しくありません。実際、別のVGの2つのプールの間でプールを移動しました(とにかく関係ありません)。これが私がしたことです:
LV my_logic_volume、VG first_vg、second_vg(あなたの場合でも同じ)を呼び出し、my_logic_volume2をターゲットにします。私のインスタンスでLVの名前を変更しました。異なるシーンプールにあっても、同じVGで同じ名前の2つのlvを作成できるかどうかはわかりません。試してみてください。とにかく、移動した後はいつでもlvrenameを使用できます。簡単です。
順序は次のとおりです。
# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
my_logical_volume first_vg Vwi-a-tz-- 10.74g thinpool0 31.39
thinpool1 second_vg twi-a-tz-- 1.20t 0.29
thinpool0 first_vg twi-a-tz-- 500.89g 86.87
上記の論理ボリュームのLSizeを確認してください。このコマンドは次のとおりです。
# lvcreate -V 10.74g -n my_logical_volume2 -T second_vg/thinpool1
...一致する適切な数のLEを生成します。 lvsが示すものとまったく同じ寸法を使用してください。 lvdisplay を使用して、同じサイズの論理ボリュームを作成したことを確認します。このCurrent LE
行を確認してください(結果のLEの数が少ない場合は、lvを削除して再作成しますが、サイズに0.01を追加します[-Vの後の数字))。 :
# lvdisplay first_vg/my_logical_volume
--- Logical volume ---
LV Path /dev/first_vg/my_logical_volume
LV Name my_logical_volume
VG Name first_vg
LV Pool name thinpool0
LV Size 10.74 GiB
Mapped size 31.39%
Current LE 2750
# lvdisplay second_vg/my_logical_volume2
--- Logical volume ---
LV Path /dev/second_vg/my_logical_volume2
LV Name my_logical_volume2
VG Name second_vg
LV Pool name thinpool1
LV Size 10.74 GiB
Mapped size 0.00%
Current LE 2750
次に、最初のlvから新しく作成されたlvにコピーします。
# time dd if=/dev/first_vg/my_logical_volume of=/dev/second_vg/my_logical_volume2 bs=4194304 conv=sparse
conv=sparse
ddの場合は非常に重要です。それ以外の場合は、すべてのスペースがターゲットシーンプールにプロビジョニングされ、シーンではなくなります。 :-).
新しい論理ボリュームが希望どおりになっていることを確認してください。すべてを確認したら、Kommissarさん、ご希望の場合は、新しいLVの名前を変更したり、元のLVを削除することができます(作業する前にバックアップしましたか?)。